diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-05-08 17:13:59 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-05-08 17:13:59 +0000 |
commit | 7bc425fd0d201626d3591ad88b891b0b67c69814 (patch) | |
tree | b1b88d363e6f6538d04bfe131db377d48297f644 /gtk2_ardour/editor_canvas_events.cc | |
parent | 365658e734a9b8670708b7c36a4b6a0a4acdc3ee (diff) |
framework for handling events on the xfade rects
git-svn-id: svn://localhost/ardour2/branches/3.0@12213 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_canvas_events.cc')
-rw-r--r-- | gtk2_ardour/editor_canvas_events.cc | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index 72de353500..a123ea1e9c 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -349,6 +349,74 @@ Editor::canvas_automation_track_event (GdkEvent *event, ArdourCanvas::Item* item } bool +Editor::canvas_start_xfade_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView *rv) +{ + if (!rv->sensitive()) { + return false; + } + + switch (event->type) { + case GDK_BUTTON_PRESS: + clicked_regionview = rv; + clicked_control_point = 0; + clicked_axisview = &rv->get_time_axis_view(); + clicked_routeview = dynamic_cast<RouteTimeAxisView*>(clicked_axisview); + if (event->button.button == 3) { + return button_press_handler (item, event, StartCrossFadeItem); + } + break; + + case GDK_BUTTON_RELEASE: + if (event->button.button == 3) { + return button_release_handler (item, event, StartCrossFadeItem); + } + break; + + default: + break; + + } + + /* proxy for the regionview */ + + return canvas_region_view_event (event, rv->get_canvas_group(), rv); +} + +bool +Editor::canvas_end_xfade_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView *rv) +{ + if (!rv->sensitive()) { + return false; + } + + switch (event->type) { + case GDK_BUTTON_PRESS: + clicked_regionview = rv; + clicked_control_point = 0; + clicked_axisview = &rv->get_time_axis_view(); + clicked_routeview = dynamic_cast<RouteTimeAxisView*>(clicked_axisview); + if (event->button.button == 3) { + return button_press_handler (item, event, EndCrossFadeItem); + } + break; + + case GDK_BUTTON_RELEASE: + if (event->button.button == 3) { + return button_release_handler (item, event, EndCrossFadeItem); + } + break; + + default: + break; + + } + + /* proxy for the regionview */ + + return canvas_region_view_event (event, rv->get_canvas_group(), rv); +} + +bool Editor::canvas_fade_in_event (GdkEvent *event, ArdourCanvas::Item* item, AudioRegionView *rv) { /* we handle only button 3 press/release events */ |