diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-11-02 18:48:32 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-11-02 18:48:32 +0000 |
commit | 11fdd6cd18a754ab39bf64965570bad932904e47 (patch) | |
tree | 4f7f75e466c5deec750ae321095dc1ac1be693e9 /gtk2_ardour/route_ui.cc | |
parent | f9bff66f9bbae8164c983520cd77fd46e18d2c52 (diff) |
solo buttons are now ArdourButtons
git-svn-id: svn://localhost/ardour2/branches/3.0@10401 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/route_ui.cc')
-rw-r--r-- | gtk2_ardour/route_ui.cc | 89 |
1 files changed, 28 insertions, 61 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 8038892d4e..c12658d973 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -81,7 +81,6 @@ RouteUI::~RouteUI() delete sends_menu; delete record_menu; delete _invert_menu; - delete solo_safe_image; } void @@ -108,20 +107,15 @@ RouteUI::init () multiple_mute_change = false; multiple_solo_change = false; _i_am_the_modifier = 0; - solo_safe_image = 0; setup_invert_buttons (); mute_button = manage (new ArdourButton); - // mute_button->set_self_managed (true); mute_button->set_name ("mute button"); UI::instance()->set_tip (mute_button, _("Mute this track"), ""); - solo_button = manage (new BindableToggleButton); - // solo_button->set_self_managed (true); + solo_button = manage (new ArdourButton); solo_button->set_name ("solo button"); - solo_button->add (solo_button_label); - solo_button_label.show (); UI::instance()->set_tip (solo_button, _("Mute other (non-soloed) tracks"), ""); solo_button->set_no_show_all (true); @@ -133,7 +127,6 @@ RouteUI::init () show_sends_button = manage (new ArdourButton); show_sends_button->set_name ("send alert button"); - // show_sends_button->set_self_managed (true); UI::instance()->set_tip (show_sends_button, _("make mixer strips show sends to this bus"), ""); monitor_input_button = manage (new ArdourButton (ArdourButton::led_default_elements)); @@ -935,89 +928,59 @@ RouteUI::send_blink (bool onoff) } } -int -RouteUI::solo_visual_state (boost::shared_ptr<Route> r) +Gtkmm2ext::ActiveState +RouteUI::solo_active_state (boost::shared_ptr<Route> r) { if (r->is_master() || r->is_monitor()) { - return 0; + return ActiveState (0); } if (Config->get_solo_control_is_listen_control()) { if (r->listening_via_monitor()) { - return 1; + return Active; } else { - return 0; + return ActiveState (0); } } if (r->soloed()) { if (!r->self_soloed()) { - return 3; + return Mid; } else { - return 1; + return Active; } } else { - return 0; - } -} - -int -RouteUI::solo_visual_state_with_isolate (boost::shared_ptr<Route> r) -{ - if (r->is_master() || r->is_monitor()) { - return 0; - } - - if (Config->get_solo_control_is_listen_control()) { - - if (r->listening_via_monitor()) { - return 1; - } else { - return 0; - } - - } - - if (r->solo_isolated()) { - return 2; - } else if (r->soloed()) { - if (!r->self_soloed()) { - return 3; - } else { - return 1; - } - } else { - return 0; + return ActiveState(0); } } -int -RouteUI::solo_isolate_visual_state (boost::shared_ptr<Route> r) +Gtkmm2ext::ActiveState +RouteUI::solo_isolate_active_state (boost::shared_ptr<Route> r) { if (r->is_master() || r->is_monitor()) { - return 0; + return ActiveState (0); } if (r->solo_isolated()) { - return 1; + return Active; } else { - return 0; + return ActiveState(0); } } -int -RouteUI::solo_safe_visual_state (boost::shared_ptr<Route> r) +Gtkmm2ext::ActiveState +RouteUI::solo_safe_active_state (boost::shared_ptr<Route> r) { if (r->is_master() || r->is_monitor()) { - return 0; + return ActiveState (0); } if (r->solo_safe()) { - return 1; + return Active; } else { - return 0; + return ActiveState (0); } } @@ -1028,17 +991,21 @@ RouteUI::update_solo_display () if (Config->get_solo_control_is_listen_control()) { - if (solo_button->get_active() != (x = _route->listening_via_monitor())) { + if ((solo_button->active_state() == Active)!= (x = _route->listening_via_monitor())) { ++_i_am_the_modifier; - solo_button->set_active(x); + solo_button->set_active_state (Active); --_i_am_the_modifier; } } else { - if (solo_button->get_active() != (x = _route->soloed())) { + if ((solo_button->active_state() == Active) != (x = _route->soloed())) { ++_i_am_the_modifier; - solo_button->set_active (x); + if (x) { + solo_button->set_active_state (Active); + } else { + solo_button->unset_active_state(); + } --_i_am_the_modifier; } @@ -1074,7 +1041,7 @@ RouteUI::update_solo_display () } } - solo_button->set_visual_state (solo_visual_state (_route)); + solo_button->set_active_state (solo_active_state (_route)); /* some changes to solo status can affect mute display, so catch up */ |