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,593 @@
1
+ ###
2
+ # wxRuby3 base interface Analyzer class
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require 'monitor'
7
+
8
+ require_relative '../core/spec_helper'
9
+
10
+ module WXRuby3
11
+
12
+ class InterfaceAnalyzer
13
+
14
+ class InterfaceRegistry
15
+ include MonitorMixin
16
+
17
+ def initialize
18
+ super
19
+ @registry = {}
20
+ end
21
+
22
+ def has_class?(clsnm)
23
+ self.synchronize do
24
+ @registry.has_key?(clsnm)
25
+ end
26
+ end
27
+
28
+ def class_registry(clsnm)
29
+ self.synchronize do
30
+ @registry[clsnm]
31
+ end
32
+ end
33
+
34
+ def add_class_registry(clsnm, reg)
35
+ self.synchronize do
36
+ raise "!!ERROR: duplicate interface registry for class #{clsnm}" if @registry.has_key?(clsnm)
37
+ @registry[clsnm] = reg
38
+ end
39
+ end
40
+ end
41
+
42
+ class ClassRegistry
43
+ def initialize
44
+ @registry = {members: {public: [], protected: []}, methods: {}, extension_methods: {}}
45
+ end
46
+
47
+ def public_members
48
+ @registry[:members][:public]
49
+ end
50
+
51
+ def protected_members
52
+ @registry[:members][:protected]
53
+ end
54
+
55
+ def method_table
56
+ @registry[:methods]
57
+ end
58
+
59
+ def extension_methods
60
+ @registry[:extension_methods]
61
+ end
62
+
63
+ def extension_method(ext_member)
64
+ extension_methods[ext_member.tr("\n", '')]
65
+ end
66
+ end
67
+
68
+ class ClassProcessor
69
+
70
+ include DirectorSpecsHelper
71
+
72
+ def initialize(director, classdef, doc_gen = false)
73
+ @director = director
74
+ @classdef = classdef
75
+ @doc_gen = doc_gen
76
+ @class_spec_name = if classdef.is_template? && template_as_class?(classdef.name)
77
+ template_class_name(classdef.name)
78
+ else
79
+ classdef.name
80
+ end
81
+ @class_registry = ClassRegistry.new
82
+ end
83
+
84
+ attr_reader :director, :classdef, :class_spec_name, :class_registry
85
+
86
+ def item_ignored?(item)
87
+ @doc_gen ? item.docs_ignored : item.ignored
88
+ end
89
+ private :item_ignored?
90
+
91
+ def register_interface_member(member, req_pure_virt=false)
92
+ reg = if declare_public?(@classdef, member)
93
+ class_registry.public_members << member
94
+ true
95
+ elsif Extractor::MethodDef === member # no need to register anything but methods protected
96
+ class_registry.protected_members << member
97
+ true
98
+ else
99
+ false
100
+ end
101
+ if reg && Extractor::MethodDef === member && !member.is_ctor && !member.is_dtor && !member.is_static
102
+ class_registry.method_table[member.signature] = {
103
+ method: member,
104
+ virtual: member.is_virtual,
105
+ purevirt: req_pure_virt && member.is_pure_virtual,
106
+ proxy: has_method_proxy?(class_spec_name, member)
107
+ }
108
+ end
109
+ end
110
+
111
+ def parse_method_decl(decl, visibility)
112
+ if /\A\s*(virtual\s|static\s)?\s*(.*\W)?(\w+)\s*\(([^\)]*)\)(\s+const)?(\soverride)?/ =~ decl
113
+ type = $2.to_s.strip
114
+ arglist = $4.strip
115
+ kwargs = {
116
+ is_virtual: $1 && $1.strip == 'virtual',
117
+ is_static: $1 && $1.strip == 'static',
118
+ name: $3.strip,
119
+ is_const: $5 && $5.strip == 'const',
120
+ is_override: $6 && $6.strip == 'override',
121
+ args_string: "(#{arglist})#{$5}",
122
+ protection: visibility
123
+ }
124
+ swig_clsnm = class_name(class_spec_name)
125
+ if type == '~' && swig_clsnm == kwargs[:name]
126
+ kwargs[:is_dtor] = true
127
+ elsif type.empty? && swig_clsnm == kwargs[:name]
128
+ kwargs[:is_ctor] =true
129
+ else
130
+ kwargs[:type] = type
131
+ end
132
+ mtdef = Extractor::MethodDef.new(nil, class_spec_name, **kwargs)
133
+ arglist.split(',').each do |arg|
134
+ if /\A(.*[\s\*\&])(\w+)\s*(\[\s*\])?(\s*=\s*(\S+|".*"\s*))?\Z/ =~ arg.strip
135
+ mtdef.items << Extractor::ParamDef.new(nil,
136
+ name: $2.to_s,
137
+ type: $1.to_s.strip,
138
+ array: !$3.to_s.empty?,
139
+ default: $5)
140
+ else
141
+ raise "Unable to parse argument #{arg} of custom declaration [#{decl}] for class #{class_spec_name}"
142
+ end
143
+ end
144
+ return mtdef
145
+ else
146
+ raise "Unable to parse custom declaration [#{decl}] for class #{class_spec_name}"
147
+ end
148
+ end
149
+
150
+ def parse_member_var_decl(decl, visibility)
151
+ if /\s*(\S.*\W)(\w+)/ =~ decl
152
+ type = $1.to_s.strip
153
+ name = $2.strip
154
+ kwargs = {
155
+ name: name,
156
+ type: type,
157
+ protection: visibility,
158
+ definition: 'interface extension'
159
+ }
160
+ # check for renames
161
+ mvarnm = "#{class_name(class_spec_name)}::#{name}"
162
+ if (rb_name = renames.keys.detect { |rbnm| renames[rbnm].any? { |m| mvarnm == m }})
163
+ kwargs[:rb_name] = rb_name
164
+ end
165
+ return Extractor::MemberVarDef.new(**kwargs)
166
+ else
167
+ raise "Unable to parse custom declaration [#{decl}] for class #{class_spec_name}"
168
+ end
169
+ end
170
+
171
+ def register_custom_interface_member(visibility, member, req_pure_virt)
172
+ member_decl = member.tr("\n", '')
173
+ if /[^\(\)]+\([^\)]*\)[^\(\)]*/ =~ member_decl
174
+ mtdef = parse_method_decl(member_decl, visibility)
175
+ if declare_public?(@classdef, mtdef)
176
+ class_registry.public_members << member
177
+ else
178
+ class_registry.protected_members << member
179
+ end
180
+ class_registry.method_table[mtdef.signature] = {
181
+ method: mtdef,
182
+ virtual: mtdef.is_virtual,
183
+ purevirt: req_pure_virt && mtdef.is_pure_virtual,
184
+ proxy: has_method_proxy?(class_spec_name, mtdef),
185
+ extension: true
186
+ }
187
+ class_registry.extension_methods[member_decl] = mtdef
188
+ elsif /enum\s*(\w+)?\s*\{.*\}/ =~ member_decl
189
+ if visibility == 'public'
190
+ class_registry.public_members << member
191
+ else
192
+ raise "Protected enum extensions not supported: #{member_decl}"
193
+ end
194
+ else
195
+ mvardef = parse_member_var_decl(member_decl, visibility)
196
+ if declare_public?(@classdef, mvardef)
197
+ class_registry.public_members << mvardef
198
+ else
199
+ class_registry.protected_members << mvardef
200
+ end
201
+ end
202
+ end
203
+
204
+ def preprocess_class_method(methoddef, methods, requires_purevirt)
205
+ # skip virtuals that have been overridden
206
+ return if (methoddef.is_virtual && methods.any? { |m| m.signature == methoddef.signature })
207
+ # or that have non-virtual shadowing overloads
208
+ return if (!methoddef.is_virtual && methods.any? { |m| m.name == methoddef.name && m.class_name != methoddef.class_name })
209
+
210
+ # register interface member for later problem analysis
211
+ register_interface_member(methoddef,
212
+ requires_purevirt)
213
+ methods << methoddef
214
+ end
215
+
216
+ def ctor_name(ctor)
217
+ if @classdef.is_template? && template_as_class?(ctor.name)
218
+ template_class_name(ctor.name)
219
+ else
220
+ ctor.name
221
+ end
222
+ end
223
+ private :ctor_name
224
+
225
+ def dtor_name(dtor)
226
+ dtor_name = dtor.name.sub(/~/, '')
227
+ if @classdef.is_template? && template_as_class?(dtor_name)
228
+ template_class_name(dtor_name)
229
+ else
230
+ dtor.name
231
+ end
232
+ end
233
+ private :dtor_name
234
+
235
+ def preprocess_class_members(classdef, visibility, methods, requires_purevirt)
236
+ classdef.items.each do |member|
237
+ case member
238
+ when Extractor::MethodDef
239
+ if member.is_ctor
240
+ if member.protection == visibility && ctor_name(member) == class_spec_name
241
+ if !item_ignored?(member) && !member.deprecated
242
+ register_interface_member(member)
243
+ end
244
+ member.overloads.each do |ovl|
245
+ if ovl.protection == visibility && !item_ignored?(ovl) && !ovl.deprecated
246
+ register_interface_member(ovl)
247
+ end
248
+ end
249
+ end
250
+ elsif member.is_dtor && member.protection == visibility
251
+ if dtor_name(member) == "~#{class_spec_name}"
252
+ register_interface_member(member)
253
+ end
254
+ elsif member.protection == visibility
255
+ if !item_ignored?(member) && !member.deprecated && !member.is_template?
256
+ preprocess_class_method(member, methods, requires_purevirt)
257
+ end
258
+ member.overloads.each do |ovl|
259
+ if ovl.protection == visibility && !item_ignored?(ovl) && !ovl.deprecated && !ovl.is_template?
260
+ preprocess_class_method(ovl, methods, requires_purevirt)
261
+ end
262
+ end
263
+ end
264
+ when Extractor::EnumDef
265
+ if member.protection == visibility && !item_ignored?(member) && !member.deprecated && member.items.any? {|e| !item_ignored?(e) }
266
+ register_interface_member(member)
267
+ end
268
+ when Extractor::MemberVarDef
269
+ if member.protection == visibility && !item_ignored?(member) && !member.deprecated
270
+ register_interface_member(member)
271
+ end
272
+ end
273
+ end
274
+ end
275
+
276
+ def preprocess
277
+ STDERR.puts "** Preprocessing #{module_name} class #{class_spec_name}" if Director.verbose?
278
+ # preprocess any public inner classes
279
+ classdef.innerclasses.each do |inner|
280
+ if inner.protection == 'public' && !item_ignored?(inner) && !inner.deprecated
281
+ register_interface_member(inner)
282
+ end
283
+ end
284
+ # preprocess members (if any)
285
+ requires_purevirtual = has_proxy?(classdef)
286
+ methods = []
287
+ preprocess_class_members(classdef, 'public', methods, requires_purevirtual)
288
+
289
+ folded_bases(classdef.name).each do |basename|
290
+ preprocess_class_members(def_item(basename), 'public', methods, requires_purevirtual)
291
+ end
292
+
293
+ interface_extensions(classdef).each do |extdecl|
294
+ register_custom_interface_member('public', extdecl, requires_purevirtual)
295
+ end
296
+
297
+ need_protected = classdef.regards_protected_members? ||
298
+ !interface_extensions(classdef, 'protected').empty? ||
299
+ folded_bases(classdef.name).any? { |base| def_item(base).regards_protected_members? }
300
+ unless classdef.kind == 'struct' || !need_protected
301
+ preprocess_class_members(classdef, 'protected', methods, requires_purevirtual)
302
+
303
+ folded_bases(classdef.name).each do |basename|
304
+ preprocess_class_members(def_item(basename), 'protected', methods, requires_purevirtual)
305
+ end
306
+
307
+ interface_extensions(classdef, 'protected').each do |extdecl|
308
+ register_custom_interface_member('protected', extdecl, requires_purevirtual)
309
+ end
310
+ end
311
+ end
312
+
313
+ end # ClassProcessor
314
+
315
+ class << self
316
+
317
+ include DirectorSpecsHelper
318
+
319
+ private
320
+
321
+ def director
322
+ Thread.current.thread_variable_get(:IMRDirector)
323
+ end
324
+
325
+ def for_director(dir, &block)
326
+ olddir = Thread.current.thread_variable_get(:IMRDirector)
327
+ begin
328
+ Thread.current.thread_variable_set(:IMRDirector, dir)
329
+ block.call
330
+ ensure
331
+ Thread.current.thread_variable_set(:IMRDirector, olddir)
332
+ end
333
+ end
334
+
335
+ def interface_method_registry
336
+ @registry ||= InterfaceRegistry.new
337
+ end
338
+
339
+ def class_interface_registry(class_name)
340
+ interface_method_registry.class_registry(class_name)
341
+ end
342
+
343
+ def class_interface_methods(class_name)
344
+ class_interface_registry(class_name).method_table
345
+ end
346
+
347
+ def has_class_interface(class_name)
348
+ interface_method_registry.has_class?(class_name)
349
+ end
350
+
351
+ def get_class_interface(package, class_name, doc_gen = false)
352
+ dir = package.director_for_class(class_name)
353
+ raise "Cannot determine director for class #{class_name}" unless dir
354
+ dir.synchronize do
355
+ dir.extract_interface(false) # make sure the Director has extracted data from XML
356
+ # preprocess the items for this director
357
+ for_director(dir) { preprocess(::Set.new, doc_gen) }
358
+ end
359
+ end
360
+
361
+ def gen_enum_typemap(type)
362
+ enum_scope = Extractor::EnumDef.enum_scope(type)
363
+ type_list = enum_scope.empty? ? [type] : [type, "#{enum_scope}::#{type}"]
364
+ rb_enum_name = rb_wx_name(type)
365
+ director.spec.map *type_list, as: rb_enum_name do
366
+ map_in code: <<~__CODE
367
+ int eval;
368
+ if (!wxRuby_GetEnumValue("#{type}", $input, eval))
369
+ {
370
+ VALUE str = rb_inspect($input);
371
+ rb_raise(rb_eArgError,
372
+ "Invalid enum class. Expected %s got %s.",
373
+ "#{rb_enum_name}",
374
+ StringValuePtr(str));
375
+ }
376
+ $1 = static_cast<$1_type>(eval);
377
+ __CODE
378
+ map_out code: <<~__CODE
379
+ $result = wxRuby_GetEnumValueObject("#{type}", static_cast<int>($1));
380
+ __CODE
381
+ map_typecheck precedence: 1, code: <<~__CODE
382
+ $1 = wxRuby_IsEnumValue("#{type}", $input);
383
+ __CODE
384
+ map_directorin code: <<~__CODE
385
+ $input = wxRuby_GetEnumValueObject("#{type}", static_cast<int>($1));
386
+ if ($input == Qnil)
387
+ {
388
+ Swig::DirectorTypeMismatchException::raise(rb_eArgError,
389
+ "Invalid enum value for enum class #{rb_enum_name}.");
390
+ }
391
+ __CODE
392
+ map_directorout code: <<~__CODE
393
+ int eval;
394
+ if (!wxRuby_GetEnumValue("#{type}", $input, eval))
395
+ {
396
+ Swig::DirectorTypeMismatchException::raise(rb_eTypeError,
397
+ "Invalid enum. Expected #{rb_enum_name}.");
398
+ }
399
+ $result = static_cast<$1_type>(eval);
400
+ __CODE
401
+ end
402
+ end
403
+
404
+ def gen_function_enum_typemaps(fndef, enum_maps)
405
+ if !(Extractor::MethodDef === fndef && fndef.is_ctor) &&
406
+ Extractor::EnumDef.enum?(fndef.type) &&
407
+ !enum_maps.include?(fndef.type)
408
+ gen_enum_typemap(fndef.type)
409
+ enum_maps << fndef.type
410
+ end
411
+ fndef.parameters.each do |param|
412
+ if Extractor::EnumDef.enum?(param.type) && !enum_maps.include?(param.type)
413
+ gen_enum_typemap(param.type)
414
+ enum_maps << fndef.type
415
+ end
416
+ end
417
+ end
418
+
419
+ def gen_inner_class_enum_typemaps(clsdef, enum_maps)
420
+ clsdef.items.each do |item|
421
+ case item
422
+ when Extractor::MethodDef
423
+ unless item.is_dtor
424
+ item.all do |ovl|
425
+ gen_function_enum_typemaps(ovl, enum_maps) unless ovl.ignored || ovl.deprecated || ovl.is_template?
426
+ end
427
+ end
428
+ end
429
+ end
430
+ end
431
+
432
+ def gen_class_member_typemaps(cls_spec_name, member, enum_maps)
433
+ case member
434
+ when Extractor::ClassDef
435
+ gen_inner_class_enum_typemaps(member, enum_maps)
436
+ when Extractor::MethodDef
437
+ unless member.is_dtor || class_interface_method_ignored?(cls_spec_name, member)
438
+ gen_function_enum_typemaps(member, enum_maps)
439
+ end
440
+ when ::String
441
+ mtdef = class_interface_registry(cls_spec_name).extension_method(member)
442
+ gen_function_enum_typemaps(mtdef, enum_maps) if mtdef
443
+ end
444
+ end
445
+
446
+ def gen_class_enum_typemaps(cls_spec_name, enum_maps)
447
+ class_interface_members_public(cls_spec_name).each do |member|
448
+ gen_class_member_typemaps(cls_spec_name, member, enum_maps)
449
+ end
450
+ class_interface_members_protected(cls_spec_name).each do |member|
451
+ gen_class_member_typemaps(cls_spec_name, member, enum_maps)
452
+ end
453
+ end
454
+
455
+ def gen_base_class_virtual_typemaps(cls_spec_name, member, enum_maps)
456
+ case member
457
+ when Extractor::MethodDef
458
+ unless member.is_ctor || member.is_dtor || class_interface_method_ignored?(cls_spec_name, member)
459
+ gen_function_enum_typemaps(member, enum_maps) if member.is_virtual
460
+ end
461
+ when ::String
462
+ mtdef = class_interface_registry(cls_spec_name).extension_method(member)
463
+ gen_function_enum_typemaps(mtdef, enum_maps) if mtdef && mtdef.is_virtual
464
+ end
465
+ end
466
+
467
+ def gen_base_class_enum_typemaps(cls_spec_name, enum_maps)
468
+ class_interface_members_public(cls_spec_name).each do |member|
469
+ gen_base_class_virtual_typemaps(cls_spec_name, member, enum_maps)
470
+ end
471
+ class_interface_members_protected(cls_spec_name).each do |member|
472
+ gen_base_class_virtual_typemaps(cls_spec_name, member, enum_maps)
473
+ end
474
+ end
475
+
476
+ def preprocess(enum_maps, doc_gen = false)
477
+ STDERR.puts "** Preprocessing #{module_name}" if Director.trace?
478
+ def_items.each do |item|
479
+ case item
480
+ when Extractor::ClassDef
481
+ if !(doc_gen ? item.docs_ignored : item.ignored) &&
482
+ (!item.is_template? || template_as_class?(item.name)) &&
483
+ !is_folded_base?(item.name)
484
+ clsproc = ClassProcessor.new(director, item, doc_gen)
485
+ unless has_class_interface(clsproc.class_spec_name)
486
+ clsproc.preprocess
487
+ interface_method_registry.add_class_registry(clsproc.class_spec_name, clsproc.class_registry)
488
+ end
489
+ gen_class_enum_typemaps(clsproc.class_spec_name, enum_maps)
490
+ end
491
+ when Extractor::FunctionDef
492
+ item.all.each do |ovl|
493
+ gen_function_enum_typemaps(ovl, enum_maps) unless ovl.ignored || ovl.is_template? || ovl.deprecated
494
+ end
495
+ end
496
+ end
497
+ end
498
+
499
+ public
500
+
501
+ def check_for_interface(class_name, package)
502
+ get_class_interface(package, class_name) unless has_class_interface(class_name)
503
+ end
504
+
505
+ def class_interface_members_public(class_name)
506
+ class_interface_registry(class_name).public_members
507
+ end
508
+
509
+ def class_interface_members_protected(class_name)
510
+ class_interface_registry(class_name).protected_members
511
+ end
512
+
513
+ def class_interface_extension_methods(class_name)
514
+ class_interface_registry(class_name).extension_methods
515
+ end
516
+
517
+ def class_interface_method_ignored?(class_name, mtdef)
518
+ !!(class_interface_methods(class_name)[mtdef.signature] || {})[:ignore]
519
+ end
520
+
521
+ def check_interface_methods(director, doc_gen: false)
522
+ for_director(director) do
523
+ enum_maps = ::Set.new
524
+ # preprocess definitions if not yet done
525
+ preprocess(enum_maps, doc_gen)
526
+ # check the preprocessed definitions
527
+ errors = []
528
+ warnings = []
529
+ def_items.each do |item|
530
+ if Extractor::ClassDef === item && !(doc_gen ? item.docs_ignored : item.ignored) &&
531
+ (!item.is_template? || template_as_class?(item.name)) &&
532
+ !is_folded_base?(item.name)
533
+ intf_class_name = if item.is_template? || template_as_class?(item.name)
534
+ template_class_name(item.name)
535
+ else
536
+ item.name
537
+ end
538
+ # this should not happen
539
+ raise "Missing preprocessed data for class #{intf_class_name}" unless has_class_interface(intf_class_name)
540
+ # get the class's method registry
541
+ cls_mtdreg = class_interface_methods(intf_class_name)
542
+ # check all directly inherited generated methods
543
+ mtdlist = ::Set.new # remember handled signatures
544
+ base_list(item).each do |base_name|
545
+ # get 'real' base name (i.e. take renames into account)
546
+ base_name = ifspec.classdef_name(base_name)
547
+ # make sure the base class has been preprocessed
548
+ get_class_interface(package, base_name, doc_gen) unless has_class_interface(base_name)
549
+ # generate any required enum typemaps for inherited virtuals
550
+ gen_base_class_enum_typemaps(base_name, enum_maps)
551
+ # iterate the base class's method registrations
552
+ class_interface_methods(base_name).each_pair do |mtdsig, mtdreg|
553
+ # only check on methods we have not handled yet
554
+ if !mtdlist.include?(mtdsig)
555
+ # did we inherit a virtual method that was not proxied in the base
556
+ if mtdreg[:virtual] && !mtdreg[:proxy]
557
+ # if we did NOT generate a wrapper override and we do not have the proxy suppressed we're in trouble
558
+ if !cls_mtdreg.has_key?(mtdsig) && has_method_proxy?(item.name, mtdreg[:method])
559
+ errors << "* ERROR: method #{mtdreg[:method].signature} is proxied without wrapper implementation in class #{item.name} but not proxied in base class #{base_name}!"
560
+ elsif cls_mtdreg.has_key?(mtdsig) && !cls_mtdreg[mtdsig][:extension] && !has_method_proxy?(item.name, cls_mtdreg[mtdsig][:method])
561
+ # if this is not a custom extension and we do have an override wrapper and no proxy this is unnecessary code bloat
562
+ warnings << " * WARNING: Unnecessary override #{mtdreg[:method].signature} in class #{item.name} for non-proxied base in #{base_name}. Ignoring."
563
+ cls_mtdreg[mtdsig][:ignore] = true
564
+ end
565
+ # or did we inherit a virtual method that was proxied in the base
566
+ # for which we DO generate a wrapper override
567
+ elsif mtdreg[:virtual] && mtdreg[:proxy] && cls_mtdreg.has_key?(mtdsig)
568
+ # if we do not have a proxy as well we're in trouble
569
+ if !has_method_proxy?(item, mtdreg[:method])
570
+ errors << "* ERROR: method #{mtdreg[:method].signature} is NOT proxied with an overriden wrapper implementation in class #{item.name} but is also implemented and proxied in base class #{base_name}!"
571
+ end
572
+ end
573
+ mtdlist << mtdsig
574
+ end
575
+ end
576
+ end
577
+ end
578
+ end
579
+ unless warnings.empty? || doc_gen
580
+ warnings.each { |warn| STDERR.puts warn } if Director.verbose?
581
+ end
582
+ unless errors.empty?
583
+ errors.each {|err| STDERR.puts err }
584
+ raise "Errors found generating for module #{module_name} from package #{package.name}"
585
+ end
586
+ end
587
+ end
588
+
589
+ end
590
+
591
+ end # InterfaceAnalyzer
592
+
593
+ end
@@ -0,0 +1,37 @@
1
+ ###
2
+ # wxRuby3 base Generator class
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative '../core/spec_helper'
7
+
8
+ module WXRuby3
9
+
10
+ class Generator
11
+
12
+ include DirectorSpecsHelper
13
+
14
+ private
15
+
16
+ attr_reader :director
17
+
18
+ public
19
+
20
+ def initialize(dir)
21
+ @director = dir
22
+ end
23
+
24
+ def run
25
+ end
26
+
27
+ def to_s
28
+ "<#{ifspec.module_name}>"
29
+ end
30
+
31
+ def inspect
32
+ to_s
33
+ end
34
+
35
+ end # class Generator
36
+
37
+ end # module WXRuby3