1/*
2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
3 * Copyright (C) 2003-2007 Frederico Caldeira Knabben
4 *
5 * == BEGIN LICENSE ==
6 *
7 * Licensed under the terms of any of the following licenses at your
8 * choice:
9 *
10 *  - GNU General Public License Version 2 or later (the "GPL")
11 *    http://www.gnu.org/licenses/gpl.html
12 *
13 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
14 *    http://www.gnu.org/licenses/lgpl.html
15 *
16 *  - Mozilla Public License Version 1.1 or later (the "MPL")
17 *    http://www.mozilla.org/MPL/MPL-1.1.html
18 *
19 * == END LICENSE ==
20 *
21 * FCKStyleCommand Class: represents the "Style" command.
22 */
23
24var FCKStyleCommand = function()
25{}
26
27FCKStyleCommand.prototype =
28{
29	Name : 'Style',
30
31	Execute : function( styleName, styleComboItem )
32	{
33		FCKUndo.SaveUndoStep() ;
34
35		if ( styleComboItem.Selected )
36			FCK.Styles.RemoveStyle( styleComboItem.Style ) ;
37		else
38			FCK.Styles.ApplyStyle( styleComboItem.Style ) ;
39
40		FCKUndo.SaveUndoStep() ;
41
42		FCK.Focus() ;
43		FCK.Events.FireEvent( 'OnSelectionChange' ) ;
44	},
45
46	GetState : function()
47	{
48		if ( !FCK.EditorDocument )
49			return FCK_TRISTATE_DISABLED ;
50
51		if ( FCKSelection.GetType() == 'Control' )
52		{
53			var el = FCKSelection.GetSelectedElement() ;
54			if ( !el || !FCKStyles.CheckHasObjectStyle( el.nodeName.toLowerCase() ) )
55				return FCK_TRISTATE_DISABLED ;
56		}
57
58		return FCK_TRISTATE_OFF ;
59	}
60};
61