VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfRightClickMenu.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
15 
16 namespace makVrf
17 {
19  typedef bool (*DtVrfRightClickContextFunc) (const makVrv::DtSelectionManager::IdSet& idSet, int selectionType, makVrv::DtDe& de);
20 
22 
32  {
33  public:
35  virtual ~DtVrfRightClickMenu();
36 
38  static DtVrfRightClickMenu& instance(makVrv::DtDe& de);
39 
44  virtual DtSubMenuConfiguration& menuConfiguration();
45 
51  virtual void addContext(std::string contextName, DtVrfRightClickContextFunc func);
52 
57  virtual void removeContext(std::string contextName);
58 
65  virtual void setDefaultContext(std::string contextName);
66 
73  virtual void setCurrentContext(std::string contextName);
74 
77  virtual void resetContext();
78 
80  virtual std::string currentContext();
81 
83  virtual std::string defaultContext();
84 
89  virtual DtConfigurableMenuAssembler& menuAssembler();
90 
91  protected:
93  void setupDefaultContext();
94 
97 
100  virtual QMenu* createMenu(makVrv::DtDe &,QWidget *);
101 
104  virtual void createMenuConfiguration(makVrv::DtDe &);
105 
109  };
110 
116  {
117  protected:
118  struct DtVrfRightClickChanges;
119 
120  public:
123 
126 
128  virtual void addContext(std::string contextName, DtVrfRightClickContextFunc func);
129 
131  virtual void removeContext(std::string contextName);
132 
134  virtual void setDefaultContext(std::string contextName);
135 
137  virtual void setCurrentContext(std::string contextName);
138 
140  virtual void resetContext()
141  {
142  myCurrentContext = myDefaultContext;
143  }
144 
146  virtual std::string currentContext()
147  {
148  return myCurrentContext;
149  }
150 
152  virtual std::string defaultContext()
153  {
154  return myDefaultContext;
155  }
156 
162  virtual void addMenuPath(const makVrv::DtMenuPath& path, const makVrv::DtMenuConfiguration::MenuSortFlags& sortFlagsIfMenu =
165 
171  virtual void removeMenuPath(const makVrv::DtMenuPath&);
172 
178  virtual void addMenuPathAfter(const makVrv::DtMenuPath& newPath, const makVrv::DtMenuPath& relativeTo);
179 
185  virtual void addMenuPathBefore(const makVrv::DtMenuPath& newPath, const makVrv::DtMenuPath& relativeTo);
186 
189  virtual void registerMenu(makVrv::DtMenu* menu);
190 
192  virtual void unregisterMenu(makVrv::DtMenu* menu);
193 
196  virtual void registerItem(makVrv::DtMenuItem* item);
197 
199  virtual void unregisterItem(makVrv::DtMenuItem* item);
200 
201  protected:
203  virtual void applyContext(std::string contextName, makVrv::DtMenuConfiguration& config);
204 
206  virtual void applyRegistrations(makVrv::DtQtMenuAssembler& assembler);
207 
210  virtual void slot_modifyRightClickMenu(makVrv::DtQtMenuAssembler&, makVrv::DtMenuConfiguration&,
212 
214  virtual void registerMenu(makVrv::DtMenuItem*);
215 
217  virtual void unregisterMenu(makVrv::DtMenu*, bool deleteBuilder = true);
218 
220  virtual void unregisterMenu(makVrv::DtMenuItem*, bool deleteBuilder = true);
221 
222  std::map<std::string, DtVrfRightClickContextFunc> myChangeRules;
223 
224  std::map<std::string, DtVrfRightClickChanges*> myChanges;
225  std::string myDefaultContext;
226  std::string myCurrentContext;
227 
228  std::vector<makVrv::DtMenu*> myUnregisterMenus;
229  std::vector<makVrv::DtMenu*> myRegisterMenus;
230  std::vector<makVrv::DtMenuItem*> myRegisterItems;
231  std::vector<makVrv::DtMenuItem*> myUnregisterItems;
232  };
233 }
Definition: DtMenuConfiguration.h:59
Builder for menu items.
Definition: DtMenuItem.h:23
bool(* DtVrfRightClickContextFunc)(const makVrv::DtSelectionManager::IdSet &idSet, int selectionType, makVrv::DtDe &de)
Defines the typedef for a function you can use to evaluate different right click contexts.
Definition: vrfRightClickMenu.h:19
virtual void resetContext()
Resets the current context to the default context.
Definition: vrfRightClickMenu.h:140
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
std::map< std::string, DtVrfRightClickChanges * > myChanges
Definition: vrfRightClickMenu.h:224
Used to modify the right click menu based on different contexts. A context is defined by what is true...
Definition: vrfRightClickMenu.h:31
static DtVrfRightClickMenu * theInstance
Definition: vrfRightClickMenu.h:108
Contains makVrv:DtSelectionManager class.
The menu assembler and configuration were combined into one class for convenience. Most users won&#39;t really notice this or care.
Definition: vrfRightClickMenu.h:114
Subclass for additional functionality needed by VRF.
Definition: subMenuConfiguration.h:73
virtual std::string currentContext()
Gets the current context.
Definition: vrfRightClickMenu.h:146
A Qt implementation of a DtMenuAssembler.
Definition: DtQtMenuAssembler.h:26
virtual std::string defaultContext()
Gets the default context.
Definition: vrfRightClickMenu.h:152
DtVrfRightClickContextHandler * myAssemblerAndConfig
Definition: vrfRightClickMenu.h:106
Contains makVrv::DtQtMenuAssembler class.
std::vector< makVrv::DtMenuItem * > myUnregisterItems
Definition: vrfRightClickMenu.h:231
std::vector< makVrv::DtMenuItem * > myRegisterItems
Definition: vrfRightClickMenu.h:230
a Class which represents a menu path. The specific strings are not menu text, but the names used when...
Definition: DtMenuPath.h:27
std::string myCurrentContext
Definition: vrfRightClickMenu.h:226
Contains makVrv::DtMenuConfiguration class.
std::vector< makVrv::DtMenu * > myUnregisterMenus
Definition: vrfRightClickMenu.h:228
The abstract base menu class.
Definition: DtMenu.h:23
std::string myDefaultContext
Definition: vrfRightClickMenu.h:225
Definition: DtMenuConfiguration.h:58
std::vector< makVrv::DtMenu * > myRegisterMenus
Definition: vrfRightClickMenu.h:229
std::map< std::string, DtVrfRightClickContextFunc > myChangeRules
Definition: vrfRightClickMenu.h:222
A configuration of a menu layout. A menu configuration manages an ordered collection of menu paths th...
Definition: DtMenuConfiguration.h:43
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:70
Definition: configurableMenu.h:273
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Definition: DtMenuConfiguration.h:60
makVrv::DtDe & myDe
Definition: vrfRightClickMenu.h:107
MenuSortFlags
The SortAllAlphabetically, SortWithinSubmenus, SortBetweenSeparators, and SortBetweenSubMenus flags c...
Definition: DtMenuConfiguration.h:55
Used by menu classes to modify menu registrations in a menu.
Definition: configurableMenu.h:120

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)