summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/option_editor.cc25
-rw-r--r--gtk2_ardour/option_editor.h16
2 files changed, 41 insertions, 0 deletions
diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc
index 9ce4997bb8..cd9ff81d1e 100644
--- a/gtk2_ardour/option_editor.cc
+++ b/gtk2_ardour/option_editor.cc
@@ -113,6 +113,31 @@ OptionEditorBox::add_to_page (OptionEditorPage* p)
add_widget_to_page (p, _box);
}
+RcActionButton::RcActionButton (std::string const & t, const Glib::SignalProxy0< void >::SlotType & slot, std::string const & l)
+ : _label (NULL)
+{
+ _button = manage (new Button (t));
+ _button->signal_clicked().connect (slot);
+ if (!l.empty ()) {
+ _label = manage (right_aligned_label (l));
+ }
+}
+
+void
+RcActionButton::add_to_page (OptionEditorPage *p)
+{
+ int const n = p->table.property_n_rows();
+ int m = n + 1;
+ p->table.resize (m, 3);
+ if (_label) {
+ p->table.attach (*_label, 1, 2, n, n + 1, FILL | EXPAND);
+ p->table.attach (*_button, 2, 3, n, n + 1, FILL | EXPAND);
+ } else {
+ p->table.attach (*_button, 1, 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),
_get (g),
diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h
index c69d4e03a4..07e7fbeca8 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 RcActionButton : public OptionEditorComponent
+{
+public:
+ RcActionButton (std::string const & t, const Glib::SignalProxy0< void >::SlotType & slot, std::string const & l = "");
+ void add_to_page (OptionEditorPage *);
+
+ void parameter_changed (std::string const & p) {}
+ void set_state_from_config () {}
+ Gtk::Widget& tip_widget() { return *_button; }
+
+protected:
+ Gtk::Button* _button;
+ Gtk::Label* _label;
+ std::string _name;
+};
+
/** Base class for components which provide UI to change an option */
class Option : public OptionEditorComponent
{