// f : voidfunc(DoublePt) - point can be null, then mouse has exited static void imageSurfaceOnMouseMoveOrDrag_double(final ImageSurface is, final O f) { swing { MouseAdapter ma = new MouseAdapter { public void mouseMoved(MouseEvent e) { pcallF(f, imageSurface_doublePtFromEvent(is, e)); } public void mouseDragged(MouseEvent e) { pcallF(f, imageSurface_doublePtFromEvent(is, e)); } public void mouseEntered(MouseEvent e) { pcallF(f, imageSurface_doublePtFromEvent(is, e)); } public void mouseExited(MouseEvent e) { pcallF(f, (DoublePt) null); } }; is.addMouseMotionListener(ma); is.addMouseListener(ma); } }