samer@0
|
1 package samer.units;
|
samer@0
|
2
|
samer@0
|
3 import samer.core.*;
|
samer@0
|
4 import samer.core.types.*;
|
samer@0
|
5 import samer.maths.*;
|
samer@0
|
6 import java.awt.*;
|
samer@0
|
7 import java.awt.event.*;
|
samer@0
|
8
|
samer@0
|
9 public class MousePosition implements MouseListener, MouseMotionListener
|
samer@0
|
10 {
|
samer@0
|
11 private Node node;
|
samer@0
|
12 private Component comp;
|
samer@0
|
13 private VDouble x, y;
|
samer@0
|
14 private VBoolean button;
|
samer@0
|
15
|
samer@0
|
16 public MousePosition( Component c)
|
samer@0
|
17 {
|
samer@0
|
18 node = new Node("mouse");
|
samer@0
|
19
|
samer@0
|
20 Shell.push(node);
|
samer@0
|
21 x = new VDouble( "x");
|
samer@0
|
22 y = new VDouble( "y");
|
samer@0
|
23 button = new VBoolean("button",false);
|
samer@0
|
24
|
samer@0
|
25 comp=c;
|
samer@0
|
26 comp.addMouseListener(this);
|
samer@0
|
27 }
|
samer@0
|
28
|
samer@0
|
29 public void dispose() {
|
samer@0
|
30 if (button.value) comp.removeMouseMotionListener(this);
|
samer@0
|
31 comp.removeMouseListener(this);
|
samer@0
|
32 x.dispose();
|
samer@0
|
33 y.dispose();
|
samer@0
|
34 }
|
samer@0
|
35
|
samer@0
|
36 // mouse event handlers
|
samer@0
|
37 public void mouseClicked( MouseEvent e) {}
|
samer@0
|
38 public void mouseEntered( MouseEvent e) {}
|
samer@0
|
39 public void mouseExited( MouseEvent e) {}
|
samer@0
|
40 public void mousePressed( MouseEvent e) {
|
samer@0
|
41 button.value=true;
|
samer@0
|
42 button.changed();
|
samer@0
|
43 comp.addMouseMotionListener(this);
|
samer@0
|
44 }
|
samer@0
|
45
|
samer@0
|
46 public void mouseReleased( MouseEvent e) {
|
samer@0
|
47 button.value=false;
|
samer@0
|
48 button.changed();
|
samer@0
|
49 comp.removeMouseMotionListener(this);
|
samer@0
|
50 }
|
samer@0
|
51
|
samer@0
|
52 // mouse motion handler
|
samer@0
|
53 public void mouseDragged( MouseEvent e) {
|
samer@0
|
54 x.set(e.getX()); y.set(e.getY());
|
samer@0
|
55 }
|
samer@0
|
56 public void mouseMoved( MouseEvent e) {
|
samer@0
|
57 x.set(e.getX()); y.set(e.getY());
|
samer@0
|
58 }
|
samer@0
|
59 }
|
samer@0
|
60
|