Don't display menu buttons when tool options panel open, and vice versa

This commit is contained in:
David Rowe 2017-08-21 16:04:34 +12:00
parent e34e8ff2c0
commit ca3eadb82f

View file

@ -912,13 +912,52 @@ ToolMenu = function (side, leftInputs, rightInputs, uiCommandCallback) {
return [menuPanelOverlay].concat(menuOverlays).concat(optionsOverlays); return [menuPanelOverlay].concat(menuOverlays).concat(optionsOverlays);
} }
function closeOptions() { function openMenu() {
var parentID,
properties,
i,
length;
parentID = menuPanelOverlay; // Menu panel parents to background panel.
for (i = 0, length = MENU_ITEMS.length; i < length; i += 1) {
properties = Object.clone(UI_ELEMENTS[MENU_ITEMS[i].type].properties);
properties = Object.merge(properties, MENU_ITEMS[i].properties);
properties.parentID = parentID;
menuOverlays.push(Overlays.addOverlay(UI_ELEMENTS[MENU_ITEMS[i].type].overlay, properties));
if (MENU_ITEMS[i].label) {
properties = Object.clone(UI_ELEMENTS.label.properties);
properties.text = MENU_ITEMS[i].label;
properties.parentID = menuOverlays[menuOverlays.length - 1];
Overlays.addOverlay(UI_ELEMENTS.label.overlay, properties);
}
parentID = menuOverlays[0]; // Menu buttons parent to menu panel.
}
}
function closeMenu() {
var i, var i,
length; length;
Overlays.editOverlay(highlightOverlay, { Overlays.editOverlay(highlightOverlay, {
parentID: menuOriginOverlay parentID: menuOriginOverlay
}); });
for (i = 0, length = menuOverlays.length; i < length; i += 1) {
Overlays.deleteOverlay(menuOverlays[i]);
}
menuOverlays = [];
}
function closeOptions() {
var i,
length;
// Remove options items.
Overlays.editOverlay(highlightOverlay, {
parentID: menuOriginOverlay
});
for (i = 0, length = optionsOverlays.length; i < length; i += 1) { for (i = 0, length = optionsOverlays.length; i < length; i += 1) {
Overlays.deleteOverlay(optionsOverlays[i]); Overlays.deleteOverlay(optionsOverlays[i]);
} }
@ -932,6 +971,9 @@ ToolMenu = function (side, leftInputs, rightInputs, uiCommandCallback) {
optionsItems = null; optionsItems = null;
isPicklistOpen = false; isPicklistOpen = false;
// Display menu items.
openMenu(true);
} }
function openOptions(toolOptions) { function openOptions(toolOptions) {
@ -947,15 +989,15 @@ ToolMenu = function (side, leftInputs, rightInputs, uiCommandCallback) {
i, i,
length; length;
// Close current panel, if any. // Remove menu items.
closeOptions(); closeMenu();
// TODO: Remove once all tools have an options panel. // TODO: Remove once all tools have an options panel.
if (OPTONS_PANELS[toolOptions] === undefined) { if (OPTONS_PANELS[toolOptions] === undefined) {
return; return;
} }
// Open specified panel. // Open specified options panel.
optionsItems = OPTONS_PANELS[toolOptions]; optionsItems = OPTONS_PANELS[toolOptions];
parentID = menuPanelOverlay; // Menu panel parents to background panel. parentID = menuPanelOverlay; // Menu panel parents to background panel.
for (i = 0, length = optionsItems.length; i < length; i += 1) { for (i = 0, length = optionsItems.length; i < length; i += 1) {
@ -1815,7 +1857,6 @@ ToolMenu = function (side, leftInputs, rightInputs, uiCommandCallback) {
// Creates and shows menu entities. // Creates and shows menu entities.
var handJointIndex, var handJointIndex,
properties, properties,
parentID,
id, id,
i, i,
length; length;
@ -1845,20 +1886,7 @@ ToolMenu = function (side, leftInputs, rightInputs, uiCommandCallback) {
menuPanelOverlay = Overlays.addOverlay("cube", properties); menuPanelOverlay = Overlays.addOverlay("cube", properties);
// Menu items. // Menu items.
parentID = menuPanelOverlay; // Menu panel parents to background panel. openMenu();
for (i = 0, length = MENU_ITEMS.length; i < length; i += 1) {
properties = Object.clone(UI_ELEMENTS[MENU_ITEMS[i].type].properties);
properties = Object.merge(properties, MENU_ITEMS[i].properties);
properties.parentID = parentID;
menuOverlays.push(Overlays.addOverlay(UI_ELEMENTS[MENU_ITEMS[i].type].overlay, properties));
if (MENU_ITEMS[i].label) {
properties = Object.clone(UI_ELEMENTS.label.properties);
properties.text = MENU_ITEMS[i].label;
properties.parentID = menuOverlays[menuOverlays.length - 1];
Overlays.addOverlay(UI_ELEMENTS.label.overlay, properties);
}
parentID = menuOverlays[0]; // Menu buttons parent to menu panel.
}
// Prepare highlight overlay. // Prepare highlight overlay.
properties = Object.clone(HIGHLIGHT_PROPERTIES); properties = Object.clone(HIGHLIGHT_PROPERTIES);