use lucida grande for clocks with all OS X versions, BUT BETTER
[ardour.git] / gtk2_ardour / mixer_strip.cc
index a8ac81f770e76c6b11e97f2049161f3d6e93d31b..90d2a2912af334746fe771cf31e0df33b3204b4e 100644 (file)
@@ -485,12 +485,6 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
                at->FreezeChange.connect (route_connections, invalidator (*this), boost::bind (&MixerStrip::map_frozen, this), gui_context());
        }
 
-       if (has_audio_outputs ()) {
-               panners.show_all ();
-       } else {
-               panners.hide_all ();
-       }
-
        if (is_track ()) {
 
                rec_solo_table.attach (*rec_enable_button, 0, 1, 0, 2);
@@ -539,6 +533,12 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
        connect_to_pan ();
        panners.setup_pan ();
 
+       if (has_audio_outputs ()) {
+               panners.show_all ();
+       } else {
+               panners.hide_all ();
+       }
+
        update_diskstream_display ();
        update_input_display ();
        update_output_display ();
@@ -629,8 +629,6 @@ MixerStrip::set_width_enum (Width w, void* owner)
                                        panners.astate_string(_route->panner()->automation_state()));
                }
 
-               solo_isolated_led->set_text (_("iso"));
-               solo_safe_led->set_text (_("lock"));
 
                Gtkmm2ext::set_size_request_to_display_given_text (name_button, longest_label.c_str(), 2, 2);
                set_size_request (-1, -1);
@@ -653,9 +651,6 @@ MixerStrip::set_width_enum (Width w, void* owner)
                        ((Gtk::Label*)panners.pan_automation_state_button.get_child())->set_text (
                        panners.short_astate_string(_route->panner()->automation_state()));
                }
-               
-               solo_isolated_led->set_text (_("iso"));
-               solo_safe_led->set_text (_("Lck"));
 
                Gtkmm2ext::set_size_request_to_display_given_text (name_button, "long", 2, 2);
                set_size_request (max (50, gpm.get_gm_width()), -1);
@@ -1235,6 +1230,13 @@ MixerStrip::update_input_display ()
 {
        update_io_button (_route, _width, true);
        panners.setup_pan ();
+
+       if (has_audio_outputs ()) {
+               panners.show_all ();
+       } else {
+               panners.hide_all ();
+       }
+
 }
 
 void
@@ -1243,6 +1245,12 @@ MixerStrip::update_output_display ()
        update_io_button (_route, _width, false);
        gpm.setup_meters ();
        panners.setup_pan ();
+
+       if (has_audio_outputs ()) {
+               panners.show_all ();
+       } else {
+               panners.hide_all ();
+       }
 }
 
 void
@@ -1837,6 +1845,14 @@ MixerStrip::show_send (boost::shared_ptr<Send> send)
        panner_ui().set_panner (_current_delivery->panner_shell(), _current_delivery->panner());
        panner_ui().setup_pan ();
 
+       /* make sure the send has audio output */
+
+       if (_current_delivery->output() && _current_delivery->output()->n_ports().n_audio() > 0) {
+               panners.show_all ();
+       } else {
+               panners.hide_all ();
+       }
+
        input_button.set_sensitive (false);
        group_button.set_sensitive (false);
        set_invert_sensitive (false);
@@ -1870,6 +1886,12 @@ MixerStrip::revert_to_default_display ()
        panner_ui().set_panner (_route->main_outs()->panner_shell(), _route->main_outs()->panner());
        panner_ui().setup_pan ();
 
+       if (has_audio_outputs ()) {
+               panners.show_all ();
+       } else {
+               panners.hide_all ();
+       }
+
        reset_strip_style ();
 }
 
@@ -1904,6 +1926,8 @@ MixerStrip::set_button_names ()
                                }
                        }
                }
+               solo_isolated_led->set_text (_("iso"));
+               solo_safe_led->set_text (_("lock"));
                break;
 
        default:
@@ -1933,8 +1957,9 @@ MixerStrip::set_button_names ()
                                }
                        }
                }
+               solo_isolated_led->set_text (_("i"));
+               solo_safe_led->set_text (_("L"));
                break;
-
        }
 
        if (_route) {