VR-Forces 4.1 Class Documentation
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 
30  {
31  public:
33  virtual ~DtVrfRightClickMenu();
34 
36  static DtVrfRightClickMenu& instance(makVrv::DtDe& de);
37 
42  virtual DtSubMenuConfiguration& menuConfiguration();
43 
49  virtual void addContext(std::string contextName, DtVrfRightClickContextFunc func);
50 
55  virtual void removeContext(std::string contextName);
56 
63  virtual void setDefaultContext(std::string contextName);
64 
71  virtual void setCurrentContext(std::string contextName);
72 
75  virtual void resetContext();
76 
78  virtual std::string currentContext();
79 
81  virtual std::string defaultContext();
82 
87  virtual DtConfigurableMenuAssembler& menuAssembler();
88 
89  protected:
91  void setupDefaultContext();
92 
95 
98  virtual QMenu* createMenu(makVrv::DtDe &,QWidget *);
99 
102  virtual void createMenuConfiguration(makVrv::DtDe &);
103 
107  };
108 
114  {
115  protected:
116  struct DtVrfRightClickChanges;
117 
118  public:
121 
124 
126  virtual void addContext(std::string contextName, DtVrfRightClickContextFunc func);
127 
129  virtual void removeContext(std::string contextName);
130 
132  virtual void setDefaultContext(std::string contextName);
133 
135  virtual void setCurrentContext(std::string contextName);
136 
138  virtual void resetContext()
139  {
140  myCurrentContext = myDefaultContext;
141  }
142 
144  virtual std::string currentContext()
145  {
146  return myCurrentContext;
147  }
148 
150  virtual std::string defaultContext()
151  {
152  return myDefaultContext;
153  }
154 
160  virtual void addMenuPath(const makVrv::DtMenuPath& path, int weight = -1);
161 
167  virtual void removeMenuPath(const makVrv::DtMenuPath&);
168 
174  virtual void addMenuPathAfter(const makVrv::DtMenuPath& newPath, const makVrv::DtMenuPath& relativeTo);
175 
181  virtual void addMenuPathBefore(const makVrv::DtMenuPath& newPath, const makVrv::DtMenuPath& relativeTo);
182 
185  virtual void registerMenu(makVrv::DtMenu* menu);
186 
188  virtual void unregisterMenu(makVrv::DtMenu* menu);
189 
192  virtual void registerItem(makVrv::DtMenuItem* item);
193 
195  virtual void unregisterItem(makVrv::DtMenuItem* item);
196 
197  protected:
199  virtual void applyContext(std::string contextName, makVrv::DtMenuConfiguration& config);
200 
202  virtual void applyRegistrations(makVrv::DtQtMenuAssembler& assembler);
203 
206  virtual void slot_modifyRightClickMenu(makVrv::DtQtMenuAssembler&, makVrv::DtMenuConfiguration&,
208 
210  virtual void registerMenu(makVrv::DtMenuItem*);
211 
213  virtual void unregisterMenu(makVrv::DtMenu*, bool deleteBuilder = true);
214 
216  virtual void unregisterMenu(makVrv::DtMenuItem*, bool deleteBuilder = true);
217 
218  std::map<std::string, DtVrfRightClickContextFunc> myChangeRules;
219 
220  std::map<std::string, DtVrfRightClickChanges*> myChanges;
221  std::string myDefaultContext;
222  std::string myCurrentContext;
223 
224  std::vector<makVrv::DtMenu*> myUnregisterMenus;
225  std::vector<makVrv::DtMenu*> myRegisterMenus;
226  std::vector<makVrv::DtMenuItem*> myRegisterItems;
227  std::vector<makVrv::DtMenuItem*> myUnregisterItems;
228  };
229 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)