diff --git a/editor/css/editor.css b/editor/css/editor.css index ea32a7da121b4c0a4c3c191a96f17a4562220278..e5b20484140b0fd6c87fa5671287146bcadb5c0d 100644 --- a/editor/css/editor.css +++ b/editor/css/editor.css @@ -13,3 +13,7 @@ div#ks-editor section > * { div#ks-editor *.selected { background-color: lightblue; } + +div#ks-editor *.hidden { + display: none; +} diff --git a/editor/editor.php b/editor/editor.php index 96866b5b68ddb17b7c521ec049b969d853b2aa76..6818b7b02a282d897bc3630461d7148cf2c1b7fa 100644 --- a/editor/editor.php +++ b/editor/editor.php @@ -2,6 +2,7 @@ <h1>Interface</h1> <div id="2d-graph"></div> <section id="toolbar"></section> + <section id="tool-menu" class="hidden"></section> <section> <h3 id="selected-item">Nothing selected</h3> <ul id="selected-params"></ul> diff --git a/editor/js/state.js b/editor/js/state.js index d779f3dd07b89a439c9c0289176fc3990b5d19e5..f160dea7f54d8663278685cdeb9e55b6fc2a55e2 100644 --- a/editor/js/state.js +++ b/editor/js/state.js @@ -49,7 +49,7 @@ export class State extends Tool { } if (this.tool !== undefined) { - this.tool.onToolDeactivate(tool); + this.tool.deactivateTool(tool); } this.previousTool = this.tool; @@ -57,7 +57,7 @@ export class State extends Tool { this.display.setSelectedTool(tool); if (this.tool !== undefined) { - this.tool.onToolActivate(); + this.tool.activateTool(); } } diff --git a/editor/js/tools/menus/connectmenu.js b/editor/js/tools/menus/connectmenu.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/editor/js/tools/menus/toolmenu.js b/editor/js/tools/menus/toolmenu.js new file mode 100644 index 0000000000000000000000000000000000000000..aeba38883633fe023d7fbc31af460af872947bd2 --- /dev/null +++ b/editor/js/tools/menus/toolmenu.js @@ -0,0 +1,16 @@ +import jQuery from "jquery"; + +export default class ToolMenu { + constructor(tool) { + this.tool = tool; + this.menuId = this.tool.getKey() + "-menu"; + } + + show() { + jQuery("#" + this.menuId).removeClass("hidden"); + } + + hide() { + jQuery("#" + this.menuId).addClass("hidden"); + } +} diff --git a/editor/js/tools/tool.js b/editor/js/tools/tool.js index e3fade0276387f02f241a2fa77797eef2f48392e..e2470d83fac6b820bf01f16b191f5f87f914e25f 100644 --- a/editor/js/tools/tool.js +++ b/editor/js/tools/tool.js @@ -4,6 +4,7 @@ export default class Tool { this.icon = icon; this.key = key; this.warnings = false; + this.menu = undefined; } getName() { @@ -18,18 +19,28 @@ export default class Tool { return this.icon; } - onToolActivate() { - if (this.warnings) { - console.warn('Method "onToolActivate" not implemented.'); + activateTool() { + if (this.menu !== undefined) { + this.menu.show(); } + + this.onToolActivate(); } - onToolDeactivate(nextTool) { - if (this.warnings) { - console.warn('Method "onToolDeactivate" not implemented.'); + deactivateTool(nextTool) { + this.onToolDeactivate(nextTool); + + if (this.menu !== undefined) { + this.menu.hide(); } } + onToolActivate() { + } + + onToolDeactivate(nextTool) { + } + onNodeClick(node) { if (this.warnings) { console.warn('Method "onNodeClick" not implemented.');