diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-07-11 20:32:33 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-07-11 20:32:33 +0000 |
commit | 6dc74f8c871752b05eb7def894bd44e38d76c3f4 (patch) | |
tree | 58f1b847c5771b32b1e078d378631348855c1345 /gtk2_ardour/gui_object.h | |
parent | 58a3d6c72030a90c54e5582b75ed520536749504 (diff) |
clean up GUIObjectState API, and use bools when setting "visible" property rather than string (not that it matters); don't unconditionally set visible to true unless a non-hidden track/bus has no visibility property already
git-svn-id: svn://localhost/ardour2/branches/3.0@9843 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/gui_object.h')
-rw-r--r-- | gtk2_ardour/gui_object.h | 50 |
1 files changed, 9 insertions, 41 deletions
diff --git a/gtk2_ardour/gui_object.h b/gtk2_ardour/gui_object.h index a109e625ae..025be30fab 100644 --- a/gtk2_ardour/gui_object.h +++ b/gtk2_ardour/gui_object.h @@ -29,6 +29,11 @@ #include "pbd/id.h" class GUIObjectState { + private: + typedef boost::variant<int64_t,std::string> Variant; + typedef std::map<std::string,Variant> PropertyMap; + typedef std::map<std::string,PropertyMap> StringPropertyMap; + public: GUIObjectState() {} ~GUIObjectState(); @@ -41,59 +46,22 @@ class GUIObjectState { GUIObjectState& operator= (const GUIObjectState& other); - private: - typedef boost::variant<int64_t,std::string> Variant; - typedef std::map<std::string,Variant> PropertyMap; - typedef std::map<std::string,PropertyMap> StringPropertyMap; - - StringPropertyMap _property_maps; - - template<typename T> T get (const std::string& id, const std::string& prop_name, const T& type_determination_placeholder, bool* empty = 0) { - StringPropertyMap::iterator i = _property_maps.find (id); - - if (i == _property_maps.end()) { - if (empty) { - *empty = true; - } - return T(); - } - - const PropertyMap& pmap (i->second); - PropertyMap::const_iterator p = pmap.find (prop_name); - - if (p == pmap.end()) { - return T(); - } - - return boost::get<T> (p->second); - } - - void clear_maps (); - - public: - int get_int (const std::string& id, const std::string& prop_name) { - int i = 0; - return get (id, prop_name, i); - } - - std::string get_string (const std::string& id, const std::string& prop_name) { - std::string s; - return get (id, prop_name, s); - } + std::string get_string (const std::string& id, const std::string& prop_name, bool* empty = 0); template<typename T> void set (const std::string& id, const std::string& prop_name, const T& val) { StringPropertyMap::iterator i = _property_maps.find (id); if (i != _property_maps.end()) { i->second[prop_name] = val; - // std::cerr << id << " REset " << prop_name << " = [" << val << "]\n"; } else { _property_maps[id] = PropertyMap(); _property_maps[id][prop_name] = val; - // std::cerr << id << " set " << prop_name << " = [" << val << "]\n"; } } + private: + StringPropertyMap _property_maps; + void clear_maps (); }; |