VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtToolbarConfiguration.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtToolbarPath.h>
14 #include <vrvCore/DtMenuPath.h>
16 
17 #include <list>
18 #include <set>
19 #include <boost/serialization/set.hpp>
20 
21 namespace makVrv
22 {
26  {
27  public:
28 
29  typedef std::list<DtToolbarPath> ToolbarPathList;
30  typedef std::set<DtToolbarPath> ToolbarPathSet;
31 
33  {
34  DockLeft = 0,
35  DockRight = 1,
36  DockTop = 2,
37  DockBottom = 3,
38  DockNone = 4
39  };
40 
42  {
43  int windowId;
44  int myTop;
45  int myLeft;
46  int myHeight;
47  int myWidth;
48 
50  {
51  windowId = -1;
52  myTop = 0;
53  myLeft = 0;
54  myWidth = 0;
55  myHeight = 0;
56  }
57 
58  template<class Archive>
59  void serialize(Archive & ar, const unsigned int version)
60  {
61  ar & DT_SERIALIZE_MEMBER(windowId);
62  ar & DT_SERIALIZE_MEMBER(myTop);
63  ar & DT_SERIALIZE_MEMBER(myLeft);
64  ar & DT_SERIALIZE_MEMBER(myHeight);
65  ar & DT_SERIALIZE_MEMBER(myWidth);
66  }
67  };
68 
69  struct ToolbarState
70  {
75 
76  template<class Archive>
77  void serialize(Archive & ar, const unsigned int version)
78  {
79  ar & DT_SERIALIZE_MEMBER(myIsVisible);
80  ar & DT_SERIALIZE_MEMBER(myIsFloating);
81  ar & DT_SERIALIZE_MEMBER(myLocation);
82  ar & DT_SERIALIZE_MEMBER(myGeometry);
83  }
84  };
85 
86  public:
87 
88  typedef std::map<DtToolbarPath,ToolbarState> ToolbarStateMap;
89 
92 
94  virtual ~DtToolbarConfiguration();
95 
97  void addToolbarPath(const DtToolbarPath&);
98 
99  void addToolbarPathAfter(const DtToolbarPath& newPath, const DtToolbarPath& relativeTo);
100  void addToolbarPathBefore(const DtToolbarPath& newPath, const DtToolbarPath& relativeTo);
101 
103  void addMenuPath(const DtMenuPath& path);
104 
105  void addMenuPathAfter(const DtMenuPath& newPath, const DtMenuPath& relativeTo);
106  void addMenuPathBefore(const DtMenuPath& newPath, const DtMenuPath& relativeTo);
107  void removeMenuPath(const DtMenuPath& newPath);
108 
110  void addConfiguration(const DtToolbarConfiguration& subConfiguration);
111 
113  void removeToolbarPath(const DtToolbarPath&);
114 
116  void getRootPaths(ToolbarPathList& children) const;
117 
118  void getChildren(const DtToolbarPath& path, ToolbarPathList& children) const;
119 
121  void sortChildren(ToolbarPathList& children) const;
122 
124  int getNewWeight();
125 
127  {
128  if (this != &rhs)
129  {
130  myToolbarPaths = rhs.myToolbarPaths;
131  myToolbarOrder = rhs.myToolbarOrder;
132  myCurrentWeight = rhs.myCurrentWeight;
133  myMenuConfiguration = rhs.myMenuConfiguration;
134  }
135 
136  return *this;
137  }
138 
143  {
144  return myMenuConfiguration;
145  }
146 
149  void merge(const DtToolbarConfiguration& rhs);
150 
153  void copyValuesFrom( const DtToolbarConfiguration& source );
154 
155 
158  void updateState(const DtToolbarPath& tb, ToolbarState& state);
159 
161  const ToolbarState* state(const DtToolbarPath& tb) const;
162 
164  const ToolbarStateMap& states() const;
165 
167  void setVisible( const DtToolbarPath& tb, bool isVisible );
168 
170 
171  protected:
172 
173  template<class Archive>
174  void _serialize(Archive & ar, const unsigned int version)
175  {
178  ar & DT_SERIALIZE_MEMBER(myToolbarStates);
179  }
180 
182  void addToolbarPath(const DtToolbarPath&, int weight);
183 
184  bool sortAbsolute(const DtToolbarPath& a, const DtToolbarPath& b) const;
185 
187  {
189  : orderWeight(0)
190  , relative(DtToolbarPath::empty())
191  , beforeRelative(false)
192  {
193  }
194 
198  };
199 
200  typedef std::map<DtToolbarPath,OrderParameters> ToolbarPathOrderMap;
201 
208  };
209 }
210 
int myLeft
Definition: DtToolbarConfiguration.h:45
#define DT_SERIALIZE_BASE(BASE_CLASS)
Serialize the base class implementation.
Definition: DtSerialize.h:161
ToolbarGeometry myGeometry
Definition: DtToolbarConfiguration.h:74
int myHeight
Definition: DtToolbarConfiguration.h:46
void serialize(Archive &ar, const unsigned int version)
Definition: DtToolbarConfiguration.h:59
int orderWeight
Definition: DtToolbarConfiguration.h:195
std::map< DtToolbarPath, ToolbarState > ToolbarStateMap
Definition: DtToolbarConfiguration.h:88
int myWidth
Definition: DtToolbarConfiguration.h:47
Contains makVrv::DtMenuPath class.
ToolbarGeometry()
Definition: DtToolbarConfiguration.h:49
bool myIsFloating
Definition: DtToolbarConfiguration.h:72
DtToolbarConfiguration & operator=(const DtToolbarConfiguration &rhs)
Definition: DtToolbarConfiguration.h:126
int windowId
Definition: DtToolbarConfiguration.h:43
ToolbarPathOrderMap myToolbarOrder
Definition: DtToolbarConfiguration.h:204
#define DT_DECLARE_serialize_FUNCTIONS
Declare all the serialize functions to use.
Definition: DtSerialize.h:120
DtToolbarPath relative
Definition: DtToolbarConfiguration.h:196
void _serialize(Archive &ar, const unsigned int version)
Definition: DtToolbarConfiguration.h:174
void serialize(Archive &ar, const unsigned int version)
Definition: DtToolbarConfiguration.h:77
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Definition: DtToolbarConfiguration.h:69
a Class which represents a menu path. The specific strings are not menu text, but the names used when...
Definition: DtMenuPath.h:27
const char * source
Definition: lz4.h:442
Contains makVrv::DtMenuConfiguration class.
Contains makVrv::DtToolbarPath class.
ToolbarPathSet myToolbarPaths
Definition: DtToolbarConfiguration.h:203
std::set< DtToolbarPath > ToolbarPathSet
Definition: DtToolbarConfiguration.h:30
DtMenuConfiguration myMenuConfiguration
If there are menus that are specifically created for toolbars, they go here.
Definition: DtToolbarConfiguration.h:207
OrderParameters()
Definition: DtToolbarConfiguration.h:188
ToolbarStateMap myToolbarStates
Definition: DtToolbarConfiguration.h:202
int myTop
Definition: DtToolbarConfiguration.h:44
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
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:25
The base implementation of a configuration.
Definition: DtConfiguration.h:24
ToolbarLocation myLocation
Definition: DtToolbarConfiguration.h:73
const DtMenuConfiguration & menuConfiguration() const
Menu configuration that is specific to this toolbar configuration and can only be used with toolbars ...
Definition: DtToolbarConfiguration.h:142
A configuration of a menu layout. A menu configuration manages an ordered collection of menu paths th...
Definition: DtMenuConfiguration.h:43
bool beforeRelative
Definition: DtToolbarConfiguration.h:197
Definition: DtToolbarConfiguration.h:41
std::list< DtToolbarPath > ToolbarPathList
Definition: DtToolbarConfiguration.h:29
#define DT_SERIALIZE_MEMBER(NAME)
Serialize a Member whose name starts with &#39;my&#39; If your member does not have that name, use Dt_SERIALIZE.
Definition: DtSerialize.h:158
Definition: DtToolbarConfiguration.h:186
int myCurrentWeight
Definition: DtToolbarConfiguration.h:205
std::map< DtToolbarPath, OrderParameters > ToolbarPathOrderMap
Definition: DtToolbarConfiguration.h:200
ToolbarLocation
Definition: DtToolbarConfiguration.h:32
bool myIsVisible
Definition: DtToolbarConfiguration.h:71
Contains DLL export macros.

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)