VR-Forces 4.8 Class Documentation
 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 #include <boost/signals2.hpp>
11 #include <vlutil/vlFilename.h>
15 
16 namespace makVrv
17 {
18  class DtDe;
19 }
20 
21 #define DtWindowStatePageGeometry "WIN:StatePageGeometry"
22 
23 namespace makVrf
24 {
28 
31  {
32  public:
33 
35  {
38  };
39 
41 
42  virtual ~DtLayoutManager();
43 
45  static DtLayoutManager& instance(makVrv::DtDe&);
46 
48  static void registerInstance(makVrv::DtDe& de, DtLayoutManager* instance);
49 
51  virtual void setLayout(const DtFilename&, bool updateCurrentLayoutBeforeSwitch = false);
52 
54  virtual void setLayoutFromClass(const DtString&, bool updateCurrentLayoutBeforeSwitch = false);
55 
57  virtual DtString layout() const;
58 
60  virtual std::vector<DtString> layouts() const;
61 
64  virtual bool hasFactoryDefault(const DtString&) const;
65 
67  virtual void restoreFromFactory(const DtString&);
68 
70  virtual bool copyToFactory(const DtString&);
71 
73  virtual void revertCurrentLayout();
74 
76  virtual void revertLayout(const DtString&);
77 
79  virtual DtString classNameFrom(const DtFilename& f) const;
80 
82  virtual void uiConfigurationFor(const DtFilename&, makVrv::DtVrvApplicationConfiguration::UIConfiguration&);
83 
85  virtual void updateCurrentLayout();
86 
88  virtual void updateLayout(const DtString&);
89 
91  virtual void setIgnoreGeometryChange(bool b);
92  virtual bool ignoreGeometryChange() const;
93 
95  virtual void resetLayoutFromMasterModeConfiguration();
96 
98  virtual void setDefaultLayout(const DtString&);
99  virtual void clearDefaultLayout();
100  virtual DtString defaultLayout() const;
101 
104  virtual bool duplicateLayout(const DtString& classNameFrom, const DtString& classNameTo);
105 
107  virtual DtFilename layoutFilename(const DtString&) const;
108 
110  virtual void addConfiguration(const DtFilename&, const makVrv::DtVrvApplicationConfiguration::UIConfiguration&);
111 
113  virtual bool hasLayout(const DtString&) const;
114 
117  virtual void addPageCollectionFromMaster(const DtString&);
118 
121  virtual void addToolbarFromMaster(const DtString&);
122 
124  virtual void setPanelVisible(const DtString& className, const DtString& panel, bool b);
125 
127  virtual void setToolbarVisible(const DtString& className, const DtString& toolbar, bool b);
128 
131  virtual void setPaletteItemVisible(const std::string&, bool);
132  virtual bool paletteItemVisible(const std::string&, bool* keyExists = 0) const;
133 
135  virtual void addPaletteItemIfDoesNotExistAndSetToVisible(const std::string&, bool b);
136 
138  virtual void newLayout(const DtString&, bool basedOnCurrent = true);
139 
141  virtual void writeLayouts();
142 
144  virtual void saveLayout(const DtString&);
145 
147  virtual bool deleteLayout(const DtString& s);
148 
150  virtual void renameLayout(const DtString& oldName, const DtString& newName);
151 
153  virtual void setCurrentLayoutUsesFullScreen();
154  virtual bool currentLayoutUsesFullScreen() const;
155  virtual void setLayoutUsesFullScreen(const DtString&);
156  virtual bool layoutUsesFullScreen(const DtString&) const;
157 
159  virtual void setCurrentLayoutIsAlwaysMaximized();
160  virtual bool currentLayoutIsAlwaysMaximized() const;
161  virtual void setLayoutIsAlwaysMaximized(const DtString&);
162  virtual bool layoutIsAlwaysMaximized(const DtString&) const;
163 
165  virtual void setCurrentLayoutUsesWindowGeometry();
166  virtual bool currentLayoutUsesWindowGeometry() const;
167  virtual void setLayoutUsesWindowGeometry(const DtString&);
168  virtual bool layoutUsesWindowGeometry(const DtString&) const;
169 
171  virtual void updateWithCurrentWindowGeometry(const DtString&);
172 
173  virtual void setWindowGeometry(const DtString&, int top, int left, int width, int height);
174  virtual void layoutWindowGeometry(const DtString&, int& top, int& left, int& width, int& height) const;
175 
178  virtual void updateWindowWithGeometryFrom(const DtString&);
179 
181  virtual void initialize();
182 
184  virtual void setSaveLayouts(bool);
185  bool saveLayouts() const;
186 
188  virtual void setSaveLastSavedLayout(bool);
189  bool saveLastSavedLayout() const;
190 
192  virtual void addClassToIgnore(const DtString&);
193  virtual void removeClassToIgnore(const DtString&);
194  const std::set<DtString>& classesToIgnore() const { return myClassesToIgnore; };
195  virtual bool ignoreClass(const DtString&) const;
196 
198  virtual void setLastSavedLayoutClassName(const DtString&);
199  virtual const DtString& lastSavedLayoutClassName() const;
200 
202  virtual void preAssemble();
203  virtual void postAssemble();
204 
206  boost::signals2::signal<void (const DtString& newLayout, const DtString& oldLayout)> signal_layoutSelected;
207 
209  boost::signals2::signal<void (const DtString&)> signal_layoutAdded;
210 
212  boost::signals2::signal<void (const DtString&)> signal_layoutUpdated;
213 
215  boost::signals2::signal<void (const DtString&)> signal_layoutDeleted;
216 
218  boost::signals2::signal<void (const DtString& newFav, const DtString& oldFav)> signal_defaultChanged;
219 
221  boost::signals2::signal<void (const DtString& oldName, const DtString& newName)> signal_layoutRenamed;
222 
224  boost::signals2::signal<void (const DtString& className, makVrv::DtVrvApplicationConfiguration::UIConfiguration&)> signal_layoutToBeRealized;
225 
226  protected:
227 
229  virtual void updateToolbarStates(const makVrv::DtToolbarConfiguration&);
230  virtual void updatePageStates(const makVrv::DtPageConfiguration&);
231 
234  virtual bool addConfigurationFor(const DtFilename&, bool addAny = false);
235 
237  virtual void createLayoutBasedOnCurrentConfiguration(const DtString&, bool andUpdateLayout = true);
238 
239  protected:
241  DtFilename myLayout;
242 
243  typedef std::map<DtString, std::pair<DtFilename, Configuration> > Configurations;
245 
248 
249  typedef std::map<std::string, bool> PanelItems;
251 
252  std::set<DtString> myClassesToIgnore;
254 
256 
259  };
260 }
Definition: DtVrvApplicationConfiguration.h:32
std::map< DtString, std::pair< DtFilename, Configuration > > Configurations
Definition: layoutManager.h:243
boost::signals2::signal< void(const DtString &newFav, const DtString &oldFav)> signal_defaultChanged
Signal sent when a layout is made the default.
Definition: layoutManager.h:218
bool myIgnoreGeometryChange
Definition: layoutManager.h:255
Virtual base class.
Definition: DtVirtualBaseClass.h:22
static DtString theLayoutFilePrefix
Prefix used for the layout files on disk. Defaults to &quot;layout_&quot;.
Definition: layoutManager.h:258
The DtLayoutManager class allows for the managing (adding, setting and deleting) of UI Layout configu...
Definition: layoutManager.h:30
PageCollectionLocation
Definition: DtPageConfiguration.h:42
boost::signals2::signal< void(const DtString &)> signal_layoutAdded
Signal sent when a layout is added.
Definition: layoutManager.h:209
Definition: DtPageConfiguration.h:53
boost::signals2::signal< void(const DtString &)> signal_layoutUpdated
Signal sent when a layout is updated.
Definition: layoutManager.h:212
const makVrv::DtPageConfiguration::PageCollectionLocation DtMaximized
Definition: layoutManager.h:26
#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:224
bool mySaveLastSavedLayout
Definition: layoutManager.h:247
makVrv::DtDe & myDe
Definition: layoutManager.h:240
makVrv::DtVrvApplicationConfiguration::UIConfiguration original
Definition: layoutManager.h:36
Contains makVrv::DtPageConfiguration class.
Contains makVrv::DtVirtualBaseClass class.
Definition: layoutManager.h:34
PanelItems myPanelItems
Definition: layoutManager.h:250
std::set< DtString > myClassesToIgnore
Definition: layoutManager.h:252
A configuration of the pages in the gui.
Definition: DtPageConfiguration.h:25
bool mySaveLayouts
Definition: layoutManager.h:246
makVrv::DtVrvApplicationConfiguration::UIConfiguration current
Definition: layoutManager.h:37
Configurations myConfigurations
Definition: layoutManager.h:244
const std::set< DtString > & classesToIgnore() const
Definition: layoutManager.h:194
boost::signals2::signal< void(const DtString &oldName, const DtString &newName)> signal_layoutRenamed
Signal sent when a layout is renamed.
Definition: layoutManager.h:221
const makVrv::DtPageConfiguration::PageCollectionLocation DtWindowed
Definition: layoutManager.h:27
DtFilename myLayout
Definition: layoutManager.h:241
Contains makVrv::DtToolbarConfiguration class.
std::map< std::string, bool > PanelItems
Definition: layoutManager.h:249
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:28
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::signals2::signal< void(const DtString &newLayout, const DtString &oldLayout)> signal_layoutSelected
Signal sent when a layout is selected.
Definition: layoutManager.h:206
boost::signals2::signal< void(const DtString &)> signal_layoutDeleted
Signal sent when a layout is removed.
Definition: layoutManager.h:215
const makVrv::DtPageConfiguration::PageCollectionLocation DtFullScreen
Definition: layoutManager.h:25
Contains makVrv:DtVrvApplicationConfiguration class.
DtString myLastSavedLayoutClassName
Definition: layoutManager.h:253

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)