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,390 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative './window'
7
+
8
+ module WXRuby3
9
+
10
+ class Director
11
+
12
+ class GridCtrl < Window
13
+
14
+ include Typemap::GridCoords
15
+
16
+ def setup
17
+ # replace before calling super
18
+ spec.items.replace %w[wxGrid]
19
+ super
20
+ spec.gc_as_window
21
+ spec.override_inheritance_chain('wxGrid', %w[wxScrolledCanvas wxWindow wxEvtHandler wxObject])
22
+ spec.no_proxy 'wxGrid::SendAutoScrollEvents'
23
+ # All of the methods have alternate versions that accept row, col pair
24
+ # of integers, so these are redundant
25
+ spec.ignore 'wxGrid::CellToRect(const wxGridCellCoords &)'
26
+ spec.ignore 'wxGrid::GetCellValue(const wxGridCellCoords &)'
27
+ spec.ignore 'wxGrid::GetDefaultEditorForCell(const wxGridCellCoords &) const'
28
+ spec.ignore 'wxGrid::IsInSelection(const wxGridCellCoords &) const'
29
+ spec.ignore 'wxGrid::IsVisible(const wxGridCellCoords &,bool)'
30
+ spec.ignore 'wxGrid::MakeCellVisible(const wxGridCellCoords &)'
31
+ spec.ignore 'wxGrid::SelectBlock(const wxGridCellCoords &,const wxGridCellCoords &,bool)'
32
+ spec.ignore 'wxGrid::SetCellValue(const wxGridCellCoords &,const wxString &)'
33
+ # these have overloads that have more useful returns
34
+ spec.ignore 'wxGrid::CalcGridWindowUnscrolledPosition(int,int,int *,int *,const wxGridWindow *) const',
35
+ 'wxGrid::CalcGridWindowScrolledPosition(int,int,int *,int *,const wxGridWindow *) const'
36
+ # deprecated
37
+ spec.ignore 'wxGrid::SetCellAlignment(int,int,int)'
38
+ spec.ignore 'wxGrid::SetCellTextColour(const wxColour &)'
39
+ spec.ignore 'wxGrid::SetCellTextColour(const wxColour &,int,int)'
40
+ spec.ignore 'wxGrid::SetCellValue(const wxString &,int,int)'
41
+ spec.ignore 'wxGrid::SetTable' # there is wxGrid::AssignTable now that always takes ownership
42
+
43
+ spec.ignore 'wxGrid::GetSelectedBlocks' # for now (flawed interface)
44
+
45
+ spec.add_header_code <<~__HEREDOC
46
+ typedef wxGrid::wxGridSelectionModes wxGridSelectionModes;
47
+ typedef wxGrid::CellSpan CellSpan;
48
+ typedef wxGrid::TabBehaviour TabBehaviour;
49
+ __HEREDOC
50
+ # Needed for methods that return cell and label alignments and other argout type mappings
51
+ spec.map_apply 'int *OUTPUT' => [ 'int *horiz', 'int *vert' ,
52
+ 'int *num_rows', 'int *num_cols' ]
53
+ # If invalid grid-cell co-ordinates are passed into wxWidgets,
54
+ # segfaults may result, so check to avoid this.
55
+ spec.map 'int row', 'int col' do
56
+ map_check code: <<~__CODE
57
+ if ( $1 < 0 )
58
+ rb_raise(rb_eIndexError, "Negative grid cell co-ordinate is not valid");
59
+ __CODE
60
+ end
61
+ spec.add_swig_code <<~__HEREDOC
62
+ enum wxGridSelectionModes;
63
+ enum CellSpan;
64
+ enum TabBehaviour;
65
+ __HEREDOC
66
+ spec.ignore 'wxGrid::GetOrCreateCellAttrPtr' # ignore this variant
67
+ # wxWidgets takes over managing the ref count
68
+ spec.disown('wxGridTableBase* table')
69
+ # customize mark function to handle safeguarding any customized Grid tables installed
70
+ spec.add_header_code <<~__HEREDOC
71
+ static void GC_mark_wxGridCtrl(void* ptr)
72
+ {
73
+ #ifdef __WXRB_DEBUG__
74
+ if (wxRuby_TraceLevel()>1)
75
+ std::wcout << "> GC_mark_wxGridCtrl : " << ptr << std::endl;
76
+ #endif
77
+ if ( GC_IsWindowDeleted(ptr) )
78
+ {
79
+ return;
80
+ }
81
+ // Do standard marking routines as for all wxWindows
82
+ GC_mark_wxWindow(ptr);
83
+
84
+ // check grid table base marking need
85
+ wxGrid* wx_gc = (wxGrid*) ptr;
86
+ wxGridTableBase* wx_gtbl = wx_gc->GetTable();
87
+ VALUE rb_gtbl = SWIG_RubyInstanceFor(wx_gtbl);
88
+ if (!NIL_P(rb_gtbl))
89
+ {
90
+ rb_gc_mark(rb_gtbl);
91
+ }
92
+ }
93
+ __HEREDOC
94
+ spec.add_swig_code '%markfunc wxGrid "GC_mark_wxGridCtrl";'
95
+ # these require wxRuby to take ownership (ref counted)
96
+ spec.new_object('wxGrid::GetOrCreateCellAttr',
97
+ 'wxGrid::GetCellEditor',
98
+ 'wxGrid::GetDefaultEditor',
99
+ 'wxGrid::GetDefaultEditorForCell',
100
+ 'wxGrid::GetDefaultEditorForType',
101
+ 'wxGrid::GetCellRenderer',
102
+ 'wxGrid::GetDefaultRenderer',
103
+ 'wxGrid::GetDefaultRendererForCell',
104
+ 'wxGrid::GetDefaultRendererForType')
105
+ # handled; can be suppressed
106
+ spec.suppress_warning(473,
107
+ 'wxGrid::GetDefaultEditorForCell',
108
+ 'wxGrid::GetDefaultEditorForType',
109
+ 'wxGrid::GetDefaultRendererForCell',
110
+ 'wxGrid::GetDefaultRendererForType')
111
+ # Add custom code to handle GC marking for Grid cell attributes, editors and renderers.
112
+ # Ruby created instances of these are registered in global tables whenever they are assigned to
113
+ # a Grid (for a cell, default or named type). The global tables will be scanned during the GC marking stage
114
+ # and any registered instances marked.
115
+ # We define specialized wxClientData derivatives for the three types of classes we need to
116
+ # manage GC for which are associated with an attribute/editor/renderer instance through SetClientObject()
117
+ # at the moment of registration (which is actually performed on creation of the client data object).
118
+ # Whenever an attribute/editor/renderer is deleted (bc it's ref count reached zero) it will also delete
119
+ # the associated client data object which will at that moment deregister the associated attribute/editor
120
+ # or renderer instance from the global table thus freeing it for GC collection.
121
+ spec.add_header_code <<~__HEREDOC
122
+ #include <wx/clntdata.h>
123
+
124
+ // declare the global table for grid cell attributes
125
+ WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
126
+ WXRBGridCellAttrValueHash);
127
+ static WXRBGridCellAttrValueHash Grid_Cell_Attr_Value_Map;
128
+
129
+ static void wxRuby_UnregisterGridCellAttr(wxGridCellAttr* wx_attr)
130
+ {
131
+ #ifdef __WXRB_DEBUG__
132
+ if (wxRuby_TraceLevel()>1)
133
+ std::wcout << "** wxRuby_UnregisterGridCellAttr : " << wx_attr << ":" << (void*)Grid_Cell_Attr_Value_Map[wx_attr] << std::endl;
134
+ #endif
135
+ if (Grid_Cell_Attr_Value_Map.count(wx_attr) != 0)
136
+ {
137
+ VALUE object = Grid_Cell_Attr_Value_Map[wx_attr];
138
+ if (object && !NIL_P(object))
139
+ {
140
+ DATA_PTR(object) = 0; // unlink
141
+ }
142
+ Grid_Cell_Attr_Value_Map.erase(wx_attr);
143
+ }
144
+ }
145
+
146
+ extern VALUE wxRuby_GridCellAttrInstance(wxGridCellAttr* wx_attr)
147
+ {
148
+ if (Grid_Cell_Attr_Value_Map.count(wx_attr) == 0)
149
+ return Qnil;
150
+ else
151
+ return Grid_Cell_Attr_Value_Map[wx_attr];
152
+ }
153
+
154
+ // specialized client data class
155
+ class WXRBGridCellAttrMonitor : public wxClientData
156
+ {
157
+ public:
158
+ WXRBGridCellAttrMonitor() : wx_attr(0), rb_attr(Qnil) {}
159
+ WXRBGridCellAttrMonitor(wxGridCellAttr* a, VALUE v) : wx_attr(a), rb_attr(v)
160
+ { Grid_Cell_Attr_Value_Map[wx_attr] = rb_attr; }
161
+ virtual ~WXRBGridCellAttrMonitor()
162
+ { wxRuby_UnregisterGridCellAttr(wx_attr); }
163
+ private:
164
+ wxGridCellAttr* wx_attr;
165
+ VALUE rb_attr;
166
+ };
167
+
168
+ // and it's associated registration/de-registration functions
169
+ extern void wxRuby_RegisterGridCellAttr(wxGridCellAttr* wx_attr, VALUE rb_attr)
170
+ {
171
+ if (wx_attr && !NIL_P(rb_attr))
172
+ {
173
+ // always (keep) disown(ed); wxWidgets takes over ownership
174
+ RDATA(rb_attr)->dfree = 0;
175
+ if (Grid_Cell_Attr_Value_Map.count(wx_attr) == 0)
176
+ {
177
+ #ifdef __WXRB_DEBUG__
178
+ if (wxRuby_TraceLevel()>1)
179
+ std::wcout << "** wxRuby_RegisterGridCellAttr : " << wx_attr << ":" << (void*)rb_attr << std::endl;
180
+ #endif
181
+ wx_attr->SetClientObject(new WXRBGridCellAttrMonitor(wx_attr, rb_attr));
182
+ }
183
+ }
184
+ }
185
+
186
+ // define the grid cell attribute marker
187
+ static void wxRuby_markGridCellAttr()
188
+ {
189
+ WXRBGridCellAttrValueHash::iterator it;
190
+ for( it = Grid_Cell_Attr_Value_Map.begin(); it != Grid_Cell_Attr_Value_Map.end(); ++it )
191
+ {
192
+ VALUE obj = it->second;
193
+ rb_gc_mark(obj);
194
+ }
195
+ }
196
+
197
+ // declare the global table for grid cell editors
198
+ WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
199
+ WXRBGridCellEditorValueHash);
200
+ static WXRBGridCellEditorValueHash Grid_Cell_Editor_Value_Map;
201
+
202
+ static void wxRuby_UnregisterGridCellEditor(wxGridCellEditor* wx_edt)
203
+ {
204
+ #ifdef __WXRB_DEBUG__
205
+ if (wxRuby_TraceLevel()>1)
206
+ std::wcout << "** wxRuby_UnregisterGridCellEditor : " << wx_edt << ":" << (void*)Grid_Cell_Editor_Value_Map[wx_edt] << std::endl;
207
+ #endif
208
+ if (Grid_Cell_Editor_Value_Map.count(wx_edt) != 0)
209
+ {
210
+ VALUE object = Grid_Cell_Editor_Value_Map[wx_edt];
211
+ if (object && !NIL_P(object))
212
+ {
213
+ DATA_PTR(object) = 0; // unlink
214
+ }
215
+ Grid_Cell_Editor_Value_Map.erase(wx_edt);
216
+ }
217
+ }
218
+
219
+ extern VALUE wxRuby_GridCellEditorInstance(wxGridCellEditor* wx_edt)
220
+ {
221
+ if (Grid_Cell_Editor_Value_Map.count(wx_edt) == 0)
222
+ return Qnil;
223
+ else
224
+ return Grid_Cell_Editor_Value_Map[wx_edt];
225
+ }
226
+
227
+ // specialized client data class
228
+ class WXRBGridCellEditorMonitor : public wxClientData
229
+ {
230
+ public:
231
+ WXRBGridCellEditorMonitor() : wx_edt(0), rb_edt(Qnil) {}
232
+ WXRBGridCellEditorMonitor(wxGridCellEditor* a, VALUE v) : wx_edt(a), rb_edt(v)
233
+ { Grid_Cell_Editor_Value_Map[wx_edt] = rb_edt; }
234
+ virtual ~WXRBGridCellEditorMonitor()
235
+ { wxRuby_UnregisterGridCellEditor(wx_edt); }
236
+ private:
237
+ wxGridCellEditor* wx_edt;
238
+ VALUE rb_edt;
239
+ };
240
+
241
+ // and it's associated registration function
242
+ extern void wxRuby_RegisterGridCellEditor(wxGridCellEditor* wx_edt, VALUE rb_edt)
243
+ {
244
+ if (wx_edt && !NIL_P(rb_edt))
245
+ {
246
+ // always (keep) disown(ed); wxWidgets takes over ownership
247
+ RDATA(rb_edt)->dfree = 0;
248
+ if (Grid_Cell_Editor_Value_Map.count(wx_edt) == 0)
249
+ {
250
+ #ifdef __WXRB_DEBUG__
251
+ if (wxRuby_TraceLevel()>1)
252
+ std::wcout << "** wxRuby_RegisterGridCellEditor : " << wx_edt << ":" << (void*)rb_edt << std::endl;
253
+ #endif
254
+ wx_edt->SetClientObject(new WXRBGridCellEditorMonitor(wx_edt, rb_edt));
255
+ }
256
+ }
257
+ }
258
+
259
+ // define the grid cell editor marker
260
+ static void wxRuby_markGridCellEditor()
261
+ {
262
+ WXRBGridCellEditorValueHash::iterator it;
263
+ for( it = Grid_Cell_Editor_Value_Map.begin(); it != Grid_Cell_Editor_Value_Map.end(); ++it )
264
+ {
265
+ VALUE obj = it->second;
266
+ rb_gc_mark(obj);
267
+ }
268
+ }
269
+
270
+ // declare the global table for grid cell renderer
271
+ WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
272
+ WXRBGridCellRendererValueHash);
273
+ static WXRBGridCellRendererValueHash Grid_Cell_Renderer_Value_Map;
274
+
275
+ static void wxRuby_UnregisterGridCellRenderer(wxGridCellRenderer* wx_rnd)
276
+ {
277
+ #ifdef __WXRB_DEBUG__
278
+ if (wxRuby_TraceLevel()>1)
279
+ std::wcout << "** wxRuby_UnregisterGridCellRenderer : " << wx_rnd << ":" << (void*)Grid_Cell_Renderer_Value_Map[wx_rnd] << std::endl;
280
+ #endif
281
+ if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) != 0)
282
+ {
283
+ VALUE object = Grid_Cell_Renderer_Value_Map[wx_rnd];
284
+ if (object && !NIL_P(object))
285
+ {
286
+ DATA_PTR(object) = 0; // unlink
287
+ }
288
+ Grid_Cell_Renderer_Value_Map.erase(wx_rnd);
289
+ }
290
+ }
291
+
292
+ extern VALUE wxRuby_GridCellRendererInstance(wxGridCellRenderer* wx_rnd)
293
+ {
294
+ if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) == 0)
295
+ return Qnil;
296
+ return Grid_Cell_Renderer_Value_Map[wx_rnd];
297
+ }
298
+
299
+ // specialized client data class
300
+ class WXRBGridCellRendererMonitor : public wxClientData
301
+ {
302
+ public:
303
+ WXRBGridCellRendererMonitor() : wx_rnd(0), rb_rnd(Qnil) {}
304
+ WXRBGridCellRendererMonitor(wxGridCellRenderer* a, VALUE v) : wx_rnd(a), rb_rnd(v)
305
+ { Grid_Cell_Renderer_Value_Map[wx_rnd] = rb_rnd; }
306
+ virtual ~WXRBGridCellRendererMonitor()
307
+ { wxRuby_UnregisterGridCellRenderer(wx_rnd); }
308
+ private:
309
+ wxGridCellRenderer* wx_rnd;
310
+ VALUE rb_rnd;
311
+ };
312
+
313
+ // and it's associated registration/de-registration functions
314
+ extern void wxRuby_RegisterGridCellRenderer(wxGridCellRenderer* wx_rnd, VALUE rb_rnd)
315
+ {
316
+ if (wx_rnd && !NIL_P(rb_rnd))
317
+ {
318
+ // always (keep) disowned(ed); wxWidgets takes over ownership
319
+ RDATA(rb_rnd)->dfree = 0;
320
+ if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) == 0)
321
+ {
322
+ #ifdef __WXRB_DEBUG__
323
+ if (wxRuby_TraceLevel()>1)
324
+ std::wcout << "** wxRuby_RegisterGridCellRenderer : registering " << wx_rnd << ":" << (void*)rb_rnd << std::endl;
325
+ #endif
326
+ wx_rnd->SetClientObject(new WXRBGridCellRendererMonitor(wx_rnd, rb_rnd));
327
+ }
328
+ }
329
+ }
330
+
331
+ // define the grid cell renderer marker
332
+ static void wxRuby_markGridCellRenderer()
333
+ {
334
+ WXRBGridCellRendererValueHash::iterator it;
335
+ for( it = Grid_Cell_Renderer_Value_Map.begin(); it != Grid_Cell_Renderer_Value_Map.end(); ++it )
336
+ {
337
+ VALUE obj = it->second;
338
+ rb_gc_mark(obj);
339
+ }
340
+ }
341
+
342
+ __HEREDOC
343
+ # register the markers at module initialization
344
+ spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markGridCellAttr);',
345
+ 'wxRuby_AppendMarker(wxRuby_markGridCellEditor);',
346
+ 'wxRuby_AppendMarker(wxRuby_markGridCellRenderer);'
347
+ # add type mappings to handle registration
348
+ # first declare 'normal' type mapping for const pointer (for DrawCellHighlight)
349
+ spec.map 'const wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
350
+ map_check code: 'wxRuby_RegisterGridCellAttr($1, argv[$argnum-2]);'
351
+ end
352
+ # next handle registering mappings
353
+ spec.map 'wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
354
+ map_out code: <<~__CODE
355
+ $result = wxRuby_GridCellAttrInstance($1); // check for already registered instance
356
+ if (NIL_P($result))
357
+ {
358
+ // created by wxWidgets itself
359
+ // convert and register
360
+ $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxGridCellAttr, 0);
361
+ wxRuby_RegisterGridCellAttr($1, $result);
362
+ }
363
+ __CODE
364
+ map_check code: 'wxRuby_RegisterGridCellAttr($1, argv[$argnum-2]);'
365
+ end
366
+ spec.map 'wxGridCellEditor *' => 'Wx::GRID::GridCellEditor' do
367
+ add_header_code 'extern VALUE wxRuby_WrapWxGridCellEditorInRuby(const wxGridCellEditor *wx_gce);'
368
+ map_out code: '$result = wxRuby_WrapWxGridCellEditorInRuby($1);'
369
+ map_check code: 'wxRuby_RegisterGridCellEditor($1, argv[$argnum-2]);'
370
+ end
371
+ spec.map 'wxGridCellRenderer *' => 'Wx::GRID::GridCellRenderer' do
372
+ add_header_code 'extern VALUE wxRuby_WrapWxGridCellRendererInRuby(const wxGridCellRenderer *wx_gcr);'
373
+ map_out code: '$result = wxRuby_WrapWxGridCellRendererInRuby($1);'
374
+ map_check code: 'wxRuby_RegisterGridCellRenderer($1, argv[$argnum-2]);'
375
+ end
376
+ # add constants missing from documentation
377
+ spec.add_swig_code '%constant char* wxGRID_VALUE_STRING = "string";',
378
+ '%constant char* wxGRID_VALUE_BOOL = "bool";',
379
+ '%constant char* wxGRID_VALUE_NUMBER = "long";',
380
+ '%constant char* wxGRID_VALUE_FLOAT = "double";',
381
+ '%constant char* wxGRID_VALUE_CHOICE = "choice";',
382
+ '%constant char* wxGRID_VALUE_DATE = "date";',
383
+ '%constant char* wxGRID_VALUE_TEXT = "string";',
384
+ '%constant char* wxGRID_VALUE_LONG = "long";'
385
+ end
386
+ end # class GridCtrl
387
+
388
+ end # class Director
389
+
390
+ end # module WXRuby3
@@ -0,0 +1,23 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative './event'
7
+
8
+ module WXRuby3
9
+
10
+ class Director
11
+
12
+ class GridRangeSelectEvent < Event
13
+
14
+ include Typemap::GridCoords
15
+
16
+ def setup
17
+ super
18
+ end
19
+ end # class GridRangeSelectEvent
20
+
21
+ end # class Director
22
+
23
+ end # module WXRuby3
@@ -0,0 +1,63 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ module WXRuby3
7
+
8
+ class Director
9
+
10
+ class GridTableBase < Director
11
+
12
+ def setup
13
+ super
14
+ spec.ignore %w[
15
+ wxGridTableBase::CanHaveAttributes
16
+ wxGridTableBase::GetAttrProvider
17
+ wxGridTableBase::SetAttrProvider
18
+ wxGridTableBase::GetAttrPtr
19
+ wxGridTableBase::GetValueAsCustom
20
+ wxGridTableBase::SetValueAsCustom]
21
+ spec.map 'wxGridCellAttr::wxAttrKind' do
22
+ map_directorin code: '$input = INT2NUM($1);'
23
+ end
24
+ # wxWidgets takes over managing the ref count
25
+ spec.disown('wxGridCellAttr* attr')
26
+ # handle registering mapping
27
+ spec.map 'wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
28
+ add_header_code 'extern void wxRuby_RegisterGridCellAttr(wxGridCellAttr* wx_attr, VALUE rb_attr);',
29
+ 'extern VALUE wxRuby_GridCellAttrInstance(wxGridCellAttr* wx_attr);'
30
+ map_out code: <<~__CODE
31
+ $result = wxRuby_GridCellAttrInstance($1); // check for already registered instance
32
+ if (NIL_P($result))
33
+ {
34
+ // created by wxWidgets itself
35
+ // convert and register
36
+ $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxGridCellAttr, 0);
37
+ wxRuby_RegisterGridCellAttr($1, $result);
38
+ }
39
+ __CODE
40
+ map_directorin code: <<~__CODE
41
+ $input = wxRuby_GridCellAttrInstance($1); // check for already registered instance
42
+ if (NIL_P($input))
43
+ {
44
+ // created by wxWidgets itself
45
+ // convert and register
46
+ $input = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxGridCellAttr, 0);
47
+ wxRuby_RegisterGridCellAttr($1, $input);
48
+ }
49
+ __CODE
50
+ map_check code: 'wxRuby_RegisterGridCellAttr($1, argv[$argnum-2]);'
51
+ end
52
+ # this requires wxRuby to take ownership (ref counted)
53
+ spec.new_object 'wxGridTableBase::GetAttr'
54
+ # these warnings are handled and can be suppressed
55
+ spec.suppress_warning(473,
56
+ 'wxGridTableBase::GetAttr',
57
+ 'wxGridTableBase::GetView')
58
+ end
59
+ end # class GridTableBase
60
+
61
+ end # class Director
62
+
63
+ end # module WXRuby3
@@ -0,0 +1,20 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ module WXRuby3
7
+
8
+ class Director
9
+
10
+ class GridTableMessage < Director
11
+
12
+ def setup
13
+ super
14
+ spec.gc_as_temporary
15
+ end
16
+ end # class GridTableMessage
17
+
18
+ end # class Director
19
+
20
+ end # module WXRuby3
@@ -0,0 +1,75 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ module WXRuby3
7
+
8
+ class Director
9
+
10
+ class HelpController < Director
11
+
12
+ def setup
13
+ super
14
+ spec.items << 'wxHelpControllerBase'
15
+ spec.fold_bases(spec.module_name => 'wxHelpControllerBase')
16
+ spec.rename_for_ruby('Init' => "#{spec.module_name}::Initialize")
17
+ # ignore these (pure virtual) decls
18
+ spec.ignore %w[
19
+ wxHelpControllerBase::DisplayBlock
20
+ wxHelpControllerBase::DisplaySection
21
+ wxHelpControllerBase::LoadFile
22
+ wxHelpControllerBase::Quit
23
+ ]
24
+ # and add them as the implemented overrides they are
25
+ spec.extend_interface spec.module_name,
26
+ 'virtual bool DisplayBlock(long blockNo)',
27
+ 'virtual bool DisplaySection(int sectionNo)',
28
+ 'virtual bool LoadFile(const wxString &file=wxEmptyString)',
29
+ 'virtual bool Quit()'
30
+ # ignore this problematic method
31
+ spec.ignore 'wxHelpControllerBase::GetFrameParameters'
32
+ # and add a customized version
33
+ spec.add_extend_code spec.module_name, <<~__HEREDOC
34
+ VALUE GetFrameParameters()
35
+ {
36
+ wxFrame *result = 0;
37
+ wxSize size;
38
+ wxPoint pos;
39
+ bool newFrameEachTime;
40
+ result = $self->GetFrameParameters(&size, &pos, &newFrameEachTime);
41
+ VALUE rc = Qnil;
42
+ if (result)
43
+ {
44
+ rc = rb_ary_new();
45
+ rb_ary_push(rc, wxRuby_WrapWxObjectInRuby(result));
46
+ rb_ary_push(rc, SWIG_NewPointerObj(SWIG_as_voidptr(&size), SWIGTYPE_p_wxSize, 0));
47
+ rb_ary_push(rc, SWIG_NewPointerObj(SWIG_as_voidptr(&pos), SWIGTYPE_p_wxPoint, 0));
48
+ rb_ary_push(rc, newFrameEachTime ? Qtrue : Qfalse);
49
+ }
50
+ return rc;
51
+ }
52
+ __HEREDOC
53
+ if spec.module_name == 'wxHtmlHelpController'
54
+ spec.ignore 'wxHtmlHelpController::CreateHelpFrame'
55
+ spec.suppress_warning(473,
56
+ 'wxHtmlHelpController::GetParentWindow')
57
+ elsif spec.module_name == 'wxExtHelpController'
58
+ spec.ignore %w[
59
+ wxExtHelpController::DisplayBlock
60
+ wxExtHelpController::DisplaySection
61
+ wxExtHelpController::LoadFile
62
+ wxExtHelpController::Quit
63
+ wxExtHelpController::GetFrameParameters
64
+ ]
65
+ spec.suppress_warning(473,
66
+ 'wxExtHelpController::GetParentWindow')
67
+ # already generated with HelpController
68
+ spec.do_not_generate :variables, :enums, :defines, :functions
69
+ end
70
+ end
71
+ end # class HelpController
72
+
73
+ end # class Director
74
+
75
+ end # module WXRuby3
@@ -0,0 +1,103 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ module WXRuby3
7
+
8
+ class Director
9
+
10
+ class HelpProvider < Director
11
+
12
+ def setup
13
+ super
14
+ spec.gc_as_object 'wxHelpProvider'
15
+ # We need to create a C++ subclass b/c the base class is pure
16
+ # virtual. To be used, a class must be inherited in Ruby which
17
+ # implements the relevant virtual methods eg AddHelp, ShowHelp,
18
+ # GetHelp. wxWidgets provides some pre-made classes (eg
19
+ # wxSimpleHelpProvider) but these are so trivial in implementation that
20
+ # it's not worth porting them - easier to write as pure-ruby classes.
21
+ spec.rename_for_ruby('wxHelpProvider' => 'wxRubyHelpProvider')
22
+ spec.disown 'wxRubyHelpProvider *'
23
+ spec.include 'wx/cshelp.h'
24
+ spec.add_header_code <<~__HEREDOC
25
+ class wxRubyHelpProvider : public wxHelpProvider
26
+ {
27
+ public:
28
+ // This is pure virtual in base Wx class, so won't compile unless an
29
+ // implementation is provided
30
+ wxString GetHelp(const wxWindowBase* window)
31
+ {
32
+ static WxRuby_ID get_help_id("get_help");
33
+
34
+ VALUE rb_win = wxRuby_WrapWxObjectInRuby( (wxWindow*)window );
35
+ VALUE self = SWIG_RubyInstanceFor(this);
36
+
37
+ VALUE rb_help_str = rb_funcall(self, get_help_id(), 1, rb_win);
38
+
39
+ wxString result;
40
+ if ( TYPE(rb_help_str) == T_STRING )
41
+ result = wxString( StringValuePtr(rb_help_str), wxConvUTF8);
42
+ else
43
+ {
44
+ rb_warn("HelpProvider#get_help must return a String");
45
+ }
46
+
47
+ return result;
48
+ }
49
+
50
+ // RemoveHelp is called by Wx after the window deletion event has been
51
+ // handled. A standard director here re-wraps the already destroyed
52
+ // object, which will cause rapid segfaults when it is later marked.
53
+ void RemoveHelp(wxWindowBase* window)
54
+ {
55
+ static WxRuby_ID remove_help_id("remove_help");
56
+
57
+ VALUE rb_win = SWIG_RubyInstanceFor( (void *)window );
58
+ if ( ! NIL_P(rb_win) )
59
+ {
60
+ VALUE self = SWIG_RubyInstanceFor(this);
61
+ rb_funcall(self, remove_help_id(), 1, rb_win);
62
+ }
63
+ }
64
+ };
65
+ __HEREDOC
66
+ spec.add_swig_code <<~__HEREDOC
67
+ typedef wxWindow wxWindowBase;
68
+
69
+ %ignore wxHelpProvider::GetHelp; // Must be supplied in Ruby
70
+
71
+ // Need to avoid standard director as it will call with destroyed
72
+ // objects
73
+ %feature("nodirector") wxHelpProvider::RemoveHelp;
74
+ __HEREDOC
75
+ spec.map 'wxWindowBase' => 'Wx::Window', swig: false do
76
+ map_in
77
+ map_out
78
+ end
79
+ # this is just the SWIG interface description so we do not need
80
+ # to mention the inheritance relation here as it is not important
81
+ # for the Ruby implementation
82
+ spec.add_interface_code <<~__HEREDOC
83
+ class wxRubyHelpProvider
84
+ {
85
+ public:
86
+ virtual ~wxRubyHelpProvider();
87
+ static wxRubyHelpProvider* Set(wxRubyHelpProvider* helpProvider);
88
+ static wxRubyHelpProvider* Get();
89
+ virtual void AddHelp(wxWindowBase* window, const wxString& text);
90
+ virtual void AddHelp(wxWindowID id, const wxString& text);
91
+ virtual wxString GetHelp(const wxWindowBase* window);
92
+ virtual void RemoveHelp(wxWindowBase* window);
93
+ virtual bool ShowHelp(wxWindowBase* window);
94
+ virtual bool ShowHelpAtPoint(wxWindowBase* window, const wxPoint point,
95
+ wxHelpEvent::Origin origin);
96
+ };
97
+ __HEREDOC
98
+ end
99
+ end # class HelpProvider
100
+
101
+ end # class Director
102
+
103
+ end # module WXRuby3