quickwin 3.0.1 → 3.0.2
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/README.en.md +3 -0
- package/README.md +2 -0
- package/package.json +1 -3
- package/qwin-nowasm-x86.exe +0 -0
- package/qwin-nowasm.exe +0 -0
- package/qwin-x86.exe +0 -0
- package/qwin.exe +0 -0
- package/examples/PdfCanvas.js +0 -38
- package/examples/PdfCanvas.tsx +0 -54
- package/examples/execd/main.js +0 -23379
- package/examples/execd/tray.js +0 -192
- package/examples/execd/worker.js +0 -122
- package/examples/pdf_preview2.js +0 -398
- package/examples/pdf_preview2.ts +0 -353
- package/examples/pdf_viewer.js +0 -22515
- package/examples/pdf_viewer.tsx +0 -228
- package/examples/test_gallery.js +0 -18692
- package/examples/test_gallery.tsx +0 -291
- package/examples/test_react_lazy.js +0 -18560
- package/examples/test_react_lazy.tsx +0 -65
- package/examples/test_react_listbox.js +0 -18562
- package/examples/test_react_listbox.tsx +0 -73
- package/examples/test_root_window.js +0 -18532
- package/examples/test_root_window.tsx +0 -41
- package/examples/test_tab.js +0 -18563
- package/examples/test_tab.tsx +0 -77
- package/examples/tray_demo.js +0 -86
- package/examples/tray_demo.tsx +0 -89
- package/test/add.wasm +0 -0
- package/test/bench_ffi_callraw.js +0 -235
- package/test/bench_ffi_callraw.ts +0 -235
- package/test/bench_ffi_overhead.js +0 -139
- package/test/bench_ffi_overhead.ts +0 -141
- package/test/bench_sendmessage.js +0 -104
- package/test/bench_sendmessage.ts +0 -100
- package/test/bench_sendmessage_nonnull.js +0 -187
- package/test/bench_sendmessage_nonnull.ts +0 -188
- package/test/complex.wasm +0 -0
- package/test/complex_imports.wasm +0 -0
- package/test/debug/http_server_e2e.js +0 -31
- package/test/debug/minwasm.js +0 -52
- package/test/debug/mupdf_debug.js +0 -86
- package/test/debug/wasm.js +0 -122
- package/test/debug/wasm_export_debug.js +0 -54
- package/test/debug/wasm_names.js +0 -36
- package/test/example.pdf +0 -0
- package/test/global_imports.wasm +0 -0
- package/test/import_func.wasm +0 -0
- package/test/imports.wasm +0 -0
- package/test/mupdf-cdn.js +0 -40
- package/test/mupdf-cdn.ts +0 -43
- package/test/run.js +0 -111
- package/test/run.ts +0 -116
- package/test/sjlj.wasm +0 -0
- package/test/test_basic.js +0 -7
- package/test/test_basic.ts +0 -9
- package/test/test_basic_fetch.js +0 -63
- package/test/test_basic_fetch.ts +0 -59
- package/test/test_brotli.js +0 -48
- package/test/test_brotli.ts +0 -52
- package/test/test_fetch_cache.js +0 -169
- package/test/test_fetch_cache.ts +0 -187
- package/test/test_ffi.js +0 -157
- package/test/test_ffi.ts +0 -170
- package/test/test_ffi_abi.js +0 -290
- package/test/test_ffi_abi.ts +0 -274
- package/test/test_ffi_array.js +0 -116
- package/test/test_ffi_array.ts +0 -141
- package/test/test_ffi_bind.js +0 -656
- package/test/test_ffi_bind.ts +0 -670
- package/test/test_ffi_struct.js +0 -779
- package/test/test_ffi_struct.ts +0 -828
- package/test/test_ffi_struct_layout.js +0 -495
- package/test/test_ffi_struct_layout.ts +0 -543
- package/test/test_ffi_user32.js +0 -103
- package/test/test_ffi_user32.ts +0 -113
- package/test/test_ffi_windows.js +0 -172
- package/test/test_ffi_windows.ts +0 -187
- package/test/test_files.js +0 -102
- package/test/test_files.ts +0 -121
- package/test/test_frame_encoding.js +0 -128
- package/test/test_frame_encoding.ts +0 -132
- package/test/test_gdi_draw.js +0 -681
- package/test/test_gdi_draw.ts +0 -725
- package/test/test_helper.js +0 -91
- package/test/test_helper.ts +0 -88
- package/test/test_http_import.js +0 -96
- package/test/test_http_import.ts +0 -93
- package/test/test_http_server.js +0 -214
- package/test/test_http_server.ts +0 -211
- package/test/test_import_dir.js +0 -4
- package/test/test_import_dir.ts +0 -5
- package/test/test_ipv6.js +0 -134
- package/test/test_ipv6.ts +0 -130
- package/test/test_jsx.js +0 -1314
- package/test/test_meta_url.js +0 -3
- package/test/test_meta_url.ts +0 -4
- package/test/test_mupdf_render.js +0 -51
- package/test/test_mupdf_render.ts +0 -55
- package/test/test_mupdf_twice.js +0 -62
- package/test/test_mupdf_twice.ts +0 -65
- package/test/test_mupdf_wasm.js +0 -39
- package/test/test_mupdf_wasm.ts +0 -32
- package/test/test_net_event.js +0 -57
- package/test/test_net_event.ts +0 -56
- package/test/test_net_fetch.js +0 -384
- package/test/test_net_fetch.ts +0 -373
- package/test/test_net_websocket.js +0 -180
- package/test/test_net_websocket.ts +0 -164
- package/test/test_polyfill.js +0 -144
- package/test/test_polyfill.ts +0 -159
- package/test/test_printer.js +0 -137
- package/test/test_printer.ts +0 -148
- package/test/test_proc.js +0 -141
- package/test/test_proc.ts +0 -163
- package/test/test_react_complex.js +0 -18678
- package/test/test_react_counter.js +0 -18555
- package/test/test_react_flex.js +0 -18871
- package/test/test_react_hidden.js +0 -18560
- package/test/test_react_listview_link.js +0 -18590
- package/test/test_react_notify.js +0 -18797
- package/test/test_react_render.js +0 -18550
- package/test/test_registry.js +0 -74
- package/test/test_registry.ts +0 -95
- package/test/test_sysinfo.js +0 -122
- package/test/test_sysinfo.ts +0 -141
- package/test/test_url.js +0 -173
- package/test/test_url.ts +0 -183
- package/test/test_wasm_basic.js +0 -85
- package/test/test_wasm_basic.ts +0 -73
- package/test/test_wasm_import_global.js +0 -41
- package/test/test_wasm_import_global.ts +0 -45
- package/test/test_wasm_sjlj.js +0 -145
- package/test/test_wasm_sjlj.ts +0 -125
- package/test/test_wasm_types.js +0 -97
- package/test/test_wasm_types.ts +0 -124
- package/test/test_wolfssl_read.js +0 -203
- package/test/test_wolfssl_read.ts +0 -184
- package/test/test_worker.js +0 -21
- package/test/test_worker.ts +0 -24
- package/test/test_worker_concurrent.js +0 -45
- package/test/test_worker_concurrent.ts +0 -56
- package/test/test_worker_data_url.js +0 -46
- package/test/test_worker_data_url.ts +0 -51
- package/test/test_worker_fetch.js +0 -26
- package/test/test_worker_fetch.ts +0 -27
- package/test/test_worker_net.js +0 -69
- package/test/test_worker_net.ts +0 -66
- package/test/test_worker_wasm_concurrent.js +0 -44
- package/test/test_worker_wasm_concurrent.ts +0 -45
- package/test/types.wasm +0 -0
- package/test/worker_fetch.js +0 -13
- package/test/worker_fetch.ts +0 -13
- package/test/worker_helper.js +0 -1
- package/test/worker_helper.ts +0 -1
- package/test/worker_http.js +0 -18
- package/test/worker_http.ts +0 -20
- package/test/worker_import_lib.js +0 -12
- package/test/worker_import_lib.ts +0 -13
- package/test/worker_module.js +0 -16
- package/test/worker_module.ts +0 -17
- package/test/worker_wasm_concurrent.js +0 -22
- package/test/worker_wasm_concurrent.ts +0 -22
package/README.en.md
CHANGED
|
@@ -157,6 +157,9 @@ Both sides must set `onmessage = null` when communication is complete. This rele
|
|
|
157
157
|
|
|
158
158
|
## Examples
|
|
159
159
|
|
|
160
|
+
The example scripts live in the repository (**not shipped in the npm package**,
|
|
161
|
+
which only carries the exes, main.js, lib and the type declarations):
|
|
162
|
+
|
|
160
163
|
```bash
|
|
161
164
|
.\qwin.exe examples/tray_demo.js # system tray app
|
|
162
165
|
.\qwin.exe examples/pdf_preview2.js # PDF reader with mupdf
|
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "quickwin",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.2",
|
|
5
5
|
"description": "QuickJS Win32 runtime — GUI, networking, WASM, FFI, and more",
|
|
6
6
|
"bin": {
|
|
7
7
|
"quickwin": "qwin.exe",
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
"qwin-nowasm-x86.exe",
|
|
21
21
|
"main.js",
|
|
22
22
|
"lib/",
|
|
23
|
-
"test/",
|
|
24
|
-
"examples/",
|
|
25
23
|
"quickwin.d.ts",
|
|
26
24
|
"constants.ts",
|
|
27
25
|
"enum_map.d.ts",
|
package/qwin-nowasm-x86.exe
CHANGED
|
Binary file
|
package/qwin-nowasm.exe
CHANGED
|
Binary file
|
package/qwin-x86.exe
CHANGED
|
Binary file
|
package/qwin.exe
CHANGED
|
Binary file
|
package/examples/PdfCanvas.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef, useRef } from 'react';
|
|
3
|
-
import { GetDC, ReleaseDC } from '../lib/windows/user32.js';
|
|
4
|
-
import { SetDIBitsToDevice } from '../lib/windows/gdi32.js';
|
|
5
|
-
import { BITMAPINFOHEADER } from '../lib/windows/structs.js';
|
|
6
|
-
function makeBitmapInfo(w, h) {
|
|
7
|
-
// biHeight 负 = 自顶向下(DIB 原点左上);biCompression 缺省 0 = BI_RGB 无压缩
|
|
8
|
-
return BITMAPINFOHEADER.encode({ biSize: BITMAPINFOHEADER.size, biWidth: w, biHeight: -h, biPlanes: 1, biBitCount: 24 });
|
|
9
|
-
}
|
|
10
|
-
export const PdfCanvas = forwardRef(({ pixmap, style }, ref) => {
|
|
11
|
-
const canvasRef = useRef(null);
|
|
12
|
-
const pixmapRef = useRef(pixmap);
|
|
13
|
-
pixmapRef.current = pixmap;
|
|
14
|
-
return (_jsx("w", { type: "STATIC", ws: 268435456 /* WindowStyle.VISIBLE */ | 33554432 /* WindowStyle.CLIPCHILDREN */, style: style, ref: (h) => {
|
|
15
|
-
canvasRef.current = h;
|
|
16
|
-
if (typeof ref === 'function')
|
|
17
|
-
ref(h);
|
|
18
|
-
else if (ref)
|
|
19
|
-
ref.current = h;
|
|
20
|
-
}, onEvent: (e) => {
|
|
21
|
-
const hwnd = e.hwnd;
|
|
22
|
-
if (e.msg === 0x14)
|
|
23
|
-
return 1;
|
|
24
|
-
if (e.msg === 15 /* WmMsg.PAINT */) {
|
|
25
|
-
const pm = pixmapRef.current;
|
|
26
|
-
if (!pm)
|
|
27
|
-
return 0;
|
|
28
|
-
const hdc = GetDC(hwnd);
|
|
29
|
-
if (hdc) {
|
|
30
|
-
const bmi = makeBitmapInfo(pm.w, pm.h);
|
|
31
|
-
SetDIBitsToDevice(hdc, 0, 0, pm.w, pm.h, 0, 0, 0, pm.h, pm.data, bmi, 0 /* ColorUse.RGB_COLORS */);
|
|
32
|
-
ReleaseDC(hwnd, hdc);
|
|
33
|
-
}
|
|
34
|
-
return 0;
|
|
35
|
-
}
|
|
36
|
-
return;
|
|
37
|
-
} }));
|
|
38
|
-
});
|
package/examples/PdfCanvas.tsx
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { PtrArrayBuffer } from '../lib/ffi/ctype.js'
|
|
2
|
-
import { forwardRef, useRef } from 'react'
|
|
3
|
-
import * as gui from 'gui'
|
|
4
|
-
import { GetDC, ReleaseDC } from '../lib/windows/user32.js'
|
|
5
|
-
import { SetDIBitsToDevice } from '../lib/windows/gdi32.js'
|
|
6
|
-
import { BITMAPINFOHEADER } from '../lib/windows/structs.js'
|
|
7
|
-
import type { WStyle } from '../lib/react-qw/jsx.d.ts'
|
|
8
|
-
import { ColorUse, WindowStyle, WmMsg } from '../constants'
|
|
9
|
-
|
|
10
|
-
function makeBitmapInfo(w: number, h: number) {
|
|
11
|
-
// biHeight 负 = 自顶向下(DIB 原点左上);biCompression 缺省 0 = BI_RGB 无压缩
|
|
12
|
-
return BITMAPINFOHEADER.encode({ biSize: BITMAPINFOHEADER.size, biWidth: w, biHeight: -h, biPlanes: 1, biBitCount: 24 })
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface PdfCanvasProps {
|
|
16
|
-
pixmap?: { data: PtrArrayBuffer<string>; w: number; h: number }
|
|
17
|
-
style?: WStyle
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export const PdfCanvas = forwardRef<gui.HWND, PdfCanvasProps>(
|
|
21
|
-
({ pixmap, style }, ref) => {
|
|
22
|
-
const canvasRef = useRef<gui.HWND>(null)
|
|
23
|
-
const pixmapRef = useRef(pixmap)
|
|
24
|
-
pixmapRef.current = pixmap
|
|
25
|
-
|
|
26
|
-
return (
|
|
27
|
-
<w type="STATIC"
|
|
28
|
-
ws={WindowStyle.VISIBLE | WindowStyle.CLIPCHILDREN}
|
|
29
|
-
style={style}
|
|
30
|
-
ref={(h: gui.HWND) => {
|
|
31
|
-
canvasRef.current = h
|
|
32
|
-
if (typeof ref === 'function') ref(h)
|
|
33
|
-
else if (ref) (ref as React.RefObject<gui.HWND | null>).current = h
|
|
34
|
-
}}
|
|
35
|
-
onEvent={(e) => {
|
|
36
|
-
const hwnd = e.hwnd
|
|
37
|
-
if (e.msg === 0x14) return 1
|
|
38
|
-
if (e.msg === WmMsg.PAINT) {
|
|
39
|
-
const pm = pixmapRef.current
|
|
40
|
-
if (!pm) return 0
|
|
41
|
-
const hdc = GetDC(hwnd)
|
|
42
|
-
if (hdc) {
|
|
43
|
-
const bmi = makeBitmapInfo(pm.w, pm.h)
|
|
44
|
-
SetDIBitsToDevice(hdc, 0, 0, pm.w, pm.h, 0, 0, 0, pm.h, pm.data, bmi, ColorUse.RGB_COLORS)
|
|
45
|
-
ReleaseDC(hwnd, hdc)
|
|
46
|
-
}
|
|
47
|
-
return 0
|
|
48
|
-
}
|
|
49
|
-
return
|
|
50
|
-
}}
|
|
51
|
-
/>
|
|
52
|
-
)
|
|
53
|
-
}
|
|
54
|
-
)
|