X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fdraginfo.h;h=cdc0b8e9c60ffd0dc77ec7e7a65581e0827b1866;hb=73a6b8ef25bb90ad6c66b25b17da5962a38291d2;hp=8b9213ea406b48df1efcecd3957e7f3ac813ea24;hpb=0d2c8771a7b0f70fe4cf21cfdcfca709470787c2;p=ardour.git diff --git a/gtk2_ardour/draginfo.h b/gtk2_ardour/draginfo.h index 8b9213ea40..cdc0b8e9c6 100644 --- a/gtk2_ardour/draginfo.h +++ b/gtk2_ardour/draginfo.h @@ -1,11 +1,34 @@ +/* + Copyright (C) 2000-2007 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef __gtk2_ardour_drag_info_h_ #define __gtk2_ardour_drag_info_h_ +#include + #include #include #include "canvas.h" -#include +#include "editor_items.h" + +#include "ardour/types.h" namespace ARDOUR { class Location; @@ -16,28 +39,38 @@ class TimeAxisView; struct DragInfo { ArdourCanvas::Item* item; + ItemType item_type; void* data; - jack_nframes_t last_frame_position; - int32_t pointer_frame_offset; - jack_nframes_t grab_frame; - jack_nframes_t last_pointer_frame; - jack_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; bool was_rolling; bool first_move; - bool move_threshold_passsed; + bool move_threshold_passed; bool want_move_threshold; bool brushing; - ARDOUR::Location* copied_location; + std::list copied_locations; + + void clear_copied_locations (); }; struct LineDragInfo {