wxruby3 0.9.0-x64-mingw-ucrt → 0.9.2-x64-mingw-ucrt

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 (466) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/ext/wxbase32u_gcc_custom.dll +0 -0
  4. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  5. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  6. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  7. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  8. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  9. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  10. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  11. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  12. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  13. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  14. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  18. data/lib/wx/aui/aui_tab_ctrl.rb +18 -0
  19. data/lib/wx/aui/auinotebook.rb +6 -2
  20. data/lib/wx/aui/require.rb +1 -0
  21. data/lib/wx/core/app.rb +2 -2
  22. data/lib/wx/core/collapsible_pane.rb +1 -1
  23. data/lib/wx/core/const.rb +83 -0
  24. data/lib/wx/core/controlwithitems.rb +8 -6
  25. data/lib/wx/core/events/evt_list.rb +24 -0
  26. data/lib/wx/core/menu.rb +10 -0
  27. data/lib/wx/core/notebook.rb +6 -2
  28. data/lib/wx/core/sizer.rb +11 -0
  29. data/lib/wx/core/task_bar_button.rb +19 -0
  30. data/lib/wx/core/textctrl.rb +11 -1
  31. data/lib/wx/core/{treectrl.rb → tree_ctrl.rb} +31 -12
  32. data/lib/wx/core/window.rb +10 -0
  33. data/lib/wx/doc/app.rb +48 -38
  34. data/lib/wx/doc/art_locator.rb +47 -43
  35. data/lib/wx/doc/aui/auimanager.rb +16 -8
  36. data/lib/wx/doc/aui/auinotebook.rb +20 -5
  37. data/lib/wx/doc/clipboard.rb +11 -7
  38. data/lib/wx/doc/colour_dialog.rb +14 -10
  39. data/lib/wx/doc/const.rb +66 -66
  40. data/lib/wx/doc/controlwithitems.rb +17 -7
  41. data/lib/wx/doc/data_object.rb +2 -2
  42. data/lib/wx/doc/event.rb +0 -6
  43. data/lib/wx/doc/evthandler.rb +113 -108
  44. data/lib/wx/doc/font.rb +1 -0
  45. data/lib/wx/doc/functions.rb +9 -9
  46. data/lib/wx/doc/gc_dc.rb +6 -1
  47. data/lib/wx/doc/gen/about_dialog_info.rb +1 -2
  48. data/lib/wx/doc/gen/accelerator.rb +14 -5
  49. data/lib/wx/doc/gen/accessible.rb +35 -47
  50. data/lib/wx/doc/gen/activity_indicator.rb +6 -7
  51. data/lib/wx/doc/gen/animation.rb +7 -3
  52. data/lib/wx/doc/gen/animation_ctrl.rb +8 -9
  53. data/lib/wx/doc/gen/any_button.rb +6 -1
  54. data/lib/wx/doc/gen/app.rb +7 -5
  55. data/lib/wx/doc/gen/app_traits.rb +27 -10
  56. data/lib/wx/doc/gen/art_provider.rb +20 -8
  57. data/lib/wx/doc/gen/aui/aui_dock_art.rb +6 -3
  58. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +1 -0
  59. data/lib/wx/doc/gen/aui/aui_manager.rb +11 -7
  60. data/lib/wx/doc/gen/aui/aui_manager_event.rb +3 -4
  61. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +3 -2
  62. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +1 -0
  63. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +8 -3
  64. data/lib/wx/doc/gen/aui/aui_notebook.rb +14 -8
  65. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +4 -4
  66. data/lib/wx/doc/gen/aui/aui_pane_info.rb +9 -2
  67. data/lib/wx/doc/gen/aui/aui_tab_art.rb +3 -3
  68. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +2 -2
  69. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +9 -6
  70. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +2 -2
  71. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +5 -8
  72. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +1 -1
  73. data/lib/wx/doc/gen/aui/event_list.rb +164 -160
  74. data/lib/wx/doc/gen/banner_window.rb +3 -3
  75. data/lib/wx/doc/gen/bitmap.rb +34 -17
  76. data/lib/wx/doc/gen/bitmap_button.rb +13 -10
  77. data/lib/wx/doc/gen/bitmap_combo_box.rb +16 -12
  78. data/lib/wx/doc/gen/book_ctrl_base.rb +16 -4
  79. data/lib/wx/doc/gen/book_ctrl_event.rb +7 -3
  80. data/lib/wx/doc/gen/box_sizer.rb +0 -1
  81. data/lib/wx/doc/gen/brush.rb +5 -2
  82. data/lib/wx/doc/gen/busy_info.rb +2 -2
  83. data/lib/wx/doc/gen/button.rb +25 -13
  84. data/lib/wx/doc/gen/calculate_layout_event.rb +1 -3
  85. data/lib/wx/doc/gen/calendar_ctrl.rb +18 -15
  86. data/lib/wx/doc/gen/calendar_date_attr.rb +1 -1
  87. data/lib/wx/doc/gen/calendar_event.rb +4 -3
  88. data/lib/wx/doc/gen/caret.rb +0 -1
  89. data/lib/wx/doc/gen/check_box.rb +9 -9
  90. data/lib/wx/doc/gen/check_list_box.rb +8 -9
  91. data/lib/wx/doc/gen/choice.rb +18 -11
  92. data/lib/wx/doc/gen/choicebook.rb +6 -7
  93. data/lib/wx/doc/gen/client_dc.rb +5 -2
  94. data/lib/wx/doc/gen/clipboard.rb +7 -3
  95. data/lib/wx/doc/gen/collapsible_pane.rb +8 -9
  96. data/lib/wx/doc/gen/collapsible_pane_event.rb +2 -3
  97. data/lib/wx/doc/gen/colour.rb +8 -4
  98. data/lib/wx/doc/gen/colour_dialog.rb +6 -8
  99. data/lib/wx/doc/gen/colour_picker_ctrl.rb +11 -12
  100. data/lib/wx/doc/gen/colour_picker_event.rb +4 -5
  101. data/lib/wx/doc/gen/combo_box.rb +20 -17
  102. data/lib/wx/doc/gen/combo_ctrl.rb +100 -37
  103. data/lib/wx/doc/gen/command_link_button.rb +6 -7
  104. data/lib/wx/doc/gen/context_help_button.rb +7 -3
  105. data/lib/wx/doc/gen/control.rb +12 -10
  106. data/lib/wx/doc/gen/control_with_items.rb +0 -1
  107. data/lib/wx/doc/gen/core.rb +4 -4
  108. data/lib/wx/doc/gen/cursor.rb +6 -8
  109. data/lib/wx/doc/gen/data_format.rb +6 -1
  110. data/lib/wx/doc/gen/data_object.rb +16 -14
  111. data/lib/wx/doc/gen/date_event.rb +2 -2
  112. data/lib/wx/doc/gen/date_picker_ctrl.rb +14 -10
  113. data/lib/wx/doc/gen/dc.rb +155 -37
  114. data/lib/wx/doc/gen/defs.rb +54 -54
  115. data/lib/wx/doc/gen/dial_up_event.rb +41 -0
  116. data/lib/wx/doc/gen/dial_up_manager.rb +137 -0
  117. data/lib/wx/doc/gen/dialog.rb +35 -15
  118. data/lib/wx/doc/gen/dir_dialog.rb +17 -5
  119. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +1 -0
  120. data/lib/wx/doc/gen/dir_picker_ctrl.rb +11 -12
  121. data/lib/wx/doc/gen/drag_drop.rb +11 -10
  122. data/lib/wx/doc/gen/drag_image.rb +6 -2
  123. data/lib/wx/doc/gen/editable_list_box.rb +4 -4
  124. data/lib/wx/doc/gen/event.rb +42 -20
  125. data/lib/wx/doc/gen/event_blocker.rb +1 -3
  126. data/lib/wx/doc/gen/event_list.rb +1656 -1624
  127. data/lib/wx/doc/gen/events.rb +170 -181
  128. data/lib/wx/doc/gen/evt_handler.rb +11 -3
  129. data/lib/wx/doc/gen/ext_help_controller.rb +1 -1
  130. data/lib/wx/doc/gen/file_ctrl.rb +209 -0
  131. data/lib/wx/doc/gen/file_ctrl_event.rb +79 -0
  132. data/lib/wx/doc/gen/file_dialog.rb +32 -15
  133. data/lib/wx/doc/gen/file_dialog_custom_control.rb +7 -0
  134. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +2 -3
  135. data/lib/wx/doc/gen/file_dir_picker_event.rb +3 -4
  136. data/lib/wx/doc/gen/file_picker_ctrl.rb +10 -11
  137. data/lib/wx/doc/gen/file_system.rb +38 -15
  138. data/lib/wx/doc/gen/find_dialog_event.rb +5 -4
  139. data/lib/wx/doc/gen/find_replace_data.rb +1 -1
  140. data/lib/wx/doc/gen/find_replace_dialog.rb +1 -1
  141. data/lib/wx/doc/gen/flex_grid_sizer.rb +0 -1
  142. data/lib/wx/doc/gen/font.rb +31 -20
  143. data/lib/wx/doc/gen/font_data.rb +3 -4
  144. data/lib/wx/doc/gen/font_dialog.rb +1 -2
  145. data/lib/wx/doc/gen/font_picker_ctrl.rb +8 -9
  146. data/lib/wx/doc/gen/font_picker_event.rb +2 -3
  147. data/lib/wx/doc/gen/frame.rb +60 -19
  148. data/lib/wx/doc/gen/fs_file.rb +17 -10
  149. data/lib/wx/doc/gen/gauge.rb +13 -10
  150. data/lib/wx/doc/gen/gb_sizer_item.rb +0 -1
  151. data/lib/wx/doc/gen/gcdc.rb +1 -2
  152. data/lib/wx/doc/gen/gdi_common.rb +30 -11
  153. data/lib/wx/doc/gen/gdi_object.rb +0 -1
  154. data/lib/wx/doc/gen/generic_dir_ctrl.rb +8 -9
  155. data/lib/wx/doc/gen/graphics_context.rb +59 -12
  156. data/lib/wx/doc/gen/graphics_object.rb +11 -6
  157. data/lib/wx/doc/gen/grid/event_list.rb +168 -164
  158. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +1 -0
  159. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +2 -1
  160. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +1 -2
  161. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +1 -1
  162. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +1 -2
  163. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +1 -2
  164. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +1 -2
  165. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +1 -1
  166. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +1 -1
  167. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +2 -2
  168. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +1 -1
  169. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +1 -1
  170. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +1 -1
  171. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +1 -2
  172. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +1 -2
  173. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +1 -2
  174. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +1 -2
  175. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +1 -1
  176. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +1 -2
  177. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +1 -2
  178. data/lib/wx/doc/gen/grid/grid_ctrl.rb +29 -7
  179. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +3 -4
  180. data/lib/wx/doc/gen/grid/grid_event.rb +3 -4
  181. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +3 -4
  182. data/lib/wx/doc/gen/grid/grid_size_event.rb +3 -4
  183. data/lib/wx/doc/gen/grid/grid_string_table.rb +1 -0
  184. data/lib/wx/doc/gen/grid/grid_table_base.rb +1 -2
  185. data/lib/wx/doc/gen/grid/grid_table_message.rb +1 -0
  186. data/lib/wx/doc/gen/grid_bag_sizer.rb +0 -6
  187. data/lib/wx/doc/gen/grid_sizer.rb +0 -1
  188. data/lib/wx/doc/gen/gui_event_loop.rb +2 -4
  189. data/lib/wx/doc/gen/header_ctrl.rb +7 -14
  190. data/lib/wx/doc/gen/header_ctrl_event.rb +1 -3
  191. data/lib/wx/doc/gen/help_controller.rb +42 -3
  192. data/lib/wx/doc/gen/help_provider.rb +12 -3
  193. data/lib/wx/doc/gen/html/event_list.rb +41 -37
  194. data/lib/wx/doc/gen/html/html_cell.rb +23 -6
  195. data/lib/wx/doc/gen/html/html_cell_event.rb +3 -4
  196. data/lib/wx/doc/gen/html/html_easy_printing.rb +8 -3
  197. data/lib/wx/doc/gen/html/html_help_controller.rb +47 -2
  198. data/lib/wx/doc/gen/html/html_help_data.rb +3 -1
  199. data/lib/wx/doc/gen/html/html_help_window.rb +1 -1
  200. data/lib/wx/doc/gen/html/html_link_event.rb +2 -3
  201. data/lib/wx/doc/gen/html/html_list_box.rb +10 -12
  202. data/lib/wx/doc/gen/html/html_printout.rb +1 -2
  203. data/lib/wx/doc/gen/html/html_window.rb +13 -7
  204. data/lib/wx/doc/gen/hyperlink_ctrl.rb +9 -9
  205. data/lib/wx/doc/gen/hyperlink_event.rb +2 -3
  206. data/lib/wx/doc/gen/icon.rb +5 -29
  207. data/lib/wx/doc/gen/icon_location.rb +0 -1
  208. data/lib/wx/doc/gen/image.rb +83 -17
  209. data/lib/wx/doc/gen/image_list.rb +15 -6
  210. data/lib/wx/doc/gen/info_bar.rb +2 -2
  211. data/lib/wx/doc/gen/keyboard_state.rb +0 -1
  212. data/lib/wx/doc/gen/list_box.rb +33 -21
  213. data/lib/wx/doc/gen/list_ctrl.rb +79 -32
  214. data/lib/wx/doc/gen/list_event.rb +3 -4
  215. data/lib/wx/doc/gen/listbook.rb +6 -7
  216. data/lib/wx/doc/gen/locale.rb +46 -4
  217. data/lib/wx/doc/gen/log.rb +16 -12
  218. data/lib/wx/doc/gen/mdi_client_window.rb +8 -2
  219. data/lib/wx/doc/gen/mdi_frame.rb +32 -11
  220. data/lib/wx/doc/gen/media_ctrl.rb +28 -20
  221. data/lib/wx/doc/gen/media_event.rb +5 -4
  222. data/lib/wx/doc/gen/memory_dc.rb +6 -6
  223. data/lib/wx/doc/gen/menu.rb +37 -23
  224. data/lib/wx/doc/gen/menu_bar.rb +52 -12
  225. data/lib/wx/doc/gen/menu_item.rb +117 -95
  226. data/lib/wx/doc/gen/message_dialog.rb +7 -8
  227. data/lib/wx/doc/gen/mini_frame.rb +13 -7
  228. data/lib/wx/doc/gen/mirror_dc.rb +0 -2
  229. data/lib/wx/doc/gen/mouse_state.rb +0 -1
  230. data/lib/wx/doc/gen/multi_choice_dialog.rb +7 -4
  231. data/lib/wx/doc/gen/non_owned_window.rb +1 -1
  232. data/lib/wx/doc/gen/notebook.rb +19 -11
  233. data/lib/wx/doc/gen/number_entry_dialog.rb +1 -1
  234. data/lib/wx/doc/gen/object.rb +0 -1
  235. data/lib/wx/doc/gen/paint_dc.rb +0 -1
  236. data/lib/wx/doc/gen/palette.rb +0 -1
  237. data/lib/wx/doc/gen/panel.rb +19 -10
  238. data/lib/wx/doc/gen/pen.rb +17 -8
  239. data/lib/wx/doc/gen/pg/event_list.rb +97 -93
  240. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +2 -0
  241. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +9 -1
  242. data/lib/wx/doc/gen/pg/pg_cell.rb +8 -5
  243. data/lib/wx/doc/gen/pg/pg_editor.rb +115 -16
  244. data/lib/wx/doc/gen/pg/pg_multi_button.rb +1 -2
  245. data/lib/wx/doc/gen/pg/pg_properties.rb +515 -83
  246. data/lib/wx/doc/gen/pg/pg_property.rb +296 -69
  247. data/lib/wx/doc/gen/pg/pg_validation_info.rb +9 -4
  248. data/lib/wx/doc/gen/pg/property_grid.rb +83 -22
  249. data/lib/wx/doc/gen/pg/property_grid_event.rb +31 -9
  250. data/lib/wx/doc/gen/pg/property_grid_interface.rb +212 -34
  251. data/lib/wx/doc/gen/pg/property_grid_manager.rb +42 -12
  252. data/lib/wx/doc/gen/pg/property_grid_page.rb +26 -8
  253. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +13 -4
  254. data/lib/wx/doc/gen/picker_base.rb +12 -5
  255. data/lib/wx/doc/gen/platform_info.rb +4 -9
  256. data/lib/wx/doc/gen/popup_window.rb +2 -5
  257. data/lib/wx/doc/gen/progress_dialog.rb +1 -0
  258. data/lib/wx/doc/gen/property_sheet_dialog.rb +15 -5
  259. data/lib/wx/doc/gen/prt/event_list.rb +8 -4
  260. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +1 -1
  261. data/lib/wx/doc/gen/prt/post_script_dc.rb +2 -2
  262. data/lib/wx/doc/gen/prt/preview_frame.rb +2 -2
  263. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +4 -1
  264. data/lib/wx/doc/gen/prt/print_data.rb +4 -3
  265. data/lib/wx/doc/gen/prt/print_dialog.rb +1 -1
  266. data/lib/wx/doc/gen/prt/printer.rb +50 -11
  267. data/lib/wx/doc/gen/prt/printer_dc.rb +1 -1
  268. data/lib/wx/doc/gen/query_layout_info_event.rb +1 -3
  269. data/lib/wx/doc/gen/radio_box.rb +13 -14
  270. data/lib/wx/doc/gen/radio_button.rb +15 -11
  271. data/lib/wx/doc/gen/rbn/event_list.rb +127 -123
  272. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +19 -3
  273. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +3 -4
  274. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +2 -2
  275. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +18 -6
  276. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +2 -2
  277. data/lib/wx/doc/gen/rbn/ribbon_control.rb +2 -2
  278. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +4 -4
  279. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +2 -3
  280. data/lib/wx/doc/gen/rbn/ribbon_page.rb +1 -2
  281. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +5 -4
  282. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +2 -3
  283. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +2 -3
  284. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +2 -1
  285. data/lib/wx/doc/gen/rearrange_ctrl.rb +3 -4
  286. data/lib/wx/doc/gen/rearrange_list.rb +5 -6
  287. data/lib/wx/doc/gen/region.rb +75 -17
  288. data/lib/wx/doc/gen/region_iterator.rb +0 -1
  289. data/lib/wx/doc/gen/rtc/event_list.rb +116 -112
  290. data/lib/wx/doc/gen/rtc/rich_text_box.rb +3 -2
  291. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +6 -9
  292. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +1 -2
  293. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +3 -6
  294. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +12 -9
  295. data/lib/wx/doc/gen/rtc/rich_text_event.rb +3 -4
  296. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +3 -5
  297. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +4 -5
  298. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +3 -2
  299. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +2 -3
  300. data/lib/wx/doc/gen/rtc/rich_text_image.rb +2 -4
  301. data/lib/wx/doc/gen/rtc/rich_text_object.rb +28 -23
  302. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +7 -11
  303. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +3 -3
  304. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +14 -14
  305. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +3 -3
  306. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +3 -4
  307. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +3 -4
  308. data/lib/wx/doc/gen/sash_event.rb +12 -4
  309. data/lib/wx/doc/gen/sash_layout_window.rb +13 -6
  310. data/lib/wx/doc/gen/sash_window.rb +4 -5
  311. data/lib/wx/doc/gen/screen_dc.rb +0 -1
  312. data/lib/wx/doc/gen/scroll_bar.rb +21 -12
  313. data/lib/wx/doc/gen/scrolled_canvas.rb +34 -12
  314. data/lib/wx/doc/gen/scrolled_control.rb +34 -12
  315. data/lib/wx/doc/gen/scrolled_window.rb +34 -12
  316. data/lib/wx/doc/gen/search_ctrl.rb +10 -11
  317. data/lib/wx/doc/gen/simplebook.rb +1 -1
  318. data/lib/wx/doc/gen/single_choice_dialog.rb +7 -4
  319. data/lib/wx/doc/gen/sizer.rb +12 -7
  320. data/lib/wx/doc/gen/sizer_item.rb +5 -2
  321. data/lib/wx/doc/gen/slider.rb +29 -19
  322. data/lib/wx/doc/gen/spin_button.rb +16 -11
  323. data/lib/wx/doc/gen/spin_ctrl.rb +24 -9
  324. data/lib/wx/doc/gen/spin_ctrl_double.rb +6 -7
  325. data/lib/wx/doc/gen/spin_double_event.rb +3 -4
  326. data/lib/wx/doc/gen/spin_event.rb +3 -3
  327. data/lib/wx/doc/gen/splash_screen.rb +1 -2
  328. data/lib/wx/doc/gen/splitter_event.rb +3 -4
  329. data/lib/wx/doc/gen/splitter_window.rb +78 -20
  330. data/lib/wx/doc/gen/static_bitmap.rb +12 -7
  331. data/lib/wx/doc/gen/static_box.rb +13 -11
  332. data/lib/wx/doc/gen/static_box_sizer.rb +0 -2
  333. data/lib/wx/doc/gen/static_line.rb +5 -6
  334. data/lib/wx/doc/gen/static_text.rb +7 -8
  335. data/lib/wx/doc/gen/status_bar.rb +21 -11
  336. data/lib/wx/doc/gen/stc/event_list.rb +212 -208
  337. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +41 -15
  338. data/lib/wx/doc/gen/stc/styled_text_event.rb +5 -6
  339. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +0 -1
  340. data/lib/wx/doc/gen/svg_file_dc.rb +7 -8
  341. data/lib/wx/doc/gen/system_options.rb +6 -6
  342. data/lib/wx/doc/gen/system_settings.rb +2 -3
  343. data/lib/wx/doc/gen/task_bar_button.rb +312 -0
  344. data/lib/wx/doc/gen/task_bar_icon.rb +21 -8
  345. data/lib/wx/doc/gen/task_bar_icon_event.rb +4 -3
  346. data/lib/wx/doc/gen/text_attr.rb +20 -5
  347. data/lib/wx/doc/gen/text_ctrl.rb +92 -27
  348. data/lib/wx/doc/gen/text_entry.rb +31 -11
  349. data/lib/wx/doc/gen/text_entry_dialog.rb +2 -2
  350. data/lib/wx/doc/gen/text_validator.rb +43 -10
  351. data/lib/wx/doc/gen/time_picker_ctrl.rb +7 -8
  352. data/lib/wx/doc/gen/timer.rb +6 -2
  353. data/lib/wx/doc/gen/timer_event.rb +1 -2
  354. data/lib/wx/doc/gen/tip_provider.rb +1 -1
  355. data/lib/wx/doc/gen/toggle_button.rb +7 -8
  356. data/lib/wx/doc/gen/tool_bar.rb +99 -26
  357. data/lib/wx/doc/gen/tool_tip.rb +35 -5
  358. data/lib/wx/doc/gen/toolbook.rb +3 -4
  359. data/lib/wx/doc/gen/top_level_window.rb +71 -25
  360. data/lib/wx/doc/gen/tree_ctrl.rb +42 -18
  361. data/lib/wx/doc/gen/tree_event.rb +3 -4
  362. data/lib/wx/doc/gen/treebook.rb +7 -4
  363. data/lib/wx/doc/gen/ui_action_simulator.rb +6 -2
  364. data/lib/wx/doc/gen/utils.rb +39 -7
  365. data/lib/wx/doc/gen/v_list_box.rb +8 -4
  366. data/lib/wx/doc/gen/v_scrolled_window.rb +8 -6
  367. data/lib/wx/doc/gen/validator.rb +1 -1
  368. data/lib/wx/doc/gen/variant.rb +1 -0
  369. data/lib/wx/doc/gen/window.rb +200 -50
  370. data/lib/wx/doc/gen/window_dc.rb +0 -1
  371. data/lib/wx/doc/gen/window_disabler.rb +5 -2
  372. data/lib/wx/doc/gen/with_images.rb +6 -1
  373. data/lib/wx/doc/gen/wizard.rb +4 -4
  374. data/lib/wx/doc/gen/wizard_event.rb +3 -4
  375. data/lib/wx/doc/gen/wizard_page.rb +2 -2
  376. data/lib/wx/doc/gen/wizard_page_simple.rb +1 -1
  377. data/lib/wx/doc/gen/wrap_sizer.rb +0 -1
  378. data/lib/wx/doc/gen/xml_node.rb +19 -4
  379. data/lib/wx/doc/gen/xml_resource.rb +18 -5
  380. data/lib/wx/doc/graphics_context.rb +1 -0
  381. data/lib/wx/doc/grid/grid.rb +22 -1
  382. data/lib/wx/doc/help_controller.rb +11 -7
  383. data/lib/wx/doc/html/html_help_controller.rb +12 -4
  384. data/lib/wx/doc/list_ctrl.rb +33 -29
  385. data/lib/wx/doc/menu.rb +20 -0
  386. data/lib/wx/doc/notebook.rb +21 -0
  387. data/lib/wx/doc/pg/events.rb +13 -9
  388. data/lib/wx/doc/pg/pg_property.rb +18 -0
  389. data/lib/wx/doc/progress_dialog.rb +36 -32
  390. data/lib/wx/doc/prt/page_setup_dialog.rb +20 -12
  391. data/lib/wx/doc/prt/print_data.rb +13 -5
  392. data/lib/wx/doc/prt/print_dialog.rb +31 -23
  393. data/lib/wx/doc/prt/printer.rb +20 -12
  394. data/lib/wx/doc/radio_box.rb +19 -15
  395. data/lib/wx/doc/rbn/ribbon_bar.rb +13 -5
  396. data/lib/wx/doc/rbn/ribbon_button_bar.rb +13 -5
  397. data/lib/wx/doc/rbn/ribbon_gallery.rb +13 -5
  398. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +13 -5
  399. data/lib/wx/doc/region_iterator.rb +32 -28
  400. data/lib/wx/doc/rtc/rich_text_composite_object.rb +24 -0
  401. data/lib/wx/doc/rtc/rich_text_ctrl.rb +24 -0
  402. data/lib/wx/doc/rtc/rich_text_paragraph.rb +24 -0
  403. data/lib/wx/doc/rtc/richtext_buffer.rb +27 -19
  404. data/lib/wx/doc/rtc/richtext_printing.rb +17 -9
  405. data/lib/wx/doc/rtc/richtext_style_sheet.rb +17 -9
  406. data/lib/wx/doc/sizer.rb +20 -0
  407. data/lib/wx/doc/stc/styled_text_ctrl.rb +24 -0
  408. data/lib/wx/doc/stream.rb +39 -35
  409. data/lib/wx/doc/system_settings.rb +30 -26
  410. data/lib/wx/doc/text_validator.rb +12 -8
  411. data/lib/wx/doc/textctrl.rb +16 -0
  412. data/lib/wx/doc/tree_ctrl.rb +95 -0
  413. data/lib/wx/doc/treebook.rb +9 -5
  414. data/lib/wx/doc/v_list_box.rb +9 -5
  415. data/lib/wx/doc/variant.rb +164 -160
  416. data/lib/wx/doc/window.rb +57 -42
  417. data/lib/wx/doc/window_disabler.rb +10 -6
  418. data/lib/wx/grid/grid.rb +27 -4
  419. data/lib/wx/keyword_defs.rb +43 -6
  420. data/lib/wx/pg/pg_property.rb +22 -0
  421. data/lib/wx/rtc/require.rb +3 -0
  422. data/lib/wx/rtc/rich_text_composite_object.rb +25 -0
  423. data/lib/wx/rtc/rich_text_ctrl.rb +25 -0
  424. data/lib/wx/rtc/rich_text_paragraph.rb +25 -0
  425. data/lib/wx/stc/require.rb +1 -0
  426. data/lib/wx/stc/styled_text_ctrl.rb +25 -0
  427. data/lib/wx/version.rb +1 -1
  428. data/lib/wxruby_aui.so +0 -0
  429. data/lib/wxruby_core.so +0 -0
  430. data/lib/wxruby_grid.so +0 -0
  431. data/lib/wxruby_html.so +0 -0
  432. data/lib/wxruby_pg.so +0 -0
  433. data/lib/wxruby_prt.so +0 -0
  434. data/lib/wxruby_rbn.so +0 -0
  435. data/lib/wxruby_rtc.so +0 -0
  436. data/lib/wxruby_stc.so +0 -0
  437. data/rakelib/lib/config/linux.rb +0 -3
  438. data/rakelib/lib/config/macosx.rb +1 -1
  439. data/rakelib/lib/config/mingw.rb +1 -1
  440. data/rakelib/lib/config/unixish.rb +1 -1
  441. data/rakelib/lib/config.rb +14 -4
  442. data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +74 -2
  443. data/rakelib/yard/templates/default/fulldoc/html/full_list.erb +38 -0
  444. data/rakelib/yard/templates/default/fulldoc/html/setup.rb +39 -0
  445. data/rakelib/yard/templates/default/tags/html/wxrb_require.erb +10 -0
  446. data/rakelib/yard/templates/default/tags/setup.rb +16 -0
  447. data/rakelib/yard/yard-custom-templates.rb +3 -0
  448. data/samples/text/richtext.rb +0 -30
  449. data/samples/treectrl/treectrl.rb +1 -1
  450. data/tests/media/beep_lo.wav +0 -0
  451. data/tests/test_app_exit_exception.rb +36 -0
  452. data/tests/test_app_init_exception.rb +20 -0
  453. data/tests/test_book_controls.rb +29 -0
  454. data/tests/test_exceptions.rb +41 -0
  455. data/tests/test_list_ctrl.rb +1 -1
  456. data/tests/test_media_ctrl.rb +38 -0
  457. data/tests/test_menu.rb +69 -0
  458. data/tests/test_pg.rb +27 -0
  459. data/tests/test_richtext.rb +45 -0
  460. data/tests/test_sizer.rb +59 -0
  461. data/tests/test_std_controls.rb +78 -1
  462. data/tests/test_styled_text_ctrl.rb +46 -0
  463. data/tests/test_tree_ctrl.rb +138 -0
  464. data/tests/test_window.rb +12 -0
  465. data/tests/testapp_noframe.rb +1 -1
  466. metadata +38 -3
@@ -0,0 +1,10 @@
1
+ <% if object.has_tag?(:wxrb_require) %>
2
+ <p class="tag_title">Requires:</p>
3
+ <ul class="wxrb-require">
4
+ <% wxruby_requires.each do |req| %>
5
+ <li><div class='inline'>
6
+ <%= req.join(' or ') %>
7
+ </div></li>
8
+ <% end %>
9
+ </ul>
10
+ <% end %>
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ def wxrb_require
4
+ erb('wxrb_require')
5
+ end
6
+
7
+ def wxruby_requires
8
+ object.tags(:wxrb_require).inject([]) do |list, tag|
9
+ tag.text.split(',').each do |feature|
10
+ list << feature.split('|').collect do |s|
11
+ s.split('&').collect { |ss| %Q[<span class="wxrb-require">#{ss.strip}</span>] }.join('&amp;')
12
+ end
13
+ end
14
+ list
15
+ end
16
+ end
@@ -1,2 +1,5 @@
1
1
 
2
+ YARD::Tags::Library.define_tag("Requirements", :wxrb_require)
3
+ YARD::Tags::Library.visible_tags.place(:wxrb_require).before(:author)
4
+
2
5
  YARD::Templates::Engine.register_template_path File.join(__dir__, 'templates')
@@ -1432,36 +1432,6 @@ class MyFrame < Wx::Frame
1432
1432
 
1433
1433
  end
1434
1434
 
1435
- # Forward command events to the current rich text control, if any
1436
- def try_before(event)
1437
- if event.is_command_event && !event.is_a?(Wx::ChildFocusEvent)
1438
- # Problem: we can get infinite recursion because the events
1439
- # climb back up to this frame, and repeat.
1440
- # Assume that command events don't cause another command event
1441
- # to be called, so we can rely on inCommand not being overwritten
1442
-
1443
- if MyFrame.win_id != event.id && MyFrame.event_type != event.event_type
1444
- MyFrame.event_type = event.event_type
1445
- MyFrame.win_id = event.id
1446
- focusWin = Wx.find_focus_descendant(self)
1447
- focusWin = @richTextCtrl unless focusWin
1448
-
1449
- if focusWin && focusWin.get_event_handler.process_event(event)
1450
- MyFrame.event_type = 0
1451
- MyFrame.win_id = 0
1452
- return true
1453
- end
1454
-
1455
- MyFrame.event_type = 0
1456
- MyFrame.win_id = 0
1457
- else
1458
- return false
1459
- end
1460
- end
1461
-
1462
- false
1463
- end
1464
-
1465
1435
  # Write text
1466
1436
  def write_initial_text
1467
1437
  r = @richTextCtrl
@@ -369,7 +369,7 @@ class MyTreeCtrl < Wx::TreeCtrl
369
369
  set_item_font(root_id, Wx::ITALIC_FONT)
370
370
  end
371
371
 
372
- ids = get_children(root_id)
372
+ ids = get_item_children(root_id)
373
373
 
374
374
  # make the first item blue
375
375
  set_item_text_colour(ids[0], Wx::BLUE)
Binary file
@@ -0,0 +1,36 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ require 'test/unit'
6
+ require 'wx'
7
+
8
+ class TestApp < Test::Unit::TestCase
9
+
10
+ class TestFrame < Wx::Frame
11
+ def initialize
12
+ super(nil, -1, '')
13
+ evt_paint { on_paint }
14
+ end
15
+
16
+ def on_paint
17
+ paint {}
18
+ close
19
+ end
20
+ end
21
+
22
+ class TestApp < Wx::App
23
+ def on_init
24
+ TestFrame.new.show
25
+ end
26
+
27
+ def on_exit
28
+ raise RuntimeError, 'on_exit exception'
29
+ end
30
+ end
31
+
32
+ def test_self_closing_frame
33
+ assert_raise_kind_of(RuntimeError) { TestApp.run }
34
+ end
35
+
36
+ end
@@ -0,0 +1,20 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ require 'test/unit'
6
+ require 'wx'
7
+
8
+ class AppInitExitExceptions < Test::Unit::TestCase
9
+
10
+ class TestApp < Wx::App
11
+ def on_init
12
+ raise RuntimeError, 'on_init exception'
13
+ end
14
+ end
15
+
16
+ def test_on_init_exception
17
+ assert_raise_kind_of(RuntimeError) { TestApp.run }
18
+ end
19
+
20
+ end
@@ -0,0 +1,29 @@
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 BookCtrlTests < WxRuby::Test::GUITests
8
+
9
+ def setup
10
+ super
11
+ @book = Wx::Choicebook.new(frame_win, name: 'ChoiceBook')
12
+ end
13
+
14
+ def cleanup
15
+ @book.destroy
16
+ super
17
+ GC.start
18
+ end
19
+
20
+ attr_reader :book
21
+
22
+ def test_control_sizer
23
+ btn = Wx::Button.new(book, Wx::ID_ANY, 'First')
24
+ # issue #199 : returning the control sizer should not cause it to be owned by Ruby
25
+ # because that would cause double deletes
26
+ book.get_control_sizer.add(btn, Wx::SizerFlags.new.expand.border(Wx::ALL))
27
+ end
28
+
29
+ end
@@ -0,0 +1,41 @@
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 DirectorExceptionTests < WxRuby::Test::GUITests
8
+
9
+ class InvalidOutputSizer < Wx::BoxSizer
10
+
11
+ def calc_min
12
+ Wx::Point.new(1,1) # expects Wx::Size
13
+ end
14
+
15
+ end
16
+
17
+ def test_invalid_output
18
+ szr = InvalidOutputSizer.new(Wx::Orientation::VERTICAL)
19
+ szr.add(Wx::Button.new(frame_win, name: 'button'), Wx::Direction::TOP)
20
+ frame_win.sizer = szr
21
+ assert_raise_kind_of(TypeError) { frame_win.layout }
22
+ frame_win.sizer = nil
23
+ end
24
+
25
+ class ExceptionSizer < Wx::BoxSizer
26
+
27
+ def calc_min
28
+ raise RuntimeError, 'AnyThing'
29
+ end
30
+
31
+ end
32
+
33
+ def test_exception_in_overload
34
+ szr = ExceptionSizer.new(Wx::Orientation::VERTICAL)
35
+ szr.add(Wx::Button.new(frame_win, name: 'button'), Wx::Direction::TOP)
36
+ frame_win.sizer = szr
37
+ assert_raise_kind_of(RuntimeError) { frame_win.layout }
38
+ frame_win.sizer = nil
39
+ end
40
+
41
+ end
@@ -4,7 +4,7 @@
4
4
 
5
5
  require_relative './lib/wxframe_runner'
6
6
 
7
- class ButtonTests < WxRuby::Test::GUITests
7
+ class ListCtrlTests < WxRuby::Test::GUITests
8
8
 
9
9
  def setup
10
10
  super
@@ -0,0 +1,38 @@
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
+ # test seems to deadlock for WXGTK
8
+ if Wx.has_feature?(:USE_MEDIACTRL)
9
+
10
+ require 'uri'
11
+
12
+ class MediaCtrlTests < WxRuby::Test::GUITests
13
+
14
+ def setup
15
+ super
16
+ @media = Wx::MediaCtrl.new(frame_win)
17
+ end
18
+
19
+ def cleanup
20
+ @media.destroy
21
+ super
22
+ end
23
+
24
+ attr_reader :media
25
+
26
+ 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
+ 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))
34
+ end
35
+
36
+ end
37
+
38
+ end
@@ -0,0 +1,69 @@
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 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
+ end
23
+
24
+ def cleanup
25
+ frame_win.menu_bar = nil
26
+ super
27
+ end
28
+
29
+ attr_reader :menu
30
+
31
+ def test_basic
32
+ assert_equal(8, menu.get_menu_item_count)
33
+ check, pos = menu.find_child_item(Wx::ID_HIGHEST+3)
34
+ assert_not_nil(check)
35
+ assert_equal(3, pos)
36
+ assert_equal('Check 3', check.item_label)
37
+ assert_false(check.checked?)
38
+ check.check
39
+ assert_true(check.checked?)
40
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+5)
41
+ assert_not_nil(radio)
42
+ assert_equal(6, pos)
43
+ assert_equal('Radio 5', radio.item_label)
44
+ assert_false(radio.checked?)
45
+ radio.check
46
+ assert_true(radio.checked?)
47
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
48
+ assert_false(radio.checked?)
49
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+6)
50
+ assert_false(radio.checked?)
51
+ radio.check
52
+ assert_true(radio.checked?)
53
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+5)
54
+ assert_false(radio.checked?)
55
+ end
56
+
57
+ def test_enumerate
58
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
59
+ assert_true(radio.checked?) # first by default checked
60
+ menu.each_item do |mi|
61
+ mi.check if mi.id == (Wx::ID_HIGHEST+5)
62
+ end
63
+ radio, pos = menu.find_child_item(Wx::ID_HIGHEST+4)
64
+ assert_false(radio.checked?)
65
+ radio = menu.each_item.detect { |mi| mi.id == (Wx::ID_HIGHEST+5) }
66
+ assert_true(radio.checked?)
67
+ end
68
+
69
+ end
data/tests/test_pg.rb ADDED
@@ -0,0 +1,27 @@
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 PGChoicesTests < WxRuby::Test::GUITests
8
+
9
+ def test_enum_labels
10
+ texts = %w[Red Blue Green Yellow Black White]
11
+ choices = Wx::PG::PGChoices.new(texts)
12
+ choices.each_label { |lbl| assert_equal(texts.shift, lbl) }
13
+ end
14
+
15
+ def test_enum_entries
16
+ texts = %w[Flag1 Flag2 Flag3 Flag4]
17
+ choices = Wx::PG::PGChoices.new
18
+ texts.each_with_index do |s, i|
19
+ choices.add(s, 1 << i)
20
+ end
21
+ choices.each_entry.each_with_index do |entry, ix|
22
+ assert_equal(1 << ix, entry.value)
23
+ assert_equal(texts[ix], entry.get_text)
24
+ end
25
+ end
26
+
27
+ end
@@ -67,6 +67,51 @@ class RichTextCtrlWriteTests < WxRuby::Test::GUITests
67
67
  assert_equal('Second Line', richtext.get_line_text(1))
68
68
  end
69
69
 
70
+ def test_enumerate_lines
71
+ richtext.write_text <<~__HEREDOC
72
+ This is line 1.
73
+ This is line 2.
74
+ This is line 3.
75
+ __HEREDOC
76
+ assert_equal(4, richtext.get_number_of_lines)
77
+ richtext.each_line.each_with_index do |txt, lnr|
78
+ if lnr < 3
79
+ assert("This is line #{lnr+1}.", txt)
80
+ else
81
+ assert('', txt)
82
+ end
83
+ end
84
+ line_enum = richtext.each_line
85
+ txt = line_enum.detect { |l| l.index('2') }
86
+ assert_equal('This is line 2.', txt)
87
+ para = richtext.buffer.get_child_at_position(0)
88
+ assert_kind_of(Wx::RTC::RichTextParagraph, para)
89
+ assert_equal(1, para.get_lines.size)
90
+ para.each_line do |rtl|
91
+ txt = para.get_text_for_range(rtl.get_range)
92
+ assert("This is line 1.", txt)
93
+ end
94
+ end
95
+
96
+ def test_enumerate_children
97
+ richtext.write_text <<~__HEREDOC
98
+ This is line 1.
99
+ This is line 2.
100
+ This is line 3.
101
+ __HEREDOC
102
+ richtext.write_image(Wx.Bitmap(:wxruby, Wx::BitmapType::BITMAP_TYPE_PNG, art_section: 'test_art'))
103
+ assert_equal(4, richtext.buffer.get_child_count)
104
+ richtext.buffer.each_child.each_with_index do |c, i|
105
+ if i<3
106
+ assert_kind_of(Wx::RTC::RichTextParagraph, c)
107
+ assert_equal(1, c.get_lines.size)
108
+ else
109
+ assert_equal(1, c.get_child_count)
110
+ c.each_child { |cc| assert_kind_of(Wx::RTC::RichTextImage, cc) }
111
+ end
112
+ end
113
+ end
114
+
70
115
  def test_write_image
71
116
  assert_nothing_raised { richtext.write_image(Wx.Bitmap(:wxruby, Wx::BitmapType::BITMAP_TYPE_PNG, art_section: 'test_art')) }
72
117
  img_obj = richtext.buffer.get_leaf_object_at_position(0)
@@ -0,0 +1,59 @@
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 SizerTests < WxRuby::Test::GUITests
8
+
9
+ def setup
10
+ super
11
+ frame_win.set_sizer(Wx::VBoxSizer.new)
12
+ end
13
+
14
+ def cleanup
15
+ super
16
+ GC.start
17
+ end
18
+
19
+ def test_detach
20
+ frame_win.get_sizer.add(Wx::HBoxSizer.new)
21
+ frame_win.get_sizer.add_spacer(5)
22
+ # detaches HBoxSizer transferring ownership to Ruby; should not cause segfaults at GC
23
+ frame_win.get_sizer.detach(0)
24
+ end
25
+
26
+ def test_sizer_item_detach_and_re_attach
27
+ frame_win.get_sizer.add(Wx::HBoxSizer.new)
28
+ frame_win.get_sizer.add_spacer(5)
29
+ # get and detach
30
+ szr_itm = frame_win.get_sizer.get_item(0)
31
+ assert_not_nil(szr_itm)
32
+ assert_true(szr_itm.is_sizer)
33
+ szr = szr_itm.get_sizer
34
+ assert_not_nil(szr)
35
+ szr_itm.detach_sizer
36
+ assert_nil(szr_itm.get_sizer)
37
+ # remove sizer item
38
+ assert_true(frame_win.get_sizer.remove(0))
39
+ # re-attach detached sizer (should not cause segfaults at close due to incorrect ownership transfers)
40
+ assert_not_nil(frame_win.get_sizer.prepend(szr))
41
+ end
42
+
43
+ def test_children
44
+ frame_win.get_sizer.add(Wx::HBoxSizer.new)
45
+ frame_win.get_sizer.add_spacer(5)
46
+ frame_win.get_sizer.add(Wx::VBoxSizer.new)
47
+
48
+ assert_equal(3, frame_win.sizer.item_count)
49
+ children = frame_win.sizer.get_children
50
+ assert_equal(3, children.size)
51
+ assert_true(children[0].sizer?)
52
+ assert_true(children[1].spacer?)
53
+ assert_true(children[2].sizer?)
54
+ frame_win.sizer.each_child do |si|
55
+ assert_equal(children.shift, si)
56
+ end
57
+ end
58
+
59
+ end
@@ -111,6 +111,34 @@ class TextCtrlTests < WxRuby::Test::GUITests
111
111
  assert_equal('', text.get_value)
112
112
  end
113
113
 
114
+ def test_stream_append
115
+ text << 'This is the number ' << 101 << '.'
116
+ assert_equal('This is the number 101.', text.get_value)
117
+ end
118
+
119
+ def test_enumerate_lines
120
+ text.destroy
121
+ @text = Wx::TextCtrl.new(frame_win, style: Wx::TE_MULTILINE, name: 'Text')
122
+ text << <<~__HEREDOC
123
+ This is line 1.
124
+ This is line 2.
125
+ This is line 3.
126
+ __HEREDOC
127
+ assert_equal(4, text.get_number_of_lines)
128
+ text.each_line.each_with_index do |txt, lnr|
129
+ if lnr < 3
130
+ assert("This is line #{lnr+1}.", txt)
131
+ else
132
+ assert('', txt)
133
+ end
134
+ end
135
+ txt = text.each_line { |l| break l if l.index('2')}
136
+ assert_equal('This is line 2.', txt)
137
+ line_enum = text.each_line
138
+ txt = line_enum.detect { |l| l.index('3') }
139
+ assert_equal('This is line 3.', txt)
140
+ end
141
+
114
142
  if has_ui_simulator?
115
143
  def test_max_length
116
144
  sim = get_ui_simulator
@@ -165,7 +193,7 @@ class ComboBoxTests < WxRuby::Test::GUITests
165
193
  def setup
166
194
  super
167
195
  @combo = Wx::ComboBox.new(frame_win, name: 'ComboBox', choices: %w[One Two Three])
168
- @combo.clear
196
+ @combo.value = '' # don't use #clear as that also clears the choices
169
197
  end
170
198
 
171
199
  def cleanup
@@ -180,6 +208,19 @@ class ComboBoxTests < WxRuby::Test::GUITests
180
208
  assert_equal('', combo.get_value)
181
209
  end
182
210
 
211
+ def test_enumerate
212
+ strings = combo.get_strings
213
+ combo.each_string.each_with_index do |str, ix|
214
+ assert_equal(strings[ix], str)
215
+ end
216
+ combo.each_string { |s| assert_equal(strings.shift, s)}
217
+ str_enum = combo.each_string
218
+ assert_kind_of(::Enumerator, str_enum)
219
+ assert_true(str_enum.any? { |s| s == 'Three'})
220
+ assert_true(combo.each_string.none? { |s| s == 'Four'})
221
+ assert_equal('BREAK', combo.each_string { |_| break 'BREAK' })
222
+ end
223
+
183
224
  end
184
225
 
185
226
  class CheckBoxTests < WxRuby::Test::GUITests
@@ -439,3 +480,39 @@ class GaugeTests < WxRuby::Test::GUITests
439
480
  assert_equal(100, gauge.value)
440
481
  end
441
482
  end
483
+
484
+ class StaticBoxTests < WxRuby::Test::GUITests
485
+
486
+ def setup
487
+ super
488
+ @box = nil
489
+ end
490
+
491
+ def cleanup
492
+ @box.destroy if @box
493
+ super
494
+ end
495
+
496
+ attr_reader :box
497
+
498
+ def test_basic
499
+ @box = Wx::StaticBox.new(frame_win, label: 'Box')
500
+
501
+ txt = Wx::StaticText.new(box, Wx::ID_ANY, "This window is a child of the staticbox")
502
+ assert_equal(box, txt.parent)
503
+ end
504
+
505
+ unless Wx::PLATFORM == 'WXOSX'
506
+
507
+ def test_label_window
508
+ check = Wx::CheckBox.new(frame_win, Wx::ID_ANY, 'Enable')
509
+ @box = Wx::StaticBox.new(frame_win, label: check)
510
+
511
+ button = Wx::Button.new(box, label: 'Button')
512
+ box.enable(false)
513
+ assert_false(button.is_enabled)
514
+ end
515
+
516
+ end
517
+
518
+ end
@@ -0,0 +1,46 @@
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 StyledTextCtrlTests < WxRuby::Test::GUITests
8
+
9
+ def setup
10
+ super
11
+ @text = Wx::STC::StyledTextCtrl.new(frame_win, name: 'StyledText')
12
+ end
13
+
14
+ def cleanup
15
+ @text.destroy
16
+ super
17
+ end
18
+
19
+ attr_reader :text
20
+
21
+ def test_text
22
+ assert_equal('', text.get_value)
23
+ end
24
+
25
+ def test_enumerate_lines
26
+ text.write_text <<~__HEREDOC
27
+ This is line 1.
28
+ This is line 2.
29
+ This is line 3.
30
+ __HEREDOC
31
+ assert_equal(4, text.get_number_of_lines)
32
+ text.each_line.each_with_index do |txt, lnr|
33
+ if lnr < 3
34
+ assert("This is line #{lnr+1}.", txt)
35
+ else
36
+ assert('', txt)
37
+ end
38
+ end
39
+ txt = text.each_line { |l| break l if l.index('2')}
40
+ assert_equal('This is line 2.', txt)
41
+ line_enum = text.each_line
42
+ txt = line_enum.detect { |l| l.index('3') }
43
+ assert_equal('This is line 3.', txt)
44
+ end
45
+
46
+ end