static int forwardOneClick_windowSize = 11; // odd should look nice. Set to 1 for an invisible window
static int forwardOneClick_clickDelay = 0; // Delay in ms between closing window and forwarding click. 0 seems to work fine.
static int forwardOneClick_trackingSpeed = 10; // How often to move the window (ms)
// onClick: voidfunc(Point, int) - 2nd parameter is button (1 to 3)
// if you make it a func and return false, click is not forwarded
static void forwardOneClick(final O onClick) {
awtIfNecessary {
final new JWindow window;
final int windowSize = forwardOneClick_windowSize;
window.setSize(windowSize, windowSize);
window.setVisible(true);
window.setAlwaysOnTop(true);
JPanel panel = singleColorPanel(Color.red);
window.setContentPane(panel);
revalidate(window);
final new Robot robot;
panel.addMouseListener(new MouseAdapter {
public void mouseReleased(final MouseEvent e) {
window.setVisible(false);
final int b = e.getButton();
final int mod =
b == 1 ? InputEvent.BUTTON1_DOWN_MASK
: b == 2 ? InputEvent.BUTTON2_DOWN_MASK
: InputEvent.BUTTON3_DOWN_MASK;
final Point point = getMouseLocation();
swingLater(forwardOneClick_clickDelay, r {
if (isFalse(callF(onClick, point, b))) ret;
robot.mousePress(mod);
robot.mouseRelease(mod);
});
}
});
swingEvery(window, forwardOneClick_trackingSpeed, r {
Point p = getMouseLocation();
window.setLocation(p.x-windowSize/2, p.y-windowSize/2);
});
}
}Began life as a copy of #1005565
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1005566 |
| Snippet name: | forwardOneClick - track mouse pointer and record + forward one click |
| Eternal ID of this version: | #1005566/1 |
| Text MD5: | d61786bd99897ea3be8703f0825fb4ef |
| Author: | stefan |
| Category: | javax / gui |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2016-11-29 17:02:55 |
| Source code size: | 1633 bytes / 40 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 1054 / 1060 |
| Referenced in: | [show references] |