X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner_interface.h;h=07d14abf03923dae37ad20a74377be894fcc3669;hb=2dc3c8b3650266eba09cf7fe53c39c6728d4d5b6;hp=5cf33951ba8085197f4361c3f8bcd9f66a236fca;hpb=6e79521e8b7709458b8ee093e2d0dc6440ffea2c;p=ardour.git diff --git a/gtk2_ardour/panner_interface.h b/gtk2_ardour/panner_interface.h index 5cf33951ba..07d14abf03 100644 --- a/gtk2_ardour/panner_interface.h +++ b/gtk2_ardour/panner_interface.h @@ -23,30 +23,69 @@ #include #include #include +#include "gtkmm2ext/persistent_tooltip.h" + +#include "pbd/destructible.h" + +namespace PBD { + class Controllable; +} namespace ARDOUR { class Panner; } +class PannerEditor; + +class PannerPersistentTooltip : public Gtkmm2ext::PersistentTooltip +{ +public: + PannerPersistentTooltip (Gtk::Widget* w); + + void target_start_drag (); + void target_stop_drag (); + + bool dragging () const; + +private: + bool _dragging; +}; + + /** Parent class for some panner UI classes that contains some common code */ -class PannerInterface : public Gtk::DrawingArea +class PannerInterface : public Gtk::DrawingArea, public PBD::Destructible { public: PannerInterface (boost::shared_ptr); virtual ~PannerInterface (); + boost::shared_ptr panner () { + return _panner; + } + + void edit (); + void set_send_drawing_mode (bool); + protected: - virtual void set_drag_data () = 0; - - void show_drag_data_window (); + virtual void set_tooltip () = 0; + virtual boost::weak_ptr proxy_controllable () const = 0; + void value_change (); - bool on_enter_notify_event (GdkEventCrossing *); - bool on_leave_notify_event (GdkEventCrossing *); + + bool on_enter_notify_event (GdkEventCrossing *); + bool on_leave_notify_event (GdkEventCrossing *); bool on_key_release_event (GdkEventKey *); + bool on_button_press_event (GdkEventButton*); + bool on_button_release_event (GdkEventButton*); boost::shared_ptr _panner; - Gtk::Window* _drag_data_window; - Gtk::Label* _drag_data_label; + PannerPersistentTooltip _tooltip; + + bool _send_mode; + +private: + virtual PannerEditor* editor () = 0; + PannerEditor* _editor; }; #endif