quickwin 2.1.1 → 2.3.0
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 +9 -9
- package/README.md +9 -9
- package/constants.ts +1063 -0
- package/enum_map.d.ts +129 -0
- package/examples/PdfCanvas.js +2 -2
- package/examples/PdfCanvas.tsx +3 -2
- package/examples/{exec_server.js → execd/main.js} +1114 -287
- package/examples/execd/tray.js +192 -0
- package/examples/execd/worker.js +122 -0
- package/examples/pdf_preview2.js +46 -46
- package/examples/pdf_preview2.ts +55 -54
- package/examples/pdf_viewer.js +134 -130
- package/examples/pdf_viewer.tsx +6 -5
- package/examples/test_gallery.js +135 -131
- package/examples/test_gallery.tsx +9 -8
- package/examples/test_react_lazy.js +130 -128
- package/examples/test_react_lazy.tsx +7 -6
- package/examples/test_react_listbox.js +130 -128
- package/examples/test_react_listbox.tsx +8 -7
- package/examples/test_root_window.js +130 -128
- package/examples/test_root_window.tsx +5 -5
- package/examples/test_tab.js +130 -128
- package/examples/test_tab.tsx +7 -6
- package/examples/tray_demo.js +8 -8
- package/examples/tray_demo.tsx +9 -8
- package/lib/dumpRects.js +2 -2
- package/lib/dumpRects.ts +3 -2
- package/lib/fetch.js +15 -15
- package/lib/fetch.ts +16 -15
- package/lib/ffi/bind.js +3 -3
- package/lib/ffi/bind.ts +3 -3
- package/lib/ffi/ctype.ts +3 -1
- package/lib/ffi/struct.js +23 -7
- package/lib/ffi/struct.ts +50 -23
- package/lib/http-server.js +5 -5
- package/lib/http-server.ts +6 -5
- package/lib/react-qw/components/Button.js +2 -2
- package/lib/react-qw/components/CheckBox.js +4 -4
- package/lib/react-qw/components/ComboBox.js +10 -10
- package/lib/react-qw/components/DateTimePicker.js +12 -12
- package/lib/react-qw/components/Input.js +7 -7
- package/lib/react-qw/components/Link.js +4 -4
- package/lib/react-qw/components/ListBox.js +12 -12
- package/lib/react-qw/components/ListView.js +35 -35
- package/lib/react-qw/components/PathPicker.js +3 -3
- package/lib/react-qw/components/ProgressBar.js +4 -4
- package/lib/react-qw/components/RadioButton.js +4 -4
- package/lib/react-qw/components/ScrollView.js +28 -28
- package/lib/react-qw/components/Slider.js +11 -11
- package/lib/react-qw/components/Tab.js +10 -10
- package/lib/react-qw/components/Tooltip.js +8 -8
- package/lib/react-qw/components/TreeView.js +20 -20
- package/lib/react-qw/index.js +5 -5
- package/lib/react-qw/index.ts +6 -5
- package/lib/react-qw/props.js +4 -4
- package/lib/react-qw/props.ts +5 -4
- package/lib/react-qw/reconciler.js +10 -10
- package/lib/react-qw/reconciler.ts +11 -10
- package/lib/text-measure.js +3 -3
- package/lib/text-measure.ts +4 -3
- package/lib/websocket.js +17 -17
- package/lib/websocket.ts +18 -17
- package/lib/windows/advapi32.js +7 -7
- package/lib/windows/advapi32.ts +7 -7
- package/lib/windows/gdi32.js +17 -17
- package/lib/windows/gdi32.ts +17 -17
- package/lib/windows/kernel32.js +41 -2
- package/lib/windows/kernel32.ts +45 -2
- package/lib/windows/shell32.js +24 -3
- package/lib/windows/shell32.ts +27 -4
- package/lib/windows/structs.js +230 -92
- package/lib/windows/structs.ts +278 -92
- package/lib/windows/user32.js +18 -6
- package/lib/windows/user32.ts +18 -6
- package/lib/windows/winspool.js +3 -3
- package/lib/windows/winspool.ts +3 -3
- package/package.json +4 -3
- package/quickwin.d.ts +32 -10
- 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/test_ffi_bind.js +12 -10
- package/test/test_ffi_bind.ts +14 -12
- package/test/test_ffi_struct.js +60 -26
- package/test/test_ffi_struct.ts +58 -28
- package/test/test_ffi_windows.js +1 -1
- package/test/test_ffi_windows.ts +1 -1
- package/test/test_files.js +7 -7
- package/test/test_files.ts +8 -8
- package/test/test_gdi_draw.js +51 -51
- package/test/test_gdi_draw.ts +57 -57
- package/test/test_http_server.js +3 -3
- package/test/test_http_server.ts +4 -3
- package/test/test_ipv6.js +3 -3
- package/test/test_ipv6.ts +4 -3
- package/test/test_net_event.js +3 -3
- package/test/test_net_event.ts +4 -3
- package/test/test_printer.js +4 -4
- package/test/test_printer.ts +5 -5
- package/test/test_react_complex.js +132 -130
- package/test/test_react_counter.js +130 -128
- package/test/test_react_flex.js +132 -130
- package/test/test_react_hidden.js +130 -128
- package/test/test_react_listview_link.js +131 -129
- package/test/test_react_notify.js +148 -146
- package/test/test_react_render.js +130 -128
- package/test/test_registry.js +6 -6
- package/test/test_registry.ts +8 -8
- package/test/test_wolfssl_read.js +8 -8
- package/test/test_wolfssl_read.ts +9 -8
- package/examples/exec_server.tsx +0 -488
- package/examples/exec_server_worker.js +0 -395
- package/examples/exec_server_worker.ts +0 -417
- package/examples/setres.js +0 -79
- package/examples/setres.ts +0 -86
- package/quickwin_const.d.ts +0 -1037
package/examples/pdf_viewer.js
CHANGED
|
@@ -16280,7 +16280,7 @@ function doEncode(dv, base, fields, v) {
|
|
|
16280
16280
|
function createStruct(t) {
|
|
16281
16281
|
const { fields, size, maxEffectiveAlign } = computeStructLayout(t);
|
|
16282
16282
|
return {
|
|
16283
|
-
|
|
16283
|
+
fields,
|
|
16284
16284
|
size,
|
|
16285
16285
|
structAlign: maxEffectiveAlign,
|
|
16286
16286
|
decode: (p) => {
|
|
@@ -16309,6 +16309,14 @@ function createStruct(t) {
|
|
|
16309
16309
|
};
|
|
16310
16310
|
}
|
|
16311
16311
|
function buildDecl(kind, member, pack) {
|
|
16312
|
+
const declKind = member["#"];
|
|
16313
|
+
if (declKind !== void 0 && declKind !== kind)
|
|
16314
|
+
throw new Error(`ffi-struct: ${kind}() received a '${String(declKind)}' declaration (kind mismatch \u2014 use ${declKind}() for it)`);
|
|
16315
|
+
const declPack = member["#pack"];
|
|
16316
|
+
if (pack === void 0 && declPack !== void 0)
|
|
16317
|
+
pack = declPack;
|
|
16318
|
+
else if (pack !== void 0 && declPack !== void 0 && pack !== declPack)
|
|
16319
|
+
throw new Error(`ffi-struct: #pack conflict: opts.pack=${pack} vs declaration ${String(declPack)}`);
|
|
16312
16320
|
const decl = { "#": kind };
|
|
16313
16321
|
if (pack !== void 0)
|
|
16314
16322
|
decl["#pack"] = pack;
|
|
@@ -16317,49 +16325,6 @@ function buildDecl(kind, member, pack) {
|
|
|
16317
16325
|
decl[k] = v;
|
|
16318
16326
|
return decl;
|
|
16319
16327
|
}
|
|
16320
|
-
function structArray(def) {
|
|
16321
|
-
const { fields, size } = computeStructLayout(def.__struct);
|
|
16322
|
-
const readN = (dv, n) => {
|
|
16323
|
-
const out = [];
|
|
16324
|
-
for (let i = 0; i < n; i++)
|
|
16325
|
-
out.push(doDecode(dv, i * size, fields));
|
|
16326
|
-
return out;
|
|
16327
|
-
};
|
|
16328
|
-
return {
|
|
16329
|
-
encode: (els) => {
|
|
16330
|
-
if (!Array.isArray(els) || els.length === 0)
|
|
16331
|
-
throw new Error(`ffi-struct: structArray(def).encode(els) requires a non-empty element array (pass NULL for an empty pointer position)`);
|
|
16332
|
-
const out = def.alloc(els.length);
|
|
16333
|
-
for (let i = 0; i < els.length; i++)
|
|
16334
|
-
def.encode(els[i], out, i * def.size);
|
|
16335
|
-
return out;
|
|
16336
|
-
},
|
|
16337
|
-
decode: ((p, count) => {
|
|
16338
|
-
if (count !== void 0 && (!Number.isInteger(count) || count < 0))
|
|
16339
|
-
throw new Error(`ffi-struct: structArray.decode(p, count) requires a non-negative integer count, got ${count}`);
|
|
16340
|
-
if (typeof p === "number") {
|
|
16341
|
-
if (count === void 0)
|
|
16342
|
-
throw new Error(`ffi-struct: structArray.decode(address, count) requires an explicit count (a bare address carries no length)`);
|
|
16343
|
-
if (count === 0)
|
|
16344
|
-
return [];
|
|
16345
|
-
return readN(new DataView(ffi2.readBytes(p, count * size)), count);
|
|
16346
|
-
}
|
|
16347
|
-
let n;
|
|
16348
|
-
if (count !== void 0) {
|
|
16349
|
-
n = count;
|
|
16350
|
-
if (n * size > p.byteLength)
|
|
16351
|
-
throw new Error(`ffi-struct: structArray.decode: count ${n} \xD7 size ${size} = ${n * size} exceeds buffer byteLength ${p.byteLength}`);
|
|
16352
|
-
} else {
|
|
16353
|
-
if (p.byteLength % size !== 0)
|
|
16354
|
-
throw new Error(`ffi-struct: structArray.decode: byteLength ${p.byteLength} is not a multiple of size ${size} (mixed buffer? pass count explicitly)`);
|
|
16355
|
-
n = p.byteLength / size;
|
|
16356
|
-
}
|
|
16357
|
-
if (n === 0)
|
|
16358
|
-
return [];
|
|
16359
|
-
return readN(new DataView(p), n);
|
|
16360
|
-
})
|
|
16361
|
-
};
|
|
16362
|
-
}
|
|
16363
16328
|
function struct(a, b6, c) {
|
|
16364
16329
|
const isNamed = typeof a === "string";
|
|
16365
16330
|
const raw = isNamed ? b6 : a;
|
|
@@ -16368,21 +16333,28 @@ function struct(a, b6, c) {
|
|
|
16368
16333
|
}
|
|
16369
16334
|
|
|
16370
16335
|
// _build/lib/windows/structs.js
|
|
16371
|
-
var
|
|
16336
|
+
var RECT_DECL = {
|
|
16337
|
+
"#": "struct",
|
|
16372
16338
|
left: "i32",
|
|
16373
16339
|
top: "i32",
|
|
16374
16340
|
right: "i32",
|
|
16375
16341
|
bottom: "i32"
|
|
16376
|
-
}
|
|
16377
|
-
var
|
|
16342
|
+
};
|
|
16343
|
+
var RECT = /* @__PURE__ */ struct("RECT", RECT_DECL);
|
|
16344
|
+
var POINT_DECL = {
|
|
16345
|
+
"#": "struct",
|
|
16378
16346
|
x: "i32",
|
|
16379
16347
|
y: "i32"
|
|
16380
|
-
}
|
|
16381
|
-
var
|
|
16348
|
+
};
|
|
16349
|
+
var POINT = /* @__PURE__ */ struct("POINT", POINT_DECL);
|
|
16350
|
+
var SIZE_DECL = {
|
|
16351
|
+
"#": "struct",
|
|
16382
16352
|
cx: "i32",
|
|
16383
16353
|
cy: "i32"
|
|
16384
|
-
}
|
|
16385
|
-
var
|
|
16354
|
+
};
|
|
16355
|
+
var SIZE = /* @__PURE__ */ struct("SIZE", SIZE_DECL);
|
|
16356
|
+
var LOGFONTW_DECL = {
|
|
16357
|
+
"#": "struct",
|
|
16386
16358
|
lfHeight: "i32",
|
|
16387
16359
|
lfWidth: "i32",
|
|
16388
16360
|
lfEscapement: "i32",
|
|
@@ -16397,8 +16369,10 @@ var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", {
|
|
|
16397
16369
|
lfQuality: "u8",
|
|
16398
16370
|
lfPitchAndFamily: "u8",
|
|
16399
16371
|
lfFaceName: "u16[32]@utf-16le"
|
|
16400
|
-
}
|
|
16401
|
-
var
|
|
16372
|
+
};
|
|
16373
|
+
var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", LOGFONTW_DECL);
|
|
16374
|
+
var BITMAPINFOHEADER_DECL = {
|
|
16375
|
+
"#": "struct",
|
|
16402
16376
|
biSize: "u32",
|
|
16403
16377
|
biWidth: "i32",
|
|
16404
16378
|
biHeight: "i32",
|
|
@@ -16410,8 +16384,10 @@ var BITMAPINFOHEADER = /* @__PURE__ */ struct("BITMAPINFOHEADER", {
|
|
|
16410
16384
|
biYPelsPerMeter: "i32",
|
|
16411
16385
|
biClrUsed: "u32",
|
|
16412
16386
|
biClrImportant: "u32"
|
|
16413
|
-
}
|
|
16414
|
-
var
|
|
16387
|
+
};
|
|
16388
|
+
var BITMAPINFOHEADER = /* @__PURE__ */ struct("BITMAPINFOHEADER", BITMAPINFOHEADER_DECL);
|
|
16389
|
+
var OPENFILENAMEW_DECL = {
|
|
16390
|
+
"#": "struct",
|
|
16415
16391
|
lStructSize: "u32",
|
|
16416
16392
|
hwndOwner: "<HWND>ptr",
|
|
16417
16393
|
hInstance: "<HMODULE>ptr",
|
|
@@ -16435,8 +16411,10 @@ var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", {
|
|
|
16435
16411
|
pvReserved: "<>ptr",
|
|
16436
16412
|
dwReserved: "u32",
|
|
16437
16413
|
FlagsEx: "u32"
|
|
16438
|
-
}
|
|
16439
|
-
var
|
|
16414
|
+
};
|
|
16415
|
+
var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", OPENFILENAMEW_DECL);
|
|
16416
|
+
var BROWSEINFOW_DECL = {
|
|
16417
|
+
"#": "struct",
|
|
16440
16418
|
hwndOwner: "<HWND>ptr",
|
|
16441
16419
|
pidlRoot: "<>ptr",
|
|
16442
16420
|
pszDisplayName: "<>ptr",
|
|
@@ -16445,13 +16423,17 @@ var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", {
|
|
|
16445
16423
|
lpfn: "<>ptr",
|
|
16446
16424
|
lParam: "<>ptr",
|
|
16447
16425
|
iImage: "i32"
|
|
16448
|
-
}
|
|
16449
|
-
var
|
|
16426
|
+
};
|
|
16427
|
+
var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", BROWSEINFOW_DECL);
|
|
16428
|
+
var NMHDR_DECL = {
|
|
16429
|
+
"#": "struct",
|
|
16450
16430
|
hwndFrom: "<HWND>ptr",
|
|
16451
16431
|
idFrom: "<>ptr",
|
|
16452
16432
|
code: "i32"
|
|
16453
|
-
}
|
|
16454
|
-
var
|
|
16433
|
+
};
|
|
16434
|
+
var NMHDR = /* @__PURE__ */ struct("NMHDR", NMHDR_DECL);
|
|
16435
|
+
var SYSTEMTIME_DECL = {
|
|
16436
|
+
"#": "struct",
|
|
16455
16437
|
wYear: "u16",
|
|
16456
16438
|
wMonth: "u16",
|
|
16457
16439
|
wDayOfWeek: "u16",
|
|
@@ -16460,35 +16442,44 @@ var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", {
|
|
|
16460
16442
|
wMinute: "u16",
|
|
16461
16443
|
wSecond: "u16",
|
|
16462
16444
|
wMilliseconds: "u16"
|
|
16463
|
-
}
|
|
16464
|
-
var
|
|
16465
|
-
|
|
16445
|
+
};
|
|
16446
|
+
var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", SYSTEMTIME_DECL);
|
|
16447
|
+
var NMDATETIMECHANGE_DECL = {
|
|
16448
|
+
"#": "struct",
|
|
16449
|
+
hdr: NMHDR_DECL,
|
|
16466
16450
|
dwFlags: "u32",
|
|
16467
|
-
st:
|
|
16468
|
-
}
|
|
16469
|
-
var
|
|
16451
|
+
st: SYSTEMTIME_DECL
|
|
16452
|
+
};
|
|
16453
|
+
var NMDATETIMECHANGE = /* @__PURE__ */ struct("NMDATETIMECHANGE", NMDATETIMECHANGE_DECL);
|
|
16454
|
+
var LITEM_DECL = {
|
|
16455
|
+
"#": "struct",
|
|
16470
16456
|
mask: "u32",
|
|
16471
16457
|
iLink: "i32",
|
|
16472
16458
|
state: "u32",
|
|
16473
16459
|
stateMask: "u32",
|
|
16474
16460
|
szID: "u16[48]@utf-16le",
|
|
16475
16461
|
szUrl: "u16[2084]@utf-16le"
|
|
16476
|
-
}
|
|
16477
|
-
var
|
|
16478
|
-
|
|
16479
|
-
|
|
16480
|
-
|
|
16481
|
-
|
|
16482
|
-
|
|
16462
|
+
};
|
|
16463
|
+
var NMLINK_DECL = {
|
|
16464
|
+
"#": "struct",
|
|
16465
|
+
hdr: NMHDR_DECL,
|
|
16466
|
+
item: LITEM_DECL
|
|
16467
|
+
};
|
|
16468
|
+
var NMLINK = /* @__PURE__ */ struct("NMLINK", NMLINK_DECL);
|
|
16469
|
+
var NMCUSTOMDRAW_DECL = {
|
|
16470
|
+
"#": "struct",
|
|
16471
|
+
hdr: NMHDR_DECL,
|
|
16483
16472
|
dwDrawStage: "u32",
|
|
16484
16473
|
hdc: "<HDC>ptr",
|
|
16485
16474
|
rc: "i32[4]",
|
|
16486
16475
|
dwItemSpec: "<>ptr",
|
|
16487
16476
|
uItemState: "u32",
|
|
16488
16477
|
lItemlParam: "<>ptr"
|
|
16489
|
-
}
|
|
16490
|
-
var
|
|
16491
|
-
|
|
16478
|
+
};
|
|
16479
|
+
var NMCUSTOMDRAW = /* @__PURE__ */ struct("NMCUSTOMDRAW", NMCUSTOMDRAW_DECL);
|
|
16480
|
+
var NMLVCUSTOMDRAW_DECL = {
|
|
16481
|
+
"#": "struct",
|
|
16482
|
+
hdr: NMHDR_DECL,
|
|
16492
16483
|
dwDrawStage: "u32",
|
|
16493
16484
|
hdc: "<HDC>ptr",
|
|
16494
16485
|
rc: "i32[4]",
|
|
@@ -16499,9 +16490,11 @@ var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", {
|
|
|
16499
16490
|
clrTextBk: "u32",
|
|
16500
16491
|
iSubItem: "i32",
|
|
16501
16492
|
dwItemType: "u32"
|
|
16502
|
-
}
|
|
16503
|
-
var
|
|
16504
|
-
|
|
16493
|
+
};
|
|
16494
|
+
var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", NMLVCUSTOMDRAW_DECL);
|
|
16495
|
+
var NMLISTVIEW_DECL = {
|
|
16496
|
+
"#": "struct",
|
|
16497
|
+
hdr: NMHDR_DECL,
|
|
16505
16498
|
iItem: "i32",
|
|
16506
16499
|
iSubItem: "i32",
|
|
16507
16500
|
uNewState: "u32",
|
|
@@ -16509,8 +16502,10 @@ var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", {
|
|
|
16509
16502
|
uChanged: "u32",
|
|
16510
16503
|
ptAction: "i32[2]",
|
|
16511
16504
|
lParam: "<>ptr"
|
|
16512
|
-
}
|
|
16513
|
-
var
|
|
16505
|
+
};
|
|
16506
|
+
var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", NMLISTVIEW_DECL);
|
|
16507
|
+
var TCITEMW_DECL = {
|
|
16508
|
+
"#": "struct",
|
|
16514
16509
|
mask: "u32",
|
|
16515
16510
|
dwState: "u32",
|
|
16516
16511
|
dwStateMask: "u32",
|
|
@@ -16518,8 +16513,10 @@ var TCITEMW = /* @__PURE__ */ struct("TCITEMW", {
|
|
|
16518
16513
|
cchTextMax: "i32",
|
|
16519
16514
|
iImage: "i32",
|
|
16520
16515
|
lParam: "<>ptr"
|
|
16521
|
-
}
|
|
16522
|
-
var
|
|
16516
|
+
};
|
|
16517
|
+
var TCITEMW = /* @__PURE__ */ struct("TCITEMW", TCITEMW_DECL);
|
|
16518
|
+
var TVITEM_DECL = {
|
|
16519
|
+
"#": "struct",
|
|
16523
16520
|
mask: "u32",
|
|
16524
16521
|
hItem: "<>ptr",
|
|
16525
16522
|
state: "u32",
|
|
@@ -16530,20 +16527,26 @@ var TVITEM = /* @__PURE__ */ struct("TVITEM", {
|
|
|
16530
16527
|
iSelectedImage: "i32",
|
|
16531
16528
|
cChildren: "i32",
|
|
16532
16529
|
lParam: "<>ptr"
|
|
16533
|
-
}
|
|
16534
|
-
var
|
|
16530
|
+
};
|
|
16531
|
+
var TVITEM = /* @__PURE__ */ struct("TVITEM", TVITEM_DECL);
|
|
16532
|
+
var TVINSERTSTRUCT_DECL = {
|
|
16533
|
+
"#": "struct",
|
|
16535
16534
|
hParent: "<>ptr",
|
|
16536
16535
|
hInsertAfter: "<>ptr",
|
|
16537
|
-
item:
|
|
16538
|
-
}
|
|
16539
|
-
var
|
|
16536
|
+
item: TVITEM_DECL
|
|
16537
|
+
};
|
|
16538
|
+
var TVINSERTSTRUCT = /* @__PURE__ */ struct("TVINSERTSTRUCT", TVINSERTSTRUCT_DECL);
|
|
16539
|
+
var LVHITTESTINFO_DECL = {
|
|
16540
|
+
"#": "struct",
|
|
16540
16541
|
pt: "i32[2]",
|
|
16541
16542
|
flags: "u32",
|
|
16542
16543
|
iItem: "i32",
|
|
16543
16544
|
iSubItem: "i32",
|
|
16544
16545
|
iGroup: "i32"
|
|
16545
|
-
}
|
|
16546
|
-
var
|
|
16546
|
+
};
|
|
16547
|
+
var LVHITTESTINFO = /* @__PURE__ */ struct("LVHITTESTINFO", LVHITTESTINFO_DECL);
|
|
16548
|
+
var LVITEMW_DECL = {
|
|
16549
|
+
"#": "struct",
|
|
16547
16550
|
mask: "u32",
|
|
16548
16551
|
iItem: "i32",
|
|
16549
16552
|
iSubItem: "i32",
|
|
@@ -16559,8 +16562,10 @@ var LVITEMW = /* @__PURE__ */ struct("LVITEMW", {
|
|
|
16559
16562
|
puColumns: "<>ptr",
|
|
16560
16563
|
piColFmt: "<>ptr",
|
|
16561
16564
|
iGroup: "i32"
|
|
16562
|
-
}
|
|
16563
|
-
var
|
|
16565
|
+
};
|
|
16566
|
+
var LVITEMW = /* @__PURE__ */ struct("LVITEMW", LVITEMW_DECL);
|
|
16567
|
+
var LVCOLUMNW_DECL = {
|
|
16568
|
+
"#": "struct",
|
|
16564
16569
|
mask: "u32",
|
|
16565
16570
|
fmt: "i32",
|
|
16566
16571
|
cx: "i32",
|
|
@@ -16572,23 +16577,16 @@ var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", {
|
|
|
16572
16577
|
cxMin: "i32",
|
|
16573
16578
|
cxDefault: "i32",
|
|
16574
16579
|
cxIdeal: "i32"
|
|
16575
|
-
}
|
|
16576
|
-
var
|
|
16577
|
-
|
|
16578
|
-
|
|
16579
|
-
|
|
16580
|
-
|
|
16581
|
-
|
|
16582
|
-
|
|
16583
|
-
}
|
|
16584
|
-
var
|
|
16585
|
-
hdc: "<HDC>ptr",
|
|
16586
|
-
fErase: "i32",
|
|
16587
|
-
rcPaint: RECT.__struct,
|
|
16588
|
-
fRestore: "i32",
|
|
16589
|
-
fIncUpdate: "i32",
|
|
16590
|
-
rgbReserved: "u8[32]"
|
|
16591
|
-
});
|
|
16580
|
+
};
|
|
16581
|
+
var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", LVCOLUMNW_DECL);
|
|
16582
|
+
var NOTIFYICONIDENTIFIER_DECL = {
|
|
16583
|
+
"#": "struct",
|
|
16584
|
+
cbSize: "u32",
|
|
16585
|
+
hWnd: "<HWND>ptr",
|
|
16586
|
+
uID: "u32",
|
|
16587
|
+
guidItem: "u32[4]"
|
|
16588
|
+
};
|
|
16589
|
+
var NOTIFYICONIDENTIFIER = /* @__PURE__ */ struct("NOTIFYICONIDENTIFIER", NOTIFYICONIDENTIFIER_DECL);
|
|
16592
16590
|
|
|
16593
16591
|
// _build/lib/windows/user32.js
|
|
16594
16592
|
var b = (name, sig, encoders) => bind("user32.dll", name, sig, encoders);
|
|
@@ -16622,7 +16620,6 @@ import * as os4 from "os";
|
|
|
16622
16620
|
|
|
16623
16621
|
// _build/lib/windows/gdi32.js
|
|
16624
16622
|
var b2 = (name, sig, encoders) => bind("gdi32.dll", name, sig, encoders);
|
|
16625
|
-
var POINTArr = structArray(POINT);
|
|
16626
16623
|
var DeleteObject = /* @__PURE__ */ b2("DeleteObject", "<HGDIOBJ>ptr -> i32");
|
|
16627
16624
|
var GetDeviceCaps = /* @__PURE__ */ b2("GetDeviceCaps", "<HDC>ptr! i32@DeviceCap -> i32");
|
|
16628
16625
|
var CreateFontIndirect = /* @__PURE__ */ b2("CreateFontIndirectW", "<LOGFONTW>ptr -> <HGDIOBJ>ptr", { LOGFONTW });
|
|
@@ -16656,14 +16653,14 @@ function applyProps(instance, newProps, _oldProps) {
|
|
|
16656
16653
|
gui.ShowWindow(
|
|
16657
16654
|
hwnd,
|
|
16658
16655
|
newProps.hidden ? 0 : 5
|
|
16659
|
-
/*
|
|
16656
|
+
/* ShowWindowCmd.SHOW */
|
|
16660
16657
|
);
|
|
16661
16658
|
}
|
|
16662
16659
|
if ("visible" in newProps) {
|
|
16663
16660
|
gui.ShowWindow(
|
|
16664
16661
|
hwnd,
|
|
16665
16662
|
newProps.visible ? 5 : 0
|
|
16666
|
-
/*
|
|
16663
|
+
/* ShowWindowCmd.HIDE */
|
|
16667
16664
|
);
|
|
16668
16665
|
}
|
|
16669
16666
|
}
|
|
@@ -16759,7 +16756,7 @@ function measureText(hdc, text, maxWidth) {
|
|
|
16759
16756
|
-1,
|
|
16760
16757
|
r.ptr,
|
|
16761
16758
|
1024
|
|
16762
|
-
/*
|
|
16759
|
+
/* DrawTextFlag.CALCRECT */
|
|
16763
16760
|
);
|
|
16764
16761
|
const { right, bottom } = RECT.decode(r);
|
|
16765
16762
|
return { width: right, height: bottom };
|
|
@@ -16807,7 +16804,7 @@ function setupWindowProc(instance, hwnd) {
|
|
|
16807
16804
|
const oldProc = GetWindowLongPtr(
|
|
16808
16805
|
hwnd,
|
|
16809
16806
|
-4
|
|
16810
|
-
/*
|
|
16807
|
+
/* Gwlp.WNDPROC */
|
|
16811
16808
|
);
|
|
16812
16809
|
instancesByHwnd.set(hwnd, instance);
|
|
16813
16810
|
gui3.SetWindowProc(hwnd, (hwnd2, msg, wParam, lParam) => {
|
|
@@ -16895,7 +16892,7 @@ function runFlexLayout(inst) {
|
|
|
16895
16892
|
r.width * scaleFactor,
|
|
16896
16893
|
r.height * scaleFactor,
|
|
16897
16894
|
64
|
|
16898
|
-
/*
|
|
16895
|
+
/* SetWindowPosFlag.SWP_SHOWWINDOW */
|
|
16899
16896
|
);
|
|
16900
16897
|
InvalidateRect(child.hwnd, NULL, 1);
|
|
16901
16898
|
child.lastRect = { x: r.x, y: r.y, w: r.width, h: r.height };
|
|
@@ -17051,7 +17048,7 @@ var hostConfig = {
|
|
|
17051
17048
|
gui3.ShowWindow(
|
|
17052
17049
|
instance.hwnd,
|
|
17053
17050
|
0
|
|
17054
|
-
/*
|
|
17051
|
+
/* ShowWindowCmd.HIDE */
|
|
17055
17052
|
);
|
|
17056
17053
|
},
|
|
17057
17054
|
hideTextInstance(instance) {
|
|
@@ -17059,7 +17056,7 @@ var hostConfig = {
|
|
|
17059
17056
|
gui3.ShowWindow(
|
|
17060
17057
|
instance.hwnd,
|
|
17061
17058
|
0
|
|
17062
|
-
/*
|
|
17059
|
+
/* ShowWindowCmd.HIDE */
|
|
17063
17060
|
);
|
|
17064
17061
|
},
|
|
17065
17062
|
unhideInstance(instance, _props) {
|
|
@@ -17067,7 +17064,7 @@ var hostConfig = {
|
|
|
17067
17064
|
gui3.ShowWindow(
|
|
17068
17065
|
instance.hwnd,
|
|
17069
17066
|
5
|
|
17070
|
-
/*
|
|
17067
|
+
/* ShowWindowCmd.SHOW */
|
|
17071
17068
|
);
|
|
17072
17069
|
},
|
|
17073
17070
|
unhideTextInstance(instance, _text) {
|
|
@@ -17075,7 +17072,7 @@ var hostConfig = {
|
|
|
17075
17072
|
gui3.ShowWindow(
|
|
17076
17073
|
instance.hwnd,
|
|
17077
17074
|
5
|
|
17078
|
-
/*
|
|
17075
|
+
/* ShowWindowCmd.SHOW */
|
|
17079
17076
|
);
|
|
17080
17077
|
},
|
|
17081
17078
|
shouldSetTextContent(_type, props) {
|
|
@@ -17503,7 +17500,7 @@ function getCellFont(hwnd, style) {
|
|
|
17503
17500
|
...base,
|
|
17504
17501
|
...style.bold ? {
|
|
17505
17502
|
lfWeight: 700
|
|
17506
|
-
/*
|
|
17503
|
+
/* FontWeight.BOLD */
|
|
17507
17504
|
} : {},
|
|
17508
17505
|
...style.italic ? { lfItalic: 1 } : {},
|
|
17509
17506
|
...style.underline ? { lfUnderline: 1 } : {}
|
|
@@ -17625,7 +17622,7 @@ var ListView = (0, import_react9.forwardRef)(function ListViewInner({ columns, d
|
|
|
17625
17622
|
4150,
|
|
17626
17623
|
0,
|
|
17627
17624
|
32 | 1 | 65536
|
|
17628
|
-
/*
|
|
17625
|
+
/* LvExStyle.DOUBLEBUFFER */
|
|
17629
17626
|
);
|
|
17630
17627
|
const n = columns.length;
|
|
17631
17628
|
for (let j = 0; j < n; j++) {
|
|
@@ -17670,7 +17667,7 @@ var ListView = (0, import_react9.forwardRef)(function ListViewInner({ columns, d
|
|
|
17670
17667
|
4126,
|
|
17671
17668
|
j,
|
|
17672
17669
|
-2
|
|
17673
|
-
/*
|
|
17670
|
+
/* LvColumnWidthCmd.AUTOSIZE_USEHEADER */
|
|
17674
17671
|
);
|
|
17675
17672
|
}
|
|
17676
17673
|
}
|
|
@@ -17812,7 +17809,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17812
17809
|
natW,
|
|
17813
17810
|
natH,
|
|
17814
17811
|
4
|
|
17815
|
-
/*
|
|
17812
|
+
/* SetWindowPosFlag.SWP_NOZORDER */
|
|
17816
17813
|
);
|
|
17817
17814
|
forceFlexLayout(content);
|
|
17818
17815
|
if (natW > svW) {
|
|
@@ -17851,7 +17848,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17851
17848
|
0,
|
|
17852
17849
|
0,
|
|
17853
17850
|
1 | 4
|
|
17854
|
-
/*
|
|
17851
|
+
/* SetWindowPosFlag.SWP_NOZORDER */
|
|
17855
17852
|
);
|
|
17856
17853
|
gui12.SetScrollInfo(sv, bar, { pos: newPos }, true);
|
|
17857
17854
|
}
|
|
@@ -17917,7 +17914,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17917
17914
|
handleScroll(
|
|
17918
17915
|
e,
|
|
17919
17916
|
1
|
|
17920
|
-
/*
|
|
17917
|
+
/* ScrollBar.VERT */
|
|
17921
17918
|
);
|
|
17922
17919
|
return 0;
|
|
17923
17920
|
}
|
|
@@ -17925,7 +17922,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17925
17922
|
handleScroll(
|
|
17926
17923
|
e,
|
|
17927
17924
|
0
|
|
17928
|
-
/*
|
|
17925
|
+
/* ScrollBar.HORZ */
|
|
17929
17926
|
);
|
|
17930
17927
|
return 0;
|
|
17931
17928
|
}
|
|
@@ -18089,7 +18086,7 @@ function deleteAllItems(hTree) {
|
|
|
18089
18086
|
4353,
|
|
18090
18087
|
1,
|
|
18091
18088
|
-65536
|
|
18092
|
-
/*
|
|
18089
|
+
/* TvInsertAfter.ROOT */
|
|
18093
18090
|
);
|
|
18094
18091
|
}
|
|
18095
18092
|
var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onSelect, defaultSelectedKey, selectedKey: controlledKey, style }, ref) {
|
|
@@ -18121,7 +18118,7 @@ var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onS
|
|
|
18121
18118
|
4396,
|
|
18122
18119
|
0,
|
|
18123
18120
|
4
|
|
18124
|
-
/*
|
|
18121
|
+
/* TvExStyle.DOUBLEBUFFER */
|
|
18125
18122
|
);
|
|
18126
18123
|
}, []);
|
|
18127
18124
|
(0, import_react16.useEffect)(() => {
|
|
@@ -18163,9 +18160,16 @@ var b3 = (name, sig) => bind("comdlg32.dll", name, sig);
|
|
|
18163
18160
|
var GetOpenFileName = /* @__PURE__ */ b3("GetOpenFileNameW", "<OPENFILENAMEW>ptr -> u32");
|
|
18164
18161
|
|
|
18165
18162
|
// _build/lib/windows/shell32.js
|
|
18166
|
-
var b4 = (name, sig) => bind("shell32.dll", name, sig);
|
|
18163
|
+
var b4 = (name, sig, encoders) => bind("shell32.dll", name, sig, encoders);
|
|
18167
18164
|
var SHBrowseForFolder = /* @__PURE__ */ b4("SHBrowseForFolderW", "<BROWSEINFOW>ptr -> <>ptr");
|
|
18168
18165
|
var SHGetPathFromIDList = /* @__PURE__ */ b4("SHGetPathFromIDListW", "<>ptr <BYTE>ptr -> u32");
|
|
18166
|
+
var Shell_NotifyIconGetRect = (() => {
|
|
18167
|
+
try {
|
|
18168
|
+
return b4("Shell_NotifyIconGetRect", "<NOTIFYICONIDENTIFIER>ptr <RECT>ptr -> i32", { NOTIFYICONIDENTIFIER });
|
|
18169
|
+
} catch {
|
|
18170
|
+
return null;
|
|
18171
|
+
}
|
|
18172
|
+
})();
|
|
18169
18173
|
|
|
18170
18174
|
// _build/lib/windows/ole32.js
|
|
18171
18175
|
var b5 = (name, sig) => bind("ole32.dll", name, sig);
|
package/examples/pdf_viewer.tsx
CHANGED
|
@@ -9,6 +9,7 @@ import { WCHAR } from '../lib/ffi/bind.js'
|
|
|
9
9
|
import { PdfCanvas } from './PdfCanvas.js'
|
|
10
10
|
import { OPENFILENAMEW } from '../lib/windows/structs.js'
|
|
11
11
|
import { GetOpenFileName } from '../lib/windows/comdlg32.js'
|
|
12
|
+
import { WindowStyle } from '../constants'
|
|
12
13
|
|
|
13
14
|
type MuPdf = typeof import('../vendor/mupdf-wasm/mupdf.js')
|
|
14
15
|
|
|
@@ -180,17 +181,17 @@ function App({ mupdf, mainHwnd: hwnd }: { mupdf: MuPdf; mainHwnd: gui.HWND }) {
|
|
|
180
181
|
|
|
181
182
|
return (
|
|
182
183
|
<w type="STATIC"
|
|
183
|
-
ws={
|
|
184
|
+
ws={WindowStyle.VISIBLE | WindowStyle.CLIPCHILDREN}
|
|
184
185
|
style={{ flexDirection: 'column', gap: 4, width: 1180, height: 720 }}
|
|
185
186
|
>
|
|
186
|
-
<w type="STATIC" ws={
|
|
187
|
+
<w type="STATIC" ws={WindowStyle.VISIBLE}
|
|
187
188
|
style={{ flexDirection: 'row', gap: 6, alignItems: 'stretch', height: 28 }}
|
|
188
189
|
>
|
|
189
190
|
<w type="STATIC" style={{ width: 6 }} />
|
|
190
191
|
<Button onClick={handleOpen} style={{ width: 80 }}>Open</Button>
|
|
191
192
|
<Input value={filePath} placeholder="File path..." readonly style={{ flexGrow: 1 }} />
|
|
192
193
|
<Button onClick={handlePrev} disabled={currentPage <= 0} style={{ width: 60 }}>Prev</Button>
|
|
193
|
-
<w type="STATIC" ws={
|
|
194
|
+
<w type="STATIC" ws={WindowStyle.VISIBLE}
|
|
194
195
|
text={totalPages > 0 ? `Page ${currentPage + 1} / ${totalPages}` : 'No file'}
|
|
195
196
|
style={{ width: 120 }}
|
|
196
197
|
/>
|
|
@@ -205,7 +206,7 @@ function App({ mupdf, mainHwnd: hwnd }: { mupdf: MuPdf; mainHwnd: gui.HWND }) {
|
|
|
205
206
|
style={{ width: pixmap.w, height: pixmap.h }}
|
|
206
207
|
/>
|
|
207
208
|
) : (
|
|
208
|
-
<w type="STATIC" ws={
|
|
209
|
+
<w type="STATIC" ws={WindowStyle.VISIBLE}
|
|
209
210
|
text="Open a PDF file to preview"
|
|
210
211
|
style={{ width: 300, height: 30 }}
|
|
211
212
|
/>
|
|
@@ -225,7 +226,7 @@ async function main() {
|
|
|
225
226
|
gui.RegisterClass('PdfViewerWin')
|
|
226
227
|
const hwnd = gui.CreateWindow(
|
|
227
228
|
'PdfViewerWin', 'PDF Viewer',
|
|
228
|
-
|
|
229
|
+
WindowStyle.OVERLAPPEDWINDOW,
|
|
229
230
|
100, 100, 1200, 800, null, null
|
|
230
231
|
)
|
|
231
232
|
|