diff options
-rw-r--r-- | gtk2_ardour/dark.colors | 4 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 16 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.h | 1 |
3 files changed, 19 insertions, 2 deletions
diff --git a/gtk2_ardour/dark.colors b/gtk2_ardour/dark.colors index c46d60ac0c..2cdc39dbdd 100644 --- a/gtk2_ardour/dark.colors +++ b/gtk2_ardour/dark.colors @@ -228,7 +228,9 @@ <ColorAlias name="marker drag line" alias="color 44"/> <ColorAlias name="marker label" alias="color 4"/> <ColorAlias name="marker track" alias="color 31"/> - <ColorAlias name="master monitor section button: fill active" alias="color 42"/> + <ColorAlias name="master monitor section button normal: fill active" alias="color 42"/> + <ColorAlias name="master monitor section button active: fill" alias="color 40"/> + <ColorAlias name="master monitor section button active: fill active" alias="color 54"/> <ColorAlias name="measure line bar" alias="color 13"/> <ColorAlias name="measure line beat" alias="color 33"/> <ColorAlias name="meter background bottom" alias="color 46"/> diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index df7621b8ea..5247d89033 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -501,8 +501,10 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt) } if (monitor_section_button == 0) { Glib::RefPtr<Action> act = ActionManager::get_action ("Common", "ToggleMonitorSection"); + _session->MonitorChanged.connect (route_connections, invalidator (*this), boost::bind (&MixerStrip::monitor_changed, this), gui_context()); + monitor_section_button = manage (new ArdourButton); - monitor_section_button->set_name ("master monitor section button"); + monitor_changed (); monitor_section_button->set_related_action (act); set_tooltip (monitor_section_button, _("Show/Hide Monitoring Section")); mute_solo_table.attach (*monitor_section_button, 1, 2, 0, 1); @@ -1948,6 +1950,18 @@ MixerStrip::meter_point_string (MeterPoint mp) return string(); } +/** Called when the monitor-section state */ +void +MixerStrip::monitor_changed () +{ + assert (monitor_section_button); + if (_session->monitor_active()) { + monitor_section_button->set_name ("master monitor section button active"); + } else { + monitor_section_button->set_name ("master monitor section button normal"); + } +} + /** Called when the metering point has changed */ void MixerStrip::meter_changed () diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 6f63acf224..f0aebf0713 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -180,6 +180,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox ArdourButton meter_point_button; void meter_changed (); + void monitor_changed (); ArdourButton input_button; ArdourButton output_button; |