kopia lustrzana https://github.com/c9/core
add context menu for panels
rodzic
4d2e522290
commit
76ee1e289c
|
@ -1,5 +1,5 @@
|
||||||
define(function(require, module, exports) {
|
define(function(require, module, exports) {
|
||||||
main.consumes = ["Plugin", "layout", "settings", "anims", "ui"];
|
main.consumes = ["Plugin", "layout", "settings", "anims", "ui", "menus"];
|
||||||
main.provides = ["panels.Area"];
|
main.provides = ["panels.Area"];
|
||||||
return main;
|
return main;
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ define(function(require, module, exports) {
|
||||||
var layout = imports.layout;
|
var layout = imports.layout;
|
||||||
var anims = imports.anims;
|
var anims = imports.anims;
|
||||||
var ui = imports.ui;
|
var ui = imports.ui;
|
||||||
|
var menus = imports.menus;
|
||||||
var settings = imports.settings;
|
var settings = imports.settings;
|
||||||
|
|
||||||
var uCaseFirst = require("c9/string").uCaseFirst;
|
var uCaseFirst = require("c9/string").uCaseFirst;
|
||||||
|
@ -43,6 +44,23 @@ define(function(require, module, exports) {
|
||||||
column.setWidth(CURWIDTH);
|
column.setWidth(CURWIDTH);
|
||||||
column.setAttribute("class", where);
|
column.setAttribute("class", where);
|
||||||
|
|
||||||
|
column.oncontextmenu = function(e) {
|
||||||
|
var menu = menus.get("Window").menu;
|
||||||
|
menu.display(e.x, e.y);
|
||||||
|
menu.childNodes.forEach(function(x) {
|
||||||
|
if (x.visible && !x.panel) {
|
||||||
|
x.hide();
|
||||||
|
menu.on("prop.visible", function show(e) {
|
||||||
|
if (!e.value) {
|
||||||
|
menu.off("prop.visible", show);
|
||||||
|
x.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
// Prevent scrolling
|
// Prevent scrolling
|
||||||
column.$int.addEventListener("scroll", function(e){
|
column.$int.addEventListener("scroll", function(e){
|
||||||
column.$int.scrollTop = 0;
|
column.$int.scrollTop = 0;
|
||||||
|
|
|
@ -46,8 +46,11 @@ define(function(require, module, exports) {
|
||||||
area.enablePanel(plugin.name);
|
area.enablePanel(plugin.name);
|
||||||
else
|
else
|
||||||
area.disablePanel(plugin.name);
|
area.disablePanel(plugin.name);
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mnuItem.panel = plugin;
|
||||||
|
|
||||||
menus.addItemByPath("Window/" + caption, mnuItem, index, plugin);
|
menus.addItemByPath("Window/" + caption, mnuItem, index, plugin);
|
||||||
|
|
||||||
panels.on("showPanel" + uCaseFirst(plugin.name), function(e) {
|
panels.on("showPanel" + uCaseFirst(plugin.name), function(e) {
|
||||||
|
@ -206,9 +209,10 @@ define(function(require, module, exports) {
|
||||||
caption: caption,
|
caption: caption,
|
||||||
auto: false,
|
auto: false,
|
||||||
"class" : buttonCSSClass || "",
|
"class" : buttonCSSClass || "",
|
||||||
onmousedown: function(){
|
onmousedown: function(e){
|
||||||
|
if (e.htmlEvent && e.htmlEvent.button) return;
|
||||||
panels.areas[where].toggle(plugin.name, autohide, true);
|
panels.areas[where].toggle(plugin.name, autohide, true);
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
plugin.addElement(button);
|
plugin.addElement(button);
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue