X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner_interface.h;h=eb2ee4334ed0f135f536d82cfe8ed59e2734b4e2;hb=bd8ab472f58492a67be06e462eb6f1c828f01f59;hp=8dd19d1a143bd91adb20702efd0402906cd0e95f;hpb=46e448252f74ce35f37a1a41bb3ebe0f0312cd5d;p=ardour.git diff --git a/gtk2_ardour/panner_interface.h b/gtk2_ardour/panner_interface.h index 8dd19d1a14..eb2ee4334e 100644 --- a/gtk2_ardour/panner_interface.h +++ b/gtk2_ardour/panner_interface.h @@ -23,6 +23,7 @@ #include #include #include +#include "gtkmm2ext/persistent_tooltip.h" #include "pbd/destructible.h" namespace ARDOUR { @@ -31,6 +32,21 @@ namespace ARDOUR { 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 +59,25 @@ public: } void edit (); + void set_send_drawing_mode (bool); protected: - virtual void set_drag_data () = 0; + virtual void set_tooltip () = 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; };