X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmono_panner.h;h=c5843f756c5aadb541552181324db485c52b1a00;hb=5a6ddb034e998a84657210e0784101783a8a7d8b;hp=37a0932b99727f6aa21649497594cc9ebc2ff6f2;hpb=195c735181d94fcb496050d3339538cb3306a812;p=ardour.git diff --git a/gtk2_ardour/mono_panner.h b/gtk2_ardour/mono_panner.h index 37a0932b99..c5843f756c 100644 --- a/gtk2_ardour/mono_panner.h +++ b/gtk2_ardour/mono_panner.h @@ -22,19 +22,24 @@ #include "pbd/signals.h" -#include #include #include "gtkmm2ext/binding_proxy.h" +#include "panner_interface.h" + +namespace ARDOUR { + class PannerShell; +} + namespace PBD { class Controllable; } -class MonoPanner : public Gtk::DrawingArea +class MonoPanner : public PannerInterface { public: - MonoPanner (boost::shared_ptr); + MonoPanner (boost::shared_ptr); ~MonoPanner (); boost::shared_ptr get_controllable() const { return position_control; } @@ -49,27 +54,22 @@ class MonoPanner : public Gtk::DrawingArea bool on_motion_notify_event (GdkEventMotion*); bool on_scroll_event (GdkEventScroll*); bool on_key_press_event (GdkEventKey*); - bool on_key_release_event (GdkEventKey*); - bool on_enter_notify_event (GdkEventCrossing* ev); - bool on_leave_notify_event (GdkEventCrossing* ev); private: - boost::shared_ptr _panner; + PannerEditor* editor (); + boost::shared_ptr _panner_shell; + boost::shared_ptr position_control; - PBD::ScopedConnectionList connections; - bool dragging; + PBD::ScopedConnectionList panvalue_connections; + PBD::ScopedConnectionList panshell_connections; int drag_start_x; int last_drag_x; double accumulated_delta; bool detented; - Gtk::Window* drag_data_window; - Gtk::Label* drag_data_label; - BindingProxy position_binder; - void value_change (); - void set_drag_data (); + void set_tooltip (); struct ColorScheme { uint32_t outline; @@ -80,10 +80,17 @@ class MonoPanner : public Gtk::DrawingArea uint32_t pos_fill; }; + bool _dragging; + + static Pango::AttrList panner_font_attributes; + static bool have_font; + static ColorScheme colors; static void set_colors (); static bool have_colors; - void color_handler (); + void color_handler (); + void bypass_handler (); + void pannable_handler (); }; #endif /* __gtk_ardour_mono_panner_h__ */