samer@0: package samer.units; samer@0: samer@0: import samer.core.*; samer@0: import samer.core.types.*; samer@0: import samer.maths.*; samer@0: import java.awt.*; samer@0: import java.awt.event.*; samer@0: samer@0: public class MousePosition implements MouseListener, MouseMotionListener samer@0: { samer@0: private Node node; samer@0: private Component comp; samer@0: private VDouble x, y; samer@0: private VBoolean button; samer@0: samer@0: public MousePosition( Component c) samer@0: { samer@0: node = new Node("mouse"); samer@0: samer@0: Shell.push(node); samer@0: x = new VDouble( "x"); samer@0: y = new VDouble( "y"); samer@0: button = new VBoolean("button",false); samer@0: samer@0: comp=c; samer@0: comp.addMouseListener(this); samer@0: } samer@0: samer@0: public void dispose() { samer@0: if (button.value) comp.removeMouseMotionListener(this); samer@0: comp.removeMouseListener(this); samer@0: x.dispose(); samer@0: y.dispose(); samer@0: } samer@0: samer@0: // mouse event handlers samer@0: public void mouseClicked( MouseEvent e) {} samer@0: public void mouseEntered( MouseEvent e) {} samer@0: public void mouseExited( MouseEvent e) {} samer@0: public void mousePressed( MouseEvent e) { samer@0: button.value=true; samer@0: button.changed(); samer@0: comp.addMouseMotionListener(this); samer@0: } samer@0: samer@0: public void mouseReleased( MouseEvent e) { samer@0: button.value=false; samer@0: button.changed(); samer@0: comp.removeMouseMotionListener(this); samer@0: } samer@0: samer@0: // mouse motion handler samer@0: public void mouseDragged( MouseEvent e) { samer@0: x.set(e.getX()); y.set(e.getY()); samer@0: } samer@0: public void mouseMoved( MouseEvent e) { samer@0: x.set(e.getX()); y.set(e.getY()); samer@0: } samer@0: } samer@0: