use running_from_source_tree()
[ardour.git] / gtk2_ardour / editor_drag.h
index cd1b0c2474446934222a3f5cf9b3b41623fb6276..196bd3712379b65d8eb07758d22a01fbfd691ba1 100644 (file)
@@ -25,6 +25,7 @@
 #include <gdk/gdk.h>
 #include <stdint.h>
 
+#include "ardour/tempo.h"
 #include "ardour/types.h"
 
 #include "canvas/types.h"
@@ -36,6 +37,7 @@
 
 namespace ARDOUR {
        class Location;
+       class TempoSection;
 }
 
 namespace ArdourCanvas {
@@ -704,7 +706,11 @@ public:
 
 private:
        MeterMarker* _marker;
+       ARDOUR::MeterSection* _real_section;
+
        bool _copy;
+       Editing::SnapType _old_snap_type;
+       Editing::SnapMode _old_snap_mode;
        XMLNode* before_state;
 };
 
@@ -724,17 +730,46 @@ public:
        }
 
        bool y_movement_matters () const {
-               return false;
+               return true;
        }
 
        void setup_pointer_frame_offset ();
 
 private:
        TempoMarker* _marker;
+       ARDOUR::TempoSection* _real_section;
+
        bool _copy;
+       bool _movable;
        XMLNode* before_state;
 };
 
+/** BBT Ruler drag */
+class BBTRulerDrag : public Drag
+{
+public:
+       BBTRulerDrag (Editor *, ArdourCanvas::Item *);
+
+       void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
+       void motion (GdkEvent *, bool);
+       void finished (GdkEvent *, bool);
+       void aborted (bool);
+
+       bool allow_vertical_autoscroll () const {
+               return false;
+       }
+
+       bool y_movement_matters () const {
+               return false;
+       }
+
+       void setup_pointer_frame_offset ();
+
+private:
+       double _pulse;
+       ARDOUR::TempoSection* _tempo;
+       XMLNode* before_state;
+};
 
 /** Drag of the playhead cursor */
 class CursorDrag : public Drag