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 * FCKCoreStyleCommand Class: controls the execution of a core style. Core
22 * styles are usually represented as buttons in the toolbar., like Bold and
23 * Italic.
24 */
25
26 var FCKCoreStyleCommand = function( coreStyleName )
27 {
28 	this.Name = 'CoreStyle' ;
29 	this.StyleName = '_FCK_' + coreStyleName ;
30 	this.IsActive = false ;
31
32 	FCKStyles.AttachStyleStateChange( this.StyleName, this._OnStyleStateChange, this ) ;
33 }
34
35 FCKCoreStyleCommand.prototype =
36 {
37	Execute : function()
38	{
39		FCKUndo.SaveUndoStep() ;
40
41		if ( this.IsActive )
42			FCKStyles.RemoveStyle( this.StyleName ) ;
43		else
44			FCKStyles.ApplyStyle( this.StyleName ) ;
45
46		FCK.Focus() ;
47		FCK.Events.FireEvent( 'OnSelectionChange' ) ;
48	},
49
50	GetState : function()
51	{
52		return this.IsActive ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF ;
53	},
54
55	_OnStyleStateChange : function( styleName, isActive )
56	{
57		this.IsActive = isActive ;
58	}
59 };
60