VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfContextMenuManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
14 
16 
19 #include <vrvCore/DtMenuPath.h>
20 #include <vrvCoreQt/DtMenu.h>
22 #include <vrvCore/DtMenuPath.h>
25 
26 #include <QtCore/QObject>
27 
28 namespace makVrv
29 {
30  class DtDe;
31  class DtMenuConfiguration;
32  class DtQtMenuAssembler;
33 }
34 
35 namespace makVrf
36 {
38  {
39  public:
41  virtual ~DtVrfContextMenuMenuManager();
42  virtual void clear();
43  };
44 
46  {
47  public:
50 
52 
53  virtual void convertMainMenusToItems();
54  virtual bool hasItems() const;
55  };
56 
58  {
59  public:
61  virtual ~DtVrfContextMenuAssembler();
62 
63  virtual void assembleMenuPath( const makVrv::DtMenuPath& menuPath, const makVrv::DtMenuConfiguration& configuration );
64 
65  virtual void registerMenu( makVrv::DtMenu* menuBuilder );
66 
67  virtual void registerMenu( makVrv::DtMenuItem* builder);
68 
69  virtual void assembleMenu( const makVrv::DtMenuPath& menuPath );
70 
71  virtual QMenuBar* menuBar();
72 
74  virtual makVrv::DtMenuManager& menuManager();
75 
76  protected:
80  };
81 
85  {
86  public:
87 
89 
90  virtual ~DtVrfRightClickContextMenu();
91 
93  virtual QMenu* createMenu(makVrv::DtDe&, QWidget* parent);
94 
95  };
96 
108  {
109  Q_OBJECT
110 
111  public:
114 
116  virtual ~DtVrfContextMenuManager();
117 
119  virtual void setEnabled(bool);
120  bool enabled() const;
121 
122  static DtVrfContextMenuManager& instance(makVrv::DtDe&);
123 
127  virtual QMenu* rightClickContextMenuFor(makVrv::DtSelectionManager::IdSet idSet, makVrv::DtSelectionManager::SelectionType, std::string& context,
128  bool signalMenuCreation = true);
129 
130  protected:
131  virtual void requestSelectionContextMenu(const QPoint& p);
132  virtual void requestTerrainContextMenu(const QPoint& p);
133 
137  virtual void requestObserverViewsContextMenu(const QPoint& p);
138  virtual void createGeneralContextMenu(const std::string& context, const QPoint& p);
139 
140  virtual std::string createGeneralContextMenu(const std::string& context, DtVrfContextMenuAssembler& menuAssembler,
142 
143  protected slots:
144  virtual void menuDestroyed();
145 
146  protected:
148  virtual std::string createLocalContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
150 
151  protected:
152  virtual std::string createEntityContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
154  virtual std::string createAerodromeContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
156  virtual std::string createSpotReportContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
158  virtual std::string createTDLMessageContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
160  virtual std::string createLaserDesignatorContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
162  virtual std::string createPropContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
164  virtual std::string createSingleEntityContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
166  virtual std::string createMultipleEntityContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
168  virtual std::string createSingleAerodromeContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
170  virtual std::string createMultipleAerodromeContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
172 
173  protected:
174  virtual std::string createAggregateContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
176  virtual std::string createSingleAggregateContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
178  virtual std::string createMultipleAggregateContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
180 
181  protected:
182  virtual std::string createEnvironmentalContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
184  virtual std::string createIntervisibilityContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
186  virtual std::string createSingleEnvironmentalContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
188  virtual std::string createMultipleEnvironmentalContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
190 
191  virtual std::string environmentalRightClickKeyword(makVrv::DtUniqueID id) const;
192 
193  protected:
194  virtual std::string createMixedContextMenu(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
196 
197  protected:
198  virtual void addObjectSettingsActions(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
201 
202  virtual void addTopLevelRightClickScriptedTasksSets(DtVrfContextMenuAssembler&, makVrv::DtMenuConfiguration& menus,
204 
205  protected:
206  bool myEnabled;
208  };
209 
212  {
213  public:
216 
218  virtual makVrv::DtContextMenuManager* create( makVrv::DtDe& de );
219  };
220 }
Builder for menu items.
Definition: DtMenuItem.h:23
boost::unordered_map< std::string, DtMenuItem * > MenuItemBuilderMap
Definition: DtQtMenuAssembler.h:31
Contains the DtContextMenuManager class declaration.
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
Contains makVrv:DtSelectionManager class.
Definition: vrfContextMenuManager.h:37
A Qt implementation of a DtMenuAssembler.
Definition: DtQtMenuAssembler.h:26
Contains makVrv::DtMenuManager class.
Definition: vrfContextMenuManager.h:45
Contains makVrv::DtQtMenuAssembler class.
Contains makVrv::DtMenuPath class.
makVrv::DtQtMenuAssembler::MenuBuilderMap myLocalMenuBuilders
Definition: vrfContextMenuManager.h:78
boost::unordered_map< std::string, DtMenu * > MenuBuilderMap
Definition: DtQtMenuAssembler.h:30
The menu manager can be used to lookup registered QMenu and QAction objects based on their menu paths...
Definition: DtMenuManager.h:38
Definition: DtElementEntry.h:28
Definition: vrfContextMenuManager.h:57
ElementType
Definition: DtElementEntry.h:26
a Class which represents a menu path. The specific strings are not menu text, but the names used when...
Definition: DtMenuPath.h:27
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
A global signaler object for the DtContextMenuManager class.
Definition: DtContextMenuManager.h:28
QMenu * myDeferredDeleteMenu
Definition: vrfContextMenuManager.h:207
Contains makVrv::DtMenuConfiguration class.
The menu string is &quot;DtVrfRightClickContextMenu&quot;. This menu is used as the main pop up menu for the ri...
Definition: vrfContextMenuManager.h:84
This class is responsible for creating the right click context menu based on the current selection...
Definition: vrfContextMenuManager.h:107
The abstract base menu class.
Definition: DtMenu.h:23
static DtMenuPath empty()
SelectionType
The nature of the current selection.
Definition: DtSelectionManager.h:42
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:72
makVrv::DtQtMenuAssembler::MenuItemBuilderMap myLocalMenuItemBuilders
Definition: vrfContextMenuManager.h:79
DtVrfContextMenuMenuManager myMenuManager
Definition: vrfContextMenuManager.h:77
Creator class for the DtInputDriver.
Definition: vrfContextMenuManager.h:211
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Creator class for the DtInputDriver.
Definition: DtContextMenuManager.h:81
bool myEnabled
Definition: vrfContextMenuManager.h:206

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)