VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtMenuConfiguration.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2008 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtMenuConfiguration_H_
11 #define DtMenuConfiguration_H_
12 
13 #include <vrvCore/vrvCore.h>
14 #include <vrvCore/DtMenuPath.h>
16 
17 #include <list>
18 #include <set>
19 
20 namespace makVrv
21 {
25  {
26  public:
27 
28  //Ordered vector of paths.
29  typedef std::list<DtMenuPath> MenuPathList;
30 
31  typedef std::set<DtMenuPath> MenuPathSet;
32 
33  public:
36 
38  virtual ~DtMenuConfiguration();
39 
41  void addMenuPath(const DtMenuPath&, int weight = -1);
42 
46  void addMenuPathAfter(const DtMenuPath& newPath, const DtMenuPath& relativeTo);
47 
49  void addMenuPathBefore(const DtMenuPath& newPath, const DtMenuPath& relativeTo);
50 
52  void addConfiguration(const DtMenuConfiguration& subConfiguration);
53 
55  void removeMenuPath(const DtMenuPath&);
56 
58  void getRootPaths(MenuPathList& children) const;
59 
69  void getChildren(const DtMenuPath& path, MenuPathList& children) const;
70 
72  void sortChildren(MenuPathList& children) const;
73 
75  int getNewWeight();
76 
78  {
79  if (this != &rhs)
80  {
81  myMenuPaths = rhs.myMenuPaths;
82  myMenuOrder = rhs.myMenuOrder;
83  myCurrentWeight = rhs.myCurrentWeight;
84  }
85 
86  return *this;
87  }
88 
91  void merge(const DtMenuConfiguration& rhs);
92 
94  bool hasMenuPath(const DtMenuPath& p) const;
95 
96  protected:
97 
98  bool sortAbsolute(const DtMenuPath& a, const DtMenuPath& b) const;
99 
101  {
103  : orderWeight(0)
104  , relative(DtMenuPath::empty())
105  , beforeRelative(false)
106  {
107  }
108 
112  };
113 
115 
116  typedef std::map<DtMenuPath,OrderParameters> MenuPathOrderMap;
118 
120  };
121 }
122 
123 #endif
124 
std::list< DtMenuPath > MenuPathList
Definition: DtMenuConfiguration.h:29
MenuPathSet myMenuPaths
Definition: DtMenuConfiguration.h:114
MenuPathOrderMap myMenuOrder
Definition: DtMenuConfiguration.h:117
DtMenuConfiguration & operator=(const DtMenuConfiguration &rhs)
Definition: DtMenuConfiguration.h:77
Contains makVrv::DtMenuPath class.
DtMenuPath relative
Definition: DtMenuConfiguration.h:110
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Definition: DtMenuConfiguration.h:100
a Class which represents a menu path.
Definition: DtMenuPath.h:27
OrderParameters()
Definition: DtMenuConfiguration.h:102
Contains makVrv::DtConfiguration class.
std::set< DtMenuPath > MenuPathSet
Definition: DtMenuConfiguration.h:31
int orderWeight
Definition: DtMenuConfiguration.h:109
The base implementation of a configuration.
Definition: DtConfiguration.h:24
int myCurrentWeight
Definition: DtMenuConfiguration.h:119
A configuration of the menu layout.
Definition: DtMenuConfiguration.h:24
bool beforeRelative
Definition: DtMenuConfiguration.h:111
std::map< DtMenuPath, OrderParameters > MenuPathOrderMap
Definition: DtMenuConfiguration.h:116
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)