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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 29b2e3949b365c4778d3b537d91f6b227361bcc3f978fa2c92bdea5e2c81390c
4
- data.tar.gz: 58e28a379655680b2c7b5ac147436f154102bc551d356b8bd2d4f7a57249fa2f
3
+ metadata.gz: 686537c22871168bb80d09ecffbc7170b1de0560930014b579ee35dd3f71f80d
4
+ data.tar.gz: 8ea1c3c592fd0ecc5e5922f7a3fabe12def1b97a76e30a88b0f576e90fdcca8b
5
5
  SHA512:
6
- metadata.gz: fa954320cb8c4a44872a78fe5c5da098d5b15667b93b3d9b6f24839fb17a04e42b2d4ccd8eed502407a0eed348cba08da19abdeaab99d8121c5e49674b931227
7
- data.tar.gz: 7dd47c4496313f52a56ac7387ac195ad4a54ce5758b9015bb92eb5a6a7d8a98b27d8d9b96f06aa12850d613e74e51147fe82a7bdfe5541466c179f73dd7c964d
6
+ metadata.gz: 60b6061a6746bf5185e54d7c5df8de624beb633ead75d00b256d87c521c392bd7dab7f8259c061e6622bc31d4559e5a9d664914a87215c08634b74b2d9711e03
7
+ data.tar.gz: 3aa90ee4d255248e7678fed9a4bce668eb8cf01b7f36ff4f43dda3fff99f44d6eb37b607acdd1de26c63101fe3757e3d5b88d88020dd05dcbc87a283b40b9642
data/INSTALL.md CHANGED
@@ -82,6 +82,11 @@ The following tables lists the packages provided by the current wxRuby3 release
82
82
  | OSX | MacOS 15 | x86_64 <b>and</b> ARM64 | Latest stable Ruby |
83
83
  | OSX | MacOS 26 | x86_64 <b>and</b> ARM64 | Latest stable Ruby |
84
84
 
85
+ ### Additional packages
86
+
87
+ Some additional packages built from local resources may be added to the standard release artifacts (like for example for
88
+ LinuxMint x86_64) but this will also depend on available time and resources.
89
+
85
90
  ### User created packages
86
91
 
87
92
  Users can create their own wxRuby3 binary packages by building from source ([see here](#building-from-source)) and after
@@ -102,7 +107,7 @@ The software requirements for setting up a wxRuby3 runtime environment are:
102
107
 
103
108
  | Sofware | Notes |
104
109
  |-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
105
- | Ruby >= 2.7 | A supported version of the Ruby interpreter needs to be installed. This is an absolute requirement for any installation as one cannot install gems without Ruby and building from source requires Ruby to drive the build process. |
110
+ | Ruby >= 3.0 | A supported version of the Ruby interpreter needs to be installed. This is an absolute requirement for any installation as one cannot install gems without Ruby and building from source requires Ruby to drive the build process. |
106
111
  | C++ compiler<br>(incl. dev tools like `make`) | Required for a source based installation to build wxWidgets (optionally) and the wxRuby extension libraries.<br/>On linux a recent version of the GNU C++ compiler (with c++-14 support) is required.<br>On Windows the RubyInstaller MSYS2-Devkit would be required.<br>On MacOS XCode with commandline tools would be required. |
107
112
  | Git version control toolkit | Required for a source based installation in to (possibly) clone a copy of the wxWidgets Github repository or to clone the Github repository of wxRuby3 itself for a fully source based installation. |
108
113
  | Doxygen (>= 1.9.1) | Required for building the wxRuby3 extension libraries for a source based installation. [**1**] |
@@ -116,7 +121,7 @@ But of course any of these requirements can also be fulfilled explicitly with se
116
121
  wxRuby3 installation procedure. See the platform specific sections of [Installing software requirements](INSTALL.md#installing-software-requirements) for details on
117
122
  how to go about that.
118
123
 
119
- [**1**] The wxRuby3 build process needs doxygen to generated XML files containing wxWidgets interface specs which are used to
124
+ [**1**] The wxRuby3 build process needs doxygen to generate XML files containing wxWidgets interface specs which are used to
120
125
  generate interface definitions for SWIG
121
126
 
122
127
  [**2**] The wxRuby3 build process uses SWIG to generate C++ source code for the wrapper interfaces from
@@ -368,6 +373,26 @@ Note that in this case `--with-wxwin` is implied.
368
373
  > workflows of the [wxRuby3 Github Actions](https://github.com/mcorino/wxRuby3/actions) to get a feel of the current
369
374
  > integration state.
370
375
 
376
+ #### Controlling included modules for embedded wxWidgets
377
+
378
+ When building wxRuby3 with embedded wxWidgets (implicit or explicit) there are some setup arguments to control the
379
+ modules included in the wxRuby3 installation.
380
+ If none of these options are specified __all__ modules will be included by default.
381
+
382
+ Note that these option only have effect if building with embedded wxWidgets. When building for wxWidgets system or user
383
+ installation, module support will be determined by the build options supplied when building that wxWidgets installation.
384
+
385
+ ##### WebView module
386
+
387
+ To explicitly include the wxWidgets WebView library for the Wx::WEB::WebView module (the default) add the
388
+ `--with-webview` option. To explicitly specify which WebView backends should be supported it is possible to use the
389
+ option like `--with-webview=<backend>[,<backend>`.
390
+ On Windows __<backend\>__ can be `edge` and/or `ie`. By default, if no backend is specified, only the `edge` backend
391
+ will be supported on Windows.
392
+ On Linux and MacOS currently only the `webkit` backend is supported.
393
+
394
+ To explicitly exclude WebView support add the `--without-webview` option.
395
+
371
396
  #### Setup with user installed wxWidgets
372
397
 
373
398
  In case of a (custom) user installation of wxWidgets the `--wxwin` (and optionally `--wxxml`) option(s) can be used to
data/README.md CHANGED
@@ -65,7 +65,7 @@ Wx::App.run { TheFrame.new('Hello world!').show }
65
65
  ## wxRuby3 licence
66
66
 
67
67
  wxRuby3 is free and open-source. It is distributed under the liberal
68
- MIT licence which is compatible with both free and commercial development.
68
+ MIT license which is compatible with both free and commercial development.
69
69
  See [LICENSE](LICENSE) for more details.
70
70
 
71
71
  ### wxRuby3 and wxWidgets
@@ -76,7 +76,7 @@ those requirements do not impose any serious restrictions.
76
76
 
77
77
  ### wxWidgets License Summary (from wxWidgets)
78
78
 
79
- In summary, the licence is LGPL plus a clause allowing unrestricted
79
+ In summary, the license is LGPL plus a clause allowing unrestricted
80
80
  distribution of application binaries. To answer a FAQ, you don't have to
81
81
  distribute any source if you wish to write commercial applications using
82
82
  wxWidgets.
@@ -97,23 +97,23 @@ of these products.
97
97
 
98
98
  ### What platforms and operating systems are supported in wxRuby3?
99
99
 
100
- Currently the following are fully supported:
100
+ Currently, the following are fully supported:
101
101
 
102
102
  | Platform | Ruby version(s) | wxWidgets version(s) |
103
103
  |--------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|----------------------|
104
- | Windows >= 10 | Ruby >= 2.7<br>(RubyInstaller MSYS2-DevKit) | wxWidgets >= 3.2 |
105
- | Linux (tested; all major AMD64 and ARM64 distributions: Ubuntu, Debian, Fedora, OpenSuSE, LinuxMint, Manjaro and ArchLinux)<br>(most likely also i686) | Ruby >= 2.7 | wxWidgets >= 3.2 |
106
- | MacOS >= 14 (MacOS 13 most likely also works) using Cocoa (tested on AMD64 and ARM64 M1/M2 Chip) | Ruby >= 2.7 (MacPorts, Homebrew, ruby-install, RVM, Rbenv) | wxWidgets >= 3.2 |
104
+ | Windows >= 10 | Ruby >= 3.0<br>(RubyInstaller MSYS2-DevKit) | wxWidgets >= 3.2 |
105
+ | Linux (tested; all major AMD64 and ARM64 distributions: Ubuntu, Debian, Fedora, OpenSuSE, LinuxMint, Manjaro and ArchLinux)<br>(most likely also i686) | Ruby >= 3.0 | wxWidgets >= 3.2 |
106
+ | MacOS >= 14 (MacOS 13 most likely also works) using Cocoa (tested on AMD64 and ARM64 M1/M2 Chip) | Ruby >= 3.0 (MacPorts, Homebrew, ruby-install, RVM, Rbenv) | wxWidgets >= 3.2 |
107
107
 
108
108
  Support for other platforms is not being actively developed at present,
109
109
  but patches are welcome. It is likely to be much simpler to get wxRuby
110
- working on similar modern systems (eg FreeBSD or Solaris with GTK) than
111
- on legacy systems (eg Windows 98, Mac OS 9).
110
+ working on similar modern systems (e.g. FreeBSD or Solaris with GTK) than
111
+ on legacy systems (e.g. Windows 98, macOS 9).
112
112
 
113
113
  ### How can I install wxRuby3?
114
114
 
115
115
  wxRuby3 is distributed as a Ruby gem on [RubyGems](https://rubygems.org). This gem can also be downloaded from the release
116
- assets on [Github](https://github.com/mcorino/wxRuby3/releases).
116
+ assets on [GitHub](https://github.com/mcorino/wxRuby3/releases).
117
117
 
118
118
  The wxRuby3 gem provides a **worry-free** installation procedure for all supported platforms.
119
119
 
@@ -124,7 +124,7 @@ supported version of the Ruby interpreter. So the following command is all it ta
124
124
  gem install wxruby3
125
125
  ```
126
126
 
127
- The wxRuby3 installation procedure will check the availability of a, prebuilt, binary package matching the platform
127
+ The wxRuby3 installation procedure will check the availability of a prebuilt, binary package matching the platform
128
128
  being installed on and if found will download and install that package resulting in a ready-to-run wxRuby3 installation.<br>
129
129
  If no matching package is found the installation reverts to a source installation which will require an additional setup
130
130
  step to finalize the wxRuby3 installation by executing the following command:
@@ -135,7 +135,7 @@ wxruby setup
135
135
 
136
136
  This last command is a fully automated setup procedure provided by the wxRuby3 **CLI** installed with the gem. This
137
137
  procedure (by default) will analyze your system and install (after asking your consent) any missing software
138
- requirements and build the wxRuby3 extension libraries (including a embedded copy of wxWidgets if necessary). It may
138
+ requirements and build the wxRuby3 extension libraries (including an embedded copy of wxWidgets if necessary). It may
139
139
  take quite a while depending on your system (around 10-15 minutes on a modern PC but could be significantly longer
140
140
  on 'older' PC's) but you can mostly sit back and relax.
141
141
 
@@ -146,11 +146,11 @@ on 'older' PC's) but you can mostly sit back and relax.
146
146
  > on like the nokogiri gem).
147
147
 
148
148
  The wxRuby3 CLI also provides a 'check' command with which the runtime status of the wxRuby3 installation can be checked
149
- at any time. By default running `wxruby check` will display a message reporting the runtime and suggestions on finalizing
149
+ at any time. By default, running `wxruby check` will display a message reporting the runtime and suggestions on finalizing
150
150
  the installation if not finalized yet. No message is displayed if wxRuby3 is ready to run. Run `wxruby check -h` for
151
151
  details concerning this command.
152
152
 
153
- A selection of (prebuilt) binary packages is provided as release assets on [Github](https://github.com/mcorino/wxRuby3/releases).
153
+ A selection of (prebuilt) binary packages is provided as release assets on [GitHub](https://github.com/mcorino/wxRuby3/releases).
154
154
  See the [INSTALL](INSTALL.md#binary-packages) document for more details.
155
155
 
156
156
  This install procedure can of course be tweaked and customized with commandline arguments.
@@ -158,7 +158,7 @@ See the [INSTALL](INSTALL.md) document for more details.
158
158
 
159
159
  ### Where can I ask a question, or report a bug?
160
160
 
161
- Use GitHUb Issues.
161
+ Use GitHub Issues.
162
162
 
163
163
  When asking a question, if something is not working as you expect,
164
164
  please provide a *minimal*, *runnable* sample of code that demonstrates
@@ -215,7 +215,7 @@ stopped in early 2005, in favour of what became wxRuby 2.0. This project
215
215
  in turn stopped being supported in 2013.
216
216
  Several years of development have passed for wxWidgets and Ruby respectively,
217
217
  improving code quality, adding new classes and new language features.
218
- In 2022 I finally found the time and the inspiration to pick up this project
218
+ In 2022, I finally found the time and the inspiration to pick up this project
219
219
  with the idea of reviving it to build some applications I had in mind.
220
220
  wxRuby 3 intends to provide Ruby interfaces for all relevant (!) wxWidget
221
221
  classes of the latest version 3.2 and beyond.
@@ -8,6 +8,14 @@ WXRUBY_TRACE_GUARD(WxRubyTraceAppRun, "APP_RUN")
8
8
 
9
9
  #include <memory>
10
10
 
11
+ #include <ruby/ractor.h>
12
+
13
+ #include <wx/scopedptr.h>
14
+ #include <wx/evtloop.h>
15
+
16
+ // this defines wxEventLoopPtr
17
+ wxDEFINE_TIED_SCOPED_PTR_TYPE(wxEventLoopBase)
18
+
11
19
  /*
12
20
  * WxRuby3 App class
13
21
  */
@@ -17,14 +25,133 @@ class wxRubyApp : public wxApp
17
25
  private:
18
26
  bool is_running_ = false;
19
27
  VALUE self_ = Qnil;
28
+
29
+ void _store_ruby_exception(VALUE ex)
30
+ {
31
+ rb_iv_set(this->self_, "@exception", ex);
32
+ }
33
+
34
+ class EventLoop : public wxGUIEventLoop
35
+ {
36
+ public:
37
+ int GetExitCode() { return this->exit_code_; }
38
+
39
+ protected:
40
+ virtual int DoRun() override
41
+ {
42
+ static WxRuby_ID count_id("count");
43
+ static WxRuby_ID list_id("list");
44
+ static WxRuby_ID pass_id("pass");
45
+
46
+ // run our own event loop
47
+ bool needs_idle_evt = true;
48
+ for (;;)
49
+ {
50
+ while ( !m_shouldExit
51
+ && !Pending()
52
+ && !(wxTheApp && wxTheApp->HasPendingEvents()) )
53
+ {
54
+ // check Ruby Ractors and/or Threads
55
+ bool needs_pass = false;
56
+ VALUE result = rb_funcall(rb_cRactor, count_id(), 0);
57
+ needs_pass = !RB_NIL_P(result) && NUM2INT(result) > 1;
58
+ if (!needs_pass)
59
+ {
60
+ result = rb_funcall(rb_cThread, list_id(), 0);
61
+ needs_pass = !RB_NIL_P(result) && TYPE(result) == T_ARRAY && RARRAY_LEN(result) > 1;
62
+ }
63
+ if (needs_pass)
64
+ {
65
+ // call Thread.pass
66
+ bool ex_caught = false;
67
+ result = wxRuby_Funcall(ex_caught, rb_cThread, pass_id(), 0, 0);
68
+ if (ex_caught)
69
+ {
70
+ #ifdef __WXRB_DEBUG__
71
+ wxRuby_PrintException(result);
72
+ #endif
73
+ wxRubyApp::GetInstance()->_store_ruby_exception(result);
74
+ this->exit_code_ = 1;
75
+ m_shouldExit = true;
76
+ }
77
+ }
78
+
79
+ if (!m_shouldExit && needs_idle_evt)
80
+ {
81
+ needs_idle_evt = ProcessIdle();
82
+ if (needs_idle_evt)
83
+ break;
84
+ }
85
+ }
86
+
87
+ // if Exit() was called, don't dispatch any more events here
88
+ if (m_shouldExit)
89
+ break;
90
+
91
+ // process pending wx events first as they correspond to low-level events
92
+ // which happened before, i.e. typically pending events were queued by a
93
+ // previous call to Dispatch() and if we didn't process them now the next
94
+ // call to it might enqueue them again (as happens with e.g. socket events
95
+ // which would be generated as long as there is input available on socket
96
+ // and this input is only removed from it when pending event handlers are
97
+ // executed)
98
+ if ( wxTheApp && wxTheApp->HasPendingEvents() )
99
+ {
100
+ wxTheApp->ProcessPendingEvents();
101
+
102
+ // One of the pending event handlers could have decided to exit the
103
+ // loop so check for the flag before trying to dispatch more events
104
+ // (which could block indefinitely if no more are coming).
105
+ if ( m_shouldExit )
106
+ break;
107
+ }
108
+
109
+ // nothing doing, so just wait max 1 msec for an event
110
+ if (this->DispatchTimeout(1) == 0 && m_shouldExit)
111
+ break; // stop event loop
112
+
113
+ needs_idle_evt = true;
114
+ }
115
+
116
+ return this->exit_code_;
117
+ }
118
+
119
+ #if (wxMAJOR_VERSION > 3) || (wxMINOR_VERSION > 2)
120
+ virtual void DoStop(int rc) override
121
+ {
122
+ this->exit_code_ = rc;
123
+ #if !defined(__WXGTK__)
124
+ wxGUIEventLoop::DoStop(rc);
125
+ #endif
126
+ }
127
+ #else
128
+ virtual void ScheduleExit(int rc) override
129
+ {
130
+ this->exit_code_ = rc;
131
+ #if defined(__WXGTK__)
132
+ m_shouldExit = true;
133
+ #else
134
+ wxGUIEventLoop::ScheduleExit(rc);
135
+ #endif
136
+ }
137
+ #endif
138
+
139
+ private:
140
+ int exit_code_ {};
141
+ };
142
+
20
143
  public:
21
144
  static wxRubyApp* GetInstance () { return dynamic_cast<wxRubyApp*> (wxApp::GetInstance()); }
22
145
 
23
146
  virtual ~wxRubyApp()
24
147
  {
25
- #ifdef __WXTRACE__
26
- std::wcout << "~wxRubyApp" << std::endl;
27
- #endif
148
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
149
+ WXRUBY_TRACE("> ~wxRubyApp this=" << this)
150
+ WXRUBY_TRACE_END
151
+
152
+ // app is also event handler, so cleanup
153
+ wxRuby_ReleaseEvtHandlerProcs(this);
154
+
28
155
  // unlink
29
156
  if (this->self_ != Qnil)
30
157
  {
@@ -54,39 +181,9 @@ public:
54
181
 
55
182
  bool IsRunning() const { return this->is_running_; }
56
183
 
57
- // When ruby's garbage collection runs, if the app is still active, it
58
- // cycles through all currently known SWIG objects and calls this
59
- // function on each to preserve still active Wx::Windows, and also
60
- // pending Wx::Events which have been queued from the Ruby side (the
61
- // only sort of events that will be in the tracking hash.
62
- static void markIterate(void* ptr, VALUE rb_obj)
63
- {
64
- // Check if it's a valid object (sometimes SWIG doesn't return what we're
65
- // expecting), a descendant of Wx::Window (but not a Dialog), and if it has not yet been
66
- // deleted by WxWidgets; if so, mark it.
67
- if ( TYPE(rb_obj) == T_DATA )
68
- {
69
- if ( rb_obj_is_kind_of(rb_obj, wxRuby_GetWindowClass()) )
70
- {
71
- rb_gc_mark(rb_obj);
72
- }
73
- else if (rb_obj_is_kind_of(rb_obj, wxRuby_GetDefaultEventClass()) )
74
- rb_gc_mark(rb_obj);
75
- }
76
- // else if (TYPE(rb_obj) == T_ARRAY )
77
- // {
78
- // VALUE proc = rb_ary_entry(rb_obj, 0);
79
- // if (rb_obj_is_kind_of(proc, rb_cProc) || rb_obj_is_kind_of(proc, rb_cMethod))
80
- // {
81
- // // keep the async call alive
82
- // rb_gc_mark(rb_obj);
83
- // }
84
- // }
85
- }
86
-
87
184
  // Implements GC protection across wxRuby. Always called because
88
185
  // Wx::THE_APP is a constant so always checked in GC mark phase.
89
- static void mark_wxRubyApp(void *ptr)
186
+ static void GC_mark_wxRubyApp(void *ptr)
90
187
  {
91
188
  WXRUBY_TRACE_IF(WxRubyTraceMarkApp, 1)
92
189
  WXRUBY_TRACE(">=== Starting App GC mark phase")
@@ -116,16 +213,8 @@ public:
116
213
  // classes/EvtHandler.i
117
214
  wxRuby_MarkProtectedEvtHandlerProcs();
118
215
 
119
- // run registered markers
120
- for (wxVector<WXRBMarkFunction>::iterator it = WXRuby_Mark_List.begin();
121
- it != WXRuby_Mark_List.end() ;++it)
122
- {
123
- (*it) ();
124
- }
125
-
126
- // To do the main marking, primarily of Windows, iterate over SWIG's
127
- // list of tracked objects
128
- wxRuby_IterateTracking(&wxRubyApp::markIterate);
216
+ // Mark all tracked objects (as applicable)
217
+ wxRuby_MarkTracked();
129
218
 
130
219
  WXRUBY_TRACE_IF(WxRubyTraceMarkApp, 1)
131
220
  WXRUBY_TRACE("<=== App GC mark phase completed")
@@ -207,6 +296,16 @@ public:
207
296
  return rc;
208
297
  }
209
298
 
299
+ virtual int MainLoop() override
300
+ {
301
+ wxEventLoopBaseTiedPtr main_loop(&m_mainLoop, new wxRubyApp::EventLoop);
302
+
303
+ if (wxTheApp)
304
+ wxTheApp->OnLaunched();
305
+
306
+ return m_mainLoop ? m_mainLoop->Run() : -1;
307
+ }
308
+
210
309
  // This method initializes the stock objects (Pens, Brushes, Fonts)
211
310
  // before yielding to ruby by calling the App's on_init method.
212
311
  // Note that as of wxWidget 2.8, the stock fonts in particular cannot
@@ -234,7 +333,7 @@ public:
234
333
  #ifdef __WXRB_DEBUG__
235
334
  wxRuby_PrintException(result);
236
335
  #endif
237
- rb_iv_set(this->self_, "@exception", result);
336
+ _store_ruby_exception(result);
238
337
  result = Qfalse; // exit app
239
338
  }
240
339
 
@@ -274,7 +373,7 @@ public:
274
373
  #ifdef __WXRB_DEBUG__
275
374
  wxRuby_PrintException(rc);
276
375
  #endif
277
- rb_iv_set(this->self_, "@exception", rc);
376
+ _store_ruby_exception(rc);
278
377
  }
279
378
  }
280
379
 
@@ -12,6 +12,9 @@
12
12
  #include <wx/combo.h>
13
13
  #include <map>
14
14
 
15
+
16
+ static void wxRuby_markComboPopups(const TGCTrackingValueMap& values);
17
+
15
18
  class WxRubyComboPopup : public wxComboPopup
16
19
  {
17
20
  private:
@@ -31,7 +34,7 @@ private:
31
34
  static WxRuby_ID on_popup_ID;
32
35
  static WxRuby_ID paint_combo_control_ID;
33
36
 
34
- static std::map<WxRubyComboPopup*, VALUE> combo_popup_map;
37
+ static const std::string WXRUBY_COMBO_POPUP;
35
38
 
36
39
  VALUE rb_combo_popup_;
37
40
 
@@ -44,11 +47,11 @@ private:
44
47
  };
45
48
 
46
49
  public:
47
- static void GC_mark_combo_popups()
50
+ static void GC_mark_combo_popups(const TGCTrackingValueMap& values)
48
51
  {
49
- for (auto pair : combo_popup_map)
52
+ for (const auto& ti : values)
50
53
  {
51
- rb_gc_mark(pair.second);
54
+ rb_gc_mark(ti.second);
52
55
  }
53
56
  }
54
57
 
@@ -56,14 +59,23 @@ public:
56
59
  : wxComboPopup()
57
60
  , rb_combo_popup_(rb_cp)
58
61
  {
59
- combo_popup_map[this] = rb_cp; // register
62
+ static bool is_marker_registered = false;
63
+
64
+ if (!is_marker_registered)
65
+ {
66
+ wxRuby_RegisterTrackingCategory(WXRUBY_COMBO_POPUP, wxRuby_markComboPopups, true);
67
+ is_marker_registered = true;
68
+ }
69
+ // register for tracking
70
+ wxRuby_RegisterCategoryValue(WXRUBY_COMBO_POPUP, this, rb_cp);
60
71
  }
61
72
 
62
73
  virtual ~WxRubyComboPopup()
63
74
  {
64
75
  if (!NIL_P(rb_combo_popup_))
65
76
  {
66
- combo_popup_map.erase(this); //deregister
77
+ // unregister from tracking
78
+ wxRuby_UnregisterCategoryValue(WXRUBY_COMBO_POPUP, this);
67
79
  // unlink
68
80
  rb_iv_set(rb_combo_popup_, "@_wx_combo_popup_proxy", Qnil);
69
81
  rb_combo_popup_ = Qnil;
@@ -197,6 +209,13 @@ public:
197
209
 
198
210
  };
199
211
 
212
+ const std::string WxRubyComboPopup::WXRUBY_COMBO_POPUP = {"WXRUBY_COMBO_POPUP"};
213
+
214
+ static void wxRuby_markComboPopups(const TGCTrackingValueMap& values)
215
+ {
216
+ WxRubyComboPopup::GC_mark_combo_popups(values);
217
+ }
218
+
200
219
  WxRuby_ID WxRubyComboPopup::init_ID("init");
201
220
  WxRuby_ID WxRubyComboPopup::lazy_create_ID("lazy_create");
202
221
  WxRuby_ID WxRubyComboPopup::create_ID("create");
@@ -213,8 +232,6 @@ WxRuby_ID WxRubyComboPopup::on_dismiss_ID("on_dismiss");
213
232
  WxRuby_ID WxRubyComboPopup::on_popup_ID("on_popup");
214
233
  WxRuby_ID WxRubyComboPopup::paint_combo_control_ID("paint_combo_control");
215
234
 
216
- std::map<WxRubyComboPopup*, VALUE> WxRubyComboPopup::combo_popup_map;
217
-
218
235
  // Wrapper methods for module Wx::ComboPopup
219
236
 
220
237
  static VALUE wx_combo_popup_get_combo_ctrl(int argc, VALUE *argv, VALUE self)