wxruby3 0.9.0.pre.beta.2-x64-mingw-ucrt-3.2-3.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (837) 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 +139 -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/ext/wxbase32u_gcc_custom.dll +0 -0
  11. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  12. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  13. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  14. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  18. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  19. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  20. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  21. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  22. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  23. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  24. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  25. data/lib/wx/accessors.rb +63 -0
  26. data/lib/wx/aui/auimanager.rb +17 -0
  27. data/lib/wx/aui/auinotebook.rb +9 -0
  28. data/lib/wx/aui/events/evt_list.rb +143 -0
  29. data/lib/wx/aui/require.rb +9 -0
  30. data/lib/wx/aui.rb +14 -0
  31. data/lib/wx/core/acceleratortable.rb +28 -0
  32. data/lib/wx/core/animation.rb +18 -0
  33. data/lib/wx/core/app.rb +89 -0
  34. data/lib/wx/core/artprovider.rb +31 -0
  35. data/lib/wx/core/bitmap.rb +59 -0
  36. data/lib/wx/core/busycursor.rb +12 -0
  37. data/lib/wx/core/choice.rb +4 -0
  38. data/lib/wx/core/choicedlg.rb +54 -0
  39. data/lib/wx/core/clientdc.rb +13 -0
  40. data/lib/wx/core/clipboard.rb +56 -0
  41. data/lib/wx/core/collapsible_pane.rb +12 -0
  42. data/lib/wx/core/colour.rb +34 -0
  43. data/lib/wx/core/combobox.rb +4 -0
  44. data/lib/wx/core/controlwithitems.rb +10 -0
  45. data/lib/wx/core/data_object.rb +10 -0
  46. data/lib/wx/core/dataformat.rb +26 -0
  47. data/lib/wx/core/dc.rb +68 -0
  48. data/lib/wx/core/dialog.rb +50 -0
  49. data/lib/wx/core/event.rb +16 -0
  50. data/lib/wx/core/events/evt_list.rb +1378 -0
  51. data/lib/wx/core/evthandler.rb +240 -0
  52. data/lib/wx/core/ext.rb +58 -0
  53. data/lib/wx/core/font/encoding.rb +113 -0
  54. data/lib/wx/core/font.rb +22 -0
  55. data/lib/wx/core/functions.rb +44 -0
  56. data/lib/wx/core/gauge.rb +12 -0
  57. data/lib/wx/core/genericdirctrl.rb +36 -0
  58. data/lib/wx/core/hboxsizer.rb +6 -0
  59. data/lib/wx/core/helpcontroller.rb +5 -0
  60. data/lib/wx/core/helpcontrollerhelpprovider.rb +24 -0
  61. data/lib/wx/core/helpprovider.rb +15 -0
  62. data/lib/wx/core/icon.rb +40 -0
  63. data/lib/wx/core/image.rb +68 -0
  64. data/lib/wx/core/imagelist.rb +3 -0
  65. data/lib/wx/core/listbox.rb +4 -0
  66. data/lib/wx/core/listctrl.rb +33 -0
  67. data/lib/wx/core/locale.rb +73 -0
  68. data/lib/wx/core/log.rb +20 -0
  69. data/lib/wx/core/menu.rb +78 -0
  70. data/lib/wx/core/menu_bar.rb +20 -0
  71. data/lib/wx/core/menuitem.rb +7 -0
  72. data/lib/wx/core/notebook.rb +9 -0
  73. data/lib/wx/core/object.rb +14 -0
  74. data/lib/wx/core/pen_info.rb +11 -0
  75. data/lib/wx/core/platform_info.rb +13 -0
  76. data/lib/wx/core/point.rb +92 -0
  77. data/lib/wx/core/real_point.rb +92 -0
  78. data/lib/wx/core/rect.rb +57 -0
  79. data/lib/wx/core/simplehelpprovider.rb +38 -0
  80. data/lib/wx/core/size.rb +86 -0
  81. data/lib/wx/core/sizer.rb +43 -0
  82. data/lib/wx/core/splash_screen.rb +44 -0
  83. data/lib/wx/core/textctrl.rb +8 -0
  84. data/lib/wx/core/timer.rb +105 -0
  85. data/lib/wx/core/toolbar.rb +37 -0
  86. data/lib/wx/core/toolbartool.rb +4 -0
  87. data/lib/wx/core/treectrl.rb +46 -0
  88. data/lib/wx/core/validator.rb +8 -0
  89. data/lib/wx/core/variant.rb +62 -0
  90. data/lib/wx/core/vboxsizer.rb +6 -0
  91. data/lib/wx/core/window.rb +95 -0
  92. data/lib/wx/core/window_update_locker.rb +12 -0
  93. data/lib/wx/core/xmlresource.rb +56 -0
  94. data/lib/wx/core.rb +61 -0
  95. data/lib/wx/doc/aui/auimanager.rb +12 -0
  96. data/lib/wx/doc/aui/auinotebook.rb +9 -0
  97. data/lib/wx/doc/colour_dialog.rb +15 -0
  98. data/lib/wx/doc/dc.rb +49 -0
  99. data/lib/wx/doc/enum.rb +66 -0
  100. data/lib/wx/doc/evthandler.rb +84 -0
  101. data/lib/wx/doc/extra/00_starting.md +154 -0
  102. data/lib/wx/doc/extra/01_packages.md +179 -0
  103. data/lib/wx/doc/extra/02_lifecycles.md +116 -0
  104. data/lib/wx/doc/extra/03_dialogs.md +57 -0
  105. data/lib/wx/doc/extra/04_enums.md +143 -0
  106. data/lib/wx/doc/extra/05_event-handling.md +166 -0
  107. data/lib/wx/doc/extra/06_geometry.md +56 -0
  108. data/lib/wx/doc/extra/07_colour_and_font.md +52 -0
  109. data/lib/wx/doc/extra/08_extensions.md +144 -0
  110. data/lib/wx/doc/extra/09_exceptions.md +54 -0
  111. data/lib/wx/doc/functions.rb +221 -0
  112. data/lib/wx/doc/gdi_common.rb +181 -0
  113. data/lib/wx/doc/gen/about_dialog_info.rb +315 -0
  114. data/lib/wx/doc/gen/accelerator.rb +172 -0
  115. data/lib/wx/doc/gen/accessible.rb +817 -0
  116. data/lib/wx/doc/gen/animation.rb +253 -0
  117. data/lib/wx/doc/gen/animation_ctrl.rb +129 -0
  118. data/lib/wx/doc/gen/any_button.rb +170 -0
  119. data/lib/wx/doc/gen/app.rb +363 -0
  120. data/lib/wx/doc/gen/art_provider.rb +497 -0
  121. data/lib/wx/doc/gen/aui/aui_dock_art.rb +421 -0
  122. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +39 -0
  123. data/lib/wx/doc/gen/aui/aui_manager.rb +323 -0
  124. data/lib/wx/doc/gen/aui/aui_manager_event.rb +112 -0
  125. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +163 -0
  126. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +46 -0
  127. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +109 -0
  128. data/lib/wx/doc/gen/aui/aui_notebook.rb +329 -0
  129. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +179 -0
  130. data/lib/wx/doc/gen/aui/aui_pane_info.rb +665 -0
  131. data/lib/wx/doc/gen/aui/aui_tab_art.rb +372 -0
  132. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +147 -0
  133. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +437 -0
  134. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +272 -0
  135. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +195 -0
  136. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +224 -0
  137. data/lib/wx/doc/gen/aui/event_list.rb +162 -0
  138. data/lib/wx/doc/gen/auto_buffered_paint_dc.rb +47 -0
  139. data/lib/wx/doc/gen/bitmap.rb +638 -0
  140. data/lib/wx/doc/gen/bitmap_button.rb +91 -0
  141. data/lib/wx/doc/gen/book_ctrl_base.rb +240 -0
  142. data/lib/wx/doc/gen/book_ctrl_event.rb +60 -0
  143. data/lib/wx/doc/gen/box_sizer.rb +66 -0
  144. data/lib/wx/doc/gen/brush.rb +219 -0
  145. data/lib/wx/doc/gen/buffered_dc.rb +95 -0
  146. data/lib/wx/doc/gen/buffered_paint_dc.rb +55 -0
  147. data/lib/wx/doc/gen/busy_info.rb +141 -0
  148. data/lib/wx/doc/gen/button.rb +133 -0
  149. data/lib/wx/doc/gen/calculate_layout_event.rb +59 -0
  150. data/lib/wx/doc/gen/calendar_ctrl.rb +236 -0
  151. data/lib/wx/doc/gen/calendar_date_attr.rb +137 -0
  152. data/lib/wx/doc/gen/calendar_event.rb +150 -0
  153. data/lib/wx/doc/gen/caret.rb +99 -0
  154. data/lib/wx/doc/gen/check_box.rb +145 -0
  155. data/lib/wx/doc/gen/check_list_box.rb +96 -0
  156. data/lib/wx/doc/gen/choice.rb +143 -0
  157. data/lib/wx/doc/gen/choicebook.rb +100 -0
  158. data/lib/wx/doc/gen/client_dc.rb +49 -0
  159. data/lib/wx/doc/gen/clipboard.rb +128 -0
  160. data/lib/wx/doc/gen/collapsible_pane.rb +120 -0
  161. data/lib/wx/doc/gen/collapsible_pane_event.rb +45 -0
  162. data/lib/wx/doc/gen/colour.rb +289 -0
  163. data/lib/wx/doc/gen/colour_data.rb +96 -0
  164. data/lib/wx/doc/gen/colour_dialog.rb +84 -0
  165. data/lib/wx/doc/gen/colour_picker_ctrl.rb +89 -0
  166. data/lib/wx/doc/gen/colour_picker_event.rb +74 -0
  167. data/lib/wx/doc/gen/combo_box.rb +228 -0
  168. data/lib/wx/doc/gen/context_help_button.rb +34 -0
  169. data/lib/wx/doc/gen/control.rb +245 -0
  170. data/lib/wx/doc/gen/control_with_items.rb +339 -0
  171. data/lib/wx/doc/gen/core.rb +42 -0
  172. data/lib/wx/doc/gen/cursor.rb +127 -0
  173. data/lib/wx/doc/gen/data_format.rb +94 -0
  174. data/lib/wx/doc/gen/data_object.rb +439 -0
  175. data/lib/wx/doc/gen/date_event.rb +48 -0
  176. data/lib/wx/doc/gen/date_picker_ctrl.rb +127 -0
  177. data/lib/wx/doc/gen/dc.rb +1278 -0
  178. data/lib/wx/doc/gen/defs.rb +2832 -0
  179. data/lib/wx/doc/gen/dialog.rb +426 -0
  180. data/lib/wx/doc/gen/dir_dialog.rb +134 -0
  181. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +80 -0
  182. data/lib/wx/doc/gen/dir_picker_ctrl.rb +103 -0
  183. data/lib/wx/doc/gen/drag_drop.rb +292 -0
  184. data/lib/wx/doc/gen/drag_image.rb +123 -0
  185. data/lib/wx/doc/gen/editable_list_box.rb +89 -0
  186. data/lib/wx/doc/gen/event.rb +911 -0
  187. data/lib/wx/doc/gen/event_list.rb +1512 -0
  188. data/lib/wx/doc/gen/events.rb +2499 -0
  189. data/lib/wx/doc/gen/evt_handler.rb +224 -0
  190. data/lib/wx/doc/gen/ext_help_controller.rb +100 -0
  191. data/lib/wx/doc/gen/file_dialog.rb +294 -0
  192. data/lib/wx/doc/gen/file_dir_picker_event.rb +98 -0
  193. data/lib/wx/doc/gen/file_picker_ctrl.rb +107 -0
  194. data/lib/wx/doc/gen/find_dialog_event.rb +119 -0
  195. data/lib/wx/doc/gen/find_replace_data.rb +59 -0
  196. data/lib/wx/doc/gen/find_replace_dialog.rb +44 -0
  197. data/lib/wx/doc/gen/flex_grid_sizer.rb +145 -0
  198. data/lib/wx/doc/gen/font.rb +1282 -0
  199. data/lib/wx/doc/gen/font_data.rb +132 -0
  200. data/lib/wx/doc/gen/font_dialog.rb +71 -0
  201. data/lib/wx/doc/gen/font_picker_ctrl.rb +120 -0
  202. data/lib/wx/doc/gen/font_picker_event.rb +64 -0
  203. data/lib/wx/doc/gen/frame.rb +276 -0
  204. data/lib/wx/doc/gen/fs_file.rb +269 -0
  205. data/lib/wx/doc/gen/functions.rb +10 -0
  206. data/lib/wx/doc/gen/gauge.rb +127 -0
  207. data/lib/wx/doc/gen/gb_sizer_item.rb +78 -0
  208. data/lib/wx/doc/gen/gcdc.rb +61 -0
  209. data/lib/wx/doc/gen/gdi_common.rb +1108 -0
  210. data/lib/wx/doc/gen/gdi_object.rb +29 -0
  211. data/lib/wx/doc/gen/generic_dir_ctrl.rb +198 -0
  212. data/lib/wx/doc/gen/graphics_context.rb +764 -0
  213. data/lib/wx/doc/gen/graphics_object.rb +494 -0
  214. data/lib/wx/doc/gen/grid/event_list.rb +173 -0
  215. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +33 -0
  216. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +279 -0
  217. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +31 -0
  218. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +32 -0
  219. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +44 -0
  220. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +31 -0
  221. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +48 -0
  222. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +33 -0
  223. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +40 -0
  224. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +35 -0
  225. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +181 -0
  226. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +34 -0
  227. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +39 -0
  228. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +41 -0
  229. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +74 -0
  230. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +41 -0
  231. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +31 -0
  232. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +98 -0
  233. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +31 -0
  234. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +45 -0
  235. data/lib/wx/doc/gen/grid/grid_ctrl.rb +2381 -0
  236. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +87 -0
  237. data/lib/wx/doc/gen/grid/grid_event.rb +96 -0
  238. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +96 -0
  239. data/lib/wx/doc/gen/grid/grid_size_event.rb +71 -0
  240. data/lib/wx/doc/gen/grid/grid_string_table.rb +130 -0
  241. data/lib/wx/doc/gen/grid/grid_table_base.rb +288 -0
  242. data/lib/wx/doc/gen/grid/grid_table_message.rb +73 -0
  243. data/lib/wx/doc/gen/grid_bag_sizer.rb +298 -0
  244. data/lib/wx/doc/gen/grid_sizer.rb +135 -0
  245. data/lib/wx/doc/gen/help_controller.rb +136 -0
  246. data/lib/wx/doc/gen/help_provider.rb +80 -0
  247. data/lib/wx/doc/gen/html/event_list.rb +46 -0
  248. data/lib/wx/doc/gen/html/html_cell.rb +441 -0
  249. data/lib/wx/doc/gen/html/html_cell_event.rb +62 -0
  250. data/lib/wx/doc/gen/html/html_easy_printing.rb +169 -0
  251. data/lib/wx/doc/gen/html/html_help_controller.rb +256 -0
  252. data/lib/wx/doc/gen/html/html_help_data.rb +144 -0
  253. data/lib/wx/doc/gen/html/html_help_frame.rb +112 -0
  254. data/lib/wx/doc/gen/html/html_help_window.rb +230 -0
  255. data/lib/wx/doc/gen/html/html_link_event.rb +36 -0
  256. data/lib/wx/doc/gen/html/html_list_box.rb +150 -0
  257. data/lib/wx/doc/gen/html/html_printout.rb +87 -0
  258. data/lib/wx/doc/gen/html/html_window.rb +386 -0
  259. data/lib/wx/doc/gen/icon.rb +267 -0
  260. data/lib/wx/doc/gen/icon_location.rb +38 -0
  261. data/lib/wx/doc/gen/image.rb +1144 -0
  262. data/lib/wx/doc/gen/image_list.rb +181 -0
  263. data/lib/wx/doc/gen/keyboard_state.rb +124 -0
  264. data/lib/wx/doc/gen/list_box.rb +260 -0
  265. data/lib/wx/doc/gen/list_ctrl.rb +1542 -0
  266. data/lib/wx/doc/gen/list_event.rb +177 -0
  267. data/lib/wx/doc/gen/listbook.rb +100 -0
  268. data/lib/wx/doc/gen/locale.rb +4143 -0
  269. data/lib/wx/doc/gen/log.rb +505 -0
  270. data/lib/wx/doc/gen/mdi_client_window.rb +38 -0
  271. data/lib/wx/doc/gen/mdi_frame.rb +235 -0
  272. data/lib/wx/doc/gen/media_ctrl.rb +225 -0
  273. data/lib/wx/doc/gen/media_event.rb +109 -0
  274. data/lib/wx/doc/gen/memory_dc.rb +95 -0
  275. data/lib/wx/doc/gen/menu.rb +493 -0
  276. data/lib/wx/doc/gen/menu_bar.rb +247 -0
  277. data/lib/wx/doc/gen/menu_item.rb +333 -0
  278. data/lib/wx/doc/gen/message_dialog.rb +195 -0
  279. data/lib/wx/doc/gen/mini_frame.rb +72 -0
  280. data/lib/wx/doc/gen/mirror_dc.rb +29 -0
  281. data/lib/wx/doc/gen/mouse_state.rb +108 -0
  282. data/lib/wx/doc/gen/multi_choice_dialog.rb +58 -0
  283. data/lib/wx/doc/gen/non_owned_window.rb +46 -0
  284. data/lib/wx/doc/gen/notebook.rb +220 -0
  285. data/lib/wx/doc/gen/number_entry_dialog.rb +75 -0
  286. data/lib/wx/doc/gen/object.rb +69 -0
  287. data/lib/wx/doc/gen/paint_dc.rb +34 -0
  288. data/lib/wx/doc/gen/palette.rb +90 -0
  289. data/lib/wx/doc/gen/panel.rb +96 -0
  290. data/lib/wx/doc/gen/pen.rb +484 -0
  291. data/lib/wx/doc/gen/pg/event_list.rb +102 -0
  292. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +47 -0
  293. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +295 -0
  294. data/lib/wx/doc/gen/pg/pg_cell.rb +166 -0
  295. data/lib/wx/doc/gen/pg/pg_editor.rb +569 -0
  296. data/lib/wx/doc/gen/pg/pg_multi_button.rb +161 -0
  297. data/lib/wx/doc/gen/pg/pg_properties.rb +2193 -0
  298. data/lib/wx/doc/gen/pg/pg_property.rb +1852 -0
  299. data/lib/wx/doc/gen/pg/pg_validation_info.rb +327 -0
  300. data/lib/wx/doc/gen/pg/property_grid.rb +619 -0
  301. data/lib/wx/doc/gen/pg/property_grid_event.rb +135 -0
  302. data/lib/wx/doc/gen/pg/property_grid_interface.rb +847 -0
  303. data/lib/wx/doc/gen/pg/property_grid_manager.rb +349 -0
  304. data/lib/wx/doc/gen/pg/property_grid_page.rb +265 -0
  305. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +155 -0
  306. data/lib/wx/doc/gen/picker_base.rb +143 -0
  307. data/lib/wx/doc/gen/platform_info.rb +379 -0
  308. data/lib/wx/doc/gen/popup_window.rb +93 -0
  309. data/lib/wx/doc/gen/progress_dialog.rb +106 -0
  310. data/lib/wx/doc/gen/property_sheet_dialog.rb +185 -0
  311. data/lib/wx/doc/gen/prt/event_list.rb +13 -0
  312. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +38 -0
  313. data/lib/wx/doc/gen/prt/post_script_dc.rb +32 -0
  314. data/lib/wx/doc/gen/prt/preview_frame.rb +39 -0
  315. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +127 -0
  316. data/lib/wx/doc/gen/prt/print_data.rb +598 -0
  317. data/lib/wx/doc/gen/prt/print_dialog.rb +47 -0
  318. data/lib/wx/doc/gen/prt/printer.rb +428 -0
  319. data/lib/wx/doc/gen/prt/printer_dc.rb +35 -0
  320. data/lib/wx/doc/gen/query_layout_info_event.rb +98 -0
  321. data/lib/wx/doc/gen/radio_box.rb +258 -0
  322. data/lib/wx/doc/gen/radio_button.rb +128 -0
  323. data/lib/wx/doc/gen/rbn/event_list.rb +132 -0
  324. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1652 -0
  325. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +227 -0
  326. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +40 -0
  327. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +400 -0
  328. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +58 -0
  329. data/lib/wx/doc/gen/rbn/ribbon_control.rb +116 -0
  330. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +208 -0
  331. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +51 -0
  332. data/lib/wx/doc/gen/rbn/ribbon_page.rb +129 -0
  333. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +232 -0
  334. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +41 -0
  335. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +321 -0
  336. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +36 -0
  337. data/lib/wx/doc/gen/region.rb +299 -0
  338. data/lib/wx/doc/gen/rtc/event_list.rb +121 -0
  339. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +2052 -0
  340. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2031 -0
  341. data/lib/wx/doc/gen/rtc/rich_text_event.rb +146 -0
  342. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +171 -0
  343. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +180 -0
  344. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +104 -0
  345. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +241 -0
  346. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +55 -0
  347. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +153 -0
  348. data/lib/wx/doc/gen/sash_event.rb +133 -0
  349. data/lib/wx/doc/gen/sash_layout_window.rb +203 -0
  350. data/lib/wx/doc/gen/sash_window.rb +154 -0
  351. data/lib/wx/doc/gen/screen_dc.rb +27 -0
  352. data/lib/wx/doc/gen/scrolled_canvas.rb +317 -0
  353. data/lib/wx/doc/gen/scrolled_control.rb +317 -0
  354. data/lib/wx/doc/gen/scrolled_window.rb +337 -0
  355. data/lib/wx/doc/gen/simplebook.rb +93 -0
  356. data/lib/wx/doc/gen/single_choice_dialog.rb +74 -0
  357. data/lib/wx/doc/gen/sizer.rb +847 -0
  358. data/lib/wx/doc/gen/sizer_item.rb +227 -0
  359. data/lib/wx/doc/gen/slider.rb +316 -0
  360. data/lib/wx/doc/gen/spin_button.rb +124 -0
  361. data/lib/wx/doc/gen/spin_ctrl.rb +170 -0
  362. data/lib/wx/doc/gen/spin_event.rb +47 -0
  363. data/lib/wx/doc/gen/splash_screen.rb +83 -0
  364. data/lib/wx/doc/gen/splitter_event.rb +87 -0
  365. data/lib/wx/doc/gen/splitter_window.rb +357 -0
  366. data/lib/wx/doc/gen/static_bitmap.rb +126 -0
  367. data/lib/wx/doc/gen/static_box.rb +123 -0
  368. data/lib/wx/doc/gen/static_box_sizer.rb +67 -0
  369. data/lib/wx/doc/gen/static_line.rb +66 -0
  370. data/lib/wx/doc/gen/static_text.rb +98 -0
  371. data/lib/wx/doc/gen/status_bar.rb +203 -0
  372. data/lib/wx/doc/gen/stc/event_list.rb +217 -0
  373. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4000 -0
  374. data/lib/wx/doc/gen/stc/styled_text_event.rb +7319 -0
  375. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +74 -0
  376. data/lib/wx/doc/gen/svg_file_dc.rb +153 -0
  377. data/lib/wx/doc/gen/system_options.rb +109 -0
  378. data/lib/wx/doc/gen/system_settings.rb +481 -0
  379. data/lib/wx/doc/gen/task_bar_icon.rb +94 -0
  380. data/lib/wx/doc/gen/task_bar_icon_event.rb +86 -0
  381. data/lib/wx/doc/gen/text_attr.rb +645 -0
  382. data/lib/wx/doc/gen/text_ctrl.rb +841 -0
  383. data/lib/wx/doc/gen/text_entry.rb +389 -0
  384. data/lib/wx/doc/gen/text_entry_dialog.rb +170 -0
  385. data/lib/wx/doc/gen/text_validator.rb +212 -0
  386. data/lib/wx/doc/gen/time_picker_ctrl.rb +103 -0
  387. data/lib/wx/doc/gen/timer.rb +103 -0
  388. data/lib/wx/doc/gen/timer_event.rb +73 -0
  389. data/lib/wx/doc/gen/tip_provider.rb +60 -0
  390. data/lib/wx/doc/gen/toggle_button.rb +84 -0
  391. data/lib/wx/doc/gen/tool_bar.rb +744 -0
  392. data/lib/wx/doc/gen/tool_tip.rb +73 -0
  393. data/lib/wx/doc/gen/toolbook.rb +103 -0
  394. data/lib/wx/doc/gen/top_level_window.rb +462 -0
  395. data/lib/wx/doc/gen/tree_ctrl.rb +863 -0
  396. data/lib/wx/doc/gen/tree_event.rb +101 -0
  397. data/lib/wx/doc/gen/treebook.rb +154 -0
  398. data/lib/wx/doc/gen/utils.rb +257 -0
  399. data/lib/wx/doc/gen/v_list_box.rb +224 -0
  400. data/lib/wx/doc/gen/v_scrolled_window.rb +224 -0
  401. data/lib/wx/doc/gen/validator.rb +73 -0
  402. data/lib/wx/doc/gen/variant.rb +340 -0
  403. data/lib/wx/doc/gen/window.rb +2414 -0
  404. data/lib/wx/doc/gen/window_dc.rb +35 -0
  405. data/lib/wx/doc/gen/window_disabler.rb +24 -0
  406. data/lib/wx/doc/gen/with_images.rb +73 -0
  407. data/lib/wx/doc/gen/wizard.rb +197 -0
  408. data/lib/wx/doc/gen/wizard_event.rb +105 -0
  409. data/lib/wx/doc/gen/wizard_page.rb +61 -0
  410. data/lib/wx/doc/gen/wizard_page_simple.rb +72 -0
  411. data/lib/wx/doc/gen/xml_node.rb +282 -0
  412. data/lib/wx/doc/gen/xml_resource.rb +304 -0
  413. data/lib/wx/doc/grid/grid.rb +20 -0
  414. data/lib/wx/doc/help_controller.rb +14 -0
  415. data/lib/wx/doc/html/html_help_controller.rb +8 -0
  416. data/lib/wx/doc/pg/events.rb +15 -0
  417. data/lib/wx/doc/pg/pg_property.rb +8 -0
  418. data/lib/wx/doc/pg/pgeditor.rb +21 -0
  419. data/lib/wx/doc/pg/property_grid.rb +48 -0
  420. data/lib/wx/doc/pg/property_grid_interface.rb +64 -0
  421. data/lib/wx/doc/prt/page_setup_dialog.rb +15 -0
  422. data/lib/wx/doc/prt/print_data.rb +9 -0
  423. data/lib/wx/doc/prt/print_dialog.rb +26 -0
  424. data/lib/wx/doc/prt/printer.rb +15 -0
  425. data/lib/wx/doc/rbn/ribbon_bar.rb +9 -0
  426. data/lib/wx/doc/rbn/ribbon_button_bar.rb +9 -0
  427. data/lib/wx/doc/rbn/ribbon_gallery.rb +9 -0
  428. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +9 -0
  429. data/lib/wx/doc/rtc/richtext_printing.rb +14 -0
  430. data/lib/wx/doc/screen_dc.rb +10 -0
  431. data/lib/wx/doc/stock_objects.rb +98 -0
  432. data/lib/wx/doc/stream.rb +38 -0
  433. data/lib/wx/doc/system_settings.rb +29 -0
  434. data/lib/wx/doc/treebook.rb +9 -0
  435. data/lib/wx/doc/variant.rb +163 -0
  436. data/lib/wx/doc/xml_resource.rb +19 -0
  437. data/lib/wx/global_const.rb +84 -0
  438. data/lib/wx/grid/events/evt_list.rb +156 -0
  439. data/lib/wx/grid/grid.rb +7 -0
  440. data/lib/wx/grid/keyword_defs.rb +10 -0
  441. data/lib/wx/grid/require.rb +9 -0
  442. data/lib/wx/grid.rb +14 -0
  443. data/lib/wx/helpers.rb +65 -0
  444. data/lib/wx/html/events/evt_list.rb +37 -0
  445. data/lib/wx/html/htmlhelpcontroller.rb +6 -0
  446. data/lib/wx/html/htmlwindow.rb +19 -0
  447. data/lib/wx/html/keyword_defs.rb +22 -0
  448. data/lib/wx/html/require.rb +10 -0
  449. data/lib/wx/html.rb +15 -0
  450. data/lib/wx/keyword_ctors.rb +226 -0
  451. data/lib/wx/keyword_defs.rb +487 -0
  452. data/lib/wx/pg/events/evt_list.rb +73 -0
  453. data/lib/wx/pg/events.rb +14 -0
  454. data/lib/wx/pg/keyword_defs.rb +15 -0
  455. data/lib/wx/pg/pg_editor.rb +13 -0
  456. data/lib/wx/pg/pg_properties.rb +24 -0
  457. data/lib/wx/pg/pg_property.rb +26 -0
  458. data/lib/wx/pg/property_grid.rb +56 -0
  459. data/lib/wx/pg/property_grid_interface.rb +33 -0
  460. data/lib/wx/pg/require.rb +12 -0
  461. data/lib/wx/pg.rb +14 -0
  462. data/lib/wx/prt/keyword_defs.rb +8 -0
  463. data/lib/wx/prt/page_setup_dialog.rb +15 -0
  464. data/lib/wx/prt/previewframe.rb +13 -0
  465. data/lib/wx/prt/require.rb +8 -0
  466. data/lib/wx/prt.rb +14 -0
  467. data/lib/wx/rbn/events/evt_list.rb +102 -0
  468. data/lib/wx/rbn/events.rb +4 -0
  469. data/lib/wx/rbn/keyword_defs.rb +43 -0
  470. data/lib/wx/rbn/require.rb +12 -0
  471. data/lib/wx/rbn/ribbon_art_provider.rb +10 -0
  472. data/lib/wx/rbn/ribbon_bar.rb +12 -0
  473. data/lib/wx/rbn/ribbon_button_bar.rb +26 -0
  474. data/lib/wx/rbn/ribbon_control.rb +25 -0
  475. data/lib/wx/rbn/ribbon_gallery.rb +26 -0
  476. data/lib/wx/rbn/ribbon_page.rb +15 -0
  477. data/lib/wx/rbn/ribbon_panel.rb +15 -0
  478. data/lib/wx/rbn/ribbon_tool_bar.rb +26 -0
  479. data/lib/wx/rbn.rb +14 -0
  480. data/lib/wx/rtc/events/evt_list.rb +98 -0
  481. data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -0
  482. data/lib/wx/rtc/ext.rb +15 -0
  483. data/lib/wx/rtc/keyword_defs.rb +17 -0
  484. data/lib/wx/rtc/require.rb +8 -0
  485. data/lib/wx/rtc.rb +15 -0
  486. data/lib/wx/stc/events/evt_list.rb +178 -0
  487. data/lib/wx/stc/keyword_defs.rb +8 -0
  488. data/lib/wx/stc/require.rb +7 -0
  489. data/lib/wx/stc.rb +14 -0
  490. data/lib/wx/version.rb +3 -0
  491. data/lib/wx/wxruby/base.rb +87 -0
  492. data/lib/wx/wxruby/cmd/sampler.rb +68 -0
  493. data/lib/wx/wxruby/cmd/test.rb +27 -0
  494. data/lib/wx.rb +14 -0
  495. data/lib/wxruby_aui.so +0 -0
  496. data/lib/wxruby_core.so +0 -0
  497. data/lib/wxruby_grid.so +0 -0
  498. data/lib/wxruby_html.so +0 -0
  499. data/lib/wxruby_pg.so +0 -0
  500. data/lib/wxruby_prt.so +0 -0
  501. data/lib/wxruby_rbn.so +0 -0
  502. data/lib/wxruby_rtc.so +0 -0
  503. data/lib/wxruby_stc.so +0 -0
  504. data/rakelib/install.rb +220 -0
  505. data/rakelib/lib/config/cygwin.rb +6 -0
  506. data/rakelib/lib/config/linux.rb +78 -0
  507. data/rakelib/lib/config/macosx.rb +6 -0
  508. data/rakelib/lib/config/mingw.rb +133 -0
  509. data/rakelib/lib/config/netbsd.rb +6 -0
  510. data/rakelib/lib/config/unixish.rb +187 -0
  511. data/rakelib/lib/config.rb +673 -0
  512. data/rakelib/lib/ext/enum_chain.rb +22 -0
  513. data/rakelib/prepost.rake +91 -0
  514. data/rakelib/prepost.rb +26 -0
  515. data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +7 -0
  516. data/rakelib/yard/templates/default/layout/html/setup.rb +5 -0
  517. data/rakelib/yard/yard/relative_markdown_links/version.rb +8 -0
  518. data/rakelib/yard/yard/relative_markdown_links.rb +39 -0
  519. data/rakelib/yard/yard-custom-templates.rb +2 -0
  520. data/rakelib/yard/yard-relative_markdown_links.rb +4 -0
  521. data/samples/art/wxruby-128x128.png +0 -0
  522. data/samples/art/wxruby-256x256.png +0 -0
  523. data/samples/art/wxruby-64x64.png +0 -0
  524. data/samples/art/wxruby.ico +0 -0
  525. data/samples/art/wxruby.png +0 -0
  526. data/samples/aui/aui.rb +1321 -0
  527. data/samples/aui/tn_aui.png +0 -0
  528. data/samples/bigdemo/About.rbw +39 -0
  529. data/samples/bigdemo/ColorPanel.rbw +23 -0
  530. data/samples/bigdemo/GridSimple.rbw +78 -0
  531. data/samples/bigdemo/MDIDemo.rbw +57 -0
  532. data/samples/bigdemo/PopupMenu.rbw +146 -0
  533. data/samples/bigdemo/ShapedWindow.rbw +128 -0
  534. data/samples/bigdemo/Sizers.rbw +541 -0
  535. data/samples/bigdemo/bigdemo.rb +810 -0
  536. data/samples/bigdemo/demoTemplate.rbw +33 -0
  537. data/samples/bigdemo/helpfile.htb +0 -0
  538. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  539. data/samples/bigdemo/icons/Test 015.png +0 -0
  540. data/samples/bigdemo/icons/choice.bmp +0 -0
  541. data/samples/bigdemo/icons/choice.xpm +27 -0
  542. data/samples/bigdemo/icons/combo.bmp +0 -0
  543. data/samples/bigdemo/icons/combo.xpm +27 -0
  544. data/samples/bigdemo/icons/copy.xpm +25 -0
  545. data/samples/bigdemo/icons/cut.xpm +24 -0
  546. data/samples/bigdemo/icons/gauge.bmp +0 -0
  547. data/samples/bigdemo/icons/gauge.xpm +27 -0
  548. data/samples/bigdemo/icons/help.xpm +25 -0
  549. data/samples/bigdemo/icons/list.bmp +0 -0
  550. data/samples/bigdemo/icons/list.xpm +27 -0
  551. data/samples/bigdemo/icons/mondrian.ico +0 -0
  552. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  553. data/samples/bigdemo/icons/new.xpm +24 -0
  554. data/samples/bigdemo/icons/ogl.ico +0 -0
  555. data/samples/bigdemo/icons/ogl.xpm +45 -0
  556. data/samples/bigdemo/icons/open.xpm +26 -0
  557. data/samples/bigdemo/icons/paste.bmp +0 -0
  558. data/samples/bigdemo/icons/paste.xpm +38 -0
  559. data/samples/bigdemo/icons/pointy.png +0 -0
  560. data/samples/bigdemo/icons/preview.xpm +26 -0
  561. data/samples/bigdemo/icons/print.xpm +26 -0
  562. data/samples/bigdemo/icons/radio.bmp +0 -0
  563. data/samples/bigdemo/icons/radio.xpm +27 -0
  564. data/samples/bigdemo/icons/robert.xpm +415 -0
  565. data/samples/bigdemo/icons/sashtest.ico +0 -0
  566. data/samples/bigdemo/icons/save.xpm +25 -0
  567. data/samples/bigdemo/icons/smiles.bmp +0 -0
  568. data/samples/bigdemo/icons/smiles.xpm +39 -0
  569. data/samples/bigdemo/icons/smiley.ico +0 -0
  570. data/samples/bigdemo/icons/smiley.xpm +42 -0
  571. data/samples/bigdemo/icons/stattext.xpm +24 -0
  572. data/samples/bigdemo/icons/test2.bmp +0 -0
  573. data/samples/bigdemo/icons/test2.png +0 -0
  574. data/samples/bigdemo/icons/test2.xpm +79 -0
  575. data/samples/bigdemo/icons/text.bmp +0 -0
  576. data/samples/bigdemo/icons/text.xpm +27 -0
  577. data/samples/bigdemo/icons/tog1.bmp +0 -0
  578. data/samples/bigdemo/icons/tog1.xpm +38 -0
  579. data/samples/bigdemo/icons/tog2.bmp +0 -0
  580. data/samples/bigdemo/icons/tog2.xpm +38 -0
  581. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  582. data/samples/bigdemo/icons/wxwin.ico +0 -0
  583. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  584. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  585. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  586. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  587. data/samples/bigdemo/run.rb +91 -0
  588. data/samples/bigdemo/tips.txt +7 -0
  589. data/samples/bigdemo/utils.rb +12 -0
  590. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  591. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  592. data/samples/bigdemo/wxButton.rbw +64 -0
  593. data/samples/bigdemo/wxCalendarCtrl.rbw +59 -0
  594. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  595. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  596. data/samples/bigdemo/wxChoice.rbw +47 -0
  597. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  598. data/samples/bigdemo/wxColourDialog.rbw +33 -0
  599. data/samples/bigdemo/wxComboBox.rbw +77 -0
  600. data/samples/bigdemo/wxCursor.rbw +136 -0
  601. data/samples/bigdemo/wxDialog.rbw +74 -0
  602. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  603. data/samples/bigdemo/wxDragImage.rbw +70 -0
  604. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  605. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  606. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  607. data/samples/bigdemo/wxFontDialog.rbw +200 -0
  608. data/samples/bigdemo/wxFrame.rbw +53 -0
  609. data/samples/bigdemo/wxGauge.rbw +65 -0
  610. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  611. data/samples/bigdemo/wxGrid.rbw +66 -0
  612. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  613. data/samples/bigdemo/wxListBox.rbw +140 -0
  614. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  615. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  616. data/samples/bigdemo/wxMenu.rbw +247 -0
  617. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  618. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  619. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +29 -0
  620. data/samples/bigdemo/wxNotebook.rbw +136 -0
  621. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  622. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  623. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  624. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  625. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  626. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  627. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  628. data/samples/bigdemo/wxSlider.rbw +42 -0
  629. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  630. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  631. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  632. data/samples/bigdemo/wxStaticBitmap.rbw +47 -0
  633. data/samples/bigdemo/wxStaticText.rbw +55 -0
  634. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  635. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  636. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  637. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  638. data/samples/bigdemo/wxToolBar.rbw +131 -0
  639. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  640. data/samples/calendar/calendar.rb +363 -0
  641. data/samples/calendar/tn_calendar.png +0 -0
  642. data/samples/caret/caret.rb +293 -0
  643. data/samples/caret/mondrian.xpm +44 -0
  644. data/samples/caret/tn_caret.png +0 -0
  645. data/samples/controls/books.rb +183 -0
  646. data/samples/controls/controls.rb +1143 -0
  647. data/samples/controls/get_item_sample.rb +117 -0
  648. data/samples/controls/icons/choice.xpm +27 -0
  649. data/samples/controls/icons/combo.xpm +27 -0
  650. data/samples/controls/icons/gauge.xpm +27 -0
  651. data/samples/controls/icons/list.xpm +27 -0
  652. data/samples/controls/icons/radio.xpm +27 -0
  653. data/samples/controls/icons/stattext.xpm +24 -0
  654. data/samples/controls/icons/text.xpm +27 -0
  655. data/samples/controls/mondrian.ico +0 -0
  656. data/samples/controls/mondrian.xpm +44 -0
  657. data/samples/controls/test2.bmp +0 -0
  658. data/samples/controls/tn_books.png +0 -0
  659. data/samples/controls/tn_controls.png +0 -0
  660. data/samples/controls/tn_get_item_sample.png +0 -0
  661. data/samples/dialogs/dialogs.rb +879 -0
  662. data/samples/dialogs/tips.txt +18 -0
  663. data/samples/dialogs/tn_dialogs.png +0 -0
  664. data/samples/dialogs/tn_wizard.png +0 -0
  665. data/samples/dialogs/wizard.rb +89 -0
  666. data/samples/dragdrop/dragdrop.rb +200 -0
  667. data/samples/dragdrop/tn_dragdrop.png +0 -0
  668. data/samples/drawing/SVGlogo24.xpm +310 -0
  669. data/samples/drawing/bitmap.rb +76 -0
  670. data/samples/drawing/bitmap_image.rb +131 -0
  671. data/samples/drawing/graphics_drawing.rb +257 -0
  672. data/samples/drawing/maths_images.rb +327 -0
  673. data/samples/drawing/rmagic_bitmap_image.rb +139 -0
  674. data/samples/drawing/ruby-logo.jpg +0 -0
  675. data/samples/drawing/svgtest.rb +373 -0
  676. data/samples/drawing/tn_bitmap.png +0 -0
  677. data/samples/drawing/tn_bitmap_image.png +0 -0
  678. data/samples/drawing/tn_graphics_drawing.png +0 -0
  679. data/samples/drawing/tn_maths_images.png +0 -0
  680. data/samples/drawing/tn_rmagic_bitmap_image.png +0 -0
  681. data/samples/drawing/tn_svgtest.png +0 -0
  682. data/samples/etc/choice.rb +82 -0
  683. data/samples/etc/miniframe.rb +92 -0
  684. data/samples/etc/sash.rb +140 -0
  685. data/samples/etc/scrollwin.rb +120 -0
  686. data/samples/etc/system_settings.rb +263 -0
  687. data/samples/etc/tn_choice.png +0 -0
  688. data/samples/etc/tn_miniframe.png +0 -0
  689. data/samples/etc/tn_sash.png +0 -0
  690. data/samples/etc/tn_scrollwin.png +0 -0
  691. data/samples/etc/tn_system_settings.png +0 -0
  692. data/samples/event/activation.rb +129 -0
  693. data/samples/event/event.rb +220 -0
  694. data/samples/event/threaded.rb +141 -0
  695. data/samples/event/tn_activation.png +0 -0
  696. data/samples/event/tn_event.png +0 -0
  697. data/samples/event/tn_threaded.png +0 -0
  698. data/samples/event/tn_update_ui_event.png +0 -0
  699. data/samples/event/update_ui_event.rb +91 -0
  700. data/samples/grid/grid.rb +224 -0
  701. data/samples/grid/gridtablebase.rb +178 -0
  702. data/samples/grid/tn_grid.png +0 -0
  703. data/samples/grid/tn_gridtablebase.png +0 -0
  704. data/samples/html/8859_2.htm +14 -0
  705. data/samples/html/cp1250.htm +19 -0
  706. data/samples/html/foo.png +0 -0
  707. data/samples/html/html.rb +278 -0
  708. data/samples/html/i18n.gif +0 -0
  709. data/samples/html/imagemap.htm +20 -0
  710. data/samples/html/imagemap.png +0 -0
  711. data/samples/html/listtest.htm +28 -0
  712. data/samples/html/pic.png +0 -0
  713. data/samples/html/pic2.bmp +0 -0
  714. data/samples/html/regres.htm +20 -0
  715. data/samples/html/subsup.html +42 -0
  716. data/samples/html/tables.htm +255 -0
  717. data/samples/html/test.htm +375 -0
  718. data/samples/html/tn_html.png +0 -0
  719. data/samples/mdi/mdi.rb +118 -0
  720. data/samples/mdi/tn_mdi.png +0 -0
  721. data/samples/minimal/minimal.rb +95 -0
  722. data/samples/minimal/mondrian.ico +0 -0
  723. data/samples/minimal/mondrian.png +0 -0
  724. data/samples/minimal/nothing.rb +38 -0
  725. data/samples/minimal/tn_minimal.png +0 -0
  726. data/samples/minimal/tn_nothing.png +0 -0
  727. data/samples/printing/mondrian.ico +0 -0
  728. data/samples/printing/mondrian.xpm +44 -0
  729. data/samples/printing/printing.rb +499 -0
  730. data/samples/printing/printing2.rb +251 -0
  731. data/samples/printing/sample-text.txt +213 -0
  732. data/samples/printing/tn_printing.png +0 -0
  733. data/samples/printing/tn_printing2.png +0 -0
  734. data/samples/propgrid/propgrid.rb +2707 -0
  735. data/samples/propgrid/propgrid_minimal.rb +106 -0
  736. data/samples/propgrid/sample_props.rb +434 -0
  737. data/samples/propgrid/tn_propgrid.png +0 -0
  738. data/samples/propgrid/tn_propgrid_minimal.png +0 -0
  739. data/samples/ribbon/align_center.xpm +21 -0
  740. data/samples/ribbon/align_left.xpm +21 -0
  741. data/samples/ribbon/align_right.xpm +21 -0
  742. data/samples/ribbon/aui_style.xpm +53 -0
  743. data/samples/ribbon/auto_crop_selection.xpm +55 -0
  744. data/samples/ribbon/auto_crop_selection_small.xpm +33 -0
  745. data/samples/ribbon/circle.xpm +38 -0
  746. data/samples/ribbon/circle_small.xpm +22 -0
  747. data/samples/ribbon/colours.xpm +25 -0
  748. data/samples/ribbon/cross.xpm +38 -0
  749. data/samples/ribbon/empty.xpm +23 -0
  750. data/samples/ribbon/expand_selection_h.xpm +46 -0
  751. data/samples/ribbon/expand_selection_v.xpm +46 -0
  752. data/samples/ribbon/eye.xpm +26 -0
  753. data/samples/ribbon/hexagon.xpm +38 -0
  754. data/samples/ribbon/msw_style.xpm +65 -0
  755. data/samples/ribbon/position_left.xpm +22 -0
  756. data/samples/ribbon/position_top.xpm +22 -0
  757. data/samples/ribbon/ribbon.rb +900 -0
  758. data/samples/ribbon/ribbon.xpm +54 -0
  759. data/samples/ribbon/selection_panel.xpm +23 -0
  760. data/samples/ribbon/square.xpm +38 -0
  761. data/samples/ribbon/tn_ribbon.png +0 -0
  762. data/samples/ribbon/triangle.xpm +38 -0
  763. data/samples/sample.xpm +475 -0
  764. data/samples/sampler/back.xpm +21 -0
  765. data/samples/sampler/copy.xpm +44 -0
  766. data/samples/sampler/cut.xpm +46 -0
  767. data/samples/sampler/editor.rb +534 -0
  768. data/samples/sampler/ext.rb +51 -0
  769. data/samples/sampler/filesave.xpm +42 -0
  770. data/samples/sampler/find.xpm +62 -0
  771. data/samples/sampler/findrepl.xpm +63 -0
  772. data/samples/sampler/forward.xpm +21 -0
  773. data/samples/sampler/paste.xpm +46 -0
  774. data/samples/sampler/play.xpm +24 -0
  775. data/samples/sampler/redo.xpm +58 -0
  776. data/samples/sampler/sample.rb +337 -0
  777. data/samples/sampler/stc_editor.rb +326 -0
  778. data/samples/sampler/txt_editor.rb +135 -0
  779. data/samples/sampler/undo.xpm +58 -0
  780. data/samples/sampler.rb +401 -0
  781. data/samples/splash/mobile.xpm +1835 -0
  782. data/samples/splash/splash.png +0 -0
  783. data/samples/splash/splash.rb +164 -0
  784. data/samples/splash/tn_splash.png +0 -0
  785. data/samples/text/document-open.png +0 -0
  786. data/samples/text/document-save.png +0 -0
  787. data/samples/text/edit-copy.png +0 -0
  788. data/samples/text/edit-cut.png +0 -0
  789. data/samples/text/edit-paste.png +0 -0
  790. data/samples/text/edit-redo.png +0 -0
  791. data/samples/text/edit-undo.png +0 -0
  792. data/samples/text/format-text-bold.png +0 -0
  793. data/samples/text/format-text-italic.png +0 -0
  794. data/samples/text/format-text-underline.png +0 -0
  795. data/samples/text/mondrian.ico +0 -0
  796. data/samples/text/mondrian.xpm +44 -0
  797. data/samples/text/preferences-desktop-font.png +0 -0
  798. data/samples/text/rich_textctrl.rb +326 -0
  799. data/samples/text/scintilla.rb +179 -0
  800. data/samples/text/textctrl.rb +124 -0
  801. data/samples/text/tn_rich_textctrl.png +0 -0
  802. data/samples/text/tn_scintilla.png +0 -0
  803. data/samples/text/tn_textctrl.png +0 -0
  804. data/samples/text/tn_unicode.png +0 -0
  805. data/samples/text/unicode.rb +238 -0
  806. data/samples/text/utf8.txt +15 -0
  807. data/samples/treectrl/checked.xpm +54 -0
  808. data/samples/treectrl/icon1.xpm +79 -0
  809. data/samples/treectrl/icon2.xpm +53 -0
  810. data/samples/treectrl/icon3.xpm +79 -0
  811. data/samples/treectrl/icon4.xpm +43 -0
  812. data/samples/treectrl/icon5.xpm +79 -0
  813. data/samples/treectrl/state1.xpm +145 -0
  814. data/samples/treectrl/state2.xpm +144 -0
  815. data/samples/treectrl/state3.xpm +142 -0
  816. data/samples/treectrl/state4.xpm +145 -0
  817. data/samples/treectrl/state5.xpm +85 -0
  818. data/samples/treectrl/tn_treectrl.png +0 -0
  819. data/samples/treectrl/treectrl.rb +1720 -0
  820. data/samples/treectrl/unchecked.xpm +30 -0
  821. data/samples/xrc/custom_dialog.xrc +46 -0
  822. data/samples/xrc/custom_xrc_sample.rb +84 -0
  823. data/samples/xrc/samples.xrc +46 -0
  824. data/samples/xrc/tn_xrc_sample.png +0 -0
  825. data/samples/xrc/xrc_sample.rb +86 -0
  826. data/tests/test_basic.rb +20 -0
  827. data/tests/test_clipboard.rb +241 -0
  828. data/tests/test_dialog.rb +28 -0
  829. data/tests/test_event_handling.rb +103 -0
  830. data/tests/test_events.rb +45 -0
  831. data/tests/test_geometry.rb +141 -0
  832. data/tests/test_intl.rb +107 -0
  833. data/tests/test_item_data.rb +120 -0
  834. data/tests/test_variant.rb +151 -0
  835. data/tests/testapp.rb +40 -0
  836. data/tests/testapp_noframe.rb +28 -0
  837. metadata +928 -0
data/lib/wx/doc/dc.rb ADDED
@@ -0,0 +1,49 @@
1
+
2
+ class Wx::DC
3
+
4
+ # Provides similar functionality like wxDCBrushChanger setting the given brush as the active
5
+ # brush for the DC for the duration of the block execution restoring the previous brush afterwards.
6
+ # @param [Wx::Brush] brush new brush to use during block execution
7
+ # @return [void]
8
+ # @yieldparam [Wx::DC] dc the DC (self)
9
+ def with_brush(brush) end
10
+
11
+ # Provides similar functionality like wxDCPenChanger setting the given pen as the active
12
+ # pen for the DC for the duration of the block execution restoring the previous pen afterwards.
13
+ # @param [Wx::Pen] pen new pen to use during block execution
14
+ # @return [void]
15
+ # @yieldparam [Wx::DC] dc the DC (self)
16
+ def with_pen(pen) end
17
+
18
+ # Provides similar functionality like wxDCFontChanger setting the given font as the active
19
+ # font for the DC for the duration of the block execution restoring the previous font afterwards.
20
+ # @param [Wx::Font] font new font to use during block execution
21
+ # @return [void]
22
+ # @yieldparam [Wx::DC] dc the DC (self)
23
+ def with_font(font) end
24
+
25
+ # Provides similar functionality like wxDCTextColourChanger setting the given colour as the active
26
+ # text foreground colour for the DC for the duration of the block execution restoring the previous colour afterwards.
27
+ # @param [Wx::Colour] clr new colour to use during block execution
28
+ # @return [void]
29
+ # @yieldparam [Wx::DC] dc the DC (self)
30
+ def with_text_foreground(clr) end
31
+ alias :with_text_fg :with_text_foreground
32
+
33
+ # Provides similar functionality like wxDCTextBgColourChanger setting the given colour as the active
34
+ # text background colour for the DC for the duration of the block execution restoring the previous colour afterwards.
35
+ # @param [Wx::Colour] clr new colour to use during block execution
36
+ # @return [void]
37
+ # @yieldparam [Wx::DC] dc the DC (self)
38
+ def with_text_background(clr) end
39
+ alias :with_text_bg :with_text_background
40
+
41
+ # Provides similar functionality like wxDCTextBgModeChanger setting the given mode as the active
42
+ # background mode for the DC for the duration of the block execution restoring the previous mode afterwards.
43
+ # @param [Integer] mode new mode to use during block execution
44
+ # @return [void]
45
+ # @yieldparam [Wx::DC] dc the DC (self)
46
+ def with_background_mode(mode) end
47
+ alias :with_bg_mode :with_background_mode
48
+
49
+ end
@@ -0,0 +1,66 @@
1
+ ###
2
+ # wxRuby3 Enum class
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+
7
+ module Wx
8
+
9
+ # Base class for typed enums.
10
+ # Derives from Numeric and behaves as such in math operations but provides
11
+ # type safety for arguments requiring the specific enum class.
12
+ class Enum < Numeric
13
+
14
+ # Initialize a new enum value.
15
+ # @param [Integer] val enum integer value
16
+ def initialize(val)end
17
+
18
+ # Coerces enum value to be compatible with other if possible. Raises TypeError if not compatible.
19
+ # @param [Numeric] other numeric value
20
+ # @return [Array<Integer, Integer>] the integer equivalences of other and enum value
21
+ def coerce(other) end
22
+
23
+ # Returns true.
24
+ def integer?; end
25
+
26
+ # Returns false.
27
+ def real?; end
28
+
29
+ # Redirects to the @value member attribute for any missing methods.
30
+ def method_missing(sym, *args) end
31
+
32
+ # Checks type and value equality.
33
+ # @param [Object] o the object to compare
34
+ # @return [true,false] true if o is instance of same enum class as self **and** integer values are equal; false otherwise
35
+ def eql?(o) end
36
+
37
+ # Compares integer values if possible. Raises ArgumentError if not compatible
38
+ # @param [Enum,Numeric] o enum or numeric object to compare.
39
+ # @return [-1,0,1]
40
+ def <=>(o) end
41
+
42
+ # Return next integer value from enum's value.
43
+ # @return [Integer] next integer value
44
+ def succ; end
45
+
46
+ # Return string representation.
47
+ def inspect; end
48
+
49
+ # Return integer value of enum
50
+ def to_int; end
51
+ alias :to_i :to_int
52
+
53
+ # Create a new class and associated enum values.
54
+ # @param [String,Symbol] name name of new enum class
55
+ # @param [Hash] enum_values hash with enum value name and enum integer value pairs
56
+ # @return [Class] new enum class
57
+ def self.create(name, enum_values) end
58
+
59
+ # Returns enum class matching name or nil.
60
+ # @param [String,Symbol] name name of enum class
61
+ # @return [Class,nil] enum class
62
+ def self.[](name) end
63
+
64
+ end
65
+
66
+ end
@@ -0,0 +1,84 @@
1
+ # Additional event handler methods documentation stubs.
2
+
3
+
4
+ class Wx::EvtHandler
5
+
6
+ # Public method to register the mapping of a custom event type
7
+ # +konstant+ (which should be a unique integer; one will be created if
8
+ # not supplied) to a custom event class +klass+. If +meth+ and +arity+
9
+ # are given, a convenience evt_handler method called +meth+ will be
10
+ # created, which accepts +arity+ arguments (specify both or neither).
11
+ # @param klass [Class] event class
12
+ # @param konstant [Integer] unique event type id (if nil a unique value will be autogenerated)
13
+ # @param meth [String,Symbol] optional event handler method name
14
+ # @param arity [Integer] event handler method arity (should be 0, 1 or 2 if not nil)
15
+ # @return [Integer] unique event type id
16
+ def self.register_class(klass, konstant = nil, meth = nil, arity = nil) end
17
+
18
+ def connect(first_id, last_id, evt_type, handler) end
19
+
20
+ def disconnect(first_id, last_id, evt_spec) end
21
+
22
+ # Processes an event, searching event tables and calling zero or more suitable event handler function(s).
23
+ #
24
+ # Normally, your application would not call this function: it is called in the wxWidgets implementation to
25
+ # dispatch incoming user interface events to the framework (and application).
26
+ #
27
+ # However, you might need to call it if implementing new functionality (such as a new control) where you
28
+ # define new event types, as opposed to allowing the user to override virtual functions.
29
+ #
30
+ # In wxRuby this method can not be effectively overridden.
31
+ # In order to override default event processing define a try_before(event) or try_after(event) method
32
+ # as member of a derived EvtHandler class.
33
+ #
34
+ # The normal order of event table searching is as follows:
35
+ #
36
+ # 1. {Wx::App#filter_event} is called. If it returns anything but -1 (default) the processing stops here.
37
+ # 2. #try_before (if it exists, otherwise the C++ default implementation) is called (this is where {Wx::Validator} are taken into account for {Wx::Window} objects). If this returns true, the function exits.
38
+ # 3. If the object is disabled (via a call to {Wx::EvtHandler#set_evt_handler_enabled}) the function skips to step (7).
39
+ # 4. Dynamic event table of the handlers bound using Bind<>() is searched in the most-recently-bound to the most-early-bound order. If a handler is found, it is executed and the function returns true unless the handler used {Wx::Event#skip} to indicate that it didn't handle the event in which case the search continues.
40
+ # 5. Static events table of the handlers bound using event table macros is searched for this event handler in the order of appearance of event table macros in the source code. If this fails, the base class event table is tried, and so on until no more tables exist or an appropriate function was found. If a handler is found, the same logic as in the previous step applies.
41
+ # 6. The search is applied down the entire chain of event handlers (usually the chain has a length of one). This chain can be formed using {Wx::EvtHandler#set_next_handler}
42
+ # Note that in the case of Wx::Window you can build a stack of event handlers (see {Wx::Window#push_event_handler} for more info). If any of the handlers of the chain return true, the function exits.
43
+ # 7. #try_after (if it exists, otherwise the C++ default implementation) is called: for the {Wx::Window} object this may propagate the event to the window parent (recursively). If the event is still not processed, {#process_event} on the {Wx::THE_APP} object is called as the last step.
44
+ #
45
+ # Notice that steps (2)-(6) are performed in {#process_event_locally} which is called by this function.
46
+ #
47
+ # @param event [Wx::Event] Event to process.
48
+ # @return [true,false] true if event has been processed
49
+ def process_event(event) end
50
+
51
+ # Process a command, supplying the window identifier, command event identifier, and member function or proc.
52
+ # @param [Integer] id window identifier
53
+ # @param [Integer] evt_id event type identifier
54
+ # @param [String,Symbol,Method,Proc] meth (name of) method or event handling proc
55
+ # @yieldparam [Wx::CommandEvent] event event to handle
56
+ def evt_command(id, evt_id, meth = nil, &block) end
57
+
58
+ # Process a command for a range of window identifiers, supplying the minimum and maximum window identifiers, command event identifier, and member function or proc.
59
+ # @param [Integer] id1 minimum window identifier
60
+ # @param [Integer] id2 maximum window identifier
61
+ # @param [Integer] evt_id event type identifier
62
+ # @param [String,Symbol,Method,Proc] meth (name of) method or event handling proc
63
+ # @yieldparam [Wx::CommandEvent] event event to handle
64
+ def evt_command_range(id1, id2, evt_id, meth = nil, &block) end
65
+
66
+ # Convenience evt_handler to listen to all mouse events.
67
+ # @yieldparam [Wx::MouseEvent] event event to handle
68
+ def evt_mouse_events(&block) end
69
+
70
+ # Convenience evt handler to listen to all scrollwin events.
71
+ # @yieldparam [Wx::ScrollWinEvent] event event to handle
72
+ def evt_scrollwin(&block) end
73
+
74
+ # Processes Wx::WindowDestroyEvent events.
75
+ # @yieldparam [Wx::WindowDestroyEvent] event event to handle
76
+ def evt_window_destroy(&block) end
77
+
78
+ # Schedule a call for asynchronous execution (at idle time).
79
+ # @param meth [Symbol,String,Method,Proc] (name of) method or proc to call
80
+ # @param args [Array<Object>] optional arguments to pass to the call
81
+ # @return [void]
82
+ # @yield [*args] optional arguments
83
+ def call_after(meth = nil, *args, &block) end
84
+ end
@@ -0,0 +1,154 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 0. Overview of wxRuby
4
+ -->
5
+
6
+ # 0. Overview of wxRuby
7
+
8
+ ## What is wxRuby?
9
+
10
+ wxRuby3 is a cross-platform GUI library for Ruby, based on the popular [wxWidgets](https://wxwidgets.org)
11
+ cross platform GUI toolkit for C++. It uses native widgets wherever possible, providing
12
+ the correct look, feel and behaviour to GUI applications on Windows, OS
13
+ X and Linux/GTK. wxRuby aims to provide a comprehensive solution to
14
+ developing professional-standard desktop applications in Ruby.
15
+
16
+ Like Ruby and wxWidgets, wxRuby is Open Source, which means that it is free for anyone to use and the source code
17
+ is available for anyone to look at and use in any way they like. Also, anyone can contribute (tested) fixes, additions
18
+ and enhancements to the project.
19
+
20
+ Like wxWidgets wxRuby is a cross platform toolkit. This means that the same program will run on multiple platforms
21
+ without modification. Currently Supported platforms are Microsoft Windows and Linux or other
22
+ unix-like systems with GTK2 or GTK3 libraries. As wxWidgets also has stable releases for Mac OSX and Linux QT platforms
23
+ it should not be to hard to support these. Contributions to achieve this are appreciated.
24
+
25
+ Since the programming language is Ruby, wxRuby programs are simple and easy to write and understand. To accomplish the
26
+ full Ruby experience wxRuby has not ported the wxWidgets API 1 on 1 to Ruby but has made an effort to make the wxRuby
27
+ API typically Ruby-ish. This means all method signatures (names, arguments) have been transformed to conform to common
28
+ Ruby naming rules as well as other Ruby programming practices. Also does wxRuby introduce iterators in favor of getters
29
+ returning arrays or lists.
30
+ Check out the samples and the documentation for details.
31
+
32
+ ## What is wxRuby3?
33
+
34
+ The wxRuby3 project is a new, rebooted, implementation of wxRuby (as compared to wxRuby2 and earlier versions) with the
35
+ clear intent to make this implementation better maintainable and extensible.
36
+
37
+ To this end wxRuby3 adopted much of the approach of the wxPython Phoenix project in that the wxRuby API is generated
38
+ from the wxWidgets XML interface definitions. Unlike the Phoenix project however, wxRuby does not use a home-grown
39
+ interface code generator but rather still relies on SWIG for that (with Ruby tooling to configure and post-process).
40
+ The wxRuby generation process more or less conforms to:
41
+
42
+ 1. build wxWidgets interface XML
43
+ 2. parse interface XML
44
+ 3. generate SWIG interface definitions
45
+ 4. generate Ruby extension code with SWIG
46
+ 5. post-process Ruby extension code
47
+
48
+ As the wxRuby tooling is already parsing the full wxWidgets interface specs (from which wxWidgets generates it's own
49
+ reference documentation) it also uses the parsed information to generate matching reference documentation for the
50
+ wxRuby API. This documentation is not (yet) perfect but should go a long way in helping people using wxRuby to build
51
+ GUI applications.
52
+
53
+ The wxRuby3 API is largely compatible with the earlier wxRuby incarnations but not 100% mostly due to more
54
+ modularization and more explicit typing of (especially) enums. Also wxRuby3 exclusively targets a lot more modern
55
+ versions of wxWidgets (>= 3.2) and Ruby (>= 2.5) so there are some shifts from that as well. All in all though,
56
+ people that once took a stab at looking at wxRuby(2) should not have much problems getting up to speed again.
57
+
58
+ ## Quick start
59
+
60
+ To create an application with wxRuby you need to require the wxRuby libraries:
61
+
62
+ ```ruby
63
+ require 'wx'
64
+ ```
65
+
66
+ Next would be the application code and a main entry point. With wxRuby (as with wxWidgets) the entry
67
+ point is mostly just a simple call to start the applications event loop (as we're talking about event
68
+ based GUI applications here).
69
+ In wxRuby the Wx::App class provides some typically Ruby-style magic to make this as easy as possible.
70
+
71
+ Using this the simplest Hello World application could be:
72
+
73
+ ```ruby
74
+ require 'wx'
75
+ Wx::App.run { puts 'Hello world!' }
76
+ ```
77
+
78
+ As you can there is no obligation to create an instance of the Wx::App class in wxRuby for
79
+ (admittedly extremely) simple applications. Calling the #run class method with a block will suffice.<br>
80
+ The class method will create an instance of the generic Wx::App class under the hood and use the
81
+ provided block as the #on_init callback. As the code inside the block returns a false-type value (#puts
82
+ returns `nil`) the application will terminate immediately after writing "Hello world!" to standard
83
+ output (actually not even starting the event loop at all).
84
+
85
+ Of course this is not truly a GUI application so let's elaborate a little to make the GUI element
86
+ more real.
87
+
88
+ ```ruby
89
+ require 'wx'
90
+ Wx::App.run { Wx::Frame.new(nil, title: 'Hello World!').show }
91
+ ```
92
+
93
+ Executing this will create a generic Frame instance in the on_init callback of the application
94
+ and show the frame. As #show returns a true-type when successful the event loop will actually be
95
+ started and keep the application running until the frame is closed.
96
+
97
+ ## The application class
98
+
99
+ For more complex applications the approach demonstrated above will quickly become insufficient. In those cases
100
+ creating a specialized derived App class is the better option.
101
+ This provides the possibility (as with all Ruby classes) to override the constructor (#initialize) for
102
+ custom initialization, attribute definitions and create customized #on_init and/or #on_exit methods like
103
+ this:
104
+
105
+ ```ruby
106
+ require 'wx'
107
+
108
+ class MyApp < Wx::App
109
+ def initialize
110
+ super
111
+ @frame = nil
112
+ end
113
+ attr_reader :frame
114
+
115
+ def on_init
116
+ @frame = Wx::Frame.new(nil, title: 'Hello World!')
117
+ @frame.show
118
+ end
119
+
120
+ def on_exit
121
+ puts 'Exiting.'
122
+ end
123
+ end
124
+ ```
125
+
126
+ When creating #on_init/#on_exit methods it is important to understand that those would not be overrides (as is the case
127
+ with wxWidgets itself). The base Wx::App class actually does not define these methods so it's also not needed (even not possible)
128
+ to call `super` in the implementation. The wxRuby application class implementation will call the wxWidget OnInit base implementation
129
+ itself and after successful completion check for the existence of an #on_init method (which could also be 'automagicallly'
130
+ created from a block passed to #run) and call that if available or terminate the application if not. For the
131
+ exit sequence to executions are similar but reversed (first a possible #on_exit method and than the wxWidgets base OnExit).
132
+
133
+ What remains though is that for a derived application class it is still not necessary to explicitly create a class instance.
134
+ Simply calling the #run class method will suffice.
135
+
136
+ ```ruby
137
+ MyApp.run
138
+ ```
139
+
140
+ The current application instance (as long as the application is active) can always be retrieved by
141
+ calling `Wx.get_app`.
142
+
143
+ ## wxRuby modules
144
+
145
+ The toplevel module of the wxRuby library is the `Wx` module and when using `require 'wx'` to load the wxRuby library
146
+ **all** constants and classes are loaded and can be accessed from that scope like `Wx::Frame` or `Wx::RichTextCtrl`
147
+ like previous versions of wxRuby supported.
148
+
149
+ With the current wxRuby library however a more modular approach has been used similar to wxWidgets itself which
150
+ distributes implementations over various sub-modules. These sub-modules can be loaded separately to provide more control.
151
+ The core module still provides the toplevel `Wx` namespace and all classes and constants declared in that namespace.
152
+ All other modules add to that (and **all** require the core module).
153
+
154
+ See [here](packages.md) for more details on wxRuby sub-modules.
@@ -0,0 +1,179 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 1. wxRuby Modules
4
+ -->
5
+
6
+ # 1. wxRuby Modules
7
+
8
+ ## Introduction
9
+
10
+ Previous wxRuby implementations provided a single toplevel module approach for the wxRuby API with a single loading
11
+ option. Including `require 'wx'` in any application would load the entire wxRuby library and make all classes, module
12
+ methods and constants available under the `Wx` toplevel module.
13
+
14
+ The wxRuby3 project however implements a more modular approach similar to wxWidgets itself which distributes
15
+ implementations over various sub-modules. These sub-modules can be loaded separately to provide more control.
16
+ The core module still provides the toplevel `Wx` namespace and all classes and constants declared in that namespace.
17
+ All other modules add to that (and **all** require the core module).
18
+
19
+ ## Loading and Naming scopes
20
+
21
+ The *old* **all-in-one** approach in still supported with the wxRuby3 project. Using
22
+
23
+ ```ruby
24
+ require 'wx'
25
+ ```
26
+
27
+ will load all wxRuby API modules and make all classes and constants available from the `Wx` toplevel module. This
28
+ *global* naming scope approach does **not** extend to class or module methods (including dialog *functors*; see
29
+ [here](03_dialogs.md) for more information).
30
+
31
+ The *new* sub-module approach however allows for loading only part(s) of the wxRuby library like:
32
+
33
+ ```ruby
34
+ require 'wx/core' # load wxRuby core Wx module
35
+ require 'wx/grid' # load wxRuby Wx::GRID module - provides Grid control
36
+ require 'wx/rtc' # load wxRuby Wx::RTC module - provides RichText control
37
+ ```
38
+
39
+ However, when loading the library like this scoping rules change by default. Specifically the constants and classes
40
+ from the loaded sub-modules will **not** be accessible from the `Wx` scope anymore (like `Wx::Grid`) but must instead be
41
+ explicitly scoped from the sub-module (like `Wx::GRID::Grid`).
42
+
43
+ It is possible to revert the 'global scope' resolution behaviour by setting the toplevel constant `WX_GLOBAL_CONSTANTS` to
44
+ `true` before the require statements like:
45
+
46
+ ```ruby
47
+ WX_GLOBAL_CONSTANTS=true
48
+ require 'wx/core' # load wxRuby core Wx module
49
+ require 'wx/grid' # load wxRuby Wx::GRID module - provides Grid control
50
+ require 'wx/rtc' # load wxRuby Wx::RTC module - provides RichText control
51
+ ```
52
+
53
+ ## Modules
54
+
55
+ Currently the following modules have been implemented.
56
+
57
+ ### Core
58
+
59
+ The core wxRuby package providing the toplevel `Wx` module.
60
+ This package includes basic classes like:
61
+
62
+ - `Wx::Object`
63
+ - `Wx::EvtHandler`
64
+ - `Wx::Event`
65
+ - `Wx::CommandEvent`
66
+ - `Wx::App`
67
+ - `Wx::Window`
68
+ - `Wx::NonOwnedWindow`
69
+ - `Wx::ToplevelWindow`
70
+ - `Wx::Frame`
71
+ - `Wx::Dialog`
72
+
73
+ as well as most common window classes, control/widget classes, event classes, constant and enum definitions
74
+ and global functions not part of any of the other packages.
75
+
76
+ ### AUI - Advanced User Interface controls and related classes
77
+
78
+ The wxRuby AUI package providing the `Wx::AUI` module.
79
+ This package includes all classes, constants and enum definitions that are considered part of the
80
+ wxWidgets AUI framework like:
81
+
82
+ - `Wx::AUI::AuiManager`
83
+ - `Wx::AUI::AuiMDIParentFrame`
84
+ - `Wx::AUI::AuiMDIChildFrame`
85
+ - `Wx::AUI::AuiMDIClientWindow`
86
+ - etc
87
+
88
+ ### GRID - Grid control and related classes
89
+
90
+ The wxRuby GRID package providing the `Wx::GRID` module.
91
+ This package includes all classes, constants and enum definitions that are associated with the
92
+ wxWidgets wxGrid control like:
93
+
94
+ - `Wx::GRID::Grid`
95
+ - `Wx::GRID::GridTableBase`
96
+ - `Wx::GRID::GridCellEditor`
97
+ - `Wx::GRID::GridCellRenderer`
98
+ - `Wx::GRID::GridEvent`
99
+ - etc
100
+
101
+ ### HTML - Html framework classes
102
+
103
+ The wxRuby HTML package providing the `Wx::HTML` module.
104
+ This package includes all classes, constants and enum definitions that are considered part of the
105
+ wxWidgets Html framework like:
106
+
107
+ - `Wx::HTML::HtmlWindow`
108
+ - `Wx::HTML::HtmlHelpWindow`
109
+ - `Wx::HTML::HtmlHelpFrame`
110
+ - `Wx::HTML::HtmlHelpController`
111
+ - etc
112
+
113
+ ### PG - PropertyGrid control and related classes
114
+
115
+ The wxRuby PG package providing the `Wx::PG` module.
116
+ This package includes all classes, constants and enum definitions that are associated with the
117
+ wxWidgets wxPropertyGrid control like:
118
+
119
+ - `Wx::PG::PropertyGrid`
120
+ - `Wx::PG::PropertyGridManager`
121
+ - `Wx::PG::PGCell`
122
+ - `Wx::PG::PGProperty`
123
+ - `Wx::PG::PropertyGridEvent`
124
+ - etc
125
+
126
+ ### PRT - Printing framework classes
127
+
128
+ The wxRuby PRT package providing the `Wx::PRT` module.
129
+ This package includes all classes, constants and enum definitions that are considered part of the
130
+ wxWidgets Printing framework like:
131
+
132
+ - `Wx::PRT::PreviewFrame`
133
+ - `Wx::PRT::Printer`
134
+ - `Wx::PRT::PrinterDC`
135
+ - `Wx::PRT::PrintDialog`
136
+ - etc
137
+
138
+ ### RBN - Ribbon framework classes
139
+
140
+ The wxRuby RBN package providing the `Wx::RBN` module.
141
+ This package includes all classes, constants and enum definitions that are considered part of the
142
+ wxWidgets Ribbon framework like:
143
+
144
+ - `Wx::RBN::RibbonControl`
145
+ - `Wx::RBN::RibbonGallery`
146
+ - `Wx::RBN::RibbonPanel`
147
+ - `Wx::RBN::RibbonPage`
148
+ - `Wx::RBN::RibbonBar`
149
+ - etc
150
+
151
+ ### RTC - RichText control and related classes
152
+
153
+ The wxRuby RTC package providing the `Wx::RTC` module.
154
+ This package includes all classes, constants and enum definitions that are associated with the
155
+ wxWidgets wxRichTextCtrl control like:
156
+
157
+ - `Wx::RTC::RichTextCtrl`
158
+ - `Wx::RTC::RichTextEvent`
159
+ - `Wx::RTC::RichTextBuffer`
160
+ - etc
161
+
162
+ ### STC - StyledText control and related classes
163
+
164
+ The wxRuby STC package providing the `Wx::STC` module.
165
+ This package includes all classes, constants and enum definitions that are associated with the
166
+ wxWidgets wxStyledTextCtrl control (Scintilla integration) like:
167
+
168
+ - `Wx::STC::StyledTextCtrl`
169
+ - `Wx::STC::StyledTextEvent`
170
+
171
+ ## Feature dependencies
172
+
173
+ Availability of wxRuby packages is controlled by the wxWidget feature switches. The default build options will
174
+ include all platform supported features but in case of building wxRuby for customized wxWidgets builds the wxRuby3
175
+ build procedures will take the wxWidgets settings into account.
176
+
177
+ If for instance wxWidgets was built without Html support (using the configure `--disable-html` switch) the wxRuby
178
+ HTML package will not be available as well.
179
+ This behavior is controlled by the `wxUSE_xxx` macros that wxRuby extracts from the wxWidgets `wx/setup.h` file.
@@ -0,0 +1,116 @@
1
+ <!--
2
+ # @markup markdown
3
+ # @title 2. wxRuby Life Cycles
4
+ -->
5
+
6
+ # 2. wxRuby Life Cycles
7
+
8
+ ## Introduction
9
+
10
+ Managing the life cycles of native objects in Ruby extension libraries is tricky business because of the disparity
11
+ between common C++ dynamic memory management and the GC management scheme of the Ruby language and this certainly applies
12
+ to an event based environment like the wxRuby extension for wxWidgets.
13
+ That said, the wxRuby library should provide you with a fairly worry-free API in that respect.
14
+
15
+ The wxRuby extension manages to provide water-tight GC management for just about all mapped wxWidget objects.
16
+
17
+ There are just a few, fairly specific, things to take notice of.
18
+
19
+ ## Application instance
20
+
21
+ Any wxWidgets application typically creates a single application instance and the same goes for wxRuby applications.
22
+ We already saw [here](00_starting.md) how to start a wxRuby application. Important to note is that any reference to the
23
+ (global) application instance will ever only be valid as long as the application is still active.<br>
24
+ In essence this means the reference is valid from the moment the constructor (`#initialize`) is called to the moment
25
+ any available `#on_exit` method has finished.
26
+
27
+ There are some caveats to that however.
28
+
29
+ 1. Although the application instance is valid in the constructor, the wxWidgets
30
+ framework will only be fully initialized the moment the `#on_init` method starts. This means that all kinds of methods
31
+ requiring initialized GUI resources (like window creation) will fail if called before that moment.
32
+
33
+ 2. The global application instance returned by `Wx.get_app` will only be set from the moment the `#on_init` method
34
+ starts to the moment the `#on_exit` method finishes. Outside that timespan the method will return `nil`.
35
+
36
+ Also be careful with storing your own application instance variables. Code like
37
+
38
+ ```ruby
39
+ class MyApp < Wx::App
40
+ def initialize
41
+ super
42
+ # ...
43
+ end
44
+ def on_init
45
+ # ...
46
+ end
47
+ end
48
+ $app = MyApp.new
49
+ $app.run
50
+ ```
51
+
52
+ is entirely valid but for the fact that you **should** remember that after the `#run` method returns the `$app` variable
53
+ does **not** reference a valid application instance anymore. Calling methods on that instance may result in unexpected
54
+ behavior.<br>
55
+ It is actually easier and safer to rewrite this code as:
56
+
57
+ ```ruby
58
+ class MyApp < Wx::App
59
+ def initialize
60
+ super
61
+ # ...
62
+ end
63
+ def on_init
64
+ # ...
65
+ end
66
+ end
67
+ MyApp.run # or MyApp.new.run
68
+ ```
69
+
70
+ This way there is no reference to accidentally use after `#run` returns and `Wx.get_app` will return `nil` after that
71
+ moment.
72
+
73
+ ## Framework (re-)initialization
74
+
75
+ As mentioned above the wxWidgets GUI framework resources will only be fully initialized after the `#on_init` method
76
+ starts. Likewise the framework resources will be de-initialized (deleted) after `#on_exit` method ends which means that
77
+ your application should not attempt to access any of these resources (windows, fonts, colours etc.) after that moment.
78
+
79
+ Also, largely because of the way the wxWidgets framework is designed but also because of that way this meshes with Ruby
80
+ GC, there is no safe way to re-initialize the framework after an application instance ends it run. This means you
81
+ **cannot** safely attempt to start another application instance after a previous (first) one has ended.
82
+
83
+ ## Windows
84
+
85
+ Window instances (and it's derivatives) are fully managed by the wxWidget framework and cannot (are not) managed by
86
+ Ruby GC handling. This means on the one hand that a window instances life time is not controlled by any reference
87
+ a Ruby variable may hold and on the other hand that the Ruby object linked to that native window object is kept alive
88
+ (marked in GC) as long as the window instance is alive.<br>
89
+ Generally speaking window lifetimes are dependent on the (toplevel) window (or it's parent) being closed. In case of a
90
+ toplevel window this result in automatic destruction of the window and all it's child windows (controls). There are
91
+ however exceptions to this where explicit calling of a window's `#destroy` method is required to prevent memory leaks
92
+ (when a window is not a child window but also not a toplevel window for example or in case of dialogs; see
93
+ [here](03_dialogs.md)). Please check out the wxWidgets documentation for more detailed information.
94
+
95
+ This has several consequences you need to be aware of.
96
+
97
+ First of, in cases where you keep a reference to any window (control) instance in a local or instance variable in Ruby
98
+ (which is fairly common practice) you need to be aware that the reference is only valid as long as the window has not
99
+ been destroyed. In most cases this will not be an issue as most references are kept as instance variables of parent
100
+ windows for child windows where the instance variables will only ever be used as long the parent window is alive itself.
101
+ In other circumstances you should take care to track the lifetime of the window that is referenced.
102
+
103
+ Secondly, as already indicated above not all window instances will be automatically destroyed. It is for example fairly
104
+ common in more complex applications to create and show other windows as response to events triggered in the toplevel
105
+ window. These windows will not (and should not) be automatically designated as toplevel window but they are also not
106
+ owned (i.e. not child windows). Closing these windows will not automatically destroy them (which is a good thing as
107
+ these are often re-shown after renewed events from the toplevel window) and will also not be automatically destroyed
108
+ when any parent window is destroyed. This means they pose a threat for potential memory leaks.<br>
109
+ In case it concerns a fairly simple application which creates one or two of these sub-windows and needs to keep these
110
+ around for most or all of the lifetime of the application this is not really an issue as the window will be cleaned up
111
+ at application exit eventually. If however it concerns a more complex application which potentially could create a large
112
+ number of these sub windows (probably each only used for limited purposes) it would be advisable to track instances and
113
+ destroy these on a regular basis when not used (closed) possibly re-creating them as needed.
114
+
115
+ Dialogs are special cases of toplevel windows which are not automatically destroyed when closed. The wxRuby library
116
+ therefor provides special support to ease handling the destruction of these. See [here](03_dialogs.md) for more details.