1 | /*
|
---|
2 | * FCKeditor - The text editor for internet
|
---|
3 | * Copyright (C) 2003-2006 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: fcktoolbarspecialcombo.js
|
---|
14 | * FCKToolbarSpecialCombo Class: This is a "abstract" base class to be used
|
---|
15 | * by the special combo toolbar elements like font name, font size, paragraph format, etc...
|
---|
16 | *
|
---|
17 | * The following properties and methods must be implemented when inheriting from
|
---|
18 | * this class:
|
---|
19 | * - Property: CommandName [ The command name to be executed ]
|
---|
20 | * - Method: GetLabel() [ Returns the label ]
|
---|
21 | * - CreateItems( targetSpecialCombo ) [ Add all items in the special combo ]
|
---|
22 | *
|
---|
23 | * File Authors:
|
---|
24 | * Frederico Caldeira Knabben (fredck@fckeditor.net)
|
---|
25 | */
|
---|
26 |
|
---|
27 | var FCKToolbarSpecialCombo = function()
|
---|
28 | {
|
---|
29 | this.SourceView = false ;
|
---|
30 | this.ContextSensitive = true ;
|
---|
31 | }
|
---|
32 |
|
---|
33 |
|
---|
34 | function FCKToolbarSpecialCombo_OnSelect( itemId, item )
|
---|
35 | {
|
---|
36 | FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Execute( itemId, item ) ;
|
---|
37 | }
|
---|
38 |
|
---|
39 | FCKToolbarSpecialCombo.prototype.Create = function( targetElement )
|
---|
40 | {
|
---|
41 | this._Combo = new FCKSpecialCombo( this.GetLabel(), this.FieldWidth, this.PanelWidth, this.PanelMaxHeight, FCKBrowserInfo.IsIE ? window : FCKTools.GetElementWindow( targetElement ).parent ) ;
|
---|
42 |
|
---|
43 | /*
|
---|
44 | this._Combo.FieldWidth = this.FieldWidth != null ? this.FieldWidth : 100 ;
|
---|
45 | this._Combo.PanelWidth = this.PanelWidth != null ? this.PanelWidth : 150 ;
|
---|
46 | this._Combo.PanelMaxHeight = this.PanelMaxHeight != null ? this.PanelMaxHeight : 150 ;
|
---|
47 | */
|
---|
48 |
|
---|
49 | //this._Combo.Command.Name = this.Command.Name;
|
---|
50 | // this._Combo.Label = this.Label ;
|
---|
51 | this._Combo.Tooltip = this.Tooltip ;
|
---|
52 | this._Combo.Style = this.Style ;
|
---|
53 |
|
---|
54 | this.CreateItems( this._Combo ) ;
|
---|
55 |
|
---|
56 | this._Combo.Create( targetElement ) ;
|
---|
57 |
|
---|
58 | this._Combo.CommandName = this.CommandName ;
|
---|
59 |
|
---|
60 | this._Combo.OnSelect = FCKToolbarSpecialCombo_OnSelect ;
|
---|
61 | }
|
---|
62 |
|
---|
63 | function FCKToolbarSpecialCombo_RefreshActiveItems( combo, value )
|
---|
64 | {
|
---|
65 | combo.DeselectAll() ;
|
---|
66 | combo.SelectItem( value ) ;
|
---|
67 | combo.SetLabelById( value ) ;
|
---|
68 | }
|
---|
69 |
|
---|
70 | FCKToolbarSpecialCombo.prototype.RefreshState = function()
|
---|
71 | {
|
---|
72 | // Gets the actual state.
|
---|
73 | var eState ;
|
---|
74 |
|
---|
75 | // if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView )
|
---|
76 | // eState = FCK_TRISTATE_DISABLED ;
|
---|
77 | // else
|
---|
78 | // {
|
---|
79 | var sValue = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetState() ;
|
---|
80 |
|
---|
81 | // FCKDebug.Output( 'RefreshState of Special Combo "' + this.TypeOf + '" - State: ' + sValue ) ;
|
---|
82 |
|
---|
83 | if ( sValue != FCK_TRISTATE_DISABLED )
|
---|
84 | {
|
---|
85 | eState = FCK_TRISTATE_ON ;
|
---|
86 |
|
---|
87 | if ( this.RefreshActiveItems )
|
---|
88 | this.RefreshActiveItems( this._Combo, sValue ) ;
|
---|
89 | else
|
---|
90 | {
|
---|
91 | if ( this._LastValue != sValue )
|
---|
92 | {
|
---|
93 | this._LastValue = sValue ;
|
---|
94 | FCKToolbarSpecialCombo_RefreshActiveItems( this._Combo, sValue ) ;
|
---|
95 | }
|
---|
96 | }
|
---|
97 | }
|
---|
98 | else
|
---|
99 | eState = FCK_TRISTATE_DISABLED ;
|
---|
100 | // }
|
---|
101 |
|
---|
102 | // If there are no state changes then do nothing and return.
|
---|
103 | if ( eState == this.State ) return ;
|
---|
104 |
|
---|
105 | if ( eState == FCK_TRISTATE_DISABLED )
|
---|
106 | {
|
---|
107 | this._Combo.DeselectAll() ;
|
---|
108 | this._Combo.SetLabel( '' ) ;
|
---|
109 | }
|
---|
110 |
|
---|
111 | // Sets the actual state.
|
---|
112 | this.State = eState ;
|
---|
113 |
|
---|
114 | // Updates the graphical state.
|
---|
115 | this._Combo.SetEnabled( eState != FCK_TRISTATE_DISABLED ) ;
|
---|
116 | }
|
---|
117 |
|
---|
118 | FCKToolbarSpecialCombo.prototype.Enable = function()
|
---|
119 | {
|
---|
120 | this.RefreshState() ;
|
---|
121 | }
|
---|
122 |
|
---|
123 | FCKToolbarSpecialCombo.prototype.Disable = function()
|
---|
124 | {
|
---|
125 | this.State = FCK_TRISTATE_DISABLED ;
|
---|
126 | this._Combo.DeselectAll() ;
|
---|
127 | this._Combo.SetLabel( '' ) ;
|
---|
128 | this._Combo.SetEnabled( false ) ;
|
---|
129 | } |
---|