wxruby3 0.9.1-x64-mingw-ucrt → 0.9.3-x64-mingw-ucrt

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/INSTALL.md +35 -29
  4. data/README.md +24 -15
  5. data/ext/wxbase32u_gcc_custom.dll +0 -0
  6. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  7. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  8. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  9. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  10. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  11. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  12. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  13. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  14. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  18. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  19. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  20. data/lib/wx/aui/aui_tab_ctrl.rb +18 -0
  21. data/lib/wx/aui/auinotebook.rb +6 -2
  22. data/lib/wx/aui/require.rb +1 -0
  23. data/lib/wx/core/app.rb +2 -2
  24. data/lib/wx/core/bitmap_combobox.rb +17 -21
  25. data/lib/wx/core/collapsible_pane.rb +1 -1
  26. data/lib/wx/core/combobox.rb +13 -3
  27. data/lib/wx/core/controlwithitems.rb +40 -128
  28. data/lib/wx/core/enum.rb +17 -1
  29. data/lib/wx/core/event.rb +6 -1
  30. data/lib/wx/core/events/evt_list.rb +5 -4
  31. data/lib/wx/core/evthandler.rb +8 -2
  32. data/lib/wx/core/generic_validator.rb +312 -0
  33. data/lib/wx/core/listbox.rb +2 -2
  34. data/lib/wx/core/log.rb +1 -1
  35. data/lib/wx/core/menu.rb +10 -0
  36. data/lib/wx/core/notebook.rb +6 -2
  37. data/lib/wx/core/owner_drawn_combobox.rb +45 -0
  38. data/lib/wx/core/size.rb +4 -0
  39. data/lib/wx/core/sizer.rb +12 -2
  40. data/lib/wx/core/standard_paths.rb +22 -0
  41. data/lib/wx/core/task_bar_button.rb +19 -0
  42. data/lib/wx/core/text_entry.rb +4 -1
  43. data/lib/wx/core/textctrl.rb +11 -1
  44. data/lib/wx/core/{treectrl.rb → tree_ctrl.rb} +31 -12
  45. data/lib/wx/core/validator.rb +70 -5
  46. data/lib/wx/core/window.rb +13 -7
  47. data/lib/wx/doc/app.rb +48 -38
  48. data/lib/wx/doc/art_locator.rb +48 -43
  49. data/lib/wx/doc/aui/auimanager.rb +16 -8
  50. data/lib/wx/doc/aui/auinotebook.rb +20 -5
  51. data/lib/wx/doc/clipboard.rb +11 -7
  52. data/lib/wx/doc/colour_dialog.rb +14 -10
  53. data/lib/wx/doc/comboctrl.rb +18 -0
  54. data/lib/wx/doc/controlwithitems.rb +34 -8
  55. data/lib/wx/doc/data_object.rb +2 -2
  56. data/lib/wx/doc/date_picker_ctrl.rb +23 -0
  57. data/lib/wx/doc/editable_listbox.rb +44 -0
  58. data/lib/wx/doc/enum.rb +15 -0
  59. data/lib/wx/doc/event.rb +12 -0
  60. data/lib/wx/doc/evthandler.rb +113 -108
  61. data/lib/wx/doc/extra/12_client_data.md +89 -0
  62. data/lib/wx/doc/extra/13_validators.md +139 -0
  63. data/lib/wx/doc/font.rb +1 -0
  64. data/lib/wx/doc/gc_dc.rb +6 -1
  65. data/lib/wx/doc/gdi_common.rb +4 -0
  66. data/lib/wx/doc/gen/about_dialog_info.rb +26 -2
  67. data/lib/wx/doc/gen/accelerator.rb +19 -4
  68. data/lib/wx/doc/gen/accessible.rb +48 -47
  69. data/lib/wx/doc/gen/activity_indicator.rb +10 -4
  70. data/lib/wx/doc/gen/animation.rb +19 -3
  71. data/lib/wx/doc/gen/animation_ctrl.rb +16 -7
  72. data/lib/wx/doc/gen/any_button.rb +22 -1
  73. data/lib/wx/doc/gen/app.rb +41 -5
  74. data/lib/wx/doc/gen/app_traits.rb +65 -15
  75. data/lib/wx/doc/gen/art_provider.rb +33 -7
  76. data/lib/wx/doc/gen/aui/aui_dock_art.rb +18 -3
  77. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +2 -0
  78. data/lib/wx/doc/gen/aui/aui_manager.rb +35 -8
  79. data/lib/wx/doc/gen/aui/aui_manager_event.rb +11 -4
  80. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +4 -0
  81. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +3 -0
  82. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +8 -1
  83. data/lib/wx/doc/gen/aui/aui_notebook.rb +31 -7
  84. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +5 -4
  85. data/lib/wx/doc/gen/aui/aui_pane_info.rb +38 -2
  86. data/lib/wx/doc/gen/aui/aui_tab_art.rb +9 -3
  87. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +2 -1
  88. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +20 -6
  89. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +4 -2
  90. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +5 -7
  91. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +5 -1
  92. data/lib/wx/doc/gen/aui/event_list.rb +164 -160
  93. data/lib/wx/doc/gen/banner_window.rb +8 -1
  94. data/lib/wx/doc/gen/bitmap.rb +94 -16
  95. data/lib/wx/doc/gen/bitmap_button.rb +16 -8
  96. data/lib/wx/doc/gen/bitmap_combo_box.rb +20 -10
  97. data/lib/wx/doc/gen/book_ctrl_base.rb +31 -4
  98. data/lib/wx/doc/gen/book_ctrl_event.rb +9 -3
  99. data/lib/wx/doc/gen/box_sizer.rb +5 -1
  100. data/lib/wx/doc/gen/brush.rb +20 -2
  101. data/lib/wx/doc/gen/busy_info.rb +10 -2
  102. data/lib/wx/doc/gen/button.rb +31 -11
  103. data/lib/wx/doc/gen/calculate_layout_event.rb +5 -3
  104. data/lib/wx/doc/gen/calendar_ctrl.rb +38 -13
  105. data/lib/wx/doc/gen/calendar_date_attr.rb +2 -1
  106. data/lib/wx/doc/gen/calendar_event.rb +5 -2
  107. data/lib/wx/doc/gen/caret.rb +3 -1
  108. data/lib/wx/doc/gen/check_box.rb +17 -7
  109. data/lib/wx/doc/gen/check_list_box.rb +8 -6
  110. data/lib/wx/doc/gen/choice.rb +28 -9
  111. data/lib/wx/doc/gen/choicebook.rb +7 -7
  112. data/lib/wx/doc/gen/client_dc.rb +6 -2
  113. data/lib/wx/doc/gen/clipboard.rb +16 -3
  114. data/lib/wx/doc/gen/collapsible_pane.rb +9 -7
  115. data/lib/wx/doc/gen/collapsible_pane_event.rb +3 -3
  116. data/lib/wx/doc/gen/colour.rb +28 -4
  117. data/lib/wx/doc/gen/colour_dialog.rb +15 -7
  118. data/lib/wx/doc/gen/colour_picker_ctrl.rb +13 -10
  119. data/lib/wx/doc/gen/colour_picker_event.rb +5 -5
  120. data/lib/wx/doc/gen/combo_box.rb +36 -14
  121. data/lib/wx/doc/gen/combo_ctrl.rb +117 -295
  122. data/lib/wx/doc/gen/command_link_button.rb +12 -5
  123. data/lib/wx/doc/gen/context_help_button.rb +13 -3
  124. data/lib/wx/doc/gen/control.rb +22 -8
  125. data/lib/wx/doc/gen/control_with_items.rb +45 -10
  126. data/lib/wx/doc/gen/core.rb +4 -4
  127. data/lib/wx/doc/gen/cursor.rb +10 -8
  128. data/lib/wx/doc/gen/data_format.rb +7 -1
  129. data/lib/wx/doc/gen/data_object.rb +42 -18
  130. data/lib/wx/doc/gen/date_event.rb +3 -2
  131. data/lib/wx/doc/gen/date_picker_ctrl.rb +18 -8
  132. data/lib/wx/doc/gen/dc.rb +238 -36
  133. data/lib/wx/doc/gen/defs.rb +51 -51
  134. data/lib/wx/doc/gen/dial_up_event.rb +2 -1
  135. data/lib/wx/doc/gen/dial_up_manager.rb +25 -5
  136. data/lib/wx/doc/gen/dialog.rb +72 -13
  137. data/lib/wx/doc/gen/dir_dialog.rb +22 -5
  138. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +2 -0
  139. data/lib/wx/doc/gen/dir_picker_ctrl.rb +14 -10
  140. data/lib/wx/doc/gen/drag_drop.rb +28 -7
  141. data/lib/wx/doc/gen/drag_image.rb +13 -2
  142. data/lib/wx/doc/gen/editable_list_box.rb +7 -5
  143. data/lib/wx/doc/gen/event.rb +57 -26
  144. data/lib/wx/doc/gen/event_blocker.rb +2 -3
  145. data/lib/wx/doc/gen/event_filter.rb +3 -0
  146. data/lib/wx/doc/gen/event_list.rb +1656 -1652
  147. data/lib/wx/doc/gen/events.rb +305 -173
  148. data/lib/wx/doc/gen/evt_handler.rb +49 -3
  149. data/lib/wx/doc/gen/ext_help_controller.rb +10 -1
  150. data/lib/wx/doc/gen/file_ctrl.rb +28 -10
  151. data/lib/wx/doc/gen/file_ctrl_event.rb +7 -4
  152. data/lib/wx/doc/gen/file_dialog.rb +44 -14
  153. data/lib/wx/doc/gen/file_dialog_custom_control.rb +19 -0
  154. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +11 -3
  155. data/lib/wx/doc/gen/file_dir_picker_event.rb +4 -4
  156. data/lib/wx/doc/gen/file_picker_ctrl.rb +12 -9
  157. data/lib/wx/doc/gen/file_system.rb +54 -15
  158. data/lib/wx/doc/gen/find_dialog_event.rb +6 -4
  159. data/lib/wx/doc/gen/find_replace_data.rb +2 -1
  160. data/lib/wx/doc/gen/find_replace_dialog.rb +4 -1
  161. data/lib/wx/doc/gen/flex_grid_sizer.rb +13 -1
  162. data/lib/wx/doc/gen/font.rb +103 -20
  163. data/lib/wx/doc/gen/font_data.rb +16 -3
  164. data/lib/wx/doc/gen/font_dialog.rb +6 -1
  165. data/lib/wx/doc/gen/font_picker_ctrl.rb +14 -7
  166. data/lib/wx/doc/gen/font_picker_event.rb +3 -3
  167. data/lib/wx/doc/gen/frame.rb +73 -15
  168. data/lib/wx/doc/gen/fs_file.rb +39 -10
  169. data/lib/wx/doc/gen/gauge.rb +19 -8
  170. data/lib/wx/doc/gen/gb_sizer_item.rb +5 -1
  171. data/lib/wx/doc/gen/gcdc.rb +3 -2
  172. data/lib/wx/doc/gen/gdi_common.rb +80 -11
  173. data/lib/wx/doc/gen/gdi_object.rb +1 -1
  174. data/lib/wx/doc/gen/generic_dir_ctrl.rb +13 -7
  175. data/lib/wx/doc/gen/graphics_context.rb +86 -10
  176. data/lib/wx/doc/gen/graphics_object.rb +35 -6
  177. data/lib/wx/doc/gen/grid/event_list.rb +168 -164
  178. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +3 -0
  179. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +16 -3
  180. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +1 -1
  181. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +2 -1
  182. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +2 -1
  183. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +1 -1
  184. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +2 -1
  185. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +2 -1
  186. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +2 -1
  187. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +2 -1
  188. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +10 -1
  189. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +2 -1
  190. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +2 -1
  191. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +1 -1
  192. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +2 -1
  193. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +2 -1
  194. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +1 -1
  195. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +7 -1
  196. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +1 -1
  197. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +1 -1
  198. data/lib/wx/doc/gen/grid/grid_ctrl.rb +256 -12
  199. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +6 -4
  200. data/lib/wx/doc/gen/grid/grid_event.rb +6 -4
  201. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +4 -4
  202. data/lib/wx/doc/gen/grid/grid_size_event.rb +4 -4
  203. data/lib/wx/doc/gen/grid/grid_string_table.rb +8 -0
  204. data/lib/wx/doc/gen/grid/grid_table_base.rb +28 -3
  205. data/lib/wx/doc/gen/grid/grid_table_message.rb +2 -0
  206. data/lib/wx/doc/gen/grid_bag_sizer.rb +21 -7
  207. data/lib/wx/doc/gen/grid_sizer.rb +11 -1
  208. data/lib/wx/doc/gen/gui_event_loop.rb +13 -3
  209. data/lib/wx/doc/gen/header_ctrl.rb +110 -11
  210. data/lib/wx/doc/gen/header_ctrl_event.rb +4 -2
  211. data/lib/wx/doc/gen/help_controller.rb +14 -3
  212. data/lib/wx/doc/gen/help_provider.rb +22 -4
  213. data/lib/wx/doc/gen/html/event_list.rb +41 -37
  214. data/lib/wx/doc/gen/html/html_cell.rb +48 -6
  215. data/lib/wx/doc/gen/html/html_cell_event.rb +5 -4
  216. data/lib/wx/doc/gen/html/html_easy_printing.rb +20 -3
  217. data/lib/wx/doc/gen/html/html_help_controller.rb +26 -2
  218. data/lib/wx/doc/gen/html/html_help_data.rb +8 -1
  219. data/lib/wx/doc/gen/html/html_help_window.rb +9 -1
  220. data/lib/wx/doc/gen/html/html_link_event.rb +3 -3
  221. data/lib/wx/doc/gen/html/html_list_box.rb +54 -16
  222. data/lib/wx/doc/gen/html/html_printout.rb +7 -1
  223. data/lib/wx/doc/gen/html/html_window.rb +43 -6
  224. data/lib/wx/doc/gen/hyperlink_ctrl.rb +9 -8
  225. data/lib/wx/doc/gen/hyperlink_event.rb +3 -3
  226. data/lib/wx/doc/gen/icon.rb +23 -29
  227. data/lib/wx/doc/gen/icon_location.rb +1 -1
  228. data/lib/wx/doc/gen/image.rb +143 -20
  229. data/lib/wx/doc/gen/image_list.rb +25 -6
  230. data/lib/wx/doc/gen/info_bar.rb +14 -2
  231. data/lib/wx/doc/gen/keyboard_state.rb +11 -1
  232. data/lib/wx/doc/gen/list_box.rb +46 -17
  233. data/lib/wx/doc/gen/list_ctrl.rb +165 -29
  234. data/lib/wx/doc/gen/list_event.rb +13 -4
  235. data/lib/wx/doc/gen/listbook.rb +7 -7
  236. data/lib/wx/doc/gen/locale.rb +68 -4
  237. data/lib/wx/doc/gen/log.rb +58 -12
  238. data/lib/wx/doc/gen/mdi_client_window.rb +11 -2
  239. data/lib/wx/doc/gen/mdi_frame.rb +51 -7
  240. data/lib/wx/doc/gen/media_ctrl.rb +43 -18
  241. data/lib/wx/doc/gen/media_event.rb +6 -4
  242. data/lib/wx/doc/gen/memory_dc.rb +16 -6
  243. data/lib/wx/doc/gen/menu.rb +81 -26
  244. data/lib/wx/doc/gen/menu_bar.rb +74 -15
  245. data/lib/wx/doc/gen/menu_item.rb +67 -19
  246. data/lib/wx/doc/gen/message_dialog.rb +17 -8
  247. data/lib/wx/doc/gen/mini_frame.rb +14 -5
  248. data/lib/wx/doc/gen/mirror_dc.rb +1 -2
  249. data/lib/wx/doc/gen/mouse_state.rb +1 -1
  250. data/lib/wx/doc/gen/multi_choice_dialog.rb +9 -4
  251. data/lib/wx/doc/gen/non_owned_window.rb +4 -1
  252. data/lib/wx/doc/gen/notebook.rb +27 -9
  253. data/lib/wx/doc/gen/num_validator.rb +37 -0
  254. data/lib/wx/doc/gen/number_entry_dialog.rb +5 -1
  255. data/lib/wx/doc/gen/object.rb +3 -1
  256. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +340 -0
  257. data/lib/wx/doc/gen/paint_dc.rb +1 -1
  258. data/lib/wx/doc/gen/palette.rb +5 -1
  259. data/lib/wx/doc/gen/panel.rb +25 -8
  260. data/lib/wx/doc/gen/pen.rb +46 -8
  261. data/lib/wx/doc/gen/pg/event_list.rb +97 -93
  262. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +4 -1
  263. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +12 -1
  264. data/lib/wx/doc/gen/pg/pg_cell.rb +11 -3
  265. data/lib/wx/doc/gen/pg/pg_editor.rb +161 -16
  266. data/lib/wx/doc/gen/pg/pg_multi_button.rb +3 -2
  267. data/lib/wx/doc/gen/pg/pg_properties.rb +632 -83
  268. data/lib/wx/doc/gen/pg/pg_property.rb +381 -77
  269. data/lib/wx/doc/gen/pg/pg_validation_info.rb +11 -4
  270. data/lib/wx/doc/gen/pg/property_grid.rb +123 -20
  271. data/lib/wx/doc/gen/pg/property_grid_event.rb +41 -9
  272. data/lib/wx/doc/gen/pg/property_grid_interface.rb +273 -34
  273. data/lib/wx/doc/gen/pg/property_grid_manager.rb +62 -10
  274. data/lib/wx/doc/gen/pg/property_grid_page.rb +33 -8
  275. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +18 -4
  276. data/lib/wx/doc/gen/picker_base.rb +22 -5
  277. data/lib/wx/doc/gen/platform_info.rb +35 -9
  278. data/lib/wx/doc/gen/popup_window.rb +7 -5
  279. data/lib/wx/doc/gen/progress_dialog.rb +5 -0
  280. data/lib/wx/doc/gen/property_sheet_dialog.rb +20 -4
  281. data/lib/wx/doc/gen/prt/event_list.rb +8 -4
  282. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +3 -1
  283. data/lib/wx/doc/gen/prt/post_script_dc.rb +3 -2
  284. data/lib/wx/doc/gen/prt/preview_frame.rb +5 -1
  285. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +4 -0
  286. data/lib/wx/doc/gen/prt/print_data.rb +31 -3
  287. data/lib/wx/doc/gen/prt/print_dialog.rb +5 -1
  288. data/lib/wx/doc/gen/prt/printer.rb +87 -11
  289. data/lib/wx/doc/gen/prt/printer_dc.rb +3 -1
  290. data/lib/wx/doc/gen/query_layout_info_event.rb +10 -3
  291. data/lib/wx/doc/gen/radio_box.rb +28 -10
  292. data/lib/wx/doc/gen/radio_button.rb +22 -9
  293. data/lib/wx/doc/gen/rbn/event_list.rb +127 -123
  294. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +82 -3
  295. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +26 -4
  296. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +3 -2
  297. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +50 -12
  298. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +3 -2
  299. data/lib/wx/doc/gen/rbn/ribbon_control.rb +11 -1
  300. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +21 -11
  301. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +2 -2
  302. data/lib/wx/doc/gen/rbn/ribbon_page.rb +12 -1
  303. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +16 -4
  304. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +3 -3
  305. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +27 -3
  306. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +3 -1
  307. data/lib/wx/doc/gen/rearrange_ctrl.rb +5 -2
  308. data/lib/wx/doc/gen/rearrange_list.rb +12 -4
  309. data/lib/wx/doc/gen/region.rb +104 -17
  310. data/lib/wx/doc/gen/region_iterator.rb +1 -1
  311. data/lib/wx/doc/gen/rtc/event_list.rb +116 -112
  312. data/lib/wx/doc/gen/rtc/rich_text_box.rb +27 -9
  313. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +45 -11
  314. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +1 -1
  315. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +23 -14
  316. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +84 -7
  317. data/lib/wx/doc/gen/rtc/rich_text_event.rb +8 -4
  318. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +8 -2
  319. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +8 -3
  320. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +4 -2
  321. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +6 -3
  322. data/lib/wx/doc/gen/rtc/rich_text_image.rb +7 -2
  323. data/lib/wx/doc/gen/rtc/rich_text_object.rb +82 -17
  324. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +54 -11
  325. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +15 -2
  326. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +14 -9
  327. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +4 -1
  328. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +4 -3
  329. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +2 -2
  330. data/lib/wx/doc/gen/sash_event.rb +13 -4
  331. data/lib/wx/doc/gen/sash_layout_window.rb +21 -4
  332. data/lib/wx/doc/gen/sash_window.rb +6 -4
  333. data/lib/wx/doc/gen/screen_dc.rb +1 -1
  334. data/lib/wx/doc/gen/scroll_bar.rb +28 -10
  335. data/lib/wx/doc/gen/scrolled_canvas.rb +48 -10
  336. data/lib/wx/doc/gen/scrolled_control.rb +48 -10
  337. data/lib/wx/doc/gen/scrolled_window.rb +48 -10
  338. data/lib/wx/doc/gen/search_ctrl.rb +14 -9
  339. data/lib/wx/doc/gen/simplebook.rb +8 -1
  340. data/lib/wx/doc/gen/single_choice_dialog.rb +9 -4
  341. data/lib/wx/doc/gen/sizer.rb +91 -16
  342. data/lib/wx/doc/gen/sizer_item.rb +21 -4
  343. data/lib/wx/doc/gen/slider.rb +50 -17
  344. data/lib/wx/doc/gen/spin_button.rb +24 -10
  345. data/lib/wx/doc/gen/spin_ctrl.rb +35 -9
  346. data/lib/wx/doc/gen/spin_ctrl_double.rb +13 -7
  347. data/lib/wx/doc/gen/spin_double_event.rb +6 -4
  348. data/lib/wx/doc/gen/spin_event.rb +4 -3
  349. data/lib/wx/doc/gen/splash_screen.rb +3 -2
  350. data/lib/wx/doc/gen/splitter_event.rb +12 -4
  351. data/lib/wx/doc/gen/splitter_window.rb +100 -18
  352. data/lib/wx/doc/gen/static_bitmap.rb +109 -7
  353. data/lib/wx/doc/gen/static_box.rb +15 -7
  354. data/lib/wx/doc/gen/static_box_sizer.rb +3 -2
  355. data/lib/wx/doc/gen/static_line.rb +7 -4
  356. data/lib/wx/doc/gen/static_text.rb +10 -6
  357. data/lib/wx/doc/gen/status_bar.rb +32 -8
  358. data/lib/wx/doc/gen/stc/event_list.rb +212 -208
  359. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +207 -13
  360. data/lib/wx/doc/gen/stc/styled_text_event.rb +31 -6
  361. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +7 -1
  362. data/lib/wx/doc/gen/svg_file_dc.rb +15 -7
  363. data/lib/wx/doc/gen/system_options.rb +14 -6
  364. data/lib/wx/doc/gen/system_settings.rb +9 -3
  365. data/lib/wx/doc/gen/task_bar_button.rb +324 -0
  366. data/lib/wx/doc/gen/task_bar_icon.rb +26 -8
  367. data/lib/wx/doc/gen/task_bar_icon_event.rb +5 -3
  368. data/lib/wx/doc/gen/text_attr.rb +47 -5
  369. data/lib/wx/doc/gen/text_ctrl.rb +114 -25
  370. data/lib/wx/doc/gen/text_entry.rb +69 -11
  371. data/lib/wx/doc/gen/text_entry_dialog.rb +14 -2
  372. data/lib/wx/doc/gen/text_validator.rb +58 -9
  373. data/lib/wx/doc/gen/time_picker_ctrl.rb +11 -6
  374. data/lib/wx/doc/gen/timer.rb +14 -2
  375. data/lib/wx/doc/gen/timer_event.rb +2 -2
  376. data/lib/wx/doc/gen/tip_provider.rb +6 -1
  377. data/lib/wx/doc/gen/toggle_button.rb +73 -6
  378. data/lib/wx/doc/gen/tool_bar.rb +141 -25
  379. data/lib/wx/doc/gen/tool_tip.rb +41 -5
  380. data/lib/wx/doc/gen/toolbook.rb +6 -4
  381. data/lib/wx/doc/gen/top_level_window.rb +100 -23
  382. data/lib/wx/doc/gen/tree_ctrl.rb +89 -16
  383. data/lib/wx/doc/gen/tree_event.rb +9 -4
  384. data/lib/wx/doc/gen/treebook.rb +16 -4
  385. data/lib/wx/doc/gen/ui_action_simulator.rb +10 -2
  386. data/lib/wx/doc/gen/utils.rb +94 -7
  387. data/lib/wx/doc/gen/v_list_box.rb +27 -2
  388. data/lib/wx/doc/gen/v_scrolled_window.rb +21 -4
  389. data/lib/wx/doc/gen/validator.rb +10 -14
  390. data/lib/wx/doc/gen/variant.rb +7 -0
  391. data/lib/wx/doc/gen/window.rb +415 -57
  392. data/lib/wx/doc/gen/window_dc.rb +2 -1
  393. data/lib/wx/doc/gen/window_disabler.rb +6 -2
  394. data/lib/wx/doc/gen/with_images.rb +13 -2
  395. data/lib/wx/doc/gen/wizard.rb +22 -4
  396. data/lib/wx/doc/gen/wizard_event.rb +5 -4
  397. data/lib/wx/doc/gen/wizard_page.rb +7 -2
  398. data/lib/wx/doc/gen/wizard_page_simple.rb +5 -1
  399. data/lib/wx/doc/gen/wrap_sizer.rb +5 -1
  400. data/lib/wx/doc/gen/xml_node.rb +33 -4
  401. data/lib/wx/doc/gen/xml_resource.rb +40 -5
  402. data/lib/wx/doc/generic_validator.rb +95 -0
  403. data/lib/wx/doc/graphics_context.rb +1 -0
  404. data/lib/wx/doc/grid/grid.rb +22 -1
  405. data/lib/wx/doc/help_controller.rb +11 -7
  406. data/lib/wx/doc/html/html_help_controller.rb +12 -4
  407. data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
  408. data/lib/wx/doc/list_ctrl.rb +33 -29
  409. data/lib/wx/doc/menu.rb +20 -0
  410. data/lib/wx/doc/notebook.rb +21 -0
  411. data/lib/wx/doc/num_validator.rb +387 -0
  412. data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
  413. data/lib/wx/doc/pg/events.rb +13 -9
  414. data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
  415. data/lib/wx/doc/pg/pg_property.rb +18 -0
  416. data/lib/wx/doc/progress_dialog.rb +36 -32
  417. data/lib/wx/doc/prt/page_setup_dialog.rb +20 -12
  418. data/lib/wx/doc/prt/print_data.rb +13 -5
  419. data/lib/wx/doc/prt/print_dialog.rb +31 -23
  420. data/lib/wx/doc/prt/printer.rb +20 -12
  421. data/lib/wx/doc/radio_box.rb +19 -15
  422. data/lib/wx/doc/rbn/ribbon_bar.rb +13 -5
  423. data/lib/wx/doc/rbn/ribbon_button_bar.rb +13 -5
  424. data/lib/wx/doc/rbn/ribbon_gallery.rb +13 -5
  425. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +13 -5
  426. data/lib/wx/doc/region_iterator.rb +32 -28
  427. data/lib/wx/doc/rtc/rich_text_composite_object.rb +24 -0
  428. data/lib/wx/doc/rtc/rich_text_ctrl.rb +24 -0
  429. data/lib/wx/doc/rtc/rich_text_paragraph.rb +24 -0
  430. data/lib/wx/doc/rtc/richtext_buffer.rb +27 -19
  431. data/lib/wx/doc/rtc/richtext_printing.rb +17 -9
  432. data/lib/wx/doc/rtc/richtext_style_sheet.rb +17 -9
  433. data/lib/wx/doc/sizer.rb +20 -0
  434. data/lib/wx/doc/static_bitmap.rb +25 -0
  435. data/lib/wx/doc/stc/styled_text_ctrl.rb +24 -0
  436. data/lib/wx/doc/stream.rb +39 -35
  437. data/lib/wx/doc/system_settings.rb +30 -26
  438. data/lib/wx/doc/text_validator.rb +23 -9
  439. data/lib/wx/doc/textctrl.rb +16 -0
  440. data/lib/wx/doc/tree_ctrl.rb +95 -0
  441. data/lib/wx/doc/treebook.rb +9 -5
  442. data/lib/wx/doc/v_list_box.rb +9 -5
  443. data/lib/wx/doc/validator.rb +113 -0
  444. data/lib/wx/doc/variant.rb +164 -160
  445. data/lib/wx/doc/window.rb +87 -47
  446. data/lib/wx/doc/window_disabler.rb +10 -6
  447. data/lib/wx/grid/grid.rb +27 -4
  448. data/lib/wx/html/events/evt_list.rb +0 -10
  449. data/lib/wx/html/simple_html_listbox.rb +24 -91
  450. data/lib/wx/keyword_defs.rb +34 -2
  451. data/lib/wx/pg/pg_property.rb +22 -0
  452. data/lib/wx/rbn/ribbon_gallery.rb +0 -21
  453. data/lib/wx/rtc/require.rb +3 -0
  454. data/lib/wx/rtc/rich_text_composite_object.rb +25 -0
  455. data/lib/wx/rtc/rich_text_ctrl.rb +25 -0
  456. data/lib/wx/rtc/rich_text_paragraph.rb +25 -0
  457. data/lib/wx/stc/require.rb +1 -0
  458. data/lib/wx/stc/styled_text_ctrl.rb +25 -0
  459. data/lib/wx/version.rb +1 -1
  460. data/lib/wxruby_aui.so +0 -0
  461. data/lib/wxruby_core.so +0 -0
  462. data/lib/wxruby_grid.so +0 -0
  463. data/lib/wxruby_html.so +0 -0
  464. data/lib/wxruby_pg.so +0 -0
  465. data/lib/wxruby_prt.so +0 -0
  466. data/lib/wxruby_rbn.so +0 -0
  467. data/lib/wxruby_rtc.so +0 -0
  468. data/lib/wxruby_stc.so +0 -0
  469. data/rakelib/lib/config/linux.rb +0 -3
  470. data/rakelib/lib/config/macosx.rb +2 -2
  471. data/rakelib/lib/config/mingw.rb +13 -1
  472. data/rakelib/lib/config/unixish.rb +1 -1
  473. data/rakelib/lib/config.rb +14 -4
  474. data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +74 -2
  475. data/rakelib/yard/templates/default/fulldoc/html/full_list.erb +38 -0
  476. data/rakelib/yard/templates/default/fulldoc/html/setup.rb +39 -0
  477. data/rakelib/yard/templates/default/tags/html/wxrb_require.erb +10 -0
  478. data/rakelib/yard/templates/default/tags/setup.rb +16 -0
  479. data/rakelib/yard/yard-custom-templates.rb +3 -0
  480. data/samples/aui/aui.rb +1237 -1233
  481. data/samples/calendar/calendar.rb +293 -289
  482. data/samples/controls/get_item_sample.rb +83 -79
  483. data/samples/controls/htlbox.rb +331 -327
  484. data/samples/dialogs/dialogs.rb +682 -694
  485. data/samples/dialogs/wizard.rb +52 -55
  486. data/samples/dragdrop/dragdrop.rb +146 -142
  487. data/samples/drawing/bitmap.rb +29 -26
  488. data/samples/drawing/bitmap_image.rb +84 -80
  489. data/samples/drawing/graphics_drawing.rb +209 -205
  490. data/samples/drawing/image_prt.rb +344 -340
  491. data/samples/drawing/maths_images.rb +18 -1
  492. data/samples/drawing/rmagic_bitmap_image.rb +88 -84
  493. data/samples/etc/caret.rb +306 -0
  494. data/samples/etc/miniframe.rb +65 -60
  495. data/samples/etc/sash.rb +109 -105
  496. data/samples/etc/scrollwin.rb +86 -80
  497. data/samples/etc/system_settings.rb +216 -209
  498. data/samples/event/activation.rb +72 -67
  499. data/samples/event/event.rb +160 -153
  500. data/samples/event/threaded.rb +8 -1
  501. data/samples/event/update_ui_event.rb +67 -60
  502. data/samples/grid/grid.rb +188 -181
  503. data/samples/grid/gridtablebase.rb +136 -129
  504. data/samples/html/html.rb +208 -204
  505. data/samples/mdi/mdi.rb +59 -54
  506. data/samples/minimal/minimal.rb +54 -51
  507. data/samples/minimal/nothing.rb +1 -0
  508. data/samples/printing/printing.rb +367 -377
  509. data/samples/printing/printing2.rb +203 -198
  510. data/samples/propgrid/propgrid.rb +2312 -2308
  511. data/samples/propgrid/propgrid_minimal.rb +57 -50
  512. data/samples/ribbon/ribbon.rb +780 -774
  513. data/samples/sampler/ext.rb +0 -33
  514. data/samples/sampler/sample.rb +4 -9
  515. data/samples/sampler.rb +1 -1
  516. data/samples/splash/splash.rb +118 -116
  517. data/samples/text/rich_textctrl.rb +207 -201
  518. data/samples/text/richtext.rb +1409 -1405
  519. data/samples/text/scintilla.rb +137 -128
  520. data/samples/text/textctrl.rb +89 -83
  521. data/samples/text/unicode.rb +175 -168
  522. data/samples/treectrl/treectrl.rb +1430 -1426
  523. data/samples/widgets/activityindicator.rb +95 -0
  524. data/samples/widgets/art/widgets/activityindicator.xpm +278 -0
  525. data/samples/widgets/art/widgets/bmpbtn.xpm +37 -0
  526. data/samples/widgets/art/widgets/bmpcombobox.xpm +54 -0
  527. data/samples/widgets/art/widgets/button.xpm +54 -0
  528. data/samples/widgets/art/widgets/checkbox.xpm +54 -0
  529. data/samples/{bigdemo/icons → widgets/art/widgets}/choice.xpm +1 -1
  530. data/samples/widgets/art/widgets/choicebk.xpm +54 -0
  531. data/samples/widgets/art/widgets/clrpicker.xpm +193 -0
  532. data/samples/widgets/art/widgets/combobox.xpm +54 -0
  533. data/samples/widgets/art/widgets/datepick.xpm +200 -0
  534. data/samples/widgets/art/widgets/dirctrl.xpm +54 -0
  535. data/samples/widgets/art/widgets/dirpicker.xpm +213 -0
  536. data/samples/widgets/art/widgets/filepicker.xpm +214 -0
  537. data/samples/widgets/art/widgets/fontpicker.xpm +185 -0
  538. data/samples/widgets/art/widgets/gauge.xpm +54 -0
  539. data/samples/widgets/art/widgets/header.xpm +54 -0
  540. data/samples/widgets/art/widgets/hyperlnk.xpm +54 -0
  541. data/samples/widgets/art/widgets/listbook.xpm +54 -0
  542. data/samples/widgets/art/widgets/listbox.xpm +54 -0
  543. data/samples/widgets/art/widgets/native.xpm +81 -0
  544. data/samples/widgets/art/widgets/notebook.xpm +54 -0
  545. data/samples/widgets/art/widgets/odcombobox.xpm +54 -0
  546. data/samples/widgets/art/widgets/radiobox.xpm +54 -0
  547. data/samples/widgets/art/widgets/scrolbar.xpm +54 -0
  548. data/samples/widgets/art/widgets/slider.xpm +54 -0
  549. data/samples/widgets/art/widgets/spinbtn.xpm +40 -0
  550. data/samples/widgets/art/widgets/statbmp.xpm +40 -0
  551. data/samples/widgets/art/widgets/statbox.xpm +54 -0
  552. data/samples/widgets/art/widgets/stattext.xpm +54 -0
  553. data/samples/widgets/art/widgets/text.xpm +54 -0
  554. data/samples/widgets/art/widgets/timepick.xpm +207 -0
  555. data/samples/widgets/art/widgets/toggle.xpm +54 -0
  556. data/samples/widgets/art/widgets/toucan.png +0 -0
  557. data/samples/widgets/bmpcombobox.rb +651 -0
  558. data/samples/widgets/button.rb +462 -0
  559. data/samples/widgets/checkbox.rb +211 -0
  560. data/samples/widgets/choice.rb +287 -0
  561. data/samples/widgets/clrpicker.rb +156 -0
  562. data/samples/widgets/combobox.rb +516 -0
  563. data/samples/widgets/datepick.rb +215 -0
  564. data/samples/widgets/dirctrl.rb +265 -0
  565. data/samples/widgets/dirpicker.rb +158 -0
  566. data/samples/widgets/editlbox.rb +122 -0
  567. data/samples/widgets/filectrl.rb +216 -0
  568. data/samples/widgets/filepicker.rb +214 -0
  569. data/samples/widgets/fontpicker.rb +135 -0
  570. data/samples/widgets/gauge.rb +311 -0
  571. data/samples/widgets/headerctrl.rb +236 -0
  572. data/samples/widgets/hyperlink.rb +203 -0
  573. data/samples/widgets/itemcontainer.rb +185 -0
  574. data/samples/widgets/listbox.rb +473 -0
  575. data/samples/widgets/notebook.rb +488 -0
  576. data/samples/widgets/odcombobox.rb +608 -0
  577. data/samples/widgets/radiobox.rb +328 -0
  578. data/samples/widgets/searchctrl.rb +159 -0
  579. data/samples/widgets/slider.rb +594 -0
  580. data/samples/widgets/spinbtn.rb +443 -0
  581. data/samples/widgets/statbmp.rb +130 -0
  582. data/samples/widgets/static.rb +436 -0
  583. data/samples/widgets/textctrl.rb +700 -0
  584. data/samples/widgets/timepick.rb +148 -0
  585. data/samples/widgets/tn_widgets.png +0 -0
  586. data/samples/widgets/toggle.rb +385 -0
  587. data/samples/widgets/widgets.rb +1233 -0
  588. data/samples/xrc/custom_xrc_sample.rb +47 -41
  589. data/samples/xrc/xrc_sample.rb +53 -47
  590. data/tests/media/beep_lo.wav +0 -0
  591. data/tests/test_event_handling.rb +52 -34
  592. data/tests/test_events.rb +7 -0
  593. data/tests/test_item_data.rb +24 -0
  594. data/tests/test_list_ctrl.rb +1 -1
  595. data/tests/test_media_ctrl.rb +38 -0
  596. data/tests/test_menu.rb +69 -0
  597. data/tests/test_pg.rb +27 -0
  598. data/tests/test_richtext.rb +45 -0
  599. data/tests/test_sizer.rb +59 -0
  600. data/tests/test_std_controls.rb +42 -1
  601. data/tests/test_styled_text_ctrl.rb +46 -0
  602. data/tests/test_tree_ctrl.rb +138 -0
  603. data/tests/test_validators.rb +805 -0
  604. data/tests/test_window.rb +12 -0
  605. data/tests/testapp_noframe.rb +1 -1
  606. metadata +113 -138
  607. data/lib/wx/core/choice.rb +0 -14
  608. data/lib/wx/core/combo_ctrl.rb +0 -110
  609. data/samples/bigdemo/About.rbw +0 -39
  610. data/samples/bigdemo/ColorPanel.rbw +0 -23
  611. data/samples/bigdemo/GridSimple.rbw +0 -78
  612. data/samples/bigdemo/MDIDemo.rbw +0 -57
  613. data/samples/bigdemo/PopupMenu.rbw +0 -146
  614. data/samples/bigdemo/ShapedWindow.rbw +0 -128
  615. data/samples/bigdemo/Sizers.rbw +0 -541
  616. data/samples/bigdemo/bigdemo.rb +0 -817
  617. data/samples/bigdemo/demoTemplate.rbw +0 -33
  618. data/samples/bigdemo/helpfile.htb +0 -0
  619. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  620. data/samples/bigdemo/icons/Test 015.png +0 -0
  621. data/samples/bigdemo/icons/choice.bmp +0 -0
  622. data/samples/bigdemo/icons/combo.bmp +0 -0
  623. data/samples/bigdemo/icons/combo.xpm +0 -27
  624. data/samples/bigdemo/icons/copy.xpm +0 -25
  625. data/samples/bigdemo/icons/cut.xpm +0 -24
  626. data/samples/bigdemo/icons/gauge.bmp +0 -0
  627. data/samples/bigdemo/icons/gauge.xpm +0 -27
  628. data/samples/bigdemo/icons/help.xpm +0 -25
  629. data/samples/bigdemo/icons/list.bmp +0 -0
  630. data/samples/bigdemo/icons/list.xpm +0 -27
  631. data/samples/bigdemo/icons/mondrian.ico +0 -0
  632. data/samples/bigdemo/icons/mondrian.xpm +0 -44
  633. data/samples/bigdemo/icons/new.xpm +0 -24
  634. data/samples/bigdemo/icons/ogl.ico +0 -0
  635. data/samples/bigdemo/icons/ogl.xpm +0 -45
  636. data/samples/bigdemo/icons/open.xpm +0 -26
  637. data/samples/bigdemo/icons/paste.bmp +0 -0
  638. data/samples/bigdemo/icons/paste.xpm +0 -38
  639. data/samples/bigdemo/icons/pointy.png +0 -0
  640. data/samples/bigdemo/icons/preview.xpm +0 -26
  641. data/samples/bigdemo/icons/print.xpm +0 -26
  642. data/samples/bigdemo/icons/radio.bmp +0 -0
  643. data/samples/bigdemo/icons/radio.xpm +0 -27
  644. data/samples/bigdemo/icons/robert.xpm +0 -415
  645. data/samples/bigdemo/icons/sashtest.ico +0 -0
  646. data/samples/bigdemo/icons/save.xpm +0 -25
  647. data/samples/bigdemo/icons/smiles.bmp +0 -0
  648. data/samples/bigdemo/icons/smiles.xpm +0 -39
  649. data/samples/bigdemo/icons/smiley.ico +0 -0
  650. data/samples/bigdemo/icons/smiley.xpm +0 -42
  651. data/samples/bigdemo/icons/stattext.xpm +0 -24
  652. data/samples/bigdemo/icons/test2.bmp +0 -0
  653. data/samples/bigdemo/icons/test2.png +0 -0
  654. data/samples/bigdemo/icons/test2.xpm +0 -79
  655. data/samples/bigdemo/icons/text.bmp +0 -0
  656. data/samples/bigdemo/icons/text.xpm +0 -27
  657. data/samples/bigdemo/icons/tog1.bmp +0 -0
  658. data/samples/bigdemo/icons/tog1.xpm +0 -38
  659. data/samples/bigdemo/icons/tog2.bmp +0 -0
  660. data/samples/bigdemo/icons/tog2.xpm +0 -38
  661. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  662. data/samples/bigdemo/icons/wxwin.ico +0 -0
  663. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  664. data/samples/bigdemo/icons/wxwin16x16.xpm +0 -25
  665. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  666. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  667. data/samples/bigdemo/run.rb +0 -98
  668. data/samples/bigdemo/tips.txt +0 -7
  669. data/samples/bigdemo/utils.rb +0 -20
  670. data/samples/bigdemo/wxArtProvider.rbw +0 -282
  671. data/samples/bigdemo/wxBitmapButton.rbw +0 -65
  672. data/samples/bigdemo/wxButton.rbw +0 -64
  673. data/samples/bigdemo/wxCalendarCtrl.rbw +0 -59
  674. data/samples/bigdemo/wxCheckBox.rbw +0 -50
  675. data/samples/bigdemo/wxCheckListBox.rbw +0 -65
  676. data/samples/bigdemo/wxChoice.rbw +0 -47
  677. data/samples/bigdemo/wxChoicebook.rbw +0 -78
  678. data/samples/bigdemo/wxColourDialog.rbw +0 -33
  679. data/samples/bigdemo/wxComboBox.rbw +0 -77
  680. data/samples/bigdemo/wxCursor.rbw +0 -136
  681. data/samples/bigdemo/wxDialog.rbw +0 -74
  682. data/samples/bigdemo/wxDirDialog.rbw +0 -29
  683. data/samples/bigdemo/wxDragImage.rbw +0 -70
  684. data/samples/bigdemo/wxFileDialog.rbw +0 -37
  685. data/samples/bigdemo/wxFileDialog_Save.rbw +0 -35
  686. data/samples/bigdemo/wxFindReplaceDialog.rbw +0 -82
  687. data/samples/bigdemo/wxFontDialog.rbw +0 -200
  688. data/samples/bigdemo/wxFrame.rbw +0 -53
  689. data/samples/bigdemo/wxGauge.rbw +0 -65
  690. data/samples/bigdemo/wxGenericDirCtrl.rbw +0 -74
  691. data/samples/bigdemo/wxGrid.rbw +0 -66
  692. data/samples/bigdemo/wxHtmlHelpController.rbw +0 -52
  693. data/samples/bigdemo/wxListBox.rbw +0 -140
  694. data/samples/bigdemo/wxListCtrl_virtual.rbw +0 -112
  695. data/samples/bigdemo/wxMDIWindows.rbw +0 -50
  696. data/samples/bigdemo/wxMenu.rbw +0 -247
  697. data/samples/bigdemo/wxMessageDialog.rbw +0 -27
  698. data/samples/bigdemo/wxMiniFrame.rbw +0 -70
  699. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +0 -29
  700. data/samples/bigdemo/wxNotebook.rbw +0 -136
  701. data/samples/bigdemo/wxProgressDialog.rbw +0 -43
  702. data/samples/bigdemo/wxRadioBox.rbw +0 -72
  703. data/samples/bigdemo/wxRadioButton.rbw +0 -125
  704. data/samples/bigdemo/wxSashWindow.rbw +0 -141
  705. data/samples/bigdemo/wxScrolledMessageDialog.rbw +0 -57
  706. data/samples/bigdemo/wxScrolledWindow.rbw +0 -199
  707. data/samples/bigdemo/wxSingleChoiceDialog.rbw +0 -33
  708. data/samples/bigdemo/wxSlider.rbw +0 -42
  709. data/samples/bigdemo/wxSpinButton.rbw +0 -50
  710. data/samples/bigdemo/wxSpinCtrl.rbw +0 -51
  711. data/samples/bigdemo/wxSplitterWindow.rbw +0 -63
  712. data/samples/bigdemo/wxStaticBitmap.rbw +0 -47
  713. data/samples/bigdemo/wxStaticText.rbw +0 -55
  714. data/samples/bigdemo/wxStatusBar.rbw +0 -126
  715. data/samples/bigdemo/wxTextCtrl.rbw +0 -149
  716. data/samples/bigdemo/wxTextEntryDialog.rbw +0 -31
  717. data/samples/bigdemo/wxToggleButton.rbw +0 -49
  718. data/samples/bigdemo/wxToolBar.rbw +0 -131
  719. data/samples/bigdemo/wxTreeCtrl.rbw +0 -191
  720. data/samples/caret/caret.rb +0 -298
  721. data/samples/caret/mondrian.xpm +0 -44
  722. data/samples/controls/books.rb +0 -189
  723. data/samples/controls/choice.xpm +0 -27
  724. data/samples/controls/combo.xpm +0 -27
  725. data/samples/controls/controls.rb +0 -1099
  726. data/samples/controls/gauge.xpm +0 -27
  727. data/samples/controls/list.xpm +0 -27
  728. data/samples/controls/mondrian.ico +0 -0
  729. data/samples/controls/mondrian.xpm +0 -44
  730. data/samples/controls/radio.xpm +0 -27
  731. data/samples/controls/stattext.xpm +0 -24
  732. data/samples/controls/test2.bmp +0 -0
  733. data/samples/controls/text.xpm +0 -27
  734. data/samples/controls/tn_books.png +0 -0
  735. data/samples/controls/tn_controls.png +0 -0
  736. data/samples/etc/choice.rb +0 -87
  737. data/samples/etc/tn_choice.png +0 -0
  738. data/samples/text/mondrian.ico +0 -0
  739. data/samples/text/mondrian.xpm +0 -44
  740. /data/samples/{caret → etc}/tn_caret.png +0 -0
@@ -0,0 +1,700 @@
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 TextCtrl
11
+ class WidgetsTextCtrl < Wx::TextCtrl
12
+ def initialize(parent, id, value, flags)
13
+ super(parent, id, value, style: flags)
14
+
15
+ evt_left_down :on_left_click
16
+ end
17
+
18
+ private
19
+ # Show the result of HitTest() at the mouse position if Alt is pressed.
20
+ def on_left_click(event)
21
+ event.skip
22
+ return unless event.alt_down
23
+
24
+ rc, x, y = hit_test(event.position)
25
+ case rc
26
+ when Wx::TE_HT_UNKNOWN
27
+ x = y = -1
28
+ where = 'nowhere near'
29
+ when Wx::TE_HT_BEFORE
30
+ where = 'before'
31
+ when Wx::TE_HT_BELOW
32
+ where = 'below'
33
+ when Wx::TE_HT_BEYOND
34
+ where = 'beyond'
35
+ when Wx::TE_HT_ON_TEXT
36
+ where = 'at'
37
+ else
38
+ ::Kernel.raise RuntimeError, 'unexpected HitTest() result'
39
+ end
40
+
41
+ Wx.log_message("Mouse is #{where} (#{x}, #{y})")
42
+ end
43
+ end
44
+
45
+ class TextCtrlPage < Widgets::Page
46
+
47
+ module ID
48
+ include Wx::IDHelper
49
+
50
+ Reset = self.next_id(Widgets::Frame::ID::Last)
51
+
52
+ Set = self.next_id
53
+ Add = self.next_id
54
+ Insert = self.next_id
55
+ Clear = self.next_id
56
+ Load = self.next_id
57
+
58
+ # StreamRedirector : not supported with wxRuby
59
+
60
+ Password = self.next_id
61
+ NoVertScrollbar = self.next_id
62
+ WrapLines = self.next_id
63
+ Textctrl = self.next_id
64
+
65
+ TextLines_Single = 0
66
+ TextLines_Multi = 1
67
+ TextLines_Max = 2
68
+
69
+ WrapStyle_None = 0
70
+ WrapStyle_Word = 1
71
+ WrapStyle_Char = 2
72
+ WrapStyle_Best = 3
73
+ WrapStyle_Max = 4
74
+
75
+ Align_Left = 0
76
+ Align_Center = 1
77
+ Align_Right = 2
78
+
79
+ if Wx::PLATFORM == 'WXMSW'
80
+ TextKind_Plain = 0
81
+ TextKind_Rich = 1
82
+ TextKind_Rich2 = 2
83
+ TextKind_Max = 3
84
+ end
85
+ end
86
+
87
+ attrs = [:text_lines,
88
+ :password,
89
+ :readonly,
90
+ :process_enter,
91
+ :process_tab,
92
+ :filename,
93
+ :no_vert_scrollbar,
94
+ :wrap_style,
95
+ :alignment_style]
96
+ attrs << :text_kind if Wx::PLATFORM == 'WXMSW'
97
+ defs = [ID::TextLines_Multi, # multiline
98
+ false, # not password
99
+ false, # not readonly
100
+ true, # do process enter
101
+ false, # do not process Tab
102
+ false, # not filename
103
+ false, # don't hide vertical scrollbar
104
+ ID::WrapStyle_Word, # wrap on word boundaries
105
+ ID::Align_Left # leading-alignment
106
+ ]
107
+
108
+ defs << ID::TextKind_Plain if Wx::PLATFORM == 'WXMSW' # plain EDIT control
109
+
110
+ DEFAULTS = Struct.new(*attrs).new(*defs)
111
+
112
+ def initialize(book, images)
113
+ super(book, images, :text)
114
+
115
+ # init everything
116
+ if Wx::PLATFORM == 'WXMSW'
117
+ @radioKind = nil
118
+ end # WXMSW
119
+ @radioWrap =
120
+ @radioAlign =
121
+ @radioTextLines = nil
122
+
123
+ @chkPassword =
124
+ @chkReadonly =
125
+ @chkProcessEnter =
126
+ @chkProcessTab =
127
+ @chkFilename =
128
+ @chkNoVertScrollbar = nil
129
+
130
+ @text =
131
+ @textPosCur =
132
+ @textRowCur =
133
+ @textColCur =
134
+ @textPosLast =
135
+ @textLineLast =
136
+ @textSelFrom =
137
+ @textSelTo =
138
+ @textRange = nil
139
+
140
+ @sizerText = nil
141
+
142
+ @posCur =
143
+ @posLast =
144
+ @selFrom =
145
+ @selTo = -2 # not -1 which means "no selection"
146
+ end
147
+
148
+ Info = Widgets::PageInfo.new(self, 'Text', Widgets::NATIVE_CTRLS | Widgets::EDITABLE_CTRLS)
149
+
150
+ def get_widget
151
+ @text
152
+ end
153
+ def get_text_entry
154
+ @text
155
+ end
156
+ def recreate_widget
157
+ create_text
158
+ end
159
+
160
+ # lazy creation of the content
161
+ def create_content
162
+ # left pane
163
+ modes = [
164
+ "single line",
165
+ "multi line",
166
+ ]
167
+
168
+ sizerLeft = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Set textctrl parameters')
169
+ sizerLeftBox = sizerLeft.get_static_box
170
+
171
+ @radioTextLines = Wx::RadioBox.new(sizerLeftBox, Wx::ID_ANY, '&Number of lines:',
172
+ choices: modes,
173
+ major_dimension: 1,
174
+ style: Wx::RA_SPECIFY_COLS)
175
+
176
+ sizerLeft.add(@radioTextLines, 0, Wx::GROW | Wx::ALL, 5)
177
+ sizerLeft.add_spacer(5)
178
+
179
+ @chkPassword = create_check_box_and_add_to_sizer(
180
+ sizerLeft, '&Password control', ID::Password, sizerLeftBox)
181
+ @chkReadonly = create_check_box_and_add_to_sizer(
182
+ sizerLeft, '&Read-only mode', Wx::ID_ANY, sizerLeftBox)
183
+ @chkProcessEnter = create_check_box_and_add_to_sizer(
184
+ sizerLeft, 'Process &Enter', Wx::ID_ANY, sizerLeftBox)
185
+ @chkProcessTab = create_check_box_and_add_to_sizer(
186
+ sizerLeft, 'Process &Tab', Wx::ID_ANY, sizerLeftBox)
187
+ @chkFilename = create_check_box_and_add_to_sizer(
188
+ sizerLeft, '&Filename control', Wx::ID_ANY, sizerLeftBox)
189
+ @chkNoVertScrollbar = create_check_box_and_add_to_sizer(
190
+ sizerLeft, 'No &vertical scrollbar', ID::NoVertScrollbar, sizerLeftBox)
191
+ @chkFilename.disable # not implemented yet
192
+ sizerLeft.add_spacer(5)
193
+
194
+ wrap = [
195
+ 'no wrap',
196
+ 'word wrap',
197
+ 'char wrap',
198
+ 'best wrap',
199
+ ]
200
+
201
+ @radioWrap = Wx::RadioBox.new(sizerLeftBox, ID::WrapLines, '&Wrap style:',
202
+ choices: wrap,
203
+ major_dimension: 1,
204
+ style: Wx::RA_SPECIFY_COLS)
205
+ sizerLeft.add(@radioWrap, 0, Wx::GROW | Wx::ALL, 5)
206
+
207
+ halign = %w[left centre right]
208
+
209
+ @radioAlign = Wx::RadioBox.new(sizerLeftBox, Wx::ID_ANY, '&Text alignment',
210
+ choices: halign,
211
+ major_dimension: 1)
212
+ sizerLeft.add(@radioAlign, 0, Wx::GROW | Wx::ALL, 5)
213
+
214
+ if Wx::PLATFORM == 'WXMSW'
215
+ kinds = [
216
+ 'plain edit',
217
+ 'rich edit',
218
+ 'rich edit 2.0',
219
+ ]
220
+
221
+ @radioKind = Wx::RadioBox.new(sizerLeftBox, Wx::ID_ANY, 'Control &kind',
222
+ choices: kinds,
223
+ major_dimension: 1,
224
+ style: Wx::RA_SPECIFY_COLS)
225
+
226
+ sizerLeft.add_spacer(5)
227
+ sizerLeft.add(@radioKind, 0, Wx::GROW | Wx::ALL, 5)
228
+ end # WXMSW
229
+
230
+ btn = Wx::Button.new(sizerLeftBox, ID::Reset, '&Reset')
231
+ sizerLeft.add(2, 2, 0, Wx::GROW | Wx::ALL, 1) # spacer
232
+ sizerLeft.add(btn, 0, Wx::ALIGN_CENTRE_HORIZONTAL | Wx::ALL, 15)
233
+
234
+ # middle pane
235
+ sizerMiddleUp = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Change contents:')
236
+ sizerMiddleUpBox = sizerMiddleUp.get_static_box
237
+
238
+ btn = Wx::Button.new(sizerMiddleUpBox, ID::Set, '&Set text value')
239
+ sizerMiddleUp.add(btn, 0, Wx::ALL | Wx::GROW, 1)
240
+
241
+ btn = Wx::Button.new(sizerMiddleUpBox, ID::Add, '&Append text')
242
+ sizerMiddleUp.add(btn, 0, Wx::ALL | Wx::GROW, 1)
243
+
244
+ btn = Wx::Button.new(sizerMiddleUpBox, ID::Insert, '&Insert text')
245
+ sizerMiddleUp.add(btn, 0, Wx::ALL | Wx::GROW, 1)
246
+
247
+ btn = Wx::Button.new(sizerMiddleUpBox, ID::Load, '&Load file')
248
+ sizerMiddleUp.add(btn, 0, Wx::ALL | Wx::GROW, 1)
249
+
250
+ btn = Wx::Button.new(sizerMiddleUpBox, ID::Clear, '&Clear')
251
+ sizerMiddleUp.add(btn, 0, Wx::ALL | Wx::GROW, 1)
252
+
253
+ # not supported by wxRuby
254
+ # btn = Wx::Button.new(sizerMiddleUpBox, ID::StreamRedirector, 'St&ream redirection')
255
+ # sizerMiddleUp.add(btn, 0, Wx::ALL | Wx::GROW, 1)
256
+
257
+ sizerMiddleDown = Wx::StaticBoxSizer.new(Wx::VERTICAL, self, '&Info:')
258
+ sizerMiddleDownBox = sizerMiddleDown.get_static_box
259
+
260
+ @textPosCur = create_info_text(sizerMiddleDownBox)
261
+ @textRowCur = create_info_text(sizerMiddleDownBox)
262
+ @textColCur = create_info_text(sizerMiddleDownBox)
263
+
264
+ sizerRow = Wx::HBoxSizer.new
265
+ sizerRow.add(create_text_with_label_sizer('Current pos:',
266
+ @textPosCur,
267
+ '', nil,
268
+ sizerMiddleDownBox),
269
+ 0, Wx::RIGHT, 5)
270
+ sizerRow.add(create_text_with_label_sizer('Col:',
271
+ @textColCur,
272
+ '', nil,
273
+ sizerMiddleDownBox),
274
+ 0, Wx::LEFT | Wx::RIGHT, 5)
275
+ sizerRow.add(create_text_with_label_sizer('Row:',
276
+ @textRowCur,
277
+ '', nil,
278
+ sizerMiddleDownBox
279
+ ),
280
+ 0, Wx::LEFT, 5)
281
+ sizerMiddleDown.add(sizerRow, 0, Wx::ALL, 5)
282
+
283
+ @textLineLast = create_info_text(sizerMiddleDownBox)
284
+ @textPosLast = create_info_text(sizerMiddleDownBox)
285
+ sizerMiddleDown.add(create_text_with_label_sizer('Number of lines:',
286
+ @textLineLast,
287
+ 'Last position:',
288
+ @textPosLast,
289
+ sizerMiddleDownBox),
290
+ 0, Wx::ALL, 5)
291
+
292
+ @textSelFrom = create_info_text(sizerMiddleDownBox)
293
+ @textSelTo = create_info_text(sizerMiddleDownBox)
294
+ sizerMiddleDown.add(create_text_with_label_sizer('Selection: from',
295
+ @textSelFrom,
296
+ 'to',
297
+ @textSelTo,
298
+ sizerMiddleDownBox),
299
+ 0, Wx::ALL, 5)
300
+
301
+ @textRange = Wx::TextCtrl.new(sizerMiddleDownBox, Wx::ID_ANY, style: Wx::TE_READONLY)
302
+ sizerMiddleDown.add(create_text_with_label_sizer('Range 10..20:',
303
+ @textRange,
304
+ '', nil,
305
+ sizerMiddleDownBox),
306
+ 0, Wx::ALL, 5)
307
+
308
+ sizerMiddleDown.add(Wx::StaticText.new(sizerMiddleDownBox,
309
+ Wx::ID_ANY,
310
+ 'Alt-click in the text to see HitTest() result'),
311
+ Wx::SizerFlags.new.border)
312
+
313
+ sizerMiddle = Wx::VBoxSizer.new
314
+ sizerMiddle.add(sizerMiddleUp, 0, Wx::GROW)
315
+ sizerMiddle.add(sizerMiddleDown, 1, Wx::GROW | Wx::TOP, 5)
316
+
317
+ # right pane
318
+ @sizerText = Wx::StaticBoxSizer.new(Wx::HORIZONTAL, self, '&Text:')
319
+ reset
320
+ create_text
321
+ @sizerText.set_min_size(150, 0)
322
+
323
+ # the 3 panes panes compose the upper part of the window
324
+ sizerTop = Wx::HBoxSizer.new
325
+ sizerTop.add(sizerLeft, 0, Wx::GROW | (Wx::ALL & ~Wx::LEFT), 10)
326
+ sizerTop.add(sizerMiddle, 0, Wx::GROW | Wx::ALL, 10)
327
+ sizerTop.add(@sizerText, 1, Wx::GROW | (Wx::ALL & ~Wx::RIGHT), 10)
328
+
329
+ set_sizer(sizerTop)
330
+
331
+ # connect event handlers
332
+ evt_idle(:on_idle)
333
+
334
+ evt_button(ID::Reset, :on_button_reset)
335
+
336
+ # not supported by wxRuby
337
+ # evt_button(ID::StreamRedirector, :on_stream_redirector)
338
+
339
+ evt_button(ID::Clear, :on_button_clear)
340
+ evt_button(ID::Set, :on_button_set)
341
+ evt_button(ID::Add, :on_button_add)
342
+ evt_button(ID::Insert, :on_button_insert)
343
+ evt_button(ID::Load, :on_button_load)
344
+
345
+ evt_update_ui(ID::Clear, :on_update_ui_clear_button)
346
+
347
+ evt_update_ui(ID::Password, :on_update_ui_password_checkbox)
348
+ evt_update_ui(ID::NoVertScrollbar, :on_update_ui_no_vert_scrollbar_checkbox)
349
+ evt_update_ui(ID::WrapLines, :on_update_ui_wrap_lines_radiobox)
350
+
351
+ evt_update_ui(ID::Reset, :on_update_ui_reset_button)
352
+
353
+ evt_text(ID::Textctrl, :on_text)
354
+ evt_text_enter(ID::Textctrl, :on_text_enter)
355
+ evt_text_paste(ID::Textctrl, :on_text_pasted)
356
+
357
+ evt_checkbox(Wx::ID_ANY, :on_check_or_radio_box)
358
+ evt_radiobox(Wx::ID_ANY, :on_check_or_radio_box)
359
+ end
360
+
361
+ protected
362
+
363
+ class << self
364
+ def s_max_width(v=nil)
365
+ @s_max_width = v if v
366
+ @s_max_width ||= 0
367
+ end
368
+ end
369
+
370
+ # create an info text control
371
+ def create_info_text(parent)
372
+ if self.class.s_max_width == 0
373
+ # calc it once only
374
+ sz = get_text_extent("9999999")
375
+ self.class.s_max_width(sz.width)
376
+ end
377
+
378
+ Wx::TextCtrl.new(parent,
379
+ size: [self.class.s_max_width, Wx::DEFAULT_COORD],
380
+ style: Wx::TE_READONLY)
381
+ end
382
+
383
+ # create a horz sizer holding a static text and this text control
384
+ def create_text_with_label_sizer(label,
385
+ text,
386
+ label2 = '',
387
+ text2 = nil,
388
+ statBoxParent = nil)
389
+ sizerRow = Wx::HBoxSizer.new
390
+ sizerRow.add(Wx::StaticText.new(statBoxParent ? statBoxParent : self, Wx::ID_ANY, label),
391
+ 0, Wx::ALIGN_CENTRE_VERTICAL | Wx::RIGHT, 5)
392
+ sizerRow.add(text, 0, Wx::ALIGN_CENTRE_VERTICAL)
393
+ if text2
394
+ sizerRow.add(Wx::StaticText.new(statBoxParent ? statBoxParent : self, Wx::ID_ANY, label2),
395
+ 0, Wx::ALIGN_CENTRE_VERTICAL | Wx::LEFT | Wx::RIGHT, 5)
396
+ sizerRow.add(text2, 0, Wx::ALIGN_CENTRE_VERTICAL)
397
+ end
398
+
399
+ sizerRow
400
+ end
401
+
402
+ # event handlers
403
+ def on_button_reset(_event)
404
+ reset
405
+
406
+ create_text
407
+ end
408
+
409
+ def on_button_set(_event)
410
+ @text.set_value(@text.get_window_style.allbits?(Wx::TE_MULTILINE) ?
411
+ "Here,\nthere and\neverywhere" :
412
+ "Yellow submarine")
413
+
414
+ @text.set_focus
415
+ end
416
+
417
+ def on_button_add(_event)
418
+ if @text.get_window_style.allbits?(Wx::TE_MULTILINE)
419
+ @text.append_text("We all live in a\n")
420
+ end
421
+
422
+ @text.append_text("Yellow submarine")
423
+ end
424
+
425
+ def on_button_insert(_event)
426
+ @text.write_text('Is there anybody going to listen to my story')
427
+ @text.write_text("\nall about the girl who came to stay") if @text.get_window_style.allbits?(Wx::TE_MULTILINE)
428
+ end
429
+
430
+ def on_button_clear(_event)
431
+ @text.clear
432
+ @text.set_focus
433
+ end
434
+
435
+ def on_button_load(_event)
436
+ tm_start = Time.now
437
+ unless @text.load_file(__FILE__)
438
+ # this is not supposed to happen ...
439
+ Wx.log_error('Error loading file.')
440
+ else
441
+ elapsed = Time.now - tm_start
442
+ Wx.log_message("Loaded file '#{__FILE__}' in #{elapsed}s")
443
+ end
444
+ end
445
+
446
+ # unsupported by wxRuby
447
+ # def on_stream_redirector(event)
448
+ # end
449
+
450
+ def on_text(event)
451
+ return unless Widgets::Page.is_using_log_window
452
+
453
+ # Replace middle of long text with ellipsis just to avoid filling up the
454
+ # log control with too much unnecessary stuff.
455
+ log_str = Wx::ClientDC.draw_on(self) do |dc|
456
+ Wx::Control.ellipsize(event.string,
457
+ dc,
458
+ Wx::ELLIPSIZE_MIDDLE,
459
+ get_text_extent('W').x * 100)
460
+ end
461
+ Wx.log_message("Text control value changed (now '%s')", log_str)
462
+ end
463
+
464
+ def on_text_enter(event)
465
+ Wx.log_message("Text entered: '#{event.string}'")
466
+ event.skip
467
+ end
468
+
469
+ def on_text_pasted(event)
470
+ Wx.log_message('Text pasted from clipboard.')
471
+ event.skip
472
+ end
473
+
474
+ def on_check_or_radio_box(event)
475
+ if %w[WXMSW WXGTK WXOSX].include?(Wx::PLATFORM) && event.get_event_object == @radioAlign
476
+ # We should be able to change text alignment
477
+ # dynamically, without recreating the control.
478
+ flags = @text.get_window_style
479
+ flags &= ~(Wx::TE_LEFT|Wx::TE_CENTER|Wx::TE_RIGHT)
480
+
481
+ case event.selection
482
+ when ID::Align_Left
483
+ flags |= Wx::TE_LEFT
484
+ when ID::Align_Center
485
+ flags |= Wx::TE_CENTER
486
+ when ID::Align_Right
487
+ flags |= Wx::TE_RIGHT
488
+ else
489
+ ::Kernel.raise RuntimeError, 'unexpected alignment style radio box selection'
490
+ end
491
+
492
+ @text.set_window_style(flags)
493
+ @text.refresh
494
+
495
+ flags = @text.get_window_style
496
+ Wx.log_message("Text alignment: %s",
497
+ (flags.allbits?(Wx::TE_RIGHT) ?
498
+ 'Right' :
499
+ (flags.allbits?(Wx::TE_CENTER) ?
500
+ 'Center' : 'Left')))
501
+ else
502
+ create_text
503
+ end
504
+ end
505
+
506
+ def on_update_ui_clear_button(event)
507
+ event.enable(!@text.value.empty?)
508
+ end
509
+
510
+ def on_update_ui_password_checkbox(event)
511
+ # can't put multiline control in password mode
512
+ event.enable(is_single_line)
513
+ end
514
+
515
+ def on_update_ui_no_vert_scrollbar_checkbox(event)
516
+ # Vertical scrollbar creation can be blocked only in multiline control
517
+ event.enable(!is_single_line)
518
+ end
519
+
520
+ def on_update_ui_wrap_lines_radiobox(event)
521
+ event.enable(!is_single_line)
522
+ end
523
+
524
+ def on_update_ui_reset_button(event)
525
+ event.enable( (@radioTextLines.selection != DEFAULTS.text_lines) ||
526
+ (Wx::PLATFORM == 'WXMSW' && @radioKind.selection != DEFAULTS.text_kind) ||
527
+ (@chkPassword.value != DEFAULTS.password) ||
528
+ (@chkReadonly.value != DEFAULTS.readonly) ||
529
+ (@chkProcessEnter.value != DEFAULTS.process_enter) ||
530
+ (@chkProcessTab.value != DEFAULTS.process_tab) ||
531
+ (@chkFilename.value != DEFAULTS.filename) ||
532
+ (@chkNoVertScrollbar.value != DEFAULTS.no_vert_scrollbar) ||
533
+ (@radioWrap.selection != DEFAULTS.wrap_style) )
534
+ end
535
+
536
+ def on_idle(_event)
537
+ # update all info texts
538
+
539
+ if @textPosCur
540
+ posCur = @text.get_insertion_point
541
+ if posCur != @posCur
542
+ @textPosCur.clear
543
+ @textRowCur.clear
544
+ @textColCur.clear
545
+
546
+ col, row = @text.position_to_xy(posCur)
547
+
548
+ @textPosCur << posCur
549
+ @textRowCur << row
550
+ @textColCur << col
551
+
552
+ @posCur = posCur
553
+ end
554
+ end
555
+
556
+ if @textPosLast
557
+ posLast = @text.get_last_position
558
+ if posLast != @posLast
559
+ @textPosLast.clear
560
+ @textPosLast << posLast
561
+
562
+ @posLast = posLast
563
+ end
564
+ end
565
+
566
+ if @textLineLast
567
+ @textLineLast.set_value(@text.get_number_of_lines.to_s)
568
+ end
569
+
570
+ if @textSelFrom && @textSelTo
571
+ selFrom, selTo = @text.get_selection
572
+ if selFrom != @selFrom
573
+ @textSelFrom.clear
574
+ @textSelFrom << selFrom
575
+
576
+ @selFrom = selFrom
577
+ end
578
+
579
+ if selTo != @selTo
580
+ @textSelTo.clear
581
+ @textSelTo << selTo
582
+
583
+ @selTo = selTo
584
+ end
585
+ end
586
+
587
+ if @textRange
588
+ range = @text.get_range(10, 20)
589
+ if range != @range10_20
590
+ @range10_20 = range
591
+ @textRange.value = range
592
+ end
593
+ end
594
+ end
595
+
596
+ # reset the textctrl parameters
597
+ def reset
598
+ @radioTextLines.set_selection(DEFAULTS.text_lines)
599
+
600
+ @chkPassword.set_value(DEFAULTS.password)
601
+ @chkReadonly.set_value(DEFAULTS.readonly)
602
+ @chkProcessEnter.set_value(DEFAULTS.process_enter)
603
+ @chkProcessTab.set_value(DEFAULTS.process_tab)
604
+ @chkFilename.set_value(DEFAULTS.filename)
605
+ @chkNoVertScrollbar.set_value(DEFAULTS.no_vert_scrollbar)
606
+
607
+ @radioWrap.set_selection(DEFAULTS.wrap_style)
608
+ @radioAlign.set_selection(DEFAULTS.alignment_style)
609
+
610
+ if Wx::PLATFORM == 'WXMSW'
611
+ @radioKind.set_selection(DEFAULTS.text_kind)
612
+ end # WXMSW
613
+ end
614
+
615
+ # (re)create the textctrl
616
+ def create_text
617
+ flags = get_attrs.default_flags
618
+ case @radioTextLines.get_selection
619
+ when ID::TextLines_Single
620
+ # nothing
621
+ when ID::TextLines_Multi
622
+ flags |= Wx::TE_MULTILINE
623
+ @chkPassword.set_value(false)
624
+ else
625
+ ::Kernel.raise RuntimeError, 'unexpected lines radio box selection'
626
+ end
627
+
628
+ flags |= Wx::TE_PASSWORD if @chkPassword.value
629
+ flags |= Wx::TE_READONLY if @chkReadonly.value
630
+ flags |= Wx::TE_PROCESS_ENTER if @chkProcessEnter.value
631
+ flags |= Wx::TE_PROCESS_TAB if @chkProcessTab.value
632
+ flags |= Wx::TE_NO_VSCROLL if @chkNoVertScrollbar.value
633
+
634
+ case @radioWrap.get_selection
635
+ when ID::WrapStyle_None
636
+ flags |= Wx::TE_DONTWRAP # same as wxHSCROLL
637
+ when ID::WrapStyle_Word
638
+ flags |= Wx::TE_WORDWRAP
639
+ when ID::WrapStyle_Char
640
+ flags |= Wx::TE_CHARWRAP
641
+ when ID::WrapStyle_Best
642
+ # this is default but use symbolic file name for consistency
643
+ flags |= Wx::TE_BESTWRAP
644
+ else
645
+ ::Kernel.raise RuntimeError, 'unexpected wrap style radio box selection'
646
+ end
647
+
648
+ case @radioAlign.selection
649
+ when ID::Align_Left
650
+ flags |= Wx::TE_LEFT
651
+ when ID::Align_Center
652
+ flags |= Wx::TE_CENTER
653
+ when ID::Align_Right
654
+ flags |= Wx::TE_RIGHT
655
+ else
656
+ ::Kernel.raise RuntimeError, 'unexpected alignment style radio box selection'
657
+ end
658
+
659
+ if Wx::PLATFORM == 'WXMSW'
660
+ case @radioKind.selection
661
+ when ID::TextKind_Plain
662
+ # nothing
663
+ when ID::TextKind_Rich
664
+ flags |= Wx::TE_RICH
665
+ when ID::TextKind_Rich2
666
+ flags |= Wx::TE_RICH2
667
+ else
668
+ ::Kernel.raise RuntimeError, 'unexpected kind radio box selection'
669
+ end
670
+ end # WXMSW
671
+
672
+ if @text
673
+ valueOld = @text.value
674
+
675
+ @sizerText.detach(@text)
676
+ @text.destroy
677
+ else
678
+ valueOld = 'Hello, Universe!'
679
+ end
680
+
681
+ @text = WidgetsTextCtrl.new(@sizerText.get_static_box, ID::Textctrl, valueOld, flags)
682
+
683
+ # TODO
684
+ # if @chkFilename.value
685
+ # end
686
+
687
+ @sizerText.add(@text, 1, Wx::ALL | (flags.allbits?(Wx::TE_MULTILINE) ? Wx::GROW : Wx::ALIGN_TOP), 5)
688
+ @sizerText.layout
689
+ end
690
+
691
+ # is the control currently single line?
692
+ def is_single_line
693
+ @radioTextLines.get_selection == ID::TextLines_Single
694
+ end
695
+
696
+ end
697
+
698
+ end
699
+
700
+ end