/** * Button.js * * Copyright 2009, Moxiecode Systems AB * Released under LGPL License. * * License: http://tinymce.moxiecode.com/license * Contributing: http://tinymce.moxiecode.com/contributing */ (function(tinymce) { var DOM = tinymce.DOM; /** * This class is used to create a UI button. A button is basically a link * that is styled to look like a button or icon. * * @class tinymce.ui.Button * @extends tinymce.ui.Control */ tinymce.create('tinymce.ui.Button:tinymce.ui.Control', { /** * Constructs a new button control instance. * * @constructor * @method Button * @param {String} id Control id for the button. * @param {Object} s Optional name/value settings object. * @param {Editor} ed Optional the editor instance this button is for. */ Button : function(id, s, ed) { this.parent(id, s, ed); this.classPrefix = 'mceButton'; }, /** * Renders the button as a HTML string. This method is much faster than using the DOM and when * creating a whole toolbar with buttons it does make a lot of difference. * * @method renderHTML * @return {String} HTML for the button control element. */ renderHTML : function() { var cp = this.classPrefix, s = this.settings, h, l; l = DOM.encode(s.label || ''); h = ''; if (s.image && !(this.editor &&this.editor.forcedHighContrastMode) ) h += '' + DOM.encode(s.title) + '' + l; else h += '' + (l ? '' + l + '' : ''); h += ''; h += ''; return h; }, /** * Post render handler. This function will be called after the UI has been * rendered so that events can be added. * * @method postRender */ postRender : function() { var t = this, s = t.settings; tinymce.dom.Event.add(t.id, 'click', function(e) { if (!t.isDisabled()) return s.onclick.call(s.scope, e); }); } }); })(tinymce);