+++ /dev/null
-/*\r
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
- * Copyright (C) 2003-2009 Frederico Caldeira Knabben\r
- *\r
- * == BEGIN LICENSE ==\r
- *\r
- * Licensed under the terms of any of the following licenses at your\r
- * choice:\r
- *\r
- * - GNU General Public License Version 2 or later (the "GPL")\r
- * http://www.gnu.org/licenses/gpl.html\r
- *\r
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
- * http://www.gnu.org/licenses/lgpl.html\r
- *\r
- * - Mozilla Public License Version 1.1 or later (the "MPL")\r
- * http://www.mozilla.org/MPL/MPL-1.1.html\r
- *\r
- * == END LICENSE ==\r
- *\r
- * Renders a list of menu items.\r
- */\r
-\r
-var FCKMenuBlock = function()\r
-{\r
- this._Items = new Array() ;\r
-}\r
-\r
-\r
-FCKMenuBlock.prototype.Count = function()\r
-{\r
- return this._Items.length ;\r
-}\r
-\r
-FCKMenuBlock.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled, customData )\r
-{\r
- var oItem = new FCKMenuItem( this, name, label, iconPathOrStripInfoArrayOrIndex, isDisabled, customData ) ;\r
-\r
- oItem.OnClick = FCKTools.CreateEventListener( FCKMenuBlock_Item_OnClick, this ) ;\r
- oItem.OnActivate = FCKTools.CreateEventListener( FCKMenuBlock_Item_OnActivate, this ) ;\r
-\r
- this._Items.push( oItem ) ;\r
-\r
- return oItem ;\r
-}\r
-\r
-FCKMenuBlock.prototype.AddSeparator = function()\r
-{\r
- this._Items.push( new FCKMenuSeparator() ) ;\r
-}\r
-\r
-FCKMenuBlock.prototype.RemoveAllItems = function()\r
-{\r
- this._Items = new Array() ;\r
-\r
- var eItemsTable = this._ItemsTable ;\r
- if ( eItemsTable )\r
- {\r
- while ( eItemsTable.rows.length > 0 )\r
- eItemsTable.deleteRow( 0 ) ;\r
- }\r
-}\r
-\r
-FCKMenuBlock.prototype.Create = function( parentElement )\r
-{\r
- if ( !this._ItemsTable )\r
- {\r
- if ( FCK.IECleanup )\r
- FCK.IECleanup.AddItem( this, FCKMenuBlock_Cleanup ) ;\r
-\r
- this._Window = FCKTools.GetElementWindow( parentElement ) ;\r
-\r
- var oDoc = FCKTools.GetElementDocument( parentElement ) ;\r
-\r
- var eTable = parentElement.appendChild( oDoc.createElement( 'table' ) ) ;\r
- eTable.cellPadding = 0 ;\r
- eTable.cellSpacing = 0 ;\r
-\r
- FCKTools.DisableSelection( eTable ) ;\r
-\r
- var oMainElement = eTable.insertRow(-1).insertCell(-1) ;\r
- oMainElement.className = 'MN_Menu' ;\r
-\r
- var eItemsTable = this._ItemsTable = oMainElement.appendChild( oDoc.createElement( 'table' ) ) ;\r
- eItemsTable.cellPadding = 0 ;\r
- eItemsTable.cellSpacing = 0 ;\r
- }\r
-\r
- for ( var i = 0 ; i < this._Items.length ; i++ )\r
- this._Items[i].Create( this._ItemsTable ) ;\r
-}\r
-\r
-/* Events */\r
-\r
-function FCKMenuBlock_Item_OnClick( clickedItem, menuBlock )\r
-{\r
- if ( menuBlock.Hide )\r
- menuBlock.Hide() ;\r
-\r
- FCKTools.RunFunction( menuBlock.OnClick, menuBlock, [ clickedItem ] ) ;\r
-}\r
-\r
-function FCKMenuBlock_Item_OnActivate( menuBlock )\r
-{\r
- var oActiveItem = menuBlock._ActiveItem ;\r
-\r
- if ( oActiveItem && oActiveItem != this )\r
- {\r
- // Set the focus to this menu block window (to fire OnBlur on opened panels).\r
- if ( !FCKBrowserInfo.IsIE && oActiveItem.HasSubMenu && !this.HasSubMenu )\r
- {\r
- menuBlock._Window.focus() ;\r
-\r
- // Due to the event model provided by Opera, we need to set\r
- // HasFocus here as the above focus() call will not fire the focus\r
- // event in the panel immediately (#1200).\r
- menuBlock.Panel.HasFocus = true ;\r
- }\r
-\r
- oActiveItem.Deactivate() ;\r
- }\r
-\r
- menuBlock._ActiveItem = this ;\r
-}\r
-\r
-function FCKMenuBlock_Cleanup()\r
-{\r
- this._Window = null ;\r
- this._ItemsTable = null ;\r
-}\r
-\r
-// ################# //\r
-\r
-var FCKMenuSeparator = function()\r
-{}\r
-\r
-FCKMenuSeparator.prototype.Create = function( parentTable )\r
-{\r
- var oDoc = FCKTools.GetElementDocument( parentTable ) ;\r
-\r
- var r = parentTable.insertRow(-1) ;\r
-\r
- var eCell = r.insertCell(-1) ;\r
- eCell.className = 'MN_Separator MN_Icon' ;\r
-\r
- eCell = r.insertCell(-1) ;\r
- eCell.className = 'MN_Separator' ;\r
- eCell.appendChild( oDoc.createElement( 'DIV' ) ).className = 'MN_Separator_Line' ;\r
-\r
- eCell = r.insertCell(-1) ;\r
- eCell.className = 'MN_Separator' ;\r
- eCell.appendChild( oDoc.createElement( 'DIV' ) ).className = 'MN_Separator_Line' ;\r
-}\r