From 4d0a25b6ea0e3ff41e1561013b960e9b81622913 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Tue, 25 Feb 2014 13:05:58 -0800 Subject: [PATCH] add menus to editVoxels.js --- examples/editVoxels.js | 103 +++++++++++++++++++++++++++-------------- 1 file changed, 68 insertions(+), 35 deletions(-) diff --git a/examples/editVoxels.js b/examples/editVoxels.js index 53d3869075..949de2e852 100644 --- a/examples/editVoxels.js +++ b/examples/editVoxels.js @@ -1012,43 +1012,78 @@ function keyReleaseEvent(event) { // handle clipboard items if (selectToolSelected) { - var pickRay = Camera.computePickRay(trackLastMouseX, trackLastMouseY); - var intersection = Voxels.findRayIntersection(pickRay); - selectedVoxel = calculateVoxelFromIntersection(intersection,"select"); - - // Note: this sample uses Alt+ as the key codes for these clipboard items - if ((event.key == 199 || event.key == 67 || event.text == "C" || event.text == "c") && event.isAlt) { - print("the Alt+C key was pressed... copy"); - Clipboard.copyVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); - } - if ((event.key == 8776 || event.key == 88 || event.text == "X" || event.text == "x") && event.isAlt) { - print("the Alt+X key was pressed... cut"); - Clipboard.cutVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); - } - if ((event.key == 8730 || event.key == 86 || event.text == "V" || event.text == "v") && event.isAlt) { - print("the Alt+V key was pressed... paste"); - Clipboard.pasteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); - } - if (event.text == "DELETE" || event.text == "BACKSPACE") { - print("the DELETE/BACKSPACE key was pressed... delete"); + // menu tied to BACKSPACE, so we handle DELETE key here... + if (event.text == "DELETE") { + var pickRay = Camera.computePickRay(trackLastMouseX, trackLastMouseY); + var intersection = Voxels.findRayIntersection(pickRay); + selectedVoxel = calculateVoxelFromIntersection(intersection,"select"); + print("the DELETE key was pressed... delete"); Clipboard.deleteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); } - - if ((event.text == "E" || event.text == "e") && event.isMeta) { - print("the Ctl+E key was pressed... export"); - Clipboard.exportVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); - } - if ((event.text == "I" || event.text == "i") && event.isMeta) { - print("the Ctl+I key was pressed... import"); - Clipboard.importVoxels(); - } - if ((event.key == 78 || event.text == "N" || event.text == "n") && event.isMeta) { - print("the Ctl+N key was pressed, nudging to left 1 meter... nudge"); - Clipboard.nudgeVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s, { x: -1, y: 0, z: 0 }); - } } } +function setupMenus() { + // hook up menus + Menu.menuItemEvent.connect(menuItemEvent); + + // delete the standard application menu item + Menu.removeMenuItem("Edit", "Cut"); + Menu.removeMenuItem("Edit", "Copy"); + Menu.removeMenuItem("Edit", "Paste"); + Menu.removeMenuItem("Edit", "Delete"); + Menu.removeMenuItem("Edit", "Nudge"); + Menu.removeMenuItem("File", "Export Voxels"); + Menu.removeMenuItem("File", "Import Voxels"); + + // delete the standard application menu item + Menu.addMenuItem({ menuName: "Edit", menuItemName: "Cut", shortcutKey: "CTRL+X", afterItem: "Voxels" }); + Menu.addMenuItem({ menuName: "Edit", menuItemName: "Copy", shortcutKey: "CTRL+C", afterItem: "Cut" }); + Menu.addMenuItem({ menuName: "Edit", menuItemName: "Paste", shortcutKey: "CTRL+V", afterItem: "Copy" }); + Menu.addMenuItem({ menuName: "Edit", menuItemName: "Nudge", shortcutKey: "CTRL+N", afterItem: "Paste" }); + Menu.addMenuItem({ menuName: "Edit", menuItemName: "Delete", shortcutKeyEvent: { text: "backspace" }, afterItem: "Nudge" }); + Menu.addMenuItem({ menuName: "File", menuItemName: "Export Voxels", shortcutKey: "CTRL+E", afterItem: "Voxels" }); + Menu.addMenuItem({ menuName: "File", menuItemName: "Import Voxels", shortcutKey: "CTRL+I", afterItem: "Export Voxels" }); +} + +function menuItemEvent(menuItem) { + + // handle clipboard items + if (selectToolSelected) { + var pickRay = Camera.computePickRay(trackLastMouseX, trackLastMouseY); + var intersection = Voxels.findRayIntersection(pickRay); + selectedVoxel = calculateVoxelFromIntersection(intersection,"select"); + if (menuItem == "Copy") { + print("copying..."); + Clipboard.copyVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); + } + if (menuItem == "Cut") { + print("cutting..."); + Clipboard.cutVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); + } + if (menuItem == "Paste") { + print("pasting..."); + Clipboard.pasteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); + } + if (menuItem == "Delete") { + print("deleting..."); + Clipboard.deleteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); + } + + if (menuItem == "Export Voxels") { + print("export"); + Clipboard.exportVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s); + } + if (menuItem == "Import Voxels") { + print("import"); + Clipboard.importVoxels(); + } + if (menuItem == "Nudge") { + print("nudge"); + Clipboard.nudgeVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s, { x: -1, y: 0, z: 0 }); + } + } +} function mouseMoveEvent(event) { if (!editToolsOn) { @@ -1403,8 +1438,6 @@ function scriptEnding() { } Script.scriptEnding.connect(scriptEnding); - Script.willSendVisualDataCallback.connect(update); - - +setupMenus();