~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to wiki/htdocs/applets/FCKeditor/editor/_source/internals/fcktoolbarset.js

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mto: This revision was merged to the branch mainline in revision 18.
  • Revision ID: james.westby@ubuntu.com-20080622211713-inlv5k4eifxckelr
Import upstream version 1.7.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 * "Support Open Source software. What about a donation today?"
 
12
 * 
 
13
 * File Name: fcktoolbarset.js
 
14
 *      Defines the FCKToolbarSet object that is used to load and draw the 
 
15
 *      toolbar.
 
16
 * 
 
17
 * File Authors:
 
18
 *              Frederico Caldeira Knabben (fredck@fckeditor.net)
 
19
 */
 
20
 
 
21
var FCKToolbarSet = FCK.ToolbarSet = new Object() ;
 
22
 
 
23
document.getElementById( 'ExpandHandle' ).title         = FCKLang.ToolbarExpand ;
 
24
document.getElementById( 'CollapseHandle' ).title       = FCKLang.ToolbarCollapse ;
 
25
 
 
26
FCKToolbarSet.Toolbars = new Array() ;
 
27
 
 
28
// Array of toolbat items that are active only on WYSIWYG mode.
 
29
FCKToolbarSet.ItemsWysiwygOnly = new Array() ;
 
30
 
 
31
// Array of toolbar items that are sensitive to the cursor position.
 
32
FCKToolbarSet.ItemsContextSensitive = new Array() ;
 
33
 
 
34
FCKToolbarSet.Expand = function()
 
35
{
 
36
        document.getElementById( 'Collapsed' ).style.display = 'none' ;
 
37
        document.getElementById( 'Expanded' ).style.display = '' ;
 
38
        
 
39
        if ( ! FCKBrowserInfo.IsIE )
 
40
        {
 
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 ) ;
 
44
        }
 
45
}
 
46
 
 
47
FCKToolbarSet.Collapse = function()
 
48
{
 
49
        document.getElementById( 'Collapsed' ).style.display = '' ;
 
50
        document.getElementById( 'Expanded' ).style.display = 'none' ;
 
51
        
 
52
        if ( ! FCKBrowserInfo.IsIE )
 
53
        {
 
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 ) ;
 
57
        }
 
58
}
 
59
 
 
60
FCKToolbarSet.Restart = function()
 
61
{
 
62
        if ( !FCKConfig.ToolbarCanCollapse || FCKConfig.ToolbarStartExpanded )
 
63
                this.Expand() ;
 
64
        else
 
65
                this.Collapse() ;
 
66
        
 
67
        document.getElementById( 'CollapseHandle' ).style.display = FCKConfig.ToolbarCanCollapse ? '' : 'none' ;
 
68
}
 
69
 
 
70
FCKToolbarSet.Load = function( toolbarSetName )
 
71
{
 
72
        this.DOMElement = document.getElementById( 'eToolbar' ) ;
 
73
        
 
74
        var ToolbarSet = FCKConfig.ToolbarSets[toolbarSetName] ;
 
75
        
 
76
        if (! ToolbarSet)
 
77
        {
 
78
                alert( FCKLang.UnknownToolbarSet.replace( /%1/g, toolbarSetName ) ) ;
 
79
                return ;
 
80
        }
 
81
        
 
82
        this.Toolbars = new Array() ;
 
83
        
 
84
        for ( var x = 0 ; x < ToolbarSet.length ; x++ ) 
 
85
        {
 
86
                var oToolbarItems = ToolbarSet[x] ;
 
87
                
 
88
                var oToolbar ;
 
89
                
 
90
                if ( typeof( oToolbarItems ) == 'string' )
 
91
                {
 
92
                        if ( oToolbarItems == '/' )
 
93
                                oToolbar = new FCKToolbarBreak() ;
 
94
                }
 
95
                else
 
96
                {
 
97
                        oToolbar = new FCKToolbar() ;
 
98
                        
 
99
                        for ( var j = 0 ; j < oToolbarItems.length ; j++ ) 
 
100
                        {
 
101
                                var sItem = oToolbarItems[j] ;
 
102
                                
 
103
                                if ( sItem == '-')
 
104
                                        oToolbar.AddSeparator() ;
 
105
                                else
 
106
                                {
 
107
                                        var oItem = FCKToolbarItems.GetItem( sItem ) ;
 
108
                                        if ( oItem )
 
109
                                        {
 
110
                                                oToolbar.AddItem( oItem ) ;
 
111
 
 
112
                                                if ( !oItem.SourceView )
 
113
                                                        this.ItemsWysiwygOnly[this.ItemsWysiwygOnly.length] = oItem ;
 
114
                                                
 
115
                                                if ( oItem.ContextSensitive )
 
116
                                                        this.ItemsContextSensitive[this.ItemsContextSensitive.length] = oItem ;
 
117
                                        }
 
118
                                }
 
119
                        }
 
120
                        
 
121
                        oToolbar.AddTerminator() ;
 
122
                }
 
123
 
 
124
                this.Toolbars[ this.Toolbars.length ] = oToolbar ;
 
125
        }
 
126
}
 
127
 
 
128
FCKToolbarSet.RefreshModeState = function()
 
129
{
 
130
        if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
 
131
        {
 
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() ;
 
135
 
 
136
                // Refresh the buttons state.
 
137
                FCKToolbarSet.RefreshItemsState() ;
 
138
        }
 
139
        else
 
140
        {
 
141
                // Refresh the buttons state.
 
142
                FCKToolbarSet.RefreshItemsState() ;
 
143
 
 
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() ;
 
147
        }       
 
148
}
 
149
 
 
150
FCKToolbarSet.RefreshItemsState = function()
 
151
{
 
152
 
 
153
        for ( var i = 0 ; i < FCKToolbarSet.ItemsContextSensitive.length ; i++ )
 
154
                FCKToolbarSet.ItemsContextSensitive[i].RefreshState() ;
 
155
/*
 
156
        TODO: Delete this commented block on stable version.
 
157
        for ( var i = 0 ; i < FCKToolbarSet.Toolbars.length ; i++ )
 
158
        {
 
159
                var oToolbar = FCKToolbarSet.Toolbars[i] ;
 
160
                for ( var j = 0 ; j < oToolbar.Items.length ; j++ )
 
161
                {
 
162
                        oToolbar.Items[j].RefreshState() ;
 
163
                }
 
164
        }
 
165
*/
 
166
}