diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2016-08-30 21:07:24 +1000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2017-04-19 09:36:58 +1000 |
commit | 9d2d0ddf00fa91978f2bb14b4dbc195542d46259 (patch) | |
tree | 6de59c826473493841cb4a00b4f961d456c50d78 /gtk2_ardour/axis_view.h | |
parent | 66004a50366d43e0dca2c9305ec662e037cb17e1 (diff) |
Add AxisView::get_gui_property method, use PBD::string_to<T> for string conversion
Diffstat (limited to 'gtk2_ardour/axis_view.h')
-rw-r--r-- | gtk2_ardour/axis_view.h | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/gtk2_ardour/axis_view.h b/gtk2_ardour/axis_view.h index 8de39583ef..81fe489252 100644 --- a/gtk2_ardour/axis_view.h +++ b/gtk2_ardour/axis_view.h @@ -63,20 +63,29 @@ class AxisView : public virtual PBD::ScopedConnectionList, public virtual ARDOUR */ std::string gui_property (const std::string& property_name) const; - void set_gui_property (const std::string& property_name, const char* value) { - property_hashtable.erase(property_name); - property_hashtable.emplace(property_name, value); - gui_object_state().set_property (state_id(), property_name, value); + bool get_gui_property (const std::string& property_name, std::string& value) const; + + template <typename T> + bool get_gui_property (const std::string& property_name, T& value) const + { + std::string str = gui_property (property_name); + + if (!str.empty ()) { + return PBD::string_to<T>(str, value); + } + return false; } - void set_gui_property (const std::string& property_name, const std::string& value) { - set_gui_property (property_name, value.c_str()); + void set_gui_property (const std::string& property_name, const std::string& value); + + void set_gui_property (const std::string& property_name, const char* value) { + set_gui_property (property_name, std::string(value)); } - template<typename T> void set_gui_property (const std::string& property_name, const T& value) { - property_hashtable.erase(property_name); - property_hashtable.emplace(property_name, PBD::to_string(value)); - gui_object_state().set_property<T> (state_id(), property_name, value); + template <typename T> + void set_gui_property (const std::string& property_name, const T& value) + { + set_gui_property (property_name, PBD::to_string(value)); } void cleanup_gui_properties () { |