ardour
editor_drag.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2009 Paul Davis
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 #ifndef __gtk2_ardour_editor_drag_h_
21 #define __gtk2_ardour_editor_drag_h_
22 
23 #include <list>
24 
25 #include <gdk/gdk.h>
26 #include <stdint.h>
27 
28 #include "ardour/types.h"
29 
30 #include "cursor_context.h"
31 #include "editor_items.h"
32 #include "mouse_cursors.h"
33 
34 namespace ARDOUR {
35  class Location;
36 }
37 
38 namespace PBD {
39  class StatefulDiffCommand;
40 }
41 
42 class PatchChange;
43 class Editor;
44 class EditorCursor;
45 class TimeAxisView;
46 class MidiTimeAxisView;
47 class Drag;
48 class NoteBase;
49 
52 {
53 public:
54 
55  DragManager (Editor* e);
56  ~DragManager ();
57 
58  bool motion_handler (GdkEvent *, bool);
59 
60  void abort ();
61  void add (Drag *);
62  void set (Drag *, GdkEvent *, Gdk::Cursor* c = MouseCursors::invalid_cursor());
63  void start_grab (GdkEvent *, Gdk::Cursor* c = MouseCursors::invalid_cursor());
64  bool end_grab (GdkEvent *);
65  bool have_item (ArdourCanvas::Item *) const;
66 
67  void mark_double_click ();
68 
70  bool ending () const {
71  return _ending;
72  }
73 
74  bool active () const {
75  return !_drags.empty ();
76  }
77 
79  double current_pointer_x () const {
80  return _current_pointer_x;
81  }
82 
84  double current_pointer_y () const {
85  return _current_pointer_y;
86  }
87 
91  }
92 
93 private:
95  std::list<Drag*> _drags;
96  bool _ending;
101 };
102 
104 class Drag
105 {
106 public:
107  Drag (Editor *, ArdourCanvas::Item *, bool trackview_only = true);
108  virtual ~Drag () {}
109 
111  _drags = m;
112  }
113 
115  ArdourCanvas::Item* item () const {
116  return _item;
117  }
118 
119  void swap_grab (ArdourCanvas::Item *, Gdk::Cursor *, uint32_t);
120  bool motion_handler (GdkEvent*, bool);
121  void abort ();
122 
123  ARDOUR::framepos_t adjusted_frame (ARDOUR::framepos_t, GdkEvent const *, bool snap = true) const;
124  ARDOUR::framepos_t adjusted_current_frame (GdkEvent const *, bool snap = true) const;
125 
126  bool was_double_click() const { return _was_double_click; }
127  void set_double_click (bool yn) { _was_double_click = yn; }
128 
133  virtual void start_grab (GdkEvent* e, Gdk::Cursor* c = 0);
134 
135  virtual bool end_grab (GdkEvent *);
136 
141  virtual void motion (GdkEvent* e, bool f) = 0;
142 
147  virtual void finished (GdkEvent* e, bool m) = 0;
148 
153  virtual void aborted (bool m) = 0;
154 
158  virtual bool active (Editing::MouseMode m) {
159  return true;
160  }
161 
163  virtual std::pair<ARDOUR::framecnt_t, int> move_threshold () const {
164  return std::make_pair (1, 1);
165  }
166 
167  virtual bool allow_vertical_autoscroll () const {
168  return true;
169  }
170 
172  virtual bool x_movement_matters () const {
173  return true;
174  }
175 
177  virtual bool y_movement_matters () const {
178  return true;
179  }
180 
181  bool initially_vertical() const {
182  return _initially_vertical;
183  }
184 
186  virtual void setup_pointer_frame_offset () {
188  }
189 
190 protected:
191 
192  double grab_x () const {
193  return _grab_x;
194  }
195 
196  double grab_y () const {
197  return _grab_y;
198  }
199 
201  return _raw_grab_frame;
202  }
203 
205  return _grab_frame;
206  }
207 
208  double last_pointer_x () const {
209  return _last_pointer_x;
210  }
211 
212  double last_pointer_y () const {
213  return _last_pointer_y;
214  }
215 
216  double last_pointer_frame () const {
217  return _last_pointer_frame;
218  }
219 
220  double current_pointer_x () const;
221  double current_pointer_y () const;
222 
224 
226  void show_verbose_cursor_duration (framepos_t, framepos_t, double xoffset = 0);
227  void show_verbose_cursor_text (std::string const &);
228 
231  ArdourCanvas::Item* _item;
232 
237 
238 private:
244  double _grab_x;
245  double _grab_y;
252 };
253 
254 class RegionDrag;
255 
258 {
259 public:
260  DraggingView (RegionView *, RegionDrag *, TimeAxisView* original_tav);
261 
263 
271  double layer;
272  double initial_y;
278 };
279 
281 class RegionDrag : public Drag, public sigc::trackable
282 {
283 public:
284  RegionDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &);
285  virtual ~RegionDrag () {}
286 
287 protected:
288 
290  std::list<DraggingView> _views;
291 
293  std::vector<TimeAxisView*> _time_axis_views;
294  int find_time_axis_view (TimeAxisView *) const;
295  int apply_track_delta (const int start, const int delta, const int skip, const bool distance_only = false) const;
296 
299  uint32_t _ntracks;
300 
301  friend class DraggingView;
302 
303 private:
304 
305  void region_going_away (RegionView *);
307 };
308 
309 
312 {
313 public:
314 
315  RegionMotionDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &, bool);
316  virtual ~RegionMotionDrag () {}
317 
318  virtual void start_grab (GdkEvent *, Gdk::Cursor *);
319  virtual void motion (GdkEvent *, bool);
320  virtual void finished (GdkEvent *, bool);
321  virtual void aborted (bool);
322 
326  virtual bool regions_came_from_canvas () const = 0;
327 
328 protected:
329 
330  double compute_x_delta (GdkEvent const *, ARDOUR::framepos_t *);
331  virtual bool y_movement_allowed (int, double, int skip_invisible = 0) const;
332 
333  bool _brushing;
339 
340 private:
341  uint32_t _ndropzone;
342  uint32_t _pdropzone;
343  uint32_t _ddropzone;
344 };
345 
346 
351 {
352 public:
353  RegionMoveDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &, bool, bool);
354  virtual ~RegionMoveDrag () {}
355 
356  void motion (GdkEvent *, bool);
357  void finished (GdkEvent *, bool);
358  void aborted (bool);
359 
360  bool regions_came_from_canvas () const {
361  return true;
362  }
363 
364  std::pair<ARDOUR::framecnt_t, int> move_threshold () const {
365  return std::make_pair (4, 4);
366  }
367 
369 
370 protected:
371  typedef std::set<boost::shared_ptr<ARDOUR::Playlist> > PlaylistSet;
372  void add_stateful_diff_commands_for_playlists (PlaylistSet const &);
373 
374 private:
375  void finished_no_copy (
376  bool const,
377  bool const,
378  ARDOUR::framecnt_t const
379  );
380 
381  void finished_copy (
382  bool const,
383  bool const,
384  ARDOUR::framecnt_t const
385  );
386 
392  PlaylistSet&
393  );
394 
398  PlaylistSet& modified_playlists
399  );
400 
401 
404 
405  bool _copy;
407 };
408 
411 {
412 public:
414 
415  void finished (GdkEvent *, bool);
416  void aborted (bool);
417 
418  bool regions_came_from_canvas () const {
419  return false;
420  }
421 };
422 
425 {
426 public:
427  RegionSpliceDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &);
428 
429  void motion (GdkEvent *, bool);
430  void finished (GdkEvent *, bool);
431  void aborted (bool);
432 };
433 
437 {
438 public:
439  RegionRippleDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &);
440  ~RegionRippleDrag () { delete exclude; }
441 
442  void motion (GdkEvent *, bool);
443  void finished (GdkEvent *, bool);
444  void aborted (bool);
445 protected:
446  bool y_movement_allowed (int delta_track, double delta_layer, int skip_invisible = 0) const;
447 
448 private:
449  TimeAxisView *prev_tav; // where regions were most recently dragged from
450  TimeAxisView *orig_tav; // where drag started
454  bool allow_moves_across_tracks; // only if all selected regions are on one track
456  void add_all_after_to_views (TimeAxisView *tav, framepos_t where, const RegionSelection &exclude, bool drag_in_progress);
457  void remove_unselected_from_views (framecnt_t amount, bool move_regions);
458 
459 };
460 
462 class RegionCutDrag : public Drag
463 {
464  public:
465  RegionCutDrag (Editor*, ArdourCanvas::Item*, framepos_t);
466  ~RegionCutDrag ();
467 
468  void motion (GdkEvent*, bool);
469  void finished (GdkEvent*, bool);
470  void aborted (bool);
471 
472  private:
474 };
475 
477 class RegionCreateDrag : public Drag
478 {
479 public:
480  RegionCreateDrag (Editor *, ArdourCanvas::Item *, TimeAxisView *);
481 
482  void motion (GdkEvent *, bool);
483  void finished (GdkEvent *, bool);
484  void aborted (bool);
485 
486 private:
489 };
490 
492 class NoteResizeDrag : public Drag
493 {
494 public:
495  NoteResizeDrag (Editor *, ArdourCanvas::Item *);
496 
497  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
498  void motion (GdkEvent *, bool);
499  void finished (GdkEvent *, bool);
500  void aborted (bool);
501 
502 private:
504  bool relative;
505  bool at_front;
506 };
507 
509 class NoteDrag : public Drag
510 {
511  public:
512  NoteDrag (Editor*, ArdourCanvas::Item*);
513 
514  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
515  void motion (GdkEvent *, bool);
516  void finished (GdkEvent *, bool);
517  void aborted (bool);
518 
519  private:
520 
522  int8_t total_dy () const;
523 
529  double _note_height;
530 };
531 
532 class NoteCreateDrag : public Drag
533 {
534 public:
535  NoteCreateDrag (Editor *, ArdourCanvas::Item *, MidiRegionView *);
536  ~NoteCreateDrag ();
537 
538  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
539  void motion (GdkEvent *, bool);
540  void finished (GdkEvent *, bool);
541  void aborted (bool);
542 
544  return mode == Editing::MouseDraw;
545  }
546 
547  bool y_movement_matters () const {
548  return false;
549  }
550 
551 private:
552  double y_to_region (double) const;
554 
556  ArdourCanvas::Rectangle* _drag_rect;
558 };
559 
561 class PatchChangeDrag : public Drag
562 {
563 public:
565 
566  void motion (GdkEvent *, bool);
567  void finished (GdkEvent *, bool);
568  void aborted (bool);
569 
570  bool y_movement_matters () const {
571  return false;
572  }
573 
575 
576 private:
580 };
581 
584 {
585 public:
587 
590 };
591 
593 class VideoTimeLineDrag : public Drag
594 {
595 public:
596  VideoTimeLineDrag (Editor *e, ArdourCanvas::Item *i);
597 
598  void motion (GdkEvent *, bool);
599  void finished (GdkEvent *, bool);
600  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
601 
602  bool y_movement_matters () const {
603  return false;
604  }
605 
607  return false;
608  }
609 
610  void aborted (bool);
611 
612 protected:
613  std::list<AVDraggingView> _views;
614 
615 private:
618 };
619 
621 class TrimDrag : public RegionDrag
622 {
623 public:
624  enum Operation {
628  };
629 
630  TrimDrag (Editor *, ArdourCanvas::Item *, RegionView*, std::list<RegionView*> const &, bool preserve_fade_anchor = false);
631 
632  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
633  void motion (GdkEvent *, bool);
634  void finished (GdkEvent *, bool);
635  void aborted (bool);
636 
637  bool y_movement_matters () const {
638  return false;
639  }
640 
642 
643 private:
644 
646 
649 };
650 
652 class MeterMarkerDrag : public Drag
653 {
654 public:
655  MeterMarkerDrag (Editor *, ArdourCanvas::Item *, bool);
656 
657  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
658  void motion (GdkEvent *, bool);
659  void finished (GdkEvent *, bool);
660  void aborted (bool);
661 
663  return false;
664  }
665 
666  bool y_movement_matters () const {
667  return false;
668  }
669 
671 
672 private:
674  bool _copy;
676 };
677 
679 class TempoMarkerDrag : public Drag
680 {
681 public:
682  TempoMarkerDrag (Editor *, ArdourCanvas::Item *, bool);
683 
684  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
685  void motion (GdkEvent *, bool);
686  void finished (GdkEvent *, bool);
687  void aborted (bool);
688 
690  return false;
691  }
692 
693  bool y_movement_matters () const {
694  return false;
695  }
696 
698 
699 private:
701  bool _copy;
703 };
704 
705 
707 class CursorDrag : public Drag
708 {
709 public:
710  CursorDrag (Editor *, EditorCursor&, bool);
711 
712  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
713  void motion (GdkEvent *, bool);
714  void finished (GdkEvent *, bool);
715  void aborted (bool);
716 
718  return false;
719  }
720 
721  bool y_movement_matters () const {
722  return true;
723  }
724 
725 private:
726  void fake_locate (framepos_t);
727 
729  bool _stop;
730  double _grab_zoom;
731 };
732 
734 class FadeInDrag : public RegionDrag
735 {
736 public:
737  FadeInDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &);
738 
739  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
740  void motion (GdkEvent *, bool);
741  void finished (GdkEvent *, bool);
742  void aborted (bool);
743 
744  bool y_movement_matters () const {
745  return false;
746  }
747 
749 };
750 
752 class FadeOutDrag : public RegionDrag
753 {
754 public:
755  FadeOutDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &);
756 
757  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
758  void motion (GdkEvent *, bool);
759  void finished (GdkEvent *, bool);
760  void aborted (bool);
761 
762  bool y_movement_matters () const {
763  return false;
764  }
765 
767 };
768 
770 class MarkerDrag : public Drag
771 {
772 public:
773  MarkerDrag (Editor *, ArdourCanvas::Item *);
774  ~MarkerDrag ();
775 
776  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
777  void motion (GdkEvent *, bool);
778  void finished (GdkEvent *, bool);
779  void aborted (bool);
780 
782  return false;
783  }
784 
785  bool y_movement_matters () const {
786  return false;
787  }
788 
790 
791 private:
792  void update_item (ARDOUR::Location *);
793 
795 
798  std::vector<Marker*> markers;
799  bool move_both;
801  };
802 
803  typedef std::list<CopiedLocationMarkerInfo> CopiedLocationInfo;
804  CopiedLocationInfo _copied_locations;
805  ArdourCanvas::Points _points;
806 };
807 
809 class ControlPointDrag : public Drag
810 {
811 public:
812  ControlPointDrag (Editor *, ArdourCanvas::Item *);
813 
814  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
815  void motion (GdkEvent *, bool);
816  void finished (GdkEvent *, bool);
817  void aborted (bool);
818 
819  bool active (Editing::MouseMode m);
820 
821 private:
822 
828  bool _pushing;
829  uint32_t _final_index;
830  static double _zero_gain_fraction;
831 };
832 
834 class LineDrag : public Drag
835 {
836 public:
837  LineDrag (Editor *e, ArdourCanvas::Item *i);
838 
839  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
840  void motion (GdkEvent *, bool);
841  void finished (GdkEvent *, bool);
842  void aborted (bool);
843 
844 private:
845 
850 };
851 
853 class FeatureLineDrag : public Drag
854 {
855 public:
856  FeatureLineDrag (Editor *e, ArdourCanvas::Item *i);
857 
858  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
859  void motion (GdkEvent *, bool);
860  void finished (GdkEvent *, bool);
861  void aborted (bool);
862 
863 private:
864 
865  ArdourCanvas::Line* _line;
867 
870 
871  float _before;
872  uint32_t _max_x;
873 };
874 
877 {
878 public:
879  RubberbandSelectDrag (Editor *, ArdourCanvas::Item *);
880 
881  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
882  void motion (GdkEvent *, bool);
883  void finished (GdkEvent *, bool);
884  void aborted (bool);
885 
886  std::pair<ARDOUR::framecnt_t, int> move_threshold () const {
887  return std::make_pair (8, 1);
888  }
889 
890  void do_select_things (GdkEvent *, bool);
891 
900  virtual void select_things (int button_state, framepos_t x1, framepos_t x2, double y1, double y2, bool drag_in_progress) = 0;
901 
902  virtual void deselect_things () = 0;
903 
904  protected:
906 };
907 
910 {
911 public:
912  EditorRubberbandSelectDrag (Editor *, ArdourCanvas::Item *);
913 
914  void select_things (int, framepos_t, framepos_t, double, double, bool);
915  void deselect_things ();
916 };
917 
920 {
921 public:
923 
924  void select_things (int, framepos_t, framepos_t, double, double, bool);
925  void deselect_things ();
926 
927 private:
929 };
930 
933 {
934 public:
936 
937  void select_things (int, framepos_t, framepos_t, double, double, bool);
938  void deselect_things ();
939 
940 private:
942 };
943 
945 class TimeFXDrag : public RegionDrag
946 {
947 public:
948  TimeFXDrag (Editor *, ArdourCanvas::Item *, RegionView *, std::list<RegionView*> const &);
949 
950  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
951  void motion (GdkEvent *, bool);
952  void finished (GdkEvent *, bool);
953  void aborted (bool);
954 };
955 
957 class ScrubDrag : public Drag
958 {
959 public:
960  ScrubDrag (Editor *, ArdourCanvas::Item *);
961 
962  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
963  void motion (GdkEvent *, bool);
964  void finished (GdkEvent *, bool);
965  void aborted (bool);
966 };
967 
969 class SelectionDrag : public Drag
970 {
971 public:
972  enum Operation {
978  };
979 
980  SelectionDrag (Editor *, ArdourCanvas::Item *, Operation);
981 
982  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
983  void motion (GdkEvent *, bool);
984  void finished (GdkEvent *, bool);
985  void aborted (bool);
986 
988 
989 private:
991  bool _add;
992  std::list<TimeAxisView*> _added_time_axes;
996 };
997 
999 class RangeMarkerBarDrag : public Drag
1000 {
1001 public:
1002  enum Operation {
1007  };
1008 
1009  RangeMarkerBarDrag (Editor *, ArdourCanvas::Item *, Operation);
1011 
1012  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
1013  void motion (GdkEvent *, bool);
1014  void finished (GdkEvent *, bool);
1015  void aborted (bool);
1016 
1018  return false;
1019  }
1020 
1021  bool y_movement_matters () const {
1022  return false;
1023  }
1024 
1025 private:
1026  void update_item (ARDOUR::Location *);
1027 
1029  ArdourCanvas::Rectangle* _drag_rect;
1030  bool _copy;
1031 };
1032 
1034 class MouseZoomDrag : public Drag
1035 {
1036 public:
1037  MouseZoomDrag (Editor *, ArdourCanvas::Item *);
1038 
1039  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
1040  void motion (GdkEvent *, bool);
1041  void finished (GdkEvent *, bool);
1042  void aborted (bool);
1043 
1044  std::pair<ARDOUR::framecnt_t, int> move_threshold () const {
1045  return std::make_pair (4, 4);
1046  }
1047 
1048 private:
1050 };
1051 
1056 {
1057 public:
1058  AutomationRangeDrag (Editor *, AutomationTimeAxisView *, std::list<ARDOUR::AudioRange> const &);
1059  AutomationRangeDrag (Editor *, RegionView *, std::list<ARDOUR::AudioRange> const &);
1060 
1061  void start_grab (GdkEvent *, Gdk::Cursor* c = 0);
1062  void motion (GdkEvent *, bool);
1063  void finished (GdkEvent *, bool);
1064  void aborted (bool);
1065 
1066  bool x_movement_matters () const {
1067  return false;
1068  }
1069 
1070 private:
1071  void setup (std::list<boost::shared_ptr<AutomationLine> > const &);
1072  double y_fraction (boost::shared_ptr<AutomationLine>, double global_y_position) const;
1073  double value (boost::shared_ptr<ARDOUR::AutomationList> list, double x) const;
1074 
1075  std::list<ARDOUR::AudioRange> _ranges;
1076 
1078  struct Line {
1080  std::list<ControlPoint*> points;
1081  std::pair<ARDOUR::framepos_t, ARDOUR::framepos_t> range;
1084  };
1085 
1086  std::list<Line> _lines;
1087  double _y_origin;
1090 };
1091 
1094 class CrossfadeEdgeDrag : public Drag
1095 {
1096  public:
1097  CrossfadeEdgeDrag (Editor*, AudioRegionView*, ArdourCanvas::Item*, bool start);
1098 
1099  void start_grab (GdkEvent*, Gdk::Cursor* c = 0);
1100  void motion (GdkEvent*, bool);
1101  void finished (GdkEvent*, bool);
1102  void aborted (bool);
1103 
1104  bool y_movement_matters () const {
1105  return false;
1106  }
1107 
1108  virtual std::pair<ARDOUR::framecnt_t, int> move_threshold () const {
1109  return std::make_pair (4, 4);
1110  }
1111 
1112  private:
1114  bool start;
1115 };
1116 
1117 #endif /* __gtk2_ardour_editor_drag_h_ */
1118 
std::pair< ARDOUR::framecnt_t, int > move_threshold() const
Definition: editor_drag.h:886
bool y_movement_matters() const
Definition: editor_drag.h:693
std::pair< ARDOUR::framecnt_t, int > move_threshold() const
Definition: editor_drag.h:364
bool y_movement_matters() const
Definition: editor_drag.h:1021
bool active() const
Definition: editor_drag.h:74
MidiRegionView * _region_view
Definition: editor_drag.h:577
void aborted(bool)
void setup_pointer_frame_offset()
bool allow_vertical_autoscroll() const
Definition: editor_drag.h:717
boost::shared_ptr< AutomationLine > line
the line
Definition: editor_drag.h:1079
virtual void setup_pointer_frame_offset()
Definition: editor_drag.h:186
framepos_t end_at_start
Definition: editor_drag.h:995
double _cumulative_x_drag
Definition: editor_drag.h:826
bool active(Editing::MouseMode mode)
Definition: editor_drag.h:543
bool y_movement_matters() const
Definition: editor_drag.h:547
CopiedLocationMarkerInfo(ARDOUR::Location *l, Marker *m)
void motion(GdkEvent *, bool)
double initial_y
the initial y position of the view before any reparenting
Definition: editor_drag.h:272
void finished(GdkEvent *, bool)
bool y_movement_matters() const
Definition: editor_drag.h:666
MidiRegionView * _region
Definition: editor_drag.h:524
CopiedLocationInfo _copied_locations
Definition: editor_drag.h:804
void setup_pointer_frame_offset()
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void finished(GdkEvent *, bool)
virtual bool active(Editing::MouseMode m)
Definition: editor_drag.h:158
uint32_t _final_index
Definition: editor_drag.h:829
int _visible_y_high
Definition: editor_drag.h:298
RegionMoveDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, bool, bool)
bool allow_vertical_autoscroll() const
Definition: editor_drag.h:1017
std::list< Line > _lines
Definition: editor_drag.h:1086
void motion(GdkEvent *, bool)
void aborted(bool)
void setup_pointer_frame_offset()
SelectionDrag(Editor *, ArdourCanvas::Item *, Operation)
void motion(GdkEvent *, bool)
PatchChange * _patch_change
Definition: editor_drag.h:578
bool initially_vertical() const
Definition: editor_drag.h:181
static Gdk::Cursor * invalid_cursor()
Definition: mouse_cursors.h:84
uint32_t _ddropzone
Definition: editor_drag.h:343
void set_double_click(bool yn)
Definition: editor_drag.h:127
MouseMode
Definition: editing.h:91
bool y_movement_matters() const
Definition: editor_drag.h:785
MidiTimeAxisView * _view
Definition: editor_drag.h:487
framepos_t _note[2]
Definition: editor_drag.h:557
ControlPoint * _point
Definition: editor_drag.h:823
CursorDrag(Editor *, EditorCursor &, bool)
RangeMarkerBarDrag(Editor *, ArdourCanvas::Item *, Operation)
bool _was_rolling
true if the session was rolling before the drag started, otherwise false
Definition: editor_drag.h:236
ARDOUR::framepos_t adjusted_current_frame(GdkEvent const *, bool snap=true) const
Definition: editor_drag.cc:341
void aborted(bool)
virtual ~RegionDrag()
Definition: editor_drag.h:285
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
bool _preserve_fade_anchor
Definition: editor_drag.h:647
std::list< ARDOUR::AudioRange > _ranges
Definition: editor_drag.h:1075
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void setup_pointer_frame_offset()
void update_item(ARDOUR::Location *)
void finished(GdkEvent *, bool)
RouteTimeAxisView * create_destination_time_axis(boost::shared_ptr< ARDOUR::Region >, TimeAxisView *original)
EditorCursor & _cursor
Definition: editor_drag.h:728
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
NoteDrag(Editor *, ArdourCanvas::Item *)
void add(Drag *)
Definition: editor_drag.cc:117
void setup(std::list< boost::shared_ptr< AutomationLine > > const &)
int time_axis_view
Definition: editor_drag.h:266
uint32_t _ndropzone
Definition: editor_drag.h:341
ArdourCanvas::Line * _line
Definition: editor_drag.h:865
bool y_movement_matters() const
Definition: editor_drag.h:1104
MidiVerticalSelectDrag(Editor *, MidiRegionView *)
bool allow_vertical_autoscroll() const
Definition: editor_drag.h:606
void show_verbose_cursor_time(framepos_t)
Definition: editor_drag.cc:441
framecnt_t grid_frames(framepos_t) const
void motion(GdkEvent *, bool)
double compute_x_delta(GdkEvent const *, ARDOUR::framepos_t *)
Definition: editor_drag.cc:586
bool _was_selected
Definition: editor_drag.h:528
TimeAxisView * prev_tav
Definition: editor_drag.h:449
bool ending() const
Definition: editor_drag.h:70
RegionMotionDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, bool)
Definition: editor_drag.cc:552
void update_item(ARDOUR::Location *)
void finished(GdkEvent *, bool)
NoteResizeDrag(Editor *, ArdourCanvas::Item *)
void set_manager(DragManager *m)
Definition: editor_drag.h:110
double _last_pointer_layer
Definition: editor_drag.h:337
void aborted(bool)
std::set< boost::shared_ptr< ARDOUR::Playlist > > PlaylistSet
Definition: editor_drag.h:371
bool allow_moves_across_tracks
Definition: editor_drag.h:454
double _region_view_grab_x
Definition: editor_drag.h:868
double current_pointer_x() const
Definition: editor_drag.cc:347
bool _initially_vertical
true if after move threshold is passed we appear to be moving vertically; undefined before that ...
Definition: editor_drag.h:242
framepos_t start_at_start
Definition: editor_drag.h:994
void aborted(bool)
void aborted(bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
virtual void start_grab(GdkEvent *e, Gdk::Cursor *c=0)
Definition: editor_drag.cc:249
virtual void aborted(bool m)=0
double value(boost::shared_ptr< ARDOUR::AutomationList > list, double x) const
MidiRegionView * _region_view
Definition: editor_drag.h:928
bool allow_vertical_autoscroll() const
Definition: editor_drag.h:781
void show_verbose_cursor_duration(framepos_t, framepos_t, double xoffset=0)
Definition: editor_drag.cc:448
Definition: marker.h:41
RegionView * view
the view
Definition: editor_drag.h:262
Marker * _marker
marker being dragged
Definition: editor_drag.h:794
tuple f
Definition: signals.py:35
RegionView * _primary
the view that was clicked on (or whatever) to start the drag
Definition: editor_drag.h:289
virtual void motion(GdkEvent *, bool)
Definition: editor_drag.cc:745
int _visible_y_low
Definition: editor_drag.h:297
double y_fraction(boost::shared_ptr< AutomationLine >, double global_y_position) const
double grab_x() const
Definition: editor_drag.h:192
double _cumulative_y_drag
Definition: editor_drag.h:827
CrossfadeEdgeDrag(Editor *, AudioRegionView *, ArdourCanvas::Item *, bool start)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void finished(GdkEvent *, bool)
XMLNode * before_state
Definition: editor_drag.h:675
void aborted(bool)
bool _starting_point_passed
true if we called move () with first_move flag, otherwise false
Definition: editor_drag.h:241
framepos_t initial_end
initial end position of the region
Definition: editor_drag.h:274
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
MouseZoomDrag(Editor *, ArdourCanvas::Item *)
PatchChangeDrag(Editor *, PatchChange *, MidiRegionView *)
bool _y_constrained
true if y motion is constrained, otherwise false
Definition: editor_drag.h:235
void collect_new_region_view(RegionView *)
void finished(GdkEvent *, bool)
double current_pointer_x() const
Definition: editor_drag.h:79
RegionView * view
the view
Definition: editor_drag.h:588
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
Definition: region.cc:63
void aborted(bool)
ARDOUR::framepos_t _current_pointer_frame
frame that the pointer is now at
Definition: editor_drag.h:99
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
XMLNode * state
the XML state node before the drag
Definition: editor_drag.h:1082
ArdourCanvas::Points _points
Definition: editor_drag.h:805
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
ScrubDrag(Editor *, ArdourCanvas::Item *)
TimeAxisView * orig_tav
Definition: editor_drag.h:450
void aborted(bool)
double _grab_y
y of the grab start position, possibly adjusted if _trackview_only is true
Definition: editor_drag.h:245
Operation _operation
Definition: editor_drag.h:1028
EditorCursor * line
Definition: editor_drag.h:473
virtual void aborted(bool)
virtual ~Drag()
Definition: editor_drag.h:108
virtual std::pair< ARDOUR::framecnt_t, int > move_threshold() const
Definition: editor_drag.h:163
virtual bool regions_came_from_canvas() const =0
void aborted(bool)
void setup_pointer_frame_offset()
std::list< TimeAxisView * > _added_time_axes
Definition: editor_drag.h:992
bool allow_vertical_autoscroll() const
Definition: editor_drag.h:662
void motion(GdkEvent *, bool)
double _cumulative_dx
Definition: editor_drag.h:526
uint32_t _max_x
Definition: editor_drag.h:872
void select_things(int, framepos_t, framepos_t, double, double, bool)
Operation _operation
Definition: editor_drag.h:645
void finished_copy(bool const, bool const, ARDOUR::framecnt_t const )
void motion(GdkEvent *, bool)
void motion(GdkEvent *, bool)
std::pair< ARDOUR::framecnt_t, int > move_threshold() const
Definition: editor_drag.h:1044
MeterMarkerDrag(Editor *, ArdourCanvas::Item *, bool)
ARDOUR::framepos_t _last_pointer_frame
adjusted_frame the last time a motion occurred
Definition: editor_drag.h:250
double y_to_region(double) const
ARDOUR::framepos_t grab_frame() const
Definition: editor_drag.h:204
void add_all_after_to_views(TimeAxisView *tav, framepos_t where, const RegionSelection &exclude, bool drag_in_progress)
uint32_t _ntracks
Definition: editor_drag.h:299
ARDOUR::frameoffset_t _max_backwards_drag
Definition: editor_drag.h:617
void motion(GdkEvent *, bool)
void aborted(bool)
double _current_pointer_x
canvas-coordinate space x of the current pointer
Definition: editor_drag.h:97
ARDOUR::framepos_t _grab_frame
adjusted_frame that the mouse was at when start_grab was called, or 0
Definition: editor_drag.h:249
std::list< DraggingView > _views
information about all views that are being dragged
Definition: editor_drag.h:290
void finished(GdkEvent *, bool)
double current_pointer_y() const
Definition: editor_drag.cc:353
void setup_pointer_frame_offset()
void finished(GdkEvent *, bool)
bool y_movement_matters() const
Definition: editor_drag.h:570
void motion(GdkEvent *, bool)
class LIBPBD_API StatefulDiffCommand
int64_t framecnt_t
Definition: types.h:76
void aborted(bool)
MidiRubberbandSelectDrag(Editor *, MidiRegionView *)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Editor * _editor
Definition: editor_drag.h:94
AVDraggingView(RegionView *)
TimeAxisView * initial_time_axis_view
Definition: editor_drag.h:277
double _cumulative_dy
Definition: editor_drag.h:527
bool _ending
true if end_grab or abort is in progress, otherwise false
Definition: editor_drag.h:96
void finished(GdkEvent *, bool)
void motion(GdkEvent *, bool)
virtual bool y_movement_matters() const
Definition: editor_drag.h:177
void motion(GdkEvent *, bool)
void finished(GdkEvent *, bool)
ARDOUR::framepos_t raw_grab_frame() const
Definition: editor_drag.h:200
bool y_movement_matters() const
Definition: editor_drag.h:721
void motion(GdkEvent *, bool)
LineDrag(Editor *e, ArdourCanvas::Item *i)
double _last_pointer_y
trackview y of the pointer last time a motion occurred
Definition: editor_drag.h:247
std::vector< TimeAxisView * > _time_axis_views
Definition: editor_drag.h:293
void motion(GdkEvent *, bool)
void finished(GdkEvent *, bool)
void aborted(bool)
void finished(GdkEvent *, bool)
virtual void start_grab(GdkEvent *, Gdk::Cursor *)
Definition: editor_drag.cc:567
bool _old_follow_playhead
state of Editor::follow_playhead() before the drags started
Definition: editor_drag.h:100
void region_going_away(RegionView *)
Definition: editor_drag.cc:521
double _grab_zoom
editor frames per unit when our grab started
Definition: editor_drag.h:730
ArdourCanvas::Rectangle * _drag_rect
Definition: editor_drag.h:1029
Definition: amp.h:29
virtual bool allow_vertical_autoscroll() const
Definition: editor_drag.h:167
double current_pointer_y() const
Definition: editor_drag.h:84
double _cumulative_y_drag
Definition: editor_drag.h:849
virtual ~RegionMotionDrag()
Definition: editor_drag.h:316
bool active(Editing::MouseMode m)
virtual std::pair< ARDOUR::framecnt_t, int > move_threshold() const
Definition: editor_drag.h:1108
double _note_height
Definition: editor_drag.h:529
RegionCutDrag(Editor *, ArdourCanvas::Item *, framepos_t)
MarkerDrag(Editor *, ArdourCanvas::Item *)
CursorContext::Handle _cursor_ctx
cursor change context
Definition: editor_drag.h:251
virtual bool y_movement_allowed(int, double, int skip_invisible=0) const
Definition: editor_drag.cc:687
boost::shared_ptr< ARDOUR::Region > add_midi_region(MidiTimeAxisView *)
Definition: editor_drag.cc:462
FadeInDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &)
void do_select_things(GdkEvent *, bool)
framepos_t initial_position
initial position of the region
Definition: editor_drag.h:273
void setup_pointer_frame_offset()
bool _time_selection_at_start
Definition: editor_drag.h:993
double last_pointer_frame() const
Definition: editor_drag.h:216
void swap_grab(ArdourCanvas::Item *, Gdk::Cursor *, uint32_t)
Definition: editor_drag.cc:234
virtual ~RegionMoveDrag()
Definition: editor_drag.h:354
bool y_movement_allowed(int delta_track, double delta_layer, int skip_invisible=0) const
framepos_t anchored_fade_length
fade_length when anchored during drag
Definition: editor_drag.h:275
boost::shared_ptr< ARDOUR::Region > _region
Definition: editor_drag.h:488
AutomationRangeDrag(Editor *, AutomationTimeAxisView *, std::list< ARDOUR::AudioRange > const &)
void abort()
Definition: editor_drag.cc:428
void motion(GdkEvent *, bool)
NoteBase * _primary
Definition: editor_drag.h:525
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Drag(Editor *, ArdourCanvas::Item *, bool trackview_only=true)
Definition: editor_drag.cc:217
void motion(GdkEvent *, bool)
void set(Drag *, GdkEvent *, Gdk::Cursor *c=MouseCursors::invalid_cursor())
Definition: editor_drag.cc:124
RegionCreateDrag(Editor *, ArdourCanvas::Item *, TimeAxisView *)
void finished(GdkEvent *, bool)
void show_verbose_cursor_text(std::string const &)
Definition: editor_drag.cc:455
bool _x_constrained
true if x motion is constrained, otherwise false
Definition: editor_drag.h:234
AutomationLine * _line
Definition: editor_drag.h:846
void aborted(bool)
uint32_t layer_t
Definition: types.h:59
void motion(GdkEvent *, bool)
double _current_pointer_y
canvas-coordinate space y of the current pointer
Definition: editor_drag.h:98
void select_things(int, framepos_t, framepos_t, double, double, bool)
double layer
Definition: editor_drag.h:271
framecnt_t prev_amount
Definition: editor_drag.h:451
double _last_pointer_x
trackview x of the pointer last time a motion occurred
Definition: editor_drag.h:246
void motion(GdkEvent *, bool)
ARDOUR::framepos_t current_pointer_frame() const
Definition: editor_drag.h:89
ArdourCanvas::Item * item() const
Definition: editor_drag.h:115
int64_t framepos_t
Definition: types.h:66
bool motion_handler(GdkEvent *, bool)
Definition: editor_drag.cc:180
virtual bool end_grab(GdkEvent *)
Definition: editor_drag.cc:310
FadeOutDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &)
virtual void finished(GdkEvent *e, bool m)=0
uint32_t _pdropzone
Definition: editor_drag.h:342
double _cumulative_dx
Definition: editor_drag.h:579
ARDOUR::framepos_t _raw_grab_frame
unsnapped frame that the mouse was at when start_grab was called, or 0
Definition: editor_drag.h:248
void motion(GdkEvent *, bool)
bool y_movement_matters() const
Definition: editor_drag.h:744
int64_t frameoffset_t
Definition: types.h:71
XMLNode * before_state
Definition: editor_drag.h:702
AudioRegionView * _arv
Definition: editor_drag.h:866
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Operation _operation
Definition: editor_drag.h:990
ARDOUR::framepos_t adjusted_frame(ARDOUR::framepos_t, GdkEvent const *, bool snap=true) const
Definition: editor_drag.cc:325
void finished(GdkEvent *, bool)
double _fixed_grab_x
Definition: editor_drag.h:824
ARDOUR::framecnt_t _pointer_frame_offset
Definition: editor_drag.h:233
std::list< boost::shared_ptr< Region > > RegionList
Definition: types.h:87
void remove_unselected_from_views(framecnt_t amount, bool move_regions)
bool regions_came_from_canvas() const
Definition: editor_drag.h:418
void start_grab(GdkEvent *, Gdk::Cursor *c=MouseCursors::invalid_cursor())
Definition: editor_drag.cc:132
bool y_movement_matters() const
Definition: editor_drag.h:637
ArdourCanvas::Item * _item
our item
Definition: editor_drag.h:231
TempoMarker * _marker
Definition: editor_drag.h:700
AudioRegionView * arv
Definition: editor_drag.h:1113
MidiRegionView * _region_view
Definition: editor_drag.h:941
void finished(GdkEvent *, bool)
double _cumulative_x_drag
Definition: editor_drag.h:869
void motion(GdkEvent *, bool)
boost::shared_ptr< ARDOUR::Playlist > initial_playlist
Definition: editor_drag.h:276
void aborted(bool)
void finished(GdkEvent *, bool)
void fake_locate(framepos_t)
void finished(GdkEvent *, bool)
void aborted(bool)
void setup_pointer_frame_offset()
std::list< AVDraggingView > _views
information about all audio that are being dragged along
Definition: editor_drag.h:613
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
double _grab_x
trackview x of the grab start position
Definition: editor_drag.h:244
FeatureLineDrag(Editor *e, ArdourCanvas::Item *i)
bool _was_double_click
true if drag initiated by a double click event
Definition: editor_drag.h:243
double _fixed_grab_y
Definition: editor_drag.h:825
bool motion_handler(GdkEvent *, bool)
Definition: editor_drag.cc:363
void motion(GdkEvent *, bool)
void add_stateful_diff_commands_for_playlists(PlaylistSet const &)
DraggingView(RegionView *, RegionDrag *, TimeAxisView *original_tav)
void finished(GdkEvent *, bool)
Definition: editor.h:134
void finished(GdkEvent *, bool)
framepos_t initial_position
initial position of the region
Definition: editor_drag.h:589
bool _jump_position_when_done
Definition: editor_drag.h:648
void motion(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
Definition: editor_drag.h:689
void finished_no_copy(bool const, bool const, ARDOUR::framecnt_t const )
bool y_movement_matters() const
Definition: editor_drag.h:602
bool have_item(ArdourCanvas::Item *) const
Definition: editor_drag.cc:207
void aborted(bool)
void abort()
Definition: editor_drag.cc:95
void remove_region_from_playlist(boost::shared_ptr< ARDOUR::Region >, boost::shared_ptr< ARDOUR::Playlist >, PlaylistSet &modified_playlists)
ARDOUR::frameoffset_t total_dx() const
void finished(GdkEvent *, bool)
bool _trackview_only
true if pointer y value should always be relative to the top of the trackview group ...
Definition: editor_drag.h:239
RegionRippleDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &)
double _fixed_grab_y
Definition: editor_drag.h:848
double original_fraction
initial y-fraction before the drag
Definition: editor_drag.h:1083
bool _stop
true to stop the transport on starting the drag, otherwise false
Definition: editor_drag.h:729
double _fixed_grab_x
Definition: editor_drag.h:847
double last_pointer_y() const
Definition: editor_drag.h:212
Definition: xml++.h:95
RegionInsertDrag(Editor *, boost::shared_ptr< ARDOUR::Region >, RouteTimeAxisView *, ARDOUR::framepos_t)
RegionSpliceDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &)
std::list< CopiedLocationMarkerInfo > CopiedLocationInfo
Definition: editor_drag.h:803
void finished(GdkEvent *, bool)
void finished(GdkEvent *, bool)
virtual void finished(GdkEvent *, bool)
framepos_t prev_position
Definition: editor_drag.h:452
virtual void select_things(int button_state, framepos_t x1, framepos_t x2, double y1, double y2, bool drag_in_progress)=0
int8_t total_dy() const
NoteCreateDrag(Editor *, ArdourCanvas::Item *, MidiRegionView *)
Definition: debug.h:30
void setup_pointer_frame_offset()
RegionView * insert_region_into_playlist(boost::shared_ptr< ARDOUR::Region >, RouteTimeAxisView *, ARDOUR::layer_t, ARDOUR::framecnt_t, PlaylistSet &)
double last_pointer_x() const
Definition: editor_drag.h:208
double _total_x_delta
Definition: editor_drag.h:335
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void aborted(bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Editor * _editor
our editor
Definition: editor_drag.h:229
void finished(GdkEvent *, bool)
bool was_double_click() const
Definition: editor_drag.h:126
void aborted(bool)
void finished(GdkEvent *, bool)
double grab_y() const
Definition: editor_drag.h:196
ARDOUR::RegionList * exclude
Definition: editor_drag.h:455
int find_time_axis_view(TimeAxisView *) const
Definition: editor_drag.cc:537
std::list< ControlPoint * > points
points to drag on the line
Definition: editor_drag.h:1080
void finished(GdkEvent *, bool)
void aborted(bool)
bool x_movement_matters() const
Definition: editor_drag.h:1066
void motion(GdkEvent *, bool)
RubberbandSelectDrag(Editor *, ArdourCanvas::Item *)
MidiRegionView * region
Definition: editor_drag.h:503
virtual void deselect_things()=0
void motion(GdkEvent *, bool)
MidiRegionView * _region_view
Definition: editor_drag.h:555
void motion(GdkEvent *, bool)
TrimDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, bool preserve_fade_anchor=false)
DragManager(Editor *e)
Definition: editor_drag.cc:81
std::pair< ARDOUR::framepos_t, ARDOUR::framepos_t > range
the range of all points on the line, in session frames
Definition: editor_drag.h:1081
void aborted(bool)
void finished(GdkEvent *, bool)
void aborted(bool)
ControlPointDrag(Editor *, ArdourCanvas::Item *)
bool _move_threshold_passed
true if the move threshold has been passed, otherwise false
Definition: editor_drag.h:240
virtual void motion(GdkEvent *e, bool f)=0
void aborted(bool)
int _last_pointer_time_axis_view
Definition: editor_drag.h:336
void motion(GdkEvent *, bool)
std::list< Drag * > _drags
Definition: editor_drag.h:95
bool regions_came_from_canvas() const
Definition: editor_drag.h:360
ARDOUR::framepos_t _last_frame_position
last position of the thing being dragged
Definition: editor_drag.h:334
ARDOUR::frameoffset_t _startdrag_video_offset
Definition: editor_drag.h:616
TempoMarkerDrag(Editor *, ArdourCanvas::Item *, bool)
TimeFXDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &)
virtual bool x_movement_matters() const
Definition: editor_drag.h:172
PBD::ScopedConnection death_connection
Definition: editor_drag.h:306
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void finished(GdkEvent *, bool)
int64_t framepos_t
std::vector< Marker * > markers
Definition: editor_drag.h:798
VideoTimeLineDrag(Editor *e, ArdourCanvas::Item *i)
void aborted(bool)
framecnt_t selection_length
Definition: editor_drag.h:453
void aborted(bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void select_things(int, framepos_t, framepos_t, double, double, bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
RegionView * _new_region_view
Definition: editor_drag.h:406
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void aborted(bool)
void mark_double_click()
Definition: editor_drag.cc:172
void motion(GdkEvent *, bool)
bool end_grab(GdkEvent *)
Definition: editor_drag.cc:149
static double _zero_gain_fraction
Definition: editor_drag.h:830
EditorRubberbandSelectDrag(Editor *, ArdourCanvas::Item *)
int apply_track_delta(const int start, const int delta, const int skip, const bool distance_only=false) const
Definition: editor_drag.cc:648
void finished(GdkEvent *, bool)
MeterMarker * _marker
Definition: editor_drag.h:673
void motion(GdkEvent *, bool)
RegionDrag(Editor *, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &)
Definition: editor_drag.cc:487
bool y_movement_matters() const
Definition: editor_drag.h:762
void motion(GdkEvent *, bool)
DragManager * _drags
Definition: editor_drag.h:230
ArdourCanvas::Rectangle * _drag_rect
Definition: editor_drag.h:556
void finished(GdkEvent *, bool)