- $('.panel-toolbar select', this).val(self.options.panels[index].url);
- });
- }
-
- panelRoot.makeHorizPanel({}); // TODO: this probably doesn't belong into jQuery
- panelRoot.css('top', ($('#header').outerHeight() ) + 'px');
+ });
+ });
+
+ // connect action buttons
+ var action_buttons = $('*.toolbar-button-groups-container button', toolbar);
+ action_buttons.each(function() {
+ var button = $(this);
+ var hk = button.attr('ui:hotkey');
+
+ var callback = function() {
+ editor.callScriptlet(button.attr('ui:action'),
+ self, eval(button.attr('ui:action-params')) );
+ };
+
+ // connect button
+ button.click(callback);
+
+ // connect hotkey
+ if(hk) self.hotkeys[parseInt(hk)] = callback;
+
+ // tooltip
+ if (button.attr('ui:tooltip') )
+ {
+ var tooltip = button.attr('ui:tooltip');
+ if(hk) tooltip += ' [Alt+'+hk+']';
+
+ button.wTooltip({
+ delay: 1000,
+ style: {
+ border: "1px solid #7F7D67",
+ opacity: 0.9,
+ background: "#FBFBC6",
+ padding: "1px",
+ fontSize: "12px"
+ },
+ content: tooltip
+ });
+ }
+ });
+}
+
+Panel.prototype.hotkeyPressed = function(event)
+{
+ var callback = this.hotkeys[event.keyCode];
+ if(callback) callback();
+}
+
+Panel.prototype.isHotkey = function(event) {
+ if( event.altKey && (this.hotkeys[event.keyCode] != null) )
+ return true;
+ return false;
+}
+
+//
+Panel.prototype.fireEvent = function(name) {
+ $(document).trigger('panel:'+name, this);
+}
+
+function Editor()
+{
+ this.rootDiv = $('#panels');
+ this.popupQueue = [];
+ this.autosaveTimer = null;
+ this.scriplets = {};
+}
+
+Editor.prototype.setupUI = function() {
+ // set up the UI visually and attach callbacks
+ var self = this;
+
+ self.rootDiv.makeHorizPanel({}); // TODO: this probably doesn't belong into jQuery
+ // self.rootDiv.css('top', ($('#header').outerHeight() ) + 'px');