X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner_interface.h;h=07d14abf03923dae37ad20a74377be894fcc3669;hb=27d2f4950f9eb658f7608be2b4c05eb7ebbf8d84;hp=8dd19d1a143bd91adb20702efd0402906cd0e95f;hpb=46e448252f74ce35f37a1a41bb3ebe0f0312cd5d;p=ardour.git diff --git a/gtk2_ardour/panner_interface.h b/gtk2_ardour/panner_interface.h index 8dd19d1a14..07d14abf03 100644 --- a/gtk2_ardour/panner_interface.h +++ b/gtk2_ardour/panner_interface.h @@ -23,14 +23,35 @@ #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, public PBD::Destructible { @@ -43,29 +64,26 @@ public: } void edit (); + void set_send_drawing_mode (bool); protected: - virtual void set_drag_data () = 0; + virtual void set_tooltip () = 0; + virtual boost::weak_ptr proxy_controllable () const = 0; - void show_drag_data_window (); - void hide_drag_data_window (); 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; - bool _dragging; + PannerPersistentTooltip _tooltip; -private: - bool drag_data_timeout (); - sigc::connection _drag_data_timeout; + bool _send_mode; +private: virtual PannerEditor* editor () = 0; PannerEditor* _editor; };