X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner_ui.h;h=d587359ecdf62ba74e80d70df88ed217290c9472;hb=8d1775b4582a4fe96b254dd3877377406ee51642;hp=a1435973b758f3dab43810321b02ab012a468943;hpb=b1a99f89da52018d3995592eb821f8e4a3c89a28;p=ardour.git diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h index a1435973b7..d587359ecd 100644 --- a/gtk2_ardour/panner_ui.h +++ b/gtk2_ardour/panner_ui.h @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_gtk_panner_ui_h__ @@ -31,12 +30,13 @@ #include #include -#include #include +#include #include "enums.h" class Panner2d; +class PannerBar; namespace ARDOUR { class IO; @@ -44,7 +44,6 @@ namespace ARDOUR { } namespace Gtkmm2ext { class FastMeter; - class BarController; } namespace Gtk { @@ -55,7 +54,7 @@ namespace Gtk { class PannerUI : public Gtk::HBox { public: - PannerUI (ARDOUR::IO&, ARDOUR::Session&); + PannerUI (boost::shared_ptr, ARDOUR::Session&); ~PannerUI (); void pan_changed (void *); @@ -71,12 +70,15 @@ class PannerUI : public Gtk::HBox void set_meter_strip_name (string name); private: - ARDOUR::IO& _io; + friend class MixerStrip; + boost::shared_ptr _io; ARDOUR::Session& _session; bool ignore_toggle; bool in_pan_update; + static const int pan_bar_height; + Panner2d* panner; Gtk::VBox pan_bar_packer; @@ -90,19 +92,23 @@ class PannerUI : public Gtk::HBox Gtk::VBox pan_vbox; Width _width; - gint panning_scroll_button_press_event (GdkEventButton*, int32_t dir); - gint panning_scroll_button_release_event (GdkEventButton*, int32_t dir); - Gtk::ToggleButton panning_link_button; Gtk::Button panning_link_direction_button; Gtk::HBox panning_link_box; - gint panning_link_button_press (GdkEventButton*); - gint panning_link_button_release (GdkEventButton*); + bool panning_link_button_press (GdkEventButton*); + bool panning_link_button_release (GdkEventButton*); + + Gtk::Menu pan_astate_menu; + Gtk::Menu pan_astyle_menu; + + Gtk::Button pan_automation_style_button; + Gtk::ToggleButton pan_automation_state_button; + void panning_link_direction_clicked (); vector pan_adjustments; - vector pan_bars; + vector pan_bars; void pan_adjustment_changed (uint32_t which); void pan_value_changed (uint32_t which); @@ -121,13 +127,28 @@ class PannerUI : public Gtk::HBox gint start_pan_touch (GdkEventButton*); gint end_pan_touch (GdkEventButton*); - gint pan_button_event (GdkEventButton*, uint32_t which); + bool pan_button_event (GdkEventButton*, uint32_t which); + Gtk::Menu* pan_menu; Gtk::CheckMenuItem* bypass_menu_item; void build_pan_menu (uint32_t which); void pan_mute (uint32_t which); void pan_reset (); void pan_bypass_toggle (); + + void pan_automation_state_changed(); + void pan_automation_style_changed(); + gint pan_automation_style_button_event (GdkEventButton *); + gint pan_automation_state_button_event (GdkEventButton *); + sigc::connection pan_watching; + + std::string astate_string (ARDOUR::AutoState); + std::string short_astate_string (ARDOUR::AutoState); + std::string _astate_string (ARDOUR::AutoState, bool); + + std::string astyle_string (ARDOUR::AutoStyle); + std::string short_astyle_string (ARDOUR::AutoStyle); + std::string _astyle_string (ARDOUR::AutoStyle, bool); }; #endif /* __ardour_gtk_panner_ui_h__ */