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.
Files changed (172) hide show
  1. package/README.en.md +1 -2
  2. package/README.md +1 -2
  3. package/constants.ts +15 -0
  4. package/enum_map.d.ts +3 -0
  5. package/examples/PdfCanvas.js +1 -1
  6. package/examples/PdfCanvas.tsx +2 -2
  7. package/examples/execd/main.js +334 -188
  8. package/examples/pdf_preview2.js +76 -67
  9. package/examples/pdf_preview2.ts +84 -64
  10. package/examples/pdf_viewer.js +4932 -1029
  11. package/examples/pdf_viewer.tsx +11 -22
  12. package/examples/test_gallery.js +308 -143
  13. package/examples/test_gallery.tsx +12 -7
  14. package/examples/test_react_lazy.js +295 -133
  15. package/examples/test_react_lazy.tsx +4 -3
  16. package/examples/test_react_listbox.js +293 -132
  17. package/examples/test_react_listbox.tsx +3 -2
  18. package/examples/test_root_window.js +283 -126
  19. package/examples/test_tab.js +295 -133
  20. package/examples/test_tab.tsx +4 -3
  21. package/examples/tray_demo.js +37 -30
  22. package/examples/tray_demo.tsx +39 -32
  23. package/lib/abort.d.ts +21 -0
  24. package/lib/assert.d.ts +2 -0
  25. package/lib/bitmap.d.ts +7 -0
  26. package/lib/bitmap.js +40 -0
  27. package/lib/cache-utils.d.ts +6 -0
  28. package/lib/certs.d.ts +1 -0
  29. package/lib/certs.js +31 -3
  30. package/lib/dpi.d.ts +9 -0
  31. package/lib/dpi.js +30 -0
  32. package/lib/dumpRects.d.ts +2 -0
  33. package/lib/dumpRects.js +14 -7
  34. package/lib/exec-log.d.ts +23 -0
  35. package/lib/fetch.d.ts +4 -0
  36. package/lib/ffi/bind.d.ts +70 -0
  37. package/lib/ffi/bind.js +5 -4
  38. package/lib/ffi/ctype.d.ts +117 -0
  39. package/lib/ffi/index.d.ts +2 -0
  40. package/lib/ffi/struct.d.ts +174 -0
  41. package/lib/http-common.d.ts +143 -0
  42. package/lib/http-server.d.ts +59 -0
  43. package/lib/polyfill.d.ts +22 -0
  44. package/lib/react-qw/components/Button.d.ts +9 -0
  45. package/lib/react-qw/components/CheckBox.d.ts +11 -0
  46. package/lib/react-qw/components/ComboBox.d.ts +11 -0
  47. package/lib/react-qw/components/DateTimePicker.d.ts +15 -0
  48. package/lib/react-qw/components/DateTimePicker.js +6 -7
  49. package/lib/react-qw/components/Input.d.ts +15 -0
  50. package/lib/react-qw/components/Input.js +5 -1
  51. package/lib/react-qw/components/Link.d.ts +12 -0
  52. package/lib/react-qw/components/ListBox.d.ts +13 -0
  53. package/lib/react-qw/components/ListView.d.ts +37 -0
  54. package/lib/react-qw/components/ListView.js +8 -6
  55. package/lib/react-qw/components/PathPicker.d.ts +23 -0
  56. package/lib/react-qw/components/ProgressBar.d.ts +9 -0
  57. package/lib/react-qw/components/RadioButton.d.ts +11 -0
  58. package/lib/react-qw/components/ScrollView.d.ts +9 -0
  59. package/lib/react-qw/components/ScrollView.js +28 -22
  60. package/lib/react-qw/components/Slider.d.ts +12 -0
  61. package/lib/react-qw/components/Tab.d.ts +14 -0
  62. package/lib/react-qw/components/Tooltip.d.ts +7 -0
  63. package/lib/react-qw/components/TreeView.d.ts +18 -0
  64. package/lib/react-qw/components/index.d.ts +16 -0
  65. package/lib/react-qw/index.d.ts +24 -0
  66. package/lib/react-qw/index.js +7 -5
  67. package/lib/react-qw/layout.d.ts +29 -0
  68. package/lib/react-qw/nmhdr.d.ts +1 -0
  69. package/lib/react-qw/props.d.ts +2 -0
  70. package/lib/react-qw/props.js +3 -3
  71. package/lib/react-qw/reconciler.d.ts +21 -0
  72. package/lib/react-qw/reconciler.js +12 -17
  73. package/lib/stream.d.ts +20 -0
  74. package/lib/text-codec.d.ts +39 -0
  75. package/lib/text-measure.d.ts +14 -0
  76. package/lib/text-measure.js +9 -6
  77. package/lib/url.d.ts +54 -0
  78. package/lib/websocket.d.ts +73 -0
  79. package/lib/windows/{advapi32.ts → advapi32.d.ts} +6 -21
  80. package/lib/windows/comctl32.d.ts +14 -0
  81. package/lib/windows/comctl32.js +3 -2
  82. package/lib/windows/comdlg32.d.ts +4 -0
  83. package/lib/windows/{gdi32.ts → gdi32.d.ts} +184 -97
  84. package/lib/windows/gdi32.js +28 -6
  85. package/lib/windows/{kernel32.ts → kernel32.d.ts} +145 -113
  86. package/lib/windows/kernel32.js +9 -0
  87. package/lib/windows/{msimg32.ts → msimg32.d.ts} +11 -14
  88. package/lib/windows/ntdll.d.ts +5 -0
  89. package/lib/windows/ole32.d.ts +3 -0
  90. package/lib/windows/{psapi.ts → psapi.d.ts} +9 -18
  91. package/lib/windows/shell32.d.ts +51 -0
  92. package/lib/windows/shell32.js +11 -2
  93. package/lib/windows/structs.d.ts +3141 -0
  94. package/lib/windows/structs.js +51 -0
  95. package/lib/windows/user32.d.ts +623 -0
  96. package/lib/windows/user32.js +6 -5
  97. package/lib/windows/version.d.ts +27 -0
  98. package/lib/windows/{winspool.ts → winspool.d.ts} +18 -32
  99. package/main.js +13 -5
  100. package/package.json +16 -7
  101. package/quickwin.d.ts +13 -115
  102. package/qwin-nowasm-x86.exe +0 -0
  103. package/qwin-nowasm.exe +0 -0
  104. package/qwin-x86.exe +0 -0
  105. package/qwin.exe +0 -0
  106. package/test/bench_ffi_callraw.js +3 -4
  107. package/test/bench_ffi_callraw.ts +3 -4
  108. package/test/debug/mupdf_debug.js +4 -22
  109. package/test/debug/wasm_export_debug.js +2 -12
  110. package/test/debug/wasm_names.js +3 -13
  111. package/test/example.pdf +0 -0
  112. package/test/mupdf-cdn.js +40 -0
  113. package/test/mupdf-cdn.ts +43 -0
  114. package/test/test_ffi.js +8 -9
  115. package/test/test_ffi.ts +8 -9
  116. package/test/test_ffi_abi.js +6 -6
  117. package/test/test_ffi_abi.ts +8 -8
  118. package/test/test_ffi_windows.js +82 -11
  119. package/test/test_ffi_windows.ts +85 -11
  120. package/test/test_gdi_draw.js +3 -3
  121. package/test/test_gdi_draw.ts +4 -4
  122. package/test/test_mupdf_render.js +4 -22
  123. package/test/test_mupdf_render.ts +4 -23
  124. package/test/test_mupdf_twice.js +4 -19
  125. package/test/test_mupdf_twice.ts +4 -20
  126. package/test/test_mupdf_wasm.js +10 -4
  127. package/test/test_mupdf_wasm.ts +6 -4
  128. package/test/test_react_complex.js +316 -140
  129. package/test/test_react_counter.js +295 -133
  130. package/test/test_react_flex.js +297 -138
  131. package/test/test_react_hidden.js +296 -134
  132. package/test/test_react_listview_link.js +288 -131
  133. package/test/test_react_notify.js +290 -133
  134. package/test/test_react_render.js +295 -133
  135. package/lib/abort.ts +0 -69
  136. package/lib/assert.ts +0 -7
  137. package/lib/cache-utils.ts +0 -40
  138. package/lib/certs.ts +0 -229
  139. package/lib/dumpRects.ts +0 -26
  140. package/lib/exec-log.ts +0 -30
  141. package/lib/fetch.ts +0 -589
  142. package/lib/ffi/bind.ts +0 -539
  143. package/lib/ffi/ctype.ts +0 -371
  144. package/lib/ffi/index.ts +0 -6
  145. package/lib/ffi/struct.ts +0 -780
  146. package/lib/http-common.ts +0 -441
  147. package/lib/http-server.ts +0 -604
  148. package/lib/polyfill.ts +0 -171
  149. package/lib/react-qw/components/index.ts +0 -17
  150. package/lib/react-qw/index.ts +0 -96
  151. package/lib/react-qw/layout.ts +0 -111
  152. package/lib/react-qw/nmhdr.ts +0 -7
  153. package/lib/react-qw/props.ts +0 -41
  154. package/lib/react-qw/reconciler.ts +0 -383
  155. package/lib/stream.ts +0 -22
  156. package/lib/text-codec.ts +0 -171
  157. package/lib/text-measure.ts +0 -41
  158. package/lib/url.ts +0 -201
  159. package/lib/websocket.ts +0 -600
  160. package/lib/windows/comctl32.ts +0 -19
  161. package/lib/windows/comdlg32.ts +0 -10
  162. package/lib/windows/ntdll.ts +0 -11
  163. package/lib/windows/ole32.ts +0 -9
  164. package/lib/windows/shell32.ts +0 -39
  165. package/lib/windows/structs.ts +0 -752
  166. package/lib/windows/user32.ts +0 -619
  167. package/lib/windows/version.ts +0 -35
  168. package/vendor/mupdf-wasm/mupdf-wasm.d.ts +0 -571
  169. package/vendor/mupdf-wasm/mupdf-wasm.js +0 -2749
  170. package/vendor/mupdf-wasm/mupdf-wasm.wasm +0 -0
  171. package/vendor/mupdf-wasm/mupdf.d.ts +0 -939
  172. package/vendor/mupdf-wasm/mupdf.js +0 -3317
package/README.en.md CHANGED
@@ -98,8 +98,7 @@ When run without a script file argument, `qwin.exe` checks for embedded JS at th
98
98
  | `gui` | built-in | Win32 window/control/message/tray API |
99
99
  | `sock` | built-in | socket networking (`AddrFamily`, `FdEvent` etc.) |
100
100
  | `wolfssl` | built-in | TLS/SSL (`VerifyMode`, `ReturnCode` etc.) |
101
- | `ffi` | built-in | foreign function interface |
102
- | `win` | built-in | DLL loading (`LoadLibrary`, `GetProcAddress`) |
101
+ | `ffi` | built-in | foreign function interface (DLL loading: `LoadLibrary`, `GetProcAddress`) |
103
102
  | `brotli` | built-in | Brotli decompression |
104
103
  | `wamr` | built-in | low-level WAMR API |
105
104
  | `fetch` | `import './lib/fetch.js'` | adds `fetch()`, `Response`, `Headers` to globalThis |
package/README.md CHANGED
@@ -96,8 +96,7 @@ _build/execd.exe
96
96
  | `gui` | built-in | Win32 窗口/控件/消息/托盘 API |
97
97
  | `sock` | built-in | Socket 网络(`AddrFamily`、`FdEvent` 等) |
98
98
  | `wolfssl` | built-in | TLS/SSL(`VerifyMode`、`ReturnCode` 等) |
99
- | `ffi` | built-in | 外部函数接口 |
100
- | `win` | built-in | DLL 加载(`LoadLibrary`、`GetProcAddress`) |
99
+ | `ffi` | built-in | 外部函数接口(DLL 装载:`LoadLibrary`、`GetProcAddress`) |
101
100
  | `brotli` | built-in | Brotli 解压 |
102
101
  | `wamr` | built-in | 底层 WAMR API |
103
102
  | `fetch` | `import './lib/fetch.js'` | 向 globalThis 添加 `fetch()`、`Response`、`Headers` |
package/constants.ts CHANGED
@@ -54,6 +54,11 @@ export const enum MenuFlag {
54
54
  POPUP = 16, // 0x10
55
55
  }
56
56
 
57
+ export const enum TrackPopupMenuFlag {
58
+ RETURNCMD = 256, // 0x100
59
+ RIGHTBUTTON = 2, // 0x2
60
+ }
61
+
57
62
  export const enum WindowStyle {
58
63
  OVERLAPPEDWINDOW = 13565952, // 0xCF0000
59
64
  CHILD = 1073741824, // 0x40000000
@@ -225,6 +230,10 @@ export const enum SysMetrics {
225
230
  CYSCREEN = 1, // 0x1
226
231
  }
227
232
 
233
+ export const enum Spi {
234
+ GETNONCLIENTMETRICS = 41, // 0x29
235
+ }
236
+
228
237
  export const enum ButtonStyle {
229
238
  PUSHBUTTON = 0, // 0x0
230
239
  DEFPUSHBUTTON = 1, // 0x1
@@ -353,6 +362,7 @@ export const enum LvImageList {
353
362
  export const enum ImageListFlag {
354
363
  MASK = 1, // 0x1
355
364
  COLOR = 0, // 0x0
365
+ COLOR24 = 24, // 0x18
356
366
  COLOR32 = 32, // 0x20
357
367
  HIGHQUALITYSCALE = 131072, // 0x20000
358
368
  }
@@ -677,6 +687,11 @@ export const enum TtToolFlag {
677
687
  DI_SETITEM = 32768, // 0x8000
678
688
  }
679
689
 
690
+ export const enum ColorUse {
691
+ RGB_COLORS = 0, // 0x0
692
+ PAL_COLORS = 1, // 0x1
693
+ }
694
+
680
695
  export const enum RasterOp {
681
696
  SRCCOPY = 13369376, // 0xCC0020
682
697
  WHITENESS = 16711778, // 0xFF0062
package/enum_map.d.ts CHANGED
@@ -10,12 +10,14 @@ interface EnumMap {
10
10
  NotifyIconCmd: import('./constants').NotifyIconCmd
11
11
  NotifyIconFlag: import('./constants').NotifyIconFlag
12
12
  MenuFlag: import('./constants').MenuFlag
13
+ TrackPopupMenuFlag: import('./constants').TrackPopupMenuFlag
13
14
  WindowStyle: import('./constants').WindowStyle
14
15
  WmMsg: import('./constants').WmMsg
15
16
  ScrollBar: import('./constants').ScrollBar
16
17
  ScrollCmd: import('./constants').ScrollCmd
17
18
  ScrollInfoFlag: import('./constants').ScrollInfoFlag
18
19
  SysMetrics: import('./constants').SysMetrics
20
+ Spi: import('./constants').Spi
19
21
  ButtonStyle: import('./constants').ButtonStyle
20
22
  MouseKeyFlag: import('./constants').MouseKeyFlag
21
23
  LbMsg: import('./constants').LbMsg
@@ -78,6 +80,7 @@ interface EnumMap {
78
80
  TooltipStyle: import('./constants').TooltipStyle
79
81
  CreatePos: import('./constants').CreatePos
80
82
  TtToolFlag: import('./constants').TtToolFlag
83
+ ColorUse: import('./constants').ColorUse
81
84
  RasterOp: import('./constants').RasterOp
82
85
  PenStyle: import('./constants').PenStyle
83
86
  BackgroundMode: import('./constants').BackgroundMode
@@ -28,7 +28,7 @@ export const PdfCanvas = forwardRef(({ pixmap, style }, ref) => {
28
28
  const hdc = GetDC(hwnd);
29
29
  if (hdc) {
30
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);
31
+ SetDIBitsToDevice(hdc, 0, 0, pm.w, pm.h, 0, 0, 0, pm.h, pm.data, bmi, 0 /* ColorUse.RGB_COLORS */);
32
32
  ReleaseDC(hwnd, hdc);
33
33
  }
34
34
  return 0;
@@ -5,7 +5,7 @@ import { GetDC, ReleaseDC } from '../lib/windows/user32.js'
5
5
  import { SetDIBitsToDevice } from '../lib/windows/gdi32.js'
6
6
  import { BITMAPINFOHEADER } from '../lib/windows/structs.js'
7
7
  import type { WStyle } from '../lib/react-qw/jsx.d.ts'
8
- import { WindowStyle, WmMsg } from '../constants'
8
+ import { ColorUse, WindowStyle, WmMsg } from '../constants'
9
9
 
10
10
  function makeBitmapInfo(w: number, h: number) {
11
11
  // biHeight 负 = 自顶向下(DIB 原点左上);biCompression 缺省 0 = BI_RGB 无压缩
@@ -41,7 +41,7 @@ export const PdfCanvas = forwardRef<gui.HWND, PdfCanvasProps>(
41
41
  const hdc = GetDC(hwnd)
42
42
  if (hdc) {
43
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, 0)
44
+ SetDIBitsToDevice(hdc, 0, 0, pm.w, pm.h, 0, 0, 0, pm.h, pm.data, bmi, ColorUse.RGB_COLORS)
45
45
  ReleaseDC(hwnd, hdc)
46
46
  }
47
47
  return 0