wxruby3 0.9.2-x64-mingw-ucrt → 0.9.4-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 (668) 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/book_ctrl_base.rb +16 -0
  21. data/lib/wx/core/combobox.rb +13 -3
  22. data/lib/wx/core/config.rb +454 -83
  23. data/lib/wx/core/controlwithitems.rb +40 -130
  24. data/lib/wx/core/enum.rb +17 -1
  25. data/lib/wx/core/event.rb +6 -1
  26. data/lib/wx/core/events/evt_list.rb +5 -4
  27. data/lib/wx/core/evthandler.rb +8 -2
  28. data/lib/wx/core/generic_validator.rb +312 -0
  29. data/lib/wx/core/listbox.rb +2 -2
  30. data/lib/wx/core/log.rb +1 -1
  31. data/lib/wx/core/notebook.rb +10 -8
  32. data/lib/wx/core/owner_drawn_combobox.rb +45 -0
  33. data/lib/wx/core/peristent_object.rb +15 -0
  34. data/lib/wx/core/persistence_manager.rb +39 -0
  35. data/lib/wx/core/persistent_window.rb +16 -0
  36. data/lib/wx/core/size.rb +4 -0
  37. data/lib/wx/core/sizer.rb +1 -2
  38. data/lib/wx/core/standard_paths.rb +22 -0
  39. data/lib/wx/core/text_entry.rb +4 -1
  40. data/lib/wx/core/top_level_window.rb +16 -0
  41. data/lib/wx/core/treebook.rb +18 -0
  42. data/lib/wx/core/validator.rb +70 -5
  43. data/lib/wx/core/window.rb +3 -7
  44. data/lib/wx/core.rb +4 -0
  45. data/lib/wx/doc/art_locator.rb +1 -0
  46. data/lib/wx/doc/book_ctrl_base.rb +19 -0
  47. data/lib/wx/doc/comboctrl.rb +18 -0
  48. data/lib/wx/doc/config.rb +101 -41
  49. data/lib/wx/doc/controlwithitems.rb +16 -0
  50. data/lib/wx/doc/date_picker_ctrl.rb +23 -0
  51. data/lib/wx/doc/editable_listbox.rb +44 -0
  52. data/lib/wx/doc/enum.rb +15 -0
  53. data/lib/wx/doc/event.rb +12 -0
  54. data/lib/wx/doc/extra/12_client_data.md +89 -0
  55. data/lib/wx/doc/extra/13_validators.md +139 -0
  56. data/lib/wx/doc/extra/14_config.md +101 -0
  57. data/lib/wx/doc/extra/15_persistence.md +148 -0
  58. data/lib/wx/doc/gdi_common.rb +4 -0
  59. data/lib/wx/doc/gen/about_dialog_info.rb +25 -0
  60. data/lib/wx/doc/gen/accelerator.rb +7 -1
  61. data/lib/wx/doc/gen/accessible.rb +13 -0
  62. data/lib/wx/doc/gen/activity_indicator.rb +7 -0
  63. data/lib/wx/doc/gen/animation.rb +12 -0
  64. data/lib/wx/doc/gen/animation_ctrl.rb +10 -0
  65. data/lib/wx/doc/gen/any_button.rb +17 -1
  66. data/lib/wx/doc/gen/app.rb +35 -1
  67. data/lib/wx/doc/gen/app_traits.rb +38 -5
  68. data/lib/wx/doc/gen/art_provider.rb +14 -0
  69. data/lib/wx/doc/gen/aui/aui_dock_art.rb +12 -0
  70. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +1 -0
  71. data/lib/wx/doc/gen/aui/aui_manager.rb +24 -1
  72. data/lib/wx/doc/gen/aui/aui_manager_event.rb +9 -1
  73. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +3 -0
  74. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +2 -0
  75. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +3 -1
  76. data/lib/wx/doc/gen/aui/aui_notebook.rb +20 -2
  77. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +2 -1
  78. data/lib/wx/doc/gen/aui/aui_pane_info.rb +30 -1
  79. data/lib/wx/doc/gen/aui/aui_tab_art.rb +6 -0
  80. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +1 -0
  81. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +11 -0
  82. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +2 -0
  83. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +2 -1
  84. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +4 -0
  85. data/lib/wx/doc/gen/banner_window.rb +7 -0
  86. data/lib/wx/doc/gen/bitmap.rb +64 -3
  87. data/lib/wx/doc/gen/bitmap_button.rb +6 -1
  88. data/lib/wx/doc/gen/bitmap_combo_box.rb +9 -3
  89. data/lib/wx/doc/gen/book_ctrl_base.rb +17 -2
  90. data/lib/wx/doc/gen/book_ctrl_event.rb +3 -1
  91. data/lib/wx/doc/gen/box_sizer.rb +5 -0
  92. data/lib/wx/doc/gen/brush.rb +16 -1
  93. data/lib/wx/doc/gen/busy_info.rb +8 -0
  94. data/lib/wx/doc/gen/button.rb +11 -3
  95. data/lib/wx/doc/gen/calculate_layout_event.rb +4 -0
  96. data/lib/wx/doc/gen/calendar_ctrl.rb +22 -0
  97. data/lib/wx/doc/gen/calendar_date_attr.rb +1 -0
  98. data/lib/wx/doc/gen/calendar_event.rb +3 -1
  99. data/lib/wx/doc/gen/caret.rb +3 -0
  100. data/lib/wx/doc/gen/check_box.rb +10 -0
  101. data/lib/wx/doc/gen/check_list_box.rb +3 -0
  102. data/lib/wx/doc/gen/choice.rb +14 -2
  103. data/lib/wx/doc/gen/choicebook.rb +1 -0
  104. data/lib/wx/doc/gen/client_dc.rb +1 -0
  105. data/lib/wx/doc/gen/clipboard.rb +9 -0
  106. data/lib/wx/doc/gen/collapsible_pane.rb +3 -0
  107. data/lib/wx/doc/gen/collapsible_pane_event.rb +1 -0
  108. data/lib/wx/doc/gen/colour.rb +20 -0
  109. data/lib/wx/doc/gen/colour_dialog.rb +10 -0
  110. data/lib/wx/doc/gen/colour_picker_ctrl.rb +4 -0
  111. data/lib/wx/doc/gen/colour_picker_event.rb +1 -0
  112. data/lib/wx/doc/gen/combo_box.rb +20 -1
  113. data/lib/wx/doc/gen/combo_ctrl.rb +54 -295
  114. data/lib/wx/doc/gen/command_link_button.rb +8 -0
  115. data/lib/wx/doc/gen/context_help_button.rb +7 -1
  116. data/lib/wx/doc/gen/control.rb +12 -0
  117. data/lib/wx/doc/gen/control_with_items.rb +45 -9
  118. data/lib/wx/doc/gen/core.rb +2 -2
  119. data/lib/wx/doc/gen/cursor.rb +4 -0
  120. data/lib/wx/doc/gen/data_format.rb +1 -0
  121. data/lib/wx/doc/gen/data_object.rb +27 -5
  122. data/lib/wx/doc/gen/date_event.rb +2 -1
  123. data/lib/wx/doc/gen/date_picker_ctrl.rb +7 -1
  124. data/lib/wx/doc/gen/dc.rb +87 -3
  125. data/lib/wx/doc/gen/dial_up_event.rb +2 -0
  126. data/lib/wx/doc/gen/dial_up_manager.rb +12 -0
  127. data/lib/wx/doc/gen/dialog.rb +42 -3
  128. data/lib/wx/doc/gen/dir_dialog.rb +6 -1
  129. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +1 -0
  130. data/lib/wx/doc/gen/dir_picker_ctrl.rb +5 -0
  131. data/lib/wx/doc/gen/drag_drop.rb +20 -0
  132. data/lib/wx/doc/gen/drag_image.rb +7 -0
  133. data/lib/wx/doc/gen/editable_list_box.rb +5 -3
  134. data/lib/wx/doc/gen/event.rb +26 -11
  135. data/lib/wx/doc/gen/event_blocker.rb +2 -1
  136. data/lib/wx/doc/gen/event_filter.rb +3 -2
  137. data/lib/wx/doc/gen/event_list.rb +4 -4
  138. data/lib/wx/doc/gen/events.rb +165 -26
  139. data/lib/wx/doc/gen/evt_handler.rb +40 -2
  140. data/lib/wx/doc/gen/ext_help_controller.rb +9 -0
  141. data/lib/wx/doc/gen/file_ctrl.rb +11 -2
  142. data/lib/wx/doc/gen/file_ctrl_event.rb +5 -1
  143. data/lib/wx/doc/gen/file_dialog.rb +13 -0
  144. data/lib/wx/doc/gen/file_dialog_custom_control.rb +12 -0
  145. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +11 -2
  146. data/lib/wx/doc/gen/file_dir_picker_event.rb +2 -1
  147. data/lib/wx/doc/gen/file_picker_ctrl.rb +4 -0
  148. data/lib/wx/doc/gen/file_system.rb +17 -1
  149. data/lib/wx/doc/gen/find_dialog_event.rb +2 -1
  150. data/lib/wx/doc/gen/find_replace_data.rb +1 -0
  151. data/lib/wx/doc/gen/find_replace_dialog.rb +3 -0
  152. data/lib/wx/doc/gen/flex_grid_sizer.rb +13 -0
  153. data/lib/wx/doc/gen/font.rb +75 -3
  154. data/lib/wx/doc/gen/font_data.rb +14 -0
  155. data/lib/wx/doc/gen/font_dialog.rb +6 -0
  156. data/lib/wx/doc/gen/font_picker_ctrl.rb +8 -0
  157. data/lib/wx/doc/gen/font_picker_event.rb +1 -0
  158. data/lib/wx/doc/gen/frame.rb +24 -7
  159. data/lib/wx/doc/gen/fs_file.rb +22 -0
  160. data/lib/wx/doc/gen/gauge.rb +8 -0
  161. data/lib/wx/doc/gen/gb_sizer_item.rb +5 -0
  162. data/lib/wx/doc/gen/gcdc.rb +2 -0
  163. data/lib/wx/doc/gen/gdi_common.rb +50 -8
  164. data/lib/wx/doc/gen/gdi_object.rb +1 -0
  165. data/lib/wx/doc/gen/generic_dir_ctrl.rb +7 -0
  166. data/lib/wx/doc/gen/graphics_context.rb +36 -7
  167. data/lib/wx/doc/gen/graphics_object.rb +24 -0
  168. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +2 -2
  169. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +14 -4
  170. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +1 -2
  171. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +1 -2
  172. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +2 -2
  173. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +1 -2
  174. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +2 -2
  175. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +1 -2
  176. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +1 -2
  177. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +1 -2
  178. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +9 -2
  179. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +1 -2
  180. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +1 -2
  181. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +1 -2
  182. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +2 -2
  183. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +2 -2
  184. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +1 -2
  185. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +6 -2
  186. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +1 -2
  187. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +1 -2
  188. data/lib/wx/doc/gen/grid/grid_ctrl.rb +229 -7
  189. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +4 -1
  190. data/lib/wx/doc/gen/grid/grid_event.rb +4 -1
  191. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +2 -1
  192. data/lib/wx/doc/gen/grid/grid_size_event.rb +2 -1
  193. data/lib/wx/doc/gen/grid/grid_string_table.rb +7 -0
  194. data/lib/wx/doc/gen/grid/grid_table_base.rb +27 -1
  195. data/lib/wx/doc/gen/grid/grid_table_message.rb +1 -0
  196. data/lib/wx/doc/gen/grid_bag_sizer.rb +24 -4
  197. data/lib/wx/doc/gen/grid_sizer.rb +11 -0
  198. data/lib/wx/doc/gen/gui_event_loop.rb +12 -2
  199. data/lib/wx/doc/gen/header_ctrl.rb +106 -6
  200. data/lib/wx/doc/gen/header_ctrl_event.rb +5 -1
  201. data/lib/wx/doc/gen/help_controller.rb +11 -0
  202. data/lib/wx/doc/gen/help_provider.rb +12 -3
  203. data/lib/wx/doc/gen/html/html_cell.rb +25 -0
  204. data/lib/wx/doc/gen/html/html_cell_event.rb +3 -1
  205. data/lib/wx/doc/gen/html/html_easy_printing.rb +13 -1
  206. data/lib/wx/doc/gen/html/html_help_controller.rb +18 -0
  207. data/lib/wx/doc/gen/html/html_help_data.rb +5 -0
  208. data/lib/wx/doc/gen/html/html_help_window.rb +8 -0
  209. data/lib/wx/doc/gen/html/html_link_event.rb +1 -0
  210. data/lib/wx/doc/gen/html/html_list_box.rb +49 -9
  211. data/lib/wx/doc/gen/html/html_printout.rb +7 -0
  212. data/lib/wx/doc/gen/html/html_window.rb +31 -0
  213. data/lib/wx/doc/gen/hyperlink_ctrl.rb +2 -1
  214. data/lib/wx/doc/gen/hyperlink_event.rb +1 -0
  215. data/lib/wx/doc/gen/icon.rb +19 -1
  216. data/lib/wx/doc/gen/icon_location.rb +1 -0
  217. data/lib/wx/doc/gen/image.rb +67 -10
  218. data/lib/wx/doc/gen/image_list.rb +12 -2
  219. data/lib/wx/doc/gen/info_bar.rb +12 -0
  220. data/lib/wx/doc/gen/keyboard_state.rb +11 -0
  221. data/lib/wx/doc/gen/list_box.rb +20 -3
  222. data/lib/wx/doc/gen/list_ctrl.rb +89 -0
  223. data/lib/wx/doc/gen/list_event.rb +11 -1
  224. data/lib/wx/doc/gen/listbook.rb +1 -0
  225. data/lib/wx/doc/gen/locale.rb +22 -0
  226. data/lib/wx/doc/gen/log.rb +42 -0
  227. data/lib/wx/doc/gen/mdi_client_window.rb +4 -1
  228. data/lib/wx/doc/gen/mdi_frame.rb +27 -4
  229. data/lib/wx/doc/gen/media_ctrl.rb +17 -0
  230. data/lib/wx/doc/gen/media_event.rb +2 -1
  231. data/lib/wx/doc/gen/memory_dc.rb +10 -0
  232. data/lib/wx/doc/gen/menu.rb +48 -7
  233. data/lib/wx/doc/gen/menu_bar.rb +32 -13
  234. data/lib/wx/doc/gen/menu_item.rb +26 -0
  235. data/lib/wx/doc/gen/message_dialog.rb +10 -0
  236. data/lib/wx/doc/gen/mini_frame.rb +5 -2
  237. data/lib/wx/doc/gen/mirror_dc.rb +1 -0
  238. data/lib/wx/doc/gen/mouse_state.rb +1 -0
  239. data/lib/wx/doc/gen/multi_choice_dialog.rb +3 -1
  240. data/lib/wx/doc/gen/non_owned_window.rb +3 -0
  241. data/lib/wx/doc/gen/notebook.rb +11 -1
  242. data/lib/wx/doc/gen/num_validator.rb +37 -0
  243. data/lib/wx/doc/gen/number_entry_dialog.rb +4 -0
  244. data/lib/wx/doc/gen/object.rb +3 -0
  245. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +340 -0
  246. data/lib/wx/doc/gen/paint_dc.rb +1 -0
  247. data/lib/wx/doc/gen/palette.rb +5 -0
  248. data/lib/wx/doc/gen/panel.rb +10 -2
  249. data/lib/wx/doc/gen/pen.rb +30 -1
  250. data/lib/wx/doc/gen/persistence_manager.rb +135 -0
  251. data/lib/wx/doc/gen/persistent_object.rb +52 -0
  252. data/lib/wx/doc/gen/persistent_window.rb +116 -0
  253. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +2 -1
  254. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +4 -1
  255. data/lib/wx/doc/gen/pg/pg_cell.rb +6 -1
  256. data/lib/wx/doc/gen/pg/pg_editor.rb +61 -15
  257. data/lib/wx/doc/gen/pg/pg_multi_button.rb +2 -0
  258. data/lib/wx/doc/gen/pg/pg_properties.rb +198 -81
  259. data/lib/wx/doc/gen/pg/pg_property.rb +129 -52
  260. data/lib/wx/doc/gen/pg/pg_validation_info.rb +2 -0
  261. data/lib/wx/doc/gen/pg/property_grid.rb +56 -14
  262. data/lib/wx/doc/gen/pg/property_grid_event.rb +16 -6
  263. data/lib/wx/doc/gen/pg/property_grid_interface.rb +98 -37
  264. data/lib/wx/doc/gen/pg/property_grid_manager.rb +29 -7
  265. data/lib/wx/doc/gen/pg/property_grid_page.rb +11 -4
  266. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +7 -2
  267. data/lib/wx/doc/gen/picker_base.rb +11 -1
  268. data/lib/wx/doc/gen/platform_info.rb +31 -0
  269. data/lib/wx/doc/gen/popup_window.rb +5 -0
  270. data/lib/wx/doc/gen/progress_dialog.rb +4 -0
  271. data/lib/wx/doc/gen/property_sheet_dialog.rb +7 -1
  272. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +2 -0
  273. data/lib/wx/doc/gen/prt/post_script_dc.rb +1 -0
  274. data/lib/wx/doc/gen/prt/preview_frame.rb +4 -0
  275. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +1 -0
  276. data/lib/wx/doc/gen/prt/print_data.rb +27 -0
  277. data/lib/wx/doc/gen/prt/print_dialog.rb +4 -0
  278. data/lib/wx/doc/gen/prt/printer.rb +42 -5
  279. data/lib/wx/doc/gen/prt/printer_dc.rb +2 -0
  280. data/lib/wx/doc/gen/query_layout_info_event.rb +9 -0
  281. data/lib/wx/doc/gen/radio_box.rb +19 -0
  282. data/lib/wx/doc/gen/radio_button.rb +9 -0
  283. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +63 -0
  284. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +23 -0
  285. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +2 -1
  286. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +35 -9
  287. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +2 -1
  288. data/lib/wx/doc/gen/rbn/ribbon_control.rb +10 -0
  289. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +17 -7
  290. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +2 -1
  291. data/lib/wx/doc/gen/rbn/ribbon_page.rb +12 -0
  292. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +11 -0
  293. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +2 -1
  294. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +25 -0
  295. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +2 -1
  296. data/lib/wx/doc/gen/rearrange_ctrl.rb +4 -0
  297. data/lib/wx/doc/gen/rearrange_list.rb +9 -0
  298. data/lib/wx/doc/gen/region.rb +42 -13
  299. data/lib/wx/doc/gen/region_iterator.rb +1 -0
  300. data/lib/wx/doc/gen/rtc/rich_text_box.rb +25 -8
  301. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +41 -4
  302. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +1 -0
  303. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +23 -11
  304. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +74 -0
  305. data/lib/wx/doc/gen/rtc/rich_text_event.rb +6 -1
  306. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +8 -0
  307. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +6 -0
  308. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +1 -0
  309. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +4 -0
  310. data/lib/wx/doc/gen/rtc/rich_text_image.rb +7 -0
  311. data/lib/wx/doc/gen/rtc/rich_text_object.rb +64 -4
  312. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +51 -4
  313. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +13 -0
  314. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +9 -4
  315. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +3 -0
  316. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +2 -0
  317. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +1 -0
  318. data/lib/wx/doc/gen/sash_event.rb +5 -1
  319. data/lib/wx/doc/gen/sash_layout_window.rb +10 -0
  320. data/lib/wx/doc/gen/sash_window.rb +3 -0
  321. data/lib/wx/doc/gen/screen_dc.rb +1 -0
  322. data/lib/wx/doc/gen/scroll_bar.rb +11 -2
  323. data/lib/wx/doc/gen/scrolled_canvas.rb +20 -4
  324. data/lib/wx/doc/gen/scrolled_control.rb +20 -4
  325. data/lib/wx/doc/gen/scrolled_window.rb +20 -4
  326. data/lib/wx/doc/gen/search_ctrl.rb +6 -0
  327. data/lib/wx/doc/gen/simplebook.rb +7 -0
  328. data/lib/wx/doc/gen/single_choice_dialog.rb +3 -1
  329. data/lib/wx/doc/gen/sizer.rb +79 -9
  330. data/lib/wx/doc/gen/sizer_item.rb +16 -2
  331. data/lib/wx/doc/gen/slider.rb +23 -0
  332. data/lib/wx/doc/gen/spin_button.rb +9 -0
  333. data/lib/wx/doc/gen/spin_ctrl.rb +11 -0
  334. data/lib/wx/doc/gen/spin_ctrl_double.rb +7 -0
  335. data/lib/wx/doc/gen/spin_double_event.rb +4 -1
  336. data/lib/wx/doc/gen/spin_event.rb +2 -1
  337. data/lib/wx/doc/gen/splash_screen.rb +2 -0
  338. data/lib/wx/doc/gen/splitter_event.rb +10 -1
  339. data/lib/wx/doc/gen/splitter_window.rb +38 -14
  340. data/lib/wx/doc/gen/static_bitmap.rb +99 -2
  341. data/lib/wx/doc/gen/static_box.rb +6 -0
  342. data/lib/wx/doc/gen/static_box_sizer.rb +3 -0
  343. data/lib/wx/doc/gen/static_line.rb +4 -0
  344. data/lib/wx/doc/gen/static_text.rb +5 -0
  345. data/lib/wx/doc/gen/status_bar.rb +17 -3
  346. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +174 -6
  347. data/lib/wx/doc/gen/stc/styled_text_event.rb +27 -1
  348. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +7 -0
  349. data/lib/wx/doc/gen/svg_file_dc.rb +9 -0
  350. data/lib/wx/doc/gen/system_options.rb +8 -0
  351. data/lib/wx/doc/gen/system_settings.rb +7 -0
  352. data/lib/wx/doc/gen/task_bar_button.rb +12 -0
  353. data/lib/wx/doc/gen/task_bar_icon.rb +5 -0
  354. data/lib/wx/doc/gen/task_bar_icon_event.rb +2 -1
  355. data/lib/wx/doc/gen/text_attr.rb +27 -0
  356. data/lib/wx/doc/gen/text_ctrl.rb +27 -3
  357. data/lib/wx/doc/gen/text_entry.rb +43 -9
  358. data/lib/wx/doc/gen/text_entry_dialog.rb +12 -0
  359. data/lib/wx/doc/gen/text_validator.rb +16 -0
  360. data/lib/wx/doc/gen/time_picker_ctrl.rb +6 -0
  361. data/lib/wx/doc/gen/timer.rb +8 -0
  362. data/lib/wx/doc/gen/timer_event.rb +1 -0
  363. data/lib/wx/doc/gen/tip_provider.rb +5 -0
  364. data/lib/wx/doc/gen/toggle_button.rb +68 -0
  365. data/lib/wx/doc/gen/tool_bar.rb +57 -14
  366. data/lib/wx/doc/gen/tool_tip.rb +6 -0
  367. data/lib/wx/doc/gen/toolbook.rb +3 -0
  368. data/lib/wx/doc/gen/top_level_window.rb +34 -3
  369. data/lib/wx/doc/gen/tree_ctrl.rb +49 -0
  370. data/lib/wx/doc/gen/tree_event.rb +7 -1
  371. data/lib/wx/doc/gen/treebook.rb +9 -0
  372. data/lib/wx/doc/gen/ui_action_simulator.rb +4 -0
  373. data/lib/wx/doc/gen/utils.rb +55 -16
  374. data/lib/wx/doc/gen/v_list_box.rb +21 -0
  375. data/lib/wx/doc/gen/v_scrolled_window.rb +15 -0
  376. data/lib/wx/doc/gen/validator.rb +9 -13
  377. data/lib/wx/doc/gen/variant.rb +6 -0
  378. data/lib/wx/doc/gen/window.rb +260 -52
  379. data/lib/wx/doc/gen/window_dc.rb +2 -0
  380. data/lib/wx/doc/gen/window_disabler.rb +1 -0
  381. data/lib/wx/doc/gen/with_images.rb +7 -1
  382. data/lib/wx/doc/gen/wizard.rb +18 -0
  383. data/lib/wx/doc/gen/wizard_event.rb +3 -1
  384. data/lib/wx/doc/gen/wizard_page.rb +5 -0
  385. data/lib/wx/doc/gen/wizard_page_simple.rb +4 -0
  386. data/lib/wx/doc/gen/wrap_sizer.rb +5 -0
  387. data/lib/wx/doc/gen/xml_node.rb +14 -0
  388. data/lib/wx/doc/gen/xml_resource.rb +22 -0
  389. data/lib/wx/doc/generic_validator.rb +95 -0
  390. data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
  391. data/lib/wx/doc/num_validator.rb +387 -0
  392. data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
  393. data/lib/wx/doc/persistence_manager.rb +36 -0
  394. data/lib/wx/doc/persistent_object.rb +27 -0
  395. data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
  396. data/lib/wx/doc/static_bitmap.rb +25 -0
  397. data/lib/wx/doc/text_validator.rb +10 -0
  398. data/lib/wx/doc/top_level_window.rb +19 -0
  399. data/lib/wx/doc/treebook.rb +6 -1
  400. data/lib/wx/doc/validator.rb +113 -0
  401. data/lib/wx/doc/window.rb +30 -0
  402. data/lib/wx/html/events/evt_list.rb +0 -10
  403. data/lib/wx/html/simple_html_listbox.rb +24 -91
  404. data/lib/wx/keyword_defs.rb +34 -2
  405. data/lib/wx/rbn/ribbon_gallery.rb +0 -21
  406. data/lib/wx/version.rb +1 -1
  407. data/lib/wxruby_aui.so +0 -0
  408. data/lib/wxruby_core.so +0 -0
  409. data/lib/wxruby_grid.so +0 -0
  410. data/lib/wxruby_html.so +0 -0
  411. data/lib/wxruby_pg.so +0 -0
  412. data/lib/wxruby_prt.so +0 -0
  413. data/lib/wxruby_rbn.so +0 -0
  414. data/lib/wxruby_rtc.so +0 -0
  415. data/lib/wxruby_stc.so +0 -0
  416. data/rakelib/lib/config/mingw.rb +12 -0
  417. data/samples/aui/aui.rb +1237 -1233
  418. data/samples/calendar/calendar.rb +293 -289
  419. data/samples/controls/get_item_sample.rb +83 -79
  420. data/samples/controls/htlbox.rb +331 -327
  421. data/samples/dialogs/dialogs.rb +682 -694
  422. data/samples/dialogs/wizard.rb +52 -55
  423. data/samples/dragdrop/dragdrop.rb +146 -142
  424. data/samples/drawing/bitmap.rb +29 -26
  425. data/samples/drawing/bitmap_image.rb +84 -80
  426. data/samples/drawing/graphics_drawing.rb +209 -205
  427. data/samples/drawing/image_prt.rb +344 -340
  428. data/samples/drawing/maths_images.rb +18 -1
  429. data/samples/drawing/rmagic_bitmap_image.rb +88 -84
  430. data/samples/etc/caret.rb +306 -0
  431. data/samples/etc/miniframe.rb +65 -60
  432. data/samples/etc/sash.rb +109 -105
  433. data/samples/etc/scrollwin.rb +86 -80
  434. data/samples/etc/system_settings.rb +216 -209
  435. data/samples/event/activation.rb +72 -67
  436. data/samples/event/event.rb +160 -153
  437. data/samples/event/threaded.rb +8 -1
  438. data/samples/event/update_ui_event.rb +67 -60
  439. data/samples/grid/grid.rb +188 -181
  440. data/samples/grid/gridtablebase.rb +136 -129
  441. data/samples/html/html.rb +208 -204
  442. data/samples/mdi/mdi.rb +59 -54
  443. data/samples/minimal/minimal.rb +54 -51
  444. data/samples/minimal/nothing.rb +1 -0
  445. data/samples/printing/printing.rb +367 -377
  446. data/samples/printing/printing2.rb +203 -198
  447. data/samples/propgrid/propgrid.rb +2312 -2308
  448. data/samples/propgrid/propgrid_minimal.rb +57 -50
  449. data/samples/ribbon/ribbon.rb +780 -774
  450. data/samples/sampler/ext.rb +0 -33
  451. data/samples/sampler/sample.rb +4 -9
  452. data/samples/sampler.rb +1 -1
  453. data/samples/splash/splash.rb +118 -116
  454. data/samples/text/rich_textctrl.rb +207 -201
  455. data/samples/text/richtext.rb +1409 -1405
  456. data/samples/text/scintilla.rb +137 -128
  457. data/samples/text/textctrl.rb +89 -83
  458. data/samples/text/unicode.rb +175 -168
  459. data/samples/treectrl/treectrl.rb +1430 -1426
  460. data/samples/widgets/activityindicator.rb +95 -0
  461. data/samples/widgets/art/widgets/activityindicator.xpm +278 -0
  462. data/samples/widgets/art/widgets/bmpbtn.xpm +37 -0
  463. data/samples/widgets/art/widgets/bmpcombobox.xpm +54 -0
  464. data/samples/widgets/art/widgets/button.xpm +54 -0
  465. data/samples/widgets/art/widgets/checkbox.xpm +54 -0
  466. data/samples/{bigdemo/icons → widgets/art/widgets}/choice.xpm +1 -1
  467. data/samples/widgets/art/widgets/choicebk.xpm +54 -0
  468. data/samples/widgets/art/widgets/clrpicker.xpm +193 -0
  469. data/samples/widgets/art/widgets/combobox.xpm +54 -0
  470. data/samples/widgets/art/widgets/datepick.xpm +200 -0
  471. data/samples/widgets/art/widgets/dirctrl.xpm +54 -0
  472. data/samples/widgets/art/widgets/dirpicker.xpm +213 -0
  473. data/samples/widgets/art/widgets/filepicker.xpm +214 -0
  474. data/samples/widgets/art/widgets/fontpicker.xpm +185 -0
  475. data/samples/widgets/art/widgets/gauge.xpm +54 -0
  476. data/samples/widgets/art/widgets/header.xpm +54 -0
  477. data/samples/widgets/art/widgets/hyperlnk.xpm +54 -0
  478. data/samples/widgets/art/widgets/listbook.xpm +54 -0
  479. data/samples/widgets/art/widgets/listbox.xpm +54 -0
  480. data/samples/widgets/art/widgets/native.xpm +81 -0
  481. data/samples/widgets/art/widgets/notebook.xpm +54 -0
  482. data/samples/widgets/art/widgets/odcombobox.xpm +54 -0
  483. data/samples/widgets/art/widgets/radiobox.xpm +54 -0
  484. data/samples/widgets/art/widgets/scrolbar.xpm +54 -0
  485. data/samples/widgets/art/widgets/slider.xpm +54 -0
  486. data/samples/widgets/art/widgets/spinbtn.xpm +40 -0
  487. data/samples/widgets/art/widgets/statbmp.xpm +40 -0
  488. data/samples/widgets/art/widgets/statbox.xpm +54 -0
  489. data/samples/widgets/art/widgets/stattext.xpm +54 -0
  490. data/samples/widgets/art/widgets/text.xpm +54 -0
  491. data/samples/widgets/art/widgets/timepick.xpm +207 -0
  492. data/samples/widgets/art/widgets/toggle.xpm +54 -0
  493. data/samples/widgets/art/widgets/toucan.png +0 -0
  494. data/samples/widgets/bmpcombobox.rb +651 -0
  495. data/samples/widgets/button.rb +462 -0
  496. data/samples/widgets/checkbox.rb +211 -0
  497. data/samples/widgets/choice.rb +287 -0
  498. data/samples/widgets/clrpicker.rb +156 -0
  499. data/samples/widgets/combobox.rb +516 -0
  500. data/samples/widgets/datepick.rb +215 -0
  501. data/samples/widgets/dirctrl.rb +265 -0
  502. data/samples/widgets/dirpicker.rb +158 -0
  503. data/samples/widgets/editlbox.rb +122 -0
  504. data/samples/widgets/filectrl.rb +216 -0
  505. data/samples/widgets/filepicker.rb +214 -0
  506. data/samples/widgets/fontpicker.rb +135 -0
  507. data/samples/widgets/gauge.rb +311 -0
  508. data/samples/widgets/headerctrl.rb +236 -0
  509. data/samples/widgets/hyperlink.rb +203 -0
  510. data/samples/widgets/itemcontainer.rb +185 -0
  511. data/samples/widgets/listbox.rb +473 -0
  512. data/samples/widgets/notebook.rb +488 -0
  513. data/samples/widgets/odcombobox.rb +608 -0
  514. data/samples/widgets/radiobox.rb +328 -0
  515. data/samples/widgets/searchctrl.rb +159 -0
  516. data/samples/widgets/slider.rb +594 -0
  517. data/samples/widgets/spinbtn.rb +443 -0
  518. data/samples/widgets/statbmp.rb +130 -0
  519. data/samples/widgets/static.rb +436 -0
  520. data/samples/widgets/textctrl.rb +700 -0
  521. data/samples/widgets/timepick.rb +148 -0
  522. data/samples/widgets/tn_widgets.png +0 -0
  523. data/samples/widgets/toggle.rb +385 -0
  524. data/samples/widgets/widgets.rb +1229 -0
  525. data/samples/xrc/custom_xrc_sample.rb +47 -41
  526. data/samples/xrc/xrc_sample.rb +53 -47
  527. data/tests/test_config.rb +207 -42
  528. data/tests/test_event_handling.rb +52 -34
  529. data/tests/test_events.rb +7 -0
  530. data/tests/test_item_data.rb +24 -0
  531. data/tests/test_persistence.rb +142 -0
  532. data/tests/test_sizer.rb +44 -1
  533. data/tests/test_validators.rb +805 -0
  534. metadata +103 -137
  535. data/lib/wx/core/choice.rb +0 -14
  536. data/lib/wx/core/combo_ctrl.rb +0 -110
  537. data/samples/bigdemo/About.rbw +0 -39
  538. data/samples/bigdemo/ColorPanel.rbw +0 -23
  539. data/samples/bigdemo/GridSimple.rbw +0 -78
  540. data/samples/bigdemo/MDIDemo.rbw +0 -57
  541. data/samples/bigdemo/PopupMenu.rbw +0 -146
  542. data/samples/bigdemo/ShapedWindow.rbw +0 -128
  543. data/samples/bigdemo/Sizers.rbw +0 -541
  544. data/samples/bigdemo/bigdemo.rb +0 -817
  545. data/samples/bigdemo/demoTemplate.rbw +0 -33
  546. data/samples/bigdemo/helpfile.htb +0 -0
  547. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  548. data/samples/bigdemo/icons/Test 015.png +0 -0
  549. data/samples/bigdemo/icons/choice.bmp +0 -0
  550. data/samples/bigdemo/icons/combo.bmp +0 -0
  551. data/samples/bigdemo/icons/combo.xpm +0 -27
  552. data/samples/bigdemo/icons/copy.xpm +0 -25
  553. data/samples/bigdemo/icons/cut.xpm +0 -24
  554. data/samples/bigdemo/icons/gauge.bmp +0 -0
  555. data/samples/bigdemo/icons/gauge.xpm +0 -27
  556. data/samples/bigdemo/icons/help.xpm +0 -25
  557. data/samples/bigdemo/icons/list.bmp +0 -0
  558. data/samples/bigdemo/icons/list.xpm +0 -27
  559. data/samples/bigdemo/icons/mondrian.ico +0 -0
  560. data/samples/bigdemo/icons/mondrian.xpm +0 -44
  561. data/samples/bigdemo/icons/new.xpm +0 -24
  562. data/samples/bigdemo/icons/ogl.ico +0 -0
  563. data/samples/bigdemo/icons/ogl.xpm +0 -45
  564. data/samples/bigdemo/icons/open.xpm +0 -26
  565. data/samples/bigdemo/icons/paste.bmp +0 -0
  566. data/samples/bigdemo/icons/paste.xpm +0 -38
  567. data/samples/bigdemo/icons/pointy.png +0 -0
  568. data/samples/bigdemo/icons/preview.xpm +0 -26
  569. data/samples/bigdemo/icons/print.xpm +0 -26
  570. data/samples/bigdemo/icons/radio.bmp +0 -0
  571. data/samples/bigdemo/icons/radio.xpm +0 -27
  572. data/samples/bigdemo/icons/robert.xpm +0 -415
  573. data/samples/bigdemo/icons/sashtest.ico +0 -0
  574. data/samples/bigdemo/icons/save.xpm +0 -25
  575. data/samples/bigdemo/icons/smiles.bmp +0 -0
  576. data/samples/bigdemo/icons/smiles.xpm +0 -39
  577. data/samples/bigdemo/icons/smiley.ico +0 -0
  578. data/samples/bigdemo/icons/smiley.xpm +0 -42
  579. data/samples/bigdemo/icons/stattext.xpm +0 -24
  580. data/samples/bigdemo/icons/test2.bmp +0 -0
  581. data/samples/bigdemo/icons/test2.png +0 -0
  582. data/samples/bigdemo/icons/test2.xpm +0 -79
  583. data/samples/bigdemo/icons/text.bmp +0 -0
  584. data/samples/bigdemo/icons/text.xpm +0 -27
  585. data/samples/bigdemo/icons/tog1.bmp +0 -0
  586. data/samples/bigdemo/icons/tog1.xpm +0 -38
  587. data/samples/bigdemo/icons/tog2.bmp +0 -0
  588. data/samples/bigdemo/icons/tog2.xpm +0 -38
  589. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  590. data/samples/bigdemo/icons/wxwin.ico +0 -0
  591. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  592. data/samples/bigdemo/icons/wxwin16x16.xpm +0 -25
  593. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  594. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  595. data/samples/bigdemo/run.rb +0 -98
  596. data/samples/bigdemo/tips.txt +0 -7
  597. data/samples/bigdemo/utils.rb +0 -20
  598. data/samples/bigdemo/wxArtProvider.rbw +0 -282
  599. data/samples/bigdemo/wxBitmapButton.rbw +0 -65
  600. data/samples/bigdemo/wxButton.rbw +0 -64
  601. data/samples/bigdemo/wxCalendarCtrl.rbw +0 -59
  602. data/samples/bigdemo/wxCheckBox.rbw +0 -50
  603. data/samples/bigdemo/wxCheckListBox.rbw +0 -65
  604. data/samples/bigdemo/wxChoice.rbw +0 -47
  605. data/samples/bigdemo/wxChoicebook.rbw +0 -78
  606. data/samples/bigdemo/wxColourDialog.rbw +0 -33
  607. data/samples/bigdemo/wxComboBox.rbw +0 -77
  608. data/samples/bigdemo/wxCursor.rbw +0 -136
  609. data/samples/bigdemo/wxDialog.rbw +0 -74
  610. data/samples/bigdemo/wxDirDialog.rbw +0 -29
  611. data/samples/bigdemo/wxDragImage.rbw +0 -70
  612. data/samples/bigdemo/wxFileDialog.rbw +0 -37
  613. data/samples/bigdemo/wxFileDialog_Save.rbw +0 -35
  614. data/samples/bigdemo/wxFindReplaceDialog.rbw +0 -82
  615. data/samples/bigdemo/wxFontDialog.rbw +0 -200
  616. data/samples/bigdemo/wxFrame.rbw +0 -53
  617. data/samples/bigdemo/wxGauge.rbw +0 -65
  618. data/samples/bigdemo/wxGenericDirCtrl.rbw +0 -74
  619. data/samples/bigdemo/wxGrid.rbw +0 -66
  620. data/samples/bigdemo/wxHtmlHelpController.rbw +0 -52
  621. data/samples/bigdemo/wxListBox.rbw +0 -140
  622. data/samples/bigdemo/wxListCtrl_virtual.rbw +0 -112
  623. data/samples/bigdemo/wxMDIWindows.rbw +0 -50
  624. data/samples/bigdemo/wxMenu.rbw +0 -247
  625. data/samples/bigdemo/wxMessageDialog.rbw +0 -27
  626. data/samples/bigdemo/wxMiniFrame.rbw +0 -70
  627. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +0 -29
  628. data/samples/bigdemo/wxNotebook.rbw +0 -136
  629. data/samples/bigdemo/wxProgressDialog.rbw +0 -43
  630. data/samples/bigdemo/wxRadioBox.rbw +0 -72
  631. data/samples/bigdemo/wxRadioButton.rbw +0 -125
  632. data/samples/bigdemo/wxSashWindow.rbw +0 -141
  633. data/samples/bigdemo/wxScrolledMessageDialog.rbw +0 -57
  634. data/samples/bigdemo/wxScrolledWindow.rbw +0 -199
  635. data/samples/bigdemo/wxSingleChoiceDialog.rbw +0 -33
  636. data/samples/bigdemo/wxSlider.rbw +0 -42
  637. data/samples/bigdemo/wxSpinButton.rbw +0 -50
  638. data/samples/bigdemo/wxSpinCtrl.rbw +0 -51
  639. data/samples/bigdemo/wxSplitterWindow.rbw +0 -63
  640. data/samples/bigdemo/wxStaticBitmap.rbw +0 -47
  641. data/samples/bigdemo/wxStaticText.rbw +0 -55
  642. data/samples/bigdemo/wxStatusBar.rbw +0 -126
  643. data/samples/bigdemo/wxTextCtrl.rbw +0 -149
  644. data/samples/bigdemo/wxTextEntryDialog.rbw +0 -31
  645. data/samples/bigdemo/wxToggleButton.rbw +0 -49
  646. data/samples/bigdemo/wxToolBar.rbw +0 -131
  647. data/samples/bigdemo/wxTreeCtrl.rbw +0 -191
  648. data/samples/caret/caret.rb +0 -298
  649. data/samples/caret/mondrian.xpm +0 -44
  650. data/samples/controls/books.rb +0 -189
  651. data/samples/controls/choice.xpm +0 -27
  652. data/samples/controls/combo.xpm +0 -27
  653. data/samples/controls/controls.rb +0 -1099
  654. data/samples/controls/gauge.xpm +0 -27
  655. data/samples/controls/list.xpm +0 -27
  656. data/samples/controls/mondrian.ico +0 -0
  657. data/samples/controls/mondrian.xpm +0 -44
  658. data/samples/controls/radio.xpm +0 -27
  659. data/samples/controls/stattext.xpm +0 -24
  660. data/samples/controls/test2.bmp +0 -0
  661. data/samples/controls/text.xpm +0 -27
  662. data/samples/controls/tn_books.png +0 -0
  663. data/samples/controls/tn_controls.png +0 -0
  664. data/samples/etc/choice.rb +0 -87
  665. data/samples/etc/tn_choice.png +0 -0
  666. data/samples/text/mondrian.ico +0 -0
  667. data/samples/text/mondrian.xpm +0 -44
  668. /data/samples/{caret → etc}/tn_caret.png +0 -0
@@ -0,0 +1,594 @@
1
+ # Copyright (c) 2023 M.J.N. Corino = self.next_id 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 Slider
11
+
12
+ class SliderPage < Widgets::Page
13
+
14
+ module ID
15
+ include Wx::IDHelper
16
+
17
+ Reset = self.next_id(Widgets::Frame::ID::Last)
18
+ Clear = self.next_id
19
+ SetValue = self.next_id
20
+ SetMinAndMax = self.next_id
21
+ SetRange = self.next_id
22
+ SetLineSize = self.next_id
23
+ SetPageSize = self.next_id
24
+ SetTickFreq = self.next_id
25
+ SetThumbLen = self.next_id
26
+ CurValueText = self.next_id
27
+ ValueText = self.next_id
28
+ MinText = self.next_id
29
+ MaxText = self.next_id
30
+ RangeMinText = self.next_id
31
+ RangeMaxText = self.next_id
32
+ LineSizeText = self.next_id
33
+ PageSizeText = self.next_id
34
+ TickFreqText = self.next_id
35
+ ThumbLenText = self.next_id
36
+ RadioSides = self.next_id
37
+ BothSides = self.next_id
38
+ SelectRange = self.next_id
39
+ Slider = self.next_id
40
+
41
+ SliderTicks_None = 0
42
+ SliderTicks_Top = 1
43
+ SliderTicks_Bottom = 2
44
+ SliderTicks_Left = 3
45
+ SliderTicks_Right = 4
46
+ end
47
+
48
+ class << self
49
+ def num_slider_events
50
+ @num_slider_events ||= 0
51
+ end
52
+ def num_slider_events=(v)
53
+ @num_slider_events = v
54
+ end
55
+ end
56
+
57
+ def initialize(book, images)
58
+ super(book, images, :slider)
59
+
60
+ # init everything
61
+ @min = 0
62
+ @max = 100
63
+ @rangeMin = 20
64
+ @rangeMax = 80
65
+
66
+ @chkInverse =
67
+ @chkTicks =
68
+ @chkMinMaxLabels =
69
+ @chkValueLabel =
70
+ @chkBothSides =
71
+ @chkSelectRange = nil
72
+
73
+ @radioSides = nil
74
+
75
+ @slider = nil
76
+ @sizerSlider = nil
77
+ end
78
+
79
+ Info = Widgets::PageInfo.new(self, 'Slider', NATIVE_CTRLS)
80
+
81
+ def get_widget
82
+ @slider
83
+ end
84
+
85
+ def recreate_widget
86
+ create_slider
87
+ end
88
+
89
+ # lazy creation of the content
90
+ def create_content
91
+ sizerTop = Wx::HBoxSizer.new
92
+
93
+ # left pane
94
+ sizerLeft = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Set style')
95
+ sizerLeftBox = sizerLeft.get_static_box
96
+
97
+ @chkInverse = create_check_box_and_add_to_sizer(sizerLeft, '&Inverse', Wx::ID_ANY, sizerLeftBox)
98
+ @chkTicks = create_check_box_and_add_to_sizer(sizerLeft, 'Show &ticks', Wx::ID_ANY, sizerLeftBox)
99
+ @chkMinMaxLabels = create_check_box_and_add_to_sizer(sizerLeft, 'Show min/max &labels', Wx::ID_ANY, sizerLeftBox)
100
+ @chkValueLabel = create_check_box_and_add_to_sizer(sizerLeft, 'Show &value label', Wx::ID_ANY, sizerLeftBox)
101
+
102
+ sides = %w[default top bottom left right]
103
+ @radioSides = Wx::RadioBox.new(sizerLeftBox, ID::RadioSides, '&Label position',
104
+ choices: sides,
105
+ major_dimension: 1,
106
+ style: Wx::RA_SPECIFY_COLS)
107
+ sizerLeft.add(@radioSides, Wx::SizerFlags.new.expand.border)
108
+ @chkBothSides = create_check_box_and_add_to_sizer(sizerLeft, '&Both sides', ID::BothSides, sizerLeftBox)
109
+ @chkSelectRange = create_check_box_and_add_to_sizer(sizerLeft, '&Selection range', ID::SelectRange, sizerLeftBox)
110
+ if Wx.has_feature?(:USE_TOOLTIPS)
111
+ @chkBothSides.set_tool_tip("\"Both sides\" is only supported \nin Universal")
112
+ @chkSelectRange.set_tool_tip("\"Select range\" is only supported \nin WXMSW")
113
+ end # wxUSE_TOOLTIPS
114
+
115
+ sizerLeft.add_spacer(5)
116
+
117
+ btn = Wx::Button.new(sizerLeftBox, ID::Reset, '&Reset')
118
+ sizerLeft.add(btn, Wx::SizerFlags.new.centre_horizontal.border(Wx::ALL, 15))
119
+
120
+ # middle pane
121
+ sizerMiddle = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Change slider value')
122
+ sizerMiddleBox = sizerMiddle.get_static_box
123
+
124
+ sizerRow, text = create_sizer_with_text_and_label('Current value',
125
+ ID::CurValueText,
126
+ sizerMiddleBox)
127
+ text.set_editable(false)
128
+
129
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
130
+
131
+ sizerRow, @textValue = create_sizer_with_text_and_button(ID::SetValue,
132
+ 'Set &value',
133
+ ID::ValueText,
134
+ sizerMiddleBox)
135
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
136
+
137
+ sizerRow, @textMin = create_sizer_with_text_and_button(ID::SetMinAndMax,
138
+ '&Min and max',
139
+ ID::MinText,
140
+ sizerMiddleBox)
141
+
142
+ @textMax = Wx::TextCtrl.new(sizerMiddleBox, ID::MaxText, '')
143
+ sizerRow.add(@textMax, Wx::SizerFlags.new(1).centre_vertical.border(Wx::LEFT))
144
+
145
+ @textMin.set_value(@min.to_s)
146
+ @textMax.set_value(@max.to_s)
147
+
148
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
149
+
150
+ sizerRow, @textRangeMin = create_sizer_with_text_and_button(ID::SetRange,
151
+ '&Selection',
152
+ ID::RangeMinText,
153
+ sizerMiddleBox)
154
+
155
+ @textRangeMax = Wx::TextCtrl.new(sizerMiddleBox, ID::RangeMaxText, '')
156
+ sizerRow.add(@textRangeMax, Wx::SizerFlags.new(1).centre_vertical.border(Wx::LEFT))
157
+
158
+ @textRangeMin.set_value(@rangeMin.to_s)
159
+ @textRangeMax.set_value(@rangeMax.to_s)
160
+
161
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
162
+
163
+ sizerRow, @textLineSize = create_sizer_with_text_and_button(ID::SetLineSize,
164
+ 'Li&ne size',
165
+ ID::LineSizeText,
166
+ sizerMiddleBox)
167
+
168
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
169
+
170
+ sizerRow, @textPageSize = create_sizer_with_text_and_button(ID::SetPageSize,
171
+ 'P&age size',
172
+ ID::PageSizeText,
173
+ sizerMiddleBox)
174
+
175
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
176
+
177
+ sizerRow, @textTickFreq = create_sizer_with_text_and_button(ID::SetTickFreq,
178
+ 'Tick &frequency',
179
+ ID::TickFreqText,
180
+ sizerMiddleBox)
181
+
182
+ @textTickFreq.set_value("10")
183
+
184
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
185
+
186
+ sizerRow, @textThumbLen = create_sizer_with_text_and_button(ID::SetThumbLen,
187
+ 'Thumb &length',
188
+ ID::ThumbLenText,
189
+ sizerMiddleBox)
190
+
191
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
192
+
193
+ # right pane
194
+ sizerRight = Wx::HBoxSizer.new
195
+ @sizerSlider = sizerRight # save it to modify it later
196
+
197
+ reset
198
+ create_slider
199
+
200
+ # the 3 panes panes compose the window
201
+ sizerTop.add(sizerLeft,
202
+ Wx::SizerFlags.new(0).expand.border((Wx::ALL & ~Wx::LEFT), 10))
203
+ sizerTop.add(sizerMiddle,
204
+ Wx::SizerFlags.new(1).expand.border(Wx::ALL, 10))
205
+ sizerTop.add(sizerRight,
206
+ Wx::SizerFlags.new(1).expand.border((Wx::ALL & ~Wx::RIGHT), 10))
207
+
208
+ # final initializations
209
+ set_sizer(sizerTop)
210
+
211
+ # connect event handlers
212
+ evt_button(ID::Reset, :on_button_reset)
213
+ evt_button(ID::SetValue, :on_button_set_value)
214
+ evt_button(ID::SetMinAndMax, :on_button_set_min_and_max)
215
+ evt_button(ID::SetRange, :on_button_set_range)
216
+ evt_button(ID::SetLineSize, :on_button_set_line_size)
217
+ evt_button(ID::SetPageSize, :on_button_set_page_size)
218
+ evt_button(ID::SetTickFreq, :on_button_set_tick_freq)
219
+ evt_button(ID::SetThumbLen, :on_button_set_thumb_len)
220
+
221
+ evt_update_ui(ID::SetValue, :on_update_ui_value_button)
222
+ evt_update_ui(ID::SetMinAndMax, :on_update_ui_min_max_button)
223
+ evt_update_ui(ID::SetRange, :on_update_ui_range_button)
224
+ evt_update_ui(ID::SetLineSize, :on_update_ui_line_size)
225
+ evt_update_ui(ID::SetPageSize, :on_update_ui_page_size)
226
+ evt_update_ui(ID::SetTickFreq, :on_update_ui_tick_freq)
227
+ evt_update_ui(ID::SetThumbLen, :on_update_ui_thumb_len)
228
+ evt_update_ui(ID::RadioSides, :on_update_ui_radio_sides)
229
+ evt_update_ui(ID::BothSides, :on_update_ui_both_sides)
230
+ evt_update_ui(ID::SelectRange, :on_update_ui_select_range)
231
+
232
+ evt_update_ui(ID::Reset, :on_update_ui_reset_button)
233
+
234
+ evt_update_ui(ID::CurValueText, :on_update_ui_cur_value_text)
235
+
236
+ evt_command_scroll(ID::Slider, :on_slider_scroll)
237
+ evt_slider(ID::Slider, :on_slider)
238
+
239
+ evt_checkbox(Wx::ID_ANY, :on_check_or_radio_box)
240
+ evt_radiobox(Wx::ID_ANY, :on_check_or_radio_box)
241
+ end
242
+
243
+ protected
244
+
245
+ # event handlers
246
+ def on_button_reset(_event)
247
+ reset
248
+
249
+ create_slider
250
+ end
251
+
252
+ def on_button_set_value(_event)
253
+ val = Integer(@textValue.value) rescue nil
254
+ if val.nil? || !is_valid_value(val)
255
+ Wx.log_warning('Invalid slider value.')
256
+
257
+ return
258
+ end
259
+
260
+ @slider.set_value(val)
261
+ end
262
+
263
+ def on_button_set_min_and_max(_event)
264
+ minNew = Integer(@textMin.value) rescue nil
265
+ maxNew = Integer(@textMax.value) rescue nil
266
+ if minNew.nil? || maxNew.nil? || minNew >= maxNew
267
+ Wx.log_warning('Invalid min/max values for the slider.')
268
+
269
+ return
270
+ end
271
+
272
+ @min = minNew
273
+ @max = maxNew
274
+
275
+ @slider.set_range(minNew, maxNew)
276
+
277
+ Wx.log_warning('Invalid range in slider.') if @slider.get_min != @min || @slider.get_max != @max
278
+ end
279
+
280
+ def on_button_set_range(_event)
281
+ do_set_selection_range
282
+ end
283
+
284
+ def on_button_set_line_size(_event)
285
+ do_set_line_size
286
+ end
287
+
288
+ def on_button_set_page_size(_event)
289
+ do_set_page_size
290
+ end
291
+
292
+ def on_button_set_tick_freq(_event)
293
+ do_set_tick_freq
294
+ end
295
+
296
+ def on_button_set_thumb_len(_event)
297
+ do_set_thumb_len
298
+ end
299
+
300
+ def on_check_or_radio_box(_event)
301
+ create_slider
302
+ end
303
+
304
+ def on_slider_scroll(event)
305
+ ::Kernel.raise RuntimeError, 'slider value should be the same' unless event.int == @slider.value
306
+
307
+ eventType = event.event_type
308
+
309
+ # This array takes the EXACT order of the declarations in
310
+ # include/wx/event.h
311
+ # (section "wxScrollBar and wxSlider event identifiers")
312
+ eventNames = %w[
313
+ Wx::EVT_SCROLL_TOP
314
+ Wx::EVT_SCROLL_BOTTOM",
315
+ Wx::EVT_SCROLL_LINEUP
316
+ Wx::EVT_SCROLL_LINEDOWN
317
+ Wx::EVT_SCROLL_PAGEUP
318
+ Wx::EVT_SCROLL_PAGEDOWN
319
+ Wx::EVT_SCROLL_THUMBTRACK
320
+ Wx::EVT_SCROLL_THUMBRELEASE
321
+ Wx::EVT_SCROLL_CHANGED]
322
+
323
+ index = eventType - Wx::EVT_SCROLL_TOP
324
+
325
+ # If this assert is triggered, there is an unknown slider event which
326
+ # should be added to the above eventNames array.
327
+ ::Kernel.raise RuntimeError, 'Unknown slider event' unless index >= 0 && index < eventNames.size
328
+
329
+ Wx.log_message('Slider event #%d: %s (pos = %d, int value = %d)',
330
+ self.class.num_slider_events,
331
+ eventNames[index],
332
+ event.position,
333
+ event.int)
334
+ self.class.num_slider_events += 1
335
+ end
336
+
337
+ def on_slider(event)
338
+ Wx.log_message('Slider event #%d: wxEVT_SLIDER (value = %d)',
339
+ self.class.num_slider_events, event.int)
340
+ self.class.num_slider_events += 1
341
+ end
342
+
343
+ def on_update_ui_value_button(event)
344
+ val = Integer(@textValue.value) rescue false
345
+ event.enable(val && is_valid_value(val))
346
+ end
347
+
348
+ def on_update_ui_min_max_button(event)
349
+ min = Integer(@textMin.value) rescue false
350
+ max = Integer(@textMax.value) rescue false
351
+ event.enable(min && max && min < max)
352
+ end
353
+
354
+ def on_update_ui_range_button(event)
355
+ if @chkSelectRange.value
356
+ min = Integer(@textRangeMin.value) rescue false
357
+ max = Integer(@textRangeMax.value) rescue false
358
+ event.enable(min && max && min < max && min >= @min && max <= @max)
359
+ else
360
+ event.enable(false)
361
+ end
362
+ end
363
+
364
+ def on_update_ui_line_size(event)
365
+ val = Integer(@textLineSize.value) rescue false
366
+ event.enable(val && (val > 0) && (val <= @max - @min))
367
+ end
368
+
369
+ def on_update_ui_page_size(event)
370
+ val = Integer(@textPageSize.value) rescue false
371
+ event.enable(val && (val > 0) && (val <= @max - @min))
372
+ end
373
+
374
+ def on_update_ui_tick_freq(event)
375
+ if %w[WXMSW WXGTK].include?(Wx::PLATFORM)
376
+ val = Integer(@textTickFreq.value) rescue false
377
+ event.enable(val && (val > 0) && (val <= @max - @min))
378
+ else
379
+ event.enable(false)
380
+ end
381
+ end
382
+
383
+ def on_update_ui_thumb_len(event)
384
+ if Wx::PLATFORM == 'WXMSW'
385
+ val = Integer(@textThumbLen.value) rescue false
386
+ event.enable(!!val)
387
+ else
388
+ event.enable(false)
389
+ end
390
+ end
391
+
392
+ def on_update_ui_radio_sides(event)
393
+ event.enable(@chkValueLabel.value || @chkTicks.value)
394
+ end
395
+
396
+ def on_update_ui_both_sides(event)
397
+ event.enable(Wx::PLATFORM == 'WXMSW')
398
+ end
399
+
400
+ def on_update_ui_select_range(event)
401
+ event.enable(Wx::PLATFORM == 'WXMSW')
402
+ end
403
+
404
+ def on_update_ui_reset_button(event)
405
+ event.enable(@chkInverse.value ||
406
+ !@chkTicks.value ||
407
+ !@chkValueLabel.value ||
408
+ !@chkMinMaxLabels.value ||
409
+ @chkBothSides.value ||
410
+ @chkSelectRange.value ||
411
+ @radioSides.selection != ID::SliderTicks_None)
412
+ end
413
+
414
+ def on_update_ui_cur_value_text(event)
415
+ event.set_text(@slider.value.to_s)
416
+ end
417
+
418
+ # reset the slider parameters
419
+ def reset
420
+ @chkInverse.set_value(false)
421
+ @chkTicks.set_value(true)
422
+ @chkValueLabel.set_value(true)
423
+ @chkMinMaxLabels.set_value(true)
424
+ @chkBothSides.set_value(false)
425
+ @chkSelectRange.set_value(false)
426
+
427
+ @radioSides.set_selection(ID::SliderTicks_None)
428
+ end
429
+
430
+ # (re)create the slider
431
+ def create_slider
432
+ flags = get_attrs.default_flags
433
+
434
+ flags |= Wx::SL_INVERSE if @chkInverse.value
435
+ flags |= Wx::SL_MIN_MAX_LABELS if @chkMinMaxLabels.value
436
+ flags |= Wx::SL_VALUE_LABEL if @chkValueLabel.value
437
+ flags |= Wx::SL_AUTOTICKS if @chkTicks.value
438
+
439
+ # notice that the style names refer to the _ticks_ positions while we want
440
+ # to allow the user to select the label(s) positions and the labels are on
441
+ # the opposite side from the ticks, hence the apparent reversal below
442
+ case @radioSides.selection
443
+ when ID::SliderTicks_None
444
+
445
+ when ID::SliderTicks_Top
446
+ flags |= Wx::SL_BOTTOM
447
+
448
+ when ID::SliderTicks_Left
449
+ flags |= Wx::SL_RIGHT | Wx::SL_VERTICAL
450
+
451
+ when ID::SliderTicks_Bottom
452
+ flags |= Wx::SL_TOP
453
+
454
+ when ID::SliderTicks_Right
455
+ flags |= Wx::SL_LEFT | Wx::SL_VERTICAL
456
+
457
+ else
458
+ ::Kernel.raise RuntimeError, 'unexpected radiobox selection'
459
+ end
460
+
461
+ flags |= Wx::SL_BOTH if @chkBothSides.value
462
+ flags |= Wx::SL_SELRANGE if @chkSelectRange.value
463
+
464
+ val = @min
465
+ if @slider
466
+ valOld = @slider.value
467
+ val = valOld if is_valid_value(valOld)
468
+
469
+ @sizerSlider.detach(@slider)
470
+
471
+ if @sizerSlider.get_item_count
472
+ # we have 2 spacers, remove them too
473
+ @sizerSlider.remove(0)
474
+ @sizerSlider.remove(0)
475
+ end
476
+
477
+ @slider.destroy
478
+ end
479
+
480
+ @slider = Wx::Slider.new(self, ID::Slider,
481
+ val, @min, @max,
482
+ style: flags)
483
+
484
+ if @slider.has_flag(Wx::SL_VERTICAL)
485
+ @sizerSlider.add_stretch_spacer(1)
486
+ @sizerSlider.add(@slider, Wx::SizerFlags.new(0).expand.border)
487
+ @sizerSlider.add_stretch_spacer(1)
488
+ else
489
+ @sizerSlider.add(@slider, Wx::SizerFlags.new(1).centre.border)
490
+ end
491
+
492
+ @textLineSize.set_value(@slider.line_size.to_s)
493
+ @textPageSize.set_value(@slider.page_size.to_s)
494
+ @textThumbLen.set_value(@slider.thumb_length.to_s) if Wx::PLATFORM =='WXMSW'
495
+
496
+ do_set_tick_freq if @chkTicks.value
497
+
498
+ do_set_selection_range if @chkSelectRange.value
499
+
500
+ layout
501
+ end
502
+
503
+ # set the line size from the text field value
504
+ def do_set_line_size
505
+ lineSize = Integer(@textLineSize.value) rescue nil
506
+ unless lineSize
507
+ Wx.log_warning('Invalid slider line size')
508
+ return
509
+ end
510
+
511
+ @slider.set_line_size(lineSize)
512
+
513
+ if @slider.line_size != lineSize
514
+ Wx.log_warning('Invalid line size in slider.')
515
+ end
516
+ end
517
+
518
+ # set the page size from the text field value
519
+ def do_set_page_size
520
+ pageSize = Integer(@textPageSize.value) rescue nil
521
+ unless pageSize
522
+ Wx.log_warning('Invalid slider page size')
523
+
524
+ return
525
+ end
526
+
527
+ @slider.set_page_size(pageSize)
528
+
529
+ Wx.log_warning('Invalid page size in slider.') if @slider.page_size != pageSize
530
+ end
531
+
532
+ # set the tick frequency from the text field value
533
+ def do_set_tick_freq
534
+ freq = Integer(@textTickFreq.value) rescue nil
535
+ unless freq
536
+ Wx.log_warning('Invalid slider tick frequency')
537
+
538
+ return
539
+ end
540
+
541
+ @slider.set_tick_freq(freq) if %w[WXMSW WXGTK].include?(Wx::PLATFORM)
542
+ end
543
+
544
+ # set the thumb len from the text field value
545
+ def do_set_thumb_len
546
+ len = Integer(@textThumbLen.value) rescue nil
547
+ unless len
548
+ Wx.log_warning('Invalid slider thumb length')
549
+
550
+ return
551
+ end
552
+
553
+ if Wx::PLATFORM == 'WXMSW'
554
+ @slider.thumb_length(len)
555
+
556
+ if @slider.thumb_length != len
557
+ Wx.log_warning("Invalid thumb length in slider: #{@slider.thumb_length}")
558
+ end
559
+
560
+ layout
561
+ end
562
+ end
563
+
564
+ # set the selection range from the text field values
565
+ def do_set_selection_range
566
+ minNew = Integer(@textRangeMin.value) rescue nil
567
+ maxNew = Integer(@textRangeMax.value) rescue nil
568
+ if minNew.nil? || maxNew.nil? || minNew >= maxNew || minNew < @min || maxNew > @max
569
+ Wx.log_warning('Invalid selection range for the slider.')
570
+
571
+ return
572
+ end
573
+
574
+ @rangeMin = minNew
575
+ @rangeMax = maxNew
576
+
577
+ if Wx::PLATFORM == 'WXMSW'
578
+ @slider.set_selection(@rangeMin, @rangeMax)
579
+
580
+ if @slider.sel_start != @rangeMin || @slider.sel_end != @rangeMax
581
+ Wx.log_warning('Invalid selection range in slider.')
582
+ end
583
+ end
584
+ end
585
+
586
+ # is this slider value in range?
587
+ def is_valid_value(val)
588
+ (val >= @min) && (val <= @max)
589
+ end
590
+ end
591
+
592
+ end
593
+
594
+ end