summaryrefslogtreecommitdiff
path: root/gtk2_ardour/plugin_ui.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-11-10 15:25:01 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-11-10 15:25:01 +0000
commit6449c2e5c8b027245fe5fb9942984243e4a653d7 (patch)
tree0441b7521bc04dec2f858c3ca836d1ce43b1dcb9 /gtk2_ardour/plugin_ui.cc
parentdbafe45a280cc6c33bb7dca72202c109012cd8eb (diff)
more ardour-button-ization; fix transparency of selection rects; use "correct" cursors when entering and leaving selection rect handles; color tweaks for a few buttons
git-svn-id: svn://localhost/ardour2/branches/3.0@10527 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/plugin_ui.cc')
-rw-r--r--gtk2_ardour/plugin_ui.cc48
1 files changed, 33 insertions, 15 deletions
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index b6189d200e..741fcbe631 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -455,7 +455,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
, add_button (_("Add"))
, save_button (_("Save"))
, delete_button (_("Delete"))
- , bypass_button (_("Bypass"))
+ , bypass_button (ArdourButton::led_default_elements)
, latency_gui (0)
, latency_dialog (0)
, plugin_analysis_expander (_("Plugin analysis"))
@@ -464,6 +464,11 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
_preset_combo.set_size_request (100, -1);
_preset_modified.set_size_request (16, -1);
_preset_combo.signal_changed().connect(sigc::mem_fun(*this, &PlugUIBase::preset_selected));
+ ARDOUR_UI::instance()->set_tip (_preset_combo, _("Presets (if any) for this plugin\n(Both factory and user-created)"));
+ ARDOUR_UI::instance()->set_tip (add_button, _("Save a new preset"));
+ ARDOUR_UI::instance()->set_tip (save_button, _("Save the current preset"));
+ ARDOUR_UI::instance()->set_tip (delete_button, _("Delete the current preset"));
+ ARDOUR_UI::instance()->set_tip (bypass_button, _("Disable signal processing by the plugin"));
_no_load_preset = 0;
_preset_box.pack_start (_preset_combo);
@@ -483,10 +488,16 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
insert->ActiveChanged.connect (active_connection, invalidator (*this), boost::bind (&PlugUIBase::processor_active_changed, this, boost::weak_ptr<Processor>(insert)), gui_context());
- bypass_button.set_active (!pi->active());
+ bypass_button.set_name ("plugin bypass button");
+ bypass_button.set_text (_("Bypass"));
- bypass_button.set_name ("PluginBypassButton");
- bypass_button.signal_toggled().connect (sigc::mem_fun(*this, &PlugUIBase::bypass_toggled));
+ if (!pi->active()) {
+ bypass_button.set_active_state (Gtkmm2ext::Active);
+ } else {
+ bypass_button.unset_active_state ();
+ }
+
+ bypass_button.signal_button_release_event().connect (sigc::mem_fun(*this, &PlugUIBase::bypass_button_release));
focus_button.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK);
focus_button.signal_button_release_event().connect (sigc::mem_fun(*this, &PlugUIBase::focus_toggled));
@@ -561,10 +572,15 @@ PlugUIBase::latency_button_clicked ()
void
PlugUIBase::processor_active_changed (boost::weak_ptr<Processor> weak_p)
{
- ENSURE_GUI_THREAD (*this, &PlugUIBase::processor_active_changed, weak_p)
- boost::shared_ptr<Processor> p (weak_p);
+ ENSURE_GUI_THREAD (*this, &PlugUIBase::processor_active_changed, weak_p);
+ boost::shared_ptr<Processor> p (weak_p.lock());
+
if (p) {
- bypass_button.set_active (!p->active());
+ if (!p->active()) {
+ bypass_button.set_active_state (Gtkmm2ext::Active);
+ } else {
+ bypass_button.unset_active_state ();
+ }
}
}
@@ -626,18 +642,20 @@ PlugUIBase::delete_plugin_setting ()
plugin->remove_preset (_preset_combo.get_active_text ());
}
-void
-PlugUIBase::bypass_toggled ()
+bool
+PlugUIBase::bypass_button_release (GdkEventButton*)
{
- bool x;
-
- if ((x = bypass_button.get_active()) == insert->active()) {
- if (x) {
- insert->deactivate ();
- } else {
+ bool view_says_bypassed = (bypass_button.active_state() != 0);
+
+ if (view_says_bypassed != insert->active()) {
+ if (view_says_bypassed) {
insert->activate ();
+ } else {
+ insert->deactivate ();
}
}
+
+ return false;
}
bool