VR-Forces 4.1 Class Documentation
DtObjectSettingsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 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  protected:
82 
85 
86  protected:
88  };
89 
92  {
93  public:
95  {
96  ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set<makVrv::DtElementEntry::ElementType> e)
97  : setting(s)
98  , name(s)
99  , validFor(e)
100  {
101  }
102 
104  : setting((ObjectSetting)0)
105  , validFor()
106  {
107  validFor.insert( makVrv::DtElementEntry::Unknown );
108  }
109 
111  : setting(s.setting)
112  , name(s.name)
113  , validFor(s.validFor)
114  {
115  }
116 
118  {
119  setting = s.setting;
120  name = s.name;
121  validFor = s.validFor;
122 
123  return *this;
124  }
125 
128  std::set<makVrv::DtElementEntry::ElementType> validFor;
129  };
130 
131  typedef std::vector<ObjectSettingStruct> ObjectSettings;
132 
133  public:
135  virtual ~DtObjectSettingsManager();
136 
138  static DtObjectSettingsManager& instance(makVrv::DtDe& de);
139  static void registerInstance(makVrv::DtDe&, DtObjectSettingsManager*);
140 
142  virtual void removeSettings(const std::string& markingText);
143 
145  virtual void removeAll();
146 
147  virtual void setSettings(const std::string& markingText, ObjectSetting);
148  ObjectSetting settingsFor(const std::string& markingText) const;
149 
151  ObjectSetting, std::set<makVrv::DtElementEntry::ElementType> validFor);
152  virtual void removeSetting(ObjectSetting);
153  ObjectSetting settingFor(const makVrv::DtUnicode&);
154  makVrv::DtUnicode settingNameFor(ObjectSetting);
155 
157  bool flagState(const std::string& markingText, ObjectSetting) const;
158  virtual void setFlagState(const std::string& markingText, ObjectSetting, bool onOff);
159  const ObjectSettings& objectSettings() const;
160 
162  virtual void protect();
163 
164  protected:
165  virtual void init();
166 
167  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
168  virtual void read(boost::archive::xml_iarchive& ar, int version);
169 
171  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& s);
172 
173  protected:
177 
178  typedef std::map<std::string, bool> ProtectedFromRemoval;
180  };
181 
185  {
186  public:
187 
192 
196 
200  static DtSharedObjectSettingsSignaler* findInstance(
202 
205 
209 
210  protected:
212 
213  private:
216  };
217 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)