134 lines · 3.1 KB · JavaScript
RawDownload
////  directory.js//  examples////  Created by David Rowe on 8 Jun 2015//  Copyright 2015 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// Script.include([    "libraries/toolBars.js",]); var toolIconUrl = Script.resolvePath("assets/images/tools/"); var DIRECTORY_WINDOW_URL = Account.metaverseServerURL + "/directory";var directoryWindow = new OverlayWebWindow({    title: 'Directory',    source: "about:blank",    width: 900,    height: 700,    visible: false}); var toolHeight = 50;var toolWidth = 50;var TOOLBAR_MARGIN_Y = 0;  function showDirectory() {    directoryWindow.setURL(DIRECTORY_WINDOW_URL);    directoryWindow.setVisible(true);} function hideDirectory() {    directoryWindow.setVisible(false);    directoryWindow.setURL("about:blank");} function toggleDirectory() {    if (directoryWindow.visible) {        hideDirectory();    } else {        showDirectory();    }} var toolBar = (function() {    var that = {},        toolBar,        browseDirectoryButton;     function initialize() {        toolBar = new ToolBar(0, 0, ToolBar.HORIZONTAL, "highfidelity.directory.toolbar", function(windowDimensions, toolbar) {            return {                x: windowDimensions.x / 2,                  y: windowDimensions.y            };        }, {            x: -2 * toolWidth,            y: -TOOLBAR_MARGIN_Y - toolHeight        });        browseDirectoryButton = toolBar.addTool({            imageURL: toolIconUrl + "directory.svg",            subImage: {                x: 0,                y: Tool.IMAGE_WIDTH,                width: Tool.IMAGE_WIDTH,                height: Tool.IMAGE_HEIGHT            },            width: toolWidth,            height: toolHeight,            alpha: 0.9,            visible: true        });         toolBar.showTool(browseDirectoryButton, true);    }     var browseDirectoryButtonDown = false;    that.mousePressEvent = function(event) {        var clickedOverlay,            url,            file;         if (!event.isLeftButton) {            // if another mouse button than left is pressed ignore it            return false;        }         clickedOverlay = Overlays.getOverlayAtPoint({            x: event.x,            y: event.y        });           if (browseDirectoryButton === toolBar.clicked(clickedOverlay)) {            toggleDirectory();            return true;        }         return false;    };     that.mouseReleaseEvent = function(event) {        var handled = false;          if (browseDirectoryButtonDown) {            var clickedOverlay = Overlays.getOverlayAtPoint({                x: event.x,                y: event.y            });        }         newModelButtonDown = false;        browseDirectoryButtonDown = false;         return handled;    }     that.cleanup = function() {        toolBar.cleanup();    };     initialize();    return that;}()); Controller.mousePressEvent.connect(toolBar.mousePressEvent)Script.scriptEnding.connect(toolBar.cleanup);