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

Sign up to get free protection for your applications and to get access to all the features.
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