]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/debian/missing-sources/framework/Web/Javascripts/source/tinymce-405/classes/ui/PanelButton.js
baculum: Add missing-sources directory in debian metadata structure
[bacula/bacula] / gui / baculum / debian / missing-sources / framework / Web / Javascripts / source / tinymce-405 / classes / ui / PanelButton.js
1 /**
2  * PanelButton.js
3  *
4  * Copyright, Moxiecode Systems AB
5  * Released under LGPL License.
6  *
7  * License: http://www.tinymce.com/license
8  * Contributing: http://www.tinymce.com/contributing
9  */
10
11 /**
12  * Creates a new panel button.
13  *
14  * @class tinymce.ui.PanelButton
15  * @extends tinymce.ui.Button
16  */
17 define("tinymce/ui/PanelButton", [
18         "tinymce/ui/Button",
19         "tinymce/ui/FloatPanel"
20 ], function(Button, FloatPanel) {
21         "use strict";
22
23         return Button.extend({
24                 /**
25                  * Shows the panel for the button.
26                  *
27                  * @method showPanel
28                  */
29                 showPanel: function() {
30                         var self = this, settings = self.settings;
31
32                         settings.panel.popover = true;
33                         settings.panel.autohide = true;
34                         self.active(true);
35
36                         if (!self.panel) {
37                                 self.panel = new FloatPanel(settings.panel).on('hide', function() {
38                                         self.active(false);
39                                 }).parent(self).renderTo(self.getContainerElm());
40                                 self.panel.fire('show');
41                                 self.panel.reflow();
42                         } else {
43                                 self.panel.show();
44                         }
45
46                         self.panel.moveRel(self.getEl(), settings.popoverAlign || 'bc-tc');
47                 },
48
49                 /**
50                  * Hides the panel for the button.
51                  *
52                  * @method hidePanel
53                  */
54                 hidePanel: function() {
55                         var self = this;
56
57                         if (self.panel) {
58                                 self.panel.hide();
59                         }
60                 },
61
62                 /**
63                  * Called after the control has been rendered.
64                  *
65                  * @method postRender
66                  */
67                 postRender: function() {
68                         var self = this;
69
70                         self.on('click', function(e) {
71                                 if (e.control === self) {
72                                         if (self.panel && self.panel.visible()) {
73                                                 self.hidePanel();
74                                         } else {
75                                                 self.showPanel();
76                                         }
77                                 }
78                         });
79
80                         return self._super();
81                 }
82         });
83 });