VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptedTaskConfigurableMenu.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
19 #include <vrvCoreQt/DtToolbar.h>
20 #include <vrvUtil/DtUnicode.h>
21 #include <boost/signals2.hpp>
22 
23 class QEvent;
25 
26 namespace makVrv
27 {
28  class DtUnicode;
29 }
30 
31 namespace makVrf
32 {
33  class DtVrfTaskSetMenu;
34 
39  {
40  public:
42  {
43  RecreateNone = 0,
44  RecreateOnScenarioLoad = 0x00000001,
45  RecreateOnScriptedTaskChange = 0x00000002,
46  RecreateToolbars = 0x00000004,
47  UseGlobalMenuManager = 0x00000008,
48  RecreateMenuOnSelectionChange = 0x00000010,
49  SkipInitialMenuSetup = 0x00000020,
50  AllowPassThru = 0x00000040
51  };
52 
54  {
55  ScriptedTaskData() : availableSystemScript(false) {};
56  ScriptedTaskData(const ScriptedTaskData& orig) : metaData(orig.metaData), availableSystemScript(orig.availableSystemScript) {};
57 
58  ScriptedTaskData& operator=(const ScriptedTaskData& orig) { metaData = orig.metaData; availableSystemScript = orig.availableSystemScript; return *this; };
59 
60  DtScriptedTaskMetaData metaData;
62  };
63 
64  typedef std::map<std::string, ScriptedTaskData> ScriptedTasks;
65 
67  DtScriptedTaskConfigurableMenu(makVrv::DtDe&, const std::string& menuIdName);
68 
70  virtual ~DtScriptedTaskConfigurableMenu() override;
71 
73  virtual void setEditMode(bool);
74  virtual bool editMode() const;
75 
77  virtual void setRecreateFlags(RecreateFlags);
78 
79  virtual void addScriptedTask(const DtScriptedTaskMetaData&, bool signal = true);
80 
83  bool addToolbarMenuItems = true, bool useGlobalMenuManager = false);
84 
87  virtual void setScriptedTasks(const ScriptedTasks&, bool signal = true);
88  virtual const ScriptedTasks& scriptedTasks() const;
89 
91  virtual void setMenuConfiguration(const DtSubMenuConfiguration&);
92 
93  virtual int supportedScriptType(int type) const = 0;
94  virtual const char* supportsToolbarType() const = 0;
95 
97  boost::signals2::signal<void (DtSubMenuConfiguration&)> signal_preCreateConfiguration;
98 
100  boost::signals2::signal<void ()> signal_recreateMenu;
101 
103  {
104  return myMenu;
105  }
106 
107  protected:
108  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId, int action);
109  virtual bool eventFilter(QObject* o, QEvent* e) override;
110  virtual void slot_sendTaskRequest(std::vector<DtUUID> names, const DtSimTask& s);
111  virtual void slot_sendSetRequest(std::vector<DtUUID> names, const DtSetDataRequest& s);
112 
113  virtual void menuRecreated();
114  virtual void clearScriptedTasks();
115  virtual void scriptedTaskAboutToBeRemoved(std::string id);
116  virtual void scriptedTaskAdded(std::string id);
117  virtual void receivedScriptedTasks();
118 
119  virtual void clearRegisteredMenuAssemblers();
120  virtual void clearRegisteredMenuAssembler(const std::string&);
121 
122  virtual void removeAllScriptedTasks(bool signal = true);
123  virtual void removeScriptedTask(const std::string& id, bool signal = true);
124 
127  virtual std::string addScriptedTaskMenuLocation(const std::string& scriptedTaskId, const std::string& potentialPath,
128  const QString& menuName, const QString& extMenuName, const QString& toolTip, DtSubMenuConfiguration& configuration,
129  DtConfigurableMenuAssembler&, bool showInMenu = true, bool addToolbarMenuItems = true, bool useGlobalMenuManager = false);
130 
131  virtual std::string addScriptedTaskToolbarLocation(const std::string& scriptedTaskId, makVrv::DtToolbarConfiguration& configuration);
132 
133  protected:
140  std::set<std::string> myScriptedTasksAddedToMenuAssember;
141  std::map<std::string, std::string> myScriptedTaskMenuItems;
142  };
144 
146  {
147  public:
148  DtScriptedTaskMenuItem(makVrv::DtDe& de, const std::string& scriptedTaskId, const std::string& menuId,
149  const makVrv::DtUnicode& menuName, const makVrv::DtUnicode& extMenuName, const makVrv::DtUnicode& toolTip,
150  bool showInMenu, bool addToolbarItem = true);
151 
152  virtual ~DtScriptedTaskMenuItem() override;
153 
155  virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) override;
156 
157  virtual void setMenuName(const makVrv::DtUnicode&);
158 
159  void setUseSharedAction(bool);
160 
161  protected:
162  virtual void on_aboutToShow() override;
163 
164  protected:
165  std::string myScriptedTaskId;
172  };
173 }
Definition: vrfTaskSetMenu.h:50
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
ScriptedTasks myScriptedTasks
Definition: scriptedTaskConfigurableMenu.h:135
ScriptedTaskData(const ScriptedTaskData &orig)
Definition: scriptedTaskConfigurableMenu.h:56
bool availableSystemScript
Definition: scriptedTaskConfigurableMenu.h:61
DtSubMenuConfiguration myConfiguration
Definition: scriptedTaskConfigurableMenu.h:138
RecreateFlags myRecreateFlags
Definition: scriptedTaskConfigurableMenu.h:134
makVrv::DtUnicode myToolTip
Definition: scriptedTaskConfigurableMenu.h:168
DtVrfTaskSetMenu * myMenu
Definition: scriptedTaskConfigurableMenu.h:139
RecreateFlags
Definition: scriptedTaskConfigurableMenu.h:41
boost::signals2::signal< void()> signal_recreateMenu
Sent when the task menus need to be recreated because menu configuration has changed.
Definition: scriptedTaskConfigurableMenu.h:100
Subclass for additional functionality needed by VRF.
Definition: subMenuConfiguration.h:73
bool myEditMode
Definition: scriptedTaskConfigurableMenu.h:136
QAction * mySharedAction
Definition: scriptedTaskConfigurableMenu.h:171
makVrv::DtUnicode myMenuName
Definition: scriptedTaskConfigurableMenu.h:166
boost::signals2::signal< void(DtSubMenuConfiguration &)> signal_preCreateConfiguration
Signal sent right before menu is configured.
Definition: scriptedTaskConfigurableMenu.h:97
bool myShowInMenu
Definition: scriptedTaskConfigurableMenu.h:169
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
bool myUseSharedAction
Definition: scriptedTaskConfigurableMenu.h:170
std::map< std::string, std::string > myScriptedTaskMenuItems
Definition: scriptedTaskConfigurableMenu.h:141
Container class that will create instances of scripted task configurable menu.
Definition: scriptedTaskConfigurableMenu.h:38
ScriptedTaskData & operator=(const ScriptedTaskData &orig)
Definition: scriptedTaskConfigurableMenu.h:58
DtVrfTaskSetMenu * menu()
Definition: scriptedTaskConfigurableMenu.h:102
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Definition: scriptedTaskConfigurableMenu.h:53
Contains makVrv::DtToolbar class declaration.
ScriptedTaskData()
Definition: scriptedTaskConfigurableMenu.h:55
makVrv::DtSignalConnectionManager myConnectionManager
Definition: scriptedTaskConfigurableMenu.h:137
DtScriptedTaskMetaData metaData
Definition: scriptedTaskConfigurableMenu.h:58
Contains makVrv::DtToolbarConfiguration class.
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:25
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
std::map< std::string, ScriptedTaskData > ScriptedTasks
Definition: scriptedTaskConfigurableMenu.h:64
Definition: configurableMenu.h:275
std::set< std::string > myScriptedTasksAddedToMenuAssember
Definition: scriptedTaskConfigurableMenu.h:140
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
class DtScriptedTaskMetaData
Definition: scriptedTaskMetaData.h:58
makVrv::DtUnicode myExtendedMenuName
Definition: scriptedTaskConfigurableMenu.h:167
std::string myScriptedTaskId
Definition: scriptedTaskConfigurableMenu.h:165
Used by menu classes to modify menu registrations in a menu.
Definition: configurableMenu.h:120
Contains makVrf::DtTaskSetMenu, makVrf::DtVrfTaskSetAction, and makVrf::DtTaskSetMenuItem class...
Definition: vrfTaskSetAction.h:39
Item for a scripted task. Will be the general holding place for all scripted tasks.
Definition: scriptedTaskConfigurableMenu.h:145

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)