blob: 2996a3c1dc5a0ee25a1d38702979a354cb92657f [file] [log] [blame]
/**
* @class drop-down menu - font size for selected text
*
* @param elRTE rte объект-редактор
* @param String name название кнопки
*
* @author: Dmitry Levashov (dio) dio@std42.ru
* @copyright: Studio 42, http://www.std42.ru
**/
(function($) {
elRTE.prototype.ui.prototype.buttons.fontsize = function(rte, name) {
this.constructor.prototype.constructor.call(this, rte, name);
var self = this;
var opts = {
labelTpl : '%label',
tpl : '<span style="font-size:%val;line-height:1.2em">%label</span>',
select : function(v) { self.set(v); },
src : {
'' : this.rte.i18n('Font size'),
'xx-small' : this.rte.i18n('Small (8pt)'),
'x-small' : this.rte.i18n('Small (10px)'),
'small' : this.rte.i18n('Small (12pt)'),
'medium' : this.rte.i18n('Normal (14pt)'),
'large' : this.rte.i18n('Large (18pt)'),
'x-large' : this.rte.i18n('Large (24pt)'),
'xx-large' : this.rte.i18n('Large (36pt)')
}
}
this.select = this.domElem.elSelect(opts);
this.command = function() {
}
this.set = function(size) {
this.rte.history.add();
var nodes = this.rte.selection.selected({filter : 'textContainsNodes'});
$.each(nodes, function() {
$this = /^(THEAD|TFOOT|TBODY|COL|COLGROUP|TR)$/.test(this.nodeName) ? $(this).find('td,th') : $(this);
$this.css('font-size', size).find("[style]").css('font-size', '');
});
this.rte.ui.update();
}
this.update = function() {
this.domElem.removeClass('disabled');
var n = this.rte.selection.getNode();
this.select.val((m = this.rte.dom.attr(n, 'style').match(/font-size:\s*([^;]+)/i)) ? m[1] : '');
}
}
})(jQuery);