diff --git a/gtk2_ardour/axis_view.h b/gtk2_ardour/axis_view.h index 62362f0e4a..3f7e8236c5 100644 --- a/gtk2_ardour/axis_view.h +++ b/gtk2_ardour/axis_view.h @@ -74,7 +74,7 @@ class AxisView : public virtual Selectable, public PBD::ScopedConnectionList, pu property_hashtable.clear (); } - bool marked_for_display () const; + virtual bool marked_for_display () const; virtual bool set_marked_for_display (bool); static GUIObjectState& gui_object_state(); diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 7ef34807a6..83cb318cd5 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -2616,3 +2616,15 @@ MixerStrip::update_track_number_visibility () number_label.hide (); } } +bool +MixerStrip::marked_for_display () const +{ + return !_route->presentation_info().hidden(); +} + +bool +MixerStrip::set_marked_for_display (bool yn) +{ + return RouteUI::mark_hidden (!yn); +} + diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 5f8ce4f45c..2ce32ef83b 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -81,6 +81,9 @@ class MixerStrip : public RouteUI, public Gtk::EventBox MixerStrip (Mixer_UI&, ARDOUR::Session*, bool in_mixer = true); ~MixerStrip (); + bool marked_for_display () const; + bool set_marked_for_display (bool); + void set_width_enum (Width, void* owner); Width get_width_enum () const { return _width; } void* width_owner () const { return _width_owner; } diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index 78a77fe727..1586a71c97 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -2931,3 +2931,15 @@ RouteTimeAxisView::stripable () const { return _route; } + +bool +RouteTimeAxisView::marked_for_display () const +{ + return !_route->presentation_info().hidden(); +} + +bool +RouteTimeAxisView::set_marked_for_display (bool yn) +{ + return RouteUI::mark_hidden (!yn); +} diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 074f35a08d..57d1aeaeea 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -2356,3 +2356,13 @@ RouteUI::manage_pins () proxy->present(); } } + +bool +RouteUI::mark_hidden (bool yn) +{ + if (yn != _route->presentation_info().hidden()) { + _route->presentation_info().set_hidden (yn); + return true; // things changed + } + return false; +} diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index ddb6b40b57..7ba151f39b 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -299,6 +299,8 @@ class RouteUI : public virtual AxisView static std::string program_port_prefix; + bool mark_hidden (bool yn); + private: void parameter_changed (std::string const &); void relabel_solo_button ();