blob: 9242d96b7bc367c06c21a57f186f957cf415082e [file] [log] [blame]
/**
* @class drop-down menu - font-family 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.fontname = function(rte, name) {
this.constructor.prototype.constructor.call(this, rte, name);
var self = this;
var opts = {
tpl : '<span style="font-family:%val">%label</span>',
select : function(v) { self.set(v); },
src : {
'' : this.rte.i18n('Font'),
'andale mono,sans-serif' : 'Andale Mono',
'arial,helvetica,sans-serif' : 'Arial',
'arial black,gadget,sans-serif' : 'Arial Black',
'book antiqua,palatino,sans-serif' : 'Book Antiqua',
'comic sans ms,cursive' : 'Comic Sans MS',
'courier new,courier,monospace' : 'Courier New',
'georgia,palatino,serif' : 'Georgia',
'helvetica,sans-serif' : 'Helvetica',
'impact,sans-serif' : 'Impact',
'lucida console,monaco,monospace' : 'Lucida console',
'lucida sans unicode,lucida grande,sans-serif' : 'Lucida grande',
'tahoma,sans-serif' : 'Tahoma',
'times new roman,times,serif' : 'Times New Roman',
'trebuchet ms,lucida grande,verdana,sans-serif' : 'Trebuchet MS',
'verdana,geneva,sans-serif' : 'Verdana'
}
}
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-family', size).find('[style]').css('font-family', '');
});
this.rte.ui.update();
}
this.update = function() {
this.domElem.removeClass('disabled');
var n = this.rte.selection.getNode();
if (n.nodeType != 1) {
n = n.parentNode;
}
var v = $(n).css('font-family');
v = v ? v.toString().toLowerCase().replace(/,\s+/g, ',').replace(/'|"/g, '') : '';
this.select.val(opts.src[v] ? v : '');
}
}
})(jQuery);