VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
objectSettingsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 201 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <vrvUtil/signalslib.h>
15 
16 #include <vrfGuiCore/vrfGuiCore.h>
19 #include <vrvCore/DtElementEntry.h>
20 #include <vrvUtil/event_signal.h>
21 #include <vrvUtil/DtUnicode.h>
24 
25 #include <vrvCore/DtDe.h>
26 
27 
28 namespace makVrv
29 {
30  class DtEventQueueInterface;
31  class DtSharedSettingsManager;
32 }
33 
34 namespace makVrf
35 {
37  {
39  };
40 
44  {
45  public:
46  typedef std::map<std::string, ObjectSetting> ObjectSettingsMap;
47 
53 
57  static std::string className();
58 
60  virtual ~DtSharedObjectSettings();
61 
63  virtual void removeSettings(const std::string& markingText);
64 
65  void setSettings(const std::string& markingText, ObjectSetting);
66  ObjectSetting settingsFor(const std::string& markingText) const;
67 
69  virtual bool hasSetting(const std::string& markingText) const;
70 
71  void setFlagState(const std::string& markingText, ObjectSetting, bool onOff);
72 
74  bool flagState(const std::string&, ObjectSetting) const;
75 
76  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
77  virtual void read(boost::archive::xml_iarchive& ar, int version);
78 
79  const ObjectSettingsMap& settingsMap() const;
80 
81  virtual void settingsLoaded();
82 
83  protected:
84 
87 
88  protected:
90  };
91 
94  {
95  public:
97  {
98  ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set<makVrv::DtElementEntry::ElementType> e)
99  : setting(s)
100  , name(s)
101  , validFor(e)
102  {
103  }
104 
106  : setting((ObjectSetting)0)
107  , validFor()
108  {
109  validFor.insert( makVrv::DtElementEntry::Unknown );
110  }
111 
113  : setting(s.setting)
114  , name(s.name)
115  , validFor(s.validFor)
116  {
117  }
118 
120  {
121  setting = s.setting;
122  name = s.name;
123  validFor = s.validFor;
124 
125  return *this;
126  }
127 
130  std::set<makVrv::DtElementEntry::ElementType> validFor;
131  };
132 
133  typedef std::vector<ObjectSettingStruct> ObjectSettings;
134 
135  public:
137  virtual ~DtObjectSettingsManager();
138 
140  static DtObjectSettingsManager& instance(makVrv::DtDe& de);
141  static void registerInstance(makVrv::DtDe&, DtObjectSettingsManager*);
142 
144  virtual void removeSettings(const std::string& markingText);
145 
147  virtual void removeAll();
148 
149  virtual void setSettings(const std::string& markingText, ObjectSetting);
150  ObjectSetting settingsFor(const std::string& markingText) const;
151 
153  ObjectSetting, std::set<makVrv::DtElementEntry::ElementType> validFor);
154  virtual void removeSetting(ObjectSetting);
155  ObjectSetting settingFor(const makVrv::DtUnicode&);
156  makVrv::DtUnicode settingNameFor(ObjectSetting);
157 
159  bool flagState(const std::string& markingText, ObjectSetting) const;
160  virtual void setFlagState(const std::string& markingText, ObjectSetting, bool onOff);
161  const ObjectSettings& objectSettings() const;
162 
163  virtual bool hasSetting(const std::string&) const;
164 
166  virtual void protect();
167 
168  protected:
169  virtual void init();
170 
171  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
172  virtual void read(boost::archive::xml_iarchive& ar, int version);
173 
175  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
176 
178  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
179 
180  protected:
184 
185  typedef std::map<std::string, bool> ProtectedFromRemoval;
187  };
188 
192  {
193  public:
194 
199 
203 
207  static DtSharedObjectSettingsSignaler* findInstance(
209 
212 
217 
218  protected:
220 
221  private:
224  };
225 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)