X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fvca_time_axis.h;h=6d4cf5ffbd28c36541a8c3e4d783682a3d92de47;hb=098b0f8a8b904313bc2e9e3147cc3c05fd83f3e6;hp=9aa92a10061d5d50cc0510c614b5a08bd7e55aad;hpb=eee83c25a9e1e182d0ce1d90f5469b0a836f082c;p=ardour.git diff --git a/gtk2_ardour/vca_time_axis.h b/gtk2_ardour/vca_time_axis.h index 9aa92a1006..6d4cf5ffbd 100644 --- a/gtk2_ardour/vca_time_axis.h +++ b/gtk2_ardour/vca_time_axis.h @@ -20,8 +20,10 @@ #ifndef __ardour_vca_time_axis_h__ #define __ardour_vca_time_axis_h__ -#include "ardour_button.h" -#include "time_axis_view.h" +#include "widgets/ardour_button.h" + +#include "stripable_colorpicker.h" +#include "stripable_time_axis.h" #include "gain_meter.h" namespace ArdourCanvas { @@ -33,31 +35,51 @@ namespace ARDOUR { class VCA; } -class VCATimeAxisView : public TimeAxisView +class VCATimeAxisView : public StripableTimeAxisView { - public: +public: VCATimeAxisView (PublicEditor&, ARDOUR::Session*, ArdourCanvas::Canvas& canvas); virtual ~VCATimeAxisView (); + boost::shared_ptr stripable() const; ARDOUR::PresentationInfo const & presentation_info () const; void set_vca (boost::shared_ptr); boost::shared_ptr vca() const { return _vca; } std::string name() const; + Gdk::Color color () const; std::string state_id() const; - bool selectable() const { return false; } + void set_height (uint32_t h, TrackHeightMode m = OnlySelf); + + bool marked_for_display () const; + bool set_marked_for_display (bool); - protected: +protected: boost::shared_ptr _vca; - ArdourButton solo_button; - ArdourButton mute_button; - ArdourButton spill_button; - ArdourButton drop_button; - ArdourButton number_label; - GainMeterBase gain_meter; - PBD::ScopedConnectionList vca_connections; + ArdourWidgets::ArdourButton solo_button; + ArdourWidgets::ArdourButton mute_button; + ArdourWidgets::ArdourButton automation_button; + ArdourWidgets::ArdourButton drop_button; + ArdourWidgets::ArdourButton number_label; + GainMeterBase gain_meter; + PBD::ScopedConnectionList vca_connections; + + void create_gain_automation_child (const Evoral::Parameter &, bool); + void create_trim_automation_child (const Evoral::Parameter &, bool) {} + void create_mute_automation_child (const Evoral::Parameter &, bool); + + virtual void show_all_automation (bool apply_to_selection = false); + virtual void show_existing_automation (bool apply_to_selection = false); + virtual void hide_all_automation (bool apply_to_selection = false); + + void create_automation_child (const Evoral::Parameter& param, bool show); + virtual void build_automation_action_menu (bool); + void build_display_menu (); + Gtk::Menu* automation_action_menu; + + bool name_entry_changed (std::string const&); void parameter_changed (std::string const& p); void vca_property_changed (PBD::PropertyChange const&); @@ -68,9 +90,15 @@ class VCATimeAxisView : public TimeAxisView void update_track_number_visibility (); bool solo_release (GdkEventButton*); bool mute_release (GdkEventButton*); - bool spill_release (GdkEventButton*); + bool automation_click (GdkEventButton*); bool drop_release (GdkEventButton*); void self_delete (); + + void drop_all_slaves (); + void choose_color (); + +private: + StripableColorDialog _color_picker; }; -#endif /* __ardour_route_time_axis_h__ */ +#endif /* __ardour_vca_time_axis_h__ */