2
* FCKeditor - The text editor for internet
3
* Copyright (C) 2003-2005 Frederico Caldeira Knabben
5
* Licensed under the terms of the GNU Lesser General Public License:
6
* http://www.opensource.org/licenses/lgpl-license.php
8
* For further information visit:
9
* http://www.fckeditor.net/
11
* "Support Open Source software. What about a donation today?"
13
* File Name: fcktoolbarset.js
14
* Defines the FCKToolbarSet object that is used to load and draw the
18
* Frederico Caldeira Knabben (fredck@fckeditor.net)
21
var FCKToolbarSet = FCK.ToolbarSet = new Object() ;
23
document.getElementById( 'ExpandHandle' ).title = FCKLang.ToolbarExpand ;
24
document.getElementById( 'CollapseHandle' ).title = FCKLang.ToolbarCollapse ;
26
FCKToolbarSet.Toolbars = new Array() ;
28
// Array of toolbat items that are active only on WYSIWYG mode.
29
FCKToolbarSet.ItemsWysiwygOnly = new Array() ;
31
// Array of toolbar items that are sensitive to the cursor position.
32
FCKToolbarSet.ItemsContextSensitive = new Array() ;
34
FCKToolbarSet.Expand = function()
36
document.getElementById( 'Collapsed' ).style.display = 'none' ;
37
document.getElementById( 'Expanded' ).style.display = '' ;
39
if ( ! FCKBrowserInfo.IsIE )
41
// I had to use "setTimeout" because Gecko was not responding in a right
42
// way when calling window.onresize() directly.
43
window.setTimeout( "window.onresize()", 1 ) ;
47
FCKToolbarSet.Collapse = function()
49
document.getElementById( 'Collapsed' ).style.display = '' ;
50
document.getElementById( 'Expanded' ).style.display = 'none' ;
52
if ( ! FCKBrowserInfo.IsIE )
54
// I had to use "setTimeout" because Gecko was not responding in a right
55
// way when calling window.onresize() directly.
56
window.setTimeout( "window.onresize()", 1 ) ;
60
FCKToolbarSet.Restart = function()
62
if ( !FCKConfig.ToolbarCanCollapse || FCKConfig.ToolbarStartExpanded )
67
document.getElementById( 'CollapseHandle' ).style.display = FCKConfig.ToolbarCanCollapse ? '' : 'none' ;
70
FCKToolbarSet.Load = function( toolbarSetName )
72
this.DOMElement = document.getElementById( 'eToolbar' ) ;
74
var ToolbarSet = FCKConfig.ToolbarSets[toolbarSetName] ;
78
alert( FCKLang.UnknownToolbarSet.replace( /%1/g, toolbarSetName ) ) ;
82
this.Toolbars = new Array() ;
84
for ( var x = 0 ; x < ToolbarSet.length ; x++ )
86
var oToolbarItems = ToolbarSet[x] ;
90
if ( typeof( oToolbarItems ) == 'string' )
92
if ( oToolbarItems == '/' )
93
oToolbar = new FCKToolbarBreak() ;
97
oToolbar = new FCKToolbar() ;
99
for ( var j = 0 ; j < oToolbarItems.length ; j++ )
101
var sItem = oToolbarItems[j] ;
104
oToolbar.AddSeparator() ;
107
var oItem = FCKToolbarItems.GetItem( sItem ) ;
110
oToolbar.AddItem( oItem ) ;
112
if ( !oItem.SourceView )
113
this.ItemsWysiwygOnly[this.ItemsWysiwygOnly.length] = oItem ;
115
if ( oItem.ContextSensitive )
116
this.ItemsContextSensitive[this.ItemsContextSensitive.length] = oItem ;
121
oToolbar.AddTerminator() ;
124
this.Toolbars[ this.Toolbars.length ] = oToolbar ;
128
FCKToolbarSet.RefreshModeState = function()
130
if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
132
// Enable all buttons that are available on WYSIWYG mode only.
133
for ( var i = 0 ; i < FCKToolbarSet.ItemsWysiwygOnly.length ; i++ )
134
FCKToolbarSet.ItemsWysiwygOnly[i].Enable() ;
136
// Refresh the buttons state.
137
FCKToolbarSet.RefreshItemsState() ;
141
// Refresh the buttons state.
142
FCKToolbarSet.RefreshItemsState() ;
144
// Disable all buttons that are available on WYSIWYG mode only.
145
for ( var i = 0 ; i < FCKToolbarSet.ItemsWysiwygOnly.length ; i++ )
146
FCKToolbarSet.ItemsWysiwygOnly[i].Disable() ;
150
FCKToolbarSet.RefreshItemsState = function()
153
for ( var i = 0 ; i < FCKToolbarSet.ItemsContextSensitive.length ; i++ )
154
FCKToolbarSet.ItemsContextSensitive[i].RefreshState() ;
156
TODO: Delete this commented block on stable version.
157
for ( var i = 0 ; i < FCKToolbarSet.Toolbars.length ; i++ )
159
var oToolbar = FCKToolbarSet.Toolbars[i] ;
160
for ( var j = 0 ; j < oToolbar.Items.length ; j++ )
162
oToolbar.Items[j].RefreshState() ;