VR-Forces 4.8 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 #include <vrvUtil/signalslib.h>
23 
24 namespace makVrv
25 {
26  class DtDe;
27 }
28 
29 class DtEnvList;
30 
31 namespace makVrf
32 {
44 
46  {
47  public:
48  typedef boost::function<void (const DtString&)> ReadOptionFunction;
49  typedef boost::function<void (DtEnvironment*, DtEnvValueSP)> WriteOptionFunction;
50 
51  enum Flags
52  {
53  InformationConfiguration = 1,
54  PageConfiguration = 2,
55  ToolbarConfiguration = 4,
56  MenuConfiguration = 8,
57  RightClickMenuConfiguration = 16,
58  AllConfigurations = 32
59  };
60 
61  typedef std::map<std::string, makVrv::DtMenuConfiguration> RightClickConfigurations;
62 
65 
68 
69  static DtDefaultGuiConfigurationCreator& instance(makVrv::DtDe& de);
70  static void registerInstance(makVrv::DtDe& de, DtDefaultGuiConfigurationCreator*);
71 
74  virtual void createDefaultGuiConfigurationFile(bool force = false);
75 
77  virtual void save(const std::string&);
78 
80  virtual bool load(const std::string&);
81 
83  const DtFilename& filename() const
84  {
85  return myFilename;
86  }
87 
89  virtual bool isValid() const;
90 
91  public:
93  virtual void setInformationPageConfiguration(const DtInformationPageConfiguration&);
95  {
96  return myLoadedConfigurations.myInformationDialogConfiguration;
97  }
99  {
100  return myLoadedConfigurations.myInformationDialogConfiguration;
101  }
103  {
104  return myBackupConfigurations.myInformationDialogConfiguration;
105  }
106 
108  virtual void setMainPageConfiguration(const makVrv::DtPageConfiguration&);
110  {
111  return myLoadedConfigurations.myMainPageConfiguration;
112  }
114  {
115  return myLoadedConfigurations.myMainPageConfiguration;
116  }
118  {
119  return myBackupConfigurations.myMainPageConfiguration;
120  }
121 
123  virtual void setMainToolbarConfiguration(const makVrv::DtToolbarConfiguration&);
125  {
126  return myLoadedConfigurations.myMainToolbarConfiguration;
127  }
129  {
130  return myLoadedConfigurations.myMainToolbarConfiguration;
131  }
133  {
134  return myBackupConfigurations.myMainToolbarConfiguration;
135  }
136 
138  virtual void setRightClickMenuConfiguration(const RightClickConfigurations&);
140  {
141  return myLoadedConfigurations.myRightClickMenuConfigurations;
142  }
144  {
145  return myLoadedConfigurations.myRightClickMenuConfigurations;
146  }
148  {
149  return myBackupConfigurations.myRightClickMenuConfigurations;
150  }
151 
153  virtual void setMainMenuConfiguration(const makVrv::DtMenuConfiguration&);
155  {
156  return myLoadedConfigurations.myMainMenuConfiguration;
157  }
159  {
160  return myLoadedConfigurations.myMainMenuConfiguration;
161  }
163  {
164  return myBackupConfigurations.myMainMenuConfiguration;
165  }
166 
168  virtual void addRightClickContextMenu(const std::string& context, const makVrv::DtMenuConfiguration& configuration);
169  const makVrv::DtMenuConfiguration& rightClickContextMenu(const std::string& context) const;
170  makVrv::DtMenuConfiguration& rightClickContextMenu(const std::string& context);
171  const makVrv::DtMenuConfiguration& originalRightClickContextMenu(const std::string& context) const;
172 
174  virtual void clearAllContextMenus();
175 
179  virtual void install();
180 
181  boost::signals2::signal<void ()> signal_preInstall;
182  boost::signals2::signal<void ()> signal_postInstall;
183 
185  virtual void installLockedOnly();
186 
187  boost::signals2::signal<void ()> signal_preLockInstall;
188  boost::signals2::signal<void ()> signal_postLockInstall;
189 
193  virtual void setLock(int, bool);
194  bool isLocked(int) const;
195 
197  virtual void readOptions(DtEnvironment*, DtEnvValueSP root);
198 
200  virtual void saveOptions(DtEnvironment* env, DtEnvValueSP root);
201 
203  virtual void addOption(const DtString& option, ReadOptionFunction readFunc, WriteOptionFunction writeFunc);
204 
205  protected:
207  virtual void setOverrideLayout(const DtString&);
208  virtual void writeOverrideLayout(DtEnvironment* env, DtEnvValueSP root);
209 
210  virtual void setAllowEditing(const DtString&);
211  virtual void postTickSetAllowEditing(bool b);
212  virtual void writeAllowEditing(DtEnvironment* env, DtEnvValueSP root);
213 
214  virtual void setLayoutSettingsFile(const DtString&);
215  virtual void writeLayoutSettingsFile(DtEnvironment* env, DtEnvValueSP root);
216 
218  virtual void saveMenuConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtMenuConfiguration&) const;
219 
221  virtual void savePageConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtPageConfiguration&) const;
222 
224  virtual void saveToolbarConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtToolbarConfiguration&) const;
225 
226  protected:
228  {
229  void operator=(const Configurations& rhs)
230  {
231  myInformationDialogConfiguration = rhs.myInformationDialogConfiguration;
232  myMainPageConfiguration = rhs.myMainPageConfiguration;
233  myMainMenuConfiguration = rhs.myMainMenuConfiguration;
234  myMainToolbarConfiguration = rhs.myMainToolbarConfiguration;
235  myMainToolbarConfiguration.copyValuesFrom(rhs.myMainToolbarConfiguration);
236  myRightClickMenuConfigurations = rhs.myRightClickMenuConfigurations;
237  }
238 
244  };
245 
248 
252 
253  DtFilename myFilename;
254 
256  {
259  };
260 
261  typedef std::map<DtString, OptionFunctions> OptionFunctionsMap;
263  };
264 
267  {
268  public:
271 
273  virtual ~DtVrfMenuConfigurationWriter();
274 
275  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
276 
277  protected:
278  virtual void writeMenuPath(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtMenuPath& menuPath) const;
279  };
280 
283  {
284  public:
287 
289  virtual ~DtVrfMenuConfigurationReader();
290 
291  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root, const std::string& menuType = "mainmenu");
292 
293  protected:
294  virtual void createMenuFromNode(DtEnvironment* env, DtEnvValueSP menu);
295  };
296 
299  {
300  public:
303 
305  virtual ~DtVrfPageConfigurationWriter();
306 
307  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
308 
309  protected:
310  virtual void writePagePath(DtEnvironment* env, DtEnvValueSP root, const DtInformationPagePath& menuPath) const;
311  };
312 
315  {
316  public:
319 
321  virtual ~DtVrfPageConfigurationReader();
322 
323  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
324 
325  protected:
326  virtual void createPageFromNode(DtEnvironment* env, DtEnvValueSP menu);
327 
328  virtual void parsePageItems(DtEnvironment* env, DtEnvList* items, const DtInformationPagePath::InformationPagePathBuilder& );
329  };
330 
333  {
334  public:
337 
340 
341  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
342 
343  protected:
344  virtual void writeToolbarPath(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtToolbarPath& menuPath) const;
345  };
346 
349  {
350  public:
353 
356 
357  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
358  const ToolbarStateMap& toolbarStates() const { return myToolbarStates; };
359 
360  protected:
361  virtual void createToolbarFromRow(DtEnvironment* env, DtEnvValueSP row);
362  virtual void createToolbar(DtEnvironment* env, DtEnvValueSP toolbar);
363  };
364 }
const ToolbarStateMap & toolbarStates() const
Definition: defaultGuiConfigurationCreator.h:358
This class will read a toolbar configuration from the given XML node.
Definition: defaultGuiConfigurationCreator.h:348
The DtDefaultGuiConfigurationCreator class will create the default_guiConfiguration.gui file in the factory directory if that file does not exist.
Definition: defaultGuiConfigurationCreator.h:45
makVrv::DtToolbarConfiguration myMainToolbarConfiguration
Definition: defaultGuiConfigurationCreator.h:242
boost::function< void(DtEnvironment *, DtEnvValueSP)> WriteOptionFunction
Definition: defaultGuiConfigurationCreator.h:49
const makVrv::DtPageConfiguration & originalPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:117
boost::signals2::signal< void()> signal_preInstall
Definition: defaultGuiConfigurationCreator.h:181
makVrv::DtToolbarConfiguration & mainToolbarConfiguration()
Definition: defaultGuiConfigurationCreator.h:128
RightClickConfigurations myRightClickMenuConfigurations
Definition: defaultGuiConfigurationCreator.h:243
Virtual base class.
Definition: DtVirtualBaseClass.h:22
boost::signals2::signal< void()> signal_preLockInstall
Definition: defaultGuiConfigurationCreator.h:187
This class will write a page configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:298
int mySetFlags
Definition: defaultGuiConfigurationCreator.h:250
boost::function< void(const DtString &)> ReadOptionFunction
Definition: defaultGuiConfigurationCreator.h:48
makVrv::DtMenuConfiguration & mainMenuConfiguration()
Definition: defaultGuiConfigurationCreator.h:158
const DtInformationPageConfiguration & originalInformationPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:102
makVrv::DtPageConfiguration myMainPageConfiguration
Definition: defaultGuiConfigurationCreator.h:240
Definition: defaultGuiConfigurationCreator.h:255
Configurations myBackupConfigurations
Definition: defaultGuiConfigurationCreator.h:247
#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:182
Flags
Definition: defaultGuiConfigurationCreator.h:51
const makVrv::DtToolbarConfiguration & mainToolbarConfiguration() const
Definition: defaultGuiConfigurationCreator.h:124
makVrv::DtDe & myDe
Definition: defaultGuiConfigurationCreator.h:249
const DtFilename & filename() const
Returns the filename loaded from a successful load.
Definition: defaultGuiConfigurationCreator.h:83
This class will write a menu configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:266
OptionFunctionsMap myOptionFunctions
Definition: defaultGuiConfigurationCreator.h:262
This class will write a page configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:314
std::map< DtToolbarPath, ToolbarState > ToolbarStateMap
Definition: DtToolbarConfiguration.h:91
const makVrv::DtToolbarConfiguration & originalToolbarConfiguration() const
Definition: defaultGuiConfigurationCreator.h:132
const RightClickConfigurations & rightClickMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:139
std::map< std::string, makVrv::DtMenuConfiguration > RightClickConfigurations
Definition: defaultGuiConfigurationCreator.h:61
DtInformationPageConfiguration & informationPageConfiguration()
Definition: defaultGuiConfigurationCreator.h:98
Contains makVrv::DtPageConfiguration class.
Contains makVrv::DtVirtualBaseClass class.
This class will reader a menu configuration from the given XML node.
Definition: defaultGuiConfigurationCreator.h:282
void operator=(const Configurations &rhs)
Definition: defaultGuiConfigurationCreator.h:229
boost::signals2::signal< void()> signal_postLockInstall
Definition: defaultGuiConfigurationCreator.h:188
const makVrv::DtMenuConfiguration & originalMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:162
int myLockedFlags
Definition: defaultGuiConfigurationCreator.h:251
Definition: defaultGuiConfigurationCreator.h:227
makVrv::DtPageConfiguration & mainPageConfiguration()
Definition: defaultGuiConfigurationCreator.h:113
A configuration of the pages in the gui.
Definition: DtPageConfiguration.h:25
makVrv::DtMenuConfiguration myMainMenuConfiguration
Definition: defaultGuiConfigurationCreator.h:241
std::map< DtString, OptionFunctions > OptionFunctionsMap
Definition: defaultGuiConfigurationCreator.h:261
a Class which represents a menu path.
Definition: DtMenuPath.h:30
Contains makVrv::DtMenuConfiguration class.
Configurations myLoadedConfigurations
Definition: defaultGuiConfigurationCreator.h:246
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:94
DtFilename myFilename
Definition: defaultGuiConfigurationCreator.h:253
const makVrv::DtMenuConfiguration & mainMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:154
Contains makVrv::DtToolbarConfiguration class.
a Class which represents a toolbar path.
Definition: DtToolbarPath.h:43
Contains DtInformationPageConfiguration class.
RightClickConfigurations & rightClickMenuConfiguration()
Definition: defaultGuiConfigurationCreator.h:143
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:28
A configuration of the menu layout.
Definition: DtMenuConfiguration.h:27
DtInformationPageConfiguration myInformationDialogConfiguration
Definition: defaultGuiConfigurationCreator.h:239
const makVrv::DtPageConfiguration & mainPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:109
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
const RightClickConfigurations & originalRightClickMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:147
This class will write a toolbar configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:332
WriteOptionFunction writeFunction
Definition: defaultGuiConfigurationCreator.h:258
ReadOptionFunction readFunction
Definition: defaultGuiConfigurationCreator.h:257
A configuration of the pages in the gui.
Definition: informationPageConfiguration.h:20

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)