mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
87 lines
2.7 KiB
JavaScript
87 lines
2.7 KiB
JavaScript
|
/**
|
|||
|
* $Id: Toolbar.js 706 2008-03-11 20:38:31Z spocke $
|
|||
|
*
|
|||
|
* @author Moxiecode
|
|||
|
* @copyright Copyright <EFBFBD> 2004-2008, Moxiecode Systems AB, All rights reserved.
|
|||
|
*/
|
|||
|
|
|||
|
/**#@+
|
|||
|
* @class This class is used to create toolbars a toolbar is a container for other controls like buttons etc.
|
|||
|
* @member tinymce.ui.Toolbar
|
|||
|
* @base tinymce.ui.Container
|
|||
|
*/
|
|||
|
tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|||
|
/**#@+
|
|||
|
* @method
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* Renders the toolbar 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.
|
|||
|
*
|
|||
|
* @return {String} HTML for the toolbar control.
|
|||
|
*/
|
|||
|
renderHTML : function() {
|
|||
|
var t = this, h = '', c, co, dom = tinymce.DOM, s = t.settings, i, pr, nx, cl;
|
|||
|
|
|||
|
cl = t.controls;
|
|||
|
for (i=0; i<cl.length; i++) {
|
|||
|
// Get current control, prev control, next control and if the control is a list box or not
|
|||
|
co = cl[i];
|
|||
|
pr = cl[i - 1];
|
|||
|
nx = cl[i + 1];
|
|||
|
|
|||
|
// Add toolbar start
|
|||
|
if (i === 0) {
|
|||
|
c = 'mceToolbarStart';
|
|||
|
|
|||
|
if (co.Button)
|
|||
|
c += ' mceToolbarStartButton';
|
|||
|
else if (co.SplitButton)
|
|||
|
c += ' mceToolbarStartSplitButton';
|
|||
|
else if (co.ListBox)
|
|||
|
c += ' mceToolbarStartListBox';
|
|||
|
|
|||
|
h += dom.createHTML('td', {'class' : c}, dom.createHTML('span', null, '<!-- IE -->'));
|
|||
|
}
|
|||
|
|
|||
|
// Add toolbar end before list box and after the previous button
|
|||
|
// This is to fix the o2k7 editor skins
|
|||
|
if (pr && co.ListBox) {
|
|||
|
if (pr.Button || pr.SplitButton)
|
|||
|
h += dom.createHTML('td', {'class' : 'mceToolbarEnd'}, dom.createHTML('span', null, '<!-- IE -->'));
|
|||
|
}
|
|||
|
|
|||
|
// Render control HTML
|
|||
|
|
|||
|
// IE 8 quick fix, needed to propertly generate a hit area for anchors
|
|||
|
if (dom.stdMode)
|
|||
|
h += '<td style="position: relative">' + co.renderHTML() + '</td>';
|
|||
|
else
|
|||
|
h += '<td>' + co.renderHTML() + '</td>';
|
|||
|
|
|||
|
// Add toolbar start after list box and before the next button
|
|||
|
// This is to fix the o2k7 editor skins
|
|||
|
if (nx && co.ListBox) {
|
|||
|
if (nx.Button || nx.SplitButton)
|
|||
|
h += dom.createHTML('td', {'class' : 'mceToolbarStart'}, dom.createHTML('span', null, '<!-- IE -->'));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
c = 'mceToolbarEnd';
|
|||
|
|
|||
|
if (co.Button)
|
|||
|
c += ' mceToolbarEndButton';
|
|||
|
else if (co.SplitButton)
|
|||
|
c += ' mceToolbarEndSplitButton';
|
|||
|
else if (co.ListBox)
|
|||
|
c += ' mceToolbarEndListBox';
|
|||
|
|
|||
|
h += dom.createHTML('td', {'class' : c}, dom.createHTML('span', null, '<!-- IE -->'));
|
|||
|
|
|||
|
return dom.createHTML('table', {id : t.id, 'class' : 'mceToolbar' + (s['class'] ? ' ' + s['class'] : ''), cellpadding : '0', cellspacing : '0', align : t.settings.align || ''}, '<tbody><tr>' + h + '</tr></tbody>');
|
|||
|
}
|
|||
|
|
|||
|
/**#@-*/
|
|||
|
});
|