114 lines
2.6 KiB
JavaScript
Executable File
114 lines
2.6 KiB
JavaScript
Executable File
/**
|
|
* Layout.js
|
|
*
|
|
* Copyright, Moxiecode Systems AB
|
|
* Released under LGPL License.
|
|
*
|
|
* License: http://www.tinymce.com/license
|
|
* Contributing: http://www.tinymce.com/contributing
|
|
*/
|
|
|
|
/**
|
|
* Base layout manager class.
|
|
*
|
|
* @class tinymce.ui.Layout
|
|
*/
|
|
define("tinymce/ui/Layout", [
|
|
"tinymce/util/Class",
|
|
"tinymce/util/Tools"
|
|
], function(Class, Tools) {
|
|
"use strict";
|
|
|
|
return Class.extend({
|
|
Defaults: {
|
|
firstControlClass: 'first',
|
|
lastControlClass: 'last'
|
|
},
|
|
|
|
/**
|
|
* Constructs a layout instance with the specified settings.
|
|
*
|
|
* @constructor
|
|
* @param {Object} settings Name/value object with settings.
|
|
*/
|
|
init: function(settings) {
|
|
this.settings = Tools.extend({}, this.Defaults, settings);
|
|
},
|
|
|
|
/**
|
|
* This method gets invoked before the layout renders the controls.
|
|
*
|
|
* @method preRender
|
|
* @param {tinymce.ui.Container} container Container instance to preRender.
|
|
*/
|
|
preRender: function(container) {
|
|
container.addClass(this.settings.containerClass, 'body');
|
|
},
|
|
|
|
/**
|
|
* Applies layout classes to the container.
|
|
*
|
|
* @private
|
|
*/
|
|
applyClasses: function(container) {
|
|
var self = this, settings = self.settings, items, firstClass, lastClass;
|
|
|
|
items = container.items().filter(':visible');
|
|
firstClass = settings.firstControlClass;
|
|
lastClass = settings.lastControlClass;
|
|
|
|
items.each(function(item) {
|
|
item.removeClass(firstClass).removeClass(lastClass);
|
|
|
|
if (settings.controlClass) {
|
|
item.addClass(settings.controlClass);
|
|
}
|
|
});
|
|
|
|
items.eq(0).addClass(firstClass);
|
|
items.eq(-1).addClass(lastClass);
|
|
},
|
|
|
|
/**
|
|
* Renders the specified container and any layout specific HTML.
|
|
*
|
|
* @method renderHtml
|
|
* @param {tinymce.ui.Container} container Container to render HTML for.
|
|
*/
|
|
renderHtml: function(container) {
|
|
var self = this, settings = self.settings, items, html = '';
|
|
|
|
items = container.items();
|
|
items.eq(0).addClass(settings.firstControlClass);
|
|
items.eq(-1).addClass(settings.lastControlClass);
|
|
|
|
items.each(function(item) {
|
|
if (settings.controlClass) {
|
|
item.addClass(settings.controlClass);
|
|
}
|
|
|
|
html += item.renderHtml();
|
|
});
|
|
|
|
return html;
|
|
},
|
|
|
|
/**
|
|
* Recalculates the positions of the controls in the specified container.
|
|
*
|
|
* @method recalc
|
|
* @param {tinymce.ui.Container} container Container instance to recalc.
|
|
*/
|
|
recalc: function() {
|
|
},
|
|
|
|
/**
|
|
* This method gets invoked after the layout renders the controls.
|
|
*
|
|
* @method postRender
|
|
* @param {tinymce.ui.Container} container Container instance to postRender.
|
|
*/
|
|
postRender: function() {
|
|
}
|
|
});
|
|
}); |