History

moved MenuScriptingInterface to own files

ZappoMan committed 12 years ago

Commit e03c7be1 parent 73b0a5b5 files · +141 −105Browse files

Showing the changes to interface/src/MenuScriptingInterface.cpp (1 of 5 files). Show all

Unified · Split

interface/src/MenuScriptingInterface.cpp+84−0
@@ -0,0 +1,84 @@
1//
2// MenuScriptingInterface.cpp
3// hifi
4//
5// Created by Brad Hefta-Gaub on 2/25/14
6// Copyright (c) 2014 HighFidelity, Inc. All rights reserved.
7//
8
9#include "Application.h"
10
11#include "MenuScriptingInterface.h"
12
13
14MenuScriptingInterface* MenuScriptingInterface::_instance = NULL;
15QMutex MenuScriptingInterface::_instanceMutex;
16
17MenuScriptingInterface* MenuScriptingInterface::getInstance() {
18 // lock the menu instance mutex to make sure we don't race and create two menus and crash
19 _instanceMutex.lock();
20 if (!_instance) {
21 _instance = new MenuScriptingInterface();
22 }
23 _instanceMutex.unlock();
24 return _instance;
25}
26
27void MenuScriptingInterface::deleteLaterIfExists() {
28 _instanceMutex.lock();
29 if (_instance) {
30 _instance->deleteLater();
31 _instance = NULL;
32 }
33 _instanceMutex.unlock();
34}
35
36void MenuScriptingInterface::menuItemTriggered() {
37 QAction* menuItemAction = dynamic_cast<QAction*>(sender());
38 if (menuItemAction) {
39 // emit the event
40 emit menuItemEvent(menuItemAction->text());
41 }
42}
43
44void MenuScriptingInterface::addMenu(const QString& menu) {
45 QMetaObject::invokeMethod(Menu::getInstance(), "addMenu", Q_ARG(const QString&, menu));
46}
47
48void MenuScriptingInterface::removeMenu(const QString& menu) {
49 QMetaObject::invokeMethod(Menu::getInstance(), "removeMenu", Q_ARG(const QString&, menu));
50}
51
52void MenuScriptingInterface::addSeparator(const QString& menuName, const QString& separatorName) {
53 QMetaObject::invokeMethod(Menu::getInstance(), "addSeparator",
54 Q_ARG(const QString&, menuName),
55 Q_ARG(const QString&, separatorName));
56}
57
58void MenuScriptingInterface::addMenuItem(const MenuItemProperties& properties) {
59 QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
60}
61
62void MenuScriptingInterface::addMenuItem(const QString& menu, const QString& menuitem, const QString& shortcutKey) {
63 MenuItemProperties properties(menu, menuitem, shortcutKey);
64 QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
65}
66
67void MenuScriptingInterface::addMenuItem(const QString& menu, const QString& menuitem) {
68 MenuItemProperties properties(menu, menuitem);
69 QMetaObject::invokeMethod(Menu::getInstance(), "addMenuItem", Q_ARG(const MenuItemProperties&, properties));
70}
71
72void MenuScriptingInterface::removeMenuItem(const QString& menu, const QString& menuitem) {
73 QMetaObject::invokeMethod(Menu::getInstance(), "removeMenuItem",
74 Q_ARG(const QString&, menu),
75 Q_ARG(const QString&, menuitem));
76};
77
78bool MenuScriptingInterface::isOptionChecked(const QString& menuOption) {
79 return Menu::getInstance()->isOptionChecked(menuOption);
80}
81
82void MenuScriptingInterface::setIsOptionChecked(const QString& menuOption, bool isChecked) {
83 return Menu::getInstance()->setIsOptionChecked(menuOption, isChecked);
84}