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,462 @@
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 Button
11
+
12
+ class ButtonPage < Widgets::Page
13
+
14
+ module ID
15
+ include Wx::IDHelper
16
+
17
+ Reset = self.next_id(Widgets::Frame::ID::Last)
18
+ ChangeLabel = self.next_id
19
+ ChangeNote = self.next_id
20
+ ChangeImageMargins = self.next_id
21
+ Button = self.next_id
22
+
23
+ ImagePos_Left = 0
24
+ ImagePos_Right = 1
25
+ ImagePos_Top = 2
26
+ ImagePos_Bottom = 3
27
+
28
+ HAlign_Left = 0
29
+ HAlign_Centre = 1
30
+ HAlign_Right = 2
31
+
32
+ VAlign_Top = 0
33
+ VAlign_Centre = 1
34
+ VAlign_Bottom = 2
35
+ end
36
+
37
+ def initialize(book, images)
38
+ super(book, images, :button)
39
+
40
+ # init everything
41
+ @chkBitmapOnly =
42
+ @chkTextAndBitmap =
43
+ @chkFit =
44
+ @chkAuthNeeded = nil
45
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
46
+ @chkCommandLink = nil
47
+ end # wxUSE_COMMANDLINKBUTTON
48
+ if Wx.has_feature?(:USE_MARKUP)
49
+ @chkUseMarkup = nil
50
+ end # wxUSE_MARKUP
51
+ @chkDefault =
52
+ @chkUseBitmapClass =
53
+ @chkDisable =
54
+ @chkUsePressed =
55
+ @chkUseFocused =
56
+ @chkUseCurrent =
57
+ @chkUseDisabled = nil
58
+
59
+ @radioImagePos =
60
+ @radioHAlign =
61
+ @radioVAlign = nil
62
+
63
+ @textLabel = nil
64
+
65
+ @textImageMarginH = nil
66
+ @textImageMarginV = nil
67
+
68
+ @button = nil
69
+ @sizerButton = nil
70
+
71
+ @imageMarginH = 0
72
+ @imageMarginV = 0
73
+ end
74
+
75
+ Info = Widgets::PageInfo.new(self, 'Button', Widgets::NATIVE_CTRLS)
76
+
77
+ def get_widget
78
+ @button
79
+ end
80
+ def recreate_widget
81
+ create_button
82
+ end
83
+
84
+ # lazy creation of the content
85
+ def create_content
86
+ sizerTop = Wx::HBoxSizer.new
87
+
88
+ # left pane
89
+ sizerLeft = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Set style')
90
+ sizerLeftBox = sizerLeft.get_static_box
91
+
92
+ @chkBitmapOnly = create_check_box_and_add_to_sizer(sizerLeft, "&Bitmap only", Wx::ID_ANY, sizerLeftBox)
93
+ @chkTextAndBitmap = create_check_box_and_add_to_sizer(sizerLeft, "Text &and bitmap", Wx::ID_ANY, sizerLeftBox)
94
+ @chkFit = create_check_box_and_add_to_sizer(sizerLeft, "&Fit exactly", Wx::ID_ANY, sizerLeftBox)
95
+ @chkAuthNeeded = create_check_box_and_add_to_sizer(sizerLeft, "Require a&uth", Wx::ID_ANY, sizerLeftBox)
96
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
97
+ @chkCommandLink = create_check_box_and_add_to_sizer(sizerLeft, "Use command &link button", Wx::ID_ANY, sizerLeftBox)
98
+ end
99
+ if Wx.has_feature?(:USE_MARKUP)
100
+ @chkUseMarkup = create_check_box_and_add_to_sizer(sizerLeft, "Interpret &markup", Wx::ID_ANY, sizerLeftBox)
101
+ end # wxUSE_MARKUP
102
+ @chkDefault = create_check_box_and_add_to_sizer(sizerLeft, "&Default", Wx::ID_ANY, sizerLeftBox)
103
+
104
+ @chkUseBitmapClass = create_check_box_and_add_to_sizer(sizerLeft,
105
+ "Use wxBitmapButton", Wx::ID_ANY, sizerLeftBox)
106
+ @chkUseBitmapClass.set_value(true)
107
+
108
+ @chkDisable = create_check_box_and_add_to_sizer(sizerLeft, "Disable", Wx::ID_ANY, sizerLeftBox)
109
+
110
+ sizerLeft.add_spacer(5)
111
+
112
+ sizerUseLabels =
113
+ Wx::StaticBoxSizer.new(Wx::VERTICAL, sizerLeftBox,
114
+ '&Use the following bitmaps in addition to the normal one?')
115
+ sizerUseLabelsBox = sizerUseLabels.get_static_box
116
+
117
+ @chkUsePressed = create_check_box_and_add_to_sizer(sizerUseLabels,
118
+ "&Pressed (small help icon)", Wx::ID_ANY, sizerUseLabelsBox)
119
+ @chkUseFocused = create_check_box_and_add_to_sizer(sizerUseLabels,
120
+ "&Focused (small error icon)", Wx::ID_ANY, sizerUseLabelsBox)
121
+ @chkUseCurrent = create_check_box_and_add_to_sizer(sizerUseLabels,
122
+ "&Current (small warning icon)", Wx::ID_ANY, sizerUseLabelsBox)
123
+ @chkUseDisabled = create_check_box_and_add_to_sizer(sizerUseLabels,
124
+ "&Disabled (broken image icon)", Wx::ID_ANY, sizerUseLabelsBox)
125
+ sizerLeft.add(sizerUseLabels, Wx::SizerFlags.new.expand.border)
126
+
127
+ sizerLeft.add_spacer(10)
128
+
129
+ dirs = %w[left right top bottom]
130
+ @radioImagePos = Wx::RadioBox.new(sizerLeftBox, Wx::ID_ANY, 'Image &position', choices: dirs)
131
+ sizerLeft.add(@radioImagePos, Wx::SizerFlags.new.expand.border)
132
+
133
+ sizerImageMargins = Wx::StaticBoxSizer.new(Wx::VERTICAL, sizerLeftBox, 'Image margins')
134
+ sizerImageMarginsBox = sizerImageMargins.get_static_box
135
+ sizerImageMarginsRow, @textImageMarginH = create_sizer_with_text_and_button(ID::ChangeImageMargins,
136
+ 'Horizontal and vertical',
137
+ Wx::ID_ANY, sizerImageMarginsBox)
138
+ @textImageMarginH.set_validator(Wx::IntegerValidator.new(0, 100))
139
+
140
+ @textImageMarginV = Wx::TextCtrl.new(sizerImageMarginsBox, validator: Wx::IntegerValidator.new(0,100))
141
+ sizerImageMarginsRow.add(@textImageMarginV, Wx::SizerFlags.new(1).centre_vertical.border(Wx::LEFT))
142
+
143
+ @textImageMarginH.set_value(@imageMarginH.to_s)
144
+ @textImageMarginV.set_value(@imageMarginV.to_s)
145
+
146
+ sizerImageMargins.add(sizerImageMarginsRow, Wx::SizerFlags.new.border.centre)
147
+ sizerLeft.add(sizerImageMargins, Wx::SizerFlags.new.expand.border)
148
+
149
+ sizerLeft.add_spacer(15)
150
+
151
+ # should be in sync with enums Button[HV]Align!
152
+ halign = %w[left centre right]
153
+
154
+ valign = %w[top centre bottom]
155
+
156
+ @radioHAlign = Wx::RadioBox.new(sizerLeftBox, label: '&Horz alignment', choices: halign)
157
+ @radioVAlign = Wx::RadioBox.new(sizerLeftBox, label: '&Vert alignment', choices: valign)
158
+
159
+ sizerLeft.add(@radioHAlign, Wx::SizerFlags.new.expand.border)
160
+ sizerLeft.add(@radioVAlign, Wx::SizerFlags.new.expand.border)
161
+
162
+ sizerLeft.add_spacer(5)
163
+
164
+ btn = Wx::Button.new(sizerLeftBox, ID::Reset, '&Reset')
165
+ sizerLeft.add(btn, Wx::SizerFlags.new.centre_horizontal.triple_border(Wx::ALL))
166
+
167
+ # middle pane
168
+ sizerMiddle = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Operations')
169
+ sizerMiddleBox = sizerMiddle.get_static_box
170
+
171
+ sizerRow, @textLabel = create_sizer_with_text_and_button(ID::ChangeLabel,
172
+ 'Change label',
173
+ Wx::ID_ANY,
174
+ sizerMiddleBox)
175
+ @textLabel.set_value('&Press me!')
176
+ sizerMiddle.add(sizerRow, Wx::SizerFlags.new.expand.border)
177
+
178
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
179
+ @sizerNote, @textNote = create_sizer_with_text_and_button(ID::ChangeNote,
180
+ 'Change note',
181
+ Wx::ID_ANY,
182
+ sizerMiddleBox)
183
+ @textNote.set_value('Writes down button clicks in the log.')
184
+
185
+ sizerMiddle.add(@sizerNote, Wx::SizerFlags.new.expand.border)
186
+ end
187
+
188
+ # right pane
189
+ @sizerButton = Wx::HBoxSizer.new
190
+ @sizerButton.set_min_size(from_dip(150), 0)
191
+
192
+ # the 3 panes panes compose the window
193
+ sizerTop.add(sizerLeft,
194
+ Wx::SizerFlags.new(0).expand.double_border(Wx::ALL & ~Wx::LEFT))
195
+ sizerTop.add(sizerMiddle,
196
+ Wx::SizerFlags.new(1).expand.double_border(Wx::ALL))
197
+ sizerTop.add(@sizerButton,
198
+ Wx::SizerFlags.new(1).expand.double_border(Wx::ALL & ~Wx::RIGHT))
199
+
200
+ # do create the main control
201
+ reset
202
+ create_button
203
+
204
+ set_sizer(sizerTop)
205
+
206
+ # connect event handlers
207
+ evt_button(ID::Button, :on_button)
208
+
209
+ evt_button(ID::Reset, :on_button_reset)
210
+ evt_button(ID::ChangeLabel, :on_button_change_label)
211
+ evt_button(ID::ChangeNote, :on_button_change_note)
212
+ evt_button(ID::ChangeImageMargins, :on_button_change_image_margins)
213
+
214
+ evt_checkbox(Wx::ID_ANY, :on_check_or_radio_box)
215
+ evt_radiobox(Wx::ID_ANY, :on_check_or_radio_box)
216
+ end
217
+
218
+ protected
219
+
220
+ # event handlers
221
+ def on_check_or_radio_box(_event)
222
+ create_button
223
+ layout # make sure the text field for changing note displays correctly.
224
+ end
225
+
226
+ def on_button(_event)
227
+ Wx.log_message('Test button clicked.')
228
+ end
229
+
230
+ def on_button_reset(_event)
231
+ reset
232
+ create_button
233
+ end
234
+
235
+ def on_button_change_label(_event)
236
+ labelText = @textLabel.value
237
+
238
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON) && @cmdLnkButton
239
+ @cmdLnkButton.set_main_label(labelText)
240
+ elsif Wx.has_feature?(:USE_MARKUP) && @chkUseMarkup.value
241
+ @button.set_label_markup(labelText)
242
+ else
243
+ @button.set_label(labelText)
244
+ end
245
+
246
+ create_button if @chkBitmapOnly.checked?
247
+
248
+ @sizerButton.layout
249
+ end
250
+
251
+ def on_button_change_note(_event)
252
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
253
+ @cmdLnkButton.set_note(@textNote.value)
254
+
255
+ @sizerButton.layout
256
+ end # wxUSE_COMMANDLINKBUTTON
257
+ end
258
+
259
+ def on_button_change_image_margins(_event)
260
+ margH = @textImageMarginH.value.to_i
261
+ margV = @textImageMarginV.value.to_i
262
+ if margH < 0 || margV < 0
263
+ Wx.log_warning('Invalid margin values for bitmap.')
264
+ return
265
+ end
266
+
267
+ @imageMarginH = margH
268
+ @imageMarginV = margV
269
+
270
+ @button.set_bitmap_margins(@imageMarginH, @imageMarginV)
271
+ @button.refresh
272
+ @sizerButton.layout
273
+ end
274
+
275
+ # reset the wxButton parameters
276
+ def reset
277
+ @chkBitmapOnly.value = false
278
+ @chkFit.value = false
279
+ @chkAuthNeeded.value = false
280
+ @chkTextAndBitmap.value = false
281
+ @chkDefault.value = false
282
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
283
+ @chkCommandLink.value = false
284
+ end
285
+ if Wx.has_feature?(:USE_MARKUP)
286
+ @chkUseMarkup.value = false
287
+ end # wxUSE_MARKUP
288
+ @chkUseBitmapClass.value = true
289
+ @chkDisable.value = false
290
+
291
+ @chkUsePressed.value = true
292
+ @chkUseFocused.value = true
293
+ @chkUseCurrent.value = true
294
+ @chkUseDisabled.value = true
295
+
296
+ @radioImagePos.set_selection(ID::ImagePos_Left)
297
+ @radioHAlign.set_selection(ID::HAlign_Centre)
298
+ @radioVAlign.set_selection(ID::VAlign_Centre)
299
+
300
+ @imageMarginH = 0
301
+ @imageMarginV = 0
302
+ @textImageMarginH.value = @imageMarginH.to_s
303
+ @textImageMarginV.value = @imageMarginV.to_s
304
+ end
305
+
306
+ # (re)create the wxButton
307
+ def create_button
308
+ label = ''
309
+ if @button
310
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON) && @cmdLnkButton
311
+ label = @cmdLnkButton.get_main_label
312
+ else
313
+ label = @button.get_label
314
+ end
315
+
316
+ @sizerButton.item_count.times { @sizerButton.remove(0) }
317
+
318
+ @button.destroy
319
+ end
320
+
321
+ if label.empty?
322
+ # creating for the first time or recreating a button after bitmap
323
+ # button
324
+ label = @textLabel.get_value
325
+ end
326
+
327
+ flags = get_attrs.default_flags
328
+ case @radioHAlign.selection
329
+ when ID::HAlign_Left
330
+ flags |= Wx::BU_LEFT
331
+ when ID::HAlign_Centre
332
+ # noop
333
+ when ID::HAlign_Right
334
+ flags |= Wx::BU_RIGHT
335
+ else
336
+ ::Kernel.raise RuntimeError, "unexpected radiobox selection"
337
+ end
338
+
339
+ case @radioVAlign.selection
340
+ when ID::VAlign_Top
341
+ flags |= Wx::BU_TOP
342
+ when ID::VAlign_Centre
343
+ # centre vertical alignment is the default (no style)
344
+ when ID::VAlign_Bottom
345
+ flags |= Wx::BU_BOTTOM
346
+ else
347
+ ::Kernel.raise RuntimeError, "unexpected radiobox selection"
348
+ end
349
+
350
+
351
+ flags |= Wx::BU_EXACTFIT if @chkFit.value
352
+
353
+ showsBitmap = false
354
+ if @chkBitmapOnly.value
355
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
356
+ @chkCommandLink.value = false # Wx::CommandLinkButton cannot be "Bitmap only"
357
+ end
358
+
359
+ showsBitmap = true
360
+
361
+ if @chkUseBitmapClass.value
362
+ bbtn = Wx::BitmapButton.new(self, ID::Button,
363
+ create_bitmap('normal', Wx::ART_INFORMATION),
364
+ style: flags)
365
+ else
366
+ bbtn = Wx::Button.new(self, ID::Button)
367
+ bbtn.set_bitmap_label(create_bitmap('normal', Wx::ART_INFORMATION))
368
+ end
369
+ bbtn.set_bitmap_margins(@imageMarginH, @imageMarginV)
370
+
371
+ bbtn.set_bitmap_pressed(create_bitmap('pushed', Wx::ART_HELP)) if @chkUsePressed.value
372
+ bbtn.set_bitmap_focus(create_bitmap('focused', Wx::ART_ERROR)) if @chkUseFocused.value
373
+ bbtn.set_bitmap_current(create_bitmap('hover', Wx::ART_WARNING)) if @chkUseCurrent.value
374
+ bbtn.set_bitmap_disabled(create_bitmap('disabled', Wx::ART_MISSING_IMAGE)) if @chkUseDisabled.value
375
+
376
+ @button = bbtn
377
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
378
+ @cmdLnkButton = nil
379
+ end
380
+ else # normal button
381
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON) && @chkCommandLink.value
382
+ @cmdLnkButton = Wx::CommandLinkButton.new(self, ID::Button,
383
+ label,
384
+ @textNote.value,
385
+ style: flags)
386
+ @button = @cmdLnkButton
387
+ else
388
+ @button = Wx::Button.new(self, ID::Button, label, style: flags)
389
+ @cmdLnkButton = nil
390
+ end
391
+ end
392
+
393
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
394
+ @sizerNote.show_items(@chkCommandLink.value)
395
+ end
396
+
397
+ if !showsBitmap && @chkTextAndBitmap.value
398
+ showsBitmap = true
399
+
400
+ positions = [Wx::LEFT, Wx::RIGHT, Wx::TOP, Wx::BOTTOM]
401
+
402
+ @button.set_bitmap(Wx::ArtProvider.get_icon(Wx::ART_INFORMATION, Wx::ART_BUTTON),
403
+ positions[@radioImagePos.selection])
404
+
405
+ @button.set_bitmap_margins(@imageMarginH, @imageMarginV)
406
+
407
+ @button.set_bitmap_pressed(Wx::ArtProvider.get_icon(Wx::ART_HELP, Wx::ART_BUTTON)) if @chkUsePressed.value
408
+ @button.set_bitmap_focus(Wx::ArtProvider.get_icon(Wx::ART_ERROR, Wx::ART_BUTTON)) if @chkUseFocused.value
409
+ @button.set_bitmap_current(Wx::ArtProvider.get_icon(Wx::ART_WARNING, Wx::ART_BUTTON)) if @chkUseCurrent.value
410
+ @button.set_bitmap_disabled(Wx::ArtProvider.get_icon(Wx::ART_MISSING_IMAGE, Wx::ART_BUTTON)) if @chkUseDisabled.value
411
+ end
412
+
413
+ @chkTextAndBitmap.enable(!@chkBitmapOnly.checked?)
414
+ @chkBitmapOnly.enable(!@chkTextAndBitmap.checked?)
415
+ if Wx.has_feature?(:USE_COMMANDLINKBUTTON)
416
+ @chkCommandLink.enable(!@chkBitmapOnly.checked?)
417
+ end
418
+ @chkUseBitmapClass.enable(showsBitmap)
419
+
420
+ @chkUsePressed.enable(showsBitmap)
421
+ @chkUseFocused.enable(showsBitmap)
422
+ @chkUseCurrent.enable(showsBitmap)
423
+ @chkUseDisabled.enable(showsBitmap)
424
+ @radioImagePos.enable(@chkTextAndBitmap.checked?)
425
+ @textImageMarginH.enable(showsBitmap)
426
+ @textImageMarginV.enable(showsBitmap)
427
+ Wx::Window.find_window_by_id(ID::ChangeImageMargins).enable(showsBitmap)
428
+
429
+ @button.set_auth_needed if @chkAuthNeeded.value
430
+
431
+ @button.set_default if @chkDefault.value
432
+
433
+ @button.enable(!@chkDisable.checked?)
434
+
435
+ @sizerButton.add_stretch_spacer
436
+ @sizerButton.add(@button, Wx::SizerFlags.new.centre.border)
437
+ @sizerButton.add_stretch_spacer
438
+
439
+ @sizerButton.layout
440
+ end
441
+
442
+ # helper function: create a bitmap bundle for wxBitmapButton
443
+ def create_bitmap(label, type)
444
+ bmp = Wx::Bitmap.new(from_dip(Wx::Size.new(180, 70))) # shouldn't hardcode but it's simpler like this
445
+ Wx::MemoryDC.draw_on(bmp) do |dc|
446
+ dc.set_font(self.font)
447
+ dc.set_background(Wx::CYAN_BRUSH)
448
+ dc.clear
449
+ dc.set_text_foreground(Wx::BLACK)
450
+ dc.draw_label(Wx.strip_menu_codes(@textLabel.value) + "\n" +
451
+ "(" + label + " state)",
452
+ Wx::ArtProvider.get_bitmap(type),
453
+ Wx::Rect.new(10, 10, bmp.width - 20, bmp.height - 20),
454
+ Wx::ALIGN_CENTRE)
455
+ end
456
+ bmp
457
+ end
458
+ end
459
+
460
+ end
461
+
462
+ end
@@ -0,0 +1,211 @@
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 Checkbox
11
+
12
+ class CheckboxPage < Widgets::Page
13
+
14
+ module ID
15
+ include Wx::IDHelper
16
+
17
+ Reset = self.next_id(Widgets::Frame::ID::Last)
18
+ ChangeLabel = self.next_id
19
+ Check = self.next_id
20
+ Uncheck = self.next_id
21
+ PartCheck = self.next_id
22
+ ChkRight = self.next_id
23
+ Checkbox = self.next_id
24
+
25
+ Kind_2State = 0
26
+ Kind_3State = 1
27
+ Kind_3StateUser = 2
28
+ end
29
+
30
+ def initialize(book, images)
31
+ super(book, images, :checkbox)
32
+ # the controls to choose the checkbox style
33
+ @chkRight = @radioKind = nil
34
+
35
+ # the checkbox itself and the sizer it is in
36
+ @checkbox = @sizerCheckbox = nil
37
+
38
+ # the text entries for command parameters
39
+ @textLabel = nil
40
+ end
41
+
42
+ Info = Widgets::PageInfo.new(self, 'CheckBox', Widgets::NATIVE_CTRLS)
43
+
44
+ def get_widget
45
+ @checkbox
46
+ end
47
+
48
+ def recreate_widget
49
+ create_checkbox
50
+ end
51
+
52
+ # lazy creation of the content
53
+ def create_content
54
+ sizerTop = Wx::HBoxSizer.new
55
+
56
+ # left pane
57
+ sizerLeft = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Set style')
58
+ sizerLeftBox = sizerLeft.get_static_box
59
+
60
+ @chkRight = create_check_box_and_add_to_sizer(sizerLeft,
61
+ '&Right aligned',
62
+ ID::ChkRight,
63
+ sizerLeftBox)
64
+
65
+ sizerLeft.add(5, 5, 0, Wx::GROW | Wx::ALL, 5) # spacer
66
+
67
+ kinds = [
68
+ 'usual &2-state checkbox',
69
+ '&3rd state settable by program',
70
+ '&user-settable 3rd state',
71
+ ]
72
+
73
+ @radioKind = Wx::RadioBox.new(sizerLeftBox, label: "&Kind",
74
+ choices: kinds,
75
+ major_dimension: 1)
76
+ sizerLeft.add(@radioKind, 0, Wx::GROW | Wx::ALL, 5)
77
+ btn = Wx::Button.new(sizerLeftBox, ID::Reset, '&Reset')
78
+ sizerLeft.add(btn, 0, Wx::ALIGN_CENTRE_HORIZONTAL | Wx::ALL, 15)
79
+
80
+ # middle pane
81
+ sizerMiddle = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Operations')
82
+ sizerMiddleBox = sizerMiddle.get_static_box
83
+
84
+ chgLblSzr, @textLabel = create_sizer_with_text_and_button(ID::ChangeLabel,
85
+ 'Change label',
86
+ Wx::ID_ANY,
87
+ sizerMiddleBox)
88
+ @textLabel.value = '&Check me!'
89
+ sizerMiddle.add(chgLblSzr,
90
+ 0, Wx::ALL | Wx::GROW, 5)
91
+ sizerMiddle.add(Wx::Button.new(sizerMiddleBox, ID::Check, '&Check it'),
92
+ 0, Wx::ALL | Wx::GROW, 5)
93
+ sizerMiddle.add(Wx::Button.new(sizerMiddleBox, ID::Uncheck, '&Uncheck it'),
94
+ 0, Wx::ALL | Wx::GROW, 5)
95
+ sizerMiddle.add(Wx::Button.new(sizerMiddleBox, ID::PartCheck, 'Put in &3rd state'),
96
+ 0, Wx::ALL | Wx::GROW, 5)
97
+
98
+ # right pane
99
+ sizerRight = Wx::HBoxSizer.new
100
+ @checkbox = Wx::CheckBox.new(self, ID::Checkbox, '&Check me!')
101
+ sizerRight.add(0, 0, 1, Wx::CENTRE)
102
+ sizerRight.add(@checkbox, 1, Wx::CENTRE)
103
+ sizerRight.add(0, 0, 1, Wx::CENTRE)
104
+ sizerRight.set_min_size(150, 0)
105
+ @sizerCheckbox = sizerRight # save it to modify it later
106
+
107
+ # the 3 panes panes compose the window
108
+ sizerTop.add(sizerLeft, 0, Wx::GROW | (Wx::ALL & ~Wx::LEFT), 10)
109
+ sizerTop.add(sizerMiddle, 1, Wx::GROW | Wx::ALL, 10)
110
+ sizerTop.add(sizerRight, 1, Wx::GROW | (Wx::ALL & ~Wx::RIGHT), 10)
111
+
112
+ # final initializations
113
+ reset
114
+
115
+ set_sizer(sizerTop)
116
+
117
+ # connect event handlers
118
+ evt_checkbox(ID::Checkbox, :on_check_box)
119
+
120
+ evt_button(ID::Reset, :on_button_reset)
121
+ evt_button(ID::ChangeLabel, :on_button_change_label)
122
+ evt_button(ID::Check, :on_button_check)
123
+ evt_button(ID::Uncheck, :on_button_uncheck)
124
+ evt_button(ID::PartCheck, :on_button_part_check)
125
+
126
+ evt_update_ui(ID::PartCheck, :is3_state)
127
+
128
+ evt_radiobox(Wx::ID_ANY, :on_style_change)
129
+ evt_checkbox(ID::ChkRight, :on_style_change)
130
+ end
131
+
132
+ protected
133
+
134
+ # event handlers
135
+ def on_check_box(event)
136
+ Wx.log_message("Test checkbox #{event.checked? ? '' : 'un'}checked (value = #{@checkbox.get3state_value.inspect}).")
137
+ end
138
+
139
+ def on_style_change(_event)
140
+ create_checkbox
141
+ end
142
+
143
+ def on_button_reset(_event)
144
+ reset
145
+
146
+ create_checkbox
147
+ end
148
+
149
+ def on_button_change_label(_event)
150
+ @checkbox.set_label(@textLabel.value)
151
+ end
152
+
153
+ def on_button_check(_)
154
+ @checkbox.value = true
155
+ end
156
+ def on_button_uncheck(_)
157
+ @checkbox.value = false
158
+ end
159
+ def on_button_part_check(_)
160
+ @checkbox.set3state_value(Wx::CHK_UNDETERMINED)
161
+ end
162
+
163
+ def is3_state(event)
164
+ event.enable(@checkbox.is3state)
165
+ end
166
+
167
+ # reset the wxCheckBox parameters
168
+ def reset
169
+ @chkRight.value = false
170
+ @radioKind.set_selection(ID::Kind_2State)
171
+ end
172
+
173
+ # (re)create the wxCheckBox
174
+ def create_checkbox
175
+ label = ''
176
+ if @checkbox
177
+ label = @checkbox.label
178
+
179
+ @sizerCheckbox.item_count.times { @sizerCheckbox.remove(0) }
180
+
181
+ @checkbox.destroy
182
+ end
183
+
184
+ flags = get_attrs.default_flags
185
+ flags |= Wx::ALIGN_RIGHT if @chkRight.checked?
186
+
187
+ case @radioKind.selection
188
+ when ID::Kind_2State
189
+ flags |= Wx::CHK_2STATE
190
+ when ID::Kind_3StateUser
191
+ flags |= (Wx::CHK_ALLOW_3RD_STATE_FOR_USER|Wx::CHK_3STATE)
192
+ when ID::Kind_3State
193
+ flags |= Wx::CHK_3STATE
194
+ else
195
+ ::Kernel.raise RuntimeError, 'unexpected radiobox selection'
196
+ end
197
+
198
+ @checkbox = Wx::CheckBox.new(self, ID::Checkbox, label,
199
+ style: flags)
200
+
201
+ @sizerCheckbox.add(0, 0, 1, Wx::CENTRE)
202
+ @sizerCheckbox.add(@checkbox, 1, Wx::CENTRE)
203
+ @sizerCheckbox.add(0, 0, 1, Wx::CENTRE)
204
+ @sizerCheckbox.layout
205
+ end
206
+
207
+ end
208
+
209
+ end
210
+
211
+ end