26 #ifndef __gtk2_ardour_editor_drag_h_
27 #define __gtk2_ardour_editor_drag_h_
64 class StatefulDiffCommand;
532 int32_t
const ev_state
539 int32_t
const ev_state
543 std::shared_ptr<ARDOUR::Region>,
551 std::shared_ptr<ARDOUR::Region>,
552 std::shared_ptr<ARDOUR::Playlist>,
673 return mode == Editing::MouseDraw || mode == Editing::MouseContent;
710 return mode == Editing::MouseDraw || mode == Editing::MouseContent;
1196 std::vector<ARDOUR::Location::ChangeSuspender>
lcs;
1478 void setup (std::list<std::shared_ptr<AutomationLine> >
const &);
1486 std::shared_ptr<AutomationLine>
line;
1488 std::pair<Temporal::timepos_t, Temporal::timepos_t>
range;
1584 template<
typename OrderedPo
intList,
typename OrderedPo
int>
AVDraggingView(RegionView *)
samplepos_t initial_position
initial position of the region
RegionView * view
the view
void finished(GdkEvent *, bool)
AutomationDrawDrag(EditingContext &, ArdourCanvas::Item *, ArdourCanvas::Rectangle &, bool, Temporal::TimeDomain)
std::list< ARDOUR::TimelineRange > _ranges
double y_fraction(double global_y_position) const
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
AutomationRangeDrag(EditingContext &, std::list< RegionView * > const &, std::list< ARDOUR::TimelineRange > const &, double y_origin, double y_height)
double value(std::shared_ptr< ARDOUR::AutomationList > list, Temporal::timepos_t const &x) const
void finished(GdkEvent *, bool)
void setup(std::list< std::shared_ptr< AutomationLine > > const &)
bool x_movement_matters() const
void motion(GdkEvent *, bool)
AutomationRangeDrag(EditingContext &, AutomationTimeAxisView *, float initial_value, std::list< ARDOUR::TimelineRange > const &)
void setup_pointer_offset()
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Temporal::TempoMap::WritableSharedPtr map
bool y_movement_matters() const
BBTMarkerDrag(Editor &, ArdourCanvas::Item *)
void finished(GdkEvent *, bool)
void motion(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
Temporal::MusicTimePoint const * _point
void start_grab(GdkEvent *, Gdk::Cursor *)
void finished(GdkEvent *, bool)
ArdourCanvas::Rectangle * dragging_rect
void motion(GdkEvent *, bool)
bool end_grab(GdkEvent *)
ArdourCanvas::Rect original_rect
ClipEndDrag(EditingContext &, ArdourCanvas::Rectangle &, MidiCueEditor &m)
bool end_grab(GdkEvent *)
ArdourCanvas::Rect original_rect
void motion(GdkEvent *, bool)
void finished(GdkEvent *, bool)
ClipStartDrag(EditingContext &, ArdourCanvas::Rectangle &, MidiCueEditor &m)
void start_grab(GdkEvent *, Gdk::Cursor *)
ArdourCanvas::Rectangle * dragging_rect
void motion(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
Temporal::timecnt_t total_dt(GdkEvent *) const
bool active(Editing::MouseMode m)
void finished(GdkEvent *, bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
ControlPointDrag(EditingContext &, ArdourCanvas::Item *)
static double _zero_gain_fraction
double _cumulative_y_drag
std::pair< Temporal::timecnt_t, int > move_threshold() const
bool y_movement_matters() const
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void finished(GdkEvent *, bool)
CrossfadeEdgeDrag(Editor &, AudioRegionView *, ArdourCanvas::Item *, bool start)
void motion(GdkEvent *, bool)
void finished(GdkEvent *, bool)
void motion(GdkEvent *, bool)
double _grab_zoom
editor samples per unit when our grab started
CursorDrag(Editor &, EditorCursor &, bool)
bool _stop
true to stop the transport on starting the drag, otherwise false
bool allow_vertical_autoscroll() const
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void fake_locate(samplepos_t)
bool y_movement_matters() const
bool preview_video() const
bool mid_drag_key_event(GdkEventKey *)
Temporal::timepos_t _current_pointer_time
time that the pointer is now at
bool _old_follow_playhead
state of Editor::follow_playhead() before the drags started
void set(Drag *, GdkEvent *, Gdk::Cursor *c=MouseCursors::invalid_cursor())
bool have_item(ArdourCanvas::Item *) const
void start_grab(GdkEvent *, Gdk::Cursor *c=MouseCursors::invalid_cursor())
bool end_grab(GdkEvent *)
EditingContext * _editing_context
std::list< Drag * > _drags
double current_pointer_x() const
double current_pointer_y() const
double _current_pointer_y
canvas-coordinate space y of the current pointer
Temporal::timepos_t current_pointer_time() const
double _current_pointer_x
canvas-coordinate space x of the current pointer
bool _ending
true if end_grab or abort is in progress, otherwise false
bool motion_handler(GdkEvent *, bool)
DragManager(EditingContext *e)
ARDOUR::samplepos_t current_pointer_sample() const
Temporal::timepos_t last_pointer_time() const
double last_pointer_y() const
virtual bool active(Editing::MouseMode m)
std::pair< Temporal::timecnt_t, int > move_threshold() const
Temporal::timepos_t pixel_duration_to_time(double x) const
void set_double_click(bool yn)
virtual bool y_movement_matters() const
Temporal::timepos_t adjusted_current_time(GdkEvent const *, bool snap=true) const
void set_time_domain(Temporal::TimeDomain)
ArdourCanvas::Item * item() const
virtual void setup_pointer_offset()
double _last_pointer_x
trackview x of the pointer last time a motion occurred
virtual void start_grab(GdkEvent *e, Gdk::Cursor *c=0)
ArdourCanvas::Item * _item
our item
Temporal::timecnt_t _video_offset
bool _y_constrained
true if y motion is constrained, otherwise false
Gtkmm2ext::Bindings::DragsBlockBindings binding_blocker
Temporal::TimeDomain time_domain() const
Temporal::timepos_t _last_pointer_time
adjusted_time the last time a motion occurred
Temporal::timecnt_t snap_delta(guint const) const
void show_verbose_cursor_time(Temporal::timepos_t const &)
virtual bool allow_horizontal_autoscroll() const
Temporal::timepos_t adjusted_time(Temporal::timepos_t const &, GdkEvent const *, bool snap=true) const
double _grab_y
y of the grab start position, possibly adjusted if _bounding_itme is non-null
void set_manager(DragManager *m)
bool _move_threshold_passed
true if the move threshold has been passed, otherwise false
void set_grab_button_anyway(GdkEvent *)
bool _was_double_click
true if drag initiated by a double click event
void show_view_preview(Temporal::timepos_t const &)
Temporal::timecnt_t _pointer_offset
ArdourCanvas::Item const * _bounding_item
our coordinate reference (normally null)
bool _initially_vertical
true if after move threshold is passed we appear to be moving vertically; undefined before that
ARDOUR::timepos_t _earliest_time_limit
time we cannot drag before (defaults to 0, indicating no such limit)
double current_pointer_y() const
virtual bool mid_drag_key_event(GdkEventKey *)
std::shared_ptr< ARDOUR::Region > add_midi_region(MidiTimeAxisView *, bool commit)
virtual void motion(GdkEvent *e, bool f)=0
virtual bool allow_vertical_autoscroll() const
virtual bool end_grab(GdkEvent *)
double last_pointer_x() const
ARDOUR::samplepos_t last_pointer_sample() const
Temporal::timecnt_t _snap_delta
bool motion_handler(GdkEvent *, bool)
double _last_pointer_y
trackview y of the pointer last time a motion occurred
Drag(EditingContext &, ArdourCanvas::Item *, Temporal::TimeDomain td, ArdourCanvas::Item const *bounding_item, bool hide_snapped_cursor=true)
ARDOUR::samplepos_t grab_sample() const
bool _hide_snapped_cursor
set true of Drag::motion does not call set_snapped_cursor_position
double current_pointer_x() const
bool _x_constrained
true if x motion is constrained, otherwise false
virtual void finished(GdkEvent *e, bool m)=0
Temporal::timepos_t _raw_grab_time
unsnapped time that the mouse was at when start_grab was called, or 0
bool initially_vertical() const
bool _trackview_only
true if pointer y value should always be relative to the top of the trackview group
void set_bounding_item(ArdourCanvas::Item const *i)
Temporal::timepos_t raw_grab_time() const
bool was_double_click() const
virtual bool x_movement_matters() const
void show_verbose_cursor_duration(Temporal::timepos_t const &, Temporal::timepos_t const &, double xoffset=0)
bool _starting_point_passed
true if we called move () with first_move flag, otherwise false
virtual void aborted(bool m)=0
EditingContext & editing_context
virtual void setup_video_offset()
bool _was_rolling
true if the session was rolling before the drag started, otherwise false
double _grab_x
trackview x of the grab start position
bool preview_video() const
Temporal::timepos_t grab_time() const
void swap_grab(ArdourCanvas::Item *, Gdk::Cursor *, uint32_t)
void show_verbose_cursor_text(std::string const &)
void setup_snap_delta(Temporal::timepos_t const &pos)
bool _constraint_pressed
if the keyboard indicated constraint modifier was pressed on start_grab()
Temporal::TimeDomain _time_domain
Temporal::timepos_t _grab_time
adjusted_time that the mouse was at when start_grab was called, or 0
samplepos_t anchored_fade_length
fade_length when anchored during drag
RegionView * view
the view
std::shared_ptr< ARDOUR::Playlist > initial_playlist
DraggingView(RegionView *, RegionDrag *, TimeAxisView *original_tav)
Temporal::timepos_t initial_position
initial position of the region
TimeAxisView * initial_time_axis_view
double initial_y
the initial y position of the view before any reparenting
Temporal::timepos_t initial_end
initial end position of the region
EditorDrag(Editor &, ArdourCanvas::Item *, Temporal::TimeDomain td, ArdourCanvas::Item const *bounding_item, bool hide_snapped_cursor=true)
bool allow_vertical_autoscroll() const
void setup_pointer_offset()
void motion(GdkEvent *, bool)
bool y_movement_matters() const
FadeInDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, Temporal::TimeDomain)
void finished(GdkEvent *, bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
FadeOutDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, Temporal::TimeDomain td)
bool y_movement_matters() const
bool allow_vertical_autoscroll() const
void setup_pointer_offset()
void motion(GdkEvent *, bool)
void finished(GdkEvent *, bool)
ArdourCanvas::Line * _line
double _cumulative_x_drag
double _region_view_grab_x
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void motion(GdkEvent *, bool)
void finished(GdkEvent *, bool)
FeatureLineDrag(Editor &e, ArdourCanvas::Item *i)
ArdourCanvas::Coord line_start_y
virtual void point_added(ArdourCanvas::Duple const &d, ArdourCanvas::Rectangle const &r, double last_x)
void maybe_add_point(GdkEvent *, Temporal::timepos_t const &, bool first_move)
ArdourCanvas::Item * parent
ArdourCanvas::Rectangle & base_rect
ArdourCanvas::Coord line_start_x
ArdourCanvas::PolyLine * dragging_line
virtual void line_extended(ArdourCanvas::Duple const &from, ArdourCanvas::Duple const &to, ArdourCanvas::Rectangle const &r, double last_x)
void finished(GdkEvent *, bool)
bool horizontally_bounded
OrderedPointList drawn_points
bool mid_drag_key_event(GdkEventKey *)
FreehandLineDrag(EditingContext &, ArdourCanvas::Item *, ArdourCanvas::Rectangle &, bool, Temporal::TimeDomain)
void motion(GdkEvent *, bool)
HitCreateDrag(EditingContext &, ArdourCanvas::Item *, MidiView *)
void motion(GdkEvent *, bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Temporal::timepos_t _last_pos
void finished(GdkEvent *, bool)
std::pair< Temporal::timecnt_t, int > move_threshold() const
double y_to_region(double) const
bool y_movement_matters() const
bool active(Editing::MouseMode mode)
std::function< void(GdkEvent *, Temporal::timepos_t const &, double)> click_functor
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
double _cumulative_y_drag
void finished(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
void motion(GdkEvent *, bool)
LineDrag(EditingContext &e, ArdourCanvas::Item *i, std::function< void(GdkEvent *, Temporal::timepos_t const &, double)>)
ArdourCanvas::Lollipop * _primary
void setup_pointer_offset()
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
LollipopDrag(EditingContext &, ArdourCanvas::Item *)
VelocityDisplay * _display
bool allow_horizontal_autoscroll() const
bool x_movement_matters() const
void motion(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
void finished(GdkEvent *, bool)
bool y_movement_matters() const
void setup_pointer_offset()
void finished(GdkEvent *, bool)
void motion(GdkEvent *, bool)
MappingEndDrag(Editor &, ArdourCanvas::Item *, Temporal::TempoMap::WritableSharedPtr &, Temporal::TempoPoint &, Temporal::TempoPoint &after, XMLNode &before_state)
Temporal::TempoPoint & _tempo
bool allow_horizontal_autoscroll() const
bool allow_vertical_autoscroll() const
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Temporal::TempoMap::WritableSharedPtr map
Temporal::TempoPoint & _after
void motion(GdkEvent *, bool)
bool y_movement_matters() const
bool allow_horizontal_autoscroll() const
MappingTwistDrag(Editor &, ArdourCanvas::Item *, Temporal::TempoMap::WritableSharedPtr &, Temporal::TempoPoint &prev, Temporal::TempoPoint &focus, Temporal::TempoPoint &next, XMLNode &, bool ramped)
Temporal::TempoPoint & focus
Temporal::TempoPoint & prev
bool allow_vertical_autoscroll() const
Temporal::TempoPoint & next
void setup_pointer_offset()
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Temporal::TempoMap::WritableSharedPtr map
void finished(GdkEvent *, bool)
std::list< CopiedLocationMarkerInfo > CopiedLocationInfo
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
bool y_movement_matters() const
void finished(GdkEvent *, bool)
MarkerDrag(Editor &, ArdourCanvas::Item *)
ArdourCanvas::Points _points
CopiedLocationInfo _copied_locations
std::vector< ARDOUR::Location::ChangeSuspender > lcs
void setup_pointer_offset()
void update_item(ARDOUR::Location *)
ArdourMarker * _marker
marker being dragged
void motion(GdkEvent *, bool)
void setup_video_offset()
bool allow_vertical_autoscroll() const
void finished(GdkEvent *, bool)
Temporal::superclock_t initial_sclock
void setup_pointer_offset()
Editing::GridType _old_grid_type
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Editing::SnapMode _old_snap_mode
MeterMarkerDrag(Editor &, ArdourCanvas::Item *, bool)
bool allow_vertical_autoscroll() const
void motion(GdkEvent *, bool)
Temporal::TempoMap::WritableSharedPtr map
bool y_movement_matters() const
MidiRubberbandSelectDrag(EditingContext &, MidiView *)
void select_things(int, Temporal::timepos_t const &, Temporal::timepos_t const &, double, double, bool)
void select_things(int, Temporal::timepos_t const &, Temporal::timepos_t const &, double, double, bool)
MidiVerticalSelectDrag(EditingContext &, MidiView *)
static Gdk::Cursor * invalid_cursor()
MouseZoomDrag(Editor &, ArdourCanvas::Item *)
std::pair< Temporal::timecnt_t, int > move_threshold() const
void finished(GdkEvent *, bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void motion(GdkEvent *, bool)
std::pair< Temporal::timecnt_t, int > move_threshold() const
NoteCreateDrag(EditingContext &, ArdourCanvas::Item *, MidiView *)
bool allow_vertical_autoscroll() const
Temporal::timepos_t _note[2]
bool active(Editing::MouseMode mode)
Temporal::Beats round_to_grid(Temporal::timepos_t const &pos, GdkEvent const *event) const
void finished(GdkEvent *, bool)
bool y_movement_matters() const
void motion(GdkEvent *, bool)
double y_to_region(double) const
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
ArdourCanvas::Rectangle * _drag_rect
Temporal::timecnt_t total_dx(GdkEvent *event) const
void setup_pointer_offset()
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
NoteDrag(EditingContext &, ArdourCanvas::Item *)
Temporal::timecnt_t _cumulative_dx
bool allow_vertical_autoscroll() const
void finished(GdkEvent *, bool)
Temporal::timepos_t _earliest
void motion(GdkEvent *, bool)
NoteResizeDrag(EditingContext &, ArdourCanvas::Item *)
void finished(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void motion(GdkEvent *, bool)
void finished(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
PatchChangeDrag(EditingContext &, PatchChange *, MidiView *)
PatchChange * _patch_change
void motion(GdkEvent *, bool)
void setup_pointer_offset()
bool y_movement_matters() const
ArdourCanvas::Rectangle * _drag_rect
void motion(GdkEvent *, bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
RangeMarkerBarDrag(Editor &, ArdourCanvas::Item *, Operation)
void update_item(ARDOUR::Location *)
bool y_movement_matters() const
bool allow_vertical_autoscroll() const
void finished(GdkEvent *, bool)
std::set< Temporal::timepos_t > TimePositionSet
virtual void finished(GdkEvent *, bool)
virtual void aborted(bool)
TimePositionSet _already_pasted
virtual void motion(GdkEvent *, bool)
virtual void start_grab(GdkEvent *, Gdk::Cursor *)
RegionBrushDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, Temporal::TimeDomain td)
virtual ~RegionBrushDrag()
void finished(GdkEvent *, bool)
RegionCreateDrag(Editor &, ArdourCanvas::Item *, TimeAxisView *)
std::shared_ptr< ARDOUR::Region > _region
void motion(GdkEvent *, bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void motion(GdkEvent *, bool)
RegionCutDrag(Editor &, ArdourCanvas::Item *, samplepos_t)
void finished(GdkEvent *, bool)
RegionView * _primary
the view that was clicked on (or whatever) to start the drag
void region_going_away(RegionView *)
RegionDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, Temporal::TimeDomain, bool hide_snapped_cursor=true)
void setup_video_offset()
std::list< DraggingView > _views
information about all views that are being dragged
PBD::ScopedConnection death_connection
int apply_track_delta(const int start, const int delta, const int skip, const bool distance_only=false) const
void add_stateful_diff_commands_for_playlists(ARDOUR::PlaylistSet const &)
int find_time_axis_view(TimeAxisView *) const
std::vector< TimeAxisView * > _time_axis_views
RegionInsertDrag(Editor &, std::shared_ptr< ARDOUR::Region >, RouteTimeAxisView *, Temporal::timepos_t const &, Temporal::TimeDomain)
void finished(GdkEvent *, bool)
bool regions_came_from_canvas() const
bool allow_vertical_autoscroll() const
ARDOUR::CueMarker dragging_model
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void finished(GdkEvent *, bool)
void setup_pointer_offset()
bool y_movement_matters() const
void motion(GdkEvent *, bool)
RegionMarkerDrag(Editor &, RegionView *, ArdourCanvas::Item *)
virtual bool y_movement_allowed(int, double, int skip_invisible=0) const
std::vector< ArdourMarker * > ripple_markers
virtual void finished(GdkEvent *, bool)
RegionMotionDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, Temporal::TimeDomain td)
double compute_x_delta(GdkEvent const *, Temporal::timepos_t &)
void collect_ripple_views()
virtual void start_grab(GdkEvent *, Gdk::Cursor *)
virtual void motion(GdkEvent *, bool)
Temporal::timepos_t _last_position
last position of the thing being dragged
virtual bool regions_came_from_canvas() const =0
virtual ~RegionMotionDrag()
double _last_pointer_layer
virtual void aborted(bool)
int _last_pointer_time_axis_view
RegionView * _new_region_view
void remove_region_from_playlist(std::shared_ptr< ARDOUR::Region >, std::shared_ptr< ARDOUR::Playlist >, ARDOUR::PlaylistSet &modified_playlists)
bool regions_came_from_canvas() const
std::pair< Temporal::timecnt_t, int > move_threshold() const
RegionView * insert_region_into_playlist(std::shared_ptr< ARDOUR::Region >, RouteTimeAxisView *, ARDOUR::layer_t, Temporal::timepos_t const &, ARDOUR::PlaylistSet &)
void finished(GdkEvent *, bool)
void clear_draggingview_list()
void setup_pointer_offset()
RegionMoveDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, bool, Temporal::TimeDomain)
void motion(GdkEvent *, bool)
void finished_no_copy(bool const, bool const, Temporal::timepos_t const &, int32_t const ev_state)
void collect_new_region_view(RegionView *)
virtual ~RegionMoveDrag()
void finished_copy(bool const, bool const, Temporal::timepos_t const &, int32_t const ev_state)
RouteTimeAxisView * create_destination_time_axis(std::shared_ptr< ARDOUR::Region >, TimeAxisView *original)
virtual ~RegionSlipContentsDrag()
virtual void aborted(bool)
virtual void start_grab(GdkEvent *, Gdk::Cursor *)
virtual void finished(GdkEvent *, bool)
RegionSlipContentsDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, Temporal::TimeDomain td)
virtual void motion(GdkEvent *, bool)
void do_select_things(GdkEvent *, bool)
std::function< bool(GdkEvent *, Temporal::timepos_t const &)> click_functor
std::pair< Temporal::timecnt_t, int > move_threshold() const
void finished(GdkEvent *, bool)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
virtual void deselect_things()
void motion(GdkEvent *, bool)
virtual void select_things(int button_state, Temporal::timepos_t const &x1, Temporal::timepos_t const &x2, double y1, double y2, bool drag_in_progress)
RubberbandSelectDrag(EditingContext &, ArdourCanvas::Item *, std::function< bool(GdkEvent *, Temporal::timepos_t const &)> click_functor)
void finished(GdkEvent *, bool)
SelectionDrag(Editor &, ArdourCanvas::Item *, Operation)
TrackSelection _track_selection_at_start
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void setup_pointer_offset()
bool _time_selection_at_start
Temporal::timepos_t end_at_start
Temporal::timepos_t start_at_start
void motion(GdkEvent *, bool)
Temporal::timepos_t _end_at_start
void finished(GdkEvent *, bool)
SelectionMarkerDrag(Editor &, ArdourCanvas::Item *)
void motion(GdkEvent *, bool)
Temporal::timepos_t _start_at_start
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void finished(GdkEvent *, bool)
Temporal::TempoPoint * point
void motion(GdkEvent *, bool)
TempoCurveDrag(Editor &, ArdourCanvas::Item *)
Temporal::TempoMap::WritableSharedPtr map
bool y_movement_matters() const
bool allow_vertical_autoscroll() const
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Temporal::TempoMap::WritableSharedPtr map
void motion(GdkEvent *, bool)
Temporal::TempoPoint * previous_tempo
TempoEndDrag(Editor &, ArdourCanvas::Item *)
void setup_pointer_offset()
void finished(GdkEvent *, bool)
Temporal::TempoPoint * _tempo
void motion(GdkEvent *, bool)
void setup_pointer_offset()
Temporal::TempoPoint const * _real_section
TempoMarkerDrag(Editor &, ArdourCanvas::Item *)
void finished(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
bool y_movement_matters() const
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
Temporal::TempoMap::WritableSharedPtr map
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void setup_pointer_offset()
void finished(GdkEvent *, bool)
void motion(GdkEvent *, bool)
bool y_movement_matters() const
bool allow_vertical_autoscroll() const
Temporal::TempoMap::WritableSharedPtr map
TempoTwistDrag(Editor &, ArdourCanvas::Item *)
Temporal::TempoPoint const * _next_tempo
Temporal::TempoPoint * _tempo
std::shared_ptr< TempoMap > WritableSharedPtr
static timecnt_t zero(TimeDomain td)
void finished(GdkEvent *, bool)
TimeFXDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, Temporal::TimeDomain td)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void motion(GdkEvent *, bool)
TrimDrag(Editor &, ArdourCanvas::Item *, RegionView *, std::list< RegionView * > const &, Temporal::TimeDomain td, bool preserve_fade_anchor=false)
void setup_pointer_offset()
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void finished(GdkEvent *, bool)
void motion(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
bool _preserve_fade_anchor
bool _jump_position_when_done
bool y_movement_matters() const
std::vector< RegionView::DisplaySuspender > suspenders
VelocityLineDrag(EditingContext &, ArdourCanvas::Rectangle &, bool, Temporal::TimeDomain)
void point_added(ArdourCanvas::Duple const &d, ArdourCanvas::Rectangle const &r, double last_x)
void line_extended(ArdourCanvas::Duple const &from, ArdourCanvas::Duple const &to, ArdourCanvas::Rectangle const &r, double last_x)
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
void finished(GdkEvent *, bool)
bool allow_vertical_autoscroll() const
bool y_movement_matters() const
std::list< AVDraggingView > _views
information about all audio that are being dragged along
void start_grab(GdkEvent *, Gdk::Cursor *c=0)
ARDOUR::sampleoffset_t _startdrag_video_offset
VideoTimeLineDrag(Editor &e, ArdourCanvas::Item *i)
ARDOUR::sampleoffset_t _max_backwards_drag
void finished(GdkEvent *, bool)
void motion(GdkEvent *, bool)
PBD::PropertyDescriptor< timepos_t > start
Temporal::timecnt_t timecnt_t
std::set< std::shared_ptr< Playlist > > PlaylistSet
Temporal::sampleoffset_t sampleoffset_t
Temporal::samplepos_t samplepos_t
std::vector< Duple > Points
std::list< ControlPoint * > points
points to drag on the line
std::pair< Temporal::timepos_t, Temporal::timepos_t > range
the range of all points on the line, in session time
std::shared_ptr< AutomationLine > line
the line
XMLNode * state
the XML state node before the drag
std::vector< ArdourMarker * > markers
CopiedLocationMarkerInfo(ARDOUR::Location *l, ArdourMarker *m)
ARDOUR::Location * location