VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtUserInterfaceAssembler.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtUserInterfaceAssembler_H_
11 #define DtUserInterfaceAssembler_H_
12 
13 #include <vrvCore/vrvCore.h>
15 #include <vrvCore/DtDe.h>
17 #include <boost/unordered_map.hpp>
18 #include <list>
19 #include <string>
20 
21 namespace makVrv
22 {
23  class DtDeMainWindow;
24 
29  {
30  public:
31 
32  typedef std::pair<std::string, bool> WidgetCreationOrder;
33  typedef boost::unordered_map<std::string, WidgetCreationOrder> WidgetCreationOrderMap;
34  typedef std::list<std::string> BuilderList;
35 
36  public:
37 
40  static DtUserInterfaceAssembler& instance(DtDe& de);
41 
43  virtual ~DtUserInterfaceAssembler();
44 
49  virtual bool destroyBuilder(const std::string& builderName, DtUserInterfaceBuilder* builder);
50 
53  virtual DtUserInterfaceBuilder* findMenuBuilder(const std::string& builderName) const;
54 
57  virtual void registerMenuBuilder(const std::string& builderName, DtUserInterfaceBuilder* builder,
58  int modeFlags);
59 
62  virtual DtUserInterfaceBuilder* findMenuItemBuilder(const std::string& builderName) const;
63 
66  virtual void registerMenuItemBuilder(const std::string& builderName, DtUserInterfaceBuilder* builder,
67  int modeFlags);
68 
71  virtual DtUserInterfaceBuilder* findWidgetBuilder(const std::string& builderName) const;
72 
75  virtual void registerWidgetBuilder(const std::string& builderName, DtUserInterfaceBuilder* builder,
76  int modeFlags);
77 
80  virtual void assemble(DtDe& de, DtDeMainWindow& mainWindow);
81 
84  virtual void createControlBefore(const std::string& control, const std::string& before);
85 
88  virtual void createControlAfter(const std::string& control, const std::string& after);
89 
91  virtual void removeControlCreationOrder(const std::string& control);
92 
94  virtual void setMasterModeAssembleList(const BuilderList& builderList);
95 
97  virtual const BuilderList& masterModeAssembleList() const;
98 
100  virtual void setSlaveModeAssembleList(const BuilderList& builderList);
101 
103  virtual const BuilderList& slaveModeAssembleList() const;
104 
105  protected:
106 
107  typedef boost::unordered_map<std::string, DtUserInterfaceBuilder*> BuilderMap;
108 
109 
112 
115  static DtUserInterfaceAssembler* create();
116 
118  virtual void buildMenus(DtDe& de, DtDeMainWindow& mainWindow, BuilderList& builderList);
119 
121  virtual void buildMenuItems(DtDe& de, DtDeMainWindow& mainWindow, BuilderList& builderList);
122 
124  virtual void buildWidgets(DtDe& de, DtDeMainWindow& mainWindow, BuilderList& builderList);
125 
127  virtual void build(DtDe& de, DtDeMainWindow& mainWindow, DtUserInterfaceBuilder* builder);
128 
131  virtual void mapNameToMode(const std::string& name, int modeFlags);
132 
134  virtual BuilderList widgetBuildOrder(const BuilderList&) const;
135 
136  protected:
137 
141 
144 
146  };
147 
148 
149 
150 
151 }
152 
153 #endif
154 
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::pair< std::string, bool > WidgetCreationOrder
Definition: DtUserInterfaceAssembler.h:32
BuilderMap myWidgetBuilderMap
Definition: DtUserInterfaceAssembler.h:140
boost::unordered_map< std::string, WidgetCreationOrder > WidgetCreationOrderMap
Definition: DtUserInterfaceAssembler.h:33
std::list< std::string > BuilderList
Definition: DtUserInterfaceAssembler.h:34
BuilderList myMasterModeList
Definition: DtUserInterfaceAssembler.h:142
Contains makVrv::DtDe class.
BuilderMap myMenuBuilderMap
Definition: DtUserInterfaceAssembler.h:138
DEPRECATED A builder knows how to build one specific part and add it to a DtDeMainWindow.
Definition: DtUserInterfaceBuilder.h:24
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv::DtUserInterfaceBuilder class.
The abstract main window class.
Definition: DtDeMainWindow.h:24
WidgetCreationOrderMap myCreationOrder
Definition: DtUserInterfaceAssembler.h:145
BuilderList mySlaveModeList
Definition: DtUserInterfaceAssembler.h:143
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
DEPRECATED The DtUserInterfaceAssembler builds parts of a window from it&#39;s list of builders...
Definition: DtUserInterfaceAssembler.h:28
BuilderMap myMenuItemBuilderMap
Definition: DtUserInterfaceAssembler.h:139
boost::unordered_map< std::string, DtUserInterfaceBuilder * > BuilderMap
Definition: DtUserInterfaceAssembler.h:107
Contains DLL export macros.

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)