diff options
author | Robin Gareus <robin@gareus.org> | 2015-12-12 20:39:38 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-12-12 20:39:38 +0100 |
commit | bb7c857a698f1eb208bd83a57eeca2b81b75cdb5 (patch) | |
tree | fa5630a19d2660d2ec81fa1e825176ce4c63cd02 /gtk2_ardour | |
parent | 239ea8670b8f341887bc09bbdd9cb67e1e02b788 (diff) |
add rc-config widget to display text-config/paths (read only)
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/option_editor.cc | 39 | ||||
-rw-r--r-- | gtk2_ardour/option_editor.h | 16 |
2 files changed, 55 insertions, 0 deletions
diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc index cd9ff81d1e..e963726531 100644 --- a/gtk2_ardour/option_editor.cc +++ b/gtk2_ardour/option_editor.cc @@ -137,6 +137,45 @@ RcActionButton::add_to_page (OptionEditorPage *p) } } +RcConfigDisplay::RcConfigDisplay (string const & i, string const & n, sigc::slot<string> g, char s) + : _get (g) + , _id (i) + , _sep (s) +{ + _label = manage (right_aligned_label (n)); + _info = manage (new Label); + _info-> set_line_wrap (true); + set_state_from_config (); +} + +void +RcConfigDisplay::set_state_from_config () +{ + string p = _get(); + if (_sep) { + std::replace (p.begin(), p.end(), _sep, '\n'); + } + _info->set_text (p); +} + +void +RcConfigDisplay::parameter_changed (std::string const & p) +{ + if (p == _id) { + set_state_from_config (); + } +} + +void +RcConfigDisplay::add_to_page (OptionEditorPage *p) +{ + int const n = p->table.property_n_rows(); + int m = n + 1; + p->table.resize (m, 3); + p->table.attach (*_label, 1, 2, n, n + 1, FILL | EXPAND); + p->table.attach (*_info, 2, 3, n, n + 1, FILL | EXPAND); +} + BoolOption::BoolOption (string const & i, string const & n, sigc::slot<bool> g, sigc::slot<bool, bool> s) : Option (i, n), diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h index 07e7fbeca8..76370619aa 100644 --- a/gtk2_ardour/option_editor.h +++ b/gtk2_ardour/option_editor.h @@ -121,6 +121,22 @@ protected: Gtk::VBox* _box; ///< constituent box for subclasses to add widgets to }; +class RcConfigDisplay : public OptionEditorComponent +{ +public: + RcConfigDisplay (std::string const &, std::string const &, sigc::slot<std::string>, char s = '\0'); + void add_to_page (OptionEditorPage *); + void parameter_changed (std::string const & p); + void set_state_from_config (); + Gtk::Widget& tip_widget() { return *_info; } +protected: + sigc::slot<std::string> _get; + Gtk::Label* _label; + Gtk::Label* _info; + std::string _id; + char _sep; +}; + class RcActionButton : public OptionEditorComponent { public: |