VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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, int weight = -1);
163 
169  virtual void removeMenuPath(const makVrv::DtMenuPath&);
170 
176  virtual void addMenuPathAfter(const makVrv::DtMenuPath& newPath, const makVrv::DtMenuPath& relativeTo);
177 
183  virtual void addMenuPathBefore(const makVrv::DtMenuPath& newPath, const makVrv::DtMenuPath& relativeTo);
184 
187  virtual void registerMenu(makVrv::DtMenu* menu);
188 
190  virtual void unregisterMenu(makVrv::DtMenu* menu);
191 
194  virtual void registerItem(makVrv::DtMenuItem* item);
195 
197  virtual void unregisterItem(makVrv::DtMenuItem* item);
198 
199  protected:
201  virtual void applyContext(std::string contextName, makVrv::DtMenuConfiguration& config);
202 
204  virtual void applyRegistrations(makVrv::DtQtMenuAssembler& assembler);
205 
208  virtual void slot_modifyRightClickMenu(makVrv::DtQtMenuAssembler&, makVrv::DtMenuConfiguration&,
210 
212  virtual void registerMenu(makVrv::DtMenuItem*);
213 
215  virtual void unregisterMenu(makVrv::DtMenu*, bool deleteBuilder = true);
216 
218  virtual void unregisterMenu(makVrv::DtMenuItem*, bool deleteBuilder = true);
219 
220  std::map<std::string, DtVrfRightClickContextFunc> myChangeRules;
221 
222  std::map<std::string, DtVrfRightClickChanges*> myChanges;
223  std::string myDefaultContext;
224  std::string myCurrentContext;
225 
226  std::vector<makVrv::DtMenu*> myUnregisterMenus;
227  std::vector<makVrv::DtMenu*> myRegisterMenus;
228  std::vector<makVrv::DtMenuItem*> myRegisterItems;
229  std::vector<makVrv::DtMenuItem*> myUnregisterItems;
230  };
231 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)