public synchronized void poll() {
		// If relative, return only the delta movements,
		// otherwise return the current position...
		if (isRelative()) {
			mousePos = new Point(dx, dy);
		} else {
			mousePos = new Point(currentPos);
		}
		// Since we have polled, need to reset the delta
		// so the values do not accumulate
		dx = dy = 0;
		// Check each mouse button
		for (int i = 0; i < BUTTON_COUNT; ++i) {
			// If the button is down for the first
			// time, it is ONCE, otherwise it is
			// PRESSED.
			if (state[i]) {
				if (poll[i] == MouseState.RELEASED)
					poll[i] = MouseState.ONCE;
				else
					poll[i] = MouseState.PRESSED;
			} else {
				// Button is not down
				poll[i] = MouseState.RELEASED;
			}
		}
	}