History

Add WindowScriptingInterface and LocationScriptingInterface

Ryan Huffman committed 12 years ago

Commit b9f296d1 parent 3ab61f24 files · +223 −0Browse files

Showing the changes to interface/src/scripting/LocationScriptingInterface.cpp (1 of 4 files). Show all

Unified · Split

interface/src/scripting/LocationScriptingInterface.cpp+49−0
@@ -0,0 +1,49 @@
1//
2// LocationScriptingInterface.cpp
3// interface/src/scripting
4//
5// Created by Ryan Huffman on 4/29/14.
6// Copyright 2014 High Fidelity, Inc.
7//
8// Distributed under the Apache License, Version 2.0.
9// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10//
11
12#include <glm/glm.hpp>
13
14#include "NodeList.h"
15
16#include "LocationScriptingInterface.h"
17
18LocationScriptingInterface* LocationScriptingInterface::getInstance() {
19 static LocationScriptingInterface sharedInstance;
20 return &sharedInstance;
21}
22
23QString LocationScriptingInterface::getHref() {
24 return getProtocol() + "//" + getHostname() + getPathname();
25}
26
27QString LocationScriptingInterface::getPathname() {
28 const glm::vec3& position = Application::getInstance()->getAvatar()->getPosition();
29 QString path;
30 path.sprintf("/%.4f,%.4f,%.4f", position.x, position.y, position.z);
31 return path;
32}
33
34QString LocationScriptingInterface::getHostname() {
35 return NodeList::getInstance()->getDomainHandler().getHostname();
36}
37
38void LocationScriptingInterface::assign(const QString& url) {
39 QMetaObject::invokeMethod(Menu::getInstance(), "goToURL", Q_ARG(const QString&, url));
40}
41
42QScriptValue LocationScriptingInterface::locationGetter(QScriptContext* context, QScriptEngine* engine) {
43 return engine->newQObject(getInstance());
44}
45
46QScriptValue LocationScriptingInterface::locationSetter(QScriptContext* context, QScriptEngine* engine) {
47 LocationScriptingInterface::getInstance()->assign(context->argument(0).toString());
48 return QScriptValue::UndefinedValue;
49}