diff --git a/scripts/vr-edit/modules/createPalette.js b/scripts/vr-edit/modules/createPalette.js index ad76659d04..362551edac 100644 --- a/scripts/vr-edit/modules/createPalette.js +++ b/scripts/vr-edit/modules/createPalette.js @@ -23,6 +23,8 @@ CreatePalette = function (side, leftInputs, rightInputs, uiCommandCallback) { paletteItemOverlays = [], paletteItemPositions = [], paletteItemHoverOverlays = [], + iconOverlays = [], + staticOverlays = [], LEFT_HAND = 0, @@ -297,6 +299,21 @@ CreatePalette = function (side, leftInputs, rightInputs, uiCommandCallback) { return [palettePanelOverlay, paletteHeaderHeadingOverlay, paletteHeaderBarOverlay].concat(paletteItemOverlays); } + function setVisible(visible) { + var i, + length; + + for (i = 0, length = staticOverlays.length; i < length; i += 1) { + Overlays.editOverlay(staticOverlays[i], { visible: visible }); + } + + if (!visible) { + for (i = 0, length = paletteItemHoverOverlays.length; i < length; i += 1) { + Overlays.editOverlay(paletteItemHoverOverlays[i], { visible: false }); + } + } + } + function update(intersectionOverlayID) { var itemIndex, isTriggerClicked, @@ -432,9 +449,13 @@ CreatePalette = function (side, leftInputs, rightInputs, uiCommandCallback) { properties = Object.merge(properties, PALETTE_ITEMS[i].icon.properties); properties.parentID = paletteItemHoverOverlays[i]; properties.url = Script.resolvePath(properties.url); - Overlays.addOverlay(PALETTE_ITEM.icon.overlay, properties); + iconOverlays[i] = Overlays.addOverlay(PALETTE_ITEM.icon.overlay, properties); } + // Always-visible overlays. + staticOverlays = [].concat(paletteHeaderHeadingOverlay, paletteHeaderBarOverlay, paletteTitleOverlay, + palettePanelOverlay, paletteItemOverlays, iconOverlays); + isDisplaying = true; } @@ -446,6 +467,8 @@ CreatePalette = function (side, leftInputs, rightInputs, uiCommandCallback) { Overlays.deleteOverlay(paletteOriginOverlay); // Automatically deletes all other overlays because they're children. paletteItemOverlays = []; paletteItemHoverOverlays = []; + iconOverlays = []; + staticOverlays = []; isDisplaying = false; } @@ -455,7 +478,8 @@ CreatePalette = function (side, leftInputs, rightInputs, uiCommandCallback) { return { setHand: setHand, - entityIDs: getEntityIDs, + entityIDs: getEntityIDs, // TODO: Rename to overlayIDs. + setVisible: setVisible, update: update, display: display, clear: clear, diff --git a/scripts/vr-edit/modules/toolsMenu.js b/scripts/vr-edit/modules/toolsMenu.js index 0d208ed09f..e1ce5bbba1 100644 --- a/scripts/vr-edit/modules/toolsMenu.js +++ b/scripts/vr-edit/modules/toolsMenu.js @@ -31,6 +31,7 @@ ToolsMenu = function (side, leftInputs, rightInputs, uiCommandCallback) { menuOverlays = [], menuHoverOverlays = [], + menuLabelOverlays = [], menuEnabled = [], optionsOverlays = [], @@ -39,6 +40,7 @@ ToolsMenu = function (side, leftInputs, rightInputs, uiCommandCallback) { optionsOverlaysSublabels = [], // Overlay IDs of sublabels for optionsOverlays. optionsSliderData = [], // Uses same index values as optionsOverlays. optionsColorData = [], // Uses same index values as optionsOverlays. + optionsExtraOverlays = [], optionsEnabled = [], optionsSettings = { //