wxruby3 0.9.0.pre.beta.1-x64-mingw-ucrt-3.2

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 (822) hide show
  1. checksums.yaml +7 -0
  2. data/.wxconfig +17 -0
  3. data/.yardopts +13 -0
  4. data/CREDITS.md +52 -0
  5. data/LICENSE +21 -0
  6. data/README.md +138 -0
  7. data/bin/wxruby +9 -0
  8. data/bin/wxruby.bat +20 -0
  9. data/ext/mkrf_conf_bingem.rb +18 -0
  10. data/lib/wx/accessors.rb +63 -0
  11. data/lib/wx/aui/auimanager.rb +17 -0
  12. data/lib/wx/aui/auinotebook.rb +9 -0
  13. data/lib/wx/aui/events/evt_list.rb +143 -0
  14. data/lib/wx/aui/require.rb +9 -0
  15. data/lib/wx/aui.rb +14 -0
  16. data/lib/wx/core/acceleratortable.rb +28 -0
  17. data/lib/wx/core/animation.rb +18 -0
  18. data/lib/wx/core/app.rb +89 -0
  19. data/lib/wx/core/artprovider.rb +31 -0
  20. data/lib/wx/core/bitmap.rb +59 -0
  21. data/lib/wx/core/busycursor.rb +12 -0
  22. data/lib/wx/core/choice.rb +4 -0
  23. data/lib/wx/core/choicedlg.rb +54 -0
  24. data/lib/wx/core/clientdc.rb +13 -0
  25. data/lib/wx/core/clipboard.rb +56 -0
  26. data/lib/wx/core/collapsible_pane.rb +12 -0
  27. data/lib/wx/core/colour.rb +34 -0
  28. data/lib/wx/core/combobox.rb +4 -0
  29. data/lib/wx/core/controlwithitems.rb +10 -0
  30. data/lib/wx/core/data_object.rb +10 -0
  31. data/lib/wx/core/dataformat.rb +26 -0
  32. data/lib/wx/core/dc.rb +68 -0
  33. data/lib/wx/core/dialog.rb +50 -0
  34. data/lib/wx/core/event.rb +16 -0
  35. data/lib/wx/core/events/evt_list.rb +1378 -0
  36. data/lib/wx/core/evthandler.rb +240 -0
  37. data/lib/wx/core/ext.rb +58 -0
  38. data/lib/wx/core/font/encoding.rb +113 -0
  39. data/lib/wx/core/font.rb +22 -0
  40. data/lib/wx/core/functions.rb +44 -0
  41. data/lib/wx/core/gauge.rb +12 -0
  42. data/lib/wx/core/genericdirctrl.rb +36 -0
  43. data/lib/wx/core/hboxsizer.rb +6 -0
  44. data/lib/wx/core/helpcontroller.rb +5 -0
  45. data/lib/wx/core/helpcontrollerhelpprovider.rb +24 -0
  46. data/lib/wx/core/helpprovider.rb +15 -0
  47. data/lib/wx/core/icon.rb +40 -0
  48. data/lib/wx/core/image.rb +68 -0
  49. data/lib/wx/core/imagelist.rb +3 -0
  50. data/lib/wx/core/listbox.rb +4 -0
  51. data/lib/wx/core/listctrl.rb +33 -0
  52. data/lib/wx/core/locale.rb +73 -0
  53. data/lib/wx/core/log.rb +20 -0
  54. data/lib/wx/core/menu.rb +78 -0
  55. data/lib/wx/core/menu_bar.rb +20 -0
  56. data/lib/wx/core/menuitem.rb +7 -0
  57. data/lib/wx/core/notebook.rb +9 -0
  58. data/lib/wx/core/object.rb +14 -0
  59. data/lib/wx/core/pen_info.rb +11 -0
  60. data/lib/wx/core/platform_info.rb +13 -0
  61. data/lib/wx/core/point.rb +92 -0
  62. data/lib/wx/core/real_point.rb +92 -0
  63. data/lib/wx/core/rect.rb +57 -0
  64. data/lib/wx/core/simplehelpprovider.rb +38 -0
  65. data/lib/wx/core/size.rb +86 -0
  66. data/lib/wx/core/sizer.rb +43 -0
  67. data/lib/wx/core/splash_screen.rb +44 -0
  68. data/lib/wx/core/textctrl.rb +8 -0
  69. data/lib/wx/core/timer.rb +105 -0
  70. data/lib/wx/core/toolbar.rb +37 -0
  71. data/lib/wx/core/toolbartool.rb +4 -0
  72. data/lib/wx/core/treectrl.rb +46 -0
  73. data/lib/wx/core/validator.rb +8 -0
  74. data/lib/wx/core/variant.rb +62 -0
  75. data/lib/wx/core/vboxsizer.rb +6 -0
  76. data/lib/wx/core/window.rb +95 -0
  77. data/lib/wx/core/window_update_locker.rb +12 -0
  78. data/lib/wx/core/xmlresource.rb +56 -0
  79. data/lib/wx/core.rb +61 -0
  80. data/lib/wx/doc/aui/auimanager.rb +12 -0
  81. data/lib/wx/doc/aui/auinotebook.rb +9 -0
  82. data/lib/wx/doc/colour_dialog.rb +15 -0
  83. data/lib/wx/doc/dc.rb +49 -0
  84. data/lib/wx/doc/enum.rb +66 -0
  85. data/lib/wx/doc/evthandler.rb +84 -0
  86. data/lib/wx/doc/extra/00_starting.md +154 -0
  87. data/lib/wx/doc/extra/01_packages.md +179 -0
  88. data/lib/wx/doc/extra/02_lifecycles.md +116 -0
  89. data/lib/wx/doc/extra/03_dialogs.md +57 -0
  90. data/lib/wx/doc/extra/04_enums.md +143 -0
  91. data/lib/wx/doc/extra/05_event-handling.md +166 -0
  92. data/lib/wx/doc/extra/06_geometry.md +56 -0
  93. data/lib/wx/doc/extra/07_colour_and_font.md +52 -0
  94. data/lib/wx/doc/extra/08_extensions.md +144 -0
  95. data/lib/wx/doc/extra/09_exceptions.md +54 -0
  96. data/lib/wx/doc/functions.rb +221 -0
  97. data/lib/wx/doc/gdi_common.rb +181 -0
  98. data/lib/wx/doc/gen/about_dialog_info.rb +315 -0
  99. data/lib/wx/doc/gen/accelerator.rb +172 -0
  100. data/lib/wx/doc/gen/accessible.rb +817 -0
  101. data/lib/wx/doc/gen/animation.rb +253 -0
  102. data/lib/wx/doc/gen/animation_ctrl.rb +129 -0
  103. data/lib/wx/doc/gen/any_button.rb +170 -0
  104. data/lib/wx/doc/gen/app.rb +363 -0
  105. data/lib/wx/doc/gen/art_provider.rb +497 -0
  106. data/lib/wx/doc/gen/aui/aui_dock_art.rb +421 -0
  107. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +39 -0
  108. data/lib/wx/doc/gen/aui/aui_manager.rb +323 -0
  109. data/lib/wx/doc/gen/aui/aui_manager_event.rb +112 -0
  110. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +163 -0
  111. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +46 -0
  112. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +109 -0
  113. data/lib/wx/doc/gen/aui/aui_notebook.rb +329 -0
  114. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +179 -0
  115. data/lib/wx/doc/gen/aui/aui_pane_info.rb +665 -0
  116. data/lib/wx/doc/gen/aui/aui_tab_art.rb +372 -0
  117. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +147 -0
  118. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +437 -0
  119. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +272 -0
  120. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +195 -0
  121. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +224 -0
  122. data/lib/wx/doc/gen/aui/event_list.rb +162 -0
  123. data/lib/wx/doc/gen/auto_buffered_paint_dc.rb +47 -0
  124. data/lib/wx/doc/gen/bitmap.rb +638 -0
  125. data/lib/wx/doc/gen/bitmap_button.rb +91 -0
  126. data/lib/wx/doc/gen/book_ctrl_base.rb +240 -0
  127. data/lib/wx/doc/gen/book_ctrl_event.rb +60 -0
  128. data/lib/wx/doc/gen/box_sizer.rb +66 -0
  129. data/lib/wx/doc/gen/brush.rb +219 -0
  130. data/lib/wx/doc/gen/buffered_dc.rb +95 -0
  131. data/lib/wx/doc/gen/buffered_paint_dc.rb +55 -0
  132. data/lib/wx/doc/gen/busy_info.rb +141 -0
  133. data/lib/wx/doc/gen/button.rb +133 -0
  134. data/lib/wx/doc/gen/calculate_layout_event.rb +59 -0
  135. data/lib/wx/doc/gen/calendar_ctrl.rb +236 -0
  136. data/lib/wx/doc/gen/calendar_date_attr.rb +137 -0
  137. data/lib/wx/doc/gen/calendar_event.rb +150 -0
  138. data/lib/wx/doc/gen/caret.rb +99 -0
  139. data/lib/wx/doc/gen/check_box.rb +145 -0
  140. data/lib/wx/doc/gen/check_list_box.rb +96 -0
  141. data/lib/wx/doc/gen/choice.rb +143 -0
  142. data/lib/wx/doc/gen/choicebook.rb +100 -0
  143. data/lib/wx/doc/gen/client_dc.rb +49 -0
  144. data/lib/wx/doc/gen/clipboard.rb +128 -0
  145. data/lib/wx/doc/gen/collapsible_pane.rb +120 -0
  146. data/lib/wx/doc/gen/collapsible_pane_event.rb +45 -0
  147. data/lib/wx/doc/gen/colour.rb +289 -0
  148. data/lib/wx/doc/gen/colour_data.rb +96 -0
  149. data/lib/wx/doc/gen/colour_dialog.rb +84 -0
  150. data/lib/wx/doc/gen/colour_picker_ctrl.rb +89 -0
  151. data/lib/wx/doc/gen/colour_picker_event.rb +74 -0
  152. data/lib/wx/doc/gen/combo_box.rb +228 -0
  153. data/lib/wx/doc/gen/context_help_button.rb +34 -0
  154. data/lib/wx/doc/gen/control.rb +245 -0
  155. data/lib/wx/doc/gen/control_with_items.rb +339 -0
  156. data/lib/wx/doc/gen/core.rb +42 -0
  157. data/lib/wx/doc/gen/cursor.rb +127 -0
  158. data/lib/wx/doc/gen/data_format.rb +94 -0
  159. data/lib/wx/doc/gen/data_object.rb +439 -0
  160. data/lib/wx/doc/gen/date_event.rb +48 -0
  161. data/lib/wx/doc/gen/date_picker_ctrl.rb +127 -0
  162. data/lib/wx/doc/gen/dc.rb +1278 -0
  163. data/lib/wx/doc/gen/defs.rb +2832 -0
  164. data/lib/wx/doc/gen/dialog.rb +426 -0
  165. data/lib/wx/doc/gen/dir_dialog.rb +134 -0
  166. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +80 -0
  167. data/lib/wx/doc/gen/dir_picker_ctrl.rb +103 -0
  168. data/lib/wx/doc/gen/drag_drop.rb +292 -0
  169. data/lib/wx/doc/gen/drag_image.rb +123 -0
  170. data/lib/wx/doc/gen/editable_list_box.rb +89 -0
  171. data/lib/wx/doc/gen/event.rb +911 -0
  172. data/lib/wx/doc/gen/event_list.rb +1512 -0
  173. data/lib/wx/doc/gen/events.rb +2499 -0
  174. data/lib/wx/doc/gen/evt_handler.rb +224 -0
  175. data/lib/wx/doc/gen/ext_help_controller.rb +100 -0
  176. data/lib/wx/doc/gen/file_dialog.rb +294 -0
  177. data/lib/wx/doc/gen/file_dir_picker_event.rb +98 -0
  178. data/lib/wx/doc/gen/file_picker_ctrl.rb +107 -0
  179. data/lib/wx/doc/gen/find_dialog_event.rb +119 -0
  180. data/lib/wx/doc/gen/find_replace_data.rb +59 -0
  181. data/lib/wx/doc/gen/find_replace_dialog.rb +44 -0
  182. data/lib/wx/doc/gen/flex_grid_sizer.rb +145 -0
  183. data/lib/wx/doc/gen/font.rb +1282 -0
  184. data/lib/wx/doc/gen/font_data.rb +132 -0
  185. data/lib/wx/doc/gen/font_dialog.rb +71 -0
  186. data/lib/wx/doc/gen/font_picker_ctrl.rb +120 -0
  187. data/lib/wx/doc/gen/font_picker_event.rb +64 -0
  188. data/lib/wx/doc/gen/frame.rb +276 -0
  189. data/lib/wx/doc/gen/fs_file.rb +269 -0
  190. data/lib/wx/doc/gen/functions.rb +10 -0
  191. data/lib/wx/doc/gen/gauge.rb +127 -0
  192. data/lib/wx/doc/gen/gb_sizer_item.rb +78 -0
  193. data/lib/wx/doc/gen/gcdc.rb +61 -0
  194. data/lib/wx/doc/gen/gdi_common.rb +1108 -0
  195. data/lib/wx/doc/gen/gdi_object.rb +29 -0
  196. data/lib/wx/doc/gen/generic_dir_ctrl.rb +198 -0
  197. data/lib/wx/doc/gen/graphics_context.rb +764 -0
  198. data/lib/wx/doc/gen/graphics_object.rb +494 -0
  199. data/lib/wx/doc/gen/grid/event_list.rb +173 -0
  200. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +33 -0
  201. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +279 -0
  202. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +31 -0
  203. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +32 -0
  204. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +44 -0
  205. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +31 -0
  206. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +48 -0
  207. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +33 -0
  208. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +40 -0
  209. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +35 -0
  210. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +181 -0
  211. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +34 -0
  212. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +39 -0
  213. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +41 -0
  214. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +74 -0
  215. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +41 -0
  216. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +31 -0
  217. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +98 -0
  218. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +31 -0
  219. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +45 -0
  220. data/lib/wx/doc/gen/grid/grid_ctrl.rb +2381 -0
  221. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +87 -0
  222. data/lib/wx/doc/gen/grid/grid_event.rb +96 -0
  223. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +96 -0
  224. data/lib/wx/doc/gen/grid/grid_size_event.rb +71 -0
  225. data/lib/wx/doc/gen/grid/grid_string_table.rb +130 -0
  226. data/lib/wx/doc/gen/grid/grid_table_base.rb +288 -0
  227. data/lib/wx/doc/gen/grid/grid_table_message.rb +73 -0
  228. data/lib/wx/doc/gen/grid_bag_sizer.rb +298 -0
  229. data/lib/wx/doc/gen/grid_sizer.rb +135 -0
  230. data/lib/wx/doc/gen/help_controller.rb +136 -0
  231. data/lib/wx/doc/gen/help_provider.rb +80 -0
  232. data/lib/wx/doc/gen/html/event_list.rb +46 -0
  233. data/lib/wx/doc/gen/html/html_cell.rb +441 -0
  234. data/lib/wx/doc/gen/html/html_cell_event.rb +62 -0
  235. data/lib/wx/doc/gen/html/html_easy_printing.rb +169 -0
  236. data/lib/wx/doc/gen/html/html_help_controller.rb +256 -0
  237. data/lib/wx/doc/gen/html/html_help_data.rb +144 -0
  238. data/lib/wx/doc/gen/html/html_help_frame.rb +112 -0
  239. data/lib/wx/doc/gen/html/html_help_window.rb +230 -0
  240. data/lib/wx/doc/gen/html/html_link_event.rb +36 -0
  241. data/lib/wx/doc/gen/html/html_list_box.rb +150 -0
  242. data/lib/wx/doc/gen/html/html_printout.rb +87 -0
  243. data/lib/wx/doc/gen/html/html_window.rb +386 -0
  244. data/lib/wx/doc/gen/icon.rb +267 -0
  245. data/lib/wx/doc/gen/icon_location.rb +38 -0
  246. data/lib/wx/doc/gen/image.rb +1144 -0
  247. data/lib/wx/doc/gen/image_list.rb +181 -0
  248. data/lib/wx/doc/gen/keyboard_state.rb +124 -0
  249. data/lib/wx/doc/gen/list_box.rb +260 -0
  250. data/lib/wx/doc/gen/list_ctrl.rb +1542 -0
  251. data/lib/wx/doc/gen/list_event.rb +177 -0
  252. data/lib/wx/doc/gen/listbook.rb +100 -0
  253. data/lib/wx/doc/gen/locale.rb +4143 -0
  254. data/lib/wx/doc/gen/log.rb +505 -0
  255. data/lib/wx/doc/gen/mdi_client_window.rb +38 -0
  256. data/lib/wx/doc/gen/mdi_frame.rb +235 -0
  257. data/lib/wx/doc/gen/media_ctrl.rb +225 -0
  258. data/lib/wx/doc/gen/media_event.rb +109 -0
  259. data/lib/wx/doc/gen/memory_dc.rb +95 -0
  260. data/lib/wx/doc/gen/menu.rb +493 -0
  261. data/lib/wx/doc/gen/menu_bar.rb +247 -0
  262. data/lib/wx/doc/gen/menu_item.rb +333 -0
  263. data/lib/wx/doc/gen/message_dialog.rb +195 -0
  264. data/lib/wx/doc/gen/mini_frame.rb +72 -0
  265. data/lib/wx/doc/gen/mirror_dc.rb +29 -0
  266. data/lib/wx/doc/gen/mouse_state.rb +108 -0
  267. data/lib/wx/doc/gen/multi_choice_dialog.rb +58 -0
  268. data/lib/wx/doc/gen/non_owned_window.rb +46 -0
  269. data/lib/wx/doc/gen/notebook.rb +220 -0
  270. data/lib/wx/doc/gen/number_entry_dialog.rb +75 -0
  271. data/lib/wx/doc/gen/object.rb +69 -0
  272. data/lib/wx/doc/gen/paint_dc.rb +34 -0
  273. data/lib/wx/doc/gen/palette.rb +90 -0
  274. data/lib/wx/doc/gen/panel.rb +96 -0
  275. data/lib/wx/doc/gen/pen.rb +484 -0
  276. data/lib/wx/doc/gen/pg/event_list.rb +102 -0
  277. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +47 -0
  278. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +295 -0
  279. data/lib/wx/doc/gen/pg/pg_cell.rb +166 -0
  280. data/lib/wx/doc/gen/pg/pg_editor.rb +569 -0
  281. data/lib/wx/doc/gen/pg/pg_multi_button.rb +161 -0
  282. data/lib/wx/doc/gen/pg/pg_properties.rb +2193 -0
  283. data/lib/wx/doc/gen/pg/pg_property.rb +1852 -0
  284. data/lib/wx/doc/gen/pg/pg_validation_info.rb +327 -0
  285. data/lib/wx/doc/gen/pg/property_grid.rb +619 -0
  286. data/lib/wx/doc/gen/pg/property_grid_event.rb +135 -0
  287. data/lib/wx/doc/gen/pg/property_grid_interface.rb +847 -0
  288. data/lib/wx/doc/gen/pg/property_grid_manager.rb +349 -0
  289. data/lib/wx/doc/gen/pg/property_grid_page.rb +265 -0
  290. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +155 -0
  291. data/lib/wx/doc/gen/picker_base.rb +143 -0
  292. data/lib/wx/doc/gen/platform_info.rb +379 -0
  293. data/lib/wx/doc/gen/popup_window.rb +93 -0
  294. data/lib/wx/doc/gen/progress_dialog.rb +106 -0
  295. data/lib/wx/doc/gen/property_sheet_dialog.rb +185 -0
  296. data/lib/wx/doc/gen/prt/event_list.rb +13 -0
  297. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +38 -0
  298. data/lib/wx/doc/gen/prt/post_script_dc.rb +32 -0
  299. data/lib/wx/doc/gen/prt/preview_frame.rb +39 -0
  300. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +127 -0
  301. data/lib/wx/doc/gen/prt/print_data.rb +598 -0
  302. data/lib/wx/doc/gen/prt/print_dialog.rb +47 -0
  303. data/lib/wx/doc/gen/prt/printer.rb +428 -0
  304. data/lib/wx/doc/gen/prt/printer_dc.rb +35 -0
  305. data/lib/wx/doc/gen/query_layout_info_event.rb +98 -0
  306. data/lib/wx/doc/gen/radio_box.rb +258 -0
  307. data/lib/wx/doc/gen/radio_button.rb +128 -0
  308. data/lib/wx/doc/gen/rbn/event_list.rb +132 -0
  309. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1652 -0
  310. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +227 -0
  311. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +40 -0
  312. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +400 -0
  313. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +58 -0
  314. data/lib/wx/doc/gen/rbn/ribbon_control.rb +116 -0
  315. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +208 -0
  316. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +51 -0
  317. data/lib/wx/doc/gen/rbn/ribbon_page.rb +129 -0
  318. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +232 -0
  319. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +41 -0
  320. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +321 -0
  321. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +36 -0
  322. data/lib/wx/doc/gen/region.rb +299 -0
  323. data/lib/wx/doc/gen/rtc/event_list.rb +121 -0
  324. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +2052 -0
  325. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2031 -0
  326. data/lib/wx/doc/gen/rtc/rich_text_event.rb +146 -0
  327. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +171 -0
  328. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +180 -0
  329. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +104 -0
  330. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +241 -0
  331. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +55 -0
  332. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +153 -0
  333. data/lib/wx/doc/gen/sash_event.rb +133 -0
  334. data/lib/wx/doc/gen/sash_layout_window.rb +203 -0
  335. data/lib/wx/doc/gen/sash_window.rb +154 -0
  336. data/lib/wx/doc/gen/screen_dc.rb +27 -0
  337. data/lib/wx/doc/gen/scrolled_canvas.rb +317 -0
  338. data/lib/wx/doc/gen/scrolled_control.rb +317 -0
  339. data/lib/wx/doc/gen/scrolled_window.rb +337 -0
  340. data/lib/wx/doc/gen/simplebook.rb +93 -0
  341. data/lib/wx/doc/gen/single_choice_dialog.rb +74 -0
  342. data/lib/wx/doc/gen/sizer.rb +847 -0
  343. data/lib/wx/doc/gen/sizer_item.rb +227 -0
  344. data/lib/wx/doc/gen/slider.rb +316 -0
  345. data/lib/wx/doc/gen/spin_button.rb +124 -0
  346. data/lib/wx/doc/gen/spin_ctrl.rb +170 -0
  347. data/lib/wx/doc/gen/spin_event.rb +47 -0
  348. data/lib/wx/doc/gen/splash_screen.rb +83 -0
  349. data/lib/wx/doc/gen/splitter_event.rb +87 -0
  350. data/lib/wx/doc/gen/splitter_window.rb +357 -0
  351. data/lib/wx/doc/gen/static_bitmap.rb +126 -0
  352. data/lib/wx/doc/gen/static_box.rb +123 -0
  353. data/lib/wx/doc/gen/static_box_sizer.rb +67 -0
  354. data/lib/wx/doc/gen/static_line.rb +66 -0
  355. data/lib/wx/doc/gen/static_text.rb +98 -0
  356. data/lib/wx/doc/gen/status_bar.rb +203 -0
  357. data/lib/wx/doc/gen/stc/event_list.rb +217 -0
  358. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4000 -0
  359. data/lib/wx/doc/gen/stc/styled_text_event.rb +7319 -0
  360. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +74 -0
  361. data/lib/wx/doc/gen/svg_file_dc.rb +153 -0
  362. data/lib/wx/doc/gen/system_options.rb +109 -0
  363. data/lib/wx/doc/gen/system_settings.rb +481 -0
  364. data/lib/wx/doc/gen/task_bar_icon.rb +94 -0
  365. data/lib/wx/doc/gen/task_bar_icon_event.rb +86 -0
  366. data/lib/wx/doc/gen/text_attr.rb +645 -0
  367. data/lib/wx/doc/gen/text_ctrl.rb +841 -0
  368. data/lib/wx/doc/gen/text_entry.rb +389 -0
  369. data/lib/wx/doc/gen/text_entry_dialog.rb +170 -0
  370. data/lib/wx/doc/gen/text_validator.rb +212 -0
  371. data/lib/wx/doc/gen/time_picker_ctrl.rb +103 -0
  372. data/lib/wx/doc/gen/timer.rb +103 -0
  373. data/lib/wx/doc/gen/timer_event.rb +73 -0
  374. data/lib/wx/doc/gen/tip_provider.rb +60 -0
  375. data/lib/wx/doc/gen/toggle_button.rb +84 -0
  376. data/lib/wx/doc/gen/tool_bar.rb +744 -0
  377. data/lib/wx/doc/gen/tool_tip.rb +73 -0
  378. data/lib/wx/doc/gen/toolbook.rb +103 -0
  379. data/lib/wx/doc/gen/top_level_window.rb +462 -0
  380. data/lib/wx/doc/gen/tree_ctrl.rb +863 -0
  381. data/lib/wx/doc/gen/tree_event.rb +101 -0
  382. data/lib/wx/doc/gen/treebook.rb +154 -0
  383. data/lib/wx/doc/gen/utils.rb +257 -0
  384. data/lib/wx/doc/gen/v_list_box.rb +224 -0
  385. data/lib/wx/doc/gen/v_scrolled_window.rb +224 -0
  386. data/lib/wx/doc/gen/validator.rb +73 -0
  387. data/lib/wx/doc/gen/variant.rb +340 -0
  388. data/lib/wx/doc/gen/window.rb +2414 -0
  389. data/lib/wx/doc/gen/window_dc.rb +35 -0
  390. data/lib/wx/doc/gen/window_disabler.rb +24 -0
  391. data/lib/wx/doc/gen/with_images.rb +73 -0
  392. data/lib/wx/doc/gen/wizard.rb +197 -0
  393. data/lib/wx/doc/gen/wizard_event.rb +105 -0
  394. data/lib/wx/doc/gen/wizard_page.rb +61 -0
  395. data/lib/wx/doc/gen/wizard_page_simple.rb +72 -0
  396. data/lib/wx/doc/gen/xml_node.rb +282 -0
  397. data/lib/wx/doc/gen/xml_resource.rb +304 -0
  398. data/lib/wx/doc/grid/grid.rb +20 -0
  399. data/lib/wx/doc/help_controller.rb +14 -0
  400. data/lib/wx/doc/html/html_help_controller.rb +8 -0
  401. data/lib/wx/doc/pg/events.rb +15 -0
  402. data/lib/wx/doc/pg/pg_property.rb +8 -0
  403. data/lib/wx/doc/pg/pgeditor.rb +21 -0
  404. data/lib/wx/doc/pg/property_grid.rb +48 -0
  405. data/lib/wx/doc/pg/property_grid_interface.rb +64 -0
  406. data/lib/wx/doc/prt/page_setup_dialog.rb +15 -0
  407. data/lib/wx/doc/prt/print_data.rb +9 -0
  408. data/lib/wx/doc/prt/print_dialog.rb +26 -0
  409. data/lib/wx/doc/prt/printer.rb +15 -0
  410. data/lib/wx/doc/rbn/ribbon_bar.rb +9 -0
  411. data/lib/wx/doc/rbn/ribbon_button_bar.rb +9 -0
  412. data/lib/wx/doc/rbn/ribbon_gallery.rb +9 -0
  413. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +9 -0
  414. data/lib/wx/doc/rtc/richtext_printing.rb +14 -0
  415. data/lib/wx/doc/screen_dc.rb +10 -0
  416. data/lib/wx/doc/stock_objects.rb +98 -0
  417. data/lib/wx/doc/stream.rb +38 -0
  418. data/lib/wx/doc/system_settings.rb +29 -0
  419. data/lib/wx/doc/treebook.rb +9 -0
  420. data/lib/wx/doc/variant.rb +163 -0
  421. data/lib/wx/doc/xml_resource.rb +19 -0
  422. data/lib/wx/global_const.rb +84 -0
  423. data/lib/wx/grid/events/evt_list.rb +156 -0
  424. data/lib/wx/grid/grid.rb +7 -0
  425. data/lib/wx/grid/keyword_defs.rb +10 -0
  426. data/lib/wx/grid/require.rb +9 -0
  427. data/lib/wx/grid.rb +14 -0
  428. data/lib/wx/helpers.rb +65 -0
  429. data/lib/wx/html/events/evt_list.rb +37 -0
  430. data/lib/wx/html/htmlhelpcontroller.rb +6 -0
  431. data/lib/wx/html/htmlwindow.rb +19 -0
  432. data/lib/wx/html/keyword_defs.rb +22 -0
  433. data/lib/wx/html/require.rb +10 -0
  434. data/lib/wx/html.rb +15 -0
  435. data/lib/wx/keyword_ctors.rb +226 -0
  436. data/lib/wx/keyword_defs.rb +487 -0
  437. data/lib/wx/pg/events/evt_list.rb +73 -0
  438. data/lib/wx/pg/events.rb +14 -0
  439. data/lib/wx/pg/keyword_defs.rb +15 -0
  440. data/lib/wx/pg/pg_editor.rb +13 -0
  441. data/lib/wx/pg/pg_properties.rb +24 -0
  442. data/lib/wx/pg/pg_property.rb +26 -0
  443. data/lib/wx/pg/property_grid.rb +56 -0
  444. data/lib/wx/pg/property_grid_interface.rb +33 -0
  445. data/lib/wx/pg/require.rb +12 -0
  446. data/lib/wx/pg.rb +14 -0
  447. data/lib/wx/prt/keyword_defs.rb +8 -0
  448. data/lib/wx/prt/page_setup_dialog.rb +15 -0
  449. data/lib/wx/prt/previewframe.rb +13 -0
  450. data/lib/wx/prt/require.rb +8 -0
  451. data/lib/wx/prt.rb +14 -0
  452. data/lib/wx/rbn/events/evt_list.rb +102 -0
  453. data/lib/wx/rbn/events.rb +4 -0
  454. data/lib/wx/rbn/keyword_defs.rb +43 -0
  455. data/lib/wx/rbn/require.rb +12 -0
  456. data/lib/wx/rbn/ribbon_art_provider.rb +10 -0
  457. data/lib/wx/rbn/ribbon_bar.rb +12 -0
  458. data/lib/wx/rbn/ribbon_button_bar.rb +26 -0
  459. data/lib/wx/rbn/ribbon_control.rb +25 -0
  460. data/lib/wx/rbn/ribbon_gallery.rb +26 -0
  461. data/lib/wx/rbn/ribbon_page.rb +15 -0
  462. data/lib/wx/rbn/ribbon_panel.rb +15 -0
  463. data/lib/wx/rbn/ribbon_tool_bar.rb +26 -0
  464. data/lib/wx/rbn.rb +14 -0
  465. data/lib/wx/rtc/events/evt_list.rb +98 -0
  466. data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -0
  467. data/lib/wx/rtc/ext.rb +15 -0
  468. data/lib/wx/rtc/keyword_defs.rb +17 -0
  469. data/lib/wx/rtc/require.rb +8 -0
  470. data/lib/wx/rtc.rb +15 -0
  471. data/lib/wx/stc/events/evt_list.rb +178 -0
  472. data/lib/wx/stc/keyword_defs.rb +8 -0
  473. data/lib/wx/stc/require.rb +7 -0
  474. data/lib/wx/stc.rb +14 -0
  475. data/lib/wx/version.rb +3 -0
  476. data/lib/wx/wxruby/base.rb +87 -0
  477. data/lib/wx/wxruby/cmd/sampler.rb +68 -0
  478. data/lib/wx/wxruby/cmd/test.rb +27 -0
  479. data/lib/wx.rb +14 -0
  480. data/lib/wxruby_aui.so +0 -0
  481. data/lib/wxruby_core.so +0 -0
  482. data/lib/wxruby_grid.so +0 -0
  483. data/lib/wxruby_html.so +0 -0
  484. data/lib/wxruby_pg.so +0 -0
  485. data/lib/wxruby_prt.so +0 -0
  486. data/lib/wxruby_rbn.so +0 -0
  487. data/lib/wxruby_rtc.so +0 -0
  488. data/lib/wxruby_stc.so +0 -0
  489. data/rakelib/install.rb +220 -0
  490. data/rakelib/lib/config/cygwin.rb +6 -0
  491. data/rakelib/lib/config/linux.rb +78 -0
  492. data/rakelib/lib/config/macosx.rb +6 -0
  493. data/rakelib/lib/config/mingw.rb +133 -0
  494. data/rakelib/lib/config/netbsd.rb +6 -0
  495. data/rakelib/lib/config/unixish.rb +187 -0
  496. data/rakelib/lib/config.rb +673 -0
  497. data/rakelib/lib/ext/enum_chain.rb +22 -0
  498. data/rakelib/prepost.rake +91 -0
  499. data/rakelib/prepost.rb +26 -0
  500. data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +7 -0
  501. data/rakelib/yard/templates/default/layout/html/setup.rb +5 -0
  502. data/rakelib/yard/yard/relative_markdown_links/version.rb +8 -0
  503. data/rakelib/yard/yard/relative_markdown_links.rb +39 -0
  504. data/rakelib/yard/yard-custom-templates.rb +2 -0
  505. data/rakelib/yard/yard-relative_markdown_links.rb +4 -0
  506. data/samples/art/wxruby-128x128.png +0 -0
  507. data/samples/art/wxruby-256x256.png +0 -0
  508. data/samples/art/wxruby-64x64.png +0 -0
  509. data/samples/art/wxruby.ico +0 -0
  510. data/samples/art/wxruby.png +0 -0
  511. data/samples/aui/aui.rb +1321 -0
  512. data/samples/aui/tn_aui.png +0 -0
  513. data/samples/bigdemo/About.rbw +39 -0
  514. data/samples/bigdemo/ColorPanel.rbw +23 -0
  515. data/samples/bigdemo/GridSimple.rbw +78 -0
  516. data/samples/bigdemo/MDIDemo.rbw +57 -0
  517. data/samples/bigdemo/PopupMenu.rbw +146 -0
  518. data/samples/bigdemo/ShapedWindow.rbw +128 -0
  519. data/samples/bigdemo/Sizers.rbw +541 -0
  520. data/samples/bigdemo/bigdemo.rb +810 -0
  521. data/samples/bigdemo/demoTemplate.rbw +33 -0
  522. data/samples/bigdemo/helpfile.htb +0 -0
  523. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  524. data/samples/bigdemo/icons/Test 015.png +0 -0
  525. data/samples/bigdemo/icons/choice.bmp +0 -0
  526. data/samples/bigdemo/icons/choice.xpm +27 -0
  527. data/samples/bigdemo/icons/combo.bmp +0 -0
  528. data/samples/bigdemo/icons/combo.xpm +27 -0
  529. data/samples/bigdemo/icons/copy.xpm +25 -0
  530. data/samples/bigdemo/icons/cut.xpm +24 -0
  531. data/samples/bigdemo/icons/gauge.bmp +0 -0
  532. data/samples/bigdemo/icons/gauge.xpm +27 -0
  533. data/samples/bigdemo/icons/help.xpm +25 -0
  534. data/samples/bigdemo/icons/list.bmp +0 -0
  535. data/samples/bigdemo/icons/list.xpm +27 -0
  536. data/samples/bigdemo/icons/mondrian.ico +0 -0
  537. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  538. data/samples/bigdemo/icons/new.xpm +24 -0
  539. data/samples/bigdemo/icons/ogl.ico +0 -0
  540. data/samples/bigdemo/icons/ogl.xpm +45 -0
  541. data/samples/bigdemo/icons/open.xpm +26 -0
  542. data/samples/bigdemo/icons/paste.bmp +0 -0
  543. data/samples/bigdemo/icons/paste.xpm +38 -0
  544. data/samples/bigdemo/icons/pointy.png +0 -0
  545. data/samples/bigdemo/icons/preview.xpm +26 -0
  546. data/samples/bigdemo/icons/print.xpm +26 -0
  547. data/samples/bigdemo/icons/radio.bmp +0 -0
  548. data/samples/bigdemo/icons/radio.xpm +27 -0
  549. data/samples/bigdemo/icons/robert.xpm +415 -0
  550. data/samples/bigdemo/icons/sashtest.ico +0 -0
  551. data/samples/bigdemo/icons/save.xpm +25 -0
  552. data/samples/bigdemo/icons/smiles.bmp +0 -0
  553. data/samples/bigdemo/icons/smiles.xpm +39 -0
  554. data/samples/bigdemo/icons/smiley.ico +0 -0
  555. data/samples/bigdemo/icons/smiley.xpm +42 -0
  556. data/samples/bigdemo/icons/stattext.xpm +24 -0
  557. data/samples/bigdemo/icons/test2.bmp +0 -0
  558. data/samples/bigdemo/icons/test2.png +0 -0
  559. data/samples/bigdemo/icons/test2.xpm +79 -0
  560. data/samples/bigdemo/icons/text.bmp +0 -0
  561. data/samples/bigdemo/icons/text.xpm +27 -0
  562. data/samples/bigdemo/icons/tog1.bmp +0 -0
  563. data/samples/bigdemo/icons/tog1.xpm +38 -0
  564. data/samples/bigdemo/icons/tog2.bmp +0 -0
  565. data/samples/bigdemo/icons/tog2.xpm +38 -0
  566. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  567. data/samples/bigdemo/icons/wxwin.ico +0 -0
  568. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  569. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  570. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  571. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  572. data/samples/bigdemo/run.rb +91 -0
  573. data/samples/bigdemo/tips.txt +7 -0
  574. data/samples/bigdemo/utils.rb +12 -0
  575. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  576. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  577. data/samples/bigdemo/wxButton.rbw +64 -0
  578. data/samples/bigdemo/wxCalendarCtrl.rbw +59 -0
  579. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  580. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  581. data/samples/bigdemo/wxChoice.rbw +47 -0
  582. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  583. data/samples/bigdemo/wxColourDialog.rbw +33 -0
  584. data/samples/bigdemo/wxComboBox.rbw +77 -0
  585. data/samples/bigdemo/wxCursor.rbw +136 -0
  586. data/samples/bigdemo/wxDialog.rbw +74 -0
  587. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  588. data/samples/bigdemo/wxDragImage.rbw +70 -0
  589. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  590. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  591. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  592. data/samples/bigdemo/wxFontDialog.rbw +200 -0
  593. data/samples/bigdemo/wxFrame.rbw +53 -0
  594. data/samples/bigdemo/wxGauge.rbw +65 -0
  595. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  596. data/samples/bigdemo/wxGrid.rbw +66 -0
  597. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  598. data/samples/bigdemo/wxListBox.rbw +140 -0
  599. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  600. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  601. data/samples/bigdemo/wxMenu.rbw +247 -0
  602. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  603. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  604. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +29 -0
  605. data/samples/bigdemo/wxNotebook.rbw +136 -0
  606. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  607. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  608. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  609. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  610. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  611. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  612. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  613. data/samples/bigdemo/wxSlider.rbw +42 -0
  614. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  615. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  616. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  617. data/samples/bigdemo/wxStaticBitmap.rbw +47 -0
  618. data/samples/bigdemo/wxStaticText.rbw +55 -0
  619. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  620. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  621. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  622. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  623. data/samples/bigdemo/wxToolBar.rbw +131 -0
  624. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  625. data/samples/calendar/calendar.rb +363 -0
  626. data/samples/calendar/tn_calendar.png +0 -0
  627. data/samples/caret/caret.rb +293 -0
  628. data/samples/caret/mondrian.xpm +44 -0
  629. data/samples/caret/tn_caret.png +0 -0
  630. data/samples/controls/books.rb +183 -0
  631. data/samples/controls/controls.rb +1143 -0
  632. data/samples/controls/get_item_sample.rb +117 -0
  633. data/samples/controls/icons/choice.xpm +27 -0
  634. data/samples/controls/icons/combo.xpm +27 -0
  635. data/samples/controls/icons/gauge.xpm +27 -0
  636. data/samples/controls/icons/list.xpm +27 -0
  637. data/samples/controls/icons/radio.xpm +27 -0
  638. data/samples/controls/icons/stattext.xpm +24 -0
  639. data/samples/controls/icons/text.xpm +27 -0
  640. data/samples/controls/mondrian.ico +0 -0
  641. data/samples/controls/mondrian.xpm +44 -0
  642. data/samples/controls/test2.bmp +0 -0
  643. data/samples/controls/tn_books.png +0 -0
  644. data/samples/controls/tn_controls.png +0 -0
  645. data/samples/controls/tn_get_item_sample.png +0 -0
  646. data/samples/dialogs/dialogs.rb +879 -0
  647. data/samples/dialogs/tips.txt +18 -0
  648. data/samples/dialogs/tn_dialogs.png +0 -0
  649. data/samples/dialogs/tn_wizard.png +0 -0
  650. data/samples/dialogs/wizard.rb +89 -0
  651. data/samples/dragdrop/dragdrop.rb +200 -0
  652. data/samples/dragdrop/tn_dragdrop.png +0 -0
  653. data/samples/drawing/SVGlogo24.xpm +310 -0
  654. data/samples/drawing/bitmap.rb +76 -0
  655. data/samples/drawing/bitmap_image.rb +131 -0
  656. data/samples/drawing/graphics_drawing.rb +257 -0
  657. data/samples/drawing/maths_images.rb +327 -0
  658. data/samples/drawing/rmagic_bitmap_image.rb +139 -0
  659. data/samples/drawing/ruby-logo.jpg +0 -0
  660. data/samples/drawing/svgtest.rb +373 -0
  661. data/samples/drawing/tn_bitmap.png +0 -0
  662. data/samples/drawing/tn_bitmap_image.png +0 -0
  663. data/samples/drawing/tn_graphics_drawing.png +0 -0
  664. data/samples/drawing/tn_maths_images.png +0 -0
  665. data/samples/drawing/tn_rmagic_bitmap_image.png +0 -0
  666. data/samples/drawing/tn_svgtest.png +0 -0
  667. data/samples/etc/choice.rb +82 -0
  668. data/samples/etc/miniframe.rb +92 -0
  669. data/samples/etc/sash.rb +140 -0
  670. data/samples/etc/scrollwin.rb +120 -0
  671. data/samples/etc/system_settings.rb +263 -0
  672. data/samples/etc/tn_choice.png +0 -0
  673. data/samples/etc/tn_miniframe.png +0 -0
  674. data/samples/etc/tn_sash.png +0 -0
  675. data/samples/etc/tn_scrollwin.png +0 -0
  676. data/samples/etc/tn_system_settings.png +0 -0
  677. data/samples/event/activation.rb +129 -0
  678. data/samples/event/event.rb +220 -0
  679. data/samples/event/threaded.rb +141 -0
  680. data/samples/event/tn_activation.png +0 -0
  681. data/samples/event/tn_event.png +0 -0
  682. data/samples/event/tn_threaded.png +0 -0
  683. data/samples/event/tn_update_ui_event.png +0 -0
  684. data/samples/event/update_ui_event.rb +91 -0
  685. data/samples/grid/grid.rb +224 -0
  686. data/samples/grid/gridtablebase.rb +178 -0
  687. data/samples/grid/tn_grid.png +0 -0
  688. data/samples/grid/tn_gridtablebase.png +0 -0
  689. data/samples/html/8859_2.htm +14 -0
  690. data/samples/html/cp1250.htm +19 -0
  691. data/samples/html/foo.png +0 -0
  692. data/samples/html/html.rb +278 -0
  693. data/samples/html/i18n.gif +0 -0
  694. data/samples/html/imagemap.htm +20 -0
  695. data/samples/html/imagemap.png +0 -0
  696. data/samples/html/listtest.htm +28 -0
  697. data/samples/html/pic.png +0 -0
  698. data/samples/html/pic2.bmp +0 -0
  699. data/samples/html/regres.htm +20 -0
  700. data/samples/html/subsup.html +42 -0
  701. data/samples/html/tables.htm +255 -0
  702. data/samples/html/test.htm +375 -0
  703. data/samples/html/tn_html.png +0 -0
  704. data/samples/mdi/mdi.rb +118 -0
  705. data/samples/mdi/tn_mdi.png +0 -0
  706. data/samples/minimal/minimal.rb +95 -0
  707. data/samples/minimal/mondrian.ico +0 -0
  708. data/samples/minimal/mondrian.png +0 -0
  709. data/samples/minimal/nothing.rb +38 -0
  710. data/samples/minimal/tn_minimal.png +0 -0
  711. data/samples/minimal/tn_nothing.png +0 -0
  712. data/samples/printing/mondrian.ico +0 -0
  713. data/samples/printing/mondrian.xpm +44 -0
  714. data/samples/printing/printing.rb +499 -0
  715. data/samples/printing/printing2.rb +251 -0
  716. data/samples/printing/sample-text.txt +213 -0
  717. data/samples/printing/tn_printing.png +0 -0
  718. data/samples/printing/tn_printing2.png +0 -0
  719. data/samples/propgrid/propgrid.rb +2707 -0
  720. data/samples/propgrid/propgrid_minimal.rb +106 -0
  721. data/samples/propgrid/sample_props.rb +434 -0
  722. data/samples/propgrid/tn_propgrid.png +0 -0
  723. data/samples/propgrid/tn_propgrid_minimal.png +0 -0
  724. data/samples/ribbon/align_center.xpm +21 -0
  725. data/samples/ribbon/align_left.xpm +21 -0
  726. data/samples/ribbon/align_right.xpm +21 -0
  727. data/samples/ribbon/aui_style.xpm +53 -0
  728. data/samples/ribbon/auto_crop_selection.xpm +55 -0
  729. data/samples/ribbon/auto_crop_selection_small.xpm +33 -0
  730. data/samples/ribbon/circle.xpm +38 -0
  731. data/samples/ribbon/circle_small.xpm +22 -0
  732. data/samples/ribbon/colours.xpm +25 -0
  733. data/samples/ribbon/cross.xpm +38 -0
  734. data/samples/ribbon/empty.xpm +23 -0
  735. data/samples/ribbon/expand_selection_h.xpm +46 -0
  736. data/samples/ribbon/expand_selection_v.xpm +46 -0
  737. data/samples/ribbon/eye.xpm +26 -0
  738. data/samples/ribbon/hexagon.xpm +38 -0
  739. data/samples/ribbon/msw_style.xpm +65 -0
  740. data/samples/ribbon/position_left.xpm +22 -0
  741. data/samples/ribbon/position_top.xpm +22 -0
  742. data/samples/ribbon/ribbon.rb +900 -0
  743. data/samples/ribbon/ribbon.xpm +54 -0
  744. data/samples/ribbon/selection_panel.xpm +23 -0
  745. data/samples/ribbon/square.xpm +38 -0
  746. data/samples/ribbon/tn_ribbon.png +0 -0
  747. data/samples/ribbon/triangle.xpm +38 -0
  748. data/samples/sample.xpm +475 -0
  749. data/samples/sampler/back.xpm +21 -0
  750. data/samples/sampler/copy.xpm +44 -0
  751. data/samples/sampler/cut.xpm +46 -0
  752. data/samples/sampler/editor.rb +534 -0
  753. data/samples/sampler/ext.rb +51 -0
  754. data/samples/sampler/filesave.xpm +42 -0
  755. data/samples/sampler/find.xpm +62 -0
  756. data/samples/sampler/findrepl.xpm +63 -0
  757. data/samples/sampler/forward.xpm +21 -0
  758. data/samples/sampler/paste.xpm +46 -0
  759. data/samples/sampler/play.xpm +24 -0
  760. data/samples/sampler/redo.xpm +58 -0
  761. data/samples/sampler/sample.rb +337 -0
  762. data/samples/sampler/stc_editor.rb +326 -0
  763. data/samples/sampler/txt_editor.rb +135 -0
  764. data/samples/sampler/undo.xpm +58 -0
  765. data/samples/sampler.rb +401 -0
  766. data/samples/splash/mobile.xpm +1835 -0
  767. data/samples/splash/splash.png +0 -0
  768. data/samples/splash/splash.rb +164 -0
  769. data/samples/splash/tn_splash.png +0 -0
  770. data/samples/text/document-open.png +0 -0
  771. data/samples/text/document-save.png +0 -0
  772. data/samples/text/edit-copy.png +0 -0
  773. data/samples/text/edit-cut.png +0 -0
  774. data/samples/text/edit-paste.png +0 -0
  775. data/samples/text/edit-redo.png +0 -0
  776. data/samples/text/edit-undo.png +0 -0
  777. data/samples/text/format-text-bold.png +0 -0
  778. data/samples/text/format-text-italic.png +0 -0
  779. data/samples/text/format-text-underline.png +0 -0
  780. data/samples/text/mondrian.ico +0 -0
  781. data/samples/text/mondrian.xpm +44 -0
  782. data/samples/text/preferences-desktop-font.png +0 -0
  783. data/samples/text/rich_textctrl.rb +326 -0
  784. data/samples/text/scintilla.rb +179 -0
  785. data/samples/text/textctrl.rb +124 -0
  786. data/samples/text/tn_rich_textctrl.png +0 -0
  787. data/samples/text/tn_scintilla.png +0 -0
  788. data/samples/text/tn_textctrl.png +0 -0
  789. data/samples/text/tn_unicode.png +0 -0
  790. data/samples/text/unicode.rb +238 -0
  791. data/samples/text/utf8.txt +15 -0
  792. data/samples/treectrl/checked.xpm +54 -0
  793. data/samples/treectrl/icon1.xpm +79 -0
  794. data/samples/treectrl/icon2.xpm +53 -0
  795. data/samples/treectrl/icon3.xpm +79 -0
  796. data/samples/treectrl/icon4.xpm +43 -0
  797. data/samples/treectrl/icon5.xpm +79 -0
  798. data/samples/treectrl/state1.xpm +145 -0
  799. data/samples/treectrl/state2.xpm +144 -0
  800. data/samples/treectrl/state3.xpm +142 -0
  801. data/samples/treectrl/state4.xpm +145 -0
  802. data/samples/treectrl/state5.xpm +85 -0
  803. data/samples/treectrl/tn_treectrl.png +0 -0
  804. data/samples/treectrl/treectrl.rb +1720 -0
  805. data/samples/treectrl/unchecked.xpm +30 -0
  806. data/samples/xrc/custom_dialog.xrc +46 -0
  807. data/samples/xrc/custom_xrc_sample.rb +84 -0
  808. data/samples/xrc/samples.xrc +46 -0
  809. data/samples/xrc/tn_xrc_sample.png +0 -0
  810. data/samples/xrc/xrc_sample.rb +86 -0
  811. data/tests/test_basic.rb +20 -0
  812. data/tests/test_clipboard.rb +241 -0
  813. data/tests/test_dialog.rb +28 -0
  814. data/tests/test_event_handling.rb +103 -0
  815. data/tests/test_events.rb +45 -0
  816. data/tests/test_geometry.rb +141 -0
  817. data/tests/test_intl.rb +107 -0
  818. data/tests/test_item_data.rb +120 -0
  819. data/tests/test_variant.rb +151 -0
  820. data/tests/testapp.rb +40 -0
  821. data/tests/testapp_noframe.rb +28 -0
  822. metadata +912 -0
@@ -0,0 +1,57 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 3. wxRuby Dialogs
4
+ -->
5
+
6
+ # 3. wxRuby Dialogs
7
+
8
+ Dialogs are a special class of window which are never automatically destroyed in wxWidgets.
9
+ In C++ this does not cause a lot of management overhead for application programmers because of the possibility of
10
+ static declaration of dialogs instances where the statically declared object is automatically destructed as execution
11
+ leaves the declaration scope.<br>
12
+ This kind of construct does not exist in Ruby where everything is dynamically allocated and garbage collection normally
13
+ takes care of releasing objects that have gone *'out of scope'*.
14
+
15
+ Like any non-owned, non-toplevel windows as discussed [here](02_lifecycles.md) this means dialogs should be explicitly
16
+ destroyed in program code as appropriate like:
17
+
18
+ ```ruby
19
+ dlg = Wx::MessageDialog.new(parent, 'Select Yes or No', "Confirmation", Wx::YES_NO)
20
+ if dlg.show_modal == Wx::ID_YES
21
+ # do something
22
+ end
23
+ dlg.destroy
24
+ ```
25
+
26
+ Although this is sometimes useful (for example in cases where a dialog is repeatedly used), most of the time this makes
27
+ for somewhat bothersome programming.
28
+
29
+ Luckily wxRuby has a solution for this.
30
+
31
+ For all dialog classes (which includes Wx::Dialog and all it's derivatives, including user defined) the library defines
32
+ a module function which is identically named to the dialog class in the same scope as where the dialog class has been
33
+ first defined. This is similar to the module functions Ruby itself defines for the basic object classes like `Integer`,
34
+ `String`, `Array`, `Hash` and such for the `Kernel` module.<br>
35
+ These dialog *functors* accept the same arguments as the dialog class's constructor with the addition of a block. The
36
+ *functor* will call the class constructor and pass the created dialog instance as argument to the block. After returning
37
+ from the block the dialog instance will automatically be destroyed. So, using this approach we could write the previous
38
+ example like:
39
+
40
+ ```ruby
41
+ Wx.MessageDialog(parent, 'Select Yes or No', "Confirmation", Wx::YES_NO) do |dlg|
42
+ if dlg.show_modal == Wx::ID_YES
43
+ # do something
44
+ end
45
+ end
46
+ ```
47
+
48
+ Even better, if the only purpose is to show the dialog until closed without caring for the result we can leave out the
49
+ block. In that case the *functor* will simply create the dialog instance, call `#show_modal` on it and destroy the
50
+ instance after returning from `#show_modal` like:
51
+
52
+ ```ruby
53
+ Wx.MessageDialog(parent, 'Hello world!', 'Information', Wx::OK)
54
+ ```
55
+
56
+ Regular dialog constructors are still usable for situations where the dialog instance should have a
57
+ prolonged lifetime or where different modeless behavior is required.
@@ -0,0 +1,143 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 4. wxRuby Enum values
4
+ -->
5
+
6
+ # 4. wxRuby Enum values
7
+
8
+ The wxWidget library liberally mixes integer constants and enum values for things like IDs, style flags
9
+ and option flags and such without much consistency.<br>
10
+ In previous wxRuby versions these were all mapped to integer constants which had 2 distinct disadvantages.
11
+
12
+ - **loss of scoping**<br>
13
+ Integer constants for enum values would all be declared in the enclosing scope for the enum declaration loosing
14
+ the naming scope which originally existed in C++ (excepting anonymous enums).
15
+
16
+ - **loss of type-safety**<br>
17
+ Constants for enum values with identical integer values are indistinguishable from each other.
18
+
19
+ The wxRuby3 project attempts to provide a solution to that by introducing the `Wx::Enum` class which
20
+ is used as a base class for mapping all (named) wxWidget enums to Ruby.
21
+ The reference documentation for the `Wx::Enum` class can be found [here](https://mcorino.github.io/wxRuby3/Wx/Enum.html).
22
+
23
+ Any named wxWidget enum is mapped to a similarly named (Rubified C++ name) derived Enum class with each enum value
24
+ defined as a constant of the enum class referencing an instance of the enum class with the corresponding
25
+ integer value like for example the 'wxSystemFont' enum which is defined in wxRuby as:
26
+
27
+ ```ruby
28
+ module Wx
29
+ class SystemFont < Wx::Enum
30
+
31
+ # Original equipment manufacturer dependent fixed-pitch font.
32
+ #
33
+ SYS_OEM_FIXED_FONT = Wx::SystemFont.new(10)
34
+
35
+ # Windows fixed-pitch (monospaced) font.
36
+ #
37
+ SYS_ANSI_FIXED_FONT = Wx::SystemFont.new(11)
38
+
39
+ # Windows variable-pitch (proportional) font.
40
+ #
41
+ SYS_ANSI_VAR_FONT = Wx::SystemFont.new(12)
42
+
43
+ # System font.
44
+ #
45
+ SYS_SYSTEM_FONT = Wx::SystemFont.new(13)
46
+
47
+ # Device-dependent font.
48
+ #
49
+ SYS_DEVICE_DEFAULT_FONT = Wx::SystemFont.new(14)
50
+
51
+ # Default font for user interface objects such as menus and dialog boxes.
52
+ #
53
+ SYS_DEFAULT_GUI_FONT = Wx::SystemFont.new(17)
54
+
55
+ end # SystemFont
56
+ end
57
+ ```
58
+
59
+ or the 'wxBorder' enum which is defined in wxRuby as:
60
+
61
+ ```ruby
62
+ module Wx
63
+ # Border flags for {Wx::Window}.
64
+ class Border < Wx::Enum
65
+
66
+ # This is different from {Wx::Border::BORDER_NONE} as by default the controls do have a border.
67
+ #
68
+ BORDER_DEFAULT = Wx::Border.new(0)
69
+
70
+ #
71
+ #
72
+ BORDER_NONE = Wx::Border.new(2097152)
73
+
74
+ #
75
+ #
76
+ BORDER_STATIC = Wx::Border.new(16777216)
77
+
78
+ #
79
+ #
80
+ BORDER_SIMPLE = Wx::Border.new(33554432)
81
+
82
+ #
83
+ #
84
+ BORDER_RAISED = Wx::Border.new(67108864)
85
+
86
+ #
87
+ #
88
+ BORDER_SUNKEN = Wx::Border.new(134217728)
89
+
90
+ #
91
+ #
92
+ BORDER_DOUBLE = Wx::Border.new(268435456)
93
+
94
+ #
95
+ #
96
+ BORDER_THEME = Wx::Border.new(268435456)
97
+
98
+ #
99
+ #
100
+ BORDER_MASK = Wx::Border.new(522190848)
101
+
102
+ end # Border
103
+ end
104
+ ```
105
+
106
+ Enum instances are interchangeable with integer constants in wxRuby with respect to arithmetic or logical
107
+ operations. This make it possible to use enum values to construct integer bitflag arguments like:
108
+
109
+ ```ruby
110
+ Wx::TextCtrl.new(pane, Wx::ID_ANY, sample_desc.description, style: Wx::TE_MULTILINE|Wx::TE_READONLY|Wx::BORDER_NONE)
111
+ ```
112
+
113
+ where `Wx::ID_ANY` is a `Wx::StandardID` enum instance passed to provide an integer argument value, `Wx::TE_MULTILINE`
114
+ and `Wx::TE_READONLY` are simple integer constants and `Wx::BORDER_NONE` is a `Wx::Border` enum instance.
115
+
116
+ In other cases however enum values can provide just the right kind of type safety where explicit enum values are
117
+ expected like for example with:
118
+
119
+ ```ruby
120
+ Wx::Font.new(36, Wx::FONTFAMILY_SWISS, Wx::FONTSTYLE_NORMAL, Wx::FONTWEIGHT_NORMAL)
121
+ ```
122
+
123
+ where the `Wx::Font` constructor definition is:
124
+
125
+ > initialize(pointSize, family, style, weight, underline = false, faceName = `Wx::EMPTY_STRING`, encoding = `Wx::FONTENCODING_DEFAULT`) ⇒ `Wx::Font`
126
+
127
+ with the following parameter specification:
128
+
129
+ > - pointSize (`Integer`)
130
+ > - family (`Wx::FontFamily`)
131
+ > - style (`Wx::FontStyle`)
132
+ > - weight (`Wx::FontWeight`)
133
+ > - underline (`true`, `false`) (defaults to: `false`)
134
+ > - faceName (`String`) (defaults to: `Wx::EMPTY_STRING`)
135
+ > - encoding (`Wx::FontEncoding`) (defaults to: `Wx::FONTENCODING_DEFAULT`)
136
+
137
+ In this case the constructor explicitly expects specific enum value types for *family*, *style* and *weigth* and
138
+ providing the integer literal value `74` instead of `Wx::FONTFAMILY_SWISS` (or any other constant representing the same
139
+ integer value) will not work (raises an exception) although the integer values for the two are equal.
140
+
141
+ As you have probably noticed it is not required to use the full naming for an enum instance constant (like
142
+ `Wx::FontFamily::FONTFAMILY_SWISS`). All enum value constants are accessible from the naming scope where the enum class
143
+ to which they belong has been declared.
@@ -0,0 +1,166 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 5. wxRuby Event Handling
4
+ -->
5
+
6
+ # 5. wxRuby Event Handling
7
+
8
+ ## Introduction
9
+
10
+ Event handling is the core of runtime code execution in event based frameworks like wxWidgets which means it needs to
11
+ be fully supported by wxRuby. Fortunately it is.<br>
12
+ As Ruby is a fully dynamic language though the statically declared event tables typical for wxWidgets application are not.<br>
13
+ Instead wxRuby offers a dynamic solution that is just as easy to use and even offers more flexibility in a typical Ruby-way.
14
+
15
+ ## Event handlers
16
+
17
+ Instead of the `EVT_XXX` event handler declaration macros used in wxWidgets wxRuby provides similarly named event handler
18
+ definition methods for each of the known event declarations which are inherited by **all** classes derived from `Wx::EvtHandler`
19
+ (which includes all window classes, the `Wx::App` class and `Wx::Timer` as well as various other classes).<br>
20
+
21
+ Naming is (mostly) identical but rubified. So `EVT_MENU` becomes `evt_menu`, `EVT_IDLE` becomes `evt_idle`, `EVT_UPDATE_UI`
22
+ becomes `evt_update_ui` etc.
23
+
24
+ Like the event handler macros some of these methods require a single (window) id (like `evt_menu`) or a range of of ids
25
+ (specified through a first and last id like for `evt_update_ui_range`) and some require only a handler definition (like
26
+ `evt_idle`).
27
+
28
+ Event handler setup is typically something done during the initialization of an event handler object (like a window) but
29
+ this is not required. As all event handlers are assigned dynamically in wxRuby you can setup (some) event handlers at a
30
+ later moment. You could also disconnect earlier activated handlers at any time (see `Wx::EvtHandler#disconnect`).
31
+
32
+ In case of some frame class `MyForm` including a menu a wxWidgets static event handling table like:
33
+
34
+ ```c++
35
+ wxBEGIN_EVENT_TABLE(MyForm, wxFrame)
36
+ EVT_IDLE(MyForm::OnIdle)
37
+ EVT_MOVE(MyForm::OnMove)
38
+ EVT_SIZE(MyForm::OnResize)
39
+
40
+ EVT_MENU( wxID_ABOUT, MyForm::OnAbout )
41
+ EVT_MENU( wxID_EXIT, MyForm::OnCloseClick )
42
+ wxEND_EVENT_TABLE()
43
+ ```
44
+
45
+ could translate to event handler initializations in wxRuby like this:
46
+
47
+ ```ruby
48
+ class MyForm < Wx::Frame
49
+
50
+ def initialize(title)
51
+ super(nil, title: title)
52
+
53
+ # initialize frame elements
54
+ # ...
55
+
56
+ # setup event handlers
57
+ evt_idle do |evt|
58
+ # do something
59
+ evt.skip
60
+ end
61
+ evt_move :on_move
62
+
63
+ evt_size method(:on_size)
64
+
65
+ evt_menu(Wx::ID_ABOUT, Proc.new { on_about })
66
+ evt_menu(Wx::ID_EXIT) { close(false) }
67
+ end
68
+
69
+ def on_idle(evt)
70
+ #...
71
+ end
72
+
73
+ def on_move(evt)
74
+ #...
75
+ end
76
+
77
+ def on_resize(evt)
78
+ #...
79
+ end
80
+
81
+ def on_about
82
+ #...
83
+ end
84
+
85
+ end
86
+ ```
87
+
88
+ As you can see there are multiple options for specifying the actual handler. Any event handler definition method will
89
+ accept either a `Symbol` (or `String`) specifying a method of the receiver (the event handler instance), a `Proc` object
90
+ (or lambda) or a `Method` object.
91
+
92
+ Event handler methods are not required to declare the single event object argument. The event handler definition method
93
+ will take care of checking and handling method arity.
94
+
95
+ ## Custom Events
96
+
97
+ Custom event definitions are fully supported in wxRuby including the definition of new event types.
98
+
99
+ New event classes can be registered with `Wx::EvtHandler#register_class` which returns the new event type for the event
100
+ class like this:
101
+
102
+ ```ruby
103
+ # A custom type of event associated with a target control. Note that for
104
+ # user-defined controls, the associated event should inherit from
105
+ # Wx::CommandEvent rather than Wx::Event.
106
+ class ProgressUpdateEvent < Wx::CommandEvent
107
+ # Create a new unique constant identifier, associate this class
108
+ # with events of that identifier and create an event handler definition method 'evt_update_progress'
109
+ # for setting up this handler.
110
+ EVT_UPDATE_PROGRESS = Wx::EvtHandler.register_class(self, nil, 'evt_update_progress', 0)
111
+
112
+ def initialize(value, gauge)
113
+ # The constant id is the arg to super
114
+ super(EVT_UPDATE_PROGRESS)
115
+ # simply use instance variables to store custom event associated data
116
+ @value = value
117
+ @gauge = gauge
118
+ end
119
+
120
+ attr_reader :value, :gauge
121
+ end
122
+ ```
123
+
124
+ Check the reference documentation [here](https://mcorino.github.io/wxRuby3/Wx/EvtHandler.html) for more information.
125
+
126
+ ## Event processing
127
+
128
+ In wxRuby overruling the normal chain of event handling has been limited to being able to override the default
129
+ `Wx::EvtHandler#try_before` and `Wx::EvtHandler#try_after` methods. These are the advised interception points for events
130
+ when you really need to do this.<br>
131
+ Overriding `Wx::EvtHandler#process_event` is not considered to be efficient (or desired)
132
+ for wxRuby applications and has therefor been blocked.
133
+
134
+ ## Event insertion
135
+
136
+ Use of `Wx::EvtHandler#process_event` or `Wx::EvtHandler#queue_event` and `Wx::EvtHandler#add_pending_event` in wxRuby to
137
+ trigger event processing of user generated (possibly custom) events is fully supported.
138
+
139
+ As with wxWidgets `Wx::EvtHandler#process_event` will trigger immediate processing of the given event, not returning before
140
+ this has finished.<br>
141
+ `Wx::EvtHandler#queue_event` and `Wx::EvtHandler#add_pending_event` on the other hand will post (append) the given event
142
+ to the event queue and return immediately after that is done. The event will than be processed after any other events in
143
+ the queue. Unlike in wxWidgets in wxRuby there is no practical difference between `queue_event` and `add_pending_event`.
144
+
145
+ ## Asynchronous execution
146
+
147
+ In addition to `Wx::EvtHandler#queue_event` and `Wx::EvtHandler#add_pending_event` to trigger asynchronous processing
148
+ wxRuby also supports `Wx::EvtHandler#call_after`.
149
+
150
+ This method provides the means to trigger asynchronous execution of arbitrary code and because it has been rubified is
151
+ easy and powerful to use. Like with event handler definition this method accepts a `Symbol` or `String` (identifying a
152
+ method of the receiver), a `Proc` object (or lambda), a `Method` object or a block. Unlike an event handler method no
153
+ event object will be passed but rather any arguments passed to the `call_after` method in addition to the 'handler'.
154
+
155
+ Given an event handler object `call_after` could be used like:
156
+
157
+ ```ruby
158
+ # sync call to method of event handler (no args)
159
+ evt_handler.call_after :async_method
160
+
161
+ # async call of lambda (single arg)
162
+ evt_handler.call_after(->(txt) { Wx.log_info(txt) }, "Hello")
163
+
164
+ # async call of block
165
+ evt_handler.call_after('Call nr. %d', 1) { |fmt, num| Wx.log_info(fmt, num) }
166
+ ```
@@ -0,0 +1,56 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 6. wxRuby geometry classes
4
+ -->
5
+
6
+ # 6. wxRuby Geometry classes
7
+
8
+ ## Size (Wx::Size) and position (Wx::Point)
9
+
10
+ The wxWidgets API has a lot methods that require either `wxSize`, `wxPoint` or both type of value as argument. Although
11
+ this can be specified in C++ still relatively concise like
12
+ ```ruby
13
+ new wxFrame(nullptr, -1, "title", wxPoint(0,0), wxSize(500,400))
14
+ ```
15
+ in Ruby this expands to the more verbose
16
+ ```ruby
17
+ Wx::Frame.new(nil, -1, 'title', Wx::Point.new(0,0), Wx::Size.new(500,400))
18
+ ```
19
+ which starts to feel awkward to specify what are in essence just pairs of integers.
20
+
21
+ To provide a simpler, more compact and more Ruby-like, alternative the wxRuby API therefor supports specifying arrays
22
+ of integer pairs in (almost) all cases where `Wx::Size` or `Wx::Point` is expected. So the following code is equivalent
23
+ to the previous code:
24
+ ```ruby
25
+ Wx::Frame.new(nil, -1, 'title', [0,0], [500,400])
26
+ ```
27
+
28
+ In addition `Wx::Size` and `Wx::Point` support parallel assignment semantics such that you can write code like
29
+ ```ruby
30
+ win.paint do | dc |
31
+ # ...
32
+ x, y = win.get_position
33
+ dc.draw_circle(x, y, 4)
34
+ dc.draw_rectangle(x-4, y-4, 8, 8)
35
+ end
36
+ ```
37
+ instead of
38
+ ```ruby
39
+ win.paint do | dc |
40
+ # ...
41
+ pos = win.get_position
42
+ dc.draw_circle(pos.x, pos.y, 4)
43
+ dc.draw_rectangle(pos.x-4, pos.y-4, 8, 8)
44
+ end
45
+ ```
46
+
47
+ ## Areas (Wx::Rect)
48
+
49
+ Like `Wx::Size` and `Wx::Point` wxRuby supports parallel assignment for `Wx::Rect` such that you can write code like
50
+ ```ruby
51
+ x, y, width, height = win.get_client_rect
52
+ ```
53
+
54
+ Providing arrays of integers as alternative for `Wx::Rect` arguments is not supported as specifying `[0, 0, 20, 40]` is
55
+ ambiguous. This could either mean a rectangle with origin `x=0,y=0` and size `width=20,height=40` (`Wx::Rect.new(0,0,20,40)`)
56
+ or a rectangle from origin top left `x=0,y=0` to point bottom right `x=20,y=40` (`Wx::Rect.new(Wx::Point.new(0,0), Wx::Point.new(20,40))`).
@@ -0,0 +1,52 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 7. wxRuby Colour and Font
4
+ -->
5
+
6
+ # 6. wxRuby Colour and Font
7
+
8
+ ## Introduction
9
+
10
+ The wxWidgets API makes use of typical C++ features to support automatic conversion of certain types providing
11
+ user friendly options for argument specifications. This way for example a developer does not need to explicitly
12
+ declare a colour object construction where a colour instance value is expected but rather can specify a simple string
13
+ constant like:
14
+
15
+ ```C++
16
+ wxPen pen;
17
+ pen.SetColour("CYAN"); // instead of pen.SetColour(wxColour("CYAN"));
18
+ ```
19
+
20
+ For the wxRuby API similar support has been achieved for various much used argument types.
21
+
22
+ ## Colour
23
+
24
+ Wherever a `Wx::Colour` object is expected as an argument wxRuby supports the specification of `String` or `Symbol`
25
+ values as a developer friendly alternative. This way the following code is equivalent:
26
+
27
+ ```ruby
28
+ pen = Wx::Pen.new
29
+ pen.set_colour(Wx::Colour.new("CYAN"))
30
+
31
+ pen = Wx::Pen.new
32
+ pen.set_colour("CYAN")
33
+
34
+ pen = Wx::Pen.new
35
+ pen.set_colour(:CYAN)
36
+ ```
37
+
38
+ ## Font
39
+
40
+ Wherever a `Wx::Font` object is expected as an argument wxRuby supports the specification of a `Wx::FontInfo` object.
41
+ This way the following code is equivalent:
42
+
43
+ ```ruby
44
+ title = Wx::StaticText.new(self, -1, "Title")
45
+ title.set_font(Wx::Font.new(18, Wx::FontFamily::FONTFAMILY_SWISS, Wx::FontStyle::FONTSTYLE_NORMAL, Wx::FontWeight::FONTWEIGHT_BOLD))
46
+
47
+ title = Wx::StaticText.new(self, -1, "Title")
48
+ title.set_font(Wx::FontInfo.new(18)
49
+ .family(Wx::FontFamily::FONTFAMILY_SWISS)
50
+ .style(Wx::FontStyle::FONTSTYLE_NORMAL)
51
+ .bold())
52
+ ```
@@ -0,0 +1,144 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 8. wxRuby Extensions
4
+ -->
5
+
6
+ # 8. wxRuby Extensions
7
+
8
+ ## Keyword Constructors
9
+
10
+ The **Keyword Constructors** extension allows the use of Ruby hash-style
11
+ keyword arguments in constructors of common WxWidgets Windows, Frame,
12
+ Dialog and Control classes.
13
+
14
+ ### Introduction
15
+
16
+ Building a GUI in WxWidgets involves lots of calls to +new+, but
17
+ these methods often have long parameter lists. Often the default
18
+ values for many of these parameters are correct. For example, if
19
+ you're using a sizer-based layout, you usually don't want to specify a
20
+ size for widgets, but you still have to type
21
+
22
+ Wx::TreeCtrl.new( parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_BUTTONS )
23
+
24
+ just to create a standard TreeCtrl with the 'no buttons' style. If you
25
+ want to specify the 'NO BUTTONS' style, you can't avoid all the typing
26
+ of DEFAULT_POSITION etc.
27
+
28
+ ### Basic Keyword Constructors
29
+
30
+ With keyword_constructors, you could write the above as
31
+
32
+ TreeCtrl.new(parent, :style => Wx::NO_BUTTONS)
33
+
34
+ And it will assume you want the default id (-1), and the default size
35
+ and position. If you want to specify an explicit size, you can do so:
36
+
37
+ TreeCtrl.new(parent, :size => Wx::Size.new(100, 300))
38
+
39
+ For brevity, this module also allows you to specify positions and
40
+ sizes using a a two-element array:
41
+
42
+ TreeCtrl.new(parent, :size => [100, 300])
43
+
44
+ Similarly with position:
45
+
46
+ TreeCtrl.new(parent, :pos => Wx::Point.new(5, 25))
47
+
48
+ TreeCtrl.new(parent, :pos => [5, 25])
49
+
50
+ You can have multiple keyword arguments:
51
+
52
+ TreeCtrl.new(parent, :pos => [5, 25], :size => [100, 300] )
53
+
54
+ ### No ID required
55
+
56
+ As with position and size, you usually don't want to deal with
57
+ assigning unique ids to every widget and frame you create - it's a C++
58
+ hangover that often seems clunky in Ruby. The **Event Connectors**
59
+ extension allows you to set up event handling without having to use
60
+ ids, and if no `:id` argument is supplied to a constructor, the default
61
+ (-1) will be passed.
62
+
63
+ There are occasions when a specific ID does need to be used - for
64
+ example, to tell WxWidgets that a button is a 'stock' item, so that it
65
+ can be displayed using platform-standard text and icon. To do this,
66
+ simply pass an :id argument to the constructor - here, the system's
67
+ standard 'preview' button
68
+
69
+ Wx::Button.new(parent, :id => Wx::ID_PREVIEW)
70
+
71
+ ### Class-specific arguments
72
+
73
+ The arguments `:size`, `:pos` and `:style` are common to many WxWidgets
74
+ window classes. The `new` methods of these classes also have
75
+ parameters that are specific to those classes; for example, the text
76
+ label on a button, or the initial value of a text control.
77
+
78
+ Wx::Button.new(parent, :label => 'press me')
79
+ Wx::TextCtrl.new(parent, :value => 'type some text here')
80
+
81
+ The keyword names of these arguments can be found by looking at the
82
+ WxRuby documentation, in the relevant class's +new+ method. You can
83
+ also get a string description of the class's +new+ method parameters
84
+ within Ruby by doing:
85
+
86
+ puts Wx::TextCtrl.describe_constructor()
87
+
88
+ This will print a list of the argument names expected by the class's
89
+ +new+ method, and the correct type for them.
90
+
91
+ ### Mixing positional and keyword arguments
92
+
93
+ To support existing code, and to avoid forcing the use of more verbose
94
+ keyword-style arguments where they're not desired, you can mix
95
+ positional and keyword arguments, omitting or including `id`s as
96
+ desired.
97
+
98
+ Wx::Button.new(parent, 'press me', :style => Wx::BU_RIGHT)
99
+
100
+ ### Handling complex defaults or version differences
101
+
102
+ To support complex (context dependent) defaults and/or auto conversion
103
+ of arguments for backwards compatibility the keyword constructors
104
+ extension allows the definition of lambdas or procs to be associated
105
+ with a parameter specification.
106
+
107
+ ## Ruby-style accessors
108
+
109
+ The wxWidgets API, in typical C++ style, has lots of accessor methods like
110
+
111
+ - `GetPosition()`
112
+ - `SetSize(a_size)`
113
+ - `IsChecked()`
114
+ - `CanUndo()`
115
+ - `HasStyle(a_style)`
116
+
117
+ which in wxRuby are mapped to Ruby methods like `get_position`, `set_size` etc.
118
+
119
+ In Ruby however these kind of methods that set, get or query attributes or state are normally simply called
120
+ by the attribute name or, in other cases, by a predicate method like:
121
+
122
+ ```ruby
123
+ pos = frame.position
124
+ frame.size = a_size
125
+ item.checked?
126
+ control.can_undo?
127
+ window.has_style?(a_style)
128
+ ```
129
+
130
+ With wxRuby3 (most of) the API methods that begin with *get_*, *set_*, *is_*, *can_* and *has_* are identified
131
+ and the wxRuby API will have Ruby-style accessor aliases defined for those (appropriately decorated as needed).
132
+ Note that if you are calling a *'setter'* method on `self`, you must explicitly send the message to `self` like:
133
+
134
+ ```ruby
135
+ # set's self size to be 100px by 100px
136
+ self.size = Wx::Size.new(100, 100)
137
+ ```
138
+
139
+ since this will not work as you expect it to:
140
+
141
+ ```ruby
142
+ # only sets the value of a local variable 'size'
143
+ size = Wx::Size.new
144
+ ```
@@ -0,0 +1,54 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 9. wxRuby Exception Handling
4
+ -->
5
+
6
+ # 9. wxRuby Exception Handling
7
+
8
+ The wxRuby library should (!) be completely exception safe, i.e. Ruby code raising an exception should not leak into
9
+ the wrapped wxWidgets C++ code and cause unexpected exception handling or (worse) segmentation faults and should be
10
+ handled in ways expected of Ruby applications.
11
+
12
+ As the wxWidgets library does not use exceptions for it's public API any raised exceptions should come either from the
13
+ wxRuby wrapper code (signalling mostly typical Ruby-ish error situations like ArgumentError, TypeError and such) or from
14
+ your own Ruby application code.
15
+
16
+ Any exceptions raised from wxRuby wrapper code signal coding errors that need to be rectified.
17
+
18
+ As far as handling application code exceptions is concerned the same advice applies as for wxWidgets itself; do **not**
19
+ let exceptions escape your event handlers meaning that if you can reasonably expect application code to raise exceptions
20
+ you should make sure to catch any such exceptions within the context of the event handler like:
21
+
22
+ ```ruby
23
+ class MyForm < Wx::Frame
24
+
25
+ def initialize(title)
26
+ super(nil, title: title)
27
+
28
+ # initialize frame elements
29
+ # ...
30
+
31
+ # setup event handlers
32
+ evt_menu MY_MENU_ID, :on_my_menu_item
33
+
34
+ # ...
35
+ end
36
+
37
+ def on_my_menu_item(evt)
38
+ begin
39
+ # execute some application code
40
+ # ...
41
+ rescue SomeException => ex
42
+ # handle exception
43
+ end
44
+ end
45
+
46
+ #...
47
+
48
+ end
49
+ ```
50
+
51
+ In wxRuby event handler code is executed in an exception safe way which will capture any leaking exceptions. As wxRuby
52
+ however has no idea why this exception was raised and how to handle it, the result will be an exit of the main event loop
53
+ of the running `Wx::App` instance and re-raising the exception to be handled by Ruby like any unhandled application
54
+ exception.