import rt 3.8.7
[freeside.git] / rt / share / html / NoAuth / RichText / FCKeditor / editor / _source / classes / fcktoolbar.js
1 /*\r
2  * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
3  * Copyright (C) 2003-2009 Frederico Caldeira Knabben\r
4  *\r
5  * == BEGIN LICENSE ==\r
6  *\r
7  * Licensed under the terms of any of the following licenses at your\r
8  * choice:\r
9  *\r
10  *  - GNU General Public License Version 2 or later (the "GPL")\r
11  *    http://www.gnu.org/licenses/gpl.html\r
12  *\r
13  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
14  *    http://www.gnu.org/licenses/lgpl.html\r
15  *\r
16  *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
17  *    http://www.mozilla.org/MPL/MPL-1.1.html\r
18  *\r
19  * == END LICENSE ==\r
20  *\r
21  * FCKToolbar Class: represents a toolbar in the toolbarset. It is a group of\r
22  * toolbar items.\r
23  */\r
24 \r
25 var FCKToolbar = function()\r
26 {\r
27         this.Items = new Array() ;\r
28 }\r
29 \r
30 FCKToolbar.prototype.AddItem = function( item )\r
31 {\r
32         return this.Items[ this.Items.length ] = item ;\r
33 }\r
34 \r
35 FCKToolbar.prototype.AddButton = function( name, label, tooltip, iconPathOrStripInfoArrayOrIndex, style, state )\r
36 {\r
37         if ( typeof( iconPathOrStripInfoArrayOrIndex ) == 'number' )\r
38                  iconPathOrStripInfoArrayOrIndex = [ this.DefaultIconsStrip, this.DefaultIconSize, iconPathOrStripInfoArrayOrIndex ] ;\r
39 \r
40         var oButton = new FCKToolbarButtonUI( name, label, tooltip, iconPathOrStripInfoArrayOrIndex, style, state ) ;\r
41         oButton._FCKToolbar = this ;\r
42         oButton.OnClick = FCKToolbar_OnItemClick ;\r
43 \r
44         return this.AddItem( oButton ) ;\r
45 }\r
46 \r
47 function FCKToolbar_OnItemClick( item )\r
48 {\r
49         var oToolbar = item._FCKToolbar ;\r
50 \r
51         if ( oToolbar.OnItemClick )\r
52                 oToolbar.OnItemClick( oToolbar, item ) ;\r
53 }\r
54 \r
55 FCKToolbar.prototype.AddSeparator = function()\r
56 {\r
57         this.AddItem( new FCKToolbarSeparator() ) ;\r
58 }\r
59 \r
60 FCKToolbar.prototype.Create = function( parentElement )\r
61 {\r
62         var oDoc = FCKTools.GetElementDocument( parentElement ) ;\r
63 \r
64         var e = oDoc.createElement( 'table' ) ;\r
65         e.className = 'TB_Toolbar' ;\r
66         e.style.styleFloat = e.style.cssFloat = ( FCKLang.Dir == 'ltr' ? 'left' : 'right' ) ;\r
67         e.dir = FCKLang.Dir ;\r
68         e.cellPadding = 0 ;\r
69         e.cellSpacing = 0 ;\r
70 \r
71         var targetRow = e.insertRow(-1) ;\r
72 \r
73         // Insert the start cell.\r
74         var eCell ;\r
75 \r
76         if ( !this.HideStart )\r
77         {\r
78                 eCell = targetRow.insertCell(-1) ;\r
79                 eCell.appendChild( oDoc.createElement( 'div' ) ).className = 'TB_Start' ;\r
80         }\r
81 \r
82         for ( var i = 0 ; i < this.Items.length ; i++ )\r
83         {\r
84                 this.Items[i].Create( targetRow.insertCell(-1) ) ;\r
85         }\r
86 \r
87         // Insert the ending cell.\r
88         if ( !this.HideEnd )\r
89         {\r
90                 eCell = targetRow.insertCell(-1) ;\r
91                 eCell.appendChild( oDoc.createElement( 'div' ) ).className = 'TB_End' ;\r
92         }\r
93 \r
94         parentElement.appendChild( e ) ;\r
95 }\r
96 \r
97 var FCKToolbarSeparator = function()\r
98 {}\r
99 \r
100 FCKToolbarSeparator.prototype.Create = function( parentElement )\r
101 {\r
102         FCKTools.AppendElement( parentElement, 'div' ).className = 'TB_Separator' ;\r
103 }\r