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)

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);
    });
  }
}

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: 623 / 628
Referenced in: #1005569 - forwardClicks - track mouse pointer forward clicks & drags continously
#1005610 - trackOneClick - track mouse pointer and record (don't forward)
#1006654 - Standard functions list 2 (LIVE, continuation of #761)