Subversion Repositories Applications.papyrus

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
431 ddelon 1
/*
2
 * FCKeditor - The text editor for internet
3
 * Copyright (C) 2003-2005 Frederico Caldeira Knabben
4
 *
5
 * Licensed under the terms of the GNU Lesser General Public License:
6
 * 		http://www.opensource.org/licenses/lgpl-license.php
7
 *
8
 * For further information visit:
9
 * 		http://www.fckeditor.net/
10
 *
11
 * File Name: fcktoolbarset.js
12
 * 	Defines the FCKToolbarSet object that is used to load and draw the
13
 * 	toolbar.
14
 *
15
 * File Authors:
16
 * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
17
 */
18
 
19
var FCKToolbarSet = FCK.ToolbarSet = new Object() ;
20
 
21
document.getElementById( 'ExpandHandle' ).title		= FCKLang.ToolbarExpand ;
22
document.getElementById( 'CollapseHandle' ).title	= FCKLang.ToolbarCollapse ;
23
 
24
FCKToolbarSet.Toolbars = new Array() ;
25
 
26
// Array of toolbat items that are active only on WYSIWYG mode.
27
FCKToolbarSet.ItemsWysiwygOnly = new Array() ;
28
 
29
// Array of toolbar items that are sensitive to the cursor position.
30
FCKToolbarSet.ItemsContextSensitive = new Array() ;
31
 
32
FCKToolbarSet.Expand = function()
33
{
34
	document.getElementById( 'Collapsed' ).style.display = 'none' ;
35
	document.getElementById( 'Expanded' ).style.display = '' ;
36
 
37
	if ( ! FCKBrowserInfo.IsIE )
38
	{
39
		// I had to use "setTimeout" because Gecko was not responding in a right
40
		// way when calling window.onresize() directly.
41
		window.setTimeout( "window.onresize()", 1 ) ;
42
	}
43
}
44
 
45
FCKToolbarSet.Collapse = function()
46
{
47
	document.getElementById( 'Collapsed' ).style.display = '' ;
48
	document.getElementById( 'Expanded' ).style.display = 'none' ;
49
 
50
	if ( ! FCKBrowserInfo.IsIE )
51
	{
52
		// I had to use "setTimeout" because Gecko was not responding in a right
53
		// way when calling window.onresize() directly.
54
		window.setTimeout( "window.onresize()", 1 ) ;
55
	}
56
}
57
 
58
FCKToolbarSet.Restart = function()
59
{
60
	if ( !FCKConfig.ToolbarCanCollapse || FCKConfig.ToolbarStartExpanded )
61
		this.Expand() ;
62
	else
63
		this.Collapse() ;
64
 
65
	document.getElementById( 'CollapseHandle' ).style.display = FCKConfig.ToolbarCanCollapse ? '' : 'none' ;
66
}
67
 
68
FCKToolbarSet.Load = function( toolbarSetName )
69
{
70
	this.DOMElement = document.getElementById( 'eToolbar' ) ;
71
 
72
	var ToolbarSet = FCKConfig.ToolbarSets[toolbarSetName] ;
73
 
74
	if (! ToolbarSet)
75
	{
76
		alert( FCKLang.UnknownToolbarSet.replace( /%1/g, toolbarSetName ) ) ;
77
		return ;
78
	}
79
 
80
	this.Toolbars = new Array() ;
81
 
82
	for ( var x = 0 ; x < ToolbarSet.length ; x++ )
83
	{
84
		var oToolbarItems = ToolbarSet[x] ;
85
 
86
		var oToolbar ;
87
 
88
		if ( typeof( oToolbarItems ) == 'string' )
89
		{
90
			if ( oToolbarItems == '/' )
91
				oToolbar = new FCKToolbarBreak() ;
92
		}
93
		else
94
		{
95
			var oToolbar = new FCKToolbar() ;
96
 
97
			for ( var j = 0 ; j < oToolbarItems.length ; j++ )
98
			{
99
				var sItem = oToolbarItems[j] ;
100
 
101
				if ( sItem == '-')
102
					oToolbar.AddSeparator() ;
103
				else
104
				{
105
					var oItem = FCKToolbarItems.GetItem( sItem ) ;
106
					if ( oItem )
107
					{
108
						oToolbar.AddItem( oItem ) ;
109
 
110
						if ( !oItem.SourceView )
111
							this.ItemsWysiwygOnly[this.ItemsWysiwygOnly.length] = oItem ;
112
 
113
						if ( oItem.ContextSensitive )
114
							this.ItemsContextSensitive[this.ItemsContextSensitive.length] = oItem ;
115
					}
116
				}
117
			}
118
 
119
			oToolbar.AddTerminator() ;
120
		}
121
 
122
		this.Toolbars[ this.Toolbars.length ] = oToolbar ;
123
	}
124
}
125
 
126
FCKToolbarSet.RefreshModeState = function()
127
{
128
	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
129
	{
130
		// Enable all buttons that are available on WYSIWYG mode only.
131
		for ( var i = 0 ; i < FCKToolbarSet.ItemsWysiwygOnly.length ; i++ )
132
			FCKToolbarSet.ItemsWysiwygOnly[i].Enable() ;
133
 
134
		// Refresh the buttons state.
135
		FCKToolbarSet.RefreshItemsState() ;
136
	}
137
	else
138
	{
139
		// Refresh the buttons state.
140
		FCKToolbarSet.RefreshItemsState() ;
141
 
142
		// Disable all buttons that are available on WYSIWYG mode only.
143
		for ( var i = 0 ; i < FCKToolbarSet.ItemsWysiwygOnly.length ; i++ )
144
			FCKToolbarSet.ItemsWysiwygOnly[i].Disable() ;
145
	}
146
}
147
 
148
FCKToolbarSet.RefreshItemsState = function()
149
{
150
 
151
	for ( var i = 0 ; i < FCKToolbarSet.ItemsContextSensitive.length ; i++ )
152
		FCKToolbarSet.ItemsContextSensitive[i].RefreshState() ;
153
/*
154
	TODO: Delete this commented block on stable version.
155
	for ( var i = 0 ; i < FCKToolbarSet.Toolbars.length ; i++ )
156
	{
157
		var oToolbar = FCKToolbarSet.Toolbars[i] ;
158
		for ( var j = 0 ; j < oToolbar.Items.length ; j++ )
159
		{
160
			oToolbar.Items[j].RefreshState() ;
161
		}
162
	}
163
*/
164
}