17 #include <boost/function.hpp>
21 #include <boost/archive/xml_iarchive.hpp>
22 #include <boost/archive/xml_oarchive.hpp>
23 #include <boost/serialization/access.hpp>
24 #include <boost/serialization/nvp.hpp>
25 #include <boost/serialization/list.hpp>
26 #include <boost/serialization/map.hpp>
27 #include <boost/serialization/vector.hpp>
28 #include <boost/serialization/string.hpp>
49 virtual std::string classType()
const = 0;
53 return T().classType();
62 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int) = 0;
63 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int) = 0;
69 friend class boost::serialization::access;
74 template<
class Archive>
75 void serialize(Archive & ar,
const unsigned int version)
77 if (Archive::is_loading::value)
79 int dVersion = version;
83 *((boost::archive::xml_iarchive*)&ar) >> boost::serialization::make_nvp(
"version", dVersion);
86 read(*(boost::archive::xml_iarchive*)&ar, dVersion);
90 int dVersion = dataVersion();
92 *((boost::archive::xml_oarchive*)&ar) << boost::serialization::make_nvp(
"version", dVersion);
93 write(*(boost::archive::xml_oarchive*)&ar, dVersion);
112 static void cleanup();
122 #define REGISTER_APPLICATION_SETTING(AppSetting) static bool AppSetting##_Registered = \
123 DtVrfGuiSettingsFactory::addSettingCreator(DtVrfGuiApplicationSetting::theClassType<AppSetting>(), \
124 DtVrfGuiApplicationSetting::create<AppSetting>);
141 virtual void loadSettings(
const std::string& settingsFile);
142 virtual void saveSettings();
143 virtual void saveSettings(
const std::string& settingsFile);
147 virtual std::string iconsPath()
const;
156 virtual void removeSetting(
const std::string&);
173 virtual void clearSettings();
176 friend class boost::serialization::access;
181 template<
class Archive>
182 void serialize(Archive & ar,
const unsigned int version)
184 VrfGuiSettings::const_iterator iter = mySettings.begin();
186 if (Archive::is_loading::value)
189 std::string classType;
192 ar & BOOST_SERIALIZATION_NVP(size);
194 for (
int i = 0; i <
size; i++)
196 ar & BOOST_SERIALIZATION_NVP(name);
197 ar & BOOST_SERIALIZATION_NVP(classType);
203 ar & BOOST_SERIALIZATION_NVP(guiSetting);
204 mySettings[name] = iface;
211 int size = mySettings.size();
212 ar & BOOST_SERIALIZATION_NVP(size);
213 VrfGuiSettings::const_iterator iter = mySettings.begin();
215 while (iter != mySettings.end())
217 std::string name = iter->first;
219 ar & BOOST_SERIALIZATION_NVP(name);
220 std::string classType = iter->second->classType();
221 ar & BOOST_SERIALIZATION_NVP(classType);
224 ar & BOOST_SERIALIZATION_NVP(guiSetting);
DtVrfGuiApplicationSetting *(* DtApplicationSettingCreatorFcn)(makVrv::DtDe &)
Definition: vrfGuiApplicationSettings.h:101
bool autoSave() const
Definition: vrfGuiApplicationSettings.h:168
makVrv::DtDe & myDe
Definition: vrfGuiApplicationSettings.h:232
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
static std::string theClassType()
Definition: vrfGuiApplicationSettings.h:51
voidpf void uLong size
Definition: ioapi.h:39
VrfGuiSettings mySettings
Definition: vrfGuiApplicationSettings.h:233
std::map< std::string, DtVrfGuiApplicationSetting * > VrfGuiSettings
Definition: vrfGuiApplicationSettings.h:128
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Definition: vrfGuiApplicationSettings.h:37
const VrfGuiSettings & settings() const
Definition: vrfGuiApplicationSettings.h:158
makVrv::DtDe * myDe
Definition: vrfGuiApplicationSettings.h:98
Contains makVrv::DtVirtualBaseClass class.
std::map< std::string, DtApplicationSettingCreatorFcn > SettingsCreatorMap
Definition: vrfGuiApplicationSettings.h:106
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: vrfGuiApplicationSettings.h:182
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: vrfGuiApplicationSettings.h:75
void setAutoSave(bool b)
Definition: vrfGuiApplicationSettings.h:163
virtual int dataVersion()
Override in subclass to version data.
Definition: vrfGuiApplicationSettings.h:66
Definition: vrfGuiApplicationSettings.h:103
std::string mySettingsFile
Definition: vrfGuiApplicationSettings.h:234
Definition: vrfGuiApplicationSettings.h:126
bool myAutoSave
Definition: vrfGuiApplicationSettings.h:235
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:72
static std::map< std::string, DtApplicationSettingCreatorFcn > * theSettingsCreators
Definition: vrfGuiApplicationSettings.h:119
static DtVrfGuiApplicationSetting * createSetting(const std::string &name, makVrv::DtDe &)
static DtVrfGuiApplicationSetting * create(makVrv::DtDe &de)
Definition: vrfGuiApplicationSettings.h:56