VR-Forces 4.7 Class Documentation
 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 
15 #include <vrvCoreQt/DtToolbar.h>
21 #include <vrvCoreQt/DtToolbar.h>
22 
23 class QEvent;
25 
26 namespace makVrf
27 {
31  {
32  public:
33  typedef std::set<std::string> Mappings;
34  typedef std::map<std::string, Mappings> EquivalenceMappings;
35 
37  DtScriptedTaskToolbar(makVrv::DtDe&, const std::string& id);
38 
40  virtual ~DtScriptedTaskToolbar();
41 
42  virtual void removeEquivalenceMappings();
43  virtual void addEquivalenceMapping(const std::string& toolbar, const std::string& equivalentTo);
44  virtual void removeEquivalenceMapping(const std::string& toolbar, const std::string& equivalentTo);
45  virtual const EquivalenceMappings& equivalenceMappings() const
46  {
47  return myEquivalenceMappings;
48  }
49 
50  protected:
52  };
53 
58  {
59  public:
61  {
62  RecreateNone = 0,
63  RecreateOnScenarioLoad = 0x00000001,
64  RecreateOnScriptedTaskChange = 0x00000002,
65  RecreateToolbars = 0x00000004,
66  UseGlobalMenuManager = 0x00000008,
67  RecreateMenuOnSelectionChange = 0x00000010,
68  SkipInitialMenuSetup = 0x00000020
69  };
70 
72  {
73  ScriptedTaskData() : availableSystemScript(false) {};
74  ScriptedTaskData(const ScriptedTaskData& orig) : metaData(orig.metaData), availableSystemScript(orig.availableSystemScript) {};
75 
76  ScriptedTaskData& operator=(const ScriptedTaskData& orig) { metaData = orig.metaData; availableSystemScript = orig.availableSystemScript; return *this; };
77 
78  DtScriptedTaskMetaData metaData;
80  };
81 
82  typedef std::map<std::string, ScriptedTaskData> ScriptedTasks;
83 
85  DtScriptedTaskConfigurableMenu(makVrv::DtDe&, const std::string& menuIdName);
86 
89 
91  virtual void setEditMode(bool);
92  virtual bool editMode() const;
93 
95  virtual void setRecreateFlags(RecreateFlags);
96 
97  virtual void addScriptedTask(const DtScriptedTaskMetaData&, bool signal = true);
98 
101  bool addToolbarMenuItems = true, bool useGlobalMenuManager = false);
102 
105  virtual void setScriptedTasks(const ScriptedTasks&, bool signal = true);
106  virtual const ScriptedTasks& scriptedTasks() const;
107 
109  virtual void setMenuConfiguration(const DtSubMenuConfiguration&);
110 
111  virtual int supportedScriptType(int type) const = 0;
112  virtual const char* supportsToolbarType() const = 0;
113 
115  boost::signal<void (DtSubMenuConfiguration&)> signal_preCreateConfiguration;
116 
118  boost::signal<void ()> signal_recreateMenu;
119 
121  {
122  return myMenu;
123  }
124 
125  protected:
126  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId, int action);
127 
128  virtual void menuRecreated();
129  virtual void clearScriptedTasks();
130  virtual void scriptedTaskAboutToBeRemoved(std::string id);
131  virtual void scriptedTaskAdded(std::string id);
132  virtual void receivedScriptedTasks();
133 
134  virtual void clearRegisteredMenuAssemblers();
135  virtual void clearRegisteredMenuAssembler(const std::string&);
136 
137  virtual void removeAllScriptedTasks(bool signal = true);
138  virtual void removeScriptedTask(const std::string& id, bool signal = true);
139 
142  virtual std::string addScriptedTaskMenuLocation(const std::string& scriptedTaskId, const std::string& potentialPath,
143  const QString& menuName, const QString& extMenuName, const QString& toolTip, DtSubMenuConfiguration& configuration,
144  DtConfigurableMenuAssembler&, bool showInMenu = true, bool addToolbarMenuItems = true, bool useGlobalMenuManager = false);
145 
146  virtual std::string addScriptedTaskToolbarLocation(const std::string& scriptedTaskId, makVrv::DtToolbarConfiguration& configuration);
147 
148  protected:
155  std::set<std::string> myScriptedTasksAddedToMenuAssember;
156  };
158 
160  {
161  public:
162  DtScriptedTaskMenuItem(makVrv::DtDe& de, const std::string& scriptedTaskId, const std::string& menuId,
163  const makVrv::DtUnicode& menuName, const makVrv::DtUnicode& extMenuName, const makVrv::DtUnicode& toolTip,
164  bool showInMenu, bool addToolbarItem = true);
165 
166  virtual ~DtScriptedTaskMenuItem();
167 
169  virtual QAction* createAction(makVrv::DtDe&, QWidget* parent);
170 
171  virtual void setMenuName(const makVrv::DtUnicode&);
172 
173  void setUseSharedAction(bool);
174 
175  protected:
176  std::string myScriptedTaskId;
183  };
184 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)