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/test_gallery.js
CHANGED
|
@@ -16277,7 +16277,7 @@ function doEncode(dv, base, fields, v) {
|
|
|
16277
16277
|
function createStruct(t) {
|
|
16278
16278
|
const { fields, size, maxEffectiveAlign } = computeStructLayout(t);
|
|
16279
16279
|
return {
|
|
16280
|
-
|
|
16280
|
+
fields,
|
|
16281
16281
|
size,
|
|
16282
16282
|
structAlign: maxEffectiveAlign,
|
|
16283
16283
|
decode: (p) => {
|
|
@@ -16306,6 +16306,14 @@ function createStruct(t) {
|
|
|
16306
16306
|
};
|
|
16307
16307
|
}
|
|
16308
16308
|
function buildDecl(kind, member, pack) {
|
|
16309
|
+
const declKind = member["#"];
|
|
16310
|
+
if (declKind !== void 0 && declKind !== kind)
|
|
16311
|
+
throw new Error(`ffi-struct: ${kind}() received a '${String(declKind)}' declaration (kind mismatch \u2014 use ${declKind}() for it)`);
|
|
16312
|
+
const declPack = member["#pack"];
|
|
16313
|
+
if (pack === void 0 && declPack !== void 0)
|
|
16314
|
+
pack = declPack;
|
|
16315
|
+
else if (pack !== void 0 && declPack !== void 0 && pack !== declPack)
|
|
16316
|
+
throw new Error(`ffi-struct: #pack conflict: opts.pack=${pack} vs declaration ${String(declPack)}`);
|
|
16309
16317
|
const decl = { "#": kind };
|
|
16310
16318
|
if (pack !== void 0)
|
|
16311
16319
|
decl["#pack"] = pack;
|
|
@@ -16314,49 +16322,6 @@ function buildDecl(kind, member, pack) {
|
|
|
16314
16322
|
decl[k] = v;
|
|
16315
16323
|
return decl;
|
|
16316
16324
|
}
|
|
16317
|
-
function structArray(def) {
|
|
16318
|
-
const { fields, size } = computeStructLayout(def.__struct);
|
|
16319
|
-
const readN = (dv, n) => {
|
|
16320
|
-
const out = [];
|
|
16321
|
-
for (let i = 0; i < n; i++)
|
|
16322
|
-
out.push(doDecode(dv, i * size, fields));
|
|
16323
|
-
return out;
|
|
16324
|
-
};
|
|
16325
|
-
return {
|
|
16326
|
-
encode: (els) => {
|
|
16327
|
-
if (!Array.isArray(els) || els.length === 0)
|
|
16328
|
-
throw new Error(`ffi-struct: structArray(def).encode(els) requires a non-empty element array (pass NULL for an empty pointer position)`);
|
|
16329
|
-
const out = def.alloc(els.length);
|
|
16330
|
-
for (let i = 0; i < els.length; i++)
|
|
16331
|
-
def.encode(els[i], out, i * def.size);
|
|
16332
|
-
return out;
|
|
16333
|
-
},
|
|
16334
|
-
decode: ((p, count) => {
|
|
16335
|
-
if (count !== void 0 && (!Number.isInteger(count) || count < 0))
|
|
16336
|
-
throw new Error(`ffi-struct: structArray.decode(p, count) requires a non-negative integer count, got ${count}`);
|
|
16337
|
-
if (typeof p === "number") {
|
|
16338
|
-
if (count === void 0)
|
|
16339
|
-
throw new Error(`ffi-struct: structArray.decode(address, count) requires an explicit count (a bare address carries no length)`);
|
|
16340
|
-
if (count === 0)
|
|
16341
|
-
return [];
|
|
16342
|
-
return readN(new DataView(ffi2.readBytes(p, count * size)), count);
|
|
16343
|
-
}
|
|
16344
|
-
let n;
|
|
16345
|
-
if (count !== void 0) {
|
|
16346
|
-
n = count;
|
|
16347
|
-
if (n * size > p.byteLength)
|
|
16348
|
-
throw new Error(`ffi-struct: structArray.decode: count ${n} \xD7 size ${size} = ${n * size} exceeds buffer byteLength ${p.byteLength}`);
|
|
16349
|
-
} else {
|
|
16350
|
-
if (p.byteLength % size !== 0)
|
|
16351
|
-
throw new Error(`ffi-struct: structArray.decode: byteLength ${p.byteLength} is not a multiple of size ${size} (mixed buffer? pass count explicitly)`);
|
|
16352
|
-
n = p.byteLength / size;
|
|
16353
|
-
}
|
|
16354
|
-
if (n === 0)
|
|
16355
|
-
return [];
|
|
16356
|
-
return readN(new DataView(p), n);
|
|
16357
|
-
})
|
|
16358
|
-
};
|
|
16359
|
-
}
|
|
16360
16325
|
function struct(a, b6, c) {
|
|
16361
16326
|
const isNamed = typeof a === "string";
|
|
16362
16327
|
const raw = isNamed ? b6 : a;
|
|
@@ -16365,21 +16330,28 @@ function struct(a, b6, c) {
|
|
|
16365
16330
|
}
|
|
16366
16331
|
|
|
16367
16332
|
// _build/lib/windows/structs.js
|
|
16368
|
-
var
|
|
16333
|
+
var RECT_DECL = {
|
|
16334
|
+
"#": "struct",
|
|
16369
16335
|
left: "i32",
|
|
16370
16336
|
top: "i32",
|
|
16371
16337
|
right: "i32",
|
|
16372
16338
|
bottom: "i32"
|
|
16373
|
-
}
|
|
16374
|
-
var
|
|
16339
|
+
};
|
|
16340
|
+
var RECT = /* @__PURE__ */ struct("RECT", RECT_DECL);
|
|
16341
|
+
var POINT_DECL = {
|
|
16342
|
+
"#": "struct",
|
|
16375
16343
|
x: "i32",
|
|
16376
16344
|
y: "i32"
|
|
16377
|
-
}
|
|
16378
|
-
var
|
|
16345
|
+
};
|
|
16346
|
+
var POINT = /* @__PURE__ */ struct("POINT", POINT_DECL);
|
|
16347
|
+
var SIZE_DECL = {
|
|
16348
|
+
"#": "struct",
|
|
16379
16349
|
cx: "i32",
|
|
16380
16350
|
cy: "i32"
|
|
16381
|
-
}
|
|
16382
|
-
var
|
|
16351
|
+
};
|
|
16352
|
+
var SIZE = /* @__PURE__ */ struct("SIZE", SIZE_DECL);
|
|
16353
|
+
var LOGFONTW_DECL = {
|
|
16354
|
+
"#": "struct",
|
|
16383
16355
|
lfHeight: "i32",
|
|
16384
16356
|
lfWidth: "i32",
|
|
16385
16357
|
lfEscapement: "i32",
|
|
@@ -16394,8 +16366,10 @@ var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", {
|
|
|
16394
16366
|
lfQuality: "u8",
|
|
16395
16367
|
lfPitchAndFamily: "u8",
|
|
16396
16368
|
lfFaceName: "u16[32]@utf-16le"
|
|
16397
|
-
}
|
|
16398
|
-
var
|
|
16369
|
+
};
|
|
16370
|
+
var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", LOGFONTW_DECL);
|
|
16371
|
+
var OPENFILENAMEW_DECL = {
|
|
16372
|
+
"#": "struct",
|
|
16399
16373
|
lStructSize: "u32",
|
|
16400
16374
|
hwndOwner: "<HWND>ptr",
|
|
16401
16375
|
hInstance: "<HMODULE>ptr",
|
|
@@ -16419,8 +16393,10 @@ var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", {
|
|
|
16419
16393
|
pvReserved: "<>ptr",
|
|
16420
16394
|
dwReserved: "u32",
|
|
16421
16395
|
FlagsEx: "u32"
|
|
16422
|
-
}
|
|
16423
|
-
var
|
|
16396
|
+
};
|
|
16397
|
+
var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", OPENFILENAMEW_DECL);
|
|
16398
|
+
var BROWSEINFOW_DECL = {
|
|
16399
|
+
"#": "struct",
|
|
16424
16400
|
hwndOwner: "<HWND>ptr",
|
|
16425
16401
|
pidlRoot: "<>ptr",
|
|
16426
16402
|
pszDisplayName: "<>ptr",
|
|
@@ -16429,13 +16405,17 @@ var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", {
|
|
|
16429
16405
|
lpfn: "<>ptr",
|
|
16430
16406
|
lParam: "<>ptr",
|
|
16431
16407
|
iImage: "i32"
|
|
16432
|
-
}
|
|
16433
|
-
var
|
|
16408
|
+
};
|
|
16409
|
+
var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", BROWSEINFOW_DECL);
|
|
16410
|
+
var NMHDR_DECL = {
|
|
16411
|
+
"#": "struct",
|
|
16434
16412
|
hwndFrom: "<HWND>ptr",
|
|
16435
16413
|
idFrom: "<>ptr",
|
|
16436
16414
|
code: "i32"
|
|
16437
|
-
}
|
|
16438
|
-
var
|
|
16415
|
+
};
|
|
16416
|
+
var NMHDR = /* @__PURE__ */ struct("NMHDR", NMHDR_DECL);
|
|
16417
|
+
var SYSTEMTIME_DECL = {
|
|
16418
|
+
"#": "struct",
|
|
16439
16419
|
wYear: "u16",
|
|
16440
16420
|
wMonth: "u16",
|
|
16441
16421
|
wDayOfWeek: "u16",
|
|
@@ -16444,35 +16424,44 @@ var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", {
|
|
|
16444
16424
|
wMinute: "u16",
|
|
16445
16425
|
wSecond: "u16",
|
|
16446
16426
|
wMilliseconds: "u16"
|
|
16447
|
-
}
|
|
16448
|
-
var
|
|
16449
|
-
|
|
16427
|
+
};
|
|
16428
|
+
var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", SYSTEMTIME_DECL);
|
|
16429
|
+
var NMDATETIMECHANGE_DECL = {
|
|
16430
|
+
"#": "struct",
|
|
16431
|
+
hdr: NMHDR_DECL,
|
|
16450
16432
|
dwFlags: "u32",
|
|
16451
|
-
st:
|
|
16452
|
-
}
|
|
16453
|
-
var
|
|
16433
|
+
st: SYSTEMTIME_DECL
|
|
16434
|
+
};
|
|
16435
|
+
var NMDATETIMECHANGE = /* @__PURE__ */ struct("NMDATETIMECHANGE", NMDATETIMECHANGE_DECL);
|
|
16436
|
+
var LITEM_DECL = {
|
|
16437
|
+
"#": "struct",
|
|
16454
16438
|
mask: "u32",
|
|
16455
16439
|
iLink: "i32",
|
|
16456
16440
|
state: "u32",
|
|
16457
16441
|
stateMask: "u32",
|
|
16458
16442
|
szID: "u16[48]@utf-16le",
|
|
16459
16443
|
szUrl: "u16[2084]@utf-16le"
|
|
16460
|
-
}
|
|
16461
|
-
var
|
|
16462
|
-
|
|
16463
|
-
|
|
16464
|
-
|
|
16465
|
-
|
|
16466
|
-
|
|
16444
|
+
};
|
|
16445
|
+
var NMLINK_DECL = {
|
|
16446
|
+
"#": "struct",
|
|
16447
|
+
hdr: NMHDR_DECL,
|
|
16448
|
+
item: LITEM_DECL
|
|
16449
|
+
};
|
|
16450
|
+
var NMLINK = /* @__PURE__ */ struct("NMLINK", NMLINK_DECL);
|
|
16451
|
+
var NMCUSTOMDRAW_DECL = {
|
|
16452
|
+
"#": "struct",
|
|
16453
|
+
hdr: NMHDR_DECL,
|
|
16467
16454
|
dwDrawStage: "u32",
|
|
16468
16455
|
hdc: "<HDC>ptr",
|
|
16469
16456
|
rc: "i32[4]",
|
|
16470
16457
|
dwItemSpec: "<>ptr",
|
|
16471
16458
|
uItemState: "u32",
|
|
16472
16459
|
lItemlParam: "<>ptr"
|
|
16473
|
-
}
|
|
16474
|
-
var
|
|
16475
|
-
|
|
16460
|
+
};
|
|
16461
|
+
var NMCUSTOMDRAW = /* @__PURE__ */ struct("NMCUSTOMDRAW", NMCUSTOMDRAW_DECL);
|
|
16462
|
+
var NMLVCUSTOMDRAW_DECL = {
|
|
16463
|
+
"#": "struct",
|
|
16464
|
+
hdr: NMHDR_DECL,
|
|
16476
16465
|
dwDrawStage: "u32",
|
|
16477
16466
|
hdc: "<HDC>ptr",
|
|
16478
16467
|
rc: "i32[4]",
|
|
@@ -16483,9 +16472,11 @@ var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", {
|
|
|
16483
16472
|
clrTextBk: "u32",
|
|
16484
16473
|
iSubItem: "i32",
|
|
16485
16474
|
dwItemType: "u32"
|
|
16486
|
-
}
|
|
16487
|
-
var
|
|
16488
|
-
|
|
16475
|
+
};
|
|
16476
|
+
var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", NMLVCUSTOMDRAW_DECL);
|
|
16477
|
+
var NMLISTVIEW_DECL = {
|
|
16478
|
+
"#": "struct",
|
|
16479
|
+
hdr: NMHDR_DECL,
|
|
16489
16480
|
iItem: "i32",
|
|
16490
16481
|
iSubItem: "i32",
|
|
16491
16482
|
uNewState: "u32",
|
|
@@ -16493,8 +16484,10 @@ var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", {
|
|
|
16493
16484
|
uChanged: "u32",
|
|
16494
16485
|
ptAction: "i32[2]",
|
|
16495
16486
|
lParam: "<>ptr"
|
|
16496
|
-
}
|
|
16497
|
-
var
|
|
16487
|
+
};
|
|
16488
|
+
var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", NMLISTVIEW_DECL);
|
|
16489
|
+
var TCITEMW_DECL = {
|
|
16490
|
+
"#": "struct",
|
|
16498
16491
|
mask: "u32",
|
|
16499
16492
|
dwState: "u32",
|
|
16500
16493
|
dwStateMask: "u32",
|
|
@@ -16502,8 +16495,10 @@ var TCITEMW = /* @__PURE__ */ struct("TCITEMW", {
|
|
|
16502
16495
|
cchTextMax: "i32",
|
|
16503
16496
|
iImage: "i32",
|
|
16504
16497
|
lParam: "<>ptr"
|
|
16505
|
-
}
|
|
16506
|
-
var
|
|
16498
|
+
};
|
|
16499
|
+
var TCITEMW = /* @__PURE__ */ struct("TCITEMW", TCITEMW_DECL);
|
|
16500
|
+
var TTTOOLINFOW_DECL = {
|
|
16501
|
+
"#": "struct",
|
|
16507
16502
|
cbSize: "u32",
|
|
16508
16503
|
uFlags: "u32",
|
|
16509
16504
|
hwnd: "<HWND>ptr",
|
|
@@ -16514,8 +16509,10 @@ var TTTOOLINFOW = /* @__PURE__ */ struct("TTTOOLINFOW", {
|
|
|
16514
16509
|
lParam: "<>ptr",
|
|
16515
16510
|
lpReserved: "<>ptr"
|
|
16516
16511
|
// WinXP+ 追加字段(系统 sizeof 含之)
|
|
16517
|
-
}
|
|
16518
|
-
var
|
|
16512
|
+
};
|
|
16513
|
+
var TTTOOLINFOW = /* @__PURE__ */ struct("TTTOOLINFOW", TTTOOLINFOW_DECL);
|
|
16514
|
+
var TVITEM_DECL = {
|
|
16515
|
+
"#": "struct",
|
|
16519
16516
|
mask: "u32",
|
|
16520
16517
|
hItem: "<>ptr",
|
|
16521
16518
|
state: "u32",
|
|
@@ -16526,20 +16523,26 @@ var TVITEM = /* @__PURE__ */ struct("TVITEM", {
|
|
|
16526
16523
|
iSelectedImage: "i32",
|
|
16527
16524
|
cChildren: "i32",
|
|
16528
16525
|
lParam: "<>ptr"
|
|
16529
|
-
}
|
|
16530
|
-
var
|
|
16526
|
+
};
|
|
16527
|
+
var TVITEM = /* @__PURE__ */ struct("TVITEM", TVITEM_DECL);
|
|
16528
|
+
var TVINSERTSTRUCT_DECL = {
|
|
16529
|
+
"#": "struct",
|
|
16531
16530
|
hParent: "<>ptr",
|
|
16532
16531
|
hInsertAfter: "<>ptr",
|
|
16533
|
-
item:
|
|
16534
|
-
}
|
|
16535
|
-
var
|
|
16532
|
+
item: TVITEM_DECL
|
|
16533
|
+
};
|
|
16534
|
+
var TVINSERTSTRUCT = /* @__PURE__ */ struct("TVINSERTSTRUCT", TVINSERTSTRUCT_DECL);
|
|
16535
|
+
var LVHITTESTINFO_DECL = {
|
|
16536
|
+
"#": "struct",
|
|
16536
16537
|
pt: "i32[2]",
|
|
16537
16538
|
flags: "u32",
|
|
16538
16539
|
iItem: "i32",
|
|
16539
16540
|
iSubItem: "i32",
|
|
16540
16541
|
iGroup: "i32"
|
|
16541
|
-
}
|
|
16542
|
-
var
|
|
16542
|
+
};
|
|
16543
|
+
var LVHITTESTINFO = /* @__PURE__ */ struct("LVHITTESTINFO", LVHITTESTINFO_DECL);
|
|
16544
|
+
var LVITEMW_DECL = {
|
|
16545
|
+
"#": "struct",
|
|
16543
16546
|
mask: "u32",
|
|
16544
16547
|
iItem: "i32",
|
|
16545
16548
|
iSubItem: "i32",
|
|
@@ -16555,8 +16558,10 @@ var LVITEMW = /* @__PURE__ */ struct("LVITEMW", {
|
|
|
16555
16558
|
puColumns: "<>ptr",
|
|
16556
16559
|
piColFmt: "<>ptr",
|
|
16557
16560
|
iGroup: "i32"
|
|
16558
|
-
}
|
|
16559
|
-
var
|
|
16561
|
+
};
|
|
16562
|
+
var LVITEMW = /* @__PURE__ */ struct("LVITEMW", LVITEMW_DECL);
|
|
16563
|
+
var LVCOLUMNW_DECL = {
|
|
16564
|
+
"#": "struct",
|
|
16560
16565
|
mask: "u32",
|
|
16561
16566
|
fmt: "i32",
|
|
16562
16567
|
cx: "i32",
|
|
@@ -16568,23 +16573,16 @@ var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", {
|
|
|
16568
16573
|
cxMin: "i32",
|
|
16569
16574
|
cxDefault: "i32",
|
|
16570
16575
|
cxIdeal: "i32"
|
|
16571
|
-
}
|
|
16572
|
-
var
|
|
16573
|
-
|
|
16574
|
-
|
|
16575
|
-
|
|
16576
|
-
|
|
16577
|
-
|
|
16578
|
-
|
|
16579
|
-
}
|
|
16580
|
-
var
|
|
16581
|
-
hdc: "<HDC>ptr",
|
|
16582
|
-
fErase: "i32",
|
|
16583
|
-
rcPaint: RECT.__struct,
|
|
16584
|
-
fRestore: "i32",
|
|
16585
|
-
fIncUpdate: "i32",
|
|
16586
|
-
rgbReserved: "u8[32]"
|
|
16587
|
-
});
|
|
16576
|
+
};
|
|
16577
|
+
var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", LVCOLUMNW_DECL);
|
|
16578
|
+
var NOTIFYICONIDENTIFIER_DECL = {
|
|
16579
|
+
"#": "struct",
|
|
16580
|
+
cbSize: "u32",
|
|
16581
|
+
hWnd: "<HWND>ptr",
|
|
16582
|
+
uID: "u32",
|
|
16583
|
+
guidItem: "u32[4]"
|
|
16584
|
+
};
|
|
16585
|
+
var NOTIFYICONIDENTIFIER = /* @__PURE__ */ struct("NOTIFYICONIDENTIFIER", NOTIFYICONIDENTIFIER_DECL);
|
|
16588
16586
|
|
|
16589
16587
|
// _build/lib/windows/user32.js
|
|
16590
16588
|
var b = (name, sig, encoders) => bind("user32.dll", name, sig, encoders);
|
|
@@ -16618,7 +16616,6 @@ import * as os4 from "os";
|
|
|
16618
16616
|
|
|
16619
16617
|
// _build/lib/windows/gdi32.js
|
|
16620
16618
|
var b2 = (name, sig, encoders) => bind("gdi32.dll", name, sig, encoders);
|
|
16621
|
-
var POINTArr = structArray(POINT);
|
|
16622
16619
|
var DeleteObject = /* @__PURE__ */ b2("DeleteObject", "<HGDIOBJ>ptr -> i32");
|
|
16623
16620
|
var GetDeviceCaps = /* @__PURE__ */ b2("GetDeviceCaps", "<HDC>ptr! i32@DeviceCap -> i32");
|
|
16624
16621
|
var CreateFontIndirect = /* @__PURE__ */ b2("CreateFontIndirectW", "<LOGFONTW>ptr -> <HGDIOBJ>ptr", { LOGFONTW });
|
|
@@ -16651,14 +16648,14 @@ function applyProps(instance, newProps, _oldProps) {
|
|
|
16651
16648
|
gui.ShowWindow(
|
|
16652
16649
|
hwnd2,
|
|
16653
16650
|
newProps.hidden ? 0 : 5
|
|
16654
|
-
/*
|
|
16651
|
+
/* ShowWindowCmd.SHOW */
|
|
16655
16652
|
);
|
|
16656
16653
|
}
|
|
16657
16654
|
if ("visible" in newProps) {
|
|
16658
16655
|
gui.ShowWindow(
|
|
16659
16656
|
hwnd2,
|
|
16660
16657
|
newProps.visible ? 5 : 0
|
|
16661
|
-
/*
|
|
16658
|
+
/* ShowWindowCmd.HIDE */
|
|
16662
16659
|
);
|
|
16663
16660
|
}
|
|
16664
16661
|
}
|
|
@@ -16754,7 +16751,7 @@ function measureText(hdc, text, maxWidth) {
|
|
|
16754
16751
|
-1,
|
|
16755
16752
|
r.ptr,
|
|
16756
16753
|
1024
|
|
16757
|
-
/*
|
|
16754
|
+
/* DrawTextFlag.CALCRECT */
|
|
16758
16755
|
);
|
|
16759
16756
|
const { right, bottom } = RECT.decode(r);
|
|
16760
16757
|
return { width: right, height: bottom };
|
|
@@ -16802,7 +16799,7 @@ function setupWindowProc(instance, hwnd2) {
|
|
|
16802
16799
|
const oldProc = GetWindowLongPtr(
|
|
16803
16800
|
hwnd2,
|
|
16804
16801
|
-4
|
|
16805
|
-
/*
|
|
16802
|
+
/* Gwlp.WNDPROC */
|
|
16806
16803
|
);
|
|
16807
16804
|
instancesByHwnd.set(hwnd2, instance);
|
|
16808
16805
|
gui3.SetWindowProc(hwnd2, (hwnd3, msg, wParam, lParam) => {
|
|
@@ -16890,7 +16887,7 @@ function runFlexLayout(inst) {
|
|
|
16890
16887
|
r.width * scaleFactor,
|
|
16891
16888
|
r.height * scaleFactor,
|
|
16892
16889
|
64
|
|
16893
|
-
/*
|
|
16890
|
+
/* SetWindowPosFlag.SWP_SHOWWINDOW */
|
|
16894
16891
|
);
|
|
16895
16892
|
InvalidateRect(child.hwnd, NULL, 1);
|
|
16896
16893
|
child.lastRect = { x: r.x, y: r.y, w: r.width, h: r.height };
|
|
@@ -17046,7 +17043,7 @@ var hostConfig = {
|
|
|
17046
17043
|
gui3.ShowWindow(
|
|
17047
17044
|
instance.hwnd,
|
|
17048
17045
|
0
|
|
17049
|
-
/*
|
|
17046
|
+
/* ShowWindowCmd.HIDE */
|
|
17050
17047
|
);
|
|
17051
17048
|
},
|
|
17052
17049
|
hideTextInstance(instance) {
|
|
@@ -17054,7 +17051,7 @@ var hostConfig = {
|
|
|
17054
17051
|
gui3.ShowWindow(
|
|
17055
17052
|
instance.hwnd,
|
|
17056
17053
|
0
|
|
17057
|
-
/*
|
|
17054
|
+
/* ShowWindowCmd.HIDE */
|
|
17058
17055
|
);
|
|
17059
17056
|
},
|
|
17060
17057
|
unhideInstance(instance, _props) {
|
|
@@ -17062,7 +17059,7 @@ var hostConfig = {
|
|
|
17062
17059
|
gui3.ShowWindow(
|
|
17063
17060
|
instance.hwnd,
|
|
17064
17061
|
5
|
|
17065
|
-
/*
|
|
17062
|
+
/* ShowWindowCmd.SHOW */
|
|
17066
17063
|
);
|
|
17067
17064
|
},
|
|
17068
17065
|
unhideTextInstance(instance, _text) {
|
|
@@ -17070,7 +17067,7 @@ var hostConfig = {
|
|
|
17070
17067
|
gui3.ShowWindow(
|
|
17071
17068
|
instance.hwnd,
|
|
17072
17069
|
5
|
|
17073
|
-
/*
|
|
17070
|
+
/* ShowWindowCmd.SHOW */
|
|
17074
17071
|
);
|
|
17075
17072
|
},
|
|
17076
17073
|
shouldSetTextContent(_type, props) {
|
|
@@ -17498,7 +17495,7 @@ function getCellFont(hwnd2, style) {
|
|
|
17498
17495
|
...base,
|
|
17499
17496
|
...style.bold ? {
|
|
17500
17497
|
lfWeight: 700
|
|
17501
|
-
/*
|
|
17498
|
+
/* FontWeight.BOLD */
|
|
17502
17499
|
} : {},
|
|
17503
17500
|
...style.italic ? { lfItalic: 1 } : {},
|
|
17504
17501
|
...style.underline ? { lfUnderline: 1 } : {}
|
|
@@ -17620,7 +17617,7 @@ var ListView = (0, import_react9.forwardRef)(function ListViewInner({ columns, d
|
|
|
17620
17617
|
4150,
|
|
17621
17618
|
0,
|
|
17622
17619
|
32 | 1 | 65536
|
|
17623
|
-
/*
|
|
17620
|
+
/* LvExStyle.DOUBLEBUFFER */
|
|
17624
17621
|
);
|
|
17625
17622
|
const n = columns.length;
|
|
17626
17623
|
for (let j = 0; j < n; j++) {
|
|
@@ -17665,7 +17662,7 @@ var ListView = (0, import_react9.forwardRef)(function ListViewInner({ columns, d
|
|
|
17665
17662
|
4126,
|
|
17666
17663
|
j,
|
|
17667
17664
|
-2
|
|
17668
|
-
/*
|
|
17665
|
+
/* LvColumnWidthCmd.AUTOSIZE_USEHEADER */
|
|
17669
17666
|
);
|
|
17670
17667
|
}
|
|
17671
17668
|
}
|
|
@@ -17807,7 +17804,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17807
17804
|
natW,
|
|
17808
17805
|
natH,
|
|
17809
17806
|
4
|
|
17810
|
-
/*
|
|
17807
|
+
/* SetWindowPosFlag.SWP_NOZORDER */
|
|
17811
17808
|
);
|
|
17812
17809
|
forceFlexLayout(content);
|
|
17813
17810
|
if (natW > svW) {
|
|
@@ -17846,7 +17843,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17846
17843
|
0,
|
|
17847
17844
|
0,
|
|
17848
17845
|
1 | 4
|
|
17849
|
-
/*
|
|
17846
|
+
/* SetWindowPosFlag.SWP_NOZORDER */
|
|
17850
17847
|
);
|
|
17851
17848
|
gui12.SetScrollInfo(sv, bar, { pos: newPos }, true);
|
|
17852
17849
|
}
|
|
@@ -17912,7 +17909,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17912
17909
|
handleScroll(
|
|
17913
17910
|
e,
|
|
17914
17911
|
1
|
|
17915
|
-
/*
|
|
17912
|
+
/* ScrollBar.VERT */
|
|
17916
17913
|
);
|
|
17917
17914
|
return 0;
|
|
17918
17915
|
}
|
|
@@ -17920,7 +17917,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17920
17917
|
handleScroll(
|
|
17921
17918
|
e,
|
|
17922
17919
|
0
|
|
17923
|
-
/*
|
|
17920
|
+
/* ScrollBar.HORZ */
|
|
17924
17921
|
);
|
|
17925
17922
|
return 0;
|
|
17926
17923
|
}
|
|
@@ -18077,7 +18074,7 @@ function Tooltip({ text, children, balloon }) {
|
|
|
18077
18074
|
0,
|
|
18078
18075
|
0,
|
|
18079
18076
|
2 | 1 | 16
|
|
18080
|
-
/*
|
|
18077
|
+
/* SetWindowPosFlag.SWP_NOACTIVATE */
|
|
18081
18078
|
);
|
|
18082
18079
|
const ti = buildToolInfo(hTarget, text);
|
|
18083
18080
|
gui15.SendMessage(hTT, 1074, 0, ti.ptr);
|
|
@@ -18142,7 +18139,7 @@ function deleteAllItems(hTree) {
|
|
|
18142
18139
|
4353,
|
|
18143
18140
|
1,
|
|
18144
18141
|
-65536
|
|
18145
|
-
/*
|
|
18142
|
+
/* TvInsertAfter.ROOT */
|
|
18146
18143
|
);
|
|
18147
18144
|
}
|
|
18148
18145
|
var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onSelect, defaultSelectedKey, selectedKey: controlledKey, style }, ref) {
|
|
@@ -18174,7 +18171,7 @@ var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onS
|
|
|
18174
18171
|
4396,
|
|
18175
18172
|
0,
|
|
18176
18173
|
4
|
|
18177
|
-
/*
|
|
18174
|
+
/* TvExStyle.DOUBLEBUFFER */
|
|
18178
18175
|
);
|
|
18179
18176
|
}, []);
|
|
18180
18177
|
(0, import_react16.useEffect)(() => {
|
|
@@ -18216,9 +18213,16 @@ var b3 = (name, sig) => bind("comdlg32.dll", name, sig);
|
|
|
18216
18213
|
var GetOpenFileName = /* @__PURE__ */ b3("GetOpenFileNameW", "<OPENFILENAMEW>ptr -> u32");
|
|
18217
18214
|
|
|
18218
18215
|
// _build/lib/windows/shell32.js
|
|
18219
|
-
var b4 = (name, sig) => bind("shell32.dll", name, sig);
|
|
18216
|
+
var b4 = (name, sig, encoders) => bind("shell32.dll", name, sig, encoders);
|
|
18220
18217
|
var SHBrowseForFolder = /* @__PURE__ */ b4("SHBrowseForFolderW", "<BROWSEINFOW>ptr -> <>ptr");
|
|
18221
18218
|
var SHGetPathFromIDList = /* @__PURE__ */ b4("SHGetPathFromIDListW", "<>ptr <BYTE>ptr -> u32");
|
|
18219
|
+
var Shell_NotifyIconGetRect = (() => {
|
|
18220
|
+
try {
|
|
18221
|
+
return b4("Shell_NotifyIconGetRect", "<NOTIFYICONIDENTIFIER>ptr <RECT>ptr -> i32", { NOTIFYICONIDENTIFIER });
|
|
18222
|
+
} catch {
|
|
18223
|
+
return null;
|
|
18224
|
+
}
|
|
18225
|
+
})();
|
|
18222
18226
|
|
|
18223
18227
|
// _build/lib/windows/ole32.js
|
|
18224
18228
|
var b5 = (name, sig) => bind("ole32.dll", name, sig);
|
|
@@ -6,19 +6,20 @@ import {
|
|
|
6
6
|
ListView, type Column, ListBox, ScrollView, RadioButton, Slider,
|
|
7
7
|
TreeView, type TreeNode, DateTimePicker, Link, Tooltip, PathPicker,
|
|
8
8
|
} from '../lib/react-qw/index.js'
|
|
9
|
+
import { WindowStyle, WmMsg } from '../constants'
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
gui.RegisterClass('Gallery', (hwnd, msg, wParam, lParam) => {
|
|
12
13
|
if (!hwnd) return gui.DefWindowProc(hwnd, msg, wParam, lParam)
|
|
13
|
-
if (msg ===
|
|
14
|
+
if (msg === WmMsg.DESTROY) {
|
|
14
15
|
gui.PostQuitMessage(0)
|
|
15
16
|
return 0
|
|
16
17
|
}
|
|
17
18
|
return gui.DefWindowProc(hwnd, msg, wParam, lParam)
|
|
18
19
|
})
|
|
19
20
|
|
|
20
|
-
const VISIBLE =
|
|
21
|
-
const CLIPCHILDREN =
|
|
21
|
+
const VISIBLE = WindowStyle.VISIBLE
|
|
22
|
+
const CLIPCHILDREN = WindowStyle.CLIPCHILDREN
|
|
22
23
|
|
|
23
24
|
interface Fruit {
|
|
24
25
|
name: string
|
|
@@ -85,7 +86,7 @@ function App({ svW, svH }: { svW: number; svH: number }) {
|
|
|
85
86
|
|
|
86
87
|
return (
|
|
87
88
|
<ScrollView style={{width:svW, height:svH}} contentHeight={1600}>
|
|
88
|
-
<w type="STATIC" ws={VISIBLE | CLIPCHILDREN |
|
|
89
|
+
<w type="STATIC" ws={VISIBLE | CLIPCHILDREN | WindowStyle.BORDER} style={{flexDirection:'column', gap:8, alignSelf:'stretch', flexGrow:1, padding:8}}>
|
|
89
90
|
{/* ===== 三列上半区 ===== */}
|
|
90
91
|
<w type="STATIC" ws={VISIBLE} style={{flexDirection:'row', gap:10, height:345}}>
|
|
91
92
|
|
|
@@ -160,7 +161,7 @@ function App({ svW, svH }: { svW: number; svH: number }) {
|
|
|
160
161
|
|
|
161
162
|
{/* ===== Auto-Size ===== */}
|
|
162
163
|
<w type="STATIC" ws={VISIBLE} text="Auto-Size" style={{height:24}} />
|
|
163
|
-
<w type="STATIC" ws={VISIBLE | CLIPCHILDREN |
|
|
164
|
+
<w type="STATIC" ws={VISIBLE | CLIPCHILDREN | WindowStyle.BORDER} style={{flexDirection:'column', gap:6, alignSelf:'stretch', flexGrow:1}}>
|
|
164
165
|
<w type="STATIC" ws={VISIBLE} text="Buttons (auto width)" style={{height:24}} />
|
|
165
166
|
<w type="STATIC" ws={VISIBLE} style={{flexDirection:'row', gap:8, alignItems:'stretch', height:30}}>
|
|
166
167
|
<Button style={{width:'auto', height:30}}>OK</Button>
|
|
@@ -169,8 +170,8 @@ function App({ svW, svH }: { svW: number; svH: number }) {
|
|
|
169
170
|
</w>
|
|
170
171
|
<w type="STATIC" ws={VISIBLE} text="Statics (auto width)" style={{height:24}} />
|
|
171
172
|
<w type="STATIC" ws={VISIBLE} style={{flexDirection:'row', gap:8, alignItems:'stretch', height:24}}>
|
|
172
|
-
<w type="STATIC" ws={VISIBLE |
|
|
173
|
-
<w type="STATIC" ws={VISIBLE |
|
|
173
|
+
<w type="STATIC" ws={VISIBLE | WindowStyle.BORDER} text="Short" style={{width:'auto', height:24}} />
|
|
174
|
+
<w type="STATIC" ws={VISIBLE | WindowStyle.BORDER} text="A much longer label" style={{width:'auto', height:24}} />
|
|
174
175
|
</w>
|
|
175
176
|
<w type="STATIC" ws={VISIBLE} text="Mixed auto + fixed" style={{height:24}} />
|
|
176
177
|
<w type="STATIC" ws={VISIBLE} style={{flexDirection:'row', gap:8, alignItems:'stretch', height:30}}>
|
|
@@ -269,7 +270,7 @@ function App({ svW, svH }: { svW: number; svH: number }) {
|
|
|
269
270
|
|
|
270
271
|
const hwnd = gui.CreateWindow(
|
|
271
272
|
'Gallery', 'Component Gallery',
|
|
272
|
-
|
|
273
|
+
WindowStyle.OVERLAPPEDWINDOW,
|
|
273
274
|
100, 100, 1400, 1200, null, null
|
|
274
275
|
)
|
|
275
276
|
|