VR-Forces 4.7 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&);
94  const DtInformationPageConfiguration& informationPageConfiguration() const
95  {
96  return myLoadedConfigurations.myInformationDialogConfiguration;
97  }
98  DtInformationPageConfiguration& informationPageConfiguration()
99  {
100  return myLoadedConfigurations.myInformationDialogConfiguration;
101  }
102  const DtInformationPageConfiguration& originalInformationPageConfiguration() const
103  {
104  return myBackupConfigurations.myInformationDialogConfiguration;
105  }
106 
108  virtual void setMainPageConfiguration(const makVrv::DtPageConfiguration&);
109  const makVrv::DtPageConfiguration& mainPageConfiguration() const
110  {
111  return myLoadedConfigurations.myMainPageConfiguration;
112  }
113  makVrv::DtPageConfiguration& mainPageConfiguration()
114  {
115  return myLoadedConfigurations.myMainPageConfiguration;
116  }
117  const makVrv::DtPageConfiguration& originalPageConfiguration() const
118  {
119  return myBackupConfigurations.myMainPageConfiguration;
120  }
121 
123  virtual void setMainToolbarConfiguration(const makVrv::DtToolbarConfiguration&);
124  const makVrv::DtToolbarConfiguration& mainToolbarConfiguration() const
125  {
126  return myLoadedConfigurations.myMainToolbarConfiguration;
127  }
128  makVrv::DtToolbarConfiguration& mainToolbarConfiguration()
129  {
130  return myLoadedConfigurations.myMainToolbarConfiguration;
131  }
132  const makVrv::DtToolbarConfiguration& originalToolbarConfiguration() const
133  {
134  return myBackupConfigurations.myMainToolbarConfiguration;
135  }
136 
138  virtual void setRightClickMenuConfiguration(const RightClickConfigurations&);
139  const RightClickConfigurations& rightClickMenuConfiguration() const
140  {
141  return myLoadedConfigurations.myRightClickMenuConfigurations;
142  }
143  RightClickConfigurations& rightClickMenuConfiguration()
144  {
145  return myLoadedConfigurations.myRightClickMenuConfigurations;
146  }
147  const RightClickConfigurations& originalRightClickMenuConfiguration() const
148  {
149  return myBackupConfigurations.myRightClickMenuConfigurations;
150  }
151 
153  virtual void setMainMenuConfiguration(const makVrv::DtMenuConfiguration&);
154  const makVrv::DtMenuConfiguration& mainMenuConfiguration() const
155  {
156  return myLoadedConfigurations.myMainMenuConfiguration;
157  }
158  makVrv::DtMenuConfiguration& mainMenuConfiguration()
159  {
160  return myLoadedConfigurations.myMainMenuConfiguration;
161  }
162  const makVrv::DtMenuConfiguration& originalMenuConfiguration() const
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::signal<void ()> signal_preInstall;
182  boost::signal<void ()> signal_postInstall;
183 
185  virtual void installLockedOnly();
186 
187  boost::signal<void ()> signal_preLockInstall;
188  boost::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 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)