bool edit_graphics_rep::mouse_graphics (string type, SI x, SI y, int m, time_t t) { //cout << type << ", " << x << ", " << y << ", " << m << ", " << t << "\n"; //cout << "et= " << et << "\n"; //cout << "tp= " << tp << "\n"; //cout << "gp= " << graphics_path () << "\n"; (void) t; // apply_changes (); // FIXME: remove after review of synchronization frame f= find_frame (); if (!is_nil (f)) { if (!over_graphics (x, y)) return false; if (type == "move" || type == "dragging-left") if (check_event (MOTION_EVENT)) return true; point p = f [point (x, y)]; graphical_select (p[0], p[1]); // init the caching for adjust(). p= adjust (p); gr_x= p[0]; gr_y= p[1]; string sx= as_string (p[0]); string sy= as_string (p[1]); invalidate_graphical_object (); call ("set-keyboard-modifiers", object (m)); if (type == "move") call ("graphics-move", sx, sy); else if (type == "release-left" || type == "double-left") call ("graphics-release-left", sx, sy); else if (type == "release-middle") call ("graphics-release-middle", sx, sy); else if (type == "release-right" || type == "double-right") call ("graphics-release-right", sx, sy); else if (type == "start-drag-left") call ("graphics-start-drag-left", sx, sy); else if (type == "dragging-left") call ("graphics-dragging-left", sx, sy); else if (type == "end-drag-left") call ("graphics-end-drag-left", sx, sy); else if (type == "start-drag-right") call ("graphics-start-drag-right", sx, sy); else if (type == "dragging-right") call ("graphics-dragging-right", sx, sy); else if (type == "end-drag-right") call ("graphics-end-drag-right", sx, sy); invalidate_graphical_object (); notify_change (THE_CURSOR); return true; } //cout << "No frame " << tp << ", " << subtree (et, path_up (tp)) << "\n"; return false; }
bool edit_graphics_rep::mouse_graphics (string type, SI x, SI y, int m, time_t t) { (void) t; // apply_changes (); // FIXME: remove after review of synchronization frame f= find_frame (); if (!is_nil (f)) { if (!over_graphics (x, y)) return false; if (type == "move" || type == "dragging") if (check_event (MOTION_EVENT)) return true; point p = f [point (x, y)]; graphical_select (p[0], p[1]); // init the caching for adjust(). p = adjust (p); gr_x= p[0]; gr_y= p[1]; string sx= as_string (p[0]); string sy= as_string (p[1]); invalidate_graphical_object (); call ("set-keyboard-modifiers", object (m)); if (type == "move") call ("graphics-move-point", sx, sy); else if (type == "release-left") call ("graphics-insert-point", sx, sy); else if (type == "release-middle") call ("graphics-remove-point", sx, sy); else if (type == "release-right") call ("graphics-last-point", sx, sy); else if (type == "start-drag") call ("graphics-start-drag", sx, sy); else if (type == "dragging") call ("graphics-dragging", sx, sy); else if (type == "end-drag") call ("graphics-end-drag", sx, sy); else if (type == "start-right-drag") call ("graphics-start-right-drag", sx, sy); else if (type == "right-dragging") call ("graphics-right-dragging", sx, sy); else if (type == "end-right-drag") call ("graphics-end-right-drag", sx, sy); invalidate_graphical_object (); notify_change (THE_CURSOR); return true; } return false; }