Skip to content

Commit

Permalink
Merge pull request #402 from go-vgo/bitmap-pr
Browse files Browse the repository at this point in the history
remove move scaled and drop some API keep one, add toggle micro sleep
  • Loading branch information
vcaesar authored Nov 17, 2021
2 parents 2489a6f + b25cecf commit bb3d3a5
Show file tree
Hide file tree
Showing 8 changed files with 85 additions and 39 deletions.
44 changes: 30 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,10 @@ RobotGo supports Mac, Windows, and Linux(X11); and robotgo supports arm64 and x8
- [License](#license)

## Docs
- [GoDoc](https://godoc.org/github.com/go-vgo/robotgo)
- [API Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md)    
- [Chinese Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc_zh.md)
- [GoDoc](https://godoc.org/github.com/go-vgo/robotgo) <br>

- [API Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md) (Deprecated, no updated)
- [Chinese Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc_zh.md) (Deprecated, no updated)

## Binding:
[ADB](https://github.com/vcaesar/adb), packaging android adb API.
Expand All @@ -57,13 +58,22 @@ GCC
```

#### For Mac OS X:

Xcode Command Line Tools (And Privacy setting: [#277](https://github.com/go-vgo/robotgo/issues/277) )

```
Xcode Command Line Tools
xcode-select --install
```

#### For Windows:

[MinGW-w64](https://sourceforge.net/projects/mingw-w64/files) (Use recommended)

```
MinGW-w64 (Use recommended) or other GCC
Or the other GCC (But you should compile the "libpng" with yourself.
Or you can removed the bitmap.go.
In the plans, the bitmap.go will moves to the bitmap dir, but break the API. )
```

#### For everything else:
Expand All @@ -81,12 +91,12 @@ xcb, xkb, libxkbcommon
##### Ubuntu:

```yml
# gcc
sudo apt install gcc libc6-dev

sudo apt install libx11-dev xorg-dev libxtst-dev libpng++-dev

sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev
sudo apt install libxkbcommon-dev
sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev libxkbcommon-dev

sudo apt install xsel xclip
```
Expand All @@ -105,7 +115,6 @@ sudo dnf install xsel xclip
```
go get github.com/go-vgo/robotgo
```
It's that easy!

png.h: No such file or directory? Please see [issues/47](https://github.com/go-vgo/robotgo/issues/47).

Expand All @@ -130,19 +139,25 @@ import (
)

func main() {
robotgo.ScrollMouse(10, "up")
robotgo.Scroll(100, 200)
// robotgo.ScrollMouse(10, "up")
robotgo.Scroll(0, -10)
robotgo.Scroll(100, 0)

robotgo.MilliSleep(100)
robotgo.ScrollRelative(10, -100)
robotgo.ScrollSmooth(-10, 6)
// robotgo.ScrollRelative(10, -100)

robotgo.MouseSleep = 100
robotgo.Move(10, 20)
robotgo.MoveRelative(0, -10)
robotgo.Drag(10, 10)

robotgo.Click("wheelRight")
robotgo.Click("left", true)
robotgo.MoveSmooth(100, 200, 1.0, 100.0)
robotgo.MouseToggle("up")
robotgo.MoveSmooth(100, 200, 1.0, 10.0)

robotgo.Toggle("left")
robotgo.Toggle("left", "up")
}
```

Expand Down Expand Up @@ -177,7 +192,8 @@ func main() {
robotgo.KeyTap("i", arr)

robotgo.MilliSleep(100)
robotgo.KeyToggle("a", "down")
robotgo.KeyToggle("a")
robotgo.KeyToggle("a", "up")

robotgo.WriteAll("Test")
text, err := robotgo.ReadAll()
Expand Down
39 changes: 25 additions & 14 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@ RobotGo 支持 Mac, Windows, and Linux(X11).
- [License](#license)

## Docs
- [GoDoc](https://godoc.org/github.com/go-vgo/robotgo)
- [中文文档](https://github.com/go-vgo/robotgo/blob/master/docs/doc_zh.md)&nbsp;&nbsp;&nbsp;
- [English Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md)
- [GoDoc](https://godoc.org/github.com/go-vgo/robotgo) <br>

- [中文文档](https://github.com/go-vgo/robotgo/blob/master/docs/doc_zh.md) (弃用)
- [English Docs](https://github.com/go-vgo/robotgo/blob/master/docs/doc.md) (弃用)

## Binding:

Expand All @@ -53,13 +54,20 @@ GCC
```

#### For Mac OS X:

Xcode Command Line Tools (And Privacy setting: [#277](https://github.com/go-vgo/robotgo/issues/277) )

```
Xcode Command Line Tools
xcode-select --install
```

#### For Windows:

[MinGW-w64](https://sourceforge.net/projects/mingw-w64/files) (推荐使用)

```
MinGW-w64 (推荐使用) or other GCC
Or the other GCC (But you should compile the "libpng" with yourself.
Or you can removed the bitmap.go )
```

#### For everything else (Linux 等其他系统):
Expand All @@ -81,8 +89,7 @@ sudo apt install gcc libc6-dev

sudo apt install libx11-dev xorg-dev libxtst-dev libpng++-dev

sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev
sudo apt install libxkbcommon-dev
sudo apt install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev libxkbcommon-dev

sudo apt install xsel xclip

Expand All @@ -102,7 +109,6 @@ sudo dnf install xsel xclip
```
go get github.com/go-vgo/robotgo
```
It's that easy!

png.h: No such file or directory? Please see [issues/47](https://github.com/go-vgo/robotgo/issues/47).

Expand All @@ -127,19 +133,23 @@ import (
)

func main() {
robotgo.ScrollMouse(10, "up")
robotgo.Scroll(100, 200)
// robotgo.ScrollMouse(10, "up")
robotgo.Scroll(0, -10)
robotgo.Scroll(100, 0)
robotgo.MilliSleep(100)
robotgo.ScrollRelative(10, -100)
// robotgo.ScrollRelative(10, -100)
robotgo.ScrollSmooth(-10, 6)

robotgo.MouseSleep = 100
robotgo.Move(10, 20)
robotgo.MoveRelative(0, -10)
robotgo.Drag(10, 10)

robotgo.Click("left", true)
robotgo.MoveSmooth(100, 200, 1.0, 100.0)
robotgo.MouseToggle("up")
robotgo.MoveSmooth(100, 200, 1.0, 10.0)

robotgo.Toggle("left")
robotgo.Toggle("left", "up")
}
```

Expand Down Expand Up @@ -174,7 +184,8 @@ func main() {
robotgo.KeyTap("i", arr)

robotgo.MilliSleep(100)
robotgo.KeyToggle("a", "down")
robotgo.KeyToggle("a")
robotgo.KeyToggle("a", "up")

robotgo.WriteAll("テストする")
text, err := robotgo.ReadAll()
Expand Down
3 changes: 1 addition & 2 deletions base/microsleep.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
*
* Pauses execution for the given amount of milliseconds.
*/
H_INLINE void microsleep(double milliseconds)
{
H_INLINE void microsleep(double milliseconds) {
#if defined(IS_WINDOWS)
Sleep((DWORD)milliseconds); /* (Unfortunately truncated to a 32-bit integer.) */
#else
Expand Down
3 changes: 3 additions & 0 deletions clipboard/clipboard_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build darwin || windows
// +build darwin windows

package clipboard_test

import (
Expand Down
5 changes: 5 additions & 0 deletions key/keypress_c.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ void toggleKeyCode(MMKeyCode code, const bool down, MMKeyFlags flags){

void tapKeyCode(MMKeyCode code, MMKeyFlags flags){
toggleKeyCode(code, true, flags);
microsleep(5.0);
toggleKeyCode(code, false, flags);
}

Expand Down Expand Up @@ -224,6 +225,7 @@ void toggleKey(char c, const bool down, MMKeyFlags flags){

void tapKey(char c, MMKeyFlags flags){
toggleKey(c, true, flags);
microsleep(5.0);
toggleKey(c, false, flags);
}

Expand Down Expand Up @@ -289,6 +291,7 @@ void unicodeType(const unsigned value){
UniChar ch = (UniChar)value; // Convert to unsigned char

toggleUnicode(ch, true);
microsleep(5.0);
toggleUnicode(ch, false);
#elif defined(IS_WINDOWS)
INPUT input[2];
Expand All @@ -307,10 +310,12 @@ void unicodeType(const unsigned value){
SendInput(2, input, sizeof(INPUT));
#elif defined(USE_X11)
toggleUniKey(value, true);
microsleep(5.0);
toggleUniKey(value, false);
#endif
}

// todo: removed
void typeStringDelayed(const char *str, const unsigned cpm){

/* Characters per second */
Expand Down
3 changes: 2 additions & 1 deletion mouse/mouse_c.h
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ void toggleMouse(bool down, MMMouseButton button){

void clickMouse(MMMouseButton button){
toggleMouse(true, button);
microsleep(5.0);
toggleMouse(false, button);
}

Expand Down Expand Up @@ -309,7 +310,7 @@ void scrollMouse(int scrollMagnitude, MMMouseWheelDirection scrollDirection){
#endif
}

void scrollMouseXY(int x, int y){
void scrollMouseXY(int x, int y) {
#if defined(IS_WINDOWS)
// Fix for #97,
// C89 needs variables declared on top of functions (mouseScrollInput)
Expand Down
23 changes: 15 additions & 8 deletions robotgo.go
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,7 @@ func CheckMouse(btn string) C.MMMouseButton {
return C.LEFT_BUTTON
}

// Deprecated:
// MoveMouse move the mouse
func MoveMouse(x, y int) {
Move(x, y)
Expand All @@ -452,10 +453,10 @@ func MoveMouse(x, y int) {
// robotgo.MouseSleep = 100 // 100 millisecond
// robotgo.Move(10, 10)
func Move(x, y int) {
if runtime.GOOS == "windows" {
f := ScaleF()
x, y = Scaled0(x, f), Scaled0(y, f)
}
// if runtime.GOOS == "windows" {
// f := ScaleF()
// x, y = Scaled0(x, f), Scaled0(y, f)
// }

cx := C.int32_t(x)
cy := C.int32_t(y)
Expand All @@ -464,6 +465,7 @@ func Move(x, y int) {
MilliSleep(MouseSleep)
}

// Deprecated:
// DragMouse drag the mouse to (x, y),
// It's same with the DragSmooth() now
func DragMouse(x, y int, args ...interface{}) {
Expand All @@ -474,6 +476,7 @@ func DragMouse(x, y int, args ...interface{}) {
Toggle("left", "up")
}

// Deprecated:
// Drag drag the mouse to (x, y),
// It's not valid now, use the DragSmooth()
func Drag(x, y int, args ...string) {
Expand All @@ -500,6 +503,7 @@ func DragSmooth(x, y int, args ...interface{}) {
Toggle("left", "up")
}

// Deprecated:
// MoveMouseSmooth move the mouse smooth,
// moves mouse to x, y human like, with the mouse button up.
func MoveMouseSmooth(x, y int, args ...interface{}) bool {
Expand All @@ -515,10 +519,10 @@ func MoveMouseSmooth(x, y int, args ...interface{}) bool {
// robotgo.MoveSmooth(10, 10)
// robotgo.MoveSmooth(10, 10, 1.0, 2.0)
func MoveSmooth(x, y int, args ...interface{}) bool {
if runtime.GOOS == "windows" {
f := ScaleF()
x, y = Scaled0(x, f), Scaled0(y, f)
}
// if runtime.GOOS == "windows" {
// f := ScaleF()
// x, y = Scaled0(x, f), Scaled0(y, f)
// }

cx := C.int32_t(x)
cy := C.int32_t(y)
Expand Down Expand Up @@ -577,6 +581,7 @@ func GetMousePos() (int, int) {
return x, y
}

// Deprecated:
// MouseClick click the mouse
//
// robotgo.MouseClick(button string, double bool)
Expand Down Expand Up @@ -646,6 +651,7 @@ func Toggle(key ...string) int {
return int(i)
}

// Deprecated:
// MouseToggle toggle the mouse
//
// Examples:
Expand All @@ -666,6 +672,7 @@ func MouseToggle(togKey string, args ...interface{}) int {
return int(i)
}

// Deprecated:
// ScrollMouse scroll the mouse to (x, "up")
//
// Examples:
Expand Down
4 changes: 4 additions & 0 deletions robotgo_mac_win.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ func internalGetTitle(pid int32, args ...int32) string {
// ActivePID active the window by PID,
//
// If args[0] > 0 on the Windows platform via a window handle to active
//
// Examples:
// ids, _ := robotgo.FindIds()
// robotgo.ActivePID(ids[0])
func ActivePID(pid int32, args ...int) error {
var hwnd int
if len(args) > 0 {
Expand Down

0 comments on commit bb3d3a5

Please sign in to comment.