VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtQtMenuAssembler.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCoreQt/vrvCoreQt.h>
13 #include <boost/unordered_map.hpp>
14 
15 class QMenuBar;
16 class QWidget;
17 
18 namespace makVrv
19 {
20  class DtMenu;
21  class DtMenuItem;
22  class DtMenuManager;
23 
27  {
28  public:
29 
30  typedef boost::unordered_map<std::string,DtMenu*> MenuBuilderMap;
31  typedef boost::unordered_map<std::string,DtMenuItem*> MenuItemBuilderMap;
32 
34 
36  virtual ~DtQtMenuAssembler();
37 
39  static DtQtMenuAssembler& instance(DtDe& de);
40 
42  void registerMenu(DtMenu*);
43 
45  DtMenu* menuBuilder(const std::string&) const;
46 
48  void unregisterMenu(DtMenu*, bool deleteBuilder = true);
49 
51  void registerMenu(DtMenuItem*);
52 
54  DtMenuItem* menuItemBuilder(const std::string&) const;
55 
57  void unregisterMenu(DtMenuItem*, bool deleteBuilder = true);
58 
60  {
61  return myMenuBuilders;
62  }
63 
65  {
66  return myMenuItemBuilders;
67  }
68 
70  {
71  return myMenuBuilders;
72  }
73 
75  {
76  return myMenuItemBuilders;
77  }
78 
81  virtual void merge(const DtQtMenuAssembler::MenuBuilderMap&);
82 
85  virtual void merge(const DtQtMenuAssembler::MenuItemBuilderMap&);
86 
87  protected:
88 
91 
93  virtual void assembleMenu(const DtMenuPath& menuPath);
94 
96  virtual void assembleMenuItem(const DtMenuPath& menuPath);
97 
98  virtual void sortConfiguration(const DtMenuConfiguration& configuration);
99 
100  virtual QMenuBar* menuBar();
101  virtual QWidget* menuWindow();
102  virtual DtMenuManager& menuManager();
103 
104  protected:
107  };
108 
112  {
113  public:
114 
117 
119  virtual ~DtQtMenuAssemblerCreator();
120 
122  virtual DtMenuAssembler* create(DtDe& de);
123 
124  };
125 }
Builder for menu items.
Definition: DtMenuItem.h:23
boost::unordered_map< std::string, DtMenuItem * > MenuItemBuilderMap
Definition: DtQtMenuAssembler.h:31
MenuBuilderMap myMenuBuilders
Definition: DtQtMenuAssembler.h:105
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
Contains makVrv::DtMenuAssembler class.
A Qt implementation of a DtMenuAssembler.
Definition: DtQtMenuAssembler.h:26
Contains DLL export macros.
const MenuBuilderMap & menuBuilderMap() const
Definition: DtQtMenuAssembler.h:59
MenuBuilderMap & menuBuilderMap()
Definition: DtQtMenuAssembler.h:69
boost::unordered_map< std::string, DtMenu * > MenuBuilderMap
Definition: DtQtMenuAssembler.h:30
MenuItemBuilderMap myMenuItemBuilders
Definition: DtQtMenuAssembler.h:106
The menu manager can be used to lookup registered QMenu and QAction objects based on their menu paths...
Definition: DtMenuManager.h:38
Override the DtMenuAssemblerCreator with a DtQtMenuAssemblerCreator.
Definition: DtQtMenuAssembler.h:111
a Class which represents a menu path. The specific strings are not menu text, but the names used when...
Definition: DtMenuPath.h:27
The abstract base menu class.
Definition: DtMenu.h:23
const MenuItemBuilderMap & menuItemBuilderMap() const
Definition: DtQtMenuAssembler.h:64
MenuItemBuilderMap & menuItemBuilderMap()
Definition: DtQtMenuAssembler.h:74
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
An abstract menu assembler base class.
Definition: DtMenuAssembler.h:25
An abstract menu assembler creator base class. This base class allows for the application&#39;s default m...
Definition: DtMenuAssembler.h:73

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)