From 2b23108e616260989c27afdec1be5a109c474b06 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Tue, 7 Apr 2015 01:06:39 +0200 Subject: [PATCH] ScriptsScripting Interface --- interface/src/Application.cpp | 4 +++ .../scripting/ScriptsScriptingInterface.cpp | 27 +++++++++++++++++++ .../src/scripting/ScriptsScriptingInterface.h | 27 +++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 interface/src/scripting/ScriptsScriptingInterface.cpp create mode 100644 interface/src/scripting/ScriptsScriptingInterface.h diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index a8f9efd672..943f2bd491 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -121,6 +121,7 @@ #include "scripting/GlobalServicesScriptingInterface.h" #include "scripting/LocationScriptingInterface.h" #include "scripting/MenuScriptingInterface.h" +#include "scripting/ScriptsScriptingInterface.h" #include "scripting/SettingsScriptingInterface.h" #include "scripting/WindowScriptingInterface.h" #include "scripting/WebWindowClass.h" @@ -3595,6 +3596,9 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri scriptEngine->registerGlobalObject("Scene", DependencyManager::get().data()); + QScriptValue scriptsScriptingInterface = scriptEngine->registerGlobalObject("Scripts", ScriptsScriptingInterface::getInstance()); + scriptEngine->registerFunction(scriptsScriptingInterface, "getPublic", ScriptsScriptingInterface::getPublic, 0); + #ifdef HAVE_RTMIDI scriptEngine->registerGlobalObject("MIDI", &MIDIManager::getInstance()); #endif diff --git a/interface/src/scripting/ScriptsScriptingInterface.cpp b/interface/src/scripting/ScriptsScriptingInterface.cpp new file mode 100644 index 0000000000..93bfe967ad --- /dev/null +++ b/interface/src/scripting/ScriptsScriptingInterface.cpp @@ -0,0 +1,27 @@ +// +// ScriptsScriptingInterface.cpp +// interface/src/scripting +// +// Created by Thijs Wenker on 3/31/15. +// 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 +// + +#include "Application.h" + +#include "ScriptsScriptingInterface.h" + +ScriptsScriptingInterface* ScriptsScriptingInterface::getInstance() { + static ScriptsScriptingInterface sharedInstance; + return &sharedInstance; +} + +QStringList ScriptsScriptingInterface::getRunning() { + return Application::getInstance()->getRunningScripts(); +} + +QScriptValue ScriptsScriptingInterface::getPublic(QScriptContext* context, QScriptEngine* engine) { + return QScriptValue::NullValue; +} diff --git a/interface/src/scripting/ScriptsScriptingInterface.h b/interface/src/scripting/ScriptsScriptingInterface.h new file mode 100644 index 0000000000..ad7f4d2cea --- /dev/null +++ b/interface/src/scripting/ScriptsScriptingInterface.h @@ -0,0 +1,27 @@ +// +// ScriptsScriptingInterface.h +// interface/src/scripting +// +// Created by Thijs Wenker on 3/31/15. +// 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 +// + +#ifndef hifi_ScriptsScriptingInterface_h +#define hifi_ScriptsScriptingInterface_h + +#include + +class ScriptsScriptingInterface : public QObject { + Q_OBJECT +public: + ScriptsScriptingInterface() {}; + static ScriptsScriptingInterface* getInstance(); + static QScriptValue getPublic(QScriptContext* context, QScriptEngine* engine); +public slots: + QStringList getRunning(); +}; + +#endif // hifi_ScriptsScriptingInterface_h