From 3a32472b0ba12f79296268656b0382f4b5f9fcb1 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Wed, 4 Jul 2018 02:49:20 +0200 Subject: [PATCH] added test / more docs --- interface/resources/qml/InteractiveWindow.qml | 2 +- .../src/scripting/DesktopScriptingInterface.h | 5 +++ libraries/ui/src/InteractiveWindow.h | 1 - .../developer/tests/interactiveWindowTest.js | 34 +++++++++++++++++++ 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 scripts/developer/tests/interactiveWindowTest.js diff --git a/interface/resources/qml/InteractiveWindow.qml b/interface/resources/qml/InteractiveWindow.qml index e7a5585912..9c4e10975e 100644 --- a/interface/resources/qml/InteractiveWindow.qml +++ b/interface/resources/qml/InteractiveWindow.qml @@ -102,8 +102,8 @@ Windows.Window { shown = false; if (nativeWindow) { contentHolder.parent = nativeWindow.contentItem; - nativeWindow.setVisible(interactiveWindowVisible); updateInteractiveWindowPositionForMode(); + nativeWindow.setVisible(interactiveWindowVisible); } } else if (presentationMode === modeNotSet) { console.error("presentationMode should be set."); diff --git a/interface/src/scripting/DesktopScriptingInterface.h b/interface/src/scripting/DesktopScriptingInterface.h index ae0e8d5a4f..db42b5ca54 100644 --- a/interface/src/scripting/DesktopScriptingInterface.h +++ b/interface/src/scripting/DesktopScriptingInterface.h @@ -24,6 +24,11 @@ * * @hifi-interface * @hifi-client-entity + * + * @property {number} width + * @property {number} height + * @property {number} ALWAYS_ON_TOP - InteractiveWindow flag for always showing a window on top + * @property {number} CLOSE_BUTTON_HIDES - InteractiveWindow flag for hiding the window instead of closing on window close by user */ class DesktopScriptingInterface : public QObject, public Dependency { Q_OBJECT diff --git a/libraries/ui/src/InteractiveWindow.h b/libraries/ui/src/InteractiveWindow.h index 800b810796..bf832550b5 100644 --- a/libraries/ui/src/InteractiveWindow.h +++ b/libraries/ui/src/InteractiveWindow.h @@ -42,7 +42,6 @@ using namespace InteractiveWindowEnums; /**jsdoc * @class InteractiveWindow - * @hideconstructor * * @hifi-interface * @hifi-client-en diff --git a/scripts/developer/tests/interactiveWindowTest.js b/scripts/developer/tests/interactiveWindowTest.js new file mode 100644 index 0000000000..c17deba617 --- /dev/null +++ b/scripts/developer/tests/interactiveWindowTest.js @@ -0,0 +1,34 @@ +// +// interactiveWindowTest.js +// +// Created by Thijs Wenker on 2018-07-03 +// Copyright 2018 High Fidelity, Inc. +// +// An example of an interactive window that toggles presentation mode when toggling HMD on/off +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html + +function getPreferredPresentationMode() { + return HMD.active ? Desktop.PresentationMode.VIRTUAL : Desktop.PresentationMode.NATIVE; +} + +function getPreferredTitle() { + return HMD.active ? 'Virtual Desktop Window' : 'Native Desktop Window'; +} + +var virtualWindow = Desktop.createWindow(Script.resourcesPath() + 'qml/OverlayWindowTest.qml', { + title: getPreferredTitle(), + flags: Desktop.ALWAYS_ON_TOP, + presentationMode: getPreferredPresentationMode(), + size: {x: 500, y: 400} +}); + +HMD.displayModeChanged.connect(function() { + virtualWindow.presentationMode = getPreferredPresentationMode(); + virtualWindow.title = getPreferredTitle(); +}); + +Script.scriptEnding.connect(function() { + virtualWindow.close(); +});