Move control surface options into RC prefs editor. Remove Options menu.
[ardour.git] / gtk2_ardour / draginfo.h
index 8b13961532096888568b44beb981caca02bd81fa..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;
@@ -39,19 +41,25 @@ struct DragInfo {
     ArdourCanvas::Item* item;
     ItemType            item_type;
     void* data;
-    nframes_t last_frame_position;
-    int32_t pointer_frame_offset;
-    nframes_t grab_frame;
-    nframes_t last_pointer_frame;
-    nframes_t current_pointer_frame;
+    nframes64_t last_frame_position;
+    nframes64_t pointer_frame_offset;
+    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 {