quickwin 2.3.1 → 3.0.1
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 +1 -2
- package/README.md +1 -2
- package/constants.ts +15 -0
- package/enum_map.d.ts +3 -0
- package/examples/PdfCanvas.js +1 -1
- package/examples/PdfCanvas.tsx +2 -2
- package/examples/execd/main.js +334 -188
- package/examples/pdf_preview2.js +76 -67
- package/examples/pdf_preview2.ts +84 -64
- package/examples/pdf_viewer.js +4932 -1029
- package/examples/pdf_viewer.tsx +11 -22
- package/examples/test_gallery.js +308 -143
- package/examples/test_gallery.tsx +12 -7
- package/examples/test_react_lazy.js +295 -133
- package/examples/test_react_lazy.tsx +4 -3
- package/examples/test_react_listbox.js +293 -132
- package/examples/test_react_listbox.tsx +3 -2
- package/examples/test_root_window.js +283 -126
- package/examples/test_tab.js +295 -133
- package/examples/test_tab.tsx +4 -3
- package/examples/tray_demo.js +37 -30
- package/examples/tray_demo.tsx +39 -32
- package/lib/abort.d.ts +21 -0
- package/lib/assert.d.ts +2 -0
- package/lib/bitmap.d.ts +7 -0
- package/lib/bitmap.js +40 -0
- package/lib/cache-utils.d.ts +6 -0
- package/lib/certs.d.ts +1 -0
- package/lib/certs.js +31 -3
- package/lib/dpi.d.ts +9 -0
- package/lib/dpi.js +30 -0
- package/lib/dumpRects.d.ts +2 -0
- package/lib/dumpRects.js +14 -7
- package/lib/exec-log.d.ts +23 -0
- package/lib/fetch.d.ts +4 -0
- package/lib/ffi/bind.d.ts +70 -0
- package/lib/ffi/bind.js +5 -4
- package/lib/ffi/ctype.d.ts +117 -0
- package/lib/ffi/index.d.ts +2 -0
- package/lib/ffi/struct.d.ts +174 -0
- package/lib/http-common.d.ts +143 -0
- package/lib/http-server.d.ts +59 -0
- package/lib/polyfill.d.ts +22 -0
- package/lib/react-qw/components/Button.d.ts +9 -0
- package/lib/react-qw/components/CheckBox.d.ts +11 -0
- package/lib/react-qw/components/ComboBox.d.ts +11 -0
- package/lib/react-qw/components/DateTimePicker.d.ts +15 -0
- package/lib/react-qw/components/DateTimePicker.js +6 -7
- package/lib/react-qw/components/Input.d.ts +15 -0
- package/lib/react-qw/components/Input.js +5 -1
- package/lib/react-qw/components/Link.d.ts +12 -0
- package/lib/react-qw/components/ListBox.d.ts +13 -0
- package/lib/react-qw/components/ListView.d.ts +37 -0
- package/lib/react-qw/components/ListView.js +8 -6
- package/lib/react-qw/components/PathPicker.d.ts +23 -0
- package/lib/react-qw/components/ProgressBar.d.ts +9 -0
- package/lib/react-qw/components/RadioButton.d.ts +11 -0
- package/lib/react-qw/components/ScrollView.d.ts +9 -0
- package/lib/react-qw/components/ScrollView.js +28 -22
- package/lib/react-qw/components/Slider.d.ts +12 -0
- package/lib/react-qw/components/Tab.d.ts +14 -0
- package/lib/react-qw/components/Tooltip.d.ts +7 -0
- package/lib/react-qw/components/TreeView.d.ts +18 -0
- package/lib/react-qw/components/index.d.ts +16 -0
- package/lib/react-qw/index.d.ts +24 -0
- package/lib/react-qw/index.js +7 -5
- package/lib/react-qw/layout.d.ts +29 -0
- package/lib/react-qw/nmhdr.d.ts +1 -0
- package/lib/react-qw/props.d.ts +2 -0
- package/lib/react-qw/props.js +3 -3
- package/lib/react-qw/reconciler.d.ts +21 -0
- package/lib/react-qw/reconciler.js +12 -17
- package/lib/stream.d.ts +20 -0
- package/lib/text-codec.d.ts +39 -0
- package/lib/text-measure.d.ts +14 -0
- package/lib/text-measure.js +9 -6
- package/lib/url.d.ts +54 -0
- package/lib/websocket.d.ts +73 -0
- package/lib/windows/{advapi32.ts → advapi32.d.ts} +6 -21
- package/lib/windows/comctl32.d.ts +14 -0
- package/lib/windows/comctl32.js +3 -2
- package/lib/windows/comdlg32.d.ts +4 -0
- package/lib/windows/{gdi32.ts → gdi32.d.ts} +184 -97
- package/lib/windows/gdi32.js +28 -6
- package/lib/windows/{kernel32.ts → kernel32.d.ts} +145 -113
- package/lib/windows/kernel32.js +9 -0
- package/lib/windows/{msimg32.ts → msimg32.d.ts} +11 -14
- package/lib/windows/ntdll.d.ts +5 -0
- package/lib/windows/ole32.d.ts +3 -0
- package/lib/windows/{psapi.ts → psapi.d.ts} +9 -18
- package/lib/windows/shell32.d.ts +51 -0
- package/lib/windows/shell32.js +11 -2
- package/lib/windows/structs.d.ts +3141 -0
- package/lib/windows/structs.js +51 -0
- package/lib/windows/user32.d.ts +623 -0
- package/lib/windows/user32.js +6 -5
- package/lib/windows/version.d.ts +27 -0
- package/lib/windows/{winspool.ts → winspool.d.ts} +18 -32
- package/main.js +13 -5
- package/package.json +16 -7
- package/quickwin.d.ts +13 -115
- 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/test/bench_ffi_callraw.js +3 -4
- package/test/bench_ffi_callraw.ts +3 -4
- package/test/debug/mupdf_debug.js +4 -22
- package/test/debug/wasm_export_debug.js +2 -12
- package/test/debug/wasm_names.js +3 -13
- package/test/example.pdf +0 -0
- package/test/mupdf-cdn.js +40 -0
- package/test/mupdf-cdn.ts +43 -0
- package/test/test_ffi.js +8 -9
- package/test/test_ffi.ts +8 -9
- package/test/test_ffi_abi.js +6 -6
- package/test/test_ffi_abi.ts +8 -8
- package/test/test_ffi_windows.js +82 -11
- package/test/test_ffi_windows.ts +85 -11
- package/test/test_gdi_draw.js +3 -3
- package/test/test_gdi_draw.ts +4 -4
- package/test/test_mupdf_render.js +4 -22
- package/test/test_mupdf_render.ts +4 -23
- package/test/test_mupdf_twice.js +4 -19
- package/test/test_mupdf_twice.ts +4 -20
- package/test/test_mupdf_wasm.js +10 -4
- package/test/test_mupdf_wasm.ts +6 -4
- package/test/test_react_complex.js +316 -140
- package/test/test_react_counter.js +295 -133
- package/test/test_react_flex.js +297 -138
- package/test/test_react_hidden.js +296 -134
- package/test/test_react_listview_link.js +288 -131
- package/test/test_react_notify.js +290 -133
- package/test/test_react_render.js +295 -133
- package/lib/abort.ts +0 -69
- package/lib/assert.ts +0 -7
- package/lib/cache-utils.ts +0 -40
- package/lib/certs.ts +0 -229
- package/lib/dumpRects.ts +0 -26
- package/lib/exec-log.ts +0 -30
- package/lib/fetch.ts +0 -589
- package/lib/ffi/bind.ts +0 -539
- package/lib/ffi/ctype.ts +0 -371
- package/lib/ffi/index.ts +0 -6
- package/lib/ffi/struct.ts +0 -780
- package/lib/http-common.ts +0 -441
- package/lib/http-server.ts +0 -604
- package/lib/polyfill.ts +0 -171
- package/lib/react-qw/components/index.ts +0 -17
- package/lib/react-qw/index.ts +0 -96
- package/lib/react-qw/layout.ts +0 -111
- package/lib/react-qw/nmhdr.ts +0 -7
- package/lib/react-qw/props.ts +0 -41
- package/lib/react-qw/reconciler.ts +0 -383
- package/lib/stream.ts +0 -22
- package/lib/text-codec.ts +0 -171
- package/lib/text-measure.ts +0 -41
- package/lib/url.ts +0 -201
- package/lib/websocket.ts +0 -600
- package/lib/windows/comctl32.ts +0 -19
- package/lib/windows/comdlg32.ts +0 -10
- package/lib/windows/ntdll.ts +0 -11
- package/lib/windows/ole32.ts +0 -9
- package/lib/windows/shell32.ts +0 -39
- package/lib/windows/structs.ts +0 -752
- package/lib/windows/user32.ts +0 -619
- package/lib/windows/version.ts +0 -35
- package/vendor/mupdf-wasm/mupdf-wasm.d.ts +0 -571
- package/vendor/mupdf-wasm/mupdf-wasm.js +0 -2749
- package/vendor/mupdf-wasm/mupdf-wasm.wasm +0 -0
- package/vendor/mupdf-wasm/mupdf.d.ts +0 -939
- package/vendor/mupdf-wasm/mupdf.js +0 -3317
package/examples/pdf_viewer.tsx
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { MaybePtr, PtrArrayBuffer } from '../lib/ffi/ctype.js'
|
|
1
|
+
import { MaybePtr, PtrArrayBuffer, NULL } from '../lib/ffi/ctype.js'
|
|
2
2
|
import '../lib/polyfill.js'
|
|
3
3
|
import * as std from 'std'
|
|
4
4
|
import * as gui from 'gui'
|
|
5
|
-
import type { Document, Page, Pixmap } from '
|
|
5
|
+
import type { Document, Page, Pixmap } from '@quickwinlabs/mupdf-wasm'
|
|
6
|
+
import { MUPDF_JS_URL, preloadMupdfWasm } from '../test/mupdf-cdn.js'
|
|
6
7
|
import { useState } from 'react'
|
|
7
8
|
import { render, Button, Input, ScrollView } from '../lib/react-qw/index.js'
|
|
8
9
|
import { WCHAR } from '../lib/ffi/bind.js'
|
|
9
10
|
import { PdfCanvas } from './PdfCanvas.js'
|
|
10
11
|
import { OPENFILENAMEW } from '../lib/windows/structs.js'
|
|
11
12
|
import { GetOpenFileName } from '../lib/windows/comdlg32.js'
|
|
12
|
-
import {
|
|
13
|
+
import { MessageBox, ShowWindow } from '../lib/windows/user32.js'
|
|
14
|
+
import { ShowWindowCmd, WindowStyle } from '../constants'
|
|
13
15
|
|
|
14
|
-
type MuPdf = typeof import('
|
|
16
|
+
type MuPdf = typeof import('@quickwinlabs/mupdf-wasm')
|
|
15
17
|
|
|
16
18
|
function openPdfFileDialog(owner: MaybePtr<'HWND'>): string | null {
|
|
17
19
|
const fileBuf = WCHAR.alloc(260)
|
|
@@ -35,22 +37,9 @@ function openPdfFileDialog(owner: MaybePtr<'HWND'>): string | null {
|
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
async function loadMupdf(): Promise<MuPdf | null> {
|
|
38
|
-
const wasmPath = './vendor/mupdf-wasm/mupdf-wasm.wasm'
|
|
39
|
-
const fp = std.open(wasmPath, 'rb')
|
|
40
|
-
if (!fp) { std.printf('Error: cannot open %s\n', wasmPath); return null }
|
|
41
|
-
fp.seek(0, 2)
|
|
42
|
-
const size = fp.tell()
|
|
43
|
-
fp.seek(0, 0)
|
|
44
|
-
const buf = new ArrayBuffer(size)
|
|
45
|
-
fp.read(buf, 0, size)
|
|
46
|
-
fp.close()
|
|
47
|
-
|
|
48
|
-
;(globalThis).$libmupdf_wasm_Module = {
|
|
49
|
-
wasmBinary: buf,
|
|
50
|
-
locateFile: (p: string) => p
|
|
51
|
-
}
|
|
52
40
|
try {
|
|
53
|
-
|
|
41
|
+
await preloadMupdfWasm()
|
|
42
|
+
return await import(MUPDF_JS_URL)
|
|
54
43
|
} catch (e) {
|
|
55
44
|
std.printf('Error: mupdf load failed: %s\n', String(e))
|
|
56
45
|
return null
|
|
@@ -159,7 +148,7 @@ function App({ mupdf, mainHwnd: hwnd }: { mupdf: MuPdf; mainHwnd: gui.HWND }) {
|
|
|
159
148
|
setCurrentPage(page)
|
|
160
149
|
setTotalPages(result.totalPages)
|
|
161
150
|
} else {
|
|
162
|
-
|
|
151
|
+
MessageBox(NULL, 'Failed to render PDF page', 'JS Alert', 0)
|
|
163
152
|
}
|
|
164
153
|
}
|
|
165
154
|
|
|
@@ -219,7 +208,7 @@ function App({ mupdf, mainHwnd: hwnd }: { mupdf: MuPdf; mainHwnd: gui.HWND }) {
|
|
|
219
208
|
async function main() {
|
|
220
209
|
const mupdf = await loadMupdf()
|
|
221
210
|
if (!mupdf) {
|
|
222
|
-
|
|
211
|
+
MessageBox(NULL, 'Loading mupdf WASM failed.\nCheck network access to unpkg.com.', 'JS Alert', 0)
|
|
223
212
|
return
|
|
224
213
|
}
|
|
225
214
|
|
|
@@ -232,7 +221,7 @@ async function main() {
|
|
|
232
221
|
|
|
233
222
|
if (hwnd) {
|
|
234
223
|
render(<App mupdf={mupdf} mainHwnd={hwnd} />, hwnd)
|
|
235
|
-
setTimeout(() =>
|
|
224
|
+
setTimeout(() => ShowWindow(hwnd, ShowWindowCmd.SHOWNORMAL), 0)
|
|
236
225
|
}
|
|
237
226
|
}
|
|
238
227
|
|