83 Zeilen
1.6 KiB
JavaScript
Ausführbare Datei
83 Zeilen
1.6 KiB
JavaScript
Ausführbare Datei
/**
|
|
* PanelButton.js
|
|
*
|
|
* Copyright, Moxiecode Systems AB
|
|
* Released under LGPL License.
|
|
*
|
|
* License: http://www.tinymce.com/license
|
|
* Contributing: http://www.tinymce.com/contributing
|
|
*/
|
|
|
|
/**
|
|
* Creates a new panel button.
|
|
*
|
|
* @class tinymce.ui.PanelButton
|
|
* @extends tinymce.ui.Button
|
|
*/
|
|
define("tinymce/ui/PanelButton", [
|
|
"tinymce/ui/Button",
|
|
"tinymce/ui/FloatPanel"
|
|
], function(Button, FloatPanel) {
|
|
"use strict";
|
|
|
|
return Button.extend({
|
|
/**
|
|
* Shows the panel for the button.
|
|
*
|
|
* @method showPanel
|
|
*/
|
|
showPanel: function() {
|
|
var self = this, settings = self.settings;
|
|
|
|
settings.panel.popover = true;
|
|
settings.panel.autohide = true;
|
|
self.active(true);
|
|
|
|
if (!self.panel) {
|
|
self.panel = new FloatPanel(settings.panel).on('hide', function() {
|
|
self.active(false);
|
|
}).parent(self).renderTo(self.getContainerElm());
|
|
self.panel.fire('show');
|
|
self.panel.reflow();
|
|
} else {
|
|
self.panel.show();
|
|
}
|
|
|
|
self.panel.moveRel(self.getEl(), settings.popoverAlign || 'bc-tc');
|
|
},
|
|
|
|
/**
|
|
* Hides the panel for the button.
|
|
*
|
|
* @method hidePanel
|
|
*/
|
|
hidePanel: function() {
|
|
var self = this;
|
|
|
|
if (self.panel) {
|
|
self.panel.hide();
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Called after the control has been rendered.
|
|
*
|
|
* @method postRender
|
|
*/
|
|
postRender: function() {
|
|
var self = this;
|
|
|
|
self.on('click', function(e) {
|
|
if (e.control === self) {
|
|
if (self.panel && self.panel.visible()) {
|
|
self.hidePanel();
|
|
} else {
|
|
self.showPanel();
|
|
}
|
|
}
|
|
});
|
|
|
|
return self._super();
|
|
}
|
|
});
|
|
}); |