plusui-native-core 0.1.65 → 0.1.68
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.
- package/Core/API/Connect_API.ts +160 -0
- package/Core/API/index.ts +127 -0
- package/Core/Features/App/app.ts +192 -131
- package/Core/Features/Clipboard/clipboard.ts +92 -127
- package/Core/Features/Connection/README.md +111 -214
- package/Core/Features/Connection/connect.ts +190 -272
- package/Core/Features/Display/display.ts +142 -116
- package/Core/Features/FileDrop/filedrop.ts +163 -283
- package/Core/Features/Keyboard/keyboard.ts +194 -186
- package/Core/Features/Menu/menu.ts +233 -420
- package/Core/Features/Router/router.ts +125 -0
- package/Core/Features/Tray/tray.ts +102 -80
- package/Core/Features/WebGPU/webgpu.ts +283 -1024
- package/Core/Features/Window/window.ts +207 -156
- package/package.json +5 -1
|
@@ -1,116 +1,142 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Display API - Display/screen management
|
|
3
|
+
*
|
|
4
|
+
* Direct method calls - no .on/.emit
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* import { display } from '@plusui/api';
|
|
8
|
+
*
|
|
9
|
+
* const displays = await display.getAllDisplays();
|
|
10
|
+
* const primary = await display.getPrimaryDisplay();
|
|
11
|
+
* display.onChanged((d) => { ... });
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export interface DisplayMode {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
refreshRate: number;
|
|
18
|
+
bitDepth: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface DisplayBounds {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface DisplayResolution {
|
|
29
|
+
width: number;
|
|
30
|
+
height: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface Display {
|
|
34
|
+
id: number;
|
|
35
|
+
name: string;
|
|
36
|
+
isPrimary: boolean;
|
|
37
|
+
bounds: DisplayBounds;
|
|
38
|
+
workArea: DisplayBounds;
|
|
39
|
+
resolution: DisplayResolution;
|
|
40
|
+
currentMode: DisplayMode;
|
|
41
|
+
scaleFactor: number;
|
|
42
|
+
rotation: number;
|
|
43
|
+
isInternal: boolean;
|
|
44
|
+
isConnected: boolean;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
let _invoke: ((name: string, args?: unknown[]) => Promise<unknown>) | null = null;
|
|
48
|
+
let _event: ((event: string, callback: (...args: unknown[]) => void) => () => void) | null = null;
|
|
49
|
+
|
|
50
|
+
export function setInvokeFn(fn: (name: string, args?: unknown[]) => Promise<unknown>) {
|
|
51
|
+
_invoke = fn;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function setEventFn(fn: (event: string, callback: (...args: unknown[]) => void) => () => void) {
|
|
55
|
+
_event = fn;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async function invoke<T = unknown>(name: string, args?: unknown[]): Promise<T> {
|
|
59
|
+
if (!_invoke) {
|
|
60
|
+
if (typeof window !== 'undefined' && (window as any).__invoke__) {
|
|
61
|
+
_invoke = (window as any).__invoke__;
|
|
62
|
+
} else {
|
|
63
|
+
throw new Error('Display API not initialized');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return _invoke!(name, args) as Promise<T>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function eventHandler(event: string, callback: (...args: unknown[]) => void): () => void {
|
|
70
|
+
if (!_event) {
|
|
71
|
+
if (typeof window !== 'undefined' && (window as any).__on__) {
|
|
72
|
+
_event = (window as any).__on__;
|
|
73
|
+
} else {
|
|
74
|
+
return () => {};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return _event!(event, callback);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export const display = {
|
|
81
|
+
async getAllDisplays(): Promise<Display[]> {
|
|
82
|
+
return invoke<Display[]>('display.getAllDisplays');
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
async getPrimaryDisplay(): Promise<Display> {
|
|
86
|
+
return invoke<Display>('display.getPrimaryDisplay');
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
async getDisplayAt(x: number, y: number): Promise<Display> {
|
|
90
|
+
return invoke<Display>('display.getDisplayAt', [x, y]);
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
async getDisplayAtCursor(): Promise<Display> {
|
|
94
|
+
return invoke<Display>('display.getDisplayAtCursor');
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
async getDisplayById(id: number): Promise<Display> {
|
|
98
|
+
return invoke<Display>('display.getDisplayById', [id]);
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
async setDisplayMode(displayId: number, mode: DisplayMode): Promise<boolean> {
|
|
102
|
+
return invoke<boolean>('display.setDisplayMode', [displayId, mode]);
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
async setPosition(displayId: number, x: number, y: number): Promise<boolean> {
|
|
106
|
+
return invoke<boolean>('display.setPosition', [displayId, x, y]);
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
async turnOff(displayId: number): Promise<boolean> {
|
|
110
|
+
return invoke<boolean>('display.turnOff', [displayId]);
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
async getScreenWidth(): Promise<number> {
|
|
114
|
+
return invoke<number>('screen.getWidth');
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
async getScreenHeight(): Promise<number> {
|
|
118
|
+
return invoke<number>('screen.getHeight');
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
async getScaleFactor(): Promise<number> {
|
|
122
|
+
return invoke<number>('screen.getScaleFactor');
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
async getRefreshRate(): Promise<number> {
|
|
126
|
+
return invoke<number>('screen.getRefreshRate');
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
onConnected(callback: (display: Display) => void): () => void {
|
|
130
|
+
return eventHandler('display:connected', callback as (...args: unknown[]) => void);
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
onDisconnected(callback: (displayId: number) => void): () => void {
|
|
134
|
+
return eventHandler('display:disconnected', callback as (...args: unknown[]) => void);
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
onChanged(callback: (display: Display) => void): () => void {
|
|
138
|
+
return eventHandler('display:changed', callback as (...args: unknown[]) => void);
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export default display;
|