Apply patch from mantis 2761 from tinram to add padding and make a string translatable.
[ardour.git] / gtk2_ardour / editor_drag.h
index 370cc566436aef6ebd888114c8acf61f3f920079..97e503f0d680de2829eb4fb3609cfbaf85e6bea3 100644 (file)
@@ -110,11 +110,12 @@ public:
                return false;
        }
 
-       /** Called when a subclass should update the editor's selection following a drag */
-       virtual void update_selection () {}
+       virtual bool allow_vertical_autoscroll () const {
+               return true;
+       }
 
 protected:
-       nframes64_t adjusted_current_frame () const;
+       nframes64_t adjusted_current_frame (GdkEvent *) const;
        
        Editor* _editor; ///< our editor
        ArdourCanvas::Item* _item; ///< our item
@@ -151,8 +152,6 @@ public:
        RegionDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &);
        virtual ~RegionDrag () {}
 
-       void update_selection ();
-
 protected:
        
        RegionView* _primary; ///< the view that was clicked on (or whatever) to start the drag
@@ -339,6 +338,14 @@ public:
        void motion (GdkEvent *, bool);
        void finished (GdkEvent *, bool);
 
+       bool active (Editing::MouseMode) {
+               return true;
+       }
+
+       bool allow_vertical_autoscroll () const {
+               return false;
+       }
+
 private:
        EditorCursor* _cursor; ///< cursor being dragged
        bool _stop; ///< true to stop the transport on starting the drag, otherwise false
@@ -397,6 +404,8 @@ public:
        void motion (GdkEvent *, bool);
        void finished (GdkEvent *, bool);
 
+       bool active (Editing::MouseMode m);
+
 private:
        
        ControlPoint* _point;
@@ -414,6 +423,10 @@ public:
        void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
        void motion (GdkEvent *, bool);
        void finished (GdkEvent *, bool);
+       
+       bool active (Editing::MouseMode) {
+               return true;
+       }
 
 private:
 
@@ -445,7 +458,18 @@ public:
        void finished (GdkEvent *, bool);
 };
 
-/** Drag in range selection mode */
+/** Scrub drag in audition mode */
+class ScrubDrag : public Drag
+{
+public:
+       ScrubDrag (Editor *e, ArdourCanvas::Item *i) : Drag (e, i) {}
+       
+       void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
+       void motion (GdkEvent *, bool);
+       void finished (GdkEvent *, bool);
+};
+
+/** Drag in range select(gc_owner.get()) moAutomatable */
 class SelectionDrag : public Drag
 {
 public: