xdotool 1.0.50 → 1.0.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/.history/src/XdoTool_20220115190446.cpp +350 -0
  2. package/.history/src/XdoTool_20220115190504.cpp +350 -0
  3. package/.history/src/XdoTool_20220115190619.cpp +350 -0
  4. package/.history/src/tasks/ActivateWindow_20210721132815.h +15 -0
  5. package/.history/src/tasks/ActivateWindow_20210721133108.cpp +23 -0
  6. package/.history/src/tasks/ActivateWindow_20220115190504.cpp +23 -0
  7. package/.history/src/tasks/ActivateWindow_20220115190504.h +15 -0
  8. package/.history/src/tasks/ActivateWindow_20220115190527.h +19 -0
  9. package/.history/src/tasks/ActivateWindow_20220115190528.cpp +23 -0
  10. package/.history/src/tasks/GetViewportDimensions_20210721132156.h +17 -0
  11. package/.history/src/tasks/GetViewportDimensions_20210721132157.cpp +26 -0
  12. package/.history/src/tasks/GetViewportDimensions_20220115190619.cpp +26 -0
  13. package/.history/src/tasks/GetViewportDimensions_20220115190622.cpp +26 -0
  14. package/.history/src/tasks/GetViewportDimensions_20220115190623.h +21 -0
  15. package/CMakeLists.txt +9 -6
  16. package/build/cmake-js/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c +803 -0
  17. package/build/cmake-js/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  18. package/cmake-build-debug/CMakeFiles/3.21.1/CompilerIdC/CMakeCCompilerId.c +807 -0
  19. package/cmake-build-debug/CMakeFiles/3.21.1/CompilerIdCXX/CMakeCXXCompilerId.cpp +795 -0
  20. package/out/Keyboard.js +1 -1
  21. package/out/Screenshooter.d.ts +2 -2
  22. package/out/Screenshooter.d.ts.map +1 -1
  23. package/out/Screenshooter.js +3 -3
  24. package/out/xdo.d.ts +22 -12
  25. package/out/xdo.d.ts.map +1 -1
  26. package/out/xdo.js +12 -3
  27. package/package.json +2 -3
  28. package/src/Keyboard.cpp +6 -1
  29. package/src/Keyboard.h +1 -0
  30. package/src/Screenshooter.h +0 -2
  31. package/src/TypeConverter.cpp +10 -3
  32. package/src/TypeConverter.h +1 -0
  33. package/src/XService.cpp +0 -4
  34. package/src/XService.h +1 -2
  35. package/src/XdoTool.cpp +48 -8
  36. package/src/XdoTool.h +3 -0
  37. package/src/main.cpp +0 -1
  38. package/src/tasks/ActivateWindow.cpp +3 -3
  39. package/src/tasks/ActivateWindow.h +6 -2
  40. package/src/tasks/GetActiveKeysToKeycodeList.cpp +25 -0
  41. package/src/tasks/GetActiveKeysToKeycodeList.h +19 -0
  42. package/src/tasks/GetFocusedWindow.cpp +20 -0
  43. package/src/tasks/GetFocusedWindow.h +17 -0
  44. package/src/tasks/GetImage.cpp +1 -1
  45. package/src/tasks/GetViewportDimensions.cpp +3 -3
  46. package/src/tasks/GetViewportDimensions.h +6 -2
  47. package/src/tasks/GetWindowSize.cpp +19 -0
  48. package/src/tasks/GetWindowSize.h +22 -0
  49. package/src/tasks/QueryKeymap.cpp +1 -1
  50. package/src/tasks/Sync.cpp +17 -0
  51. package/src/tasks/Sync.h +19 -0
package/out/Keyboard.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const AsyncWrapper_1 = tslib_1.__importDefault(require("./AsyncWrapper"));
4
+ const AsyncWrapper_1 = (0, tslib_1.__importDefault)(require("./AsyncWrapper"));
5
5
  const xdo_1 = require("./xdo");
6
6
  class KeyboardAsync extends AsyncWrapper_1.default {
7
7
  constructor(xdo) {
@@ -1,11 +1,11 @@
1
1
  import AsyncWrapper from "./AsyncWrapper";
2
- import { XdoCallback, XdoTool, XWindow } from "./xdo";
2
+ import { XdoCallback, XdoTool, XID } from "./xdo";
3
3
  export interface XScreenshooter {
4
4
  getImage: (callback: XdoCallback<ArrayBuffer>) => void;
5
5
  }
6
6
  export default class ScreenshooterAsync extends AsyncWrapper {
7
7
  #private;
8
- constructor(xdo: XdoTool, window?: XWindow);
8
+ constructor(xdo: XdoTool, window?: XID);
9
9
  getImage(): Promise<ArrayBuffer>;
10
10
  }
11
11
  //# sourceMappingURL=Screenshooter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Screenshooter.d.ts","sourceRoot":"","sources":["../typescript/Screenshooter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEH,WAAW,EACX,OAAO,EACP,OAAO,EACV,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,YAAY;;gBAErC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO;IAI1C,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;CAO1C"}
1
+ {"version":3,"file":"Screenshooter.d.ts","sourceRoot":"","sources":["../typescript/Screenshooter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEH,WAAW,EACX,OAAO,EACP,GAAG,EACN,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,YAAY;;gBAErC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG;IAItC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;CAO1C"}
@@ -2,16 +2,16 @@
2
2
  var _ScreenshooterAsync_ss;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const tslib_1 = require("tslib");
5
- const AsyncWrapper_1 = tslib_1.__importDefault(require("./AsyncWrapper"));
5
+ const AsyncWrapper_1 = (0, tslib_1.__importDefault)(require("./AsyncWrapper"));
6
6
  const xdo_1 = require("./xdo");
7
7
  class ScreenshooterAsync extends AsyncWrapper_1.default {
8
8
  constructor(xdo, window) {
9
9
  super();
10
10
  _ScreenshooterAsync_ss.set(this, void 0);
11
- tslib_1.__classPrivateFieldSet(this, _ScreenshooterAsync_ss, new xdo_1.Screenshooter(xdo, window), "f");
11
+ (0, tslib_1.__classPrivateFieldSet)(this, _ScreenshooterAsync_ss, new xdo_1.Screenshooter(xdo, window), "f");
12
12
  }
13
13
  getImage() {
14
- return new Promise((resolve, reject) => (tslib_1.__classPrivateFieldGet(this, _ScreenshooterAsync_ss, "f").getImage(this.resolveOrReject(resolve, reject))));
14
+ return new Promise((resolve, reject) => ((0, tslib_1.__classPrivateFieldGet)(this, _ScreenshooterAsync_ss, "f").getImage(this.resolveOrReject(resolve, reject))));
15
15
  }
16
16
  }
17
17
  exports.default = ScreenshooterAsync;
package/out/xdo.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import AsyncWrapper from "./AsyncWrapper";
2
2
  import { XScreenshooter } from "./Screenshooter";
3
- export declare type XWindow = string;
3
+ export declare type XID = unknown;
4
4
  export interface IXdoViewportDimensions {
5
5
  width: number;
6
6
  height: number;
@@ -50,22 +50,29 @@ export interface IMoveMouseOptions {
50
50
  screen_num?: number;
51
51
  }
52
52
  export declare type XdoCallback<T> = (err: Error | undefined, value: T) => void;
53
+ export interface IWindowSize {
54
+ width: number;
55
+ height: number;
56
+ }
53
57
  export interface XdoTool {
54
58
  getMouseLocation: (callback: XdoCallback<IMouseLocation>) => void;
55
- sendKeysequence: (window: XWindow, sequence: string, delay: number, callback: XdoCallback<void>) => void;
59
+ sendKeysequence: (window: XID, sequence: string, delay: number, callback: XdoCallback<void>) => void;
60
+ getWindowSize: (window: XID, callback: XdoCallback<IWindowSize>) => void;
56
61
  moveMouse: (opts: IMoveMouseOptions, callback: XdoCallback<void>) => void;
57
- enterText: (win: string, text: string, delay: number, callback: XdoCallback<void>) => void;
62
+ enterText: (win: XID, text: string, delay: number, callback: XdoCallback<void>) => void;
58
63
  searchWindows: (search: IXdoSearch, callback: XdoCallback<string[]>) => void;
59
64
  getViewportDimensions: (screen: number, callback: XdoCallback<IXdoViewportDimensions>) => void;
65
+ getFocusedWindow: (callback: XdoCallback<XID>) => void;
60
66
  /**
61
67
  * Get the PID owning a window. Not all applications support this.
62
68
  * It looks at the _NET_WM_PID property of the window.
63
69
  *
64
70
  * @return the process id or 0 if no pid found.
65
71
  */
66
- getWindowPID: (window: XWindow, callback: XdoCallback<number>) => void;
67
- activateWindow: (window: XWindow, callback: XdoCallback<void>) => void;
68
- windowHasProperty: (window: XWindow, property: string, callback: XdoCallback<boolean>) => void;
72
+ getWindowPID: (window: XID, callback: XdoCallback<number>) => void;
73
+ sync: (callback: XdoCallback<void>) => void;
74
+ activateWindow: (window: XID, callback: XdoCallback<void>) => void;
75
+ windowHasProperty: (window: XID, property: string, callback: XdoCallback<boolean>) => void;
69
76
  }
70
77
  export interface XKeyboard {
71
78
  queryKeymap: (callback: XdoCallback<ArrayBuffer>) => void;
@@ -77,7 +84,7 @@ export interface IXdoTool {
77
84
  new (): XdoTool;
78
85
  };
79
86
  Screenshooter: {
80
- new (xdo: XdoTool, window?: XWindow): XScreenshooter;
87
+ new (xdo: XdoTool, window?: XID): XScreenshooter;
81
88
  };
82
89
  Keyboard: {
83
90
  new (xdo: XdoTool): XKeyboard;
@@ -86,16 +93,19 @@ export interface IXdoTool {
86
93
  export default class XdoToolAsync extends AsyncWrapper {
87
94
  private readonly xdo;
88
95
  constructor(xdo: XdoTool);
89
- windowHasProperty(window: XWindow, property: string): Promise<boolean>;
90
- enterText(window: XWindow, text: string, delay: number): Promise<void>;
91
- sendKeysequence(window: XWindow, sequence: string, delay: number): Promise<void>;
92
- activateWindow(window: XWindow): Promise<void>;
96
+ windowHasProperty(window: XID, property: string): Promise<boolean>;
97
+ getFocusedWindow(): Promise<XID>;
98
+ sync(): Promise<void>;
99
+ enterText(window: XID, text: string, delay: number): Promise<void>;
100
+ sendKeysequence(window: XID, sequence: string, delay: number): Promise<void>;
101
+ activateWindow(window: XID): Promise<void>;
93
102
  moveMouse(opts: IMoveMouseOptions): Promise<void>;
94
103
  getWindowPID(window: string): Promise<number>;
95
104
  getViewportDimensions(screen: number): Promise<IXdoViewportDimensions>;
105
+ getWindowSize(window: XID): Promise<IWindowSize>;
96
106
  getMouseLocation(): Promise<IMouseLocation>;
97
107
  searchWindows(search: IXdoSearch): Promise<string[]>;
98
108
  }
99
- declare const XdoTool: new () => XdoTool, Screenshooter: new (xdo: XdoTool, window?: string | undefined) => XScreenshooter, Keyboard: new (xdo: XdoTool) => XKeyboard;
109
+ declare const XdoTool: new () => XdoTool, Screenshooter: new (xdo: XdoTool, window?: XID) => XScreenshooter, Keyboard: new (xdo: XdoTool) => XKeyboard;
100
110
  export { XdoTool as XdoToolBindings, Screenshooter, Keyboard };
101
111
  //# sourceMappingURL=xdo.d.ts.map
package/out/xdo.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"xdo.d.ts","sourceRoot":"","sources":["../typescript/xdo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xdo.d.ts","sourceRoot":"","sources":["../typescript/xdo.ts"],"names":[],"mappings":"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"}
package/out/xdo.js CHANGED
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Keyboard = exports.Screenshooter = exports.XdoToolBindings = exports.IXdoSearchRequire = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const bindings_1 = tslib_1.__importDefault(require("bindings"));
6
- const AsyncWrapper_1 = tslib_1.__importDefault(require("./AsyncWrapper"));
5
+ const bindings_1 = (0, tslib_1.__importDefault)(require("bindings"));
6
+ const AsyncWrapper_1 = (0, tslib_1.__importDefault)(require("./AsyncWrapper"));
7
7
  var IXdoSearchRequire;
8
8
  (function (IXdoSearchRequire) {
9
9
  IXdoSearchRequire[IXdoSearchRequire["SearchAny"] = 0] = "SearchAny";
@@ -17,6 +17,12 @@ class XdoToolAsync extends AsyncWrapper_1.default {
17
17
  windowHasProperty(window, property) {
18
18
  return new Promise((resolve, reject) => (this.xdo.windowHasProperty(window, property, this.resolveOrReject(resolve, reject))));
19
19
  }
20
+ getFocusedWindow() {
21
+ return new Promise((resolve, reject) => (this.xdo.getFocusedWindow(this.resolveOrReject(resolve, reject))));
22
+ }
23
+ sync() {
24
+ return new Promise((resolve, reject) => (this.xdo.sync(this.resolveOrReject(resolve, reject))));
25
+ }
20
26
  enterText(window, text, delay) {
21
27
  return new Promise((resolve, reject) => (this.xdo.enterText(window, text, delay, this.resolveOrReject(resolve, reject))));
22
28
  }
@@ -35,6 +41,9 @@ class XdoToolAsync extends AsyncWrapper_1.default {
35
41
  getViewportDimensions(screen) {
36
42
  return new Promise((resolve, reject) => (this.xdo.getViewportDimensions(screen, this.resolveOrReject(resolve, reject))));
37
43
  }
44
+ getWindowSize(window) {
45
+ return new Promise((resolve, reject) => (this.xdo.getWindowSize(window, this.resolveOrReject(resolve, reject))));
46
+ }
38
47
  getMouseLocation() {
39
48
  return new Promise((resolve, reject) => (this.xdo.getMouseLocation(this.resolveOrReject(resolve, reject))));
40
49
  }
@@ -43,7 +52,7 @@ class XdoToolAsync extends AsyncWrapper_1.default {
43
52
  }
44
53
  }
45
54
  exports.default = XdoToolAsync;
46
- const { XdoTool, Screenshooter, Keyboard } = bindings_1.default({
55
+ const { XdoTool, Screenshooter, Keyboard } = (0, bindings_1.default)({
47
56
  try: [
48
57
  ['module_root', 'build', 'cmake-js', 'Debug', 'bindings'],
49
58
  ['module_root', 'build', 'cmake-js', 'Release', 'bindings']
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xdotool",
3
- "version": "1.0.50",
3
+ "version": "1.0.55",
4
4
  "description": "C++ bindings for Node.js to handle X11 using the full power of libxdo.",
5
5
  "main": "./out/index.js",
6
6
  "typings": "./out/index.d.ts",
@@ -28,8 +28,7 @@
28
28
  "@types/node": "^12.12.12",
29
29
  "sarg": "^4.0.2",
30
30
  "ts-node": "^8.5.2",
31
- "typedoc": "^0.15.3",
32
- "typescript": "4.3.x"
31
+ "typescript": "4.5.x"
33
32
  },
34
33
  "dependencies": {
35
34
  "bindings": "^1.5.0",
package/src/Keyboard.cpp CHANGED
@@ -32,7 +32,8 @@ void XKeyboard::Init(Local<Object>exports) {
32
32
  { "constructor", Constructor },
33
33
  { "queryKeymap", QueryKeymap },
34
34
  { "keycodeToKeysym", KeycodeToKeysym },
35
- { "keysymToString", KeysymToString }
35
+ { "keysymToString", KeysymToString },
36
+ { "getActiveKeysToKeycodeList", GetActiveKeysToKeycodeList }
36
37
  };
37
38
  Set(
38
39
  exports,
@@ -105,3 +106,7 @@ Local<Value> XKeyboard::GetBuffer() {
105
106
  }
106
107
  return Nan::New(arrayBuffer);
107
108
  }
109
+
110
+ NAN_METHOD(XKeyboard::GetActiveKeysToKeycodeList) {
111
+
112
+ }
package/src/Keyboard.h CHANGED
@@ -18,6 +18,7 @@ private:
18
18
  static NAN_METHOD(Constructor);
19
19
  static NAN_METHOD(KeycodeToKeysym);
20
20
  static NAN_METHOD(KeysymToString);
21
+ static NAN_METHOD(GetActiveKeysToKeycodeList);
21
22
  };
22
23
 
23
24
  #endif // NODE_XDOTOOL_KEYBOARD_H_
@@ -3,8 +3,6 @@
3
3
 
4
4
  #include "XService.h"
5
5
 
6
- #include <boost/optional.hpp>
7
-
8
6
  class XScreenshooter : public XService {
9
7
  public:
10
8
  XScreenshooter(Display*, Window);
@@ -9,6 +9,7 @@ using v8::Local;
9
9
  using v8::Value;
10
10
  using v8::Object;
11
11
  using v8::Int32;
12
+ using v8::Number;
12
13
  using v8::Uint32;
13
14
  using v8::Isolate;
14
15
 
@@ -75,9 +76,7 @@ bool TypeConverter::GetInt32(Local<Object> obj, const char* prop, int32_t* out_n
75
76
  if(value->IsUndefined() || !value->IsInt32()) {
76
77
  return false;
77
78
  }
78
- if(!value->Int32Value(Nan::GetCurrentContext()).To(out_n)) {
79
- std::cerr << "Received empty value for property name: " << prop << std::endl;
80
- }
79
+ *out_n = Nan::To<Int32>(value).ToLocalChecked()->Value();
81
80
  return true;
82
81
  }
83
82
 
@@ -106,3 +105,11 @@ bool TypeConverter::GetUint32(Local<Value> val, uint32_t& out) {
106
105
  out = To<Uint32>(val).ToLocalChecked()->Value();
107
106
  return true;
108
107
  }
108
+
109
+ bool TypeConverter::GetDouble(v8::Local<v8::Value> val, double& out) {
110
+ if(!val->IsNumber()) {
111
+ return false;
112
+ }
113
+ out = Nan::To<v8::Number>(val).ToLocalChecked()->Value();
114
+ return true;
115
+ }
@@ -11,6 +11,7 @@ public:
11
11
  static bool GetString(v8::Local<v8::Object>, const char*, char**);
12
12
  static bool GetInt32(v8::Local<v8::Object>, const char*, int32_t*);
13
13
  static bool GetInt32(v8::Local<v8::Value>, int32_t&);
14
+ static bool GetDouble(v8::Local<v8::Value>, double&);
14
15
  static bool GetUint32(v8::Local<v8::Value> val, uint32_t&);
15
16
  static bool GetBool(v8::Local<v8::Object>, const char*, bool*);
16
17
  static bool GetWindow(v8::Local<v8::Value> value, Window&);
package/src/XService.cpp CHANGED
@@ -6,7 +6,3 @@ using v8::Isolate;
6
6
  using Nan::New;
7
7
 
8
8
  XService::XService(Display* display): display(display) {}
9
-
10
- Display* XService::GetDisplay() {
11
- return display;
12
- }
package/src/XService.h CHANGED
@@ -6,10 +6,9 @@
6
6
 
7
7
  class XService : public Nan::ObjectWrap, public ResourceManager {
8
8
  public:
9
+ Display* display;
9
10
  explicit XService(Display*);
10
- Display* GetDisplay();
11
11
  protected:
12
- Display* display;
13
12
  };
14
13
 
15
14
  #endif // NODE_XDOTOOL_X_SERVICE_H_
package/src/XdoTool.cpp CHANGED
@@ -11,6 +11,9 @@
11
11
  #include "ClassCreator.h"
12
12
  #include "TypeConverter.h"
13
13
  #include "XdoToolTaskWorker.h"
14
+ #include "tasks/Sync.h"
15
+ #include "tasks/GetFocusedWindow.h"
16
+ #include "tasks/GetWindowSize.h"
14
17
 
15
18
  #include <iostream>
16
19
 
@@ -38,21 +41,33 @@ XdoTool::~XdoTool() {
38
41
  }
39
42
 
40
43
  NAN_METHOD(XdoTool::GetViewportDimensions) {
41
- if(!info[0]->IsNumber()) {
42
- Nan::ThrowError("First argument must be a valid number");
44
+ int screen;
45
+ if(!TypeConverter::GetInt32(info[0], screen)){
46
+ Nan::ThrowError("First argument must be a valid integer");
43
47
  return;
44
48
  }
49
+ XdoTool* tool;
50
+ if(!TypeConverter::Unwrap(info.This(),&tool)) {
51
+ Nan::ThrowError("Method called in invalid context");
52
+ return;
53
+ }
54
+ auto task = new tasks::GetViewportDimensions(tool->xdo, screen);
55
+ auto callback = new Callback(To<Function>(info[1]).ToLocalChecked());
56
+ AsyncQueueWorker(new XdoToolTaskWorker(callback, task));
57
+ }
45
58
 
46
- int screen;
47
- if(!info[0]->Int32Value(GetCurrentContext()).To(&screen)) {
48
- std::cerr << "Empty value for screen" << std::endl;
59
+ NAN_METHOD(XdoTool::GetWindowSize) {
60
+ XID window;
61
+ if(!TypeConverter::GetWindow(info[0], window)){
62
+ Nan::ThrowError("First argument must be a valid integer");
63
+ return;
49
64
  }
50
65
  XdoTool* tool;
51
66
  if(!TypeConverter::Unwrap(info.This(),&tool)) {
52
67
  Nan::ThrowError("Method called in invalid context");
53
68
  return;
54
69
  }
55
- auto task = new XdoToolTask_GetViewportDimensions(tool->xdo, screen);
70
+ auto task = new tasks::GetWindowSize(tool->xdo, window);
56
71
  auto callback = new Callback(To<Function>(info[1]).ToLocalChecked());
57
72
  AsyncQueueWorker(new XdoToolTaskWorker(callback, task));
58
73
  }
@@ -156,7 +171,7 @@ NAN_METHOD(XdoTool::ActivateWindow) {
156
171
  Nan::ThrowError("Method called in invalid context");
157
172
  return;
158
173
  }
159
- auto task = new XdoToolTask_ActivateWindow(tool->xdo, window);
174
+ auto task = new tasks::ActivateWindow(tool->xdo, window);
160
175
  auto callback = new Callback(To<Function>(info[1]).ToLocalChecked());
161
176
  AsyncQueueWorker(new XdoToolTaskWorker(callback, task));
162
177
  }
@@ -187,6 +202,17 @@ NAN_METHOD(XdoTool::EnterText) {
187
202
  AsyncQueueWorker(new XdoToolTaskWorker(callback, task));
188
203
  }
189
204
 
205
+ NAN_METHOD(XdoTool::GetFocusedWindow) {
206
+ XdoTool* tool;
207
+ if(!TypeConverter::Unwrap(info.This(),&tool)) {
208
+ Nan::ThrowError("Method called in invalid context");
209
+ return;
210
+ }
211
+ auto task = new XdoToolTask_GetFocusedWindow(tool->xdo);
212
+ auto callback = new Callback(To<Function>(info[0]).ToLocalChecked());
213
+ AsyncQueueWorker(new XdoToolTaskWorker(callback,task));
214
+ }
215
+
190
216
  void XdoTool::Init(Local<Object> exports) {
191
217
  std::map<std::string, FunctionCallback> methods {
192
218
  { "constructor", Constructor },
@@ -194,7 +220,10 @@ void XdoTool::Init(Local<Object> exports) {
194
220
  { "searchWindows", SearchWindows },
195
221
  { "getWindowPID", GetWindowPID },
196
222
  { "moveMouse", MoveMouse },
223
+ { "getFocusedWindow", GetFocusedWindow },
197
224
  { "enterText", EnterText },
225
+ { "sync", Sync },
226
+ { "getWindowSize", GetWindowSize },
198
227
  { "sendKeysequence", SendKeysequence },
199
228
  { "windowHasProperty", WindowHasProperty },
200
229
  { "activateWindow", ActivateWindow },
@@ -308,4 +337,15 @@ NAN_METHOD(XdoTool::GetMouseLocation) {
308
337
  auto task = new XdoToolTask_GetMouseLocation(tool->xdo);
309
338
  auto callback = new Nan::Callback(Nan::To<Function>(info[0]).ToLocalChecked());
310
339
  AsyncQueueWorker(new XdoToolTaskWorker(callback, task));
311
- }
340
+ }
341
+
342
+ NAN_METHOD(XdoTool::Sync) {
343
+ XdoTool* tool;
344
+ if(!TypeConverter::Unwrap(info.This(),&tool)) {
345
+ Nan::ThrowError("Method called in invalid context");
346
+ return;
347
+ }
348
+ auto task = new XdoToolTask_Sync(tool->xdo->xdpy);
349
+ auto callback = new Nan::Callback(Nan::To<Function>(info[0]).ToLocalChecked());
350
+ AsyncQueueWorker(new XdoToolTaskWorker(callback, task));
351
+ }
package/src/XdoTool.h CHANGED
@@ -15,12 +15,15 @@ private:
15
15
  static NAN_METHOD(Constructor);
16
16
  static NAN_METHOD(SearchWindows);
17
17
  static NAN_METHOD(GetWindowPID);
18
+ static NAN_METHOD(GetWindowSize);
19
+ static NAN_METHOD(GetFocusedWindow);
18
20
  static NAN_METHOD(GetMouseLocation);
19
21
  static NAN_METHOD(SendKeysequence);
20
22
  static NAN_METHOD(GetViewportDimensions);
21
23
  static NAN_METHOD(MoveMouse);
22
24
  static NAN_METHOD(ActivateWindow);
23
25
  static NAN_METHOD(EnterText);
26
+ static NAN_METHOD(Sync);
24
27
  static NAN_METHOD(WindowHasProperty);
25
28
  };
26
29
 
package/src/main.cpp CHANGED
@@ -1,5 +1,4 @@
1
1
  #include <nan.h>
2
- #include <nan_object_wrap.h>
3
2
 
4
3
  #include "Screenshooter.h"
5
4
  #include "Keyboard.h"
@@ -3,12 +3,12 @@
3
3
  using v8::Local;
4
4
  using v8::Value;
5
5
 
6
- XdoToolTask_ActivateWindow::XdoToolTask_ActivateWindow(
6
+ tasks::ActivateWindow::ActivateWindow(
7
7
  xdo_t* xdo,
8
8
  Window window
9
9
  ): XdoToolTask(xdo), window(window) {}
10
10
 
11
- void XdoToolTask_ActivateWindow::Execute() {
11
+ void tasks::ActivateWindow::Execute() {
12
12
  if(xdo_activate_window(xdo, window) != XDO_SUCCESS) {
13
13
  SetFailure("Failed to activate window");
14
14
  return;
@@ -18,6 +18,6 @@ void XdoToolTask_ActivateWindow::Execute() {
18
18
  }
19
19
  }
20
20
 
21
- Local<Value> XdoToolTask_ActivateWindow::GetResult() {
21
+ Local<Value> tasks::ActivateWindow::GetResult() {
22
22
  return Nan::Undefined();
23
23
  }
@@ -3,13 +3,17 @@
3
3
 
4
4
  #include "../XdoToolTask.h"
5
5
 
6
- class XdoToolTask_ActivateWindow : public XdoToolTask {
6
+ namespace tasks {
7
+
8
+ class ActivateWindow : public XdoToolTask {
7
9
  public:
8
- XdoToolTask_ActivateWindow(xdo_t*, Window);
10
+ ActivateWindow(xdo_t*, Window);
9
11
  void Execute() override;
10
12
  v8::Local<v8::Value> GetResult() override;
11
13
  private:
12
14
  Window window;
13
15
  };
14
16
 
17
+ }
18
+
15
19
  #endif // NODE_XDOTOOL_ACTIVATE_WINDOW_TASK_H_
@@ -0,0 +1,25 @@
1
+ //
2
+ // Created by victor on 7/22/21.
3
+ //
4
+
5
+ #include "GetActiveKeysToKeycodeList.h"
6
+
7
+ using v8::Local;
8
+ using v8::Value;
9
+
10
+ void GetActiveKeysToKeycodeList::Execute() {
11
+ if(xdo_get_active_keys_to_keycode_list(xdo,&keys,&key_count) !=XDO_SUCCESS){
12
+ SetFailure("Failed to get active keys to keycode list");
13
+ }
14
+ }
15
+
16
+ GetActiveKeysToKeycodeList::GetActiveKeysToKeycodeList(XKeyboard* kbd):
17
+ XTask(kbd->display),
18
+ kbd(kbd)
19
+ {
20
+
21
+ }
22
+
23
+ Local<Value> GetActiveKeysToKeycodeList::GetResult() {
24
+ return Nan::Null();
25
+ }
@@ -0,0 +1,19 @@
1
+ #ifndef NODE_XDOTOOL_GETACTIVEKEYSTOKEYCODELIST_H
2
+ #define NODE_XDOTOOL_GETACTIVEKEYSTOKEYCODELIST_H
3
+
4
+ #include "../XTask.h"
5
+ #include "../Keyboard.h"
6
+
7
+ class GetActiveKeysToKeycodeList : public XTask {
8
+ public:
9
+ explicit GetActiveKeysToKeycodeList(XKeyboard*);
10
+ void Execute() override;
11
+ v8::Local<v8::Value> GetResult() override;
12
+ private:
13
+ XKeyboard* kbd;
14
+ xdo_t* xdo;
15
+ charcodemap_t* keys;
16
+ int key_count;
17
+ };
18
+
19
+ #endif //NODE_XDOTOOL_GETACTIVEKEYSTOKEYCODELIST_H
@@ -0,0 +1,20 @@
1
+ #include "GetFocusedWindow.h"
2
+
3
+
4
+ XdoToolTask_GetFocusedWindow::XdoToolTask_GetFocusedWindow(xdo_t* xdo):
5
+ XdoToolTask(xdo),
6
+ result(0)
7
+ {}
8
+
9
+ void XdoToolTask_GetFocusedWindow::Execute() {
10
+ if(xdo_get_focused_window_sane(xdo,&result) != XDO_SUCCESS) {
11
+ SetFailure("Failed to get focused window");
12
+ }
13
+ }
14
+
15
+ v8::Local<v8::Value> XdoToolTask_GetFocusedWindow::GetResult() {
16
+ return Nan::New<v8::Number>(result);
17
+ }
18
+
19
+
20
+
@@ -0,0 +1,17 @@
1
+ #ifndef NODE_XDOTOOL_GETFOCUSEDWINDOW_H
2
+ #define NODE_XDOTOOL_GETFOCUSEDWINDOW_H
3
+
4
+
5
+ #include "../XdoToolTask.h"
6
+
7
+ class XdoToolTask_GetFocusedWindow : public XdoToolTask {
8
+ public:
9
+ explicit XdoToolTask_GetFocusedWindow(xdo_t*);
10
+ void Execute() override;
11
+ v8::Local<v8::Value> GetResult() override;
12
+ private:
13
+ Window result;
14
+ };
15
+
16
+
17
+ #endif //NODE_XDOTOOL_GETFOCUSEDWINDOW_H
@@ -4,7 +4,7 @@ using v8::Local;
4
4
  using v8::Value;
5
5
  using v8::ArrayBuffer;
6
6
 
7
- XdoToolTask_GetImage::XdoToolTask_GetImage(XScreenshooter* screenshooter): XTask(screenshooter->GetDisplay()), screenshooter(screenshooter) {
7
+ XdoToolTask_GetImage::XdoToolTask_GetImage(XScreenshooter* screenshooter): XTask(screenshooter->display), screenshooter(screenshooter) {
8
8
  }
9
9
 
10
10
  void XdoToolTask_GetImage::Execute() {
@@ -8,17 +8,17 @@ using v8::Local;
8
8
  using v8::Value;
9
9
  using v8::Object;
10
10
 
11
- XdoToolTask_GetViewportDimensions::XdoToolTask_GetViewportDimensions(xdo_t* xdo, int screen): XdoToolTask(xdo), screen(screen) {
11
+ tasks::GetViewportDimensions::GetViewportDimensions(xdo_t* xdo, int screen): XdoToolTask(xdo), screen(screen) {
12
12
 
13
13
  }
14
14
 
15
- void XdoToolTask_GetViewportDimensions::Execute() {
15
+ void tasks::GetViewportDimensions::Execute() {
16
16
  if(xdo_get_viewport_dimensions(xdo, &width, &height, screen) != XDO_SUCCESS) {
17
17
  SetFailure("Failed to get viewport dimensions");
18
18
  }
19
19
  }
20
20
 
21
- Local<Value> XdoToolTask_GetViewportDimensions::GetResult() {
21
+ Local<Value> tasks::GetViewportDimensions::GetResult() {
22
22
  Local<Object> obj = New<Object>();
23
23
  Set(obj, New<String>("width").ToLocalChecked(), New<Number>(width));
24
24
  Set(obj, New<String>("height").ToLocalChecked(), New<Number>(height));
@@ -3,9 +3,11 @@
3
3
 
4
4
  #include "../XdoToolTask.h"
5
5
 
6
- class XdoToolTask_GetViewportDimensions : public XdoToolTask {
6
+ namespace tasks {
7
+
8
+ class GetViewportDimensions : public XdoToolTask {
7
9
  public:
8
- XdoToolTask_GetViewportDimensions(xdo_t*, int);
10
+ GetViewportDimensions(xdo_t*, int);
9
11
  void Execute() override;
10
12
  v8::Local<v8::Value> GetResult() override;
11
13
  private:
@@ -14,4 +16,6 @@ private:
14
16
  unsigned int height;
15
17
  };
16
18
 
19
+ }
20
+
17
21
  #endif // NODE_XDOTOOL_GET_VIEWPORT_DIMENSIONS_H_
@@ -0,0 +1,19 @@
1
+ #include "GetWindowSize.h"
2
+
3
+ tasks::GetWindowSize::GetWindowSize(xdo_t* xdo, XID id): XdoToolTask(xdo),id(id) {
4
+
5
+ }
6
+
7
+ void tasks::GetWindowSize::Execute() {
8
+ status = xdo_get_window_size(xdo,id,&width,&height);
9
+ if(status != XDO_SUCCESS){
10
+ SetFailure("Failed to get window size");
11
+ }
12
+ }
13
+
14
+ v8::Local<v8::Value> tasks::GetWindowSize::GetResult() {
15
+ auto obj = Nan::New<v8::Object>();
16
+ Nan::Set(obj,Nan::New("width").ToLocalChecked(),Nan::New<v8::Uint32>(width));
17
+ Nan::Set(obj,Nan::New("height").ToLocalChecked(),Nan::New<v8::Uint32>(height));
18
+ return obj;
19
+ }