wxruby3 1.7.0 → 1.8.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 (522) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +27 -2
  3. data/README.md +15 -15
  4. data/ext/wxruby3/include/wxRubyApp.h +145 -46
  5. data/ext/wxruby3/include/wxruby-ComboPopup.h +25 -8
  6. data/ext/wxruby3/include/wxruby-GCTracking.h +262 -0
  7. data/ext/wxruby3/include/wxruby-MBConv.h +190 -0
  8. data/ext/wxruby3/include/wxruby-SharedEventHandler.h +183 -0
  9. data/ext/wxruby3/include/wxruby-SharedPtr.h +104 -0
  10. data/ext/wxruby3/include/wxruby-runtime.h +29 -0
  11. data/ext/wxruby3/swig/custom/rubytracking.swg +8 -22
  12. data/ext/wxruby3/swig/custom/wx_ruby_shared_ptr.i +434 -0
  13. data/ext/wxruby3/swig/custom/wx_shared_ptr.i +431 -0
  14. data/ext/wxruby3/swig/mark_free_impl.i +7 -132
  15. data/ext/wxruby3/swig/memory_management.i +8 -44
  16. data/ext/wxruby3/swig/wx.i +46 -73
  17. data/lib/wx/core/const.rb +0 -1
  18. data/lib/wx/core/context_help.rb +17 -0
  19. data/lib/wx/core/cursor.rb +1 -0
  20. data/lib/wx/core/helpcontrollerhelpprovider.rb +10 -2
  21. data/lib/wx/core/mbconv.rb +11 -0
  22. data/lib/wx/core/media_ctrl.rb +31 -0
  23. data/lib/wx/core/top_level_window.rb +7 -0
  24. data/lib/wx/core.rb +6 -0
  25. data/lib/wx/doc/art_provider.rb +17 -0
  26. data/lib/wx/doc/context_help.rb +42 -0
  27. data/lib/wx/doc/core.rb +0 -5
  28. data/lib/wx/doc/functions.rb +10 -0
  29. data/lib/wx/doc/html/html_help_controller.rb +23 -1
  30. data/lib/wx/doc/mbconv.rb +108 -0
  31. data/lib/wx/doc/rt/shared_event_handler.rb +49 -0
  32. data/lib/wx/doc/rt/thread_event.rb +28 -0
  33. data/lib/wx/doc/stream.rb +7 -3
  34. data/lib/wx/doc/webview.rb +40 -0
  35. data/lib/wx/helpers.rb +1 -1
  36. data/lib/wx/html/htmlhelpcontroller.rb +10 -0
  37. data/lib/wx/keyword_defs.rb +11 -0
  38. data/lib/wx/rt/require.rb +8 -0
  39. data/lib/wx/rt/thread_event.rb +14 -0
  40. data/lib/wx/rt.rb +16 -0
  41. data/lib/wx/version.rb +1 -1
  42. data/lib/wx/web/require.rb +8 -0
  43. data/lib/wx/web/webview.rb +106 -0
  44. data/lib/wx/web.rb +17 -0
  45. data/lib/wx/wxruby/cmd/setup.rb +15 -0
  46. data/lib/wx/wxruby/cmd/test.rb +8 -2
  47. data/lib/wx.rb +2 -0
  48. data/rakelib/configure.rb +24 -0
  49. data/rakelib/gem.rb +3 -2
  50. data/rakelib/install.rb +54 -27
  51. data/rakelib/lib/config/macosx.rb +7 -5
  52. data/rakelib/lib/config/mingw.rb +66 -5
  53. data/rakelib/lib/config/pkgman/linux.rb +4 -2
  54. data/rakelib/lib/config/pkgman/mingw.rb +1 -1
  55. data/rakelib/lib/config/unixish.rb +4 -2
  56. data/rakelib/lib/config.rb +37 -3
  57. data/rakelib/lib/core/include/client_data.inc +38 -17
  58. data/rakelib/lib/core/include/funcall.inc +1 -1
  59. data/rakelib/lib/core/include/swigdirector.inc +3 -3
  60. data/rakelib/lib/core/include/swigrubyrun.inc +14 -26
  61. data/rakelib/lib/core/package.rb +0 -2
  62. data/rakelib/lib/director/app.rb +1 -8
  63. data/rakelib/lib/director/art_provider.rb +7 -3
  64. data/rakelib/lib/director/comboctrl.rb +0 -7
  65. data/rakelib/lib/director/context_help_button.rb +35 -2
  66. data/rakelib/lib/director/derived_dc.rb +41 -32
  67. data/rakelib/lib/director/editable_listbox.rb +10 -8
  68. data/rakelib/lib/director/event_handler.rb +32 -28
  69. data/rakelib/lib/director/fs_file.rb +38 -10
  70. data/rakelib/lib/director/functions.rb +8 -0
  71. data/rakelib/lib/director/grid_cell_attr.rb +1 -3
  72. data/rakelib/lib/director/grid_cell_editor.rb +14 -12
  73. data/rakelib/lib/director/grid_cell_renderer.rb +11 -8
  74. data/rakelib/lib/director/grid_ctrl.rb +140 -121
  75. data/rakelib/lib/director/help_controller.rb +70 -2
  76. data/rakelib/lib/director/mb_conv.rb +30 -0
  77. data/rakelib/lib/director/menu.rb +92 -42
  78. data/rakelib/lib/director/menu_bar.rb +84 -45
  79. data/rakelib/lib/director/menu_item.rb +2 -2
  80. data/rakelib/lib/director/persistence_manager.rb +3 -2
  81. data/rakelib/lib/director/preview_frame.rb +2 -2
  82. data/rakelib/lib/director/ribbon_page.rb +11 -0
  83. data/rakelib/lib/director/richtext_buffer.rb +5 -2
  84. data/rakelib/lib/director/shared_evt_handler.rb +30 -0
  85. data/rakelib/lib/director/sizer.rb +8 -17
  86. data/rakelib/lib/director/sizer_item.rb +3 -4
  87. data/rakelib/lib/director/task_bar_icon.rb +7 -7
  88. data/rakelib/lib/director/thread_event.rb +33 -0
  89. data/rakelib/lib/director/top_level_window.rb +12 -4
  90. data/rakelib/lib/director/validator.rb +3 -1
  91. data/rakelib/lib/director/variant.rb +16 -12
  92. data/rakelib/lib/director/webview.rb +166 -0
  93. data/rakelib/lib/director/webview_event.rb +37 -0
  94. data/rakelib/lib/director/webview_handler.rb +63 -0
  95. data/rakelib/lib/generate/doc/thread_event.yaml +20 -0
  96. data/rakelib/lib/generate/doc/web_view.yaml +135 -0
  97. data/rakelib/lib/generate/doc/web_view_event.yaml +38 -0
  98. data/rakelib/lib/generate/doc/web_view_handler.yaml +58 -0
  99. data/rakelib/lib/specs/interfaces.rb +14 -2
  100. data/rakelib/lib/typemap/common.rb +34 -1
  101. data/rakelib/lib/typemap/mb_conv.rb +58 -0
  102. data/rakelib/prepost.rake +23 -31
  103. data/rakelib/prepost.rb +20 -0
  104. data/samples/event/threaded.rb +295 -42
  105. data/samples/event/tn_threaded.png +0 -0
  106. data/samples/help/doc/back.gif +0 -0
  107. data/samples/help/doc/contents.gif +0 -0
  108. data/samples/help/doc/cshelp.txt +9 -0
  109. data/samples/help/doc/doc.chm +0 -0
  110. data/samples/help/doc/doc.cnt +8 -0
  111. data/samples/help/doc/doc.h +7 -0
  112. data/samples/help/doc/doc.hhc +40 -0
  113. data/samples/help/doc/doc.hhk +31 -0
  114. data/samples/help/doc/doc.hhp +33 -0
  115. data/samples/help/doc/doc.hpj +21 -0
  116. data/samples/help/doc/doc.htm +27 -0
  117. data/samples/help/doc/doc1.htm +24 -0
  118. data/samples/help/doc/doc2.htm +12 -0
  119. data/samples/help/doc/doc3.htm +12 -0
  120. data/samples/help/doc/doc4.htm +12 -0
  121. data/samples/help/doc/doc5.htm +14 -0
  122. data/samples/help/doc/forward.gif +0 -0
  123. data/samples/help/doc/up.gif +0 -0
  124. data/samples/help/doc.chm +0 -0
  125. data/samples/help/doc.chw +0 -0
  126. data/samples/help/doc.zip +0 -0
  127. data/samples/help/help.rb +352 -0
  128. data/samples/help/tn_help.png +0 -0
  129. data/samples/webview/handler_advanced.html +55 -0
  130. data/samples/webview/tn_webview.png +0 -0
  131. data/samples/webview/webview.rb +1264 -0
  132. data/tests/assets/handler_advanced.html +55 -0
  133. data/tests/assets/test.zip +0 -0
  134. data/tests/lib/text_entry_tests.rb +2 -2
  135. data/tests/lib/wxapp_runner.rb +40 -0
  136. data/tests/lib/wxframe_runner.rb +17 -2
  137. data/tests/test_art.rb +8 -8
  138. data/tests/test_clipboard.rb +4 -4
  139. data/tests/test_config.rb +6 -6
  140. data/tests/test_exceptions.rb +8 -6
  141. data/tests/test_ext_controls.rb +3 -3
  142. data/tests/test_file_dialog.rb +5 -5
  143. data/tests/test_font.rb +7 -7
  144. data/tests/test_grid_ctrl.rb +133 -0
  145. data/tests/test_help.rb +88 -0
  146. data/tests/test_intl.rb +1 -1
  147. data/tests/test_media_ctrl.rb +14 -6
  148. data/tests/test_menu.rb +94 -86
  149. data/tests/test_persistence.rb +1 -1
  150. data/tests/test_proof_check.rb +5 -5
  151. data/tests/test_propgrid.rb +1 -1
  152. data/tests/test_shared_event_handler.rb +141 -0
  153. data/tests/test_std_controls.rb +5 -5
  154. data/tests/test_webview.rb +492 -0
  155. data/tests/test_window.rb +3 -3
  156. metadata +66 -368
  157. data/assets/repo-social-preview.odg +0 -0
  158. data/assets/repo-social-preview.xcf +0 -0
  159. data/lib/wx/aui/events/evt_list.rb +0 -148
  160. data/lib/wx/core/events/evt_list.rb +0 -1458
  161. data/lib/wx/core/font/encoding.rb +0 -113
  162. data/lib/wx/doc/gen/about_dialog_info.rb +0 -330
  163. data/lib/wx/doc/gen/accelerator.rb +0 -178
  164. data/lib/wx/doc/gen/activity_indicator.rb +0 -83
  165. data/lib/wx/doc/gen/affine_matrix2d.rb +0 -284
  166. data/lib/wx/doc/gen/animation.rb +0 -275
  167. data/lib/wx/doc/gen/animation_ctrl.rb +0 -300
  168. data/lib/wx/doc/gen/any_button.rb +0 -191
  169. data/lib/wx/doc/gen/app.rb +0 -463
  170. data/lib/wx/doc/gen/app_traits.rb +0 -396
  171. data/lib/wx/doc/gen/art_provider.rb +0 -605
  172. data/lib/wx/doc/gen/aui/aui_dock_art.rb +0 -455
  173. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +0 -54
  174. data/lib/wx/doc/gen/aui/aui_manager.rb +0 -847
  175. data/lib/wx/doc/gen/aui/aui_manager_event.rb +0 -131
  176. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +0 -180
  177. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +0 -59
  178. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +0 -130
  179. data/lib/wx/doc/gen/aui/aui_notebook.rb +0 -631
  180. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +0 -233
  181. data/lib/wx/doc/gen/aui/aui_pane_info.rb +0 -769
  182. data/lib/wx/doc/gen/aui/aui_tab_art.rb +0 -352
  183. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +0 -14
  184. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +0 -510
  185. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +0 -340
  186. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +0 -244
  187. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +0 -257
  188. data/lib/wx/doc/gen/aui/event_list.rb +0 -179
  189. data/lib/wx/doc/gen/banner_window.rb +0 -124
  190. data/lib/wx/doc/gen/bitmap.rb +0 -731
  191. data/lib/wx/doc/gen/bitmap_button.rb +0 -123
  192. data/lib/wx/doc/gen/bitmap_combo_box.rb +0 -221
  193. data/lib/wx/doc/gen/book_ctrl_base.rb +0 -273
  194. data/lib/wx/doc/gen/book_ctrl_event.rb +0 -66
  195. data/lib/wx/doc/gen/box_sizer.rb +0 -85
  196. data/lib/wx/doc/gen/brush.rb +0 -251
  197. data/lib/wx/doc/gen/busy_info.rb +0 -157
  198. data/lib/wx/doc/gen/button.rb +0 -182
  199. data/lib/wx/doc/gen/calculate_layout_event.rb +0 -62
  200. data/lib/wx/doc/gen/calendar_ctrl.rb +0 -505
  201. data/lib/wx/doc/gen/calendar_date_attr.rb +0 -138
  202. data/lib/wx/doc/gen/calendar_event.rb +0 -147
  203. data/lib/wx/doc/gen/caret.rb +0 -97
  204. data/lib/wx/doc/gen/check_box.rb +0 -175
  205. data/lib/wx/doc/gen/check_list_box.rb +0 -121
  206. data/lib/wx/doc/gen/choice.rb +0 -175
  207. data/lib/wx/doc/gen/choicebook.rb +0 -116
  208. data/lib/wx/doc/gen/client_dc.rb +0 -43
  209. data/lib/wx/doc/gen/clipboard.rb +0 -144
  210. data/lib/wx/doc/gen/collapsible_pane.rb +0 -138
  211. data/lib/wx/doc/gen/collapsible_pane_event.rb +0 -46
  212. data/lib/wx/doc/gen/colour.rb +0 -333
  213. data/lib/wx/doc/gen/colour_dialog.rb +0 -190
  214. data/lib/wx/doc/gen/colour_picker_ctrl.rb +0 -110
  215. data/lib/wx/doc/gen/colour_picker_event.rb +0 -77
  216. data/lib/wx/doc/gen/combo_box.rb +0 -292
  217. data/lib/wx/doc/gen/combo_ctrl.rb +0 -662
  218. data/lib/wx/doc/gen/command_link_button.rb +0 -134
  219. data/lib/wx/doc/gen/config_base.rb +0 -10
  220. data/lib/wx/doc/gen/context_help_button.rb +0 -109
  221. data/lib/wx/doc/gen/control.rb +0 -277
  222. data/lib/wx/doc/gen/control_with_items.rb +0 -253
  223. data/lib/wx/doc/gen/core.rb +0 -45
  224. data/lib/wx/doc/gen/credential_entry_dialog.rb +0 -137
  225. data/lib/wx/doc/gen/cursor.rb +0 -193
  226. data/lib/wx/doc/gen/data_format.rb +0 -85
  227. data/lib/wx/doc/gen/data_object.rb +0 -436
  228. data/lib/wx/doc/gen/data_object_simple_base.rb +0 -10
  229. data/lib/wx/doc/gen/date_event.rb +0 -49
  230. data/lib/wx/doc/gen/date_picker_ctrl.rb +0 -161
  231. data/lib/wx/doc/gen/dc.rb +0 -1631
  232. data/lib/wx/doc/gen/dc_overlay.rb +0 -102
  233. data/lib/wx/doc/gen/defs.rb +0 -2802
  234. data/lib/wx/doc/gen/dial_up_event.rb +0 -45
  235. data/lib/wx/doc/gen/dial_up_manager.rb +0 -149
  236. data/lib/wx/doc/gen/dialog.rb +0 -541
  237. data/lib/wx/doc/gen/dir_dialog.rb +0 -164
  238. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +0 -90
  239. data/lib/wx/doc/gen/dir_picker_ctrl.rb +0 -125
  240. data/lib/wx/doc/gen/display.rb +0 -238
  241. data/lib/wx/doc/gen/drag_drop.rb +0 -299
  242. data/lib/wx/doc/gen/drag_image.rb +0 -116
  243. data/lib/wx/doc/gen/editable_list_box.rb +0 -109
  244. data/lib/wx/doc/gen/event.rb +0 -990
  245. data/lib/wx/doc/gen/event_blocker.rb +0 -50
  246. data/lib/wx/doc/gen/event_filter.rb +0 -92
  247. data/lib/wx/doc/gen/event_list.rb +0 -1644
  248. data/lib/wx/doc/gen/events.rb +0 -2809
  249. data/lib/wx/doc/gen/evt_handler.rb +0 -229
  250. data/lib/wx/doc/gen/ext_help_controller.rb +0 -109
  251. data/lib/wx/doc/gen/file_ctrl.rb +0 -231
  252. data/lib/wx/doc/gen/file_ctrl_event.rb +0 -83
  253. data/lib/wx/doc/gen/file_dialog.rb +0 -353
  254. data/lib/wx/doc/gen/file_dialog_custom_control.rb +0 -165
  255. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +0 -158
  256. data/lib/wx/doc/gen/file_dir_picker_event.rb +0 -100
  257. data/lib/wx/doc/gen/file_picker_ctrl.rb +0 -132
  258. data/lib/wx/doc/gen/file_system.rb +0 -232
  259. data/lib/wx/doc/gen/find_dialog_event.rb +0 -126
  260. data/lib/wx/doc/gen/find_replace_data.rb +0 -60
  261. data/lib/wx/doc/gen/find_replace_dialog.rb +0 -58
  262. data/lib/wx/doc/gen/flex_grid_sizer.rb +0 -199
  263. data/lib/wx/doc/gen/font.rb +0 -1379
  264. data/lib/wx/doc/gen/font_data.rb +0 -151
  265. data/lib/wx/doc/gen/font_dialog.rb +0 -88
  266. data/lib/wx/doc/gen/font_picker_ctrl.rb +0 -143
  267. data/lib/wx/doc/gen/font_picker_event.rb +0 -65
  268. data/lib/wx/doc/gen/frame.rb +0 -352
  269. data/lib/wx/doc/gen/fs_file.rb +0 -337
  270. data/lib/wx/doc/gen/functions.rb +0 -10
  271. data/lib/wx/doc/gen/gauge.rb +0 -157
  272. data/lib/wx/doc/gen/gb_sizer_item.rb +0 -68
  273. data/lib/wx/doc/gen/gcdc.rb +0 -46
  274. data/lib/wx/doc/gen/gdi_common.rb +0 -1271
  275. data/lib/wx/doc/gen/gdi_object.rb +0 -31
  276. data/lib/wx/doc/gen/generic_about_dialog.rb +0 -140
  277. data/lib/wx/doc/gen/generic_dir_ctrl.rb +0 -223
  278. data/lib/wx/doc/gen/geometry.rb +0 -661
  279. data/lib/wx/doc/gen/graphics_context.rb +0 -1184
  280. data/lib/wx/doc/gen/graphics_object.rb +0 -750
  281. data/lib/wx/doc/gen/grid/event_list.rb +0 -191
  282. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +0 -40
  283. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +0 -280
  284. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +0 -35
  285. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +0 -37
  286. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +0 -49
  287. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +0 -35
  288. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +0 -46
  289. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +0 -38
  290. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +0 -45
  291. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +0 -40
  292. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +0 -197
  293. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +0 -39
  294. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +0 -44
  295. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +0 -45
  296. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +0 -79
  297. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +0 -46
  298. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +0 -35
  299. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +0 -108
  300. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +0 -35
  301. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +0 -49
  302. data/lib/wx/doc/gen/grid/grid_ctrl.rb +0 -3002
  303. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +0 -95
  304. data/lib/wx/doc/gen/grid/grid_event.rb +0 -129
  305. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +0 -104
  306. data/lib/wx/doc/gen/grid/grid_size_event.rb +0 -85
  307. data/lib/wx/doc/gen/grid/grid_string_table.rb +0 -142
  308. data/lib/wx/doc/gen/grid/grid_table_base.rb +0 -317
  309. data/lib/wx/doc/gen/grid/grid_table_message.rb +0 -81
  310. data/lib/wx/doc/gen/grid_bag_sizer.rb +0 -323
  311. data/lib/wx/doc/gen/grid_sizer.rb +0 -195
  312. data/lib/wx/doc/gen/gui_event_loop.rb +0 -159
  313. data/lib/wx/doc/gen/h_scrolled_window.rb +0 -562
  314. data/lib/wx/doc/gen/header_ctrl.rb +0 -880
  315. data/lib/wx/doc/gen/header_ctrl_event.rb +0 -133
  316. data/lib/wx/doc/gen/help_controller.rb +0 -195
  317. data/lib/wx/doc/gen/help_provider.rb +0 -98
  318. data/lib/wx/doc/gen/html/event_list.rb +0 -38
  319. data/lib/wx/doc/gen/html/html_cell.rb +0 -536
  320. data/lib/wx/doc/gen/html/html_cell_event.rb +0 -69
  321. data/lib/wx/doc/gen/html/html_data_object.rb +0 -42
  322. data/lib/wx/doc/gen/html/html_easy_printing.rb +0 -203
  323. data/lib/wx/doc/gen/html/html_help_controller.rb +0 -340
  324. data/lib/wx/doc/gen/html/html_help_data.rb +0 -159
  325. data/lib/wx/doc/gen/html/html_help_window.rb +0 -258
  326. data/lib/wx/doc/gen/html/html_link_event.rb +0 -41
  327. data/lib/wx/doc/gen/html/html_list_box.rb +0 -346
  328. data/lib/wx/doc/gen/html/html_printout.rb +0 -109
  329. data/lib/wx/doc/gen/html/html_window.rb +0 -461
  330. data/lib/wx/doc/gen/hyperlink_ctrl.rb +0 -311
  331. data/lib/wx/doc/gen/hyperlink_event.rb +0 -44
  332. data/lib/wx/doc/gen/icon.rb +0 -267
  333. data/lib/wx/doc/gen/icon_location.rb +0 -40
  334. data/lib/wx/doc/gen/image.rb +0 -1371
  335. data/lib/wx/doc/gen/image_list.rb +0 -168
  336. data/lib/wx/doc/gen/info_bar.rb +0 -195
  337. data/lib/wx/doc/gen/keyboard_state.rb +0 -140
  338. data/lib/wx/doc/gen/list_box.rb +0 -304
  339. data/lib/wx/doc/gen/list_ctrl.rb +0 -1774
  340. data/lib/wx/doc/gen/list_event.rb +0 -208
  341. data/lib/wx/doc/gen/listbook.rb +0 -116
  342. data/lib/wx/doc/gen/locale.rb +0 -4293
  343. data/lib/wx/doc/gen/log.rb +0 -603
  344. data/lib/wx/doc/gen/mdi_client_window.rb +0 -47
  345. data/lib/wx/doc/gen/mdi_frame.rb +0 -324
  346. data/lib/wx/doc/gen/media_ctrl.rb +0 -269
  347. data/lib/wx/doc/gen/media_event.rb +0 -117
  348. data/lib/wx/doc/gen/memory_dc.rb +0 -174
  349. data/lib/wx/doc/gen/menu.rb +0 -509
  350. data/lib/wx/doc/gen/menu_bar.rb +0 -287
  351. data/lib/wx/doc/gen/menu_item.rb +0 -362
  352. data/lib/wx/doc/gen/message_dialog.rb +0 -238
  353. data/lib/wx/doc/gen/mini_frame.rb +0 -108
  354. data/lib/wx/doc/gen/mirror_dc.rb +0 -22
  355. data/lib/wx/doc/gen/mouse_state.rb +0 -150
  356. data/lib/wx/doc/gen/multi_choice_dialog.rb +0 -80
  357. data/lib/wx/doc/gen/non_owned_window.rb +0 -49
  358. data/lib/wx/doc/gen/notebook.rb +0 -278
  359. data/lib/wx/doc/gen/num_validator.rb +0 -37
  360. data/lib/wx/doc/gen/number_entry_dialog.rb +0 -93
  361. data/lib/wx/doc/gen/object.rb +0 -59
  362. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +0 -395
  363. data/lib/wx/doc/gen/paint_dc.rb +0 -27
  364. data/lib/wx/doc/gen/palette.rb +0 -92
  365. data/lib/wx/doc/gen/panel.rb +0 -127
  366. data/lib/wx/doc/gen/pen.rb +0 -511
  367. data/lib/wx/doc/gen/persistence_manager.rb +0 -135
  368. data/lib/wx/doc/gen/persistent_object.rb +0 -52
  369. data/lib/wx/doc/gen/persistent_window.rb +0 -241
  370. data/lib/wx/doc/gen/pg/event_list.rb +0 -106
  371. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +0 -54
  372. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +0 -292
  373. data/lib/wx/doc/gen/pg/pg_cell.rb +0 -177
  374. data/lib/wx/doc/gen/pg/pg_editor.rb +0 -721
  375. data/lib/wx/doc/gen/pg/pg_multi_button.rb +0 -152
  376. data/lib/wx/doc/gen/pg/pg_properties.rb +0 -2829
  377. data/lib/wx/doc/gen/pg/pg_property.rb +0 -2078
  378. data/lib/wx/doc/gen/pg/pg_validation_info.rb +0 -344
  379. data/lib/wx/doc/gen/pg/property_grid.rb +0 -740
  380. data/lib/wx/doc/gen/pg/property_grid_event.rb +0 -184
  381. data/lib/wx/doc/gen/pg/property_grid_interface.rb +0 -1098
  382. data/lib/wx/doc/gen/pg/property_grid_manager.rb +0 -415
  383. data/lib/wx/doc/gen/pg/property_grid_page.rb +0 -354
  384. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +0 -165
  385. data/lib/wx/doc/gen/picker_base.rb +0 -152
  386. data/lib/wx/doc/gen/platform_info.rb +0 -622
  387. data/lib/wx/doc/gen/popup_window.rb +0 -107
  388. data/lib/wx/doc/gen/progress_dialog.rb +0 -100
  389. data/lib/wx/doc/gen/property_sheet_dialog.rb +0 -216
  390. data/lib/wx/doc/gen/prt/event_list.rb +0 -17
  391. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +0 -44
  392. data/lib/wx/doc/gen/prt/post_script_dc.rb +0 -30
  393. data/lib/wx/doc/gen/prt/preview_frame.rb +0 -78
  394. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +0 -151
  395. data/lib/wx/doc/gen/prt/print_data.rb +0 -804
  396. data/lib/wx/doc/gen/prt/print_dialog.rb +0 -55
  397. data/lib/wx/doc/gen/prt/printer.rb +0 -518
  398. data/lib/wx/doc/gen/prt/printer_dc.rb +0 -37
  399. data/lib/wx/doc/gen/query_layout_info_event.rb +0 -106
  400. data/lib/wx/doc/gen/radio_box.rb +0 -306
  401. data/lib/wx/doc/gen/radio_button.rb +0 -159
  402. data/lib/wx/doc/gen/rbn/event_list.rb +0 -136
  403. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +0 -1132
  404. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +0 -308
  405. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +0 -45
  406. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +0 -458
  407. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +0 -63
  408. data/lib/wx/doc/gen/rbn/ribbon_control.rb +0 -143
  409. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +0 -229
  410. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +0 -55
  411. data/lib/wx/doc/gen/rbn/ribbon_page.rb +0 -174
  412. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +0 -270
  413. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +0 -45
  414. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +0 -360
  415. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +0 -42
  416. data/lib/wx/doc/gen/rearrange_ctrl.rb +0 -78
  417. data/lib/wx/doc/gen/rearrange_list.rb +0 -123
  418. data/lib/wx/doc/gen/region.rb +0 -380
  419. data/lib/wx/doc/gen/region_iterator.rb +0 -76
  420. data/lib/wx/doc/gen/rich_tool_tip.rb +0 -154
  421. data/lib/wx/doc/gen/rtc/event_list.rb +0 -125
  422. data/lib/wx/doc/gen/rtc/rich_text_box.rb +0 -445
  423. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +0 -1188
  424. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +0 -41
  425. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +0 -538
  426. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +0 -2103
  427. data/lib/wx/doc/gen/rtc/rich_text_event.rb +0 -173
  428. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +0 -181
  429. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +0 -319
  430. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +0 -193
  431. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +0 -102
  432. data/lib/wx/doc/gen/rtc/rich_text_image.rb +0 -337
  433. data/lib/wx/doc/gen/rtc/rich_text_object.rb +0 -2922
  434. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +0 -1240
  435. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +0 -258
  436. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +0 -344
  437. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +0 -227
  438. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +0 -59
  439. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +0 -169
  440. data/lib/wx/doc/gen/sash_event.rb +0 -147
  441. data/lib/wx/doc/gen/sash_layout_window.rb +0 -232
  442. data/lib/wx/doc/gen/sash_window.rb +0 -171
  443. data/lib/wx/doc/gen/scaled_dc.rb +0 -10
  444. data/lib/wx/doc/gen/screen_dc.rb +0 -30
  445. data/lib/wx/doc/gen/scroll_bar.rb +0 -204
  446. data/lib/wx/doc/gen/scrolled_canvas.rb +0 -410
  447. data/lib/wx/doc/gen/scrolled_control.rb +0 -410
  448. data/lib/wx/doc/gen/scrolled_window.rb +0 -430
  449. data/lib/wx/doc/gen/search_ctrl.rb +0 -159
  450. data/lib/wx/doc/gen/secret_store.rb +0 -116
  451. data/lib/wx/doc/gen/simplebook.rb +0 -110
  452. data/lib/wx/doc/gen/single_choice_dialog.rb +0 -89
  453. data/lib/wx/doc/gen/sizer.rb +0 -945
  454. data/lib/wx/doc/gen/sizer_item.rb +0 -244
  455. data/lib/wx/doc/gen/slider.rb +0 -342
  456. data/lib/wx/doc/gen/spin_button.rb +0 -157
  457. data/lib/wx/doc/gen/spin_ctrl.rb +0 -231
  458. data/lib/wx/doc/gen/spin_ctrl_double.rb +0 -192
  459. data/lib/wx/doc/gen/spin_double_event.rb +0 -55
  460. data/lib/wx/doc/gen/spin_event.rb +0 -51
  461. data/lib/wx/doc/gen/splash_screen.rb +0 -113
  462. data/lib/wx/doc/gen/splitter_event.rb +0 -99
  463. data/lib/wx/doc/gen/splitter_window.rb +0 -498
  464. data/lib/wx/doc/gen/static_bitmap.rb +0 -256
  465. data/lib/wx/doc/gen/static_box.rb +0 -180
  466. data/lib/wx/doc/gen/static_box_sizer.rb +0 -85
  467. data/lib/wx/doc/gen/static_line.rb +0 -83
  468. data/lib/wx/doc/gen/static_text.rb +0 -127
  469. data/lib/wx/doc/gen/status_bar.rb +0 -290
  470. data/lib/wx/doc/gen/stc/event_list.rb +0 -221
  471. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +0 -4474
  472. data/lib/wx/doc/gen/stc/styled_text_event.rb +0 -8762
  473. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +0 -129
  474. data/lib/wx/doc/gen/svg_file_dc.rb +0 -164
  475. data/lib/wx/doc/gen/system_options.rb +0 -129
  476. data/lib/wx/doc/gen/system_settings.rb +0 -507
  477. data/lib/wx/doc/gen/task_bar_icon.rb +0 -127
  478. data/lib/wx/doc/gen/task_bar_icon_event.rb +0 -88
  479. data/lib/wx/doc/gen/text_attr.rb +0 -756
  480. data/lib/wx/doc/gen/text_ctrl.rb +0 -1033
  481. data/lib/wx/doc/gen/text_entry.rb +0 -441
  482. data/lib/wx/doc/gen/text_entry_dialog.rb +0 -220
  483. data/lib/wx/doc/gen/text_validator.rb +0 -245
  484. data/lib/wx/doc/gen/time_picker_ctrl.rb +0 -128
  485. data/lib/wx/doc/gen/timer.rb +0 -119
  486. data/lib/wx/doc/gen/timer_event.rb +0 -68
  487. data/lib/wx/doc/gen/tip_provider.rb +0 -63
  488. data/lib/wx/doc/gen/tip_window.rb +0 -51
  489. data/lib/wx/doc/gen/toggle_button.rb +0 -182
  490. data/lib/wx/doc/gen/tool_bar.rb +0 -890
  491. data/lib/wx/doc/gen/tool_tip.rb +0 -86
  492. data/lib/wx/doc/gen/toolbook.rb +0 -118
  493. data/lib/wx/doc/gen/top_level_window.rb +0 -497
  494. data/lib/wx/doc/gen/tree_ctrl.rb +0 -1052
  495. data/lib/wx/doc/gen/tree_event.rb +0 -127
  496. data/lib/wx/doc/gen/treebook.rb +0 -180
  497. data/lib/wx/doc/gen/ui_action_simulator.rb +0 -109
  498. data/lib/wx/doc/gen/utils.rb +0 -273
  499. data/lib/wx/doc/gen/v_list_box.rb +0 -272
  500. data/lib/wx/doc/gen/v_scrolled_canvas.rb +0 -195
  501. data/lib/wx/doc/gen/v_scrolled_window.rb +0 -191
  502. data/lib/wx/doc/gen/validator.rb +0 -68
  503. data/lib/wx/doc/gen/variant.rb +0 -294
  504. data/lib/wx/doc/gen/window.rb +0 -2917
  505. data/lib/wx/doc/gen/window_dc.rb +0 -38
  506. data/lib/wx/doc/gen/window_disabler.rb +0 -30
  507. data/lib/wx/doc/gen/with_images.rb +0 -84
  508. data/lib/wx/doc/gen/wizard.rb +0 -257
  509. data/lib/wx/doc/gen/wizard_event.rb +0 -113
  510. data/lib/wx/doc/gen/wizard_page.rb +0 -65
  511. data/lib/wx/doc/gen/wizard_page_simple.rb +0 -88
  512. data/lib/wx/doc/gen/wrap_sizer.rb +0 -79
  513. data/lib/wx/doc/gen/xml_node.rb +0 -316
  514. data/lib/wx/doc/gen/xml_resource.rb +0 -320
  515. data/lib/wx/grid/events/evt_list.rb +0 -166
  516. data/lib/wx/html/events/evt_list.rb +0 -27
  517. data/lib/wx/pg/events/evt_list.rb +0 -73
  518. data/lib/wx/rbn/events/evt_list.rb +0 -102
  519. data/lib/wx/rtc/events/evt_list.rb +0 -98
  520. data/lib/wx/rtc/ext/rich_text_ctrl.rb +0 -24
  521. data/lib/wx/stc/events/evt_list.rb +0 -178
  522. data/samples/art/wxruby-512x512.png +0 -0
@@ -0,0 +1,49 @@
1
+ # :stopdoc:
2
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
3
+ #
4
+ # This software is released under the MIT license.
5
+
6
+
7
+ # Shared event handler methods documentation stubs.
8
+ # :startdoc:
9
+
10
+
11
+
12
+ module Wx
13
+
14
+ # The RT (Ruby|Ractor Threading) module provides the {RT::SharedEvtHandler} and {RT::ThreadEvent}
15
+ # classes which can be used provide thread-(or Ractor-)safe event messaging in wxRuby3.
16
+ module RT
17
+
18
+ # This class provides a threadsafe (Ractor shareable) reference to a {Wx:EvtHandler} providing
19
+ # only 2 methods; {RT::SharedEvtHandler#clone} and {RT::SharedEvtHandler#queue_event}
20
+ class SharedEvtHandler
21
+
22
+ # Returns a cloned instance referencing the same {Wx::EvtHandler}.
23
+ # @return [Wx::RT::SharedEvtHandler]
24
+ def clone; end
25
+
26
+ # Essentially the same functionality as {Wx::EvtHandler#queue_event} except that this method only
27
+ # accepts {Wx::RT::ThreadEvent} or derived instances.
28
+ # @note Note that this event will not maintain any Ruby state, i.e. the actual Ruby instance and/or any instance
29
+ # variables thereof will not be transferred through the event messaging system. Only state managed by the wrapped
30
+ # C\++ event instance will persist.
31
+ # @param [Wx::RT::ThreadEvent] evt event instance to be queued
32
+ # @return [void]
33
+ def queue_event(evt); end
34
+
35
+ end
36
+
37
+ end
38
+
39
+ class EvtHandler < Wx::Object
40
+
41
+ # Returns a Ractor-safe shareable event handler reference.
42
+ # @see Wx::RT::SharedEvtHandler
43
+ # @see Wx::RT::ThreadEvent
44
+ # @return [Wx::RTT::SharedEvtHandler]
45
+ def make_shared; end
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,28 @@
1
+ # :stopdoc:
2
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
3
+ #
4
+ # This software is released under the MIT license.
5
+
6
+
7
+ # Shared event handler methods documentation stubs.
8
+ # :startdoc:
9
+
10
+
11
+
12
+ module Wx
13
+
14
+ module RT
15
+
16
+ class ThreadEvent < Event
17
+
18
+ # Constructor.
19
+ # @param eventType [Integer]
20
+ # @param id [Integer]
21
+ # @return [Wx::RT::ThreadEvent]
22
+ def initialize(eventType=Wx::EVT_THREAD, id=Wx::StandardID::ID_ANY) end
23
+
24
+ end
25
+
26
+ end
27
+
28
+ end
data/lib/wx/doc/stream.rb CHANGED
@@ -17,12 +17,16 @@ module Wx
17
17
  # Reads bytes from stream and writes these to output stream until eof or error.
18
18
  # @param [IO,Wx::OutputStream] output output stream to write to
19
19
  # @return [self]
20
- def read(*args); end
20
+ def read(*); end
21
21
 
22
+ # @overload read_all(size)
22
23
  # Reads size bytes from stream (until eof or error).
23
24
  # @param [Integer] size number of bytes to read
24
25
  # @return [String,nil] string with bytes read (nil if none read)
25
- def read_all(size); end
26
+ # @overload read_all()
27
+ # Reads all bytes from stream (until eof or error).
28
+ # @return [String,nil] string with bytes read (nil if none read)
29
+ def read_all(*); end
26
30
 
27
31
  end
28
32
 
@@ -36,7 +40,7 @@ module Wx
36
40
  # Write bytes read from input stream (until eof or error)
37
41
  # @param [IO,Wx::InputStream] input input stream to read from
38
42
  # @return [self]
39
- def write(*args); end
43
+ def write(*); end
40
44
 
41
45
  # Writes bytes from buffer to stream.
42
46
  # @param [String] buffer string with bytes to write
@@ -0,0 +1,40 @@
1
+ # :stopdoc:
2
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
3
+ #
4
+ # This software is released under the MIT license.
5
+ # :startdoc:
6
+
7
+
8
+ module Wx
9
+
10
+ module WEB
11
+
12
+ class WebView < Wx::Control
13
+
14
+ # Sets emulation level.
15
+ #
16
+ # This function is useful to change the emulation level of the system browser control used for {Wx::WebView}
17
+ # implementation under MSW, rather than using the currently default, IE11-compatible, level (with wxRuby3).
18
+ #
19
+ # Please notice that this function works by modifying the per-user part of MSW registry, which has several
20
+ # implications: first, it is sufficient to call it only once (per user) as the changes done by it are persistent
21
+ # and, second, if you do not want them to be persistent, you need to call it with {Wx::WEB::WEBVIEWIE_EMU_DEFAULT}
22
+ # argument explicitly.
23
+ #
24
+ # In particular, this function should be called to allow {Wx::WEB::WebView#run_script} to work for JavaScript code
25
+ # returning arbitrary objects, which is not supported at the default emulation level.
26
+ #
27
+ # If set to a level higher than installed version, the highest available level will be used instead.
28
+ # {Wx::WEB::WEBVIEWIE_EMU_IE11} is recommended for best performance and experience.
29
+ #
30
+ # This function is MSW-specific and doesn't exist under other platforms.
31
+ #
32
+ # @param [Wx::WEB::WebViewIE_EmulationLevel] level
33
+ # @return [Boolean] true on success, false on failure (a warning message is also logged in the latter case).
34
+ # @wxrb_require WXMSW
35
+ def self.msw_set_ie_emulation_level(level=Wx::WEB::WEBVIEWIE_EMU_IE11); end
36
+ end
37
+
38
+ end
39
+
40
+ end
data/lib/wx/helpers.rb CHANGED
@@ -36,7 +36,7 @@ module Wx
36
36
  end
37
37
  rescue
38
38
  Kernel.raise ArgumentError,
39
- "Bad arg composition of #{args.inspect}"
39
+ "Bad arg composition of #{args.inspect} (error = #{$!}, param spec = #{param_spec.inspect})"
40
40
  end
41
41
 
42
42
  unless kwargs.empty?
@@ -27,6 +27,16 @@ module Wx
27
27
 
28
28
  end
29
29
 
30
+ class << self
31
+
32
+ define_method :HtmlModalHelp do |parent, help_file, topic = '', style = Wx::HTML::HF_DEFAULT_STYLE|
33
+
34
+ html_modal_help(parent, help_file, topic, style)
35
+
36
+ end
37
+
38
+ end
39
+
30
40
  end
31
41
 
32
42
  end
@@ -240,6 +240,17 @@ Wx::define_keyword_ctors(Wx::TextEntryDialog) do
240
240
  wx_ctor_params :pos
241
241
  end
242
242
 
243
+ # Dialog to get a number from the user
244
+ Wx::define_keyword_ctors(Wx::NumberEntryDialog) do
245
+ wx_ctor_params :message => ''
246
+ wx_ctor_params :prompt => 'Number'
247
+ wx_ctor_params :caption => 'Please enter a number'
248
+ wx_ctor_params :value => 0
249
+ wx_ctor_params :min => 0
250
+ wx_ctor_params :max => 0
251
+ wx_ctor_params :pos
252
+ end
253
+
243
254
  # wxPasswordEntryDialog Dialog to get a password from the user
244
255
  Wx::define_keyword_ctors(Wx::PasswordEntryDialog) do
245
256
  wx_ctor_params :message => ''
@@ -0,0 +1,8 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ # Wx::RT sub package for wxRuby3
6
+
7
+ require_relative './events/evt_list'
8
+ require_relative './thread_event'
@@ -0,0 +1,14 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+ #
5
+
6
+ module Wx
7
+
8
+ Wx::EvtHandler.register_event_type Wx::EvtHandler::EventType[
9
+ 'evt_thread', 1,
10
+ Wx::RT::EVT_THREAD,
11
+ Wx::RT::ThreadEvent
12
+ ]
13
+
14
+ end
data/lib/wx/rt.rb ADDED
@@ -0,0 +1,16 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ # Wx::RT sub package loader for wxRuby3
6
+
7
+
8
+ require 'wx/core'
9
+
10
+ require 'wxruby_rt'
11
+
12
+ require 'wx/rt/require'
13
+
14
+ ::Wx.include(WxRubyStyleAccessors)
15
+
16
+ ::Wx.include(::Wx::RT) if defined?(::WX_GLOBAL_CONSTANTS) && ::WX_GLOBAL_CONSTANTS
data/lib/wx/version.rb CHANGED
@@ -3,5 +3,5 @@
3
3
  # This software is released under the MIT license.
4
4
 
5
5
  module Wx
6
- WXRUBY_VERSION = '1.7.0'
6
+ WXRUBY_VERSION = '1.8.1'
7
7
  end
@@ -0,0 +1,8 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ # Wx::WEB sub package for wxRuby3
6
+
7
+ require_relative './events/evt_list'
8
+ require_relative './webview'
@@ -0,0 +1,106 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+ #
5
+ # Some parts are
6
+ # Copyright 2004-2007, wxRuby development team
7
+ # released under the MIT-like wxRuby2 license
8
+
9
+ module Wx
10
+
11
+ module WEB
12
+
13
+ WEBVIEW_DEFAULT_URL_STR = 'about:blank'
14
+ WEBVIEW_BACKEND_WEB_KIT = 'wxWebViewWebKit'
15
+ WEBVIEW_BACKEND_CHROMIUM = 'wxWebViewChromium'
16
+ WEBVIEW_BACKEND_EDGE = 'wxWebViewEdge'
17
+ WEBVIEW_BACKEND_IE = 'wxWebViewIE'
18
+ WEBVIEW_BACKEND_DEFAULT = case Wx::PLATFORM
19
+ when 'WXOSX'
20
+ if Wx.has_feature?(:USE_WEBVIEW_WEBKIT)
21
+ WEBVIEW_BACKEND_WEB_KIT
22
+ elsif Wx.has_feature?(:USE_WEBVIEW_CHROMIUM)
23
+ WEBVIEW_BACKEND_CHROMIUM
24
+ else
25
+ ''
26
+ end
27
+ when 'WXMSW'
28
+ if Wx.has_feature?(:USE_WEBVIEW_EDGE) || Wx.has_feature?(:USE_WEBVIEW_EDGE_STATIC)
29
+ WEBVIEW_BACKEND_EDGE
30
+ elsif Wx.has_feature?(:USE_WEBVIEW_CHROMIUM)
31
+ WEBVIEW_BACKEND_CHROMIUM
32
+ elsif Wx.has_feature?(:USE_WEBVIEW_IE)
33
+ WEBVIEW_BACKEND_IE
34
+ else
35
+ ''
36
+ end
37
+ when 'WXGTK'
38
+ if Wx.has_feature?(:USE_WEBVIEW_WEBKIT2) || Wx.has_feature?(:USE_WEBVIEW_WEBKIT)
39
+ WEBVIEW_BACKEND_WEB_KIT
40
+ elsif Wx.has_feature?(:USE_WEBVIEW_CHROMIUM)
41
+ WEBVIEW_BACKEND_CHROMIUM
42
+ else
43
+ ''
44
+ end
45
+ else
46
+ ''
47
+ end
48
+ WEBVIEW_NAME_STR = 'WebView'
49
+
50
+ class WebView < Wx::Control
51
+
52
+ class << self
53
+ # Redefine #new method to support positional and named
54
+ # arguments
55
+ WEBVIEW_NEW_PARAMS = [Wx::Parameter[:id, Wx::StandardID::ID_ANY],
56
+ Wx::Parameter[:url, WEBVIEW_DEFAULT_URL_STR],
57
+ Wx::Parameter[:pos, Wx::DEFAULT_POSITION],
58
+ Wx::Parameter[:size, Wx::DEFAULT_SIZE],
59
+ Wx::Parameter[:backend, WEBVIEW_BACKEND_DEFAULT],
60
+ Wx::Parameter[:style, 0],
61
+ Wx::Parameter[:name, WEBVIEW_NAME_STR]]
62
+
63
+ wx_new = instance_method(:new)
64
+ wx_redefine_method :new do |*args, **kwargs|
65
+
66
+ if args.size == 1 && args.first.is_a?(::String)
67
+ wx_new.bind(self).call(*args) # no need for keyword scanning
68
+ elsif ::Wx::WXWIDGETS_VERSION >= '3.3.0' && args.size == 1 && args.first.is_a?(Wx::WEB::WebViewConfiguration)
69
+ wx_new.bind(self).call(*args) # no need for keyword scanning
70
+ else
71
+ full_args = []
72
+
73
+ full_args << args.shift # get parent argument
74
+
75
+ begin
76
+ args = Wx::args_as_list(WEBVIEW_NEW_PARAMS, *args, **kwargs)
77
+ rescue => err
78
+ err.set_backtrace(caller)
79
+ Kernel.raise err
80
+ end
81
+
82
+ # update the full arguments list with the optional arguments
83
+ full_args.concat(args)
84
+
85
+ # Call original add with full args
86
+ wx_new.bind(self).call(*full_args)
87
+ end
88
+
89
+ end
90
+
91
+ end
92
+
93
+ # take care of GC protection for registered handlers
94
+ wx_register_handler = instance_method :register_handler
95
+ define_method(:register_handler) do |handler|
96
+ (@handlers ||= []) << handler
97
+ wx_register_handler.bind(self).call(handler)
98
+ end
99
+ end
100
+
101
+ if Wx::PLATFORM == 'WXMSW' && Wx.has_feature?(:USE_WEBVIEW_IE)
102
+ Wx::WEB::WebView.msw_set_ie_emulation_level # set emulation level to highest possible by default
103
+ end
104
+
105
+ end
106
+ end
data/lib/wx/web.rb ADDED
@@ -0,0 +1,17 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ # Wx::WEB sub package loader for wxRuby3
6
+
7
+
8
+ require 'wx/core'
9
+
10
+ require 'wxruby_web'
11
+
12
+ require_relative './web/require'
13
+
14
+ ::Wx.include(WxRubyStyleAccessors)
15
+
16
+ ::Wx.include(::Wx::WEB) if defined?(::WX_GLOBAL_CONSTANTS) && ::WX_GLOBAL_CONSTANTS
17
+ ::Wx::WEB.include((defined?(::WX_GLOBAL_CONSTANTS) && ::WX_GLOBAL_CONSTANTS) ? WxGlobalConstants : WxEnumConstants)
@@ -42,6 +42,16 @@ module WxRuby
42
42
  raise "Invalid version #{v} specified. Version should be '<major>.<minor>.<release>'." unless v =~ /^\d+\.\d+\.\d+$/
43
43
  Setup.options['wxversion'] = v
44
44
  end
45
+ opts.on('--without-webview',
46
+ 'disable including wxWidgets WebView library (only valid with --with-wxwin)') { |v|
47
+ Setup.options['with-webview'] = false
48
+ }
49
+ opts.on('--with-webview[=backend]',
50
+ 'include wxWidgets WebView library (only valid with --with-wxwin)',
51
+ 'backend = (comma separated list of) backend(s) to include',
52
+ 'without backend(s) specified only the default backend for the platform is included') { |v|
53
+ Setup.options['with-webview'] = v ? v : true
54
+ }
45
55
  opts.on('--swig=path',
46
56
  "the path to swig executable [swig]") {|v| Setup.options['swig'] = v}
47
57
  opts.on('--doxygen=path',
@@ -81,6 +91,11 @@ module WxRuby
81
91
  cfg_args << "--wxxml=#{Setup.options['wxxml']}" if Setup.options['wxxml']
82
92
  cfg_args << '--with-wxwin' if Setup.options['with-wxwin']
83
93
  cfg_args << '--with-wxhead' if Setup.options['with-wxhead']
94
+ if Setup.options['with-webview'] == false
95
+ cfg_args << '--without-webview'
96
+ elsif Setup.options['with-webview']
97
+ cfg_args << "--with-webview#{Setup.options['with-webview'] == true ? '' : "=#{Setup.options['with-webview']}"}"
98
+ end
84
99
  cfg_args << "--wxversion=#{Setup.options['wxversion']}" if Setup.options['wxversion']
85
100
  cfg_args << "--swig=#{Setup.options['swig']}" if Setup.options['swig']
86
101
  cfg_args << "--doxygen=#{Setup.options['doxygen']}" if Setup.options['doxygen']
@@ -38,7 +38,8 @@ module WxRuby
38
38
  exit(0)
39
39
  end
40
40
  opts.on('--exclude=TEST',
41
- "exclude the specified test from running") {|v| Test.options[:excludes] << v }
41
+ "Exclude the specified test from running") {|v| Test.options[:excludes] << v }
42
+ opts.on('--keep-going', 'Do NOT stop on error.') { Test.options[:keep_going] = true }
42
43
  opts.on('-h', '--help',
43
44
  'Show this message.') do |v|
44
45
  puts opts
@@ -66,9 +67,14 @@ module WxRuby
66
67
  end
67
68
  end
68
69
  tests.each do |test|
70
+ rc = true
69
71
  unless Test.options[:excludes].include?(File.basename(test, '.*'))
70
- exit(1) unless system(RUBY, test)
72
+ $stdout.puts
73
+ $stdout.puts "Running #{File.basename(test, '.*')} ..."
74
+ rc &&= system(RUBY, test)
75
+ exit(1) unless rc || Test.options[:keep_going]
71
76
  end
77
+ exit(1) unless rc
72
78
  end
73
79
  end
74
80
  end
data/lib/wx.rb CHANGED
@@ -7,6 +7,7 @@
7
7
  WX_GLOBAL_CONSTANTS=true unless defined? WX_GLOBAL_CONSTANTS
8
8
 
9
9
  require 'wx/core'
10
+ require 'wx/rt'
10
11
  require 'wx/prt' if Wx.has_feature?(:USE_PRINTING_ARCHITECTURE)
11
12
  require 'wx/rtc' if Wx.has_feature?(:USE_RICHTEXT)
12
13
  require 'wx/stc' if Wx.has_feature?(:USE_STC)
@@ -15,3 +16,4 @@ require 'wx/html' if Wx.has_feature?(:USE_HTML)
15
16
  require 'wx/aui' if Wx.has_feature?(:USE_AUI)
16
17
  require 'wx/pg' if Wx.has_feature?(:USE_PROPGRID)
17
18
  require 'wx/rbn' if Wx.has_feature?(:USE_RIBBON)
19
+ require 'wx/web' if Wx.has_feature?(:USE_WEBVIEW)
data/rakelib/configure.rb CHANGED
@@ -91,6 +91,17 @@ module WXRuby3
91
91
  CONFIG['wxversion'] = v
92
92
  CONFIG['with-wxhead'] = false
93
93
  }
94
+ opts.on('--without-webview',
95
+ 'disable including wxWidgets WebView library (only valid with --with-wxwin)') { |v|
96
+ CONFIG['with-webview'] = false
97
+ }
98
+ opts.on('--with-webview[=backend]',
99
+ 'include wxWidgets WebView library (only valid with --with-wxwin)',
100
+ 'backend = (comma separated list of) backend(s) to include',
101
+ 'without backend(s) specified only the default backend for the platform is included') { |v|
102
+ val = v ? v.split(',') : true
103
+ CONFIG['with-webview'] = val
104
+ }
94
105
  opts.on('--with-debug',
95
106
  "build with debugger support [#{instance.get_config('with-debug')}]") {|v| CONFIG['with-debug'] = true}
96
107
  opts.on('--swig=path',
@@ -161,6 +172,19 @@ module WXRuby3
161
172
  # else we're assumed to build wxWidgets ourselves so cannot test anything yet
162
173
  end
163
174
 
175
+ # embedded wxWidgets?
176
+ if get_config('with-wxwin') && get_config('with-webview').is_a?(Array)
177
+ # check validity of backends
178
+ if (v = get_config('with-webview')).is_a?(Array)
179
+ backends = WX_WEBVIEW_BACKENDS[instance.platform]
180
+ err = v.reject { |b| backends.include?(b) }
181
+ unless err.empty?
182
+ STDERR.puts "ERROR: '#{err.join("' and '")}' #{err.size>1 ? 'are not valid WebView backends' : 'is not a valid WebView backend'} for this platform."
183
+ exit(1)
184
+ end
185
+ end
186
+ end
187
+
164
188
  if get_cfg_string('wxxml').empty? && !get_cfg_string('wxwin').empty?
165
189
  # in case of a custom wxWidgets build and no explicit xml path check if the custom build holds this
166
190
  xml_path = File.join(get_cfg_string('wxwin'), 'docs', 'doxygen', 'out', 'xml')
data/rakelib/gem.rb CHANGED
@@ -74,7 +74,8 @@ module WXRuby3
74
74
  manifest.include 'lib/wx/**/events/*.rb', 'lib/wx/**/ext/*.rb', 'lib/wx/core/font/*.rb'
75
75
  manifest.include "lib/wx/doc/gen/**/*.rb"
76
76
  if WXRuby3.config.get_config('with-wxwin')
77
- manifest.include "ext/*.#{WXRuby3.config.dll_mask}"
77
+ manifest.include "ext/lib/*.#{WXRuby3.config.dll_mask}"
78
+ manifest.include "ext/lib/#{WXRuby3.config.wx_plugin_path}/**/*.#{WXRuby3.config.dll_mask}" # possible plugin libs
78
79
  end
79
80
  manifest
80
81
  end
@@ -299,7 +300,7 @@ module WXRuby3
299
300
  registry.each do |entry|
300
301
  path, mode, size, symlink = entry
301
302
  if symlink
302
- FileUtils.mkdir_p(File.dirname(symlink))
303
+ FileUtils.mkdir_p(File.dirname(path))
303
304
  FileUtils.ln_s(symlink, path)
304
305
  else
305
306
  FileUtils.mkdir_p(File.dirname(path))
data/rakelib/install.rb CHANGED
@@ -24,6 +24,7 @@ module WXRuby3
24
24
  def wxwin_shlibs
25
25
  unless @wxwin_shlibs
26
26
  @wxwin_shlibs = Rake::FileList.new
27
+ @wxwin_plugin_libs = {}
27
28
  # include wxWidgets shared libraries we linked with
28
29
  WXRuby3.config.wx_libs.select { |s| s.start_with?('-L') }.each do |libdir|
29
30
  libdir = libdir[2..libdir.size]
@@ -49,46 +50,72 @@ module WXRuby3
49
50
  end
50
51
  end
51
52
  end
53
+ if WXRuby3.config.linux? && WXRuby3.config.wx_port == :wxgtk && WXRuby3.config.features_set?('USE_WEBVIEW')
54
+ # look for 'webkit_ext*.so' or 'webkit2_ext*.so' in standard plugin subdir 'wx/<wx version>/web-extensions'
55
+ plugin_sub_dir = File.join(WXRuby3.config.wx_plugin_path, 'web-extensions')
56
+ Dir.glob(File.join(libdir, plugin_sub_dir, "webkit?_ext*.#{WXRuby3.config.dll_mask}")).each do |lib|
57
+ @wxwin_plugin_libs[File.join(plugin_sub_dir, File.basename(lib))] = lib
58
+ end
59
+ end
52
60
  end
53
61
  @wxwin_shlibs = ::Set.new(@wxwin_shlibs.to_a)
54
62
  end
55
63
  @wxwin_shlibs
56
64
  end
57
65
 
66
+ def wxwin_plugin_libs
67
+ @wxwin_plugin_libs || {}
68
+ end
69
+
58
70
  def install_wxwin_shlibs
59
71
  if WXRuby3.config.get_config('with-wxwin')
60
72
  $stdout.print "Installing wxRuby3 extensions..." if WXRuby3.config.run_silent?
61
- # prepare required wxWidgets shared libs
62
- wxwin_inshlibs = []
63
- WXRuby3::Install.wxwin_shlibs.each do |shlib|
64
- if File.symlink?(shlib)
65
- src_shlib = shlib
66
- src_shlib = File.join(File.dirname(shlib), File.basename(File.readlink(src_shlib))) while File.symlink?(src_shlib)
67
- FileUtils.ln_s(File.join('.', File.basename(src_shlib)), File.join('ext', File.basename(shlib)))
68
- else
69
- FileUtils.cp(shlib, inshlib = File.join('ext', File.basename(shlib)))
70
- unless WXRuby3.config.update_shlib_loadpaths(inshlib)
73
+ begin
74
+ # make sure directory exists
75
+ FileUtils.mkdir_p(File.join('ext', 'lib'))
76
+ # prepare required wxWidgets shared libs
77
+ wxwin_inshlibs = []
78
+ WXRuby3::Install.wxwin_shlibs.each do |shlib|
79
+ if File.symlink?(shlib)
80
+ src_shlib = shlib
81
+ src_shlib = File.join(File.dirname(shlib), File.basename(File.readlink(src_shlib))) while File.symlink?(src_shlib)
82
+ FileUtils.ln_s(File.join('.', File.basename(src_shlib)), File.join('ext', 'lib', File.basename(shlib)))
83
+ else
84
+ FileUtils.cp(shlib, inshlib = File.join('ext', 'lib', File.basename(shlib)))
85
+ unless WXRuby3.config.update_shlib_loadpaths(inshlib)
86
+ # cleanup and exit
87
+ remove_wxwin_shlibs
88
+ exit(1)
89
+ end
90
+ wxwin_inshlibs << File.expand_path(inshlib)
91
+ end
92
+ end
93
+ WXRuby3::Install.wxwin_plugin_libs.each do |lib, lib_path|
94
+ FileUtils.mkdir_p(File.join('ext', 'lib', File.dirname(lib)))
95
+ FileUtils.cp(lib_path, inshlib = File.join('ext', 'lib', lib))
96
+ end
97
+ if WXRuby3.config.windows? && WXRuby3.config.wx_port == :wxmsw && WXRuby3.config.features_set?('USE_WEBVIEW_EDGE')
98
+ # copy the WebView2 loader dll that should be installed
99
+ FileUtils.cp(File.join('ext', 'wxWidgets', WXRuby3::Config.instance.class::WEBVIEW2_LOADER), File.join('ext', 'lib'))
100
+ end
101
+ # prepare wxRuby shared libs
102
+ Dir["lib/*.#{WXRuby3.config.dll_mask}"].each do |shlib|
103
+ unless WXRuby3.config.update_shlib_loadpaths(shlib) && WXRuby3.config.update_shlib_ruby_libpath(shlib)
71
104
  # cleanup and exit
72
- FileUtils.rm_f(Dir["ext/*.#{WXRuby3.config.dll_mask}"])
105
+ remove_wxwin_shlibs
73
106
  exit(1)
74
107
  end
75
- wxwin_inshlibs << File.expand_path(inshlib)
76
- end
77
- end
78
- # prepare wxRuby shared libs
79
- Dir["lib/*.#{WXRuby3.config.dll_mask}"].each do |shlib|
80
- unless WXRuby3.config.update_shlib_loadpaths(shlib) && WXRuby3.config.update_shlib_ruby_libpath(shlib)
81
- # cleanup and exit
82
- FileUtils.rm_f(Dir["ext/*.#{WXRuby3.config.dll_mask}"])
83
- exit(1)
84
108
  end
85
- end
86
- (wxwin_inshlibs + Dir["lib/*.#{WXRuby3.config.dll_mask}"]).each do |shlib|
87
- unless WXRuby3.config.update_shlib_wxwin_libpaths(shlib, WXRuby3::Install.wxwin_shlibs)
88
- # cleanup and exit
89
- FileUtils.rm_f(Dir["ext/*.#{WXRuby3.config.dll_mask}"])
90
- exit(1)
109
+ (wxwin_inshlibs + Dir["lib/*.#{WXRuby3.config.dll_mask}"]).each do |shlib|
110
+ unless WXRuby3.config.update_shlib_wxwin_libpaths(shlib, WXRuby3::Install.wxwin_shlibs)
111
+ # cleanup and exit
112
+ remove_wxwin_shlibs
113
+ exit(1)
114
+ end
91
115
  end
116
+ rescue
117
+ remove_wxwin_shlibs
118
+ raise
92
119
  end
93
120
  $stdout.puts 'done!' if WXRuby3.config.run_silent?
94
121
  end
@@ -96,7 +123,7 @@ module WXRuby3
96
123
 
97
124
  def remove_wxwin_shlibs
98
125
  if WXRuby3.config.get_config('with-wxwin')
99
- WXRuby3::Install.wxwin_shlibs.each { |shlib| FileUtils.rm_f(File.join('ext', File.basename(shlib))) }
126
+ FileUtils.rm_rf(File.join('ext', 'lib'))
100
127
  end
101
128
  end
102
129
 
@@ -194,13 +194,15 @@ module WXRuby3
194
194
  if WXRuby3.config.sysinfo.os.release >= '15' && (wxw_ver.nil? || wxw_ver <= '3.2.6')
195
195
  # circumvent compilation problems on MacOS 15 or higher with older wxWidgets releases
196
196
  bash("./configure " +
197
- "--disable-optimise --disable-sys-libs --without-liblzma --without-regex " +
198
- "--prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info " +
197
+ "--disable-optimise --disable-sys-libs --without-liblzma --without-regex " \
198
+ "--prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info " \
199
+ "#{wx_with_webview? ? '--enable-webview' : '--disable-webview'} " \
199
200
  "CFLAGS=\"-Wno-unused-but-set-variable\"")
200
201
  else
201
- bash("./configure --with-macosx-version-min=#{WXRuby3.config.sysinfo.os.release}.0 " +
202
- "--disable-optimise --disable-sys-libs --without-liblzma --without-regex " +
203
- "--prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info " +
202
+ bash("./configure --with-macosx-version-min=#{WXRuby3.config.sysinfo.os.release}.0 " \
203
+ "--disable-optimise --disable-sys-libs --without-liblzma --without-regex " \
204
+ "--prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info " \
205
+ "#{wx_with_webview? ? '--enable-webview' : '--disable-webview'} " \
204
206
  "CFLAGS=\"-Wno-unused-but-set-variable\"")
205
207
  end
206
208
  end