VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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  enum Flags
49  {
50  InformationConfiguration = 1,
51  PageConfiguration = 2,
52  ToolbarConfiguration = 4,
53  MenuConfiguration = 8,
54  RightClickMenuConfiguration = 16,
55  AllConfigurations = 32
56  };
57 
58  typedef std::map<std::string, makVrv::DtMenuConfiguration> RightClickConfigurations;
59 
62 
65 
66  static DtDefaultGuiConfigurationCreator& instance(makVrv::DtDe& de);
67  static void registerInstance(makVrv::DtDe& de, DtDefaultGuiConfigurationCreator*);
68 
71  virtual void createDefaultGuiConfigurationFile(bool force = false);
72 
74  virtual void save(const std::string&);
75 
77  virtual bool load(const std::string&);
78 
80  const DtFilename& filename() const
81  {
82  return myFilename;
83  }
84 
86  virtual bool isValid() const;
87 
88  public:
90  virtual void setInformationPageConfiguration(const DtInformationPageConfiguration&);
91  const DtInformationPageConfiguration& informationPageConfiguration() const
92  {
93  return myLoadedConfigurations.myInformationDialogConfiguration;
94  }
95  DtInformationPageConfiguration& informationPageConfiguration()
96  {
97  return myLoadedConfigurations.myInformationDialogConfiguration;
98  }
99  const DtInformationPageConfiguration& originalInformationPageConfiguration() const
100  {
101  return myBackupConfigurations.myInformationDialogConfiguration;
102  }
103 
105  virtual void setMainPageConfiguration(const makVrv::DtPageConfiguration&);
106  const makVrv::DtPageConfiguration& mainPageConfiguration() const
107  {
108  return myLoadedConfigurations.myMainPageConfiguration;
109  }
110  makVrv::DtPageConfiguration& mainPageConfiguration()
111  {
112  return myLoadedConfigurations.myMainPageConfiguration;
113  }
114  const makVrv::DtPageConfiguration& originalPageConfiguration() const
115  {
116  return myBackupConfigurations.myMainPageConfiguration;
117  }
118 
120  virtual void setMainToolbarConfiguration(const makVrv::DtToolbarConfiguration&);
121  const makVrv::DtToolbarConfiguration& mainToolbarConfiguration() const
122  {
123  return myLoadedConfigurations.myMainToolbarConfiguration;
124  }
125  makVrv::DtToolbarConfiguration& mainToolbarConfiguration()
126  {
127  return myLoadedConfigurations.myMainToolbarConfiguration;
128  }
129  const makVrv::DtToolbarConfiguration& originalToolbarConfiguration() const
130  {
131  return myBackupConfigurations.myMainToolbarConfiguration;
132  }
133 
135  virtual void setRightClickMenuConfiguration(const RightClickConfigurations&);
136  const RightClickConfigurations& rightClickMenuConfiguration() const
137  {
138  return myLoadedConfigurations.myRightClickMenuConfigurations;
139  }
140  RightClickConfigurations& rightClickMenuConfiguration()
141  {
142  return myLoadedConfigurations.myRightClickMenuConfigurations;
143  }
144  const RightClickConfigurations& originalRightClickMenuConfiguration() const
145  {
146  return myBackupConfigurations.myRightClickMenuConfigurations;
147  }
148 
150  virtual void setMainMenuConfiguration(const makVrv::DtMenuConfiguration&);
151  const makVrv::DtMenuConfiguration& mainMenuConfiguration() const
152  {
153  return myLoadedConfigurations.myMainMenuConfiguration;
154  }
155  makVrv::DtMenuConfiguration& mainMenuConfiguration()
156  {
157  return myLoadedConfigurations.myMainMenuConfiguration;
158  }
159  const makVrv::DtMenuConfiguration& originalMenuConfiguration() const
160  {
161  return myBackupConfigurations.myMainMenuConfiguration;
162  }
163 
165  virtual void addRightClickContextMenu(const std::string& context, const makVrv::DtMenuConfiguration& configuration);
166  const makVrv::DtMenuConfiguration& rightClickContextMenu(const std::string& context) const;
167  makVrv::DtMenuConfiguration& rightClickContextMenu(const std::string& context);
168  const makVrv::DtMenuConfiguration& originalRightClickContextMenu(const std::string& context) const;
169 
171  virtual void clearAllContextMenus();
172 
176  virtual void install();
177 
178  boost::signal<void ()> signal_preInstall;
179  boost::signal<void ()> signal_postInstall;
180 
182  virtual void installLockedOnly();
183 
184  boost::signal<void ()> signal_preLockInstall;
185  boost::signal<void ()> signal_postLockInstall;
186 
190  virtual void setLock(int, bool);
191  bool isLocked(int) const;
192 
193  protected:
195  virtual void saveMenuConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtMenuConfiguration&) const;
196 
198  virtual void savePageConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtPageConfiguration&) const;
199 
201  virtual void saveToolbarConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtToolbarConfiguration&) const;
202 
203  protected:
205  {
206  void operator=(const Configurations& rhs)
207  {
208  myInformationDialogConfiguration = rhs.myInformationDialogConfiguration;
209  myMainPageConfiguration = rhs.myMainPageConfiguration;
210  myMainMenuConfiguration = rhs.myMainMenuConfiguration;
211  myMainToolbarConfiguration = rhs.myMainToolbarConfiguration;
212  myMainToolbarConfiguration.copyValuesFrom(rhs.myMainToolbarConfiguration);
213  myRightClickMenuConfigurations = rhs.myRightClickMenuConfigurations;
214  }
215 
221  };
222 
225 
229 
230  DtFilename myFilename;
231  };
232 
235  {
236  public:
239 
241  virtual ~DtVrfMenuConfigurationWriter();
242 
243  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
244 
245  protected:
246  virtual void writeMenuPath(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtMenuPath& menuPath) const;
247  };
248 
251  {
252  public:
255 
257  virtual ~DtVrfMenuConfigurationReader();
258 
259  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root, const std::string& menuType = "mainmenu");
260 
261  protected:
262  virtual void createMenuFromNode(DtEnvironment* env, DtEnvValueSP menu);
263  };
264 
267  {
268  public:
271 
273  virtual ~DtVrfPageConfigurationWriter();
274 
275  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
276 
277  protected:
278  virtual void writePagePath(DtEnvironment* env, DtEnvValueSP root, const DtInformationPagePath& menuPath) const;
279  };
280 
283  {
284  public:
287 
289  virtual ~DtVrfPageConfigurationReader();
290 
291  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
292 
293  protected:
294  virtual void createPageFromNode(DtEnvironment* env, DtEnvValueSP menu);
295 
296  virtual void parsePageItems(DtEnvironment* env, DtEnvList* items, const DtInformationPagePath::InformationPagePathBuilder& );
297  };
298 
301  {
302  public:
305 
308 
309  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
310 
311  protected:
312  virtual void writeToolbarPath(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtToolbarPath& menuPath) const;
313  };
314 
317  {
318  public:
321 
324 
325  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
326  const ToolbarStateMap& toolbarStates() const { return myToolbarStates; };
327 
328  protected:
329  virtual void createToolbarFromRow(DtEnvironment* env, DtEnvValueSP row);
330  virtual void createToolbar(DtEnvironment* env, DtEnvValueSP toolbar);
331  };
332 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)