/**
* 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.
*/
Button : function(id, s) {
this.parent(id, s);
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)
h += '' + l + '';
else
h += '' + (l ? '' + l + '' : '') + '';
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);