37 lines
981 B
Java
37 lines
981 B
Java
package wtf.beatrice.autosqueal.controls;
|
|
|
|
/**
|
|
* Keeps track of the mouse movements the app itself performs, so that other
|
|
* components (like the away detection) can tell them apart from the user's.
|
|
*
|
|
* Written by the movement tasks, read by whoever needs to know.
|
|
*/
|
|
public class RobotMouseTracker {
|
|
|
|
private volatile boolean moving = false;
|
|
private volatile int lastX = Integer.MIN_VALUE;
|
|
private volatile int lastY = Integer.MIN_VALUE;
|
|
|
|
/** Marks the start of a movement performed by the app. */
|
|
public void moveStarted() {
|
|
moving = true;
|
|
}
|
|
|
|
/**
|
|
* Marks the end of a movement performed by the app, which left the cursor
|
|
* at the given coordinates.
|
|
*/
|
|
public void moveEnded(int x, int y) {
|
|
lastX = x;
|
|
lastY = y;
|
|
moving = false;
|
|
}
|
|
|
|
public boolean isMoving() {
|
|
return moving;
|
|
}
|
|
|
|
public boolean isLastPosition(int x, int y) {
|
|
return x == lastX && y == lastY;
|
|
}
|
|
} |