summaryrefslogtreecommitdiff
path: root/gtk2_ardour/canvas-note.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-09-08 21:45:44 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-09-08 21:45:44 +0000
commit1bf79fa88502a156a71cd3d2de35aa234950c40c (patch)
treed17b2e9ed485511ac557647c4b331054c1d477c0 /gtk2_ardour/canvas-note.cc
parent539c8361de35364effe804e2db184790226b340a (diff)
move note drag & note resize mouse handling up into the Drag/Editor infrastructure/level
git-svn-id: svn://localhost/ardour2/branches/3.0@5641 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-note.cc')
-rw-r--r--gtk2_ardour/canvas-note.cc82
1 files changed, 4 insertions, 78 deletions
diff --git a/gtk2_ardour/canvas-note.cc b/gtk2_ardour/canvas-note.cc
index f51a58ff5f..b43514edcc 100644
--- a/gtk2_ardour/canvas-note.cc
+++ b/gtk2_ardour/canvas-note.cc
@@ -11,84 +11,10 @@ namespace Canvas {
bool
CanvasNote::on_event(GdkEvent* ev)
{
- PublicEditor& editor (_region.get_trackview().editor());
-
- if (!editor.internal_editing()) {
- return false;
- }
-
- double event_x;
- static double middle_point, last_x;
- Gdk::Cursor cursor;
- static NoteEnd note_end;
-
- switch (ev->type) {
- case GDK_BUTTON_PRESS:
- if (ev->button.button == 2 ||
- (ev->button.button == 1 && editor.current_mouse_mode() == Editing::MouseTimeFX)) {
- double region_start = _region.get_position_pixels();
- event_x = ev->button.x;
- middle_point = region_start + x1() + (x2() - x1()) / 2.0L;
-
- if (event_x <= middle_point) {
- cursor = Gdk::Cursor(Gdk::LEFT_SIDE);
- note_end = NOTE_ON;
- } else {
- cursor = Gdk::Cursor(Gdk::RIGHT_SIDE);
- note_end = NOTE_OFF;
- }
-
- _item->grab(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK, cursor, ev->motion.time);
-
- if (_region.mouse_state() == MidiRegionView::SelectTouchDragging) {
- _note_state = AbsoluteResize;
- } else {
- _note_state = RelativeResize;
- }
-
- _region.note_selected(this, true);
- _region.begin_resizing(note_end);
- last_x = event_x;
-
- return true;
- }
-
- case GDK_MOTION_NOTIFY:
- event_x = ev->motion.x;
-
- if (_note_state == RelativeResize) {
- _region.update_resizing(note_end, event_x - last_x, true);
- last_x = event_x;
- return true;
- }
-
- if (_note_state == AbsoluteResize) {
- _region.update_resizing(note_end, event_x, false);
- return true;
- }
-
- case GDK_BUTTON_RELEASE:
- event_x = ev->button.x;
-
- switch (_note_state) {
- case RelativeResize: // Clicked
- _item->ungrab(ev->button.time);
- _region.commit_resizing(note_end, event_x, true);
- _note_state = None;
- return true;
-
- case AbsoluteResize: // Clicked
- _item->ungrab(ev->button.time);
- _region.commit_resizing(note_end, event_x, false);
- _note_state = None;
- return true;
-
- default:
- return CanvasNoteEvent::on_event(ev);
- }
-
- default:
- return CanvasNoteEvent::on_event(ev);
+ if (!_region.get_trackview().editor().canvas_note_event (ev, this)) {
+ return CanvasNoteEvent::on_event (ev);
+ } else {
+ return true;
}
}