skeleton for crossfade edge dragging
git-svn-id: svn://localhost/ardour2/branches/3.0@12235 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
d8e41bde96
commit
25655e1a6d
@ -377,9 +377,7 @@ Editor::canvas_start_xfade_event (GdkEvent *event, ArdourCanvas::Item* item, Aud
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* proxy for the regionview */
|
return typed_event (item, event, StartCrossFadeItem);
|
||||||
|
|
||||||
return canvas_region_view_event (event, rv->get_canvas_group(), rv);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -411,9 +409,7 @@ Editor::canvas_end_xfade_event (GdkEvent *event, ArdourCanvas::Item* item, Audio
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* proxy for the regionview */
|
return typed_event (item, event, EndCrossFadeItem);
|
||||||
|
|
||||||
return canvas_region_view_event (event, rv->get_canvas_group(), rv);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -4551,3 +4551,40 @@ NoteCreateDrag::aborted (bool)
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*------------*/
|
||||||
|
|
||||||
|
CrossfadeEdgeDrag::CrossfadeEdgeDrag (Editor* e, AudioRegionView* rv, ArdourCanvas::Item* i, bool start_yn)
|
||||||
|
: Drag (e, i)
|
||||||
|
, arv (rv)
|
||||||
|
, start (start_yn)
|
||||||
|
{
|
||||||
|
cerr << "new xfade drag\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
CrossfadeEdgeDrag::~CrossfadeEdgeDrag ()
|
||||||
|
{
|
||||||
|
cerr << "destory xfade drag\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CrossfadeEdgeDrag::start_grab (GdkEvent* event, Gdk::Cursor *cursor)
|
||||||
|
{
|
||||||
|
Drag::start_grab (event, cursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CrossfadeEdgeDrag::motion (GdkEvent*, bool)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CrossfadeEdgeDrag::finished (GdkEvent*, bool)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CrossfadeEdgeDrag::aborted (bool)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -972,5 +972,27 @@ private:
|
|||||||
bool _nothing_to_drag;
|
bool _nothing_to_drag;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Drag of one edge of an xfade
|
||||||
|
*/
|
||||||
|
class CrossfadeEdgeDrag : public Drag
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CrossfadeEdgeDrag (Editor*, AudioRegionView*, ArdourCanvas::Item*, bool start);
|
||||||
|
~CrossfadeEdgeDrag ();
|
||||||
|
|
||||||
|
void start_grab (GdkEvent*, Gdk::Cursor* c = 0);
|
||||||
|
void motion (GdkEvent*, bool);
|
||||||
|
void finished (GdkEvent*, bool);
|
||||||
|
void aborted (bool);
|
||||||
|
|
||||||
|
bool x_movement_matters () const {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
AudioRegionView* arv;
|
||||||
|
bool start;
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* __gtk2_ardour_editor_drag_h_ */
|
#endif /* __gtk2_ardour_editor_drag_h_ */
|
||||||
|
|
||||||
|
@ -935,6 +935,14 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case StartCrossFadeItem:
|
||||||
|
_drags->set (new CrossfadeEdgeDrag (this, reinterpret_cast<AudioRegionView*>(item->get_data("regionview")), item, true), event, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EndCrossFadeItem:
|
||||||
|
_drags->set (new CrossfadeEdgeDrag (this, reinterpret_cast<AudioRegionView*>(item->get_data("regionview")), item, true), event, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
case FeatureLineItem:
|
case FeatureLineItem:
|
||||||
{
|
{
|
||||||
if (Keyboard::modifier_state_contains (event->button.state, Keyboard::TertiaryModifier)) {
|
if (Keyboard::modifier_state_contains (event->button.state, Keyboard::TertiaryModifier)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user