VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
layoutManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
11 #include <vlutil/vlFilename.h>
15 #include <boost/signals2.hpp>
16 
17 namespace makVrv
18 {
19  class DtDe;
20 }
21 
22 #define DtWindowStatePageGeometry "WIN:StatePageGeometry"
23 
24 namespace makVrf
25 {
29 
38  {
39  public:
40 
42  {
45  };
46 
48 
49  virtual ~DtLayoutManager();
50 
52  static DtLayoutManager& instance(makVrv::DtDe&);
53 
55  static void registerInstance(makVrv::DtDe& de, DtLayoutManager* instance);
56 
58  virtual void setLayout(const DtFilename&, bool updateCurrentLayoutBeforeSwitch = false);
59 
61  virtual void setLayoutFromClass(const DtString&, bool updateCurrentLayoutBeforeSwitch = false, bool force = false);
62 
64  virtual DtString layout() const;
65 
67  virtual std::vector<DtString> layouts() const;
68 
71  virtual bool hasFactoryDefault(const DtString&) const;
72 
74  virtual void restoreFromFactory(const DtString&);
75 
77  virtual bool copyToFactory(const DtString&);
78 
80  virtual void revertCurrentLayout();
81 
83  virtual void revertLayout(const DtString&);
84 
86  virtual DtString classNameFrom(const DtFilename& f) const;
87 
89  virtual bool uiConfigurationFor(const DtFilename&, makVrv::DtVrvApplicationConfiguration::UIConfiguration&);
90 
92  virtual void updateCurrentLayout();
93 
95  virtual void updateLayout(const DtString&);
96 
98  virtual void setIgnoreGeometryChange(bool b);
99  virtual bool ignoreGeometryChange() const;
100 
102  virtual void resetLayoutFromMasterModeConfiguration();
103 
105  virtual void setDefaultLayout(const DtString&);
106  virtual void clearDefaultLayout();
107  virtual DtString defaultLayout() const;
108 
111  virtual bool duplicateLayout(const DtString& classNameFrom, const DtString& classNameTo);
112 
114  virtual DtFilename layoutFilename(const DtString&) const;
115 
117  virtual void addConfiguration(const DtFilename&, const makVrv::DtVrvApplicationConfiguration::UIConfiguration&);
118 
120  virtual bool hasLayout(const DtString&) const;
121 
124  virtual void addPageCollectionFromMaster(const DtString&);
125 
128  virtual void addToolbarFromMaster(const DtString&);
129 
131  virtual void setPanelVisible(const DtString& className, const DtString& panel, bool b);
132 
134  virtual void setToolbarVisible(const DtString& className, const DtString& toolbar, bool b);
135 
138  virtual void setPaletteItemVisible(const std::string&, bool);
139  virtual bool paletteItemVisible(const std::string&, bool* keyExists = 0) const;
140 
142  virtual void addPaletteItemIfDoesNotExistAndSetToVisible(const std::string&, bool b);
143 
145  virtual void newLayout(const DtString&, bool basedOnCurrent = true);
146 
148  virtual void writeLayouts();
149 
151  virtual void saveLayout(const DtString&);
152 
154  virtual bool deleteLayout(const DtString& s);
155 
157  virtual void renameLayout(const DtString& oldName, const DtString& newName);
158 
160  virtual void setCurrentLayoutUsesFullScreen();
161  virtual bool currentLayoutUsesFullScreen() const;
162  virtual void setLayoutUsesFullScreen(const DtString&);
163  virtual bool layoutUsesFullScreen(const DtString&) const;
164 
166  virtual void setCurrentLayoutIsAlwaysMaximized();
167  virtual bool currentLayoutIsAlwaysMaximized() const;
168  virtual void setLayoutIsAlwaysMaximized(const DtString&);
169  virtual bool layoutIsAlwaysMaximized(const DtString&) const;
170 
172  virtual void setCurrentLayoutUsesWindowGeometry();
173  virtual bool currentLayoutUsesWindowGeometry() const;
174  virtual void setLayoutUsesWindowGeometry(const DtString&);
175  virtual bool layoutUsesWindowGeometry(const DtString&) const;
176 
178  virtual void updateWithCurrentWindowGeometry(const DtString&);
179 
180  virtual void setWindowGeometry(const DtString&, int top, int left, int width, int height);
181  virtual void layoutWindowGeometry(const DtString&, int& top, int& left, int& width, int& height) const;
182 
185  virtual void updateWindowWithGeometryFrom(const DtString&);
186 
188  virtual void initialize();
189 
191  virtual void setSaveLayouts(bool);
192  bool saveLayouts() const;
193 
195  virtual void setSaveLastSavedLayout(bool);
196  bool saveLastSavedLayout() const;
197 
199  virtual void addClassToIgnore(const DtString&);
200  virtual void removeClassToIgnore(const DtString&);
201  const std::set<DtString>& classesToIgnore() const { return myClassesToIgnore; };
202  virtual bool ignoreClass(const DtString&) const;
203 
205  virtual void setLastSavedLayoutClassName(const DtString&);
206  virtual const DtString& lastSavedLayoutClassName() const;
207 
209  virtual void preAssemble();
210  virtual void postAssemble();
211 
213  boost::signals2::signal<void (const DtString& newLayout, const DtString& oldLayout)> signal_layoutSelected;
214 
216  boost::signals2::signal<void (const DtString&)> signal_layoutAdded;
217 
219  boost::signals2::signal<void (const DtString&)> signal_layoutUpdated;
220 
222  boost::signals2::signal<void (const DtString&)> signal_layoutDeleted;
223 
225  boost::signals2::signal<void (const DtString& newFav, const DtString& oldFav)> signal_defaultChanged;
226 
228  boost::signals2::signal<void (const DtString& oldName, const DtString& newName)> signal_layoutRenamed;
229 
231  boost::signals2::signal<void (const DtString& className, makVrv::DtVrvApplicationConfiguration::UIConfiguration&)> signal_layoutToBeRealized;
232 
233  protected:
234 
236  virtual void updateToolbarStates(const makVrv::DtToolbarConfiguration&);
237  virtual void updatePageStates(const makVrv::DtPageConfiguration&);
238 
241  virtual bool addConfigurationFor(const DtFilename&, bool addAny = false);
242 
244  virtual void createLayoutBasedOnCurrentConfiguration(const DtString&, bool andUpdateLayout = true);
245 
246  protected:
248  DtFilename myLayout;
249 
250  typedef std::map<DtString, std::pair<DtFilename, Configuration> > Configurations;
252 
255 
256  typedef std::map<std::string, bool> PanelItems;
258 
259  std::set<DtString> myClassesToIgnore;
261 
263 
266  };
267 }
Definition: DtVrvApplicationConfiguration.h:37
std::map< DtString, std::pair< DtFilename, Configuration > > Configurations
Definition: layoutManager.h:250
boost::signals2::signal< void(const DtString &newFav, const DtString &oldFav)> signal_defaultChanged
Signal sent when a layout is made the default.
Definition: layoutManager.h:225
bool myIgnoreGeometryChange
Definition: layoutManager.h:262
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
static DtString theLayoutFilePrefix
Prefix used for the layout files on disk. Defaults to &quot;layout_&quot;.
Definition: layoutManager.h:265
The DtLayoutManager class allows for the managing (adding, setting and deleting) of UI Layout configu...
Definition: layoutManager.h:37
PageCollectionLocation
Definition: DtPageConfiguration.h:42
boost::signals2::signal< void(const DtString &)> signal_layoutAdded
Signal sent when a layout is added.
Definition: layoutManager.h:216
Definition: DtPageConfiguration.h:53
boost::signals2::signal< void(const DtString &)> signal_layoutUpdated
Signal sent when a layout is updated.
Definition: layoutManager.h:219
const makVrv::DtPageConfiguration::PageCollectionLocation DtMaximized
Definition: layoutManager.h:27
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
boost::signals2::signal< void(const DtString &className, makVrv::DtVrvApplicationConfiguration::UIConfiguration &)> signal_layoutToBeRealized
Signal sent before layout is to be realized.
Definition: layoutManager.h:231
bool mySaveLastSavedLayout
Definition: layoutManager.h:254
makVrv::DtDe & myDe
Definition: layoutManager.h:247
makVrv::DtVrvApplicationConfiguration::UIConfiguration original
Definition: layoutManager.h:43
Contains makVrv::DtPageConfiguration class.
Contains makVrv::DtVirtualBaseClass class.
Definition: layoutManager.h:41
PanelItems myPanelItems
Definition: layoutManager.h:257
std::set< DtString > myClassesToIgnore
Definition: layoutManager.h:259
A configuration of the pages in the gui.
Definition: DtPageConfiguration.h:25
bool mySaveLayouts
Definition: layoutManager.h:253
makVrv::DtVrvApplicationConfiguration::UIConfiguration current
Definition: layoutManager.h:44
Configurations myConfigurations
Definition: layoutManager.h:251
const std::set< DtString > & classesToIgnore() const
Definition: layoutManager.h:201
boost::signals2::signal< void(const DtString &oldName, const DtString &newName)> signal_layoutRenamed
Signal sent when a layout is renamed.
Definition: layoutManager.h:228
const makVrv::DtPageConfiguration::PageCollectionLocation DtWindowed
Definition: layoutManager.h:28
DtFilename myLayout
Definition: layoutManager.h:248
Contains makVrv::DtToolbarConfiguration class.
std::map< std::string, bool > PanelItems
Definition: layoutManager.h:256
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:25
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
boost::signals2::signal< void(const DtString &newLayout, const DtString &oldLayout)> signal_layoutSelected
Signal sent when a layout is selected.
Definition: layoutManager.h:213
boost::signals2::signal< void(const DtString &)> signal_layoutDeleted
Signal sent when a layout is removed.
Definition: layoutManager.h:222
const makVrv::DtPageConfiguration::PageCollectionLocation DtFullScreen
Definition: layoutManager.h:26
Contains makVrv:DtVrvApplicationConfiguration class.
DtString myLastSavedLayoutClassName
Definition: layoutManager.h:260

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)