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
@@ -13,7 +13,9 @@ class MediaCtrlTests < WxRuby::Test::GUITests
13
13
 
14
14
  def setup
15
15
  super
16
+ @media_loaded = false
16
17
  @media = Wx::MediaCtrl.new(frame_win)
18
+ frame_win.evt_media_loaded(@media) {|_| @media_loaded = true }
17
19
  end
18
20
 
19
21
  def teardown
@@ -22,15 +24,21 @@ class MediaCtrlTests < WxRuby::Test::GUITests
22
24
  end
23
25
 
24
26
  attr_reader :media
27
+ attr_accessor :media_loaded
25
28
 
26
29
  def test_uri
27
- # just checking if Ruby URI is properly mapped
28
- # it doesn't seem the mediactrl returns a very consistent result whether the resource is not a media file
29
- # or if it is a non-existing file so only check whether it is a boolean return.
30
+ self.media_loaded = false
30
31
  uri = URI("file://#{File.join(__dir__, 'media/beep_lo.wav')}")
31
- assert_boolean(media.load(uri))
32
- uri = URI("file://#{File.join(__dir__, 'art/test_art/image/wxruby.png')}")
33
- assert_boolean(media.load(uri))
32
+ assert_true(media.load(uri))
33
+ yield_and_wait_for_test(5000) { self.media_loaded }
34
+ assert_true(self.media_loaded) unless is_msw?
35
+ unless is_macos? || is_msw?
36
+ self.media_loaded = false
37
+ uri = URI("file://#{File.join(__dir__, 'art/test_art/image/wxruby.png')}")
38
+ assert_true(media.load(uri))
39
+ yield_and_wait_for_test(5000) { self.media_loaded }
40
+ assert_true(self.media_loaded)
41
+ end
34
42
  end
35
43
 
36
44
  end
data/tests/test_menu.rb CHANGED
@@ -4,92 +4,98 @@
4
4
 
5
5
  require_relative './lib/wxframe_runner'
6
6
 
7
- # class MenuTests < WxRuby::Test::GUITests
8
- #
9
- # def setup
10
- # super
11
- # @menu = Wx::Menu.new
12
- # @menu.append(Wx::ID_HIGHEST+1, 'Item 1', 'Test menuitem 1')
13
- # @menu.append(Wx::ID_HIGHEST+2, 'Item 2', 'Test menuitem 2')
14
- # @menu.append_separator
15
- # @menu.append_check_item(Wx::ID_HIGHEST+3, 'Check 3', 'Test menuitem 3')
16
- # @menu.append_separator
17
- # @menu.append_radio_item(Wx::ID_HIGHEST+4, 'Radio 4', 'Test menuitem 4')
18
- # @menu.append_radio_item(Wx::ID_HIGHEST+5, 'Radio 5', 'Test menuitem 5')
19
- # @menu.append_radio_item(Wx::ID_HIGHEST+6, 'Radio 6', 'Test menuitem 6')
20
- # frame_win.menu_bar = Wx::MenuBar.new
21
- # frame_win.menu_bar.append(@menu, "&Test")
22
- # GC.start
23
- # end
24
- #
25
- # def teardown
26
- # frame_win.menu_bar = nil
27
- # super
28
- # GC.start
29
- # end
30
- #
31
- # attr_reader :menu
32
- #
33
- # def test_basic
34
- # assert_equal(8, menu.get_menu_item_count)
35
- # check, pos = menu.find_child_item(Wx::ID_HIGHEST+3)
36
- # assert_not_nil(check)
37
- # assert_equal(3, pos)
38
- # assert_equal('Check 3', check.item_label)
39
- # assert_false(check.checked?)
40
- # check.check
41
- # assert_true(check.checked?)
42
- # radio, pos = menu.find_child_item(Wx::ID_HIGHEST+5)
43
- # assert_not_nil(radio)
44
- # assert_equal(6, pos)
45
- # assert_equal('Radio 5', radio.item_label)
46
- # assert_false(radio.checked?)
47
- # radio.check
48
- # assert_true(radio.checked?)
49
- # radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
50
- # assert_false(radio.checked?)
51
- # radio, pos = menu.find_child_item(Wx::ID_HIGHEST+6)
52
- # assert_false(radio.checked?)
53
- # radio.check
54
- # assert_true(radio.checked?)
55
- # radio, pos = menu.find_child_item(Wx::ID_HIGHEST+5)
56
- # assert_false(radio.checked?)
57
- # end
58
- #
59
- # def test_enumerate
60
- # radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
61
- # assert_true(radio.checked?) # first by default checked
62
- # menu.each_item do |mi|
63
- # mi.check if mi.id == (Wx::ID_HIGHEST+5)
64
- # end
65
- # radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
66
- # assert_false(radio.checked?)
67
- # radio = menu.each_item.detect { |mi| mi.id == (Wx::ID_HIGHEST+5) }
68
- # assert_true(radio.checked?)
69
- # end
70
- #
71
- # def test_accelerators
72
- # if Wx.has_feature?(:USE_ACCEL)
73
- # 10.times do
74
- # accel_keys = { "Z" => Wx::ID_UNDO,
75
- # "Y" => Wx::ID_REDO,
76
- # "C" => Wx::ID_COPY,
77
- # "X" => Wx::ID_CUT,
78
- # "V" => Wx::ID_PASTE }
79
- # accel_table = accel_keys.keys.map do | key |
80
- # [ Wx::MOD_CMD, key, accel_keys[key] ]
81
- # end
82
- #
83
- # accel_table = Wx::AcceleratorTable[ *accel_table ]
84
- # frame_win.accelerator_table = accel_table
85
- # assert_true(accel_table.ok?)
86
- # assert_true(frame_win.accelerator_table.ok?)
87
- # GC.start
88
- # end
89
- # end
90
- # end
91
- #
92
- # end
7
+ class MenuTests < WxRuby::Test::GUITests
8
+
9
+ def setup
10
+ super
11
+ @menu = Wx::Menu.new
12
+ @menu.append(Wx::ID_HIGHEST+1, 'Item 1', 'Test menuitem 1')
13
+ @menu.append(Wx::ID_HIGHEST+2, 'Item 2', 'Test menuitem 2')
14
+ @menu.append_separator
15
+ @menu.append_check_item(Wx::ID_HIGHEST+3, 'Check 3', 'Test menuitem 3')
16
+ @menu.append_separator
17
+ @menu.append_radio_item(Wx::ID_HIGHEST+4, 'Radio 4', 'Test menuitem 4')
18
+ @menu.append_radio_item(Wx::ID_HIGHEST+5, 'Radio 5', 'Test menuitem 5')
19
+ @menu.append_radio_item(Wx::ID_HIGHEST+6, 'Radio 6', 'Test menuitem 6')
20
+ submenu = Wx::Menu.new
21
+ submenu.append_radio_item(Wx::ID_HIGHEST+8, 'Circle', 'Circle')
22
+ submenu.append_radio_item(Wx::ID_HIGHEST+9, 'Rectangle', 'Rectangle')
23
+ submenu.append_radio_item(Wx::ID_HIGHEST+10, 'Square', 'Square')
24
+ mi = Wx::MenuItem.new(@menu, Wx::ID_HIGHEST+7, 'Submenu', 'Open submenu', Wx::ITEM_NORMAL, submenu)
25
+ @menu.append(mi)
26
+ frame_win.menu_bar = Wx::MenuBar.new
27
+ frame_win.menu_bar.append(@menu, "&Test")
28
+ GC.start
29
+ end
30
+
31
+ def teardown
32
+ frame_win.menu_bar = nil
33
+ super
34
+ GC.start
35
+ end
36
+
37
+ attr_reader :menu
38
+
39
+ def test_basic
40
+ assert_equal(9, menu.get_menu_item_count)
41
+ check, pos = menu.find_child_item(Wx::ID_HIGHEST+3)
42
+ assert_not_nil(check)
43
+ assert_equal(3, pos)
44
+ assert_equal('Check 3', check.item_label)
45
+ assert_false(check.checked?)
46
+ check.check
47
+ assert_true(check.checked?)
48
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+5)
49
+ assert_not_nil(radio)
50
+ assert_equal(6, pos)
51
+ assert_equal('Radio 5', radio.item_label)
52
+ assert_false(radio.checked?)
53
+ radio.check
54
+ assert_true(radio.checked?)
55
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
56
+ assert_false(radio.checked?)
57
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+6)
58
+ assert_false(radio.checked?)
59
+ radio.check
60
+ assert_true(radio.checked?)
61
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+5)
62
+ assert_false(radio.checked?)
63
+ end
64
+
65
+ def test_enumerate
66
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
67
+ assert_true(radio.checked?) # first by default checked
68
+ menu.each_item do |mi|
69
+ mi.check if mi.id == (Wx::ID_HIGHEST+5)
70
+ end
71
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
72
+ assert_false(radio.checked?)
73
+ radio = menu.each_item.detect { |mi| mi.id == (Wx::ID_HIGHEST+5) }
74
+ assert_true(radio.checked?)
75
+ end
76
+
77
+ def test_accelerators
78
+ if Wx.has_feature?(:USE_ACCEL)
79
+ 10.times do
80
+ accel_keys = { "Z" => Wx::ID_UNDO,
81
+ "Y" => Wx::ID_REDO,
82
+ "C" => Wx::ID_COPY,
83
+ "X" => Wx::ID_CUT,
84
+ "V" => Wx::ID_PASTE }
85
+ accel_table = accel_keys.keys.map do | key |
86
+ [ Wx::MOD_CMD, key, accel_keys[key] ]
87
+ end
88
+
89
+ accel_table = Wx::AcceleratorTable[ *accel_table ]
90
+ frame_win.accelerator_table = accel_table
91
+ assert_true(accel_table.ok?)
92
+ assert_true(frame_win.accelerator_table.ok?)
93
+ GC.start
94
+ end
95
+ end
96
+ end
97
+
98
+ end
93
99
 
94
100
  class UnattachedMenuTests < WxRuby::Test::GUITests
95
101
 
@@ -127,9 +133,11 @@ class UnattachedMenuTests < WxRuby::Test::GUITests
127
133
  yield_for_a_while(200)
128
134
  GC.start
129
135
  @menu_bar.append(@menu, "&Test")
136
+ @menu = nil
130
137
  yield_for_a_while(200)
131
138
  GC.start
132
139
  frame_win.menu_bar = @menu_bar
140
+ @menu_bar = nil
133
141
  yield_for_a_while(200)
134
142
  GC.start
135
143
  frame_win.menu_bar = nil
@@ -53,7 +53,7 @@ class TopLevelPersistenceTests < WxRuby::Test::GUITests
53
53
  end
54
54
 
55
55
  # default registry based config does not seem to do well in CI build env
56
- unless is_ci_build? && Wx::PLATFORM == 'WXMSW'
56
+ unless is_ci_build? && is_msw?
57
57
 
58
58
  def test_frame_props_default_config
59
59
  # force creation of default C++ config instance
@@ -27,9 +27,9 @@ class MultilineProofCheckTests < WxRuby::Test::GUITests
27
27
  Wx.get_app.yield
28
28
  proof_opts = text.get_proof_check_options
29
29
  assert_instance_of(Wx::TextProofOptions, proof_opts)
30
- assert_true(proof_opts.is_spell_check_enabled) unless Wx::PLATFORM == 'WXGTK'
30
+ assert_true(proof_opts.is_spell_check_enabled) unless is_gtk?
31
31
  assert_false(proof_opts.is_grammar_check_enabled)
32
- if Wx::PLATFORM != 'WXMSW' || Wx::WXWIDGETS_VERSION >= '3.3'
32
+ if !is_msw? || Wx::WXWIDGETS_VERSION >= '3.3'
33
33
  assert_true(text.enable_proof_check(Wx::TextProofOptions.disable))
34
34
  else
35
35
  assert_false(text.enable_proof_check(Wx::TextProofOptions.disable)) # incorrect return value for WXMSW
@@ -37,13 +37,13 @@ class MultilineProofCheckTests < WxRuby::Test::GUITests
37
37
  Wx.get_app.yield
38
38
  proof_opts = text.get_proof_check_options
39
39
  assert_instance_of(Wx::TextProofOptions, proof_opts)
40
- assert_false(proof_opts.is_spell_check_enabled) unless Wx::PLATFORM == 'WXGTK'
40
+ assert_false(proof_opts.is_spell_check_enabled) unless is_gtk?
41
41
  assert_false(proof_opts.is_grammar_check_enabled)
42
42
  assert_true(text.enable_proof_check(Wx::TextProofOptions.default.grammar_check(true)))
43
43
  Wx.get_app.yield
44
44
  proof_opts = text.get_proof_check_options
45
- assert_true(proof_opts.is_spell_check_enabled) unless Wx::PLATFORM == 'WXGTK'
46
- assert_true(proof_opts.is_grammar_check_enabled) if Wx::PLATFORM == 'WXOSX'
45
+ assert_true(proof_opts.is_spell_check_enabled) unless is_gtk?
46
+ assert_true(proof_opts.is_grammar_check_enabled) if is_macos?
47
47
 
48
48
  end
49
49
 
@@ -180,7 +180,7 @@ class PropGridTests < WxRuby::Test::GUITests
180
180
  prop.set_attribute(Wx::PG::PG_DIALOG_TITLE,"Custom File Dialog Title")
181
181
  prop.set_attribute(Wx::PG::PG_FILE_SHOW_FULL_PATH,false)
182
182
 
183
- if Wx::PLATFORM == 'WXMSW'
183
+ if is_msw?
184
184
  prop.set_attribute(Wx::PG::PG_FILE_SHOW_RELATIVE_PATH,"C:\\Windows")
185
185
  pg.set_property_value(prop,"C:\\Windows\\System32\\msvcrt71.dll")
186
186
  end
@@ -0,0 +1,141 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ require_relative './lib/wxframe_runner'
6
+
7
+ class TestEvent < Wx::RT::ThreadEvent
8
+ EVT_TEST_EVENT = Wx::EvtHandler.register_class(TestEvent, nil, 'evt_test_event', 0)
9
+
10
+ def initialize(id=0)
11
+ super(EVT_TEST_EVENT, id)
12
+ end
13
+ end
14
+
15
+
16
+ class WindowTests < WxRuby::Test::GUITests
17
+
18
+ def test_shared_handler
19
+ seh = frame_win.make_shared
20
+ assert_kind_of(Wx::RT::SharedEvtHandler, seh)
21
+ assert_true(Ractor.shareable?(seh))
22
+ seh2 = Ractor.make_shareable(seh)
23
+ assert_true(Ractor.shareable?(seh2))
24
+ assert_equal(seh, seh2)
25
+ seh3 = seh2.clone
26
+ assert_true(Ractor.shareable?(seh3))
27
+ assert_kind_of(Wx::RT::SharedEvtHandler, seh3)
28
+ assert_not_equal(seh, seh3)
29
+ end
30
+
31
+ def test_ractor_shareable
32
+ # unfortunately even in Ruby 4.0 Ractor is not 100% reliable on Windows
33
+ # and the CI builds block here from time to time so exclude this there
34
+ unless is_msw? && is_ci_build?
35
+ if RUBY_VERSION >= '4.0.0'
36
+ pin = Ractor::Port.new
37
+ pmon = Ractor::Port.new
38
+ seh = frame_win.make_shared
39
+ r = Ractor.new(seh, pin) do |seh_, pout|
40
+ pout.send(seh_.class)
41
+ pout.send(Ractor.shareable?(seh_))
42
+ end
43
+ r.monitor(pmon)
44
+ assert_equal(Wx::RT::SharedEvtHandler, pin.receive)
45
+ assert_true(pin.receive)
46
+ assert_equal(:exited, pmon.receive)
47
+ else
48
+ seh = frame_win.make_shared
49
+ r = Ractor.new(seh) do |seh_|
50
+ Ractor.yield(seh_.class)
51
+ Ractor.yield(Ractor.shareable?(seh_))
52
+ :exited
53
+ end
54
+ assert_equal(Wx::RT::SharedEvtHandler, r.take)
55
+ assert_true(r.take)
56
+ assert_equal(:exited, r.take)
57
+ end
58
+ end
59
+ end
60
+
61
+ def test_ractor_thread_event
62
+ if RUBY_VERSION >= '4.0.0'
63
+ pin = Ractor::Port.new
64
+ pmon = Ractor::Port.new
65
+ seh = frame_win.make_shared
66
+ data_sent = nil
67
+ frame_win.evt_thread(Wx::ID_ANY) { |evt| data_sent = evt.get_int }
68
+ r = Ractor.new(seh, pin) do |seh_, pout|
69
+ sleep rand(100) / 50.0
70
+ pout.send(1)
71
+ evt = Wx::RT::ThreadEvent.new
72
+ evt.set_int(1)
73
+ seh_.queue_event(evt)
74
+ end
75
+ r.monitor(pmon)
76
+
77
+ yield_and_wait_for_test(3000) { data_sent }
78
+ assert_not_nil(data_sent)
79
+ assert_equal(data_sent, pin.receive)
80
+ assert_equal(:exited, pmon.receive)
81
+ else
82
+ seh = frame_win.make_shared
83
+ data_sent = nil
84
+ frame_win.evt_thread(Wx::ID_ANY) { |evt| data_sent = evt.get_int }
85
+ r = Ractor.new(seh) do |seh_|
86
+ sleep rand(100) / 50.0
87
+ evt = Wx::RT::ThreadEvent.new
88
+ evt.set_int(1)
89
+ seh_.queue_event(evt)
90
+ Ractor.yield(1)
91
+ :exited
92
+ end
93
+ yield_and_wait_for_test(10000) { data_sent }
94
+ r.close_outgoing if data_sent.nil? # prevent blocking on yield if we're not going to take
95
+ assert_not_nil(data_sent)
96
+ assert_equal(data_sent, r.take)
97
+ assert_equal(:exited, r.take)
98
+ end
99
+ end
100
+
101
+ def test_ractor_derived_thread_event
102
+ if RUBY_VERSION >= '4.0.0'
103
+ pin = Ractor::Port.new
104
+ pmon = Ractor::Port.new
105
+ seh = frame_win.make_shared
106
+ data_sent = nil
107
+ frame_win.evt_test_event { |evt| data_sent = evt.get_int }
108
+ r = Ractor.new(seh, pin) do |seh_, pout|
109
+ sleep rand(100) / 50.0
110
+ pout.send(1)
111
+ evt = TestEvent.new
112
+ evt.set_int(1)
113
+ seh_.queue_event(evt)
114
+ end
115
+ r.monitor(pmon)
116
+
117
+ yield_and_wait_for_test(3000) { data_sent }
118
+ assert_not_nil(data_sent)
119
+ assert_equal(data_sent, pin.receive)
120
+ assert_equal(:exited, pmon.receive)
121
+ else
122
+ seh = frame_win.make_shared
123
+ data_sent = nil
124
+ frame_win.evt_test_event { |evt| data_sent = evt.get_int }
125
+ r = Ractor.new(seh) do |seh_|
126
+ sleep rand(100) / 50.0
127
+ evt = TestEvent.new
128
+ evt.set_int(1)
129
+ seh_.queue_event(evt)
130
+ Ractor.yield(1)
131
+ :exited
132
+ end
133
+ yield_and_wait_for_test(10000) { data_sent }
134
+ r.close_outgoing if data_sent.nil? # prevent blocking on yield if we're not going to take
135
+ assert_not_nil(data_sent)
136
+ assert_equal(data_sent, r.take)
137
+ assert_equal(:exited, r.take)
138
+ end
139
+ end
140
+
141
+ end
@@ -34,7 +34,7 @@ class ButtonTests < WxRuby::Test::GUITests
34
34
 
35
35
  # This test occasionally fails in MSW/OSX CI builds but rarely
36
36
  # in local builds
37
- unless Wx::PLATFORM != 'WXGTK' && is_ci_build?
37
+ unless !is_gtk? && is_ci_build?
38
38
  assert_equal(1, count)
39
39
  end
40
40
  end
@@ -153,7 +153,7 @@ class TextCtrlTests < WxRuby::Test::GUITests
153
153
 
154
154
  # This test occasionally fails in MSW/OSX CI builds but rarely
155
155
  # in local builds
156
- unless Wx::PLATFORM != 'WXGTK' && is_ci_build?
156
+ unless !is_gtk? && is_ci_build?
157
157
  assert_equal('Hello', text_entry.get_value)
158
158
  assert_equal(5, c_upd.count)
159
159
  end
@@ -163,7 +163,7 @@ class TextCtrlTests < WxRuby::Test::GUITests
163
163
 
164
164
  # This test occasionally fails in MSW/OSX CI builds but rarely
165
165
  # in local builds
166
- unless Wx::PLATFORM != 'WXGTK' && is_ci_build?
166
+ unless !is_gtk? && is_ci_build?
167
167
  assert_equal('HelloWorld', text_entry.get_value)
168
168
  assert_equal(10, c_upd.count)
169
169
  assert_equal(0, c_maxlen.count)
@@ -173,7 +173,7 @@ class TextCtrlTests < WxRuby::Test::GUITests
173
173
 
174
174
  # This test occasionally fails in MSW/OSX CI builds but rarely
175
175
  # in local builds
176
- unless Wx::PLATFORM != 'WXGTK' && is_ci_build?
176
+ unless !is_gtk? && is_ci_build?
177
177
  assert_equal('HelloWorld', text_entry.get_value)
178
178
  assert_equal(10, c_upd.count)
179
179
  assert_equal(1, c_maxlen.count)
@@ -502,7 +502,7 @@ class StaticBoxTests < WxRuby::Test::GUITests
502
502
  assert_equal(box, txt.parent)
503
503
  end
504
504
 
505
- unless Wx::PLATFORM == 'WXOSX'
505
+ unless is_macos?
506
506
 
507
507
  def test_label_window
508
508
  check = Wx::CheckBox.new(frame_win, Wx::ID_ANY, 'Enable')