/** * $Id$ * * @author Moxiecode * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ /** * Constructor for the menu layer class. * * @constructor * @base TinyMCE_Layer * @member TinyMCE_Menu */ function TinyMCE_Menu() { var id; if (typeof(tinyMCE.menuCounter) == "undefined") tinyMCE.menuCounter = 0; id = "mc_menu_" + tinyMCE.menuCounter++; TinyMCE_Layer.call(this, id, true); this.id = id; this.items = []; this.needsUpdate = true; }; /**#@+ * @member TinyMCE_Menu */ TinyMCE_Menu.prototype = tinyMCE.extend(TinyMCE_Layer.prototype, { /**#@+ * @method */ /** * Initializes the Menu with settings. This will also create the menu * as a DIV element if it doesn't exists in the DOM. * * @param {Array} s Name/Value array with settings. */ init : function(s) { var n; // Default params this.settings = { separator_class : 'mceMenuSeparator', title_class : 'mceMenuTitle', disabled_class : 'mceMenuDisabled', menu_class : 'mceMenu', drop_menu : true }; for (n in s) this.settings[n] = s[n]; this.create('div', this.settings.menu_class); }, /** * Clears the menu. */ clear : function() { this.items = []; }, /** * Adds a menu title, this is a static item that can't be clicked. * * @param {string} t Text to add to title. */ addTitle : function(t) { this.add({type : 'title', text : t}); }, /** * Adds a disabled menu item, this is a static item that can't be clicked. * * @param {string} t Text to add to title. */ addDisabled : function(t) { this.add({type : 'disabled', text : t}); }, /** * Adds a menu separator line. */ addSeparator : function() { this.add({type : 'separator'}); }, /** * Adds a menu item. * * @param {string} t Menu item text. * @param {string} js JS string to evaluate on click. */ addItem : function(t, js) { this.add({text : t, js : js}); }, /** * Adds a menu item object. * * @param {Object} mi Menu item object to add. */ add : function(mi) { this.items[this.items.length] = mi; this.needsUpdate = true; }, /** * Update the menu with new HTML contents. */ update : function() { var e = this.getElement(), h = '', i, t, m = this.items, s = this.settings; if (this.settings.drop_menu) h += ''; h += '
| '; break; case 'title': h += ' |
| ' + t + ''; break; case 'disabled': h += ' |
| ' + t + ''; break; default: h += ' |
| ' + t + ''; } h += ' |