00001
00002
00003
00004
00005 package org.classroomgaming.cgp;
00006
00007 import java.awt.event.MouseEvent;
00008 import java.awt.event.MouseListener;
00009 import java.awt.event.MouseMotionListener;
00010 import javax.vecmath.Point2i;
00011
00016 public class MouseModule extends GameModule implements MouseListener, MouseMotionListener {
00017
00018 public static final String MOUSE_POSITION_CHANGE_EVENT = "mousePosition";
00019 public static final String MOUSE_BUTTONS_CHANGE_EVENT = "mouseButtons";
00020 private Point2i position;
00021 private int buttons;
00022
00023 public Point2i getPosition() {
00024 return position;
00025 }
00026
00027 public int getButtons() {
00028 return buttons;
00029 }
00030
00031 protected void setPosition(Point2i p) {
00032 Point2i old = position;
00033 position = p;
00034 if (p != old) {
00035 propertySupport.firePropertyChange(MouseModule.MOUSE_POSITION_CHANGE_EVENT, old, position);
00036 }
00037 }
00038
00039 protected void setButtons(int b) {
00040 int old = buttons;
00041 buttons = b;
00042 if (b != old) {
00043 propertySupport.firePropertyChange(MouseModule.MOUSE_BUTTONS_CHANGE_EVENT, new Integer(old), new Integer(buttons));
00044 }
00045 }
00046
00047 MouseModule(GameModule g) {
00048 parent = g;
00049 enabled = true;
00050 buttons = 0;
00051 position = new Point2i(-1, -1);
00052 }
00053
00054 MouseModule() {
00055 parent = null;
00056 enabled = true;
00057 }
00058
00059 public void mouseClicked(MouseEvent e) {
00060
00061 }
00062
00063 public void mousePressed(MouseEvent e) {
00064
00065 if (e.getButton() >= 1) {
00066 setButtons(buttons | (1 << e.getButton() - 1));
00067 }
00068
00069 }
00070
00071 public void mouseReleased(MouseEvent e) {
00072 if (e.getButton() >= 0) {
00073 setButtons(buttons & ~(1 << e.getButton() - 1));
00074 }
00075
00076 }
00077
00078 public void mouseEntered(MouseEvent e) {
00079 Point2i p = new Point2i(e.getX(), e.getY());
00080 setPosition(p);
00081
00082 }
00083
00084 public void mouseExited(MouseEvent e) {
00085 Point2i p = new Point2i(e.getX(), e.getY());
00086 setPosition(p);
00087 }
00088
00089 public void mouseDragged(MouseEvent e) {
00090 Point2i p = new Point2i(e.getX(), e.getY());
00091 setPosition(p);
00092
00093 }
00094
00095 public void mouseMoved(MouseEvent e) {
00096 Point2i p = new Point2i(e.getX(), e.getY());
00097 setPosition(p);
00098 }
00099 }