wxruby3 0.9.0.pre.beta.8

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 (754) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +13 -0
  3. data/CREDITS.md +52 -0
  4. data/LICENSE +21 -0
  5. data/README.md +139 -0
  6. data/bin/wxruby +9 -0
  7. data/ext/mkrf_conf_srcgem.rb +64 -0
  8. data/ext/wxruby3/include/wxruby-runtime.h +104 -0
  9. data/ext/wxruby3/swig/RubyStockObjects.i +62 -0
  10. data/ext/wxruby3/swig/common.i +110 -0
  11. data/ext/wxruby3/swig/custom/rubyprimtypes.swg +225 -0
  12. data/ext/wxruby3/swig/custom/rubytracking.swg +60 -0
  13. data/ext/wxruby3/swig/custom/swig3/rubyrun.swg +456 -0
  14. data/ext/wxruby3/swig/custom/swig4/rubyrun.swg +459 -0
  15. data/ext/wxruby3/swig/mark_free_impl.i +377 -0
  16. data/ext/wxruby3/swig/memory_management.i +142 -0
  17. data/ext/wxruby3/swig/typedefs.i +27 -0
  18. data/ext/wxruby3/swig/wx.i +282 -0
  19. data/ext/wxruby3/swig/wx.rc +19 -0
  20. data/ext/wxruby3/wxruby.ico +0 -0
  21. data/lib/wx/accessors.rb +63 -0
  22. data/lib/wx/aui/auimanager.rb +17 -0
  23. data/lib/wx/aui/auinotebook.rb +9 -0
  24. data/lib/wx/aui/require.rb +9 -0
  25. data/lib/wx/aui.rb +14 -0
  26. data/lib/wx/core/acceleratortable.rb +28 -0
  27. data/lib/wx/core/animation.rb +18 -0
  28. data/lib/wx/core/app.rb +89 -0
  29. data/lib/wx/core/artprovider.rb +31 -0
  30. data/lib/wx/core/bitmap.rb +59 -0
  31. data/lib/wx/core/busycursor.rb +12 -0
  32. data/lib/wx/core/choice.rb +4 -0
  33. data/lib/wx/core/choicedlg.rb +54 -0
  34. data/lib/wx/core/clientdc.rb +13 -0
  35. data/lib/wx/core/clipboard.rb +56 -0
  36. data/lib/wx/core/collapsible_pane.rb +12 -0
  37. data/lib/wx/core/colour.rb +34 -0
  38. data/lib/wx/core/combobox.rb +4 -0
  39. data/lib/wx/core/controlwithitems.rb +10 -0
  40. data/lib/wx/core/data_object.rb +10 -0
  41. data/lib/wx/core/dataformat.rb +26 -0
  42. data/lib/wx/core/dc.rb +68 -0
  43. data/lib/wx/core/dialog.rb +50 -0
  44. data/lib/wx/core/enum.rb +28 -0
  45. data/lib/wx/core/event.rb +16 -0
  46. data/lib/wx/core/evthandler.rb +253 -0
  47. data/lib/wx/core/ext.rb +58 -0
  48. data/lib/wx/core/font.rb +22 -0
  49. data/lib/wx/core/functions.rb +44 -0
  50. data/lib/wx/core/gauge.rb +12 -0
  51. data/lib/wx/core/genericdirctrl.rb +36 -0
  52. data/lib/wx/core/hboxsizer.rb +6 -0
  53. data/lib/wx/core/helpcontroller.rb +5 -0
  54. data/lib/wx/core/helpcontrollerhelpprovider.rb +24 -0
  55. data/lib/wx/core/helpprovider.rb +15 -0
  56. data/lib/wx/core/icon.rb +40 -0
  57. data/lib/wx/core/image.rb +68 -0
  58. data/lib/wx/core/imagelist.rb +3 -0
  59. data/lib/wx/core/listbox.rb +4 -0
  60. data/lib/wx/core/listctrl.rb +33 -0
  61. data/lib/wx/core/locale.rb +73 -0
  62. data/lib/wx/core/log.rb +20 -0
  63. data/lib/wx/core/menu.rb +78 -0
  64. data/lib/wx/core/menu_bar.rb +20 -0
  65. data/lib/wx/core/menuitem.rb +7 -0
  66. data/lib/wx/core/notebook.rb +9 -0
  67. data/lib/wx/core/object.rb +14 -0
  68. data/lib/wx/core/pen_info.rb +11 -0
  69. data/lib/wx/core/platform_info.rb +13 -0
  70. data/lib/wx/core/point.rb +92 -0
  71. data/lib/wx/core/real_point.rb +92 -0
  72. data/lib/wx/core/rect.rb +57 -0
  73. data/lib/wx/core/simplehelpprovider.rb +38 -0
  74. data/lib/wx/core/size.rb +86 -0
  75. data/lib/wx/core/sizer.rb +43 -0
  76. data/lib/wx/core/splash_screen.rb +44 -0
  77. data/lib/wx/core/textctrl.rb +8 -0
  78. data/lib/wx/core/timer.rb +104 -0
  79. data/lib/wx/core/toolbar.rb +37 -0
  80. data/lib/wx/core/toolbartool.rb +4 -0
  81. data/lib/wx/core/treectrl.rb +46 -0
  82. data/lib/wx/core/validator.rb +8 -0
  83. data/lib/wx/core/variant.rb +62 -0
  84. data/lib/wx/core/vboxsizer.rb +6 -0
  85. data/lib/wx/core/window.rb +95 -0
  86. data/lib/wx/core/window_update_locker.rb +12 -0
  87. data/lib/wx/core/xmlresource.rb +56 -0
  88. data/lib/wx/core.rb +61 -0
  89. data/lib/wx/doc/aui/auimanager.rb +12 -0
  90. data/lib/wx/doc/aui/auinotebook.rb +9 -0
  91. data/lib/wx/doc/colour_dialog.rb +15 -0
  92. data/lib/wx/doc/core.rb +11 -0
  93. data/lib/wx/doc/dc.rb +49 -0
  94. data/lib/wx/doc/enum.rb +88 -0
  95. data/lib/wx/doc/evthandler.rb +87 -0
  96. data/lib/wx/doc/extra/00_starting.md +154 -0
  97. data/lib/wx/doc/extra/01_packages.md +179 -0
  98. data/lib/wx/doc/extra/02_lifecycles.md +116 -0
  99. data/lib/wx/doc/extra/03_dialogs.md +57 -0
  100. data/lib/wx/doc/extra/04_enums.md +143 -0
  101. data/lib/wx/doc/extra/05_event-handling.md +166 -0
  102. data/lib/wx/doc/extra/06_geometry.md +56 -0
  103. data/lib/wx/doc/extra/07_colour_and_font.md +52 -0
  104. data/lib/wx/doc/extra/08_extensions.md +144 -0
  105. data/lib/wx/doc/extra/09_exceptions.md +54 -0
  106. data/lib/wx/doc/functions.rb +221 -0
  107. data/lib/wx/doc/gdi_common.rb +181 -0
  108. data/lib/wx/doc/grid/grid.rb +20 -0
  109. data/lib/wx/doc/help_controller.rb +14 -0
  110. data/lib/wx/doc/html/html_help_controller.rb +8 -0
  111. data/lib/wx/doc/pg/events.rb +15 -0
  112. data/lib/wx/doc/pg/pg_property.rb +8 -0
  113. data/lib/wx/doc/pg/pgeditor.rb +21 -0
  114. data/lib/wx/doc/pg/property_grid.rb +48 -0
  115. data/lib/wx/doc/pg/property_grid_interface.rb +64 -0
  116. data/lib/wx/doc/prt/page_setup_dialog.rb +15 -0
  117. data/lib/wx/doc/prt/print_data.rb +9 -0
  118. data/lib/wx/doc/prt/print_dialog.rb +26 -0
  119. data/lib/wx/doc/prt/printer.rb +15 -0
  120. data/lib/wx/doc/rbn/ribbon_bar.rb +9 -0
  121. data/lib/wx/doc/rbn/ribbon_button_bar.rb +9 -0
  122. data/lib/wx/doc/rbn/ribbon_gallery.rb +9 -0
  123. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +9 -0
  124. data/lib/wx/doc/rtc/richtext_printing.rb +14 -0
  125. data/lib/wx/doc/screen_dc.rb +10 -0
  126. data/lib/wx/doc/stock_objects.rb +98 -0
  127. data/lib/wx/doc/stream.rb +38 -0
  128. data/lib/wx/doc/system_settings.rb +29 -0
  129. data/lib/wx/doc/treebook.rb +9 -0
  130. data/lib/wx/doc/variant.rb +163 -0
  131. data/lib/wx/doc/xml_resource.rb +19 -0
  132. data/lib/wx/global_const.rb +84 -0
  133. data/lib/wx/grid/grid.rb +7 -0
  134. data/lib/wx/grid/keyword_defs.rb +10 -0
  135. data/lib/wx/grid/require.rb +9 -0
  136. data/lib/wx/grid.rb +14 -0
  137. data/lib/wx/helpers.rb +65 -0
  138. data/lib/wx/html/htmlhelpcontroller.rb +6 -0
  139. data/lib/wx/html/htmlwindow.rb +19 -0
  140. data/lib/wx/html/keyword_defs.rb +22 -0
  141. data/lib/wx/html/require.rb +10 -0
  142. data/lib/wx/html.rb +15 -0
  143. data/lib/wx/keyword_ctors.rb +226 -0
  144. data/lib/wx/keyword_defs.rb +487 -0
  145. data/lib/wx/pg/events.rb +14 -0
  146. data/lib/wx/pg/keyword_defs.rb +15 -0
  147. data/lib/wx/pg/pg_editor.rb +13 -0
  148. data/lib/wx/pg/pg_properties.rb +24 -0
  149. data/lib/wx/pg/pg_property.rb +27 -0
  150. data/lib/wx/pg/property_grid.rb +71 -0
  151. data/lib/wx/pg/property_grid_interface.rb +46 -0
  152. data/lib/wx/pg/require.rb +12 -0
  153. data/lib/wx/pg.rb +14 -0
  154. data/lib/wx/prt/keyword_defs.rb +8 -0
  155. data/lib/wx/prt/page_setup_dialog.rb +15 -0
  156. data/lib/wx/prt/previewframe.rb +13 -0
  157. data/lib/wx/prt/require.rb +8 -0
  158. data/lib/wx/prt.rb +14 -0
  159. data/lib/wx/rbn/events.rb +4 -0
  160. data/lib/wx/rbn/keyword_defs.rb +43 -0
  161. data/lib/wx/rbn/require.rb +12 -0
  162. data/lib/wx/rbn/ribbon_art_provider.rb +10 -0
  163. data/lib/wx/rbn/ribbon_bar.rb +12 -0
  164. data/lib/wx/rbn/ribbon_button_bar.rb +26 -0
  165. data/lib/wx/rbn/ribbon_control.rb +25 -0
  166. data/lib/wx/rbn/ribbon_gallery.rb +26 -0
  167. data/lib/wx/rbn/ribbon_page.rb +15 -0
  168. data/lib/wx/rbn/ribbon_panel.rb +15 -0
  169. data/lib/wx/rbn/ribbon_tool_bar.rb +26 -0
  170. data/lib/wx/rbn.rb +14 -0
  171. data/lib/wx/rtc/ext.rb +15 -0
  172. data/lib/wx/rtc/keyword_defs.rb +17 -0
  173. data/lib/wx/rtc/require.rb +8 -0
  174. data/lib/wx/rtc.rb +15 -0
  175. data/lib/wx/stc/keyword_defs.rb +8 -0
  176. data/lib/wx/stc/require.rb +7 -0
  177. data/lib/wx/stc.rb +14 -0
  178. data/lib/wx/version.rb +3 -0
  179. data/lib/wx/wxruby/base.rb +87 -0
  180. data/lib/wx/wxruby/cmd/sampler.rb +68 -0
  181. data/lib/wx/wxruby/cmd/test.rb +27 -0
  182. data/lib/wx.rb +14 -0
  183. data/rakelib/build.rake +62 -0
  184. data/rakelib/build.rb +141 -0
  185. data/rakelib/config.rake +48 -0
  186. data/rakelib/configure.rb +131 -0
  187. data/rakelib/doc.rake +21 -0
  188. data/rakelib/doc.rb +35 -0
  189. data/rakelib/install.rake +30 -0
  190. data/rakelib/install.rb +220 -0
  191. data/rakelib/lib/config/cygwin.rb +6 -0
  192. data/rakelib/lib/config/linux.rb +78 -0
  193. data/rakelib/lib/config/macosx.rb +6 -0
  194. data/rakelib/lib/config/mingw.rb +133 -0
  195. data/rakelib/lib/config/netbsd.rb +6 -0
  196. data/rakelib/lib/config/unixish.rb +187 -0
  197. data/rakelib/lib/config.rb +673 -0
  198. data/rakelib/lib/core/include/enum.inc +306 -0
  199. data/rakelib/lib/core/include/funcall.inc +277 -0
  200. data/rakelib/lib/core/include/init.inc +95 -0
  201. data/rakelib/lib/core/mapping.rb +1116 -0
  202. data/rakelib/lib/core/package.rb +634 -0
  203. data/rakelib/lib/core/parameter.rb +222 -0
  204. data/rakelib/lib/core/spec.rb +468 -0
  205. data/rakelib/lib/core/spec_helper.rb +405 -0
  206. data/rakelib/lib/director/about_dialog_info.rb +24 -0
  207. data/rakelib/lib/director/accelerator.rb +88 -0
  208. data/rakelib/lib/director/animation.rb +84 -0
  209. data/rakelib/lib/director/animation_ctrl.rb +24 -0
  210. data/rakelib/lib/director/any_button.rb +34 -0
  211. data/rakelib/lib/director/app.rb +420 -0
  212. data/rakelib/lib/director/art_provider.rb +124 -0
  213. data/rakelib/lib/director/aui_dock_art.rb +23 -0
  214. data/rakelib/lib/director/aui_floating_frame.rb +26 -0
  215. data/rakelib/lib/director/aui_manager.rb +114 -0
  216. data/rakelib/lib/director/aui_manager_event.rb +22 -0
  217. data/rakelib/lib/director/aui_mdi_child_frame.rb +50 -0
  218. data/rakelib/lib/director/aui_mdi_client_window.rb +23 -0
  219. data/rakelib/lib/director/aui_mdi_parent_frame.rb +26 -0
  220. data/rakelib/lib/director/aui_notebook.rb +77 -0
  221. data/rakelib/lib/director/aui_notebook_event.rb +23 -0
  222. data/rakelib/lib/director/aui_pane_info.rb +102 -0
  223. data/rakelib/lib/director/aui_tab_art.rb +47 -0
  224. data/rakelib/lib/director/aui_tab_ctrl.rb +121 -0
  225. data/rakelib/lib/director/aui_toolbar.rb +22 -0
  226. data/rakelib/lib/director/aui_toolbar_art.rb +24 -0
  227. data/rakelib/lib/director/aui_toolbar_event.rb +23 -0
  228. data/rakelib/lib/director/aui_toolbar_item.rb +21 -0
  229. data/rakelib/lib/director/bitmap.rb +87 -0
  230. data/rakelib/lib/director/book_ctrls.rb +104 -0
  231. data/rakelib/lib/director/brush.rb +28 -0
  232. data/rakelib/lib/director/busy_info.rb +71 -0
  233. data/rakelib/lib/director/button.rb +22 -0
  234. data/rakelib/lib/director/calendar_ctrl.rb +98 -0
  235. data/rakelib/lib/director/calendar_date_attr.rb +22 -0
  236. data/rakelib/lib/director/caret.rb +31 -0
  237. data/rakelib/lib/director/check_listbox.rb +33 -0
  238. data/rakelib/lib/director/choice.rb +32 -0
  239. data/rakelib/lib/director/clipboard.rb +37 -0
  240. data/rakelib/lib/director/collapsible_pane.rb +22 -0
  241. data/rakelib/lib/director/collapsible_pane_event.rb +22 -0
  242. data/rakelib/lib/director/colour.rb +64 -0
  243. data/rakelib/lib/director/colour_picker_ctrl.rb +22 -0
  244. data/rakelib/lib/director/combobox.rb +37 -0
  245. data/rakelib/lib/director/control.rb +22 -0
  246. data/rakelib/lib/director/ctrl_with_items.rb +68 -0
  247. data/rakelib/lib/director/cursor.rb +28 -0
  248. data/rakelib/lib/director/data_format.rb +31 -0
  249. data/rakelib/lib/director/data_object.rb +64 -0
  250. data/rakelib/lib/director/date_event.rb +141 -0
  251. data/rakelib/lib/director/date_picker_ctrl.rb +39 -0
  252. data/rakelib/lib/director/dc.rb +52 -0
  253. data/rakelib/lib/director/defs.rb +139 -0
  254. data/rakelib/lib/director/derived_dc.rb +64 -0
  255. data/rakelib/lib/director/dialog.rb +214 -0
  256. data/rakelib/lib/director/dir_filterlist_ctrl.rb +29 -0
  257. data/rakelib/lib/director/dir_picker_ctrl.rb +22 -0
  258. data/rakelib/lib/director/drag_image.rb +20 -0
  259. data/rakelib/lib/director/dragdrop.rb +61 -0
  260. data/rakelib/lib/director/editable_listbox.rb +21 -0
  261. data/rakelib/lib/director/event.rb +171 -0
  262. data/rakelib/lib/director/event_handler.rb +410 -0
  263. data/rakelib/lib/director/events.rb +39 -0
  264. data/rakelib/lib/director/file_picker_ctrl.rb +22 -0
  265. data/rakelib/lib/director/find_dialog_event.rb +22 -0
  266. data/rakelib/lib/director/find_replace_data.rb +20 -0
  267. data/rakelib/lib/director/font.rb +138 -0
  268. data/rakelib/lib/director/font_data.rb +22 -0
  269. data/rakelib/lib/director/font_picker_ctrl.rb +22 -0
  270. data/rakelib/lib/director/frame.rb +74 -0
  271. data/rakelib/lib/director/fs_file.rb +353 -0
  272. data/rakelib/lib/director/functions.rb +284 -0
  273. data/rakelib/lib/director/gdi_object.rb +21 -0
  274. data/rakelib/lib/director/gdicommon.rb +94 -0
  275. data/rakelib/lib/director/generic_dirctrl.rb +24 -0
  276. data/rakelib/lib/director/graphics_context.rb +143 -0
  277. data/rakelib/lib/director/graphics_object.rb +69 -0
  278. data/rakelib/lib/director/grid_cell_attr.rb +53 -0
  279. data/rakelib/lib/director/grid_cell_editor.rb +434 -0
  280. data/rakelib/lib/director/grid_cell_renderer.rb +132 -0
  281. data/rakelib/lib/director/grid_ctrl.rb +390 -0
  282. data/rakelib/lib/director/grid_range_select_event.rb +23 -0
  283. data/rakelib/lib/director/grid_table_base.rb +63 -0
  284. data/rakelib/lib/director/grid_table_message.rb +20 -0
  285. data/rakelib/lib/director/help_controller.rb +75 -0
  286. data/rakelib/lib/director/help_provider.rb +103 -0
  287. data/rakelib/lib/director/html_cell.rb +36 -0
  288. data/rakelib/lib/director/html_easy_printing.rb +45 -0
  289. data/rakelib/lib/director/html_event.rb +24 -0
  290. data/rakelib/lib/director/html_help_data.rb +43 -0
  291. data/rakelib/lib/director/html_help_frame.rb +25 -0
  292. data/rakelib/lib/director/html_listbox.rb +54 -0
  293. data/rakelib/lib/director/html_printout.rb +47 -0
  294. data/rakelib/lib/director/html_window.rb +114 -0
  295. data/rakelib/lib/director/icon.rb +33 -0
  296. data/rakelib/lib/director/image.rb +111 -0
  297. data/rakelib/lib/director/image_list.rb +21 -0
  298. data/rakelib/lib/director/list_ctrl.rb +197 -0
  299. data/rakelib/lib/director/listbox.rb +32 -0
  300. data/rakelib/lib/director/locale.rb +35 -0
  301. data/rakelib/lib/director/log.rb +32 -0
  302. data/rakelib/lib/director/mdi_frame.rb +36 -0
  303. data/rakelib/lib/director/media_ctrl.rb +22 -0
  304. data/rakelib/lib/director/menu.rb +92 -0
  305. data/rakelib/lib/director/menu_bar.rb +28 -0
  306. data/rakelib/lib/director/menu_item.rb +36 -0
  307. data/rakelib/lib/director/mouse_state.rb +21 -0
  308. data/rakelib/lib/director/numeric_property_validator.rb +38 -0
  309. data/rakelib/lib/director/object.rb +32 -0
  310. data/rakelib/lib/director/page_setup_dialog.rb +30 -0
  311. data/rakelib/lib/director/palette.rb +25 -0
  312. data/rakelib/lib/director/panel.rb +22 -0
  313. data/rakelib/lib/director/pen.rb +174 -0
  314. data/rakelib/lib/director/pgarray_editor_dialog.rb +64 -0
  315. data/rakelib/lib/director/pgcell.rb +68 -0
  316. data/rakelib/lib/director/pgeditor.rb +154 -0
  317. data/rakelib/lib/director/pgmulti_button.rb +22 -0
  318. data/rakelib/lib/director/pgproperties.rb +216 -0
  319. data/rakelib/lib/director/pgproperty.rb +207 -0
  320. data/rakelib/lib/director/pgvalidation_info.rb +24 -0
  321. data/rakelib/lib/director/pickerbase.rb +22 -0
  322. data/rakelib/lib/director/platform_info.rb +49 -0
  323. data/rakelib/lib/director/popup_window.rb +23 -0
  324. data/rakelib/lib/director/preview_frame.rb +39 -0
  325. data/rakelib/lib/director/print_data.rb +33 -0
  326. data/rakelib/lib/director/print_dialog.rb +36 -0
  327. data/rakelib/lib/director/printer.rb +61 -0
  328. data/rakelib/lib/director/property_grid.rb +174 -0
  329. data/rakelib/lib/director/property_grid_event.rb +23 -0
  330. data/rakelib/lib/director/property_grid_interface.rb +227 -0
  331. data/rakelib/lib/director/property_grid_manager.rb +90 -0
  332. data/rakelib/lib/director/property_grid_page.rb +76 -0
  333. data/rakelib/lib/director/property_grid_page_state.rb +32 -0
  334. data/rakelib/lib/director/radio_box.rb +39 -0
  335. data/rakelib/lib/director/region.rb +25 -0
  336. data/rakelib/lib/director/ribbon_art_provider.rb +154 -0
  337. data/rakelib/lib/director/ribbon_bar.rb +24 -0
  338. data/rakelib/lib/director/ribbon_bar_event.rb +22 -0
  339. data/rakelib/lib/director/ribbon_button_bar.rb +37 -0
  340. data/rakelib/lib/director/ribbon_button_bar_event.rb +40 -0
  341. data/rakelib/lib/director/ribbon_ctrl.rb +28 -0
  342. data/rakelib/lib/director/ribbon_gallery.rb +33 -0
  343. data/rakelib/lib/director/ribbon_gallery_event.rb +27 -0
  344. data/rakelib/lib/director/ribbon_page.rb +21 -0
  345. data/rakelib/lib/director/ribbon_panel.rb +22 -0
  346. data/rakelib/lib/director/ribbon_panel_event.rb +22 -0
  347. data/rakelib/lib/director/ribbon_tool_bar.rb +146 -0
  348. data/rakelib/lib/director/ribbon_tool_bar_event.rb +22 -0
  349. data/rakelib/lib/director/richtext_buffer.rb +46 -0
  350. data/rakelib/lib/director/richtext_ctrl.rb +63 -0
  351. data/rakelib/lib/director/richtext_event.rb +25 -0
  352. data/rakelib/lib/director/richtext_file_handler.rb +42 -0
  353. data/rakelib/lib/director/richtext_header_footer_data.rb +21 -0
  354. data/rakelib/lib/director/richtext_printing.rb +44 -0
  355. data/rakelib/lib/director/sash_layout_event.rb +22 -0
  356. data/rakelib/lib/director/sash_layout_window.rb +23 -0
  357. data/rakelib/lib/director/sash_window.rb +23 -0
  358. data/rakelib/lib/director/scrolled_t.rb +67 -0
  359. data/rakelib/lib/director/sizer.rb +67 -0
  360. data/rakelib/lib/director/sizer_item.rb +35 -0
  361. data/rakelib/lib/director/splash_screen.rb +24 -0
  362. data/rakelib/lib/director/splitter_event.rb +28 -0
  363. data/rakelib/lib/director/splitter_window.rb +25 -0
  364. data/rakelib/lib/director/static_bitmap.rb +24 -0
  365. data/rakelib/lib/director/static_box.rb +26 -0
  366. data/rakelib/lib/director/status_bar.rb +86 -0
  367. data/rakelib/lib/director/styled_text_ctrl.rb +82 -0
  368. data/rakelib/lib/director/styled_text_event.rb +25 -0
  369. data/rakelib/lib/director/system_options.rb +22 -0
  370. data/rakelib/lib/director/system_settings.rb +47 -0
  371. data/rakelib/lib/director/task_bar_icon.rb +77 -0
  372. data/rakelib/lib/director/text_attr.rb +22 -0
  373. data/rakelib/lib/director/text_entry.rb +26 -0
  374. data/rakelib/lib/director/text_validator.rb +47 -0
  375. data/rakelib/lib/director/textctrl.rb +80 -0
  376. data/rakelib/lib/director/time_picker_ctrl.rb +24 -0
  377. data/rakelib/lib/director/timer.rb +37 -0
  378. data/rakelib/lib/director/tip_provider.rb +44 -0
  379. data/rakelib/lib/director/toggle_button.rb +22 -0
  380. data/rakelib/lib/director/tool_bar.rb +62 -0
  381. data/rakelib/lib/director/tool_tip.rb +20 -0
  382. data/rakelib/lib/director/top_level_window.rb +105 -0
  383. data/rakelib/lib/director/tree_ctrl.rb +411 -0
  384. data/rakelib/lib/director/tree_event.rb +78 -0
  385. data/rakelib/lib/director/utils.rb +55 -0
  386. data/rakelib/lib/director/validator.rb +44 -0
  387. data/rakelib/lib/director/variant.rb +549 -0
  388. data/rakelib/lib/director/vlistbox.rb +46 -0
  389. data/rakelib/lib/director/vscrolled_window.rb +59 -0
  390. data/rakelib/lib/director/window.rb +296 -0
  391. data/rakelib/lib/director/window_disabler.rb +44 -0
  392. data/rakelib/lib/director/with_images.rb +65 -0
  393. data/rakelib/lib/director/wizard_page.rb +35 -0
  394. data/rakelib/lib/director/xml_node.rb +48 -0
  395. data/rakelib/lib/director/xml_resource.rb +141 -0
  396. data/rakelib/lib/director.rb +487 -0
  397. data/rakelib/lib/ext/enum_chain.rb +22 -0
  398. data/rakelib/lib/extractor/class.rb +384 -0
  399. data/rakelib/lib/extractor/enum.rb +94 -0
  400. data/rakelib/lib/extractor/function.rb +377 -0
  401. data/rakelib/lib/extractor/module.rb +140 -0
  402. data/rakelib/lib/extractor/variable.rb +145 -0
  403. data/rakelib/lib/extractor.rb +438 -0
  404. data/rakelib/lib/generate/analyzer.rb +593 -0
  405. data/rakelib/lib/generate/base.rb +37 -0
  406. data/rakelib/lib/generate/doc.rb +833 -0
  407. data/rakelib/lib/generate/interface.rb +742 -0
  408. data/rakelib/lib/generate/rakedep.rb +130 -0
  409. data/rakelib/lib/specs/interfaces.rb +324 -0
  410. data/rakelib/lib/streams.rb +206 -0
  411. data/rakelib/lib/swig_runner.rb +682 -0
  412. data/rakelib/lib/typemap/array_int_selections.rb +57 -0
  413. data/rakelib/lib/typemap/common.rb +613 -0
  414. data/rakelib/lib/typemap/data_format.rb +76 -0
  415. data/rakelib/lib/typemap/data_object_data.rb +99 -0
  416. data/rakelib/lib/typemap/datetime.rb +64 -0
  417. data/rakelib/lib/typemap/grid_client_data.rb +55 -0
  418. data/rakelib/lib/typemap/grid_coords.rb +65 -0
  419. data/rakelib/lib/typemap/html_cell.rb +57 -0
  420. data/rakelib/lib/typemap/io_streams.rb +162 -0
  421. data/rakelib/lib/typemap/pgcell.rb +35 -0
  422. data/rakelib/lib/typemap/pgeditor.rb +35 -0
  423. data/rakelib/lib/typemap/pgprop_arg.rb +74 -0
  424. data/rakelib/lib/typemap/pgproperty.rb +35 -0
  425. data/rakelib/lib/typemap/points_list.rb +124 -0
  426. data/rakelib/lib/typemap/richtext.rb +67 -0
  427. data/rakelib/lib/typemap/tree_itemid.rb +49 -0
  428. data/rakelib/lib/util/string.rb +141 -0
  429. data/rakelib/prepost.rake +91 -0
  430. data/rakelib/prepost.rb +26 -0
  431. data/rakelib/run.rake +49 -0
  432. data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +7 -0
  433. data/rakelib/yard/templates/default/layout/html/setup.rb +5 -0
  434. data/rakelib/yard/yard/relative_markdown_links/version.rb +8 -0
  435. data/rakelib/yard/yard/relative_markdown_links.rb +39 -0
  436. data/rakelib/yard/yard-custom-templates.rb +2 -0
  437. data/rakelib/yard/yard-relative_markdown_links.rb +4 -0
  438. data/samples/art/wxruby-128x128.png +0 -0
  439. data/samples/art/wxruby-256x256.png +0 -0
  440. data/samples/art/wxruby-64x64.png +0 -0
  441. data/samples/art/wxruby.ico +0 -0
  442. data/samples/art/wxruby.png +0 -0
  443. data/samples/aui/aui.rb +1321 -0
  444. data/samples/aui/tn_aui.png +0 -0
  445. data/samples/bigdemo/About.rbw +39 -0
  446. data/samples/bigdemo/ColorPanel.rbw +23 -0
  447. data/samples/bigdemo/GridSimple.rbw +78 -0
  448. data/samples/bigdemo/MDIDemo.rbw +57 -0
  449. data/samples/bigdemo/PopupMenu.rbw +146 -0
  450. data/samples/bigdemo/ShapedWindow.rbw +128 -0
  451. data/samples/bigdemo/Sizers.rbw +541 -0
  452. data/samples/bigdemo/bigdemo.rb +810 -0
  453. data/samples/bigdemo/demoTemplate.rbw +33 -0
  454. data/samples/bigdemo/helpfile.htb +0 -0
  455. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  456. data/samples/bigdemo/icons/Test 015.png +0 -0
  457. data/samples/bigdemo/icons/choice.bmp +0 -0
  458. data/samples/bigdemo/icons/choice.xpm +27 -0
  459. data/samples/bigdemo/icons/combo.bmp +0 -0
  460. data/samples/bigdemo/icons/combo.xpm +27 -0
  461. data/samples/bigdemo/icons/copy.xpm +25 -0
  462. data/samples/bigdemo/icons/cut.xpm +24 -0
  463. data/samples/bigdemo/icons/gauge.bmp +0 -0
  464. data/samples/bigdemo/icons/gauge.xpm +27 -0
  465. data/samples/bigdemo/icons/help.xpm +25 -0
  466. data/samples/bigdemo/icons/list.bmp +0 -0
  467. data/samples/bigdemo/icons/list.xpm +27 -0
  468. data/samples/bigdemo/icons/mondrian.ico +0 -0
  469. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  470. data/samples/bigdemo/icons/new.xpm +24 -0
  471. data/samples/bigdemo/icons/ogl.ico +0 -0
  472. data/samples/bigdemo/icons/ogl.xpm +45 -0
  473. data/samples/bigdemo/icons/open.xpm +26 -0
  474. data/samples/bigdemo/icons/paste.bmp +0 -0
  475. data/samples/bigdemo/icons/paste.xpm +38 -0
  476. data/samples/bigdemo/icons/pointy.png +0 -0
  477. data/samples/bigdemo/icons/preview.xpm +26 -0
  478. data/samples/bigdemo/icons/print.xpm +26 -0
  479. data/samples/bigdemo/icons/radio.bmp +0 -0
  480. data/samples/bigdemo/icons/radio.xpm +27 -0
  481. data/samples/bigdemo/icons/robert.xpm +415 -0
  482. data/samples/bigdemo/icons/sashtest.ico +0 -0
  483. data/samples/bigdemo/icons/save.xpm +25 -0
  484. data/samples/bigdemo/icons/smiles.bmp +0 -0
  485. data/samples/bigdemo/icons/smiles.xpm +39 -0
  486. data/samples/bigdemo/icons/smiley.ico +0 -0
  487. data/samples/bigdemo/icons/smiley.xpm +42 -0
  488. data/samples/bigdemo/icons/stattext.xpm +24 -0
  489. data/samples/bigdemo/icons/test2.bmp +0 -0
  490. data/samples/bigdemo/icons/test2.png +0 -0
  491. data/samples/bigdemo/icons/test2.xpm +79 -0
  492. data/samples/bigdemo/icons/text.bmp +0 -0
  493. data/samples/bigdemo/icons/text.xpm +27 -0
  494. data/samples/bigdemo/icons/tog1.bmp +0 -0
  495. data/samples/bigdemo/icons/tog1.xpm +38 -0
  496. data/samples/bigdemo/icons/tog2.bmp +0 -0
  497. data/samples/bigdemo/icons/tog2.xpm +38 -0
  498. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  499. data/samples/bigdemo/icons/wxwin.ico +0 -0
  500. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  501. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  502. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  503. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  504. data/samples/bigdemo/run.rb +91 -0
  505. data/samples/bigdemo/tips.txt +7 -0
  506. data/samples/bigdemo/utils.rb +12 -0
  507. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  508. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  509. data/samples/bigdemo/wxButton.rbw +64 -0
  510. data/samples/bigdemo/wxCalendarCtrl.rbw +59 -0
  511. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  512. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  513. data/samples/bigdemo/wxChoice.rbw +47 -0
  514. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  515. data/samples/bigdemo/wxColourDialog.rbw +33 -0
  516. data/samples/bigdemo/wxComboBox.rbw +77 -0
  517. data/samples/bigdemo/wxCursor.rbw +136 -0
  518. data/samples/bigdemo/wxDialog.rbw +74 -0
  519. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  520. data/samples/bigdemo/wxDragImage.rbw +70 -0
  521. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  522. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  523. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  524. data/samples/bigdemo/wxFontDialog.rbw +200 -0
  525. data/samples/bigdemo/wxFrame.rbw +53 -0
  526. data/samples/bigdemo/wxGauge.rbw +65 -0
  527. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  528. data/samples/bigdemo/wxGrid.rbw +66 -0
  529. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  530. data/samples/bigdemo/wxListBox.rbw +140 -0
  531. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  532. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  533. data/samples/bigdemo/wxMenu.rbw +247 -0
  534. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  535. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  536. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +29 -0
  537. data/samples/bigdemo/wxNotebook.rbw +136 -0
  538. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  539. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  540. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  541. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  542. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  543. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  544. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  545. data/samples/bigdemo/wxSlider.rbw +42 -0
  546. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  547. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  548. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  549. data/samples/bigdemo/wxStaticBitmap.rbw +47 -0
  550. data/samples/bigdemo/wxStaticText.rbw +55 -0
  551. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  552. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  553. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  554. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  555. data/samples/bigdemo/wxToolBar.rbw +131 -0
  556. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  557. data/samples/calendar/calendar.rb +363 -0
  558. data/samples/calendar/tn_calendar.png +0 -0
  559. data/samples/caret/caret.rb +293 -0
  560. data/samples/caret/mondrian.xpm +44 -0
  561. data/samples/caret/tn_caret.png +0 -0
  562. data/samples/controls/books.rb +183 -0
  563. data/samples/controls/choice.xpm +27 -0
  564. data/samples/controls/combo.xpm +27 -0
  565. data/samples/controls/controls.rb +1143 -0
  566. data/samples/controls/gauge.xpm +27 -0
  567. data/samples/controls/get_item_sample.rb +117 -0
  568. data/samples/controls/list.xpm +27 -0
  569. data/samples/controls/mondrian.ico +0 -0
  570. data/samples/controls/mondrian.xpm +44 -0
  571. data/samples/controls/radio.xpm +27 -0
  572. data/samples/controls/stattext.xpm +24 -0
  573. data/samples/controls/test2.bmp +0 -0
  574. data/samples/controls/text.xpm +27 -0
  575. data/samples/controls/tn_books.png +0 -0
  576. data/samples/controls/tn_controls.png +0 -0
  577. data/samples/controls/tn_get_item_sample.png +0 -0
  578. data/samples/dialogs/dialogs.rb +879 -0
  579. data/samples/dialogs/tips.txt +18 -0
  580. data/samples/dialogs/tn_dialogs.png +0 -0
  581. data/samples/dialogs/tn_wizard.png +0 -0
  582. data/samples/dialogs/wizard.rb +89 -0
  583. data/samples/dragdrop/dragdrop.rb +200 -0
  584. data/samples/dragdrop/tn_dragdrop.png +0 -0
  585. data/samples/drawing/SVGlogo24.xpm +310 -0
  586. data/samples/drawing/bitmap.rb +76 -0
  587. data/samples/drawing/bitmap_image.rb +131 -0
  588. data/samples/drawing/graphics_drawing.rb +257 -0
  589. data/samples/drawing/maths_images.rb +327 -0
  590. data/samples/drawing/rmagic_bitmap_image.rb +139 -0
  591. data/samples/drawing/ruby-logo.jpg +0 -0
  592. data/samples/drawing/svgtest.rb +373 -0
  593. data/samples/drawing/tn_bitmap.png +0 -0
  594. data/samples/drawing/tn_bitmap_image.png +0 -0
  595. data/samples/drawing/tn_graphics_drawing.png +0 -0
  596. data/samples/drawing/tn_maths_images.png +0 -0
  597. data/samples/drawing/tn_rmagic_bitmap_image.png +0 -0
  598. data/samples/drawing/tn_svgtest.png +0 -0
  599. data/samples/etc/choice.rb +82 -0
  600. data/samples/etc/miniframe.rb +92 -0
  601. data/samples/etc/sash.rb +140 -0
  602. data/samples/etc/scrollwin.rb +120 -0
  603. data/samples/etc/system_settings.rb +263 -0
  604. data/samples/etc/tn_choice.png +0 -0
  605. data/samples/etc/tn_miniframe.png +0 -0
  606. data/samples/etc/tn_sash.png +0 -0
  607. data/samples/etc/tn_scrollwin.png +0 -0
  608. data/samples/etc/tn_system_settings.png +0 -0
  609. data/samples/event/activation.rb +129 -0
  610. data/samples/event/event.rb +220 -0
  611. data/samples/event/threaded.rb +141 -0
  612. data/samples/event/tn_activation.png +0 -0
  613. data/samples/event/tn_event.png +0 -0
  614. data/samples/event/tn_threaded.png +0 -0
  615. data/samples/event/tn_update_ui_event.png +0 -0
  616. data/samples/event/update_ui_event.rb +91 -0
  617. data/samples/grid/grid.rb +224 -0
  618. data/samples/grid/gridtablebase.rb +178 -0
  619. data/samples/grid/tn_grid.png +0 -0
  620. data/samples/grid/tn_gridtablebase.png +0 -0
  621. data/samples/html/8859_2.htm +14 -0
  622. data/samples/html/cp1250.htm +19 -0
  623. data/samples/html/foo.png +0 -0
  624. data/samples/html/html.rb +278 -0
  625. data/samples/html/i18n.gif +0 -0
  626. data/samples/html/imagemap.htm +20 -0
  627. data/samples/html/imagemap.png +0 -0
  628. data/samples/html/listtest.htm +28 -0
  629. data/samples/html/pic.png +0 -0
  630. data/samples/html/pic2.bmp +0 -0
  631. data/samples/html/regres.htm +20 -0
  632. data/samples/html/subsup.html +42 -0
  633. data/samples/html/tables.htm +255 -0
  634. data/samples/html/test.htm +375 -0
  635. data/samples/html/tn_html.png +0 -0
  636. data/samples/mdi/mdi.rb +118 -0
  637. data/samples/mdi/tn_mdi.png +0 -0
  638. data/samples/minimal/minimal.rb +95 -0
  639. data/samples/minimal/mondrian.ico +0 -0
  640. data/samples/minimal/mondrian.png +0 -0
  641. data/samples/minimal/nothing.rb +38 -0
  642. data/samples/minimal/tn_minimal.png +0 -0
  643. data/samples/minimal/tn_nothing.png +0 -0
  644. data/samples/printing/mondrian.ico +0 -0
  645. data/samples/printing/mondrian.xpm +44 -0
  646. data/samples/printing/printing.rb +499 -0
  647. data/samples/printing/printing2.rb +251 -0
  648. data/samples/printing/sample-text.txt +213 -0
  649. data/samples/printing/tn_printing.png +0 -0
  650. data/samples/printing/tn_printing2.png +0 -0
  651. data/samples/propgrid/propgrid.rb +2711 -0
  652. data/samples/propgrid/propgrid_minimal.rb +107 -0
  653. data/samples/propgrid/sample_props.rb +434 -0
  654. data/samples/propgrid/tn_propgrid.png +0 -0
  655. data/samples/propgrid/tn_propgrid_minimal.png +0 -0
  656. data/samples/ribbon/align_center.xpm +21 -0
  657. data/samples/ribbon/align_left.xpm +21 -0
  658. data/samples/ribbon/align_right.xpm +21 -0
  659. data/samples/ribbon/aui_style.xpm +53 -0
  660. data/samples/ribbon/auto_crop_selection.xpm +55 -0
  661. data/samples/ribbon/auto_crop_selection_small.xpm +33 -0
  662. data/samples/ribbon/circle.xpm +38 -0
  663. data/samples/ribbon/circle_small.xpm +22 -0
  664. data/samples/ribbon/colours.xpm +25 -0
  665. data/samples/ribbon/cross.xpm +38 -0
  666. data/samples/ribbon/empty.xpm +23 -0
  667. data/samples/ribbon/expand_selection_h.xpm +46 -0
  668. data/samples/ribbon/expand_selection_v.xpm +46 -0
  669. data/samples/ribbon/eye.xpm +26 -0
  670. data/samples/ribbon/hexagon.xpm +38 -0
  671. data/samples/ribbon/msw_style.xpm +65 -0
  672. data/samples/ribbon/position_left.xpm +22 -0
  673. data/samples/ribbon/position_top.xpm +22 -0
  674. data/samples/ribbon/ribbon.rb +900 -0
  675. data/samples/ribbon/ribbon.xpm +54 -0
  676. data/samples/ribbon/selection_panel.xpm +23 -0
  677. data/samples/ribbon/square.xpm +38 -0
  678. data/samples/ribbon/tn_ribbon.png +0 -0
  679. data/samples/ribbon/triangle.xpm +38 -0
  680. data/samples/sample.xpm +475 -0
  681. data/samples/sampler/back.xpm +21 -0
  682. data/samples/sampler/copy.xpm +44 -0
  683. data/samples/sampler/cut.xpm +46 -0
  684. data/samples/sampler/editor.rb +560 -0
  685. data/samples/sampler/ext.rb +51 -0
  686. data/samples/sampler/filesave.xpm +42 -0
  687. data/samples/sampler/find.xpm +62 -0
  688. data/samples/sampler/findrepl.xpm +63 -0
  689. data/samples/sampler/forward.xpm +21 -0
  690. data/samples/sampler/paste.xpm +46 -0
  691. data/samples/sampler/play.xpm +24 -0
  692. data/samples/sampler/redo.xpm +58 -0
  693. data/samples/sampler/sample.rb +347 -0
  694. data/samples/sampler/stc_editor.rb +321 -0
  695. data/samples/sampler/txt_editor.rb +130 -0
  696. data/samples/sampler/undo.xpm +58 -0
  697. data/samples/sampler.rb +394 -0
  698. data/samples/splash/mobile.xpm +1835 -0
  699. data/samples/splash/splash.png +0 -0
  700. data/samples/splash/splash.rb +164 -0
  701. data/samples/splash/tn_splash.png +0 -0
  702. data/samples/text/document-open.png +0 -0
  703. data/samples/text/document-save.png +0 -0
  704. data/samples/text/edit-copy.png +0 -0
  705. data/samples/text/edit-cut.png +0 -0
  706. data/samples/text/edit-paste.png +0 -0
  707. data/samples/text/edit-redo.png +0 -0
  708. data/samples/text/edit-undo.png +0 -0
  709. data/samples/text/format-text-bold.png +0 -0
  710. data/samples/text/format-text-italic.png +0 -0
  711. data/samples/text/format-text-underline.png +0 -0
  712. data/samples/text/mondrian.ico +0 -0
  713. data/samples/text/mondrian.xpm +44 -0
  714. data/samples/text/preferences-desktop-font.png +0 -0
  715. data/samples/text/rich_textctrl.rb +326 -0
  716. data/samples/text/scintilla.rb +179 -0
  717. data/samples/text/textctrl.rb +124 -0
  718. data/samples/text/tn_rich_textctrl.png +0 -0
  719. data/samples/text/tn_scintilla.png +0 -0
  720. data/samples/text/tn_textctrl.png +0 -0
  721. data/samples/text/tn_unicode.png +0 -0
  722. data/samples/text/unicode.rb +238 -0
  723. data/samples/text/utf8.txt +15 -0
  724. data/samples/treectrl/checked.xpm +54 -0
  725. data/samples/treectrl/icon1.xpm +79 -0
  726. data/samples/treectrl/icon2.xpm +53 -0
  727. data/samples/treectrl/icon3.xpm +79 -0
  728. data/samples/treectrl/icon4.xpm +43 -0
  729. data/samples/treectrl/icon5.xpm +79 -0
  730. data/samples/treectrl/state1.xpm +145 -0
  731. data/samples/treectrl/state2.xpm +144 -0
  732. data/samples/treectrl/state3.xpm +142 -0
  733. data/samples/treectrl/state4.xpm +145 -0
  734. data/samples/treectrl/state5.xpm +85 -0
  735. data/samples/treectrl/tn_treectrl.png +0 -0
  736. data/samples/treectrl/treectrl.rb +1720 -0
  737. data/samples/treectrl/unchecked.xpm +30 -0
  738. data/samples/xrc/custom_dialog.xrc +46 -0
  739. data/samples/xrc/custom_xrc_sample.rb +84 -0
  740. data/samples/xrc/samples.xrc +46 -0
  741. data/samples/xrc/tn_xrc_sample.png +0 -0
  742. data/samples/xrc/xrc_sample.rb +86 -0
  743. data/tests/test_basic.rb +20 -0
  744. data/tests/test_clipboard.rb +241 -0
  745. data/tests/test_dialog.rb +28 -0
  746. data/tests/test_event_handling.rb +103 -0
  747. data/tests/test_events.rb +45 -0
  748. data/tests/test_geometry.rb +141 -0
  749. data/tests/test_intl.rb +107 -0
  750. data/tests/test_item_data.rb +120 -0
  751. data/tests/test_variant.rb +151 -0
  752. data/tests/testapp.rb +40 -0
  753. data/tests/testapp_noframe.rb +28 -0
  754. metadata +874 -0
@@ -0,0 +1,222 @@
1
+ ###
2
+ # wxRuby3 typemap Parameter class
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ module WXRuby3
7
+
8
+ module Typemap
9
+
10
+ # represents a basic parameter definition
11
+ class ParameterBase
12
+ PTR_RE = /\A(\*|&)\s*([_a-zA-Z]\w*)?\Z/
13
+ CONST_RE = /(\A|\W)const(\W|\Z)/
14
+ MULTI_WORD_TYPES = %w[char short int long]
15
+ def initialize(param)
16
+ @array = false
17
+ if ::Array === param
18
+ @ctype, @name, arr = param
19
+ @array = (arr == '[]' || arr == true)
20
+ if ::String === @name && @name.end_with?('[]')
21
+ @array = true
22
+ @name = @name[0..-3]
23
+ end
24
+ else
25
+ # split the param spec on spaces
26
+ list = param.to_s.split(' ')
27
+ # name (if provided) is expected at end
28
+ @name = list.pop
29
+ if @name == '[]' || @name.end_with?('[]') # name or array indicator (or both)?
30
+ @array = true # array type specificied
31
+ # remove indicator from name or pop actual name id from split list
32
+ @name = (@name == '[]' ? list.pop : @name[0..-3])
33
+ end
34
+ @ctype = list.join(' ') # put type string back together
35
+ # strip all 'const' modifiers
36
+ tmp = @ctype.gsub(CONST_RE) { |s| "#{$1}#{$2 ? $2.strip : $2}" }
37
+ # check if there is still an identifier left
38
+ if /\w+/ =~ tmp
39
+ # is this really a name or part of multiword type?
40
+ if MULTI_WORD_TYPES.include?(@name)
41
+ @ctype << ' ' << @name
42
+ @name = nil # nameless
43
+ else
44
+ # does the name still contain a pointer/reference indicator?
45
+ PTR_RE.match(@name) do |md|
46
+ @ctype << ' ' << md[1] # attach to type
47
+ @name = md[2].to_s.strip # remove from name
48
+ end
49
+ end
50
+ else
51
+ # @name is actually the type identifier and this parameter spec is nameless
52
+ @ctype << (@ctype.empty? ? '' : ' ') << @name # concatenate type
53
+ @name = nil
54
+ end
55
+ end
56
+ end
57
+
58
+ attr_reader :ctype
59
+
60
+ def array?
61
+ @array
62
+ end
63
+
64
+ def name
65
+ @name.to_s
66
+ end
67
+
68
+ def to_s
69
+ "#{ctype}#{name.empty? ? '' : ' '+name}#{array? ? '[]' : ''}"
70
+ end
71
+ end # ParameterBase
72
+
73
+ # encapsulates a type mapping argument mask
74
+ class ParameterMask < ParameterBase
75
+ def initialize(mask_def)
76
+ super
77
+ @type_mask = ctype.tr(' ', '') # remove all spaces
78
+ end
79
+
80
+ attr_reader :type_mask
81
+
82
+ def match(paramdef)
83
+ if (name.empty? || name == paramdef.name) && (array? == paramdef.array)
84
+ # compare unmodified types
85
+ return true if type_mask == paramdef.type.tr(' ', '')
86
+ # reduce const modifiers and compare
87
+ param_type = paramdef.type.dup
88
+ while param_type.sub!(CONST_RE) { |s| "#{s.start_with?('c') ? '' : s[0]}#{s[-1]}" }
89
+ return true if type_mask == param_type.tr(' ', '')
90
+ end
91
+ end
92
+ false
93
+ end
94
+ private :match
95
+
96
+ def ==(param)
97
+ case param
98
+ when ParameterMask
99
+ type_mask == param.type_mask && name == param.name && array? == param.array?
100
+ when ArgumentDecl
101
+ param == self
102
+ when Extractor::ParamDef
103
+ match(param)
104
+ else
105
+ ArgumentDecl.new(param.to_s) == self
106
+ end
107
+ end
108
+ end # ParameterMask
109
+
110
+ class ParameterSet
111
+ def initialize(paramlist)
112
+ @param_masks = if ::Array === paramlist
113
+ paramlist.collect { |param| ParameterMask.new(param) }
114
+ else
115
+ paramlist.split(',').collect { |param| ParameterMask.new(param) }
116
+ end
117
+ end
118
+
119
+ attr_reader :param_masks
120
+
121
+ def ==(params)
122
+ case params
123
+ when ParameterSet
124
+ @param_masks == params.param_masks
125
+ when Extractor::FunctionDef
126
+ match(params)
127
+ else
128
+ @param_masks == ParameterSet.new(params.to_s).param_masks
129
+ end
130
+ end
131
+
132
+ def match(funcdef)
133
+ STDERR.puts "*** matching #{self} to #{funcdef.signature}" if Director.trace?
134
+ # see if the first parameter mask matches anywhere in the function's argument list
135
+ if fpix = (0...funcdef.parameters.size).to_a.detect { |pix| @param_masks.first == funcdef.parameters[pix] }
136
+ STDERR.puts "*** match found at argument #{fpix}" if Director.trace?
137
+ # if this is the only param mask we're done
138
+ return true if @param_masks.size == 1
139
+ # are there enough arguments to match all masks from the position of the argument we matched first?
140
+ if (funcdef.parameters.size - fpix) >= @param_masks.size
141
+ # do the remainder of the parameter masks (if any) all match as well?
142
+ fpix += 1 # start matching at the next function arg
143
+ @param_masks[1,@param_masks.size-1].each_with_index do |pm, pix|
144
+ return false unless pm == funcdef.parameters[fpix+pix]
145
+ end
146
+ return true # fully matched
147
+ end
148
+ end
149
+ false
150
+ end
151
+ private :match
152
+
153
+ def to_s
154
+ "(#{@param_masks.join(', ')})"
155
+ end
156
+
157
+ def inspect
158
+ to_s
159
+ end
160
+ end
161
+
162
+ # encapsulates a method argument declaration
163
+ class ArgumentDecl < ParameterBase
164
+ def initialize(argdecl)
165
+ super
166
+ # put together a list of possible argument type strings for matching
167
+ @type_list = [ (ctype_str = ctype.dup).tr(' ', '') ] # first is the unaltered type
168
+ # next remove const modifiers from front to back (adding type strings for every reduction)
169
+ while ctype_str.sub!(CONST_RE) { |s| "#{s.start_with?('c') ? '' : s[0]}#{s[-1]}" }
170
+ @type_list << ctype_str.tr(' ', '')
171
+ end
172
+ end
173
+
174
+ def ==(param_mask)
175
+ unless ParameterMask === param_mask
176
+ param_mask = ParameterMask.new(param_mask)
177
+ end
178
+ if array? == param_mask.array?
179
+ if @type_list.any? {|typ| typ == param_mask.type_mask }
180
+ return param_mask.name.nil? || param_mask.name == name
181
+ end
182
+ end
183
+ false
184
+ end
185
+ end # ArgumentDecl
186
+
187
+ class ArgumentList
188
+ def initialize(arglist)
189
+ @args = if ::Array === arglist
190
+ arglist.collect { |arg| ArgumentDecl.new(arg) }
191
+ else
192
+ arglist.split(',').collect { |arg| ArgumentDecl.new(arg) }
193
+ end
194
+ end
195
+
196
+ # match with parameter mask list and return index of first argument matching or nil
197
+ def match(masks)
198
+ masks = ParameterSet === masks ? masks.param_masks : [masks].flatten
199
+ # see if this parameter mask list matches (a part of) this argument list
200
+ if arg_ix = @args.find_index { |arg| arg == masks.first } # does the head mask match any argument?
201
+ # anything left to match?
202
+ return arg_ix unless masks.size>1
203
+ # see if the following arguments match the rest of the masks
204
+ if (@args.size - arg_ix) >= masks.size # matching numbers?
205
+ return arg_ix if (1...masks.size).to_a.all? { |i| @args[arg_ix+i] == masks[i] }
206
+ end
207
+ end
208
+ nil
209
+ end
210
+
211
+ def to_s
212
+ @args.join(', ')
213
+ end
214
+
215
+ def inspect
216
+ to_s
217
+ end
218
+ end
219
+
220
+ end
221
+
222
+ end
@@ -0,0 +1,468 @@
1
+ ###
2
+ # wxRuby3 Director specs class
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative './mapping'
7
+
8
+ module WXRuby3
9
+
10
+ class Director
11
+
12
+ class Spec
13
+
14
+ include Typemap::MappingMethods
15
+
16
+ class << self
17
+ # { <module> => { <class> => <baseclass>, ...}, ... }
18
+ def module_registry
19
+ @module_registry ||= {}
20
+ end
21
+
22
+ # { <class> => <module>, ...}
23
+ def class_index
24
+ @class_index ||= {}
25
+ end
26
+ end
27
+
28
+ IGNORED_BASES = ['wxTrackable']
29
+
30
+ def initialize(pkg, modname, name: nil, director: nil, processors: nil, requirements: [])
31
+ @package = pkg
32
+ @module_name = modname
33
+ @name = if name
34
+ name
35
+ elsif modname =~ /\Awx(.+)/
36
+ $1
37
+ else
38
+ modname[0].upcase << modname[1,modname.size-1]
39
+ end
40
+ @class_implementations = ::Hash.new
41
+ @inheritance_overrides = ::Hash.new
42
+ @templates_as_class = ::Hash.new
43
+ @interface_extensions = ::Hash.new
44
+ @folded_bases = ::Hash.new
45
+ @abstracts = ::Hash.new
46
+ @mixins = ::Set.new
47
+ @included_mixins = ::Hash.new
48
+ @items = [modname]
49
+ @director = director
50
+ @director ||= (Director.const_defined?(@name) ? Director.const_get(@name) : Director)
51
+ @gc_type = nil
52
+ @ignores = ::Hash.new
53
+ @regards = ::Hash.new
54
+ @readonly = ::Set.new
55
+ @contracts = ::Hash.new
56
+ @event_overrides = ::Hash.new
57
+ @disabled_proxies = false
58
+ @force_proxies = ::Set.new
59
+ @no_proxies = ::Set.new
60
+ @disowns = ::Set.new
61
+ @new_objects = ::Set.new
62
+ @warn_filters = ::Hash.new
63
+ @only_for = ::Hash.new
64
+ @includes = ::Set.new
65
+ @swig_imports = {prepend: ::Set.new, append: ::Set.new}
66
+ @swig_includes = ::Set.new
67
+ @renames = ::Hash.new
68
+ @swig_code = []
69
+ @begin_code = []
70
+ @runtime_code = []
71
+ @header_code = []
72
+ @wrapper_code = []
73
+ @init_code = []
74
+ @interface_code = []
75
+ @extend_code = ::Hash.new
76
+ @nogen_sections = ::Set.new
77
+ @post_processors = processors || [:rename, :fixmodule, :fix_protected_access]
78
+ @requirements = [requirements].flatten
79
+ @type_maps = Typemap::Collection.new
80
+ end
81
+
82
+ attr_reader :director, :package, :module_name, :name, :items, :folded_bases, :ignores, :regards, :readonly, :contracts, :event_overrides,
83
+ :mixins, :included_mixins, :disabled_proxies, :no_proxies, :disowns, :new_objects, :warn_filters, :only_for,
84
+ :includes, :swig_imports, :swig_includes, :renames, :swig_code, :begin_code,
85
+ :runtime_code, :header_code, :wrapper_code, :extend_code, :init_code, :interface_code,
86
+ :nogen_sections, :post_processors, :requirements, :type_maps
87
+ attr_writer :interface_file
88
+
89
+ def interface_file
90
+ @interface_file || File.join(Config.instance.classes_path, @name + '.i')
91
+ end
92
+
93
+ def use_class_implementation(cls, impl)
94
+ @class_implementations[cls] = impl
95
+ @post_processors << :fix_class_implementation unless @post_processors.include?(:fix_class_implementation)
96
+ self
97
+ end
98
+
99
+ def class_implementation(cls)
100
+ @class_implementations[cls] || cls
101
+ end
102
+
103
+ def use_template_as_class(tpl, cls)
104
+ @templates_as_class[tpl] = cls
105
+ end
106
+
107
+ def template_as_class?(tpl)
108
+ @templates_as_class.has_key?(tpl)
109
+ end
110
+
111
+ def template_class_name(tpl)
112
+ @templates_as_class[tpl]
113
+ end
114
+
115
+ def class_name(name)
116
+ @templates_as_class[name] || name
117
+ end
118
+
119
+ def classdef_name(name)
120
+ @templates_as_class.invert[name] || name
121
+ end
122
+
123
+ def override_inheritance_chain(clsnm, *supers, doc_override: true)
124
+ @inheritance_overrides[clsnm] = [
125
+ Extractor::SuperDef.build_inheritance_chain(*supers.flatten),
126
+ doc_override
127
+ ]
128
+ end
129
+
130
+ def inheritance_override(clsnm, doc: false)
131
+ supers, doc_override = @inheritance_overrides[clsnm]
132
+ (!doc || doc_override) ? supers : nil
133
+ end
134
+
135
+ def extend_interface(cls, *declarations, visibility: 'public')
136
+ ((@interface_extensions[cls] ||= {})[visibility] ||= ::Set.new).merge declarations.flatten
137
+ self
138
+ end
139
+
140
+ def interface_extensions(cls)
141
+ @interface_extensions[cls] || {}
142
+ end
143
+
144
+ def fold_bases(*specs)
145
+ specs.each do |foldspec|
146
+ if ::Hash === foldspec
147
+ foldspec.each_pair do |classnm, subclasses|
148
+ @folded_bases[classnm] = [subclasses].flatten
149
+ end
150
+ else
151
+ raise "Invalid class folding specs [#{specs.inspect}]"
152
+ end
153
+ end
154
+ self
155
+ end
156
+
157
+ def is_folded_base?(cnm)
158
+ @folded_bases.values.any? { |nms| nms.include?(cnm) }
159
+ end
160
+
161
+ def gc_never(*names)
162
+ if names.empty?
163
+ @gc_type = :GC_NEVER
164
+ else
165
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
166
+ names.each {|n| @gc_type[n] = :GC_NEVER }
167
+ end
168
+ self
169
+ end
170
+
171
+ def gc_as_object(*names)
172
+ if names.empty?
173
+ @gc_type = :GC_MANAGE_AS_OBJECT
174
+ else
175
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
176
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_OBJECT }
177
+ end
178
+ self
179
+ end
180
+
181
+ def gc_as_window(*names)
182
+ if names.empty?
183
+ @gc_type = :GC_MANAGE_AS_WINDOW
184
+ else
185
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
186
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_WINDOW }
187
+ end
188
+ self
189
+ end
190
+
191
+ def gc_as_frame(*names)
192
+ if names.empty?
193
+ @gc_type = :GC_MANAGE_AS_FRAME
194
+ else
195
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
196
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_FRAME }
197
+ end
198
+ self
199
+ end
200
+
201
+ def gc_as_dialog(*names)
202
+ if names.empty?
203
+ @gc_type = :GC_MANAGE_AS_DIALOG
204
+ else
205
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
206
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_DIALOG }
207
+ end
208
+ self
209
+ end
210
+
211
+ def gc_as_event(*names)
212
+ if names.empty?
213
+ @gc_type = :GC_MANAGE_AS_EVENT
214
+ else
215
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
216
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_EVENT }
217
+ end
218
+ self
219
+ end
220
+
221
+ def gc_as_sizer(*names)
222
+ if names.empty?
223
+ @gc_type = :GC_MANAGE_AS_SIZER
224
+ else
225
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
226
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_SIZER }
227
+ end
228
+ self
229
+ end
230
+
231
+ def gc_as_refcounted(*names)
232
+ if names.empty?
233
+ @gc_type = :GC_MANAGE_AS_REFCOUNTED
234
+ else
235
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
236
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_REFCOUNTED }
237
+ end
238
+ self
239
+ end
240
+
241
+ def gc_as_untracked_refcounted(*names)
242
+ if names.empty?
243
+ @gc_type = :GC_MANAGE_AS_UNTRACKED_REFCOUNTED
244
+ else
245
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
246
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_UNTRACKED_REFCOUNTED }
247
+ end
248
+ self
249
+ end
250
+
251
+ def gc_as_temporary(*names)
252
+ if names.empty?
253
+ @gc_type = :GC_MANAGE_AS_TEMP
254
+ else
255
+ @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
256
+ names.each {|n| @gc_type[n] = :GC_MANAGE_AS_TEMP }
257
+ end
258
+ self
259
+ end
260
+
261
+ def gc_type(name)
262
+ @gc_type.is_a?(::Hash) ? @gc_type[name] : @gc_type
263
+ end
264
+
265
+ def make_abstract(cls)
266
+ @abstracts[cls] = true
267
+ self
268
+ end
269
+
270
+ def make_concrete(cls)
271
+ @abstracts[cls] = false
272
+ @mixins.delete(cls)
273
+ self
274
+ end
275
+
276
+ def make_mixin(cls)
277
+ @mixins << cls
278
+ make_abstract(cls)
279
+ no_proxy(cls)
280
+ post_processors << :fix_interface_mixin
281
+ self
282
+ end
283
+
284
+ def abstract?(cls)
285
+ @abstracts.has_key?(cls) && @abstracts[cls]
286
+ end
287
+
288
+ def concrete?(cls)
289
+ @abstracts.has_key?(cls) && !@abstracts[cls]
290
+ end
291
+
292
+ def mixin?(cls)
293
+ @mixins.include?(cls)
294
+ end
295
+
296
+ def include_mixin(cls, *module_names)
297
+ (@included_mixins[cls] ||= ::Set.new).merge module_names.flatten
298
+ self
299
+ end
300
+
301
+ def ignore(*names, ignore_doc: true)
302
+ names.flatten.each {|n| @ignores[n] = ignore_doc}
303
+ self
304
+ end
305
+
306
+ def regard(*names, regard_doc: true)
307
+ names.flatten.each {|n| @regards[n] = regard_doc}
308
+ self
309
+ end
310
+
311
+ def make_readonly(*names)
312
+ @readonly.merge names.flatten
313
+ end
314
+
315
+ def add_contracts(contracts)
316
+ raise 'Need Hash for contracts' unless ::Hash === contracts
317
+ contracts.inject(@contracts) do |hash, (fn, contract)|
318
+ raise "Duplicate contract for #{fn} : #{contract}" if hash.has_key?(fn)
319
+ hash[fn] = contract # should be code string providing contract condition
320
+ hash
321
+ end
322
+ self
323
+ end
324
+ alias :add_contract :add_contracts
325
+
326
+ # shortcut for much needed contract
327
+ def require_app(*names)
328
+ names.flatten.each { |fn| add_contract(fn => 'wxRuby_IsAppRunning()') }
329
+ self
330
+ end
331
+
332
+ def override_events(cls, overrides)
333
+ raise 'Need Hash for event overrides' unless ::Hash === overrides
334
+ overrides.inject(@event_overrides[cls] ||= ::Hash.new) { |hash, (evt, spec)| hash[evt.upcase] = spec; hash }
335
+ self
336
+ end
337
+
338
+ def no_proxy(*names)
339
+ @no_proxies.merge(names.flatten)
340
+ self
341
+ end
342
+
343
+ def disable_proxies
344
+ @disabled_proxies = true
345
+ self
346
+ end
347
+
348
+ def force_proxy(*clsnames)
349
+ @force_proxies.merge(clsnames.flatten)
350
+ self
351
+ end
352
+
353
+ def forced_proxy?(cls)
354
+ @force_proxies.include?(cls)
355
+ end
356
+
357
+ def disown(*decls)
358
+ @disowns.merge(decls.flatten)
359
+ self
360
+ end
361
+
362
+ def new_object(*decls)
363
+ @new_objects.merge(decls.flatten)
364
+ self
365
+ end
366
+
367
+ def suppress_warning(warn, *decls)
368
+ (@warn_filters[warn] ||= ::Set.new).merge(decls.flatten)
369
+ self
370
+ end
371
+
372
+ def set_only_for(id, *names)
373
+ (@only_for[id.to_s] ||= ::Set.new).merge(names.flatten)
374
+ self
375
+ end
376
+
377
+ def include(*paths)
378
+ @includes.merge(paths.flatten)
379
+ self
380
+ end
381
+
382
+ def swig_import(*paths, append_to_base_imports: false)
383
+ @swig_imports[append_to_base_imports ? :append : :prepend].merge(paths.flatten)
384
+ self
385
+ end
386
+
387
+ def swig_include(*paths)
388
+ @swig_includes.merge(paths.flatten)
389
+ self
390
+ end
391
+
392
+ def rename_for_ruby(table)
393
+ table.each_pair do |to,from|
394
+ (@renames[to] ||= []).concat [from].flatten
395
+ end
396
+ self
397
+ end
398
+
399
+ def add_swig_code(*code)
400
+ @swig_code.concat code.flatten
401
+ self
402
+ end
403
+
404
+ def add_begin_code(*code)
405
+ @begin_code.concat code.flatten
406
+ self
407
+ end
408
+
409
+ def add_runtime_code(*code)
410
+ @runtime_code.concat code.flatten
411
+ self
412
+ end
413
+
414
+ def add_header_code(*code)
415
+ @header_code.concat code.flatten
416
+ self
417
+ end
418
+
419
+ def add_wrapper_code(*code)
420
+ @wrapper_code.concat code.flatten
421
+ self
422
+ end
423
+
424
+ def add_init_code(*code)
425
+ @init_code.concat code.flatten
426
+ self
427
+ end
428
+
429
+ def add_interface_code(*code)
430
+ @interface_code.concat code.flatten
431
+ self
432
+ end
433
+
434
+ def has_interface_include?
435
+ !interface_code || interface_code.empty?
436
+ end
437
+
438
+ def interface_include
439
+ "#{File.basename(WXRuby3::Config.instance.interface_dir)}/#{module_name}.h"
440
+ end
441
+
442
+ def interface_include_file
443
+ "#{WXRuby3::Config.instance.interface_path}/#{module_name}.h"
444
+ end
445
+
446
+ def add_extend_code(classname, *code)
447
+ (@extend_code[classname] ||= []).concat code.flatten
448
+ self
449
+ end
450
+
451
+ def do_not_generate(*sections)
452
+ @nogen_sections.merge sections.flatten
453
+ self
454
+ end
455
+
456
+ def to_s
457
+ "<#{module_name}: package=#{package.name}>"
458
+ end
459
+
460
+ def inspect
461
+ to_s
462
+ end
463
+
464
+ end
465
+
466
+ end # Director
467
+
468
+ end