//// menuExample.js// examples//// Created by Brad Hefta-Gaub on 2/24/14// Copyright 2013 High Fidelity, Inc.//// This is an example script that demonstrates use of the Menu object//// Distributed under the Apache License, Version 2.0.// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// function setupMenus() { if (!Menu.menuExists("Foo")) { Window.alert("Adding Menu Foo!"); Menu.addMenu("Foo"); Menu.addMenuItem("Foo","Foo item 1", "SHIFT+CTRL+F" ); Menu.addMenuItem("Foo","Foo item 2", "SHIFT+F" ); Menu.addMenuItem("Foo","Foo item 3", "META+F" ); Menu.addMenuItem({ menuName: "Foo", menuItemName: "Foo item 4", isCheckable: true, isChecked: true }); Menu.addMenuItem({ menuName: "Foo", menuItemName: "Foo item 5", shortcutKey: "ALT+F", isCheckable: true }); Menu.addSeparator("Foo","Removable Tools"); Menu.addMenuItem("Foo","Remove Foo item 4"); Menu.addMenuItem("Foo","Remove Foo"); Menu.addMenuItem("Foo","Remove Bar-Spam"); Menu.addMenuItem("Foo","Remove Spam item 2"); Menu.addMenuItem({ menuName: "Foo", menuItemName: "Remove Spam item 2" }); } else { Window.alert("Menu Foo already exists!"); } if (!Menu.menuExists("Bar")) { Window.alert("Adding Menu Bar!"); Menu.addMenu("Bar"); Menu.addMenuItem("Bar","Bar item 1", "b"); Menu.addMenuItem({ menuName: "Bar", menuItemName: "Bar item 2", shortcutKeyEvent: { text: "B", isControl: true } }); Menu.addMenu("Bar > Spam"); Menu.addMenuItem("Bar > Spam","Spam item 1"); Menu.addMenuItem({ menuName: "Bar > Spam", menuItemName: "Spam item 2", isCheckable: true, isChecked: false }); Menu.addSeparator("Bar > Spam","Other Items"); Menu.addMenuItem("Bar > Spam","Remove Spam item 2"); } if (Menu.menuItemExists("Edit","Cut")) { Window.alert("Menu Item Cut exist adding 'before Cut'."); Menu.addMenuItem({ menuName: "Edit", menuItemName: "before Cut", beforeItem: "Cut" }); } else { Window.alert("Menu Item Cut doesn't exist!"); } if (Menu.menuItemExists("Edit","Nudge")) { Window.alert("Menu Item Nudge exist adding 'after Nudge'."); Menu.addMenuItem({ menuName: "Edit", menuItemName: "after Nudge", afterItem: "Nudge" }); } else { Window.alert("Menu Item Nudge doesn't exist!"); }} function scriptEnding() { print("SCRIPT ENDNG!!!\n"); Menu.removeMenu("Foo"); Menu.removeMenu("Bar"); Menu.removeMenuItem("Edit", "before Cut"); Menu.removeMenuItem("Edit", "after Nudge"); } function menuItemEvent(menuItem) { print("menuItemEvent() in JS... menuItem=" + menuItem); if (menuItem == "Foo item 4") { print(" checked=" + Menu.isOptionChecked("Foo item 4")); } if (menuItem == "Remove Foo item 4") { Menu.removeMenuItem("Foo", "Foo item 4"); } if (menuItem == "Remove Foo") { Menu.removeMenu("Foo"); } if (menuItem == "Remove Bar-Spam") { Menu.removeMenu("Bar > Spam"); } if (menuItem == "Remove Spam item 2") { Menu.removeMenuItem("Bar > Spam", "Spam item 2"); }} setupMenus(); // register our scriptEnding callbackScript.scriptEnding.connect(scriptEnding); Menu.menuItemEvent.connect(menuItemEvent);
//
// menuExample.js
// examples
//
// Created by Brad Hefta-Gaub on 2/24/14
// Copyright 2013 High Fidelity, Inc.
//
// This is an example script that demonstrates use of the Menu object
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
function setupMenus() {
if (!Menu.menuExists("Foo")) {
Window.alert("Adding Menu Foo!");
Menu.addMenu("Foo");
Menu.addMenuItem("Foo","Foo item 1", "SHIFT+CTRL+F" );
Menu.addMenuItem("Foo","Foo item 2", "SHIFT+F" );
Menu.addMenuItem("Foo","Foo item 3", "META+F" );
Menu.addMenuItem({
menuName: "Foo",
menuItemName: "Foo item 4",
isCheckable: true,
isChecked: true
});
Menu.addMenuItem({
menuName: "Foo",
menuItemName: "Foo item 5",
shortcutKey: "ALT+F",
isCheckable: true
});
Menu.addSeparator("Foo","Removable Tools");
Menu.addMenuItem("Foo","Remove Foo item 4");
Menu.addMenuItem("Foo","Remove Foo");
Menu.addMenuItem("Foo","Remove Bar-Spam");
Menu.addMenuItem("Foo","Remove Spam item 2");
Menu.addMenuItem({
menuName: "Foo",
menuItemName: "Remove Spam item 2"
});
} else {
Window.alert("Menu Foo already exists!");
}
if (!Menu.menuExists("Bar")) {
Window.alert("Adding Menu Bar!");
Menu.addMenu("Bar");
Menu.addMenuItem("Bar","Bar item 1", "b");
Menu.addMenuItem({
menuName: "Bar",
menuItemName: "Bar item 2",
shortcutKeyEvent: { text: "B", isControl: true }
});
Menu.addMenu("Bar > Spam");
Menu.addMenuItem("Bar > Spam","Spam item 1");
Menu.addMenuItem({
menuName: "Bar > Spam",
menuItemName: "Spam item 2",
isCheckable: true,
isChecked: false
});
Menu.addSeparator("Bar > Spam","Other Items");
Menu.addMenuItem("Bar > Spam","Remove Spam item 2");
}
if (Menu.menuItemExists("Edit","Cut")) {
Window.alert("Menu Item Cut exist adding 'before Cut'.");
Menu.addMenuItem({
menuName: "Edit",
menuItemName: "before Cut",
beforeItem: "Cut"
});
} else {
Window.alert("Menu Item Cut doesn't exist!");
}
if (Menu.menuItemExists("Edit","Nudge")) {
Window.alert("Menu Item Nudge exist adding 'after Nudge'.");
Menu.addMenuItem({
menuName: "Edit",
menuItemName: "after Nudge",
afterItem: "Nudge"
});
} else {
Window.alert("Menu Item Nudge doesn't exist!");
}
}
function scriptEnding() {
print("SCRIPT ENDNG!!!\n");
Menu.removeMenu("Foo");
Menu.removeMenu("Bar");
Menu.removeMenuItem("Edit", "before Cut");
Menu.removeMenuItem("Edit", "after Nudge");
}
function menuItemEvent(menuItem) {
print("menuItemEvent() in JS... menuItem=" + menuItem);
if (menuItem == "Foo item 4") {
print(" checked=" + Menu.isOptionChecked("Foo item 4"));
}
if (menuItem == "Remove Foo item 4") {
Menu.removeMenuItem("Foo", "Foo item 4");
}
if (menuItem == "Remove Foo") {
Menu.removeMenu("Foo");
}
if (menuItem == "Remove Bar-Spam") {
Menu.removeMenu("Bar > Spam");
}
if (menuItem == "Remove Spam item 2") {
Menu.removeMenuItem("Bar > Spam", "Spam item 2");
}
}
setupMenus();
// register our scriptEnding callback
Script.scriptEnding.connect(scriptEnding);
Menu.menuItemEvent.connect(menuItemEvent);