VR-Forces 5.0.3 Developer's Guide
 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 
20 #include <mtl/envValue.h>
21 #include <boost/signals2.hpp>
22 
23 namespace makVrv
24 {
25  class DtDe;
26 }
27 
28 class DtEnvList;
29 
30 namespace makVrf
31 {
43 
45  {
46  public:
47  typedef boost::function<void (const DtString&)> ReadOptionFunction;
48  typedef boost::function<void (DtEnvironment*, DtEnvValueSP)> WriteOptionFunction;
49 
50  enum Flags
51  {
52  InformationConfiguration = 1,
53  PageConfiguration = 2,
54  ToolbarConfiguration = 4,
55  MenuConfiguration = 8,
56  RightClickMenuConfiguration = 16,
57  AllConfigurations = 32
58  };
59 
60  typedef std::map<std::string, makVrv::DtMenuConfiguration> RightClickConfigurations;
61 
64 
67 
68  static DtDefaultGuiConfigurationCreator& instance(makVrv::DtDe& de);
69  static void registerInstance(makVrv::DtDe& de, DtDefaultGuiConfigurationCreator*);
70 
73  virtual void createDefaultGuiConfigurationFile(bool force = false);
74 
76  virtual void save(const std::string&);
77 
79  virtual bool load(const std::string&);
80 
82  const DtFilename& filename() const
83  {
84  return myFilename;
85  }
86 
88  virtual bool isValid() const;
89 
90  public:
92  virtual void setInformationPageConfiguration(const DtInformationPageConfiguration&);
94  {
95  return myLoadedConfigurations.myInformationDialogConfiguration;
96  }
98  {
99  return myLoadedConfigurations.myInformationDialogConfiguration;
100  }
101  const std::vector<std::vector<std::string> >& tabbedPageConfigurations() const
102  {
103  return myLoadedConfigurations.myTabbedPageConfigurations;
104  }
105  std::vector<std::vector<std::string> >& tabbedPageConfigurations()
106  {
107  return myLoadedConfigurations.myTabbedPageConfigurations;
108  }
110  {
111  return myBackupConfigurations.myInformationDialogConfiguration;
112  }
113 
115  virtual void setMainPageConfiguration(const makVrv::DtPageConfiguration&);
117  {
118  return myLoadedConfigurations.myMainPageConfiguration;
119  }
121  {
122  return myLoadedConfigurations.myMainPageConfiguration;
123  }
125  {
126  return myBackupConfigurations.myMainPageConfiguration;
127  }
128 
130  virtual void setMainToolbarConfiguration(const makVrv::DtToolbarConfiguration&);
132  {
133  return myLoadedConfigurations.myMainToolbarConfiguration;
134  }
136  {
137  return myLoadedConfigurations.myMainToolbarConfiguration;
138  }
140  {
141  return myBackupConfigurations.myMainToolbarConfiguration;
142  }
143 
145  virtual void setRightClickMenuConfiguration(const RightClickConfigurations&);
147  {
148  return myLoadedConfigurations.myRightClickMenuConfigurations;
149  }
151  {
152  return myLoadedConfigurations.myRightClickMenuConfigurations;
153  }
155  {
156  return myBackupConfigurations.myRightClickMenuConfigurations;
157  }
158 
160  virtual void setMainMenuConfiguration(const makVrv::DtMenuConfiguration&);
162  {
163  return myLoadedConfigurations.myMainMenuConfiguration;
164  }
166  {
167  return myLoadedConfigurations.myMainMenuConfiguration;
168  }
170  {
171  return myBackupConfigurations.myMainMenuConfiguration;
172  }
173 
175  virtual void addRightClickContextMenu(const std::string& context, const makVrv::DtMenuConfiguration& configuration);
176  const makVrv::DtMenuConfiguration& rightClickContextMenu(const std::string& context) const;
177  makVrv::DtMenuConfiguration& rightClickContextMenu(const std::string& context);
178  const makVrv::DtMenuConfiguration& originalRightClickContextMenu(const std::string& context) const;
179 
181  virtual void clearAllContextMenus();
182 
186  virtual void install();
187 
188  boost::signals2::signal<void ()> signal_preInstall;
189  boost::signals2::signal<void ()> signal_postInstall;
190 
192  virtual void installLockedOnly();
193 
194  boost::signals2::signal<void ()> signal_preLockInstall;
195  boost::signals2::signal<void ()> signal_postLockInstall;
196 
200  virtual void setLock(int, bool);
201  bool isLocked(int) const;
202 
204  virtual void readOptions(DtEnvironment*, DtEnvValueSP root);
205 
207  virtual void saveOptions(DtEnvironment* env, DtEnvValueSP root);
208 
210  virtual void addOption(const DtString& option, ReadOptionFunction readFunc, WriteOptionFunction writeFunc);
211 
213  virtual double dockedToolbarWidth(const DtString&) const;
214  virtual void setDockedToolbarWidth(const DtString&, double);
215 
216  protected:
218  virtual void setOverrideLayout(const DtString&);
219  virtual void writeOverrideLayout(DtEnvironment* env, DtEnvValueSP root);
220 
221  virtual void setAllowEditing(const DtString&);
222  virtual void postTickSetAllowEditing(bool b);
223  virtual void writeAllowEditing(DtEnvironment* env, DtEnvValueSP root);
224  virtual void setupTabbedPagedCollections();
225 
226  virtual void setLayoutSettingsFile(const DtString&);
227  virtual void writeLayoutSettingsFile(DtEnvironment* env, DtEnvValueSP root);
228 
230  virtual void saveMenuConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtMenuConfiguration&) const;
231 
233  virtual void savePageConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtPageConfiguration&) const;
234 
236  virtual void saveToolbarConfiguration(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtToolbarConfiguration&) const;
237 
238  protected:
240  {
241  void operator=(const Configurations& rhs)
242  {
243  myInformationDialogConfiguration = rhs.myInformationDialogConfiguration;
244  myMainPageConfiguration = rhs.myMainPageConfiguration;
245  myMainMenuConfiguration = rhs.myMainMenuConfiguration;
246  myMainToolbarConfiguration = rhs.myMainToolbarConfiguration;
247  myMainToolbarConfiguration.copyValuesFrom(rhs.myMainToolbarConfiguration);
248  myRightClickMenuConfigurations = rhs.myRightClickMenuConfigurations;
249  myTabbedPageConfigurations = rhs.myTabbedPageConfigurations;
250  }
251 
257  std::vector<std::vector<std::string> > myTabbedPageConfigurations;
258  };
259 
262 
266 
267  DtFilename myFilename;
268 
270  {
273  };
274 
275  typedef std::map<DtString, OptionFunctions> OptionFunctionsMap;
277 
278  typedef std::map<DtString, double> DockedToolbarWidths;
280  };
281 
284  {
285  public:
288 
290  virtual ~DtVrfMenuConfigurationWriter();
291 
292  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
293 
294  protected:
295  virtual void writeMenuPath(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtMenuPath& menuPath) const;
296  };
297 
300  {
301  public:
304 
306  virtual ~DtVrfMenuConfigurationReader();
307 
308  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root, const std::string& menuType = "mainmenu");
309 
310  protected:
311  virtual void createMenuFromNode(DtEnvironment* env, DtEnvValueSP menu);
312  virtual makVrv::DtMenuConfiguration::MenuSortFlags sortMenuFlags(::DtEnvironment* env, DtEnvValueSP menu) const;
313  };
314 
317  {
318  public:
321 
323  virtual ~DtVrfPageConfigurationWriter();
324 
325  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
326 
327  protected:
328  virtual void writePagePath(DtEnvironment* env, DtEnvValueSP root, const DtInformationPagePath& menuPath) const;
329  };
330 
333  {
334  public:
337 
339  virtual ~DtVrfPageConfigurationReader();
340 
341  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
342 
343  protected:
344  virtual void createPageFromNode(DtEnvironment* env, DtEnvValueSP menu);
345 
346  virtual void parsePageItems(DtEnvironment* env, DtEnvList* items, const DtInformationPagePath::InformationPagePathBuilder& );
347  };
348 
351  {
352  public:
355 
358 
359  virtual void writeTo(DtEnvironment* env, DtEnvValueSP root) const;
360 
361  protected:
362  virtual void writeToolbarPath(DtEnvironment* env, DtEnvValueSP root, const makVrv::DtToolbarPath& menuPath) const;
363 
364  protected:
366  };
367 
370  {
371  public:
374 
377 
378  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
379  const ToolbarStateMap& toolbarStates() const { return myToolbarStates; };
380 
381  protected:
382  virtual void createToolbarFromRow(DtEnvironment* env, DtEnvValueSP row);
383  virtual void createToolbar(DtEnvironment* env, DtEnvValueSP toolbar);
384 
385  protected:
387  };
388 
391  {
392  public:
395 
398 
399  virtual void readFrom(DtEnvironment* env, DtEnvValueSP root);
400  const std::vector<std::vector<std::string> >& tabbedPageConfigurations() const { return myTabbedPagedConfigurations; };
401 
402  protected:
403  virtual void readTabbedConfiguration(DtEnvironment* env, DtEnvValueSP row);
404 
405  protected:
406  std::vector<std::vector<std::string> > myTabbedPagedConfigurations;
407  };
408 }
const ToolbarStateMap & toolbarStates() const
Definition: defaultGuiConfigurationCreator.h:379
This class will read a toolbar configuration from the given XML node.
Definition: defaultGuiConfigurationCreator.h:369
The DtDefaultGuiConfigurationCreator class will create the default_guiConfiguration.gui file in the factory directory if that file does not exist. Will create from current state of: 1) Menu layout except for Create, Task and Set menus. The file will contain the root nodes of these menus, so, if they are not there, they will not be created. The create, task and set menus are configured on a simulation model set basis, and, their menu files are contained in the simulation model set&#39;s gui directory 2) Tabs that appear on settings pages, but, not the contents of those pages 3) Right click menu items. If the developer wants to do specific configuration beyond the base, however, that will need to be in code as the menus apply generally to all items (entities, for example, not fixed wing or tank entities) 4) The dockable widgets that can appear, but not the contents of those widgets 5) Toolbars and items that appear on toolbars 6) Information dialogs and items that appear on those dialogs.
Definition: defaultGuiConfigurationCreator.h:44
makVrv::DtToolbarConfiguration myMainToolbarConfiguration
Definition: defaultGuiConfigurationCreator.h:255
boost::function< void(DtEnvironment *, DtEnvValueSP)> WriteOptionFunction
Definition: defaultGuiConfigurationCreator.h:48
const std::vector< std::vector< std::string > > & tabbedPageConfigurations() const
Definition: defaultGuiConfigurationCreator.h:400
const makVrv::DtPageConfiguration & originalPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:124
boost::signals2::signal< void()> signal_preInstall
Definition: defaultGuiConfigurationCreator.h:188
makVrv::DtToolbarConfiguration & mainToolbarConfiguration()
Definition: defaultGuiConfigurationCreator.h:135
RightClickConfigurations myRightClickMenuConfigurations
Definition: defaultGuiConfigurationCreator.h:256
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void()> signal_preLockInstall
Definition: defaultGuiConfigurationCreator.h:194
This class will write a page configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:316
std::vector< std::vector< std::string > > myTabbedPageConfigurations
Definition: defaultGuiConfigurationCreator.h:257
int mySetFlags
Definition: defaultGuiConfigurationCreator.h:264
boost::function< void(const DtString &)> ReadOptionFunction
Definition: defaultGuiConfigurationCreator.h:47
makVrv::DtMenuConfiguration & mainMenuConfiguration()
Definition: defaultGuiConfigurationCreator.h:165
const DtInformationPageConfiguration & originalInformationPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:109
makVrv::DtPageConfiguration myMainPageConfiguration
Definition: defaultGuiConfigurationCreator.h:253
Definition: defaultGuiConfigurationCreator.h:269
Configurations myBackupConfigurations
Definition: defaultGuiConfigurationCreator.h:261
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
void copyValuesFrom(const DtToolbarConfiguration &source)
Uses the location, geometry, order, etc. values from the supplied configuration while keeping the exi...
boost::signals2::signal< void()> signal_postInstall
Definition: defaultGuiConfigurationCreator.h:189
Flags
Definition: defaultGuiConfigurationCreator.h:50
const makVrv::DtToolbarConfiguration & mainToolbarConfiguration() const
Definition: defaultGuiConfigurationCreator.h:131
makVrv::DtDe & myDe
Definition: defaultGuiConfigurationCreator.h:263
const DtFilename & filename() const
Returns the filename loaded from a successful load.
Definition: defaultGuiConfigurationCreator.h:82
This class will write a menu configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:283
This class will write a toolbar configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:390
OptionFunctionsMap myOptionFunctions
Definition: defaultGuiConfigurationCreator.h:276
This class will write a page configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:332
std::map< DtToolbarPath, ToolbarState > ToolbarStateMap
Definition: DtToolbarConfiguration.h:88
const makVrv::DtToolbarConfiguration & originalToolbarConfiguration() const
Definition: defaultGuiConfigurationCreator.h:139
const RightClickConfigurations & rightClickMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:146
std::map< std::string, makVrv::DtMenuConfiguration > RightClickConfigurations
Definition: defaultGuiConfigurationCreator.h:60
const std::vector< std::vector< std::string > > & tabbedPageConfigurations() const
Definition: defaultGuiConfigurationCreator.h:101
const DtDefaultGuiConfigurationCreator * myCreator
Definition: defaultGuiConfigurationCreator.h:365
DtInformationPageConfiguration & informationPageConfiguration()
Definition: defaultGuiConfigurationCreator.h:97
Contains makVrv::DtPageConfiguration class.
Contains makVrv::DtVirtualBaseClass class.
This class will reader a menu configuration from the given XML node.
Definition: defaultGuiConfigurationCreator.h:299
void operator=(const Configurations &rhs)
Definition: defaultGuiConfigurationCreator.h:241
boost::signals2::signal< void()> signal_postLockInstall
Definition: defaultGuiConfigurationCreator.h:195
const makVrv::DtMenuConfiguration & originalMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:169
int myLockedFlags
Definition: defaultGuiConfigurationCreator.h:265
Definition: defaultGuiConfigurationCreator.h:239
makVrv::DtPageConfiguration & mainPageConfiguration()
Definition: defaultGuiConfigurationCreator.h:120
A configuration of the pages in the gui.
Definition: DtPageConfiguration.h:25
makVrv::DtMenuConfiguration myMainMenuConfiguration
Definition: defaultGuiConfigurationCreator.h:254
std::map< DtString, OptionFunctions > OptionFunctionsMap
Definition: defaultGuiConfigurationCreator.h:275
a Class which represents a menu path. The specific strings are not menu text, but the names used when...
Definition: DtMenuPath.h:27
DockedToolbarWidths myDockedToolbarWidths
Definition: defaultGuiConfigurationCreator.h:279
Contains makVrv::DtMenuConfiguration class.
Configurations myLoadedConfigurations
Definition: defaultGuiConfigurationCreator.h:260
A page path is the location of a page based upon it&#39;s parents. A page path usually only consists of a...
Definition: informationPagePath.h:23
const DtInformationPageConfiguration & informationPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:93
DtFilename myFilename
Definition: defaultGuiConfigurationCreator.h:267
const makVrv::DtMenuConfiguration & mainMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:161
Contains makVrv::DtToolbarConfiguration class.
a Class which represents a toolbar path. The specific strings are not toolbar text, but the names used when registering toolbarBuilder, menuBuilder and menuItemBuilder instances.
Definition: DtToolbarPath.h:40
DtDefaultGuiConfigurationCreator * myCreator
Definition: defaultGuiConfigurationCreator.h:386
Contains DtInformationPageConfiguration class.
RightClickConfigurations & rightClickMenuConfiguration()
Definition: defaultGuiConfigurationCreator.h:150
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:25
std::map< DtString, double > DockedToolbarWidths
Definition: defaultGuiConfigurationCreator.h:278
A configuration of a menu layout. A menu configuration manages an ordered collection of menu paths th...
Definition: DtMenuConfiguration.h:43
DtInformationPageConfiguration myInformationDialogConfiguration
Definition: defaultGuiConfigurationCreator.h:252
const makVrv::DtPageConfiguration & mainPageConfiguration() const
Definition: defaultGuiConfigurationCreator.h:116
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
std::vector< std::vector< std::string > > myTabbedPagedConfigurations
Definition: defaultGuiConfigurationCreator.h:406
const RightClickConfigurations & originalRightClickMenuConfiguration() const
Definition: defaultGuiConfigurationCreator.h:154
This class will write a toolbar configuration to the given XML node.
Definition: defaultGuiConfigurationCreator.h:350
std::vector< std::vector< std::string > > & tabbedPageConfigurations()
Definition: defaultGuiConfigurationCreator.h:105
WriteOptionFunction writeFunction
Definition: defaultGuiConfigurationCreator.h:272
ReadOptionFunction readFunction
Definition: defaultGuiConfigurationCreator.h:271
MenuSortFlags
The SortAllAlphabetically, SortWithinSubmenus, SortBetweenSeparators, and SortBetweenSubMenus flags c...
Definition: DtMenuConfiguration.h:55
A configuration of the pages in the gui.
Definition: informationPageConfiguration.h:23

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)