Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

40
LINES

< > BotCompany Repo | #1005566 // forwardOneClick - track mouse pointer and record + forward one click

JavaX fragment (include)

1  
static int forwardOneClick_windowSize = 11; // odd should look nice. Set to 1 for an invisible window
2  
static int forwardOneClick_clickDelay = 0; // Delay in ms between closing window and forwarding click. 0 seems to work fine.
3  
static int forwardOneClick_trackingSpeed = 10; // How often to move the window (ms)
4  
5  
// onClick: voidfunc(Point, int) - 2nd parameter is button (1 to 3)
6  
// if you make it a func and return false, click is not forwarded
7  
static void forwardOneClick(final O onClick) {
8  
  awtIfNecessary {
9  
    final new JWindow window;
10  
    final int windowSize = forwardOneClick_windowSize;
11  
    window.setSize(windowSize, windowSize);
12  
    window.setVisible(true);
13  
    window.setAlwaysOnTop(true);
14  
    JPanel panel = singleColorPanel(Color.red);
15  
    window.setContentPane(panel);
16  
    revalidate(window);
17  
    final new Robot robot;
18  
    panel.addMouseListener(new MouseAdapter {
19  
      public void mouseReleased(final MouseEvent e) {
20  
        window.setVisible(false);
21  
        final int b = e.getButton();
22  
        final int mod =
23  
          b == 1 ? InputEvent.BUTTON1_DOWN_MASK
24  
          : b == 2 ? InputEvent.BUTTON2_DOWN_MASK
25  
          : InputEvent.BUTTON3_DOWN_MASK;
26  
        final Point point = getMouseLocation();
27  
        swingLater(forwardOneClick_clickDelay, r {
28  
          if (isFalse(callF(onClick, point, b))) ret;
29  
          robot.mousePress(mod);
30  
          robot.mouseRelease(mod);
31  
        });
32  
      }
33  
    });
34  
    
35  
    swingEvery(window, forwardOneClick_trackingSpeed, r {
36  
      Point p = getMouseLocation();
37  
      window.setLocation(p.x-windowSize/2, p.y-windowSize/2);
38  
    });
39  
  }
40  
}

Author comment

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: 622 / 627
Referenced in: [show references]