VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
defaultGuiConfigurationCreator.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
14 #include <vrvUtil/signalslib.h>
20 #include <mtl/envValue.h>
21 
22 namespace makVrv
23 {
24  class DtDe;
25 }
26 
27 class DtEnvList;
28 
29 namespace makVrf
30 {
42 
44  {
45  public:
46  typedef boost::function<void (const DtString&)> ReadOptionFunction;
47  typedef boost::function<void (DtEnvironment*, DtEnvValueSP)> WriteOptionFunction;
48 
49  enum Flags
50  {
51  InformationConfiguration = 1,
52  PageConfiguration = 2,
53  ToolbarConfiguration = 4,
54  MenuConfiguration = 8,
55  RightClickMenuConfiguration = 16,
56  AllConfigurations = 32
57  };
58 
59  typedef std::map<std::string, makVrv::DtMenuConfiguration> RightClickConfigurations;
60 
63 
66 
67  static DtDefaultGuiConfigurationCreator& instance(makVrv::DtDe& de);
68  static void registerInstance(makVrv::DtDe& de, DtDefaultGuiConfigurationCreator*);
69 
72  virtual void createDefaultGuiConfigurationFile(bool force = false);
73 
75  virtual void save(const std::string&);
76 
78  virtual bool load(const std::string&);
79 
81  const DtFilename& filename() const
82  {
83  return myFilename;
84  }
85 
87  virtual bool isValid() const;
88 
89  public:
91  virtual void setInformationPageConfiguration(const DtInformationPageConfiguration&);
93  {
94  return myLoadedConfigurations.myInformationDialogConfiguration;
95  }
97  {
98  return myLoadedConfigurations.myInformationDialogConfiguration;
99  }
101  {
102  return myBackupConfigurations.myInformationDialogConfiguration;
103  }
104 
106  virtual void setMainPageConfiguration(const makVrv::DtPageConfiguration&);
108  {
109  return myLoadedConfigurations.myMainPageConfiguration;
110  }
112  {
113  return myLoadedConfigurations.myMainPageConfiguration;
114  }
116  {
117  return myBackupConfigurations.myMainPageConfiguration;
118  }
119 
121  virtual void setMainToolbarConfiguration(const makVrv::DtToolbarConfiguration&);
123  {
124  return myLoadedConfigurations.myMainToolbarConfiguration;
125  }
127  {
128  return myLoadedConfigurations.myMainToolbarConfiguration;
129  }
131  {
132  return myBackupConfigurations.myMainToolbarConfiguration;
133  }
134 
136  virtual void setRightClickMenuConfiguration(const RightClickConfigurations&);
138  {
139  return myLoadedConfigurations.myRightClickMenuConfigurations;
140  }
142  {
143  return myLoadedConfigurations.myRightClickMenuConfigurations;
144  }
146  {
147  return myBackupConfigurations.myRightClickMenuConfigurations;
148  }
149 
151  virtual void setMainMenuConfiguration(const makVrv::DtMenuConfiguration&);
153  {
154  return myLoadedConfigurations.myMainMenuConfiguration;
155  }
157  {
158  return myLoadedConfigurations.myMainMenuConfiguration;
159  }
161  {
162  return myBackupConfigurations.myMainMenuConfiguration;
163  }
164 
166  virtual void addRightClickContextMenu(const std::string& context, const makVrv::DtMenuConfiguration& configuration);
167  const makVrv::DtMenuConfiguration& rightClickContextMenu(const std::string& context) const;
168  makVrv::DtMenuConfiguration& rightClickContextMenu(const std::string& context);
169  const makVrv::DtMenuConfiguration& originalRightClickContextMenu(const std::string& context) const;
170 
172  virtual void clearAllContextMenus();
173 
177  virtual void install();
178 
179  boost::signals2::signal<void ()> signal_preInstall;
180  boost::signals2::signal<void ()> signal_postInstall;
181 
183  virtual void installLockedOnly();
184 
185  boost::signals2::signal<void ()> signal_preLockInstall;
186  boost::signals2::signal<void ()> signal_postLockInstall;
187 
191  virtual void setLock(int, bool);
192  bool isLocked(int) const;
193 
195  virtual void readOptions(DtEnvironment*, DtEnvValueSP root);
196 
198  virtual void saveOptions(DtEnvironment* env, DtEnvValueSP root);
199 
201  virtual void addOption(const DtString& option, ReadOptionFunction readFunc, WriteOptionFunction writeFunc);
202 
204  virtual double dockedToolbarWidth(const DtString&) const;
205  virtual void setDockedToolbarWidth(const DtString&, double);
206 
207  protected:
209  virtual void setOverrideLayout(const DtString&);
210  virtual void writeOverrideLayout(DtEnvironment* env, DtEnvValueSP root);
211 
212  virtual void setAllowEditing(const DtString&);
213  virtual void postTickSetAllowEditing(bool b);
214  virtual void writeAllowEditing(DtEnvironment* env, DtEnvValueSP root);
215 
216  virtual void setLayoutSettingsFile(const DtString&);
217  virtual void writeLayoutSettingsFile(DtEnvironment* env, DtEnvValueSP root);
218 
220  virtual void saveMenuConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtMenuConfiguration&) const;
221 
223  virtual void savePageConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtPageConfiguration&) const;
224 
226  virtual void saveToolbarConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtToolbarConfiguration&) const;
227 
228  protected:
230  {
231  void operator=(const Configurations& rhs)
232  {
233  myInformationDialogConfiguration = rhs.myInformationDialogConfiguration;
234  myMainPageConfiguration = rhs.myMainPageConfiguration;
235  myMainMenuConfiguration = rhs.myMainMenuConfiguration;
236  myMainToolbarConfiguration = rhs.myMainToolbarConfiguration;
237  myMainToolbarConfiguration.copyValuesFrom(rhs.myMainToolbarConfiguration);
238  myRightClickMenuConfigurations = rhs.myRightClickMenuConfigurations;
239  }
240 
246  };
247 
250 
254 
255  DtFilename myFilename;
256 
258  {
261  };
262 
263  typedef std::map<DtString, OptionFunctions> OptionFunctionsMap;
265 
266  typedef std::map<DtString, double> DockedToolbarWidths;
268  };
269 
272  {
273  public:
276 
278  virtual ~DtVrfMenuConfigurationWriter();
279 
280  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
281 
282  protected:
283  virtual void writeMenuPath(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtMenuPath& menuPath) const;
284  };
285 
288  {
289  public:
292 
294  virtual ~DtVrfMenuConfigurationReader();
295 
296  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root, const std::string& menuType = "mainmenu");
297 
298  protected:
299  virtual void createMenuFromNode(DtEnvironment* env, DtEnvValueSP menu);
300  };
301 
304  {
305  public:
308 
310  virtual ~DtVrfPageConfigurationWriter();
311 
312  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
313 
314  protected:
315  virtual void writePagePath(DtEnvironment* env, DtEnvValueSP root, const DtInformationPagePath& menuPath) const;
316  };
317 
320  {
321  public:
324 
326  virtual ~DtVrfPageConfigurationReader();
327 
328  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
329 
330  protected:
331  virtual void createPageFromNode(DtEnvironment* env, DtEnvValueSP menu);
332 
333  virtual void parsePageItems(DtEnvironment* env, DtEnvList* items, const DtInformationPagePath::InformationPagePathBuilder& );
334  };
335 
338  {
339  public:
342 
345 
346  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
347 
348  protected:
349  virtual void writeToolbarPath(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtToolbarPath& menuPath) const;
350 
351  protected:
353  };
354 
357  {
358  public:
361 
364 
365  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
366  const ToolbarStateMap& toolbarStates() const { return myToolbarStates; };
367 
368  protected:
369  virtual void createToolbarFromRow(DtEnvironment* env, DtEnvValueSP row);
370  virtual void createToolbar(DtEnvironment* env, DtEnvValueSP toolbar);
371 
372  protected:
374  };
375 }
const ToolbarStateMap & toolbarStates() const
Definition: defaultGuiConfigurationCreator.h:366
This class will read a toolbar configuration from the given XML node.
Definition: defaultGuiConfigurationCreator.h:356
The DtDefaultGuiConfigurationCreator class will create the default_guiConfiguration.gui file in the factory directory if that file does not exist.
Definition: defaultGuiConfigurationCreator.h:43
makVrv::DtToolbarConfiguration myMainToolbarConfiguration
Definition: defaultGuiConfigurationCreator.h:244
boost::function< void(DtEnvironment *, DtEnvValueSP)> WriteOptionFunction
Definition: defaultGuiConfigurationCreator.h:47
const makVrv::DtPageConfiguration & originalPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:115
boost::signals2::signal< void()> signal_preInstall
Definition: defaultGuiConfigurationCreator.h:179
makVrv::DtToolbarConfiguration & mainToolbarConfiguration()
Definition: defaultGuiConfigurationCreator.h:126
RightClickConfigurations myRightClickMenuConfigurations
Definition: defaultGuiConfigurationCreator.h:245
Virtual base class.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void()> signal_preLockInstall
Definition: defaultGuiConfigurationCreator.h:185
This class will write a page configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:303
int mySetFlags
Definition: defaultGuiConfigurationCreator.h:252
boost::function< void(const DtString &)> ReadOptionFunction
Definition: defaultGuiConfigurationCreator.h:46
makVrv::DtMenuConfiguration & mainMenuConfiguration()
Definition: defaultGuiConfigurationCreator.h:156
const DtInformationPageConfiguration & originalInformationPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:100
makVrv::DtPageConfiguration myMainPageConfiguration
Definition: defaultGuiConfigurationCreator.h:242
Definition: defaultGuiConfigurationCreator.h:257
Configurations myBackupConfigurations
Definition: defaultGuiConfigurationCreator.h:249
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
void copyValuesFrom(const DtToolbarConfiguration &source)
Uses the location, geometry, order, etc.
boost::signals2::signal< void()> signal_postInstall
Definition: defaultGuiConfigurationCreator.h:180
Flags
Definition: defaultGuiConfigurationCreator.h:49
const makVrv::DtToolbarConfiguration & mainToolbarConfiguration() const
Definition: defaultGuiConfigurationCreator.h:122
makVrv::DtDe & myDe
Definition: defaultGuiConfigurationCreator.h:251
const DtFilename & filename() const
Returns the filename loaded from a successful load.
Definition: defaultGuiConfigurationCreator.h:81
This class will write a menu configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:271
OptionFunctionsMap myOptionFunctions
Definition: defaultGuiConfigurationCreator.h:264
This class will write a page configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:319
std::map< DtToolbarPath, ToolbarState > ToolbarStateMap
Definition: DtToolbarConfiguration.h:88
const makVrv::DtToolbarConfiguration & originalToolbarConfiguration() const
Definition: defaultGuiConfigurationCreator.h:130
const RightClickConfigurations & rightClickMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:137
std::map< std::string, makVrv::DtMenuConfiguration > RightClickConfigurations
Definition: defaultGuiConfigurationCreator.h:59
const DtDefaultGuiConfigurationCreator * myCreator
Definition: defaultGuiConfigurationCreator.h:352
DtInformationPageConfiguration & informationPageConfiguration()
Definition: defaultGuiConfigurationCreator.h:96
Contains makVrv::DtPageConfiguration class.
Contains makVrv::DtVirtualBaseClass class.
This class will reader a menu configuration from the given XML node.
Definition: defaultGuiConfigurationCreator.h:287
void operator=(const Configurations &rhs)
Definition: defaultGuiConfigurationCreator.h:231
boost::signals2::signal< void()> signal_postLockInstall
Definition: defaultGuiConfigurationCreator.h:186
const makVrv::DtMenuConfiguration & originalMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:160
int myLockedFlags
Definition: defaultGuiConfigurationCreator.h:253
Definition: defaultGuiConfigurationCreator.h:229
makVrv::DtPageConfiguration & mainPageConfiguration()
Definition: defaultGuiConfigurationCreator.h:111
A configuration of the pages in the gui.
Definition: DtPageConfiguration.h:25
makVrv::DtMenuConfiguration myMainMenuConfiguration
Definition: defaultGuiConfigurationCreator.h:243
std::map< DtString, OptionFunctions > OptionFunctionsMap
Definition: defaultGuiConfigurationCreator.h:263
a Class which represents a menu path.
Definition: DtMenuPath.h:27
DockedToolbarWidths myDockedToolbarWidths
Definition: defaultGuiConfigurationCreator.h:267
Contains makVrv::DtMenuConfiguration class.
Configurations myLoadedConfigurations
Definition: defaultGuiConfigurationCreator.h:248
A page path is the location of a page based upon it&#39;s parents.
Definition: informationPagePath.h:23
const DtInformationPageConfiguration & informationPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:92
DtFilename myFilename
Definition: defaultGuiConfigurationCreator.h:255
const makVrv::DtMenuConfiguration & mainMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:152
Contains makVrv::DtToolbarConfiguration class.
a Class which represents a toolbar path.
Definition: DtToolbarPath.h:40
DtDefaultGuiConfigurationCreator * myCreator
Definition: defaultGuiConfigurationCreator.h:373
Contains DtInformationPageConfiguration class.
RightClickConfigurations & rightClickMenuConfiguration()
Definition: defaultGuiConfigurationCreator.h:141
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:25
std::map< DtString, double > DockedToolbarWidths
Definition: defaultGuiConfigurationCreator.h:266
A configuration of the menu layout.
Definition: DtMenuConfiguration.h:24
DtInformationPageConfiguration myInformationDialogConfiguration
Definition: defaultGuiConfigurationCreator.h:241
const makVrv::DtPageConfiguration & mainPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:107
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
const RightClickConfigurations & originalRightClickMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:145
This class will write a toolbar configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:337
WriteOptionFunction writeFunction
Definition: defaultGuiConfigurationCreator.h:260
ReadOptionFunction readFunction
Definition: defaultGuiConfigurationCreator.h:259
A configuration of the pages in the gui.
Definition: informationPageConfiguration.h:20

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)