wxruby3 0.9.2-x64-mingw-ucrt → 0.9.3-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 (646) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +35 -29
  3. data/README.md +24 -15
  4. data/ext/wxbase32u_gcc_custom.dll +0 -0
  5. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  6. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  7. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  8. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  9. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  10. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  11. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  12. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  13. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  14. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  18. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  19. data/lib/wx/core/bitmap_combobox.rb +17 -21
  20. data/lib/wx/core/combobox.rb +13 -3
  21. data/lib/wx/core/controlwithitems.rb +40 -130
  22. data/lib/wx/core/enum.rb +17 -1
  23. data/lib/wx/core/event.rb +6 -1
  24. data/lib/wx/core/events/evt_list.rb +5 -4
  25. data/lib/wx/core/evthandler.rb +8 -2
  26. data/lib/wx/core/generic_validator.rb +312 -0
  27. data/lib/wx/core/listbox.rb +2 -2
  28. data/lib/wx/core/log.rb +1 -1
  29. data/lib/wx/core/owner_drawn_combobox.rb +45 -0
  30. data/lib/wx/core/size.rb +4 -0
  31. data/lib/wx/core/sizer.rb +1 -2
  32. data/lib/wx/core/standard_paths.rb +22 -0
  33. data/lib/wx/core/text_entry.rb +4 -1
  34. data/lib/wx/core/validator.rb +70 -5
  35. data/lib/wx/core/window.rb +3 -7
  36. data/lib/wx/doc/art_locator.rb +1 -0
  37. data/lib/wx/doc/comboctrl.rb +18 -0
  38. data/lib/wx/doc/controlwithitems.rb +16 -0
  39. data/lib/wx/doc/date_picker_ctrl.rb +23 -0
  40. data/lib/wx/doc/editable_listbox.rb +44 -0
  41. data/lib/wx/doc/enum.rb +15 -0
  42. data/lib/wx/doc/event.rb +12 -0
  43. data/lib/wx/doc/extra/12_client_data.md +89 -0
  44. data/lib/wx/doc/extra/13_validators.md +139 -0
  45. data/lib/wx/doc/gdi_common.rb +4 -0
  46. data/lib/wx/doc/gen/about_dialog_info.rb +25 -0
  47. data/lib/wx/doc/gen/accelerator.rb +7 -1
  48. data/lib/wx/doc/gen/accessible.rb +13 -0
  49. data/lib/wx/doc/gen/activity_indicator.rb +7 -0
  50. data/lib/wx/doc/gen/animation.rb +12 -0
  51. data/lib/wx/doc/gen/animation_ctrl.rb +10 -0
  52. data/lib/wx/doc/gen/any_button.rb +17 -1
  53. data/lib/wx/doc/gen/app.rb +35 -1
  54. data/lib/wx/doc/gen/app_traits.rb +38 -5
  55. data/lib/wx/doc/gen/art_provider.rb +14 -0
  56. data/lib/wx/doc/gen/aui/aui_dock_art.rb +12 -0
  57. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +1 -0
  58. data/lib/wx/doc/gen/aui/aui_manager.rb +24 -1
  59. data/lib/wx/doc/gen/aui/aui_manager_event.rb +9 -1
  60. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +3 -0
  61. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +2 -0
  62. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +3 -1
  63. data/lib/wx/doc/gen/aui/aui_notebook.rb +20 -2
  64. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +2 -1
  65. data/lib/wx/doc/gen/aui/aui_pane_info.rb +30 -1
  66. data/lib/wx/doc/gen/aui/aui_tab_art.rb +6 -0
  67. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +1 -0
  68. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +11 -0
  69. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +2 -0
  70. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +2 -1
  71. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +4 -0
  72. data/lib/wx/doc/gen/banner_window.rb +7 -0
  73. data/lib/wx/doc/gen/bitmap.rb +64 -3
  74. data/lib/wx/doc/gen/bitmap_button.rb +6 -1
  75. data/lib/wx/doc/gen/bitmap_combo_box.rb +9 -3
  76. data/lib/wx/doc/gen/book_ctrl_base.rb +17 -2
  77. data/lib/wx/doc/gen/book_ctrl_event.rb +3 -1
  78. data/lib/wx/doc/gen/box_sizer.rb +5 -0
  79. data/lib/wx/doc/gen/brush.rb +16 -1
  80. data/lib/wx/doc/gen/busy_info.rb +8 -0
  81. data/lib/wx/doc/gen/button.rb +11 -3
  82. data/lib/wx/doc/gen/calculate_layout_event.rb +4 -0
  83. data/lib/wx/doc/gen/calendar_ctrl.rb +22 -0
  84. data/lib/wx/doc/gen/calendar_date_attr.rb +1 -0
  85. data/lib/wx/doc/gen/calendar_event.rb +3 -1
  86. data/lib/wx/doc/gen/caret.rb +3 -0
  87. data/lib/wx/doc/gen/check_box.rb +10 -0
  88. data/lib/wx/doc/gen/check_list_box.rb +3 -0
  89. data/lib/wx/doc/gen/choice.rb +14 -2
  90. data/lib/wx/doc/gen/choicebook.rb +1 -0
  91. data/lib/wx/doc/gen/client_dc.rb +1 -0
  92. data/lib/wx/doc/gen/clipboard.rb +9 -0
  93. data/lib/wx/doc/gen/collapsible_pane.rb +3 -0
  94. data/lib/wx/doc/gen/collapsible_pane_event.rb +1 -0
  95. data/lib/wx/doc/gen/colour.rb +20 -0
  96. data/lib/wx/doc/gen/colour_dialog.rb +10 -0
  97. data/lib/wx/doc/gen/colour_picker_ctrl.rb +4 -0
  98. data/lib/wx/doc/gen/colour_picker_event.rb +1 -0
  99. data/lib/wx/doc/gen/combo_box.rb +20 -1
  100. data/lib/wx/doc/gen/combo_ctrl.rb +54 -295
  101. data/lib/wx/doc/gen/command_link_button.rb +8 -0
  102. data/lib/wx/doc/gen/context_help_button.rb +7 -1
  103. data/lib/wx/doc/gen/control.rb +12 -0
  104. data/lib/wx/doc/gen/control_with_items.rb +45 -9
  105. data/lib/wx/doc/gen/core.rb +2 -2
  106. data/lib/wx/doc/gen/cursor.rb +4 -0
  107. data/lib/wx/doc/gen/data_format.rb +1 -0
  108. data/lib/wx/doc/gen/data_object.rb +27 -5
  109. data/lib/wx/doc/gen/date_event.rb +2 -1
  110. data/lib/wx/doc/gen/date_picker_ctrl.rb +7 -1
  111. data/lib/wx/doc/gen/dc.rb +87 -3
  112. data/lib/wx/doc/gen/dial_up_event.rb +2 -0
  113. data/lib/wx/doc/gen/dial_up_manager.rb +12 -0
  114. data/lib/wx/doc/gen/dialog.rb +42 -3
  115. data/lib/wx/doc/gen/dir_dialog.rb +6 -1
  116. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +1 -0
  117. data/lib/wx/doc/gen/dir_picker_ctrl.rb +5 -0
  118. data/lib/wx/doc/gen/drag_drop.rb +20 -0
  119. data/lib/wx/doc/gen/drag_image.rb +7 -0
  120. data/lib/wx/doc/gen/editable_list_box.rb +5 -3
  121. data/lib/wx/doc/gen/event.rb +26 -11
  122. data/lib/wx/doc/gen/event_blocker.rb +2 -1
  123. data/lib/wx/doc/gen/event_filter.rb +3 -0
  124. data/lib/wx/doc/gen/event_list.rb +4 -4
  125. data/lib/wx/doc/gen/events.rb +165 -26
  126. data/lib/wx/doc/gen/evt_handler.rb +40 -2
  127. data/lib/wx/doc/gen/ext_help_controller.rb +9 -0
  128. data/lib/wx/doc/gen/file_ctrl.rb +11 -2
  129. data/lib/wx/doc/gen/file_ctrl_event.rb +5 -1
  130. data/lib/wx/doc/gen/file_dialog.rb +13 -0
  131. data/lib/wx/doc/gen/file_dialog_custom_control.rb +12 -0
  132. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +9 -0
  133. data/lib/wx/doc/gen/file_dir_picker_event.rb +2 -1
  134. data/lib/wx/doc/gen/file_picker_ctrl.rb +4 -0
  135. data/lib/wx/doc/gen/file_system.rb +17 -1
  136. data/lib/wx/doc/gen/find_dialog_event.rb +2 -1
  137. data/lib/wx/doc/gen/find_replace_data.rb +1 -0
  138. data/lib/wx/doc/gen/find_replace_dialog.rb +3 -0
  139. data/lib/wx/doc/gen/flex_grid_sizer.rb +13 -0
  140. data/lib/wx/doc/gen/font.rb +75 -3
  141. data/lib/wx/doc/gen/font_data.rb +14 -0
  142. data/lib/wx/doc/gen/font_dialog.rb +6 -0
  143. data/lib/wx/doc/gen/font_picker_ctrl.rb +8 -0
  144. data/lib/wx/doc/gen/font_picker_event.rb +1 -0
  145. data/lib/wx/doc/gen/frame.rb +24 -7
  146. data/lib/wx/doc/gen/fs_file.rb +22 -0
  147. data/lib/wx/doc/gen/gauge.rb +8 -0
  148. data/lib/wx/doc/gen/gb_sizer_item.rb +5 -0
  149. data/lib/wx/doc/gen/gcdc.rb +2 -0
  150. data/lib/wx/doc/gen/gdi_common.rb +50 -0
  151. data/lib/wx/doc/gen/gdi_object.rb +1 -0
  152. data/lib/wx/doc/gen/generic_dir_ctrl.rb +7 -0
  153. data/lib/wx/doc/gen/graphics_context.rb +36 -7
  154. data/lib/wx/doc/gen/graphics_object.rb +24 -0
  155. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +2 -0
  156. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +14 -2
  157. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +1 -0
  158. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +1 -0
  159. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +2 -0
  160. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +1 -0
  161. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +2 -0
  162. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +1 -0
  163. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +1 -0
  164. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +1 -0
  165. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +9 -0
  166. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +1 -0
  167. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +1 -0
  168. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +1 -0
  169. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +2 -0
  170. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +2 -0
  171. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +1 -0
  172. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +6 -0
  173. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +1 -0
  174. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +1 -0
  175. data/lib/wx/doc/gen/grid/grid_ctrl.rb +229 -7
  176. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +4 -1
  177. data/lib/wx/doc/gen/grid/grid_event.rb +4 -1
  178. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +2 -1
  179. data/lib/wx/doc/gen/grid/grid_size_event.rb +2 -1
  180. data/lib/wx/doc/gen/grid/grid_string_table.rb +7 -0
  181. data/lib/wx/doc/gen/grid/grid_table_base.rb +27 -1
  182. data/lib/wx/doc/gen/grid/grid_table_message.rb +1 -0
  183. data/lib/wx/doc/gen/grid_bag_sizer.rb +24 -4
  184. data/lib/wx/doc/gen/grid_sizer.rb +11 -0
  185. data/lib/wx/doc/gen/gui_event_loop.rb +12 -0
  186. data/lib/wx/doc/gen/header_ctrl.rb +106 -0
  187. data/lib/wx/doc/gen/header_ctrl_event.rb +5 -1
  188. data/lib/wx/doc/gen/help_controller.rb +11 -0
  189. data/lib/wx/doc/gen/help_provider.rb +12 -3
  190. data/lib/wx/doc/gen/html/html_cell.rb +25 -0
  191. data/lib/wx/doc/gen/html/html_cell_event.rb +3 -1
  192. data/lib/wx/doc/gen/html/html_easy_printing.rb +13 -1
  193. data/lib/wx/doc/gen/html/html_help_controller.rb +18 -0
  194. data/lib/wx/doc/gen/html/html_help_data.rb +5 -0
  195. data/lib/wx/doc/gen/html/html_help_window.rb +8 -0
  196. data/lib/wx/doc/gen/html/html_link_event.rb +1 -0
  197. data/lib/wx/doc/gen/html/html_list_box.rb +49 -9
  198. data/lib/wx/doc/gen/html/html_printout.rb +7 -0
  199. data/lib/wx/doc/gen/html/html_window.rb +31 -0
  200. data/lib/wx/doc/gen/hyperlink_ctrl.rb +2 -1
  201. data/lib/wx/doc/gen/hyperlink_event.rb +1 -0
  202. data/lib/wx/doc/gen/icon.rb +19 -1
  203. data/lib/wx/doc/gen/icon_location.rb +1 -0
  204. data/lib/wx/doc/gen/image.rb +67 -10
  205. data/lib/wx/doc/gen/image_list.rb +12 -2
  206. data/lib/wx/doc/gen/info_bar.rb +12 -0
  207. data/lib/wx/doc/gen/keyboard_state.rb +11 -0
  208. data/lib/wx/doc/gen/list_box.rb +20 -3
  209. data/lib/wx/doc/gen/list_ctrl.rb +89 -0
  210. data/lib/wx/doc/gen/list_event.rb +11 -1
  211. data/lib/wx/doc/gen/listbook.rb +1 -0
  212. data/lib/wx/doc/gen/locale.rb +22 -0
  213. data/lib/wx/doc/gen/log.rb +42 -0
  214. data/lib/wx/doc/gen/mdi_client_window.rb +4 -1
  215. data/lib/wx/doc/gen/mdi_frame.rb +27 -4
  216. data/lib/wx/doc/gen/media_ctrl.rb +17 -0
  217. data/lib/wx/doc/gen/media_event.rb +2 -1
  218. data/lib/wx/doc/gen/memory_dc.rb +10 -0
  219. data/lib/wx/doc/gen/menu.rb +48 -7
  220. data/lib/wx/doc/gen/menu_bar.rb +32 -13
  221. data/lib/wx/doc/gen/menu_item.rb +26 -0
  222. data/lib/wx/doc/gen/message_dialog.rb +10 -0
  223. data/lib/wx/doc/gen/mini_frame.rb +5 -2
  224. data/lib/wx/doc/gen/mirror_dc.rb +1 -0
  225. data/lib/wx/doc/gen/mouse_state.rb +1 -0
  226. data/lib/wx/doc/gen/multi_choice_dialog.rb +3 -1
  227. data/lib/wx/doc/gen/non_owned_window.rb +3 -0
  228. data/lib/wx/doc/gen/notebook.rb +11 -1
  229. data/lib/wx/doc/gen/num_validator.rb +37 -0
  230. data/lib/wx/doc/gen/number_entry_dialog.rb +4 -0
  231. data/lib/wx/doc/gen/object.rb +3 -0
  232. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +340 -0
  233. data/lib/wx/doc/gen/paint_dc.rb +1 -0
  234. data/lib/wx/doc/gen/palette.rb +5 -0
  235. data/lib/wx/doc/gen/panel.rb +10 -2
  236. data/lib/wx/doc/gen/pen.rb +30 -1
  237. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +2 -1
  238. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +4 -1
  239. data/lib/wx/doc/gen/pg/pg_cell.rb +6 -1
  240. data/lib/wx/doc/gen/pg/pg_editor.rb +61 -15
  241. data/lib/wx/doc/gen/pg/pg_multi_button.rb +2 -0
  242. data/lib/wx/doc/gen/pg/pg_properties.rb +198 -81
  243. data/lib/wx/doc/gen/pg/pg_property.rb +129 -52
  244. data/lib/wx/doc/gen/pg/pg_validation_info.rb +2 -0
  245. data/lib/wx/doc/gen/pg/property_grid.rb +56 -14
  246. data/lib/wx/doc/gen/pg/property_grid_event.rb +16 -6
  247. data/lib/wx/doc/gen/pg/property_grid_interface.rb +98 -37
  248. data/lib/wx/doc/gen/pg/property_grid_manager.rb +29 -7
  249. data/lib/wx/doc/gen/pg/property_grid_page.rb +11 -4
  250. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +7 -2
  251. data/lib/wx/doc/gen/picker_base.rb +11 -1
  252. data/lib/wx/doc/gen/platform_info.rb +31 -0
  253. data/lib/wx/doc/gen/popup_window.rb +5 -0
  254. data/lib/wx/doc/gen/progress_dialog.rb +4 -0
  255. data/lib/wx/doc/gen/property_sheet_dialog.rb +7 -1
  256. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +2 -0
  257. data/lib/wx/doc/gen/prt/post_script_dc.rb +1 -0
  258. data/lib/wx/doc/gen/prt/preview_frame.rb +4 -0
  259. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +1 -0
  260. data/lib/wx/doc/gen/prt/print_data.rb +27 -0
  261. data/lib/wx/doc/gen/prt/print_dialog.rb +4 -0
  262. data/lib/wx/doc/gen/prt/printer.rb +42 -5
  263. data/lib/wx/doc/gen/prt/printer_dc.rb +2 -0
  264. data/lib/wx/doc/gen/query_layout_info_event.rb +9 -0
  265. data/lib/wx/doc/gen/radio_box.rb +19 -0
  266. data/lib/wx/doc/gen/radio_button.rb +9 -0
  267. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +63 -0
  268. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +23 -0
  269. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +2 -1
  270. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +35 -9
  271. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +2 -1
  272. data/lib/wx/doc/gen/rbn/ribbon_control.rb +10 -0
  273. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +17 -7
  274. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +2 -1
  275. data/lib/wx/doc/gen/rbn/ribbon_page.rb +12 -0
  276. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +11 -0
  277. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +2 -1
  278. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +25 -0
  279. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +2 -1
  280. data/lib/wx/doc/gen/rearrange_ctrl.rb +4 -0
  281. data/lib/wx/doc/gen/rearrange_list.rb +9 -0
  282. data/lib/wx/doc/gen/region.rb +42 -13
  283. data/lib/wx/doc/gen/region_iterator.rb +1 -0
  284. data/lib/wx/doc/gen/rtc/rich_text_box.rb +25 -8
  285. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +41 -4
  286. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +1 -0
  287. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +23 -11
  288. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +74 -0
  289. data/lib/wx/doc/gen/rtc/rich_text_event.rb +6 -1
  290. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +8 -0
  291. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +6 -0
  292. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +1 -0
  293. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +4 -0
  294. data/lib/wx/doc/gen/rtc/rich_text_image.rb +7 -0
  295. data/lib/wx/doc/gen/rtc/rich_text_object.rb +64 -4
  296. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +51 -4
  297. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +13 -0
  298. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +9 -4
  299. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +3 -0
  300. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +2 -0
  301. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +1 -0
  302. data/lib/wx/doc/gen/sash_event.rb +5 -1
  303. data/lib/wx/doc/gen/sash_layout_window.rb +10 -0
  304. data/lib/wx/doc/gen/sash_window.rb +3 -0
  305. data/lib/wx/doc/gen/screen_dc.rb +1 -0
  306. data/lib/wx/doc/gen/scroll_bar.rb +11 -2
  307. data/lib/wx/doc/gen/scrolled_canvas.rb +20 -4
  308. data/lib/wx/doc/gen/scrolled_control.rb +20 -4
  309. data/lib/wx/doc/gen/scrolled_window.rb +20 -4
  310. data/lib/wx/doc/gen/search_ctrl.rb +6 -0
  311. data/lib/wx/doc/gen/simplebook.rb +7 -0
  312. data/lib/wx/doc/gen/single_choice_dialog.rb +3 -1
  313. data/lib/wx/doc/gen/sizer.rb +79 -9
  314. data/lib/wx/doc/gen/sizer_item.rb +16 -2
  315. data/lib/wx/doc/gen/slider.rb +23 -0
  316. data/lib/wx/doc/gen/spin_button.rb +9 -0
  317. data/lib/wx/doc/gen/spin_ctrl.rb +11 -0
  318. data/lib/wx/doc/gen/spin_ctrl_double.rb +7 -0
  319. data/lib/wx/doc/gen/spin_double_event.rb +4 -1
  320. data/lib/wx/doc/gen/spin_event.rb +2 -1
  321. data/lib/wx/doc/gen/splash_screen.rb +2 -0
  322. data/lib/wx/doc/gen/splitter_event.rb +10 -1
  323. data/lib/wx/doc/gen/splitter_window.rb +38 -14
  324. data/lib/wx/doc/gen/static_bitmap.rb +99 -2
  325. data/lib/wx/doc/gen/static_box.rb +6 -0
  326. data/lib/wx/doc/gen/static_box_sizer.rb +3 -0
  327. data/lib/wx/doc/gen/static_line.rb +4 -0
  328. data/lib/wx/doc/gen/static_text.rb +5 -0
  329. data/lib/wx/doc/gen/status_bar.rb +17 -3
  330. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +174 -6
  331. data/lib/wx/doc/gen/stc/styled_text_event.rb +27 -1
  332. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +7 -0
  333. data/lib/wx/doc/gen/svg_file_dc.rb +9 -0
  334. data/lib/wx/doc/gen/system_options.rb +8 -0
  335. data/lib/wx/doc/gen/system_settings.rb +7 -0
  336. data/lib/wx/doc/gen/task_bar_button.rb +12 -0
  337. data/lib/wx/doc/gen/task_bar_icon.rb +5 -0
  338. data/lib/wx/doc/gen/task_bar_icon_event.rb +2 -1
  339. data/lib/wx/doc/gen/text_attr.rb +27 -0
  340. data/lib/wx/doc/gen/text_ctrl.rb +27 -3
  341. data/lib/wx/doc/gen/text_entry.rb +43 -5
  342. data/lib/wx/doc/gen/text_entry_dialog.rb +12 -0
  343. data/lib/wx/doc/gen/text_validator.rb +16 -0
  344. data/lib/wx/doc/gen/time_picker_ctrl.rb +6 -0
  345. data/lib/wx/doc/gen/timer.rb +8 -0
  346. data/lib/wx/doc/gen/timer_event.rb +1 -0
  347. data/lib/wx/doc/gen/tip_provider.rb +5 -0
  348. data/lib/wx/doc/gen/toggle_button.rb +68 -0
  349. data/lib/wx/doc/gen/tool_bar.rb +57 -14
  350. data/lib/wx/doc/gen/tool_tip.rb +6 -0
  351. data/lib/wx/doc/gen/toolbook.rb +3 -0
  352. data/lib/wx/doc/gen/top_level_window.rb +34 -3
  353. data/lib/wx/doc/gen/tree_ctrl.rb +49 -0
  354. data/lib/wx/doc/gen/tree_event.rb +7 -1
  355. data/lib/wx/doc/gen/treebook.rb +9 -0
  356. data/lib/wx/doc/gen/ui_action_simulator.rb +4 -0
  357. data/lib/wx/doc/gen/utils.rb +55 -0
  358. data/lib/wx/doc/gen/v_list_box.rb +21 -0
  359. data/lib/wx/doc/gen/v_scrolled_window.rb +15 -0
  360. data/lib/wx/doc/gen/validator.rb +9 -13
  361. data/lib/wx/doc/gen/variant.rb +6 -0
  362. data/lib/wx/doc/gen/window.rb +260 -52
  363. data/lib/wx/doc/gen/window_dc.rb +2 -0
  364. data/lib/wx/doc/gen/window_disabler.rb +1 -0
  365. data/lib/wx/doc/gen/with_images.rb +7 -1
  366. data/lib/wx/doc/gen/wizard.rb +18 -0
  367. data/lib/wx/doc/gen/wizard_event.rb +3 -1
  368. data/lib/wx/doc/gen/wizard_page.rb +5 -0
  369. data/lib/wx/doc/gen/wizard_page_simple.rb +4 -0
  370. data/lib/wx/doc/gen/wrap_sizer.rb +5 -0
  371. data/lib/wx/doc/gen/xml_node.rb +14 -0
  372. data/lib/wx/doc/gen/xml_resource.rb +22 -0
  373. data/lib/wx/doc/generic_validator.rb +95 -0
  374. data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
  375. data/lib/wx/doc/num_validator.rb +387 -0
  376. data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
  377. data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
  378. data/lib/wx/doc/static_bitmap.rb +25 -0
  379. data/lib/wx/doc/text_validator.rb +10 -0
  380. data/lib/wx/doc/validator.rb +113 -0
  381. data/lib/wx/doc/window.rb +30 -0
  382. data/lib/wx/html/events/evt_list.rb +0 -10
  383. data/lib/wx/html/simple_html_listbox.rb +24 -91
  384. data/lib/wx/keyword_defs.rb +34 -2
  385. data/lib/wx/rbn/ribbon_gallery.rb +0 -21
  386. data/lib/wx/version.rb +1 -1
  387. data/lib/wxruby_aui.so +0 -0
  388. data/lib/wxruby_core.so +0 -0
  389. data/lib/wxruby_grid.so +0 -0
  390. data/lib/wxruby_html.so +0 -0
  391. data/lib/wxruby_pg.so +0 -0
  392. data/lib/wxruby_prt.so +0 -0
  393. data/lib/wxruby_rbn.so +0 -0
  394. data/lib/wxruby_rtc.so +0 -0
  395. data/lib/wxruby_stc.so +0 -0
  396. data/rakelib/lib/config/mingw.rb +12 -0
  397. data/samples/aui/aui.rb +1237 -1233
  398. data/samples/calendar/calendar.rb +293 -289
  399. data/samples/controls/get_item_sample.rb +83 -79
  400. data/samples/controls/htlbox.rb +331 -327
  401. data/samples/dialogs/dialogs.rb +682 -694
  402. data/samples/dialogs/wizard.rb +52 -55
  403. data/samples/dragdrop/dragdrop.rb +146 -142
  404. data/samples/drawing/bitmap.rb +29 -26
  405. data/samples/drawing/bitmap_image.rb +84 -80
  406. data/samples/drawing/graphics_drawing.rb +209 -205
  407. data/samples/drawing/image_prt.rb +344 -340
  408. data/samples/drawing/maths_images.rb +18 -1
  409. data/samples/drawing/rmagic_bitmap_image.rb +88 -84
  410. data/samples/etc/caret.rb +306 -0
  411. data/samples/etc/miniframe.rb +65 -60
  412. data/samples/etc/sash.rb +109 -105
  413. data/samples/etc/scrollwin.rb +86 -80
  414. data/samples/etc/system_settings.rb +216 -209
  415. data/samples/event/activation.rb +72 -67
  416. data/samples/event/event.rb +160 -153
  417. data/samples/event/threaded.rb +8 -1
  418. data/samples/event/update_ui_event.rb +67 -60
  419. data/samples/grid/grid.rb +188 -181
  420. data/samples/grid/gridtablebase.rb +136 -129
  421. data/samples/html/html.rb +208 -204
  422. data/samples/mdi/mdi.rb +59 -54
  423. data/samples/minimal/minimal.rb +54 -51
  424. data/samples/minimal/nothing.rb +1 -0
  425. data/samples/printing/printing.rb +367 -377
  426. data/samples/printing/printing2.rb +203 -198
  427. data/samples/propgrid/propgrid.rb +2312 -2308
  428. data/samples/propgrid/propgrid_minimal.rb +57 -50
  429. data/samples/ribbon/ribbon.rb +780 -774
  430. data/samples/sampler/ext.rb +0 -33
  431. data/samples/sampler/sample.rb +4 -9
  432. data/samples/sampler.rb +1 -1
  433. data/samples/splash/splash.rb +118 -116
  434. data/samples/text/rich_textctrl.rb +207 -201
  435. data/samples/text/richtext.rb +1409 -1405
  436. data/samples/text/scintilla.rb +137 -128
  437. data/samples/text/textctrl.rb +89 -83
  438. data/samples/text/unicode.rb +175 -168
  439. data/samples/treectrl/treectrl.rb +1430 -1426
  440. data/samples/widgets/activityindicator.rb +95 -0
  441. data/samples/widgets/art/widgets/activityindicator.xpm +278 -0
  442. data/samples/widgets/art/widgets/bmpbtn.xpm +37 -0
  443. data/samples/widgets/art/widgets/bmpcombobox.xpm +54 -0
  444. data/samples/widgets/art/widgets/button.xpm +54 -0
  445. data/samples/widgets/art/widgets/checkbox.xpm +54 -0
  446. data/samples/{bigdemo/icons → widgets/art/widgets}/choice.xpm +1 -1
  447. data/samples/widgets/art/widgets/choicebk.xpm +54 -0
  448. data/samples/widgets/art/widgets/clrpicker.xpm +193 -0
  449. data/samples/widgets/art/widgets/combobox.xpm +54 -0
  450. data/samples/widgets/art/widgets/datepick.xpm +200 -0
  451. data/samples/widgets/art/widgets/dirctrl.xpm +54 -0
  452. data/samples/widgets/art/widgets/dirpicker.xpm +213 -0
  453. data/samples/widgets/art/widgets/filepicker.xpm +214 -0
  454. data/samples/widgets/art/widgets/fontpicker.xpm +185 -0
  455. data/samples/widgets/art/widgets/gauge.xpm +54 -0
  456. data/samples/widgets/art/widgets/header.xpm +54 -0
  457. data/samples/widgets/art/widgets/hyperlnk.xpm +54 -0
  458. data/samples/widgets/art/widgets/listbook.xpm +54 -0
  459. data/samples/widgets/art/widgets/listbox.xpm +54 -0
  460. data/samples/widgets/art/widgets/native.xpm +81 -0
  461. data/samples/widgets/art/widgets/notebook.xpm +54 -0
  462. data/samples/widgets/art/widgets/odcombobox.xpm +54 -0
  463. data/samples/widgets/art/widgets/radiobox.xpm +54 -0
  464. data/samples/widgets/art/widgets/scrolbar.xpm +54 -0
  465. data/samples/widgets/art/widgets/slider.xpm +54 -0
  466. data/samples/widgets/art/widgets/spinbtn.xpm +40 -0
  467. data/samples/widgets/art/widgets/statbmp.xpm +40 -0
  468. data/samples/widgets/art/widgets/statbox.xpm +54 -0
  469. data/samples/widgets/art/widgets/stattext.xpm +54 -0
  470. data/samples/widgets/art/widgets/text.xpm +54 -0
  471. data/samples/widgets/art/widgets/timepick.xpm +207 -0
  472. data/samples/widgets/art/widgets/toggle.xpm +54 -0
  473. data/samples/widgets/art/widgets/toucan.png +0 -0
  474. data/samples/widgets/bmpcombobox.rb +651 -0
  475. data/samples/widgets/button.rb +462 -0
  476. data/samples/widgets/checkbox.rb +211 -0
  477. data/samples/widgets/choice.rb +287 -0
  478. data/samples/widgets/clrpicker.rb +156 -0
  479. data/samples/widgets/combobox.rb +516 -0
  480. data/samples/widgets/datepick.rb +215 -0
  481. data/samples/widgets/dirctrl.rb +265 -0
  482. data/samples/widgets/dirpicker.rb +158 -0
  483. data/samples/widgets/editlbox.rb +122 -0
  484. data/samples/widgets/filectrl.rb +216 -0
  485. data/samples/widgets/filepicker.rb +214 -0
  486. data/samples/widgets/fontpicker.rb +135 -0
  487. data/samples/widgets/gauge.rb +311 -0
  488. data/samples/widgets/headerctrl.rb +236 -0
  489. data/samples/widgets/hyperlink.rb +203 -0
  490. data/samples/widgets/itemcontainer.rb +185 -0
  491. data/samples/widgets/listbox.rb +473 -0
  492. data/samples/widgets/notebook.rb +488 -0
  493. data/samples/widgets/odcombobox.rb +608 -0
  494. data/samples/widgets/radiobox.rb +328 -0
  495. data/samples/widgets/searchctrl.rb +159 -0
  496. data/samples/widgets/slider.rb +594 -0
  497. data/samples/widgets/spinbtn.rb +443 -0
  498. data/samples/widgets/statbmp.rb +130 -0
  499. data/samples/widgets/static.rb +436 -0
  500. data/samples/widgets/textctrl.rb +700 -0
  501. data/samples/widgets/timepick.rb +148 -0
  502. data/samples/widgets/tn_widgets.png +0 -0
  503. data/samples/widgets/toggle.rb +385 -0
  504. data/samples/widgets/widgets.rb +1233 -0
  505. data/samples/xrc/custom_xrc_sample.rb +47 -41
  506. data/samples/xrc/xrc_sample.rb +53 -47
  507. data/tests/test_event_handling.rb +52 -34
  508. data/tests/test_events.rb +7 -0
  509. data/tests/test_item_data.rb +24 -0
  510. data/tests/test_sizer.rb +44 -1
  511. data/tests/test_validators.rb +805 -0
  512. metadata +87 -137
  513. data/lib/wx/core/choice.rb +0 -14
  514. data/lib/wx/core/combo_ctrl.rb +0 -110
  515. data/samples/bigdemo/About.rbw +0 -39
  516. data/samples/bigdemo/ColorPanel.rbw +0 -23
  517. data/samples/bigdemo/GridSimple.rbw +0 -78
  518. data/samples/bigdemo/MDIDemo.rbw +0 -57
  519. data/samples/bigdemo/PopupMenu.rbw +0 -146
  520. data/samples/bigdemo/ShapedWindow.rbw +0 -128
  521. data/samples/bigdemo/Sizers.rbw +0 -541
  522. data/samples/bigdemo/bigdemo.rb +0 -817
  523. data/samples/bigdemo/demoTemplate.rbw +0 -33
  524. data/samples/bigdemo/helpfile.htb +0 -0
  525. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  526. data/samples/bigdemo/icons/Test 015.png +0 -0
  527. data/samples/bigdemo/icons/choice.bmp +0 -0
  528. data/samples/bigdemo/icons/combo.bmp +0 -0
  529. data/samples/bigdemo/icons/combo.xpm +0 -27
  530. data/samples/bigdemo/icons/copy.xpm +0 -25
  531. data/samples/bigdemo/icons/cut.xpm +0 -24
  532. data/samples/bigdemo/icons/gauge.bmp +0 -0
  533. data/samples/bigdemo/icons/gauge.xpm +0 -27
  534. data/samples/bigdemo/icons/help.xpm +0 -25
  535. data/samples/bigdemo/icons/list.bmp +0 -0
  536. data/samples/bigdemo/icons/list.xpm +0 -27
  537. data/samples/bigdemo/icons/mondrian.ico +0 -0
  538. data/samples/bigdemo/icons/mondrian.xpm +0 -44
  539. data/samples/bigdemo/icons/new.xpm +0 -24
  540. data/samples/bigdemo/icons/ogl.ico +0 -0
  541. data/samples/bigdemo/icons/ogl.xpm +0 -45
  542. data/samples/bigdemo/icons/open.xpm +0 -26
  543. data/samples/bigdemo/icons/paste.bmp +0 -0
  544. data/samples/bigdemo/icons/paste.xpm +0 -38
  545. data/samples/bigdemo/icons/pointy.png +0 -0
  546. data/samples/bigdemo/icons/preview.xpm +0 -26
  547. data/samples/bigdemo/icons/print.xpm +0 -26
  548. data/samples/bigdemo/icons/radio.bmp +0 -0
  549. data/samples/bigdemo/icons/radio.xpm +0 -27
  550. data/samples/bigdemo/icons/robert.xpm +0 -415
  551. data/samples/bigdemo/icons/sashtest.ico +0 -0
  552. data/samples/bigdemo/icons/save.xpm +0 -25
  553. data/samples/bigdemo/icons/smiles.bmp +0 -0
  554. data/samples/bigdemo/icons/smiles.xpm +0 -39
  555. data/samples/bigdemo/icons/smiley.ico +0 -0
  556. data/samples/bigdemo/icons/smiley.xpm +0 -42
  557. data/samples/bigdemo/icons/stattext.xpm +0 -24
  558. data/samples/bigdemo/icons/test2.bmp +0 -0
  559. data/samples/bigdemo/icons/test2.png +0 -0
  560. data/samples/bigdemo/icons/test2.xpm +0 -79
  561. data/samples/bigdemo/icons/text.bmp +0 -0
  562. data/samples/bigdemo/icons/text.xpm +0 -27
  563. data/samples/bigdemo/icons/tog1.bmp +0 -0
  564. data/samples/bigdemo/icons/tog1.xpm +0 -38
  565. data/samples/bigdemo/icons/tog2.bmp +0 -0
  566. data/samples/bigdemo/icons/tog2.xpm +0 -38
  567. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  568. data/samples/bigdemo/icons/wxwin.ico +0 -0
  569. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  570. data/samples/bigdemo/icons/wxwin16x16.xpm +0 -25
  571. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  572. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  573. data/samples/bigdemo/run.rb +0 -98
  574. data/samples/bigdemo/tips.txt +0 -7
  575. data/samples/bigdemo/utils.rb +0 -20
  576. data/samples/bigdemo/wxArtProvider.rbw +0 -282
  577. data/samples/bigdemo/wxBitmapButton.rbw +0 -65
  578. data/samples/bigdemo/wxButton.rbw +0 -64
  579. data/samples/bigdemo/wxCalendarCtrl.rbw +0 -59
  580. data/samples/bigdemo/wxCheckBox.rbw +0 -50
  581. data/samples/bigdemo/wxCheckListBox.rbw +0 -65
  582. data/samples/bigdemo/wxChoice.rbw +0 -47
  583. data/samples/bigdemo/wxChoicebook.rbw +0 -78
  584. data/samples/bigdemo/wxColourDialog.rbw +0 -33
  585. data/samples/bigdemo/wxComboBox.rbw +0 -77
  586. data/samples/bigdemo/wxCursor.rbw +0 -136
  587. data/samples/bigdemo/wxDialog.rbw +0 -74
  588. data/samples/bigdemo/wxDirDialog.rbw +0 -29
  589. data/samples/bigdemo/wxDragImage.rbw +0 -70
  590. data/samples/bigdemo/wxFileDialog.rbw +0 -37
  591. data/samples/bigdemo/wxFileDialog_Save.rbw +0 -35
  592. data/samples/bigdemo/wxFindReplaceDialog.rbw +0 -82
  593. data/samples/bigdemo/wxFontDialog.rbw +0 -200
  594. data/samples/bigdemo/wxFrame.rbw +0 -53
  595. data/samples/bigdemo/wxGauge.rbw +0 -65
  596. data/samples/bigdemo/wxGenericDirCtrl.rbw +0 -74
  597. data/samples/bigdemo/wxGrid.rbw +0 -66
  598. data/samples/bigdemo/wxHtmlHelpController.rbw +0 -52
  599. data/samples/bigdemo/wxListBox.rbw +0 -140
  600. data/samples/bigdemo/wxListCtrl_virtual.rbw +0 -112
  601. data/samples/bigdemo/wxMDIWindows.rbw +0 -50
  602. data/samples/bigdemo/wxMenu.rbw +0 -247
  603. data/samples/bigdemo/wxMessageDialog.rbw +0 -27
  604. data/samples/bigdemo/wxMiniFrame.rbw +0 -70
  605. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +0 -29
  606. data/samples/bigdemo/wxNotebook.rbw +0 -136
  607. data/samples/bigdemo/wxProgressDialog.rbw +0 -43
  608. data/samples/bigdemo/wxRadioBox.rbw +0 -72
  609. data/samples/bigdemo/wxRadioButton.rbw +0 -125
  610. data/samples/bigdemo/wxSashWindow.rbw +0 -141
  611. data/samples/bigdemo/wxScrolledMessageDialog.rbw +0 -57
  612. data/samples/bigdemo/wxScrolledWindow.rbw +0 -199
  613. data/samples/bigdemo/wxSingleChoiceDialog.rbw +0 -33
  614. data/samples/bigdemo/wxSlider.rbw +0 -42
  615. data/samples/bigdemo/wxSpinButton.rbw +0 -50
  616. data/samples/bigdemo/wxSpinCtrl.rbw +0 -51
  617. data/samples/bigdemo/wxSplitterWindow.rbw +0 -63
  618. data/samples/bigdemo/wxStaticBitmap.rbw +0 -47
  619. data/samples/bigdemo/wxStaticText.rbw +0 -55
  620. data/samples/bigdemo/wxStatusBar.rbw +0 -126
  621. data/samples/bigdemo/wxTextCtrl.rbw +0 -149
  622. data/samples/bigdemo/wxTextEntryDialog.rbw +0 -31
  623. data/samples/bigdemo/wxToggleButton.rbw +0 -49
  624. data/samples/bigdemo/wxToolBar.rbw +0 -131
  625. data/samples/bigdemo/wxTreeCtrl.rbw +0 -191
  626. data/samples/caret/caret.rb +0 -298
  627. data/samples/caret/mondrian.xpm +0 -44
  628. data/samples/controls/books.rb +0 -189
  629. data/samples/controls/choice.xpm +0 -27
  630. data/samples/controls/combo.xpm +0 -27
  631. data/samples/controls/controls.rb +0 -1099
  632. data/samples/controls/gauge.xpm +0 -27
  633. data/samples/controls/list.xpm +0 -27
  634. data/samples/controls/mondrian.ico +0 -0
  635. data/samples/controls/mondrian.xpm +0 -44
  636. data/samples/controls/radio.xpm +0 -27
  637. data/samples/controls/stattext.xpm +0 -24
  638. data/samples/controls/test2.bmp +0 -0
  639. data/samples/controls/text.xpm +0 -27
  640. data/samples/controls/tn_books.png +0 -0
  641. data/samples/controls/tn_controls.png +0 -0
  642. data/samples/etc/choice.rb +0 -87
  643. data/samples/etc/tn_choice.png +0 -0
  644. data/samples/text/mondrian.ico +0 -0
  645. data/samples/text/mondrian.xpm +0 -44
  646. /data/samples/{caret → etc}/tn_caret.png +0 -0
@@ -0,0 +1,311 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+ #
5
+ # Adapted for wxRuby from wxWidgets widgets sample
6
+ # Copyright (c) 2001 Vadim Zeitlin
7
+
8
+ module Widgets
9
+
10
+ module Gauge
11
+
12
+ class GaugePage < Widgets::Page
13
+
14
+ module ID
15
+ include Wx::IDHelper
16
+
17
+ Reset = self.next_id(Widgets::Frame::ID::Last)
18
+ Progress = self.next_id
19
+ IndeterminateProgress = self.next_id
20
+ Clear = self.next_id
21
+ SetValue = self.next_id
22
+ SetRange = self.next_id
23
+ CurValueText = self.next_id
24
+ ValueText = self.next_id
25
+ RangeText = self.next_id
26
+ Timer = self.next_id
27
+ IndeterminateTimer = self.next_id
28
+ Gauge = self.next_id
29
+ end
30
+
31
+ def initialize(book, images)
32
+ super(book, images, :gauge)
33
+
34
+ # init everything
35
+ @range = 100
36
+
37
+ @timer = nil
38
+
39
+ @chkVert =
40
+ @chkSmooth =
41
+ @chkProgress = nil
42
+
43
+ @gauge = nil
44
+ @sizerGauge = nil
45
+ end
46
+
47
+ Info = Widgets::PageInfo.new(self, 'Gauge', Widgets::NATIVE_CTRLS)
48
+
49
+ def get_widget
50
+ @gauge
51
+ end
52
+ def recreate_widget
53
+ create_gauge
54
+ end
55
+
56
+ # lazy creation of the content
57
+ def create_content
58
+ sizerTop = Wx::HBoxSizer.new
59
+
60
+ # left pane
61
+ sizerLeft = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Set style')
62
+ sizerLeftBox = sizerLeft.get_static_box
63
+
64
+ @chkVert = create_check_box_and_add_to_sizer(sizerLeft, '&Vertical', Wx::ID_ANY, sizerLeftBox)
65
+ @chkSmooth = create_check_box_and_add_to_sizer(sizerLeft, '&Smooth', Wx::ID_ANY, sizerLeftBox)
66
+ @chkProgress = create_check_box_and_add_to_sizer(sizerLeft, '&Progress', Wx::ID_ANY, sizerLeftBox)
67
+
68
+ sizerLeft.add(5, 5, 0, Wx::GROW | Wx::ALL, 5) # spacer
69
+
70
+ btn = Wx::Button.new(sizerLeftBox, ID::Reset, '&Reset')
71
+ sizerLeft.add(btn, 0, Wx::ALIGN_CENTRE_HORIZONTAL | Wx::ALL, 15)
72
+
73
+ # middle pane
74
+ sizerMiddle = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Change gauge value')
75
+ sizerMiddleBox = sizerMiddle.get_static_box
76
+
77
+ sizerRow, text = create_sizer_with_text_and_label("Current value",
78
+ ID::CurValueText,
79
+ sizerMiddleBox)
80
+ text.set_editable(false)
81
+
82
+ sizerMiddle.add(sizerRow, 0, Wx::ALL | Wx::GROW, 5)
83
+
84
+ sizerRow, @textValue = create_sizer_with_text_and_button(ID::SetValue,
85
+ 'Set &value',
86
+ ID::ValueText,
87
+ sizerMiddleBox)
88
+ sizerMiddle.add(sizerRow, 0, Wx::ALL | Wx::GROW, 5)
89
+
90
+ sizerRow, @textRange = create_sizer_with_text_and_button(ID::SetRange,
91
+ 'Set &range',
92
+ ID::RangeText,
93
+ sizerMiddleBox)
94
+ @textRange.set_value(@range.to_s)
95
+ sizerMiddle.add(sizerRow, 0, Wx::ALL | Wx::GROW, 5)
96
+
97
+ btn = Wx::Button.new(sizerMiddleBox, ID::Progress, 'Simulate &progress')
98
+ sizerMiddle.add(btn, 0, Wx::ALL | Wx::GROW, 5)
99
+
100
+ btn = Wx::Button.new(sizerMiddleBox, ID::IndeterminateProgress,
101
+ 'Simulate &indeterminate job')
102
+ sizerMiddle.add(btn, 0, Wx::ALL | Wx::GROW, 5)
103
+
104
+ btn = Wx::Button.new(sizerMiddleBox, ID::Clear, '&Clear')
105
+ sizerMiddle.add(btn, 0, Wx::ALL | Wx::GROW, 5)
106
+
107
+ # right pane
108
+ sizerRight = Wx::HBoxSizer.new
109
+ @gauge = Wx::Gauge.new(self, ID::Gauge, @range)
110
+ sizerRight.add(@gauge, 1, Wx::CENTRE | Wx::ALL, 5)
111
+ sizerRight.set_min_size(150, 0)
112
+ @sizerGauge = sizerRight # save it to modify it later
113
+
114
+ # the 3 panes panes compose the window
115
+ sizerTop.add(sizerLeft, 0, Wx::GROW | (Wx::ALL & ~Wx::LEFT), 10)
116
+ sizerTop.add(sizerMiddle, 1, Wx::GROW | Wx::ALL, 10)
117
+ sizerTop.add(sizerRight, 1, Wx::GROW | (Wx::ALL & ~Wx::RIGHT), 10)
118
+
119
+ # final initializations
120
+ reset
121
+
122
+ set_sizer(sizerTop)
123
+
124
+ # connect event handlers
125
+ evt_button(ID::Reset, :on_button_reset)
126
+ evt_button(ID::Progress, :on_button_progress)
127
+ evt_button(ID::IndeterminateProgress, :on_button_indeterminate_progress)
128
+ evt_button(ID::Clear, :on_button_clear)
129
+ evt_button(ID::SetValue, :on_button_set_value)
130
+ evt_button(ID::SetRange, :on_button_set_range)
131
+
132
+ evt_update_ui(ID::SetValue, :on_update_ui_value_button)
133
+ evt_update_ui(ID::SetRange, :on_update_ui_range_button)
134
+ evt_update_ui(ID::Reset, :on_update_ui_reset_button)
135
+
136
+ evt_update_ui(ID::CurValueText, :on_update_ui_cur_value_text)
137
+
138
+ evt_checkbox(Wx::ID_ANY, :on_check_or_radio_box)
139
+ evt_radiobox(Wx::ID_ANY, :on_check_or_radio_box)
140
+
141
+ evt_timer(ID::Timer, :on_progress_timer)
142
+ evt_timer(ID::IndeterminateTimer, :on_indeterminate_progress_timer)
143
+ end
144
+
145
+ protected
146
+
147
+ # event handlers
148
+ def on_button_reset(_event)
149
+ reset
150
+
151
+ create_gauge
152
+ end
153
+
154
+ def on_button_progress(event)
155
+ b = event.event_object
156
+ if !@timer
157
+ start_timer(b)
158
+ else # stop the running timer
159
+ stop_timer(b)
160
+ Wx.log_message('Stopped the timer.')
161
+ end
162
+ end
163
+
164
+ def on_button_indeterminate_progress(event)
165
+ b = event.event_object
166
+ if !@timer
167
+ start_timer(b)
168
+ else # stop the running timer
169
+ stop_timer(b)
170
+ @gauge.value = 0
171
+ Wx.log_message('Stopped the timer.')
172
+ end
173
+ end
174
+
175
+ def on_button_clear(_event)
176
+ @gauge.value = 0
177
+ end
178
+
179
+ def on_button_set_value(_event)
180
+ val = Integer(@textValue.value) rescue return
181
+
182
+ @gauge.set_value(val)
183
+ end
184
+
185
+ def on_button_set_range(_event)
186
+ val = Integer(@textRange.value) rescue return
187
+
188
+ @range = val
189
+ @gauge.set_range(val)
190
+ end
191
+
192
+ def on_check_or_radio_box(_event)
193
+ create_gauge
194
+ end
195
+
196
+ def on_update_ui_value_button(event)
197
+ val = Integer(@textValue.value) rescue -1
198
+ event.enable(val >= 0 && val <= @range)
199
+ end
200
+
201
+ def on_update_ui_range_button(event)
202
+ val = Integer(@textRange.value) rescue -1
203
+ event.enable(val >= 0)
204
+ end
205
+
206
+ def on_update_ui_reset_button(event)
207
+ event.enable(@chkVert.value || @chkSmooth.value || @chkProgress.value)
208
+ end
209
+
210
+ def on_update_ui_cur_value_text(event)
211
+ event.set_text(@gauge.value.to_s)
212
+ end
213
+
214
+ def on_progress_timer(_event)
215
+ val = @gauge.value
216
+ if val < @range
217
+ @gauge.set_value(val + 1)
218
+ else # reached the end
219
+ btn = find_window_by_id(ID::Progress)
220
+
221
+ ::Kernel.raise RuntimeError, 'no progress button?' unless btn
222
+
223
+ stop_timer(btn)
224
+ end
225
+ end
226
+
227
+ def on_indeterminate_progress_timer(_event)
228
+ @gauge.pulse
229
+ end
230
+
231
+ # reset the gauge parameters
232
+ def reset
233
+ @chkVert.set_value(false)
234
+ @chkSmooth.set_value(false)
235
+ @chkProgress.set_value(false)
236
+ end
237
+
238
+ # (re)create the gauge
239
+ def create_gauge
240
+ flags = get_attrs.default_flags
241
+
242
+ if @chkVert.value
243
+ flags |= Wx::GA_VERTICAL
244
+ else
245
+ flags |= Wx::GA_HORIZONTAL
246
+ end
247
+ flags |= Wx::GA_SMOOTH if @chkSmooth.value
248
+ flags |= Wx::GA_PROGRESS if @chkProgress.value
249
+
250
+
251
+ val = 0
252
+ if @gauge
253
+ val = @gauge.value
254
+
255
+ @sizerGauge.detach(@gauge)
256
+ @gauge.destroy
257
+ end
258
+
259
+ @gauge = Wx::Gauge.new(self, ID::Gauge, @range,
260
+ style: flags)
261
+ @gauge.set_value(val)
262
+
263
+ if flags.allbits?(Wx::GA_VERTICAL)
264
+ @sizerGauge.add(@gauge, 0, Wx::GROW | Wx::ALL, 5)
265
+ else
266
+ @sizerGauge.add(@gauge, 1, Wx::CENTRE | Wx::ALL, 5)
267
+ end
268
+ @sizerGauge.layout
269
+ end
270
+
271
+ INTERVAL = 300
272
+
273
+ # start progress timer
274
+ def start_timer(clicked)
275
+ Wx.log_message("Launched progress timer (interval = #{INTERVAL} ms)")
276
+
277
+ @timer = Wx::Timer.new(self, clicked.id == ID::Progress ? ID::Timer : ID::IndeterminateTimer)
278
+ @timer.start(INTERVAL)
279
+
280
+ clicked.set_label("&Stop timer")
281
+
282
+ if clicked.id == ID::Progress
283
+ find_window_by_id(ID::IndeterminateProgress).disable
284
+ else
285
+ find_window_by_id(ID::Progress).disable
286
+ end
287
+ end
288
+
289
+ # stop the progress timer
290
+ def stop_timer(clicked)
291
+ ::Kernel.raise RuntimeError, 'should not be called' unless @timer
292
+
293
+ @timer.stop
294
+ @timer = nil
295
+
296
+ if clicked.id == ID::Progress
297
+ clicked.set_label('Simulate &progress')
298
+ find_window_by_id(ID::IndeterminateProgress).enable
299
+ else
300
+ clicked.set_label("Simulate indeterminate job")
301
+ find_window_by_id(ID::Progress).enable
302
+ end
303
+
304
+ Wx.log_message('Progress finished.')
305
+ end
306
+
307
+ end
308
+
309
+ end
310
+
311
+ end
@@ -0,0 +1,236 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+ #
5
+ # Adapted for wxRuby from wxWidgets widgets sample
6
+ # Copyright (c) 2001 Vadim Zeitlin
7
+
8
+ module Widgets
9
+
10
+ module HeaderCtrl
11
+
12
+ class HeaderCtrlPage < Widgets::Page
13
+
14
+ NUMBER_OF_COLUMNS = 4
15
+
16
+ COL_ALIGNMENTS = %w{none left centre right}
17
+ COL_ALIGN_FLAGS = [Wx::ALIGN_NOT, Wx::ALIGN_LEFT, Wx::ALIGN_CENTRE, Wx::ALIGN_RIGHT]
18
+ COL_WITH_BITMAP_DEFAULT = false
19
+ COL_ALIGNMENT_FLAG_DEFAULT = Wx::ALIGN_NOT
20
+ COL_ALIGNMENT_INDEX_DEFAULT = 0
21
+
22
+ ColSettings = Struct.new(:chkAllowResize,
23
+ :chkAllowReorder,
24
+ :chkAllowSort,
25
+ :chkAllowHide,
26
+ :chkWithBitmap,
27
+ :rbAlignments)
28
+
29
+ def initialize(book, images)
30
+ super(book, images, :header)
31
+
32
+ @header = nil
33
+ @sizerHeader = nil
34
+ end
35
+
36
+ Info = Widgets::PageInfo.new(self, 'Header',
37
+ if Wx::PLATFORM == 'WXMSW'
38
+ NATIVE_CTRLS
39
+ else
40
+ GENERIC_CTRLS
41
+ end)
42
+
43
+ def get_widget
44
+ @header
45
+ end
46
+
47
+ def recreate_widget
48
+ @sizerHeader.clear(true) # delete windows
49
+
50
+ flags = get_attrs.default_flags | get_header_style_flags
51
+
52
+ @header = Wx::HeaderCtrlSimple.new(@sizerHeader.get_static_box, Wx::ID_ANY,
53
+ style: flags)
54
+
55
+ @header.evt_header_resizing(Wx::ID_ANY, self.method(:on_resizing))
56
+ @header.evt_header_begin_resize(Wx::ID_ANY, self.method(:on_begin_resize))
57
+ @header.evt_header_end_resize(Wx::ID_ANY, self.method(:on_end_resize))
58
+
59
+ @colSettings.each_with_index do |cs, i|
60
+ col = Wx::HeaderColumnSimple.new("Column #{i + 1}",
61
+ from_dip(100),
62
+ get_column_alignment_flag(i),
63
+ get_column_style_flags(i))
64
+ if cs.chkWithBitmap.is_checked
65
+ icons = [ Wx::ART_ERROR, Wx::ART_QUESTION, Wx::ART_WARNING, Wx::ART_INFORMATION ]
66
+ col.set_bitmap(Wx::ArtProvider.get_bitmap_bundle(icons[i % icons.size], Wx::ART_BUTTON))
67
+ end
68
+ @header.append_column(col)
69
+ end
70
+
71
+ @sizerHeader.add_stretch_spacer
72
+ @sizerHeader.add(@header, Wx::SizerFlags.new.expand)
73
+ @sizerHeader.add_stretch_spacer
74
+ @sizerHeader.layout
75
+ end
76
+
77
+ # lazy creation of the content
78
+ def create_content
79
+ # top pane
80
+ sizerTop = Wx::HBoxSizer.new
81
+
82
+ # header style
83
+ styleSizer = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Header style')
84
+ styleSizerBox = styleSizer.get_static_box
85
+
86
+ @chkAllowReorder = create_check_box_and_add_to_sizer(styleSizer, 'Allow &reorder', Wx::ID_ANY, styleSizerBox)
87
+ @chkAllowHide = create_check_box_and_add_to_sizer(styleSizer, 'Allow &hide', Wx::ID_ANY, styleSizerBox)
88
+ @chkBitmapOnRight = create_check_box_and_add_to_sizer(styleSizer, '&Bitmap on right', Wx::ID_ANY, styleSizerBox)
89
+ reset_header_style
90
+
91
+ styleSizer.add_stretch_spacer
92
+ btnReset = Wx::Button.new(styleSizerBox, Wx::ID_ANY, '&Reset')
93
+ styleSizer.add(btnReset, Wx::SizerFlags.new.center_horizontal.border)
94
+ sizerTop.add(styleSizer, Wx::SizerFlags.new.expand)
95
+
96
+ # column flags
97
+ @colSettings = []
98
+ NUMBER_OF_COLUMNS.times do |i|
99
+ sizerCol = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, "Column #{i+1} style")
100
+ sizerColBox = sizerCol.get_static_box
101
+
102
+ @colSettings << ColSettings.new(create_check_box_and_add_to_sizer(sizerCol, 'Allow resize', Wx::ID_ANY, sizerColBox),
103
+ create_check_box_and_add_to_sizer(sizerCol, 'Allow reorder', Wx::ID_ANY, sizerColBox),
104
+ create_check_box_and_add_to_sizer(sizerCol, 'Allow sort', Wx::ID_ANY, sizerColBox),
105
+ create_check_box_and_add_to_sizer(sizerCol, 'Hidden', Wx::ID_ANY, sizerColBox),
106
+ create_check_box_and_add_to_sizer(sizerCol, 'With bitmap', Wx::ID_ANY, sizerColBox),
107
+ Wx::RadioBox.new(sizerColBox, Wx::ID_ANY, 'Alignment',
108
+ choices: COL_ALIGNMENTS,
109
+ major_dimension: 2,
110
+ style: Wx::RA_SPECIFY_COLS))
111
+ sizerCol.add(@colSettings.last.rbAlignments, Wx::SizerFlags.new.expand.border)
112
+ reset_column_style(i)
113
+ sizerTop.add_spacer(15)
114
+ sizerTop.add(sizerCol, Wx::SizerFlags.new.expand)
115
+ end
116
+
117
+ # bottom pane
118
+ @sizerHeader = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, 'Header')
119
+ recreate_widget
120
+
121
+ # the 2 panes compose the window
122
+ sizerAll = Wx::VBoxSizer.new
123
+ sizerAll.add(sizerTop, Wx::SizerFlags.new.expand.border)
124
+ sizerAll.add(@sizerHeader, Wx::SizerFlags.new(1).expand.border)
125
+
126
+ set_sizer(sizerAll)
127
+
128
+ # connect event handlers
129
+ @chkAllowReorder.evt_checkbox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
130
+ @chkAllowHide.evt_checkbox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
131
+ @chkBitmapOnRight.evt_checkbox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
132
+ @colSettings.each do |cs|
133
+ cs.chkAllowResize.evt_checkbox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
134
+ cs.chkAllowReorder.evt_checkbox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
135
+ cs.chkAllowSort.evt_checkbox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
136
+ cs.chkAllowHide.evt_checkbox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
137
+ cs.chkWithBitmap.evt_checkbox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
138
+ cs.rbAlignments.evt_radiobox(Wx::ID_ANY, self.method(:on_style_check_or_radio_box))
139
+ end
140
+ btnReset.evt_button(btnReset, self.method(:on_reset_button))
141
+ btnReset.evt_update_ui(btnReset, self.method(:on_update_ui_reset_button))
142
+ end
143
+
144
+ protected
145
+
146
+ # event handlers
147
+ def on_style_check_or_radio_box(_event)
148
+ recreate_widget
149
+ end
150
+
151
+ def on_reset_button(_event)
152
+ reset_header_style
153
+
154
+ @colSettings.size.times { |i| reset_column_style(i) }
155
+
156
+ recreate_widget
157
+ end
158
+
159
+ def on_update_ui_reset_button(event)
160
+ enable = get_header_style_flags != Wx::HD_DEFAULT_STYLE
161
+ @colSettings.each_with_index do |cs, i|
162
+ enable = enable ||
163
+ (get_column_style_flags(i) != Wx::COL_DEFAULT_FLAGS) ||
164
+ (cs.chkWithBitmap.is_checked != COL_WITH_BITMAP_DEFAULT) ||
165
+ (cs.rbAlignments.selection != COL_ALIGNMENT_INDEX_DEFAULT)
166
+ break if enable
167
+ end
168
+ event.enable(enable)
169
+ end
170
+
171
+ def on_resizing(event)
172
+ Wx.log_message('Column %i resizing, width = %i', event.column + 1, event.width)
173
+ event.skip
174
+ end
175
+
176
+ def on_begin_resize(event)
177
+ Wx.log_message('Column %i resize began, width = %i', event.column + 1, event.width)
178
+ event.skip
179
+ end
180
+
181
+ def on_end_resize(event)
182
+ Wx.log_message('Column %i resize ended, width = %i', event.column + 1, event.width)
183
+ event.skip
184
+ end
185
+
186
+ # reset the header style
187
+ def reset_header_style
188
+ @chkAllowReorder.set_value(Wx::HD_DEFAULT_STYLE.allbits?(Wx::HD_ALLOW_REORDER))
189
+ @chkAllowHide.set_value(Wx::HD_DEFAULT_STYLE.allbits?(Wx::HD_ALLOW_HIDE))
190
+ @chkBitmapOnRight.set_value(Wx::HD_DEFAULT_STYLE.allbits?(Wx::HD_BITMAP_ON_RIGHT))
191
+ end
192
+
193
+ # compose header style flags based on selections
194
+ def get_header_style_flags
195
+ flags = 0
196
+
197
+ flags |= Wx::HD_ALLOW_REORDER if @chkAllowReorder.is_checked
198
+ flags |= Wx::HD_ALLOW_HIDE if @chkAllowHide.is_checked
199
+ flags |= Wx::HD_BITMAP_ON_RIGHT if @chkBitmapOnRight.is_checked
200
+
201
+ flags
202
+ end
203
+
204
+ # reset column style
205
+ def reset_column_style(col)
206
+ @colSettings[col].chkAllowResize.set_value(Wx::COL_DEFAULT_FLAGS.allbits?(Wx::COL_RESIZABLE))
207
+ @colSettings[col].chkAllowReorder.set_value(Wx::COL_DEFAULT_FLAGS.allbits?(Wx::COL_REORDERABLE))
208
+ @colSettings[col].chkAllowSort.set_value(Wx::COL_DEFAULT_FLAGS.allbits?(Wx::COL_SORTABLE))
209
+ @colSettings[col].chkAllowHide.set_value(Wx::COL_DEFAULT_FLAGS.allbits?(Wx::COL_HIDDEN))
210
+ @colSettings[col].chkWithBitmap.set_value(COL_WITH_BITMAP_DEFAULT)
211
+ @colSettings[col].rbAlignments.set_selection(COL_ALIGNMENT_INDEX_DEFAULT)
212
+ end
213
+
214
+ # compose column style flags based on selections
215
+ def get_column_style_flags(col)
216
+ flags = 0
217
+
218
+ flags |= Wx::COL_RESIZABLE if @colSettings[col].chkAllowResize.is_checked
219
+ flags |= Wx::COL_REORDERABLE if @colSettings[col].chkAllowReorder.is_checked
220
+ flags |= Wx::COL_SORTABLE if @colSettings[col].chkAllowSort.is_checked
221
+ flags |= Wx::COL_HIDDEN if @colSettings[col].chkAllowHide.is_checked
222
+
223
+ flags
224
+ end
225
+
226
+ # get column alignment flags based on selection
227
+ def get_column_alignment_flag(col)
228
+ sel = @colSettings[col].rbAlignments.selection
229
+ sel == Wx::NOT_FOUND ? COL_ALIGNMENT_FLAG_DEFAULT : COL_ALIGN_FLAGS[sel]
230
+ end
231
+
232
+ end
233
+
234
+ end
235
+
236
+ end