Move control surface options into RC prefs editor. Remove Options menu.
[ardour.git] / gtk2_ardour / draginfo.h
index 0b9648a81cc399eb96baf0774f3c10a040fc6c6d..cdc0b8e9c60ffd0dc77ec7e7a65581e0827b1866 100644 (file)
 #ifndef __gtk2_ardour_drag_info_h_
 #define __gtk2_ardour_drag_info_h_
 
+#include <list>
+
 #include <gdk/gdk.h>
 #include <stdint.h>
 
 #include "canvas.h"
 #include "editor_items.h"
 
-#include <ardour/types.h>
+#include "ardour/types.h"
 
 namespace ARDOUR {
        class Location;
@@ -44,14 +46,20 @@ struct DragInfo {
     nframes64_t grab_frame;
     nframes64_t last_pointer_frame;
     nframes64_t current_pointer_frame;
+    double original_x, original_y;
     double grab_x, grab_y;
     double cumulative_x_drag;
     double cumulative_y_drag;
     double current_pointer_x;
     double current_pointer_y;
+    double last_pointer_x;
+    double last_pointer_y;
     void (Editor::*motion_callback)(ArdourCanvas::Item*, GdkEvent*);
     void (Editor::*finished_callback)(ArdourCanvas::Item*, GdkEvent*);
-    TimeAxisView* last_trackview;
+    TimeAxisView* source_trackview;
+    ARDOUR::layer_t source_layer;
+    TimeAxisView* dest_trackview;
+    ARDOUR::layer_t dest_layer;
     bool x_constrained;
     bool y_constrained;
     bool copy;
@@ -60,7 +68,9 @@ struct DragInfo {
     bool move_threshold_passed;
     bool want_move_threshold;
     bool brushing;
-    ARDOUR::Location* copied_location;
+    std::list<ARDOUR::Location*> copied_locations;
+
+    void clear_copied_locations ();
 };
 
 struct LineDragInfo {