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,53 @@
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 GridCellAttr < Director
11
+
12
+ include Typemap::GridClientData
13
+
14
+ def setup
15
+ super
16
+ # exposing the mixin wxClientDataContainer/wxSharedClientDataContainer has no real upside
17
+ # for wxRuby; far easier to just use member variables in derived classes
18
+ spec.override_inheritance_chain('wxGridCellAttr', [])
19
+ spec.gc_as_untracked_refcounted('wxGridCellAttr')
20
+ spec.ignore %w[wxGridCellAttr::IncRef wxGridCellAttr::DecRef]
21
+ spec.ignore('wxGridCellAttr::GetEditorPtr',
22
+ 'wxGridCellAttr::GetRendererPtr')
23
+ # these require wxRuby to take ownership (ref counted)
24
+ spec.new_object('wxGridCellAttr::Clone',
25
+ 'wxGridCellAttr::GetEditor',
26
+ 'wxGridCellAttr::GetRenderer')
27
+ # type mapping for wxGridCellEditor* return ref
28
+ spec.map 'wxGridCellEditor*' => 'Wx::GRID::GridCellEditor' do
29
+ add_header_code 'extern VALUE wxRuby_WrapWxGridCellEditorInRuby(const wxGridCellEditor *wx_gce);',
30
+ 'extern void wxRuby_RegisterGridCellEditor(wxGridCellEditor* wx_edt, VALUE rb_edt);'
31
+ map_out code: '$result = wxRuby_WrapWxGridCellEditorInRuby($1);'
32
+ map_check code: 'wxRuby_RegisterGridCellEditor($1, argv[$argnum-2]);'
33
+ end
34
+ # type mapping for wxGridCellRenderer* return ref
35
+ spec.map 'wxGridCellRenderer*' => 'Wx::GRID::GridCellRenderer' do
36
+ add_header_code 'extern VALUE wxRuby_WrapWxGridCellRendererInRuby(const wxGridCellRenderer *wx_gcr);',
37
+ 'extern void wxRuby_RegisterGridCellRenderer(wxGridCellRenderer* wx_rnd, VALUE rb_rnd);'
38
+ map_out code: '$result = wxRuby_WrapWxGridCellRendererInRuby($1);'
39
+ map_check code: 'wxRuby_RegisterGridCellRenderer($1, argv[$argnum-2]);'
40
+ end
41
+ # argout type mappings
42
+ spec.map_apply 'int* OUTPUT' => ['int *hAlign', 'int *vAlign', 'int *num_rows', 'int *num_cols']
43
+ # for docs only
44
+ spec.map ['int *hAlign', 'int *vAlign', 'int *num_rows', 'int *num_cols'] => 'Integer', swig: false do
45
+ map_in ignore: true
46
+ map_argout
47
+ end
48
+ end
49
+ end # class GridCellAttr
50
+
51
+ end # class Director
52
+
53
+ end # module WXRuby3
@@ -0,0 +1,434 @@
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 GridCellEditor < Director
11
+
12
+ include Typemap::GridClientData
13
+
14
+ def setup
15
+ super
16
+ spec.gc_as_untracked_refcounted
17
+ if spec.module_name == 'wxGridCellEditor'
18
+ spec.post_processors << :fix_gridcelleditor
19
+ # exposing the mixin wxClientDataContainer/wxSharedClientDataContainer has no real upside
20
+ # for wxRuby; far easier to just use member variables in derived classes
21
+ spec.override_inheritance_chain('wxGridCellEditor', [])
22
+ spec.regard('wxGridCellEditor::~wxGridCellEditor')
23
+ # add method for correctly wrapping PGEditor output references
24
+ spec.add_header_code <<~__CODE
25
+ extern VALUE mWxGRID; // declare external module reference
26
+ extern VALUE wxRuby_GridCellEditorInstance(wxGridCellEditor* wx_edt);
27
+ extern void wxRuby_RegisterGridCellEditor(wxGridCellEditor* wx_edt, VALUE rb_edt);
28
+ extern VALUE wxRuby_WrapWxGridCellEditorInRuby(const wxGridCellEditor *wx_gce)
29
+ {
30
+ // If no object was passed to be wrapped.
31
+ if ( ! wx_gce )
32
+ return Qnil;
33
+
34
+ // check for registered instance
35
+ VALUE rb_gce = wxRuby_GridCellEditorInstance(const_cast<wxGridCellEditor*> (wx_gce));
36
+ if (rb_gce && !NIL_P(rb_gce))
37
+ {
38
+ return rb_gce;
39
+ }
40
+
41
+ const void *ptr = 0;
42
+ wxString class_name;
43
+ if ((ptr = dynamic_cast<const wxGridCellActivatableEditor*> (wx_gce)))
44
+ {
45
+ class_name = "GridCellActivatableEditor";
46
+ }
47
+ else if ((ptr = dynamic_cast<const wxGridCellBoolEditor*> (wx_gce)))
48
+ {
49
+ class_name = "GridCellBoolEditor";
50
+ }
51
+ else if ((ptr = dynamic_cast<const wxGridCellEnumEditor*> (wx_gce)))
52
+ {
53
+ class_name = "GridCellEnumEditor";
54
+ }
55
+ else if ((ptr = dynamic_cast<const wxGridCellChoiceEditor*> (wx_gce)))
56
+ {
57
+ class_name = "GridCellChoiceEditor";
58
+ }
59
+ else if ((ptr = dynamic_cast<const wxGridCellDateEditor*> (wx_gce)))
60
+ {
61
+ class_name = "GridCellDateEditor";
62
+ }
63
+ else if ((ptr = dynamic_cast<const wxGridCellFloatEditor*> (wx_gce)))
64
+ {
65
+ class_name = "GridCellFloatEditor";
66
+ }
67
+ else if ((ptr = dynamic_cast<const wxGridCellNumberEditor*> (wx_gce)))
68
+ {
69
+ class_name = "GridCellNumberEditor";
70
+ }
71
+ else if ((ptr = dynamic_cast<const wxGridCellAutoWrapStringEditor*> (wx_gce)))
72
+ {
73
+ class_name = "GridCellAutoWrapStringEditor";
74
+ }
75
+ else if ((ptr = dynamic_cast<const wxGridCellTextEditor*> (wx_gce)))
76
+ {
77
+ class_name = "GridCellTextEditor";
78
+ }
79
+ VALUE r_class = Qnil;
80
+ if ( ptr && class_name.Len() > 0 )
81
+ {
82
+ wxCharBuffer wx_classname = class_name.mb_str();
83
+ VALUE r_class_name = rb_intern(wx_classname.data ()); // wxRuby class name (minus 'wx')
84
+ if (rb_const_defined(mWxGRID, r_class_name))
85
+ r_class = rb_const_get(mWxGRID, r_class_name);
86
+ }
87
+
88
+ // If we cannot find the class output a warning and return nil
89
+ if ( r_class == Qnil )
90
+ {
91
+ rb_warn("Error wrapping object; class `%s' is not (yet) supported in wxRuby",
92
+ (const char *)class_name.mb_str() );
93
+ return Qnil;
94
+ }
95
+
96
+ // Otherwise, retrieve the swig type info for this class and wrap it
97
+ // in Ruby. Make it owned to manage the ref count if GC claims the object.
98
+ // wxRuby_GetSwigTypeForClass is defined in wx.i
99
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(r_class);
100
+ rb_gce = SWIG_NewPointerObj(const_cast<void*> (ptr), swig_type, 0);
101
+ wxRuby_RegisterGridCellEditor(const_cast<wxGridCellEditor*> (wx_gce), rb_gce);
102
+ return rb_gce;
103
+ }
104
+ __CODE
105
+ elsif spec.module_name == 'wxGridCellActivatableEditor'
106
+ spec.post_processors << :fix_gridcelleditor
107
+ spec.override_inheritance_chain('wxGridCellActivatableEditor', %w[wxGridCellEditor])
108
+ spec.no_proxy %w[
109
+ wxGridCellActivatableEditor::BeginEdit
110
+ wxGridCellActivatableEditor::Create
111
+ wxGridCellActivatableEditor::Destroy
112
+ wxGridCellActivatableEditor::EndEdit
113
+ wxGridCellActivatableEditor::ApplyEdit
114
+ wxGridCellActivatableEditor::HandleReturn
115
+ wxGridCellActivatableEditor::PaintBackground
116
+ wxGridCellActivatableEditor::Reset
117
+ wxGridCellActivatableEditor::SetSize
118
+ wxGridCellActivatableEditor::Show
119
+ wxGridCellActivatableEditor::StartingClick
120
+ wxGridCellActivatableEditor::StartingKey
121
+ wxGridCellActivatableEditor::IsAcceptedKey
122
+ wxGridCellActivatableEditor::GetValue
123
+ ]
124
+ else
125
+ spec.post_processors << :fix_gridcelleditor
126
+ case spec.module_name
127
+ when 'wxGridCellEnumEditor'
128
+ spec.override_inheritance_chain(spec.module_name, %w[wxGridCellChoiceEditor wxGridCellEditor])
129
+ when 'wxGridCellAutoWrapStringEditor', 'wxGridCellFloatEditor', 'wxGridCellNumberEditor'
130
+ spec.override_inheritance_chain(spec.module_name, %w[wxGridCellTextEditor wxGridCellEditor])
131
+ else
132
+ spec.override_inheritance_chain(spec.module_name, %w[wxGridCellEditor])
133
+ end
134
+ # due to the flawed wxWidgets XML docs we need to explicitly add these here
135
+ # otherwise the derived editors won't be allocable due to pure virtuals
136
+ spec.extend_interface spec.module_name,
137
+ 'void BeginEdit(int row, int col, wxGrid *grid)',
138
+ 'wxGridCellEditor * Clone() const',
139
+ 'void Create(wxWindow *parent, wxWindowID id, wxEvtHandler *evtHandler)',
140
+ 'bool EndEdit(int row, int col, const wxGrid *grid, const wxString &oldval, wxString *newval)',
141
+ 'void ApplyEdit(int row, int col, wxGrid *grid)',
142
+ 'void Reset()',
143
+ 'wxString GetValue() const'
144
+ end
145
+ unless spec.module_name == 'wxGridCellEditor'
146
+ # type mapping for Clone return ref
147
+ spec.map 'wxGridCellEditor*' => 'Wx::GRID::GridCellEditor' do
148
+ add_header_code 'extern VALUE wxRuby_WrapWxGridCellEditorInRuby(const wxGridCellEditor *wx_gce);'
149
+ map_out code: '$result = wxRuby_WrapWxGridCellEditorInRuby($1);'
150
+ end
151
+ end
152
+ # handled; can be suppressed
153
+ spec.suppress_warning(473, "#{spec.module_name}::Clone")
154
+ end
155
+
156
+ # helper methods for custom wrapper to handle wxGridActivationResult and wxGridActivationSource
157
+ # in wxGridCellEditor::TryActivate as SWIG cannot handle the, admittedly seriously flawed,
158
+ # wxWidgets interface
159
+ WRAPPER_HELPERS = <<~__HEREDOC
160
+ static WxRuby_ID ga_ignore_id("ignore");
161
+ static WxRuby_ID ga_show_editor_id("show_editor");
162
+ static WxRuby_ID ga_change_id("change");
163
+ static WxRuby_ID ga_program_id("program");
164
+ static WxRuby_ID ga_key_id("key");
165
+ static WxRuby_ID ga_mouse_id("mouse");
166
+
167
+ inline wxGridActivationResult
168
+ array_to_wxGridActivationResult(VALUE rbarr)
169
+ {
170
+ if (rbarr == Qnil ||
171
+ !(TYPE(rbarr) == T_ARRAY || TYPE(rbarr) == T_SYMBOL))
172
+ {
173
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
174
+ "in output value of type 'wxGridActivationResult'");
175
+ }
176
+ if (TYPE(rbarr) == T_SYMBOL)
177
+ {
178
+ if (SYM2ID(rbarr) == ga_ignore_id())
179
+ return wxGridActivationResult::DoNothing();
180
+ else if (SYM2ID(rbarr) == ga_show_editor_id())
181
+ return wxGridActivationResult::DoEdit();
182
+ else
183
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
184
+ "in output value of type 'wxGridActivationResult'");
185
+ }
186
+ else
187
+ {
188
+ VALUE rbAction = rb_ary_shift(rbarr);
189
+ VALUE rbStr = rb_ary_shift(rbarr); // could be nil
190
+ if (rbAction == Qnil || TYPE(rbAction) != T_SYMBOL)
191
+ {
192
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
193
+ "in output value of type 'wxGridActivationResult'");
194
+ }
195
+ else if (SYM2ID(rbAction) == ga_change_id() && rbStr != Qnil)
196
+ {
197
+ return wxGridActivationResult::DoChange(RSTR_TO_WXSTR(rbStr));
198
+ }
199
+ else
200
+ {
201
+ if (SYM2ID(rbAction) == ga_ignore_id())
202
+ return wxGridActivationResult::DoNothing();
203
+ else if (SYM2ID(rbAction) == ga_show_editor_id())
204
+ return wxGridActivationResult::DoEdit();
205
+ else
206
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
207
+ "in output value of type 'wxGridActivationResult'");
208
+ }
209
+ }
210
+ // silence compiler; should never be reached
211
+ return wxGridActivationResult::DoNothing();
212
+ }
213
+
214
+ inline VALUE
215
+ wxGridActivationResult_to_array(const wxGridActivationResult& result)
216
+ {
217
+ VALUE rbresult = rb_ary_new();
218
+ wxGridActivationResult::Action act = result.GetAction ();
219
+ switch (act) {
220
+ case wxGridActivationResult::Ignore:
221
+ rb_ary_push(rbresult, ga_ignore_id.get_sym());
222
+ break;
223
+ case wxGridActivationResult::Change:
224
+ rb_ary_push(rbresult, ga_change_id.get_sym());
225
+ rb_ary_push(rbresult, WXSTR_TO_RSTR(result.GetNewValue()));
226
+ break;
227
+ case wxGridActivationResult::ShowEditor:
228
+ rb_ary_push(rbresult, ga_show_editor_id.get_sym());
229
+ break;
230
+ }
231
+ return rbresult;
232
+ }
233
+
234
+ inline wxGridActivationSource
235
+ array_to_wxGridActivationSource(VALUE rbarr, int argnum)
236
+ {
237
+ if (rbarr == Qnil ||
238
+ !(TYPE(rbarr) == T_ARRAY || TYPE(rbarr) == T_SYMBOL))
239
+ {
240
+ rb_raise(rb_eArgError,
241
+ "Expected Symbol or Array of Symbol and optional event for %d.", argnum);
242
+ }
243
+ if (TYPE(rbarr) == T_SYMBOL)
244
+ {
245
+ if (SYM2ID(rbarr) != ga_program_id())
246
+ rb_raise(rb_eArgError,
247
+ ":key or :mouse activation sources need an event for %d.", argnum);
248
+ else
249
+ return wxGridActivationSource::FromProgram();
250
+ }
251
+ else
252
+ {
253
+ VALUE rbOrg = rb_ary_shift(rbarr);
254
+ VALUE rbEvt = rb_ary_shift(rbarr); // could be nil
255
+ if (rbOrg == Qnil || TYPE(rbOrg) != T_SYMBOL)
256
+ {
257
+ rb_raise(rb_eArgError,
258
+ "expected Symbol or Array of Symbol and optional event for %d.", argnum);
259
+ }
260
+ else if (SYM2ID(rbOrg) == ga_program_id())
261
+ {
262
+ return wxGridActivationSource::FromProgram();
263
+ }
264
+ else if (rbEvt != Qnil)
265
+ {
266
+ const wxEvent* evt = (const wxEvent*)DATA_PTR(rbEvt);
267
+ if (SYM2ID(rbOrg) == ga_key_id())
268
+ return wxGridActivationSource::From(*(const wxKeyEvent*)evt);
269
+ else if (SYM2ID(rbOrg) == ga_mouse_id())
270
+ return wxGridActivationSource::From(*(const wxMouseEvent*)evt);
271
+ rb_raise(rb_eArgError,
272
+ "unknown activation source for %d.", argnum);
273
+ }
274
+ else
275
+ {
276
+ rb_raise(rb_eArgError,
277
+ ":key or :mouse activation sources need an event for %d.", argnum);
278
+ }
279
+ }
280
+ }
281
+
282
+ inline VALUE
283
+ wxGridActivationSource_to_array(const wxGridActivationSource& arg)
284
+ {
285
+ VALUE rbresult = rb_ary_new();
286
+ wxGridActivationSource::Origin org = arg.GetOrigin ();
287
+ switch (org) {
288
+ case wxGridActivationSource::Program:
289
+ rb_ary_push(rbresult, ga_program_id.get_sym());
290
+ break;
291
+ case wxGridActivationSource::Key:
292
+ rb_ary_push(rbresult, ga_key_id.get_sym());
293
+ #ifdef __WXRB_DEBUG__
294
+ rb_ary_push(rbresult, wxRuby_WrapWxEventInRuby(0, const_cast<wxKeyEvent*> (&arg.GetKeyEvent())));
295
+ #else
296
+ rb_ary_push(rbresult, wxRuby_WrapWxEventInRuby(const_cast<wxKeyEvent*> (&arg.GetKeyEvent())));
297
+ #endif
298
+ break;
299
+ case wxGridActivationSource::Mouse:
300
+ rb_ary_push(rbresult, ga_mouse_id.get_sym());
301
+ #ifdef __WXRB_DEBUG__
302
+ rb_ary_push(rbresult, wxRuby_WrapWxEventInRuby(0, const_cast<wxMouseEvent*> (&arg.GetMouseEvent())));
303
+ #else
304
+ rb_ary_push(rbresult, wxRuby_WrapWxEventInRuby(const_cast<wxMouseEvent*> (&arg.GetMouseEvent())));
305
+ #endif
306
+ break;
307
+ }
308
+ return rbresult;
309
+ }
310
+
311
+ __HEREDOC
312
+
313
+
314
+ end # class GridCellEditor
315
+
316
+ end # class Director
317
+
318
+ module SwigRunner
319
+ class Processor
320
+
321
+ # special post-processor for GridCellEditor
322
+ class FixGridcelleditor < Processor
323
+
324
+ def run
325
+ skip_lines = false
326
+ helpers_added = false
327
+
328
+ update_source do |line|
329
+ if skip_lines
330
+ if /\A}\s*\Z/ =~ line
331
+ skip_lines = false
332
+ else
333
+ line = nil
334
+ end
335
+ elsif line["wxGridActivationResult SwigDirector_#{module_name}::TryActivate("]
336
+ skip_lines = true
337
+ # append new method implementation
338
+ line << <<~__METHOD__
339
+ static WxRuby_ID try_activate_id("try_activate");
340
+
341
+ VALUE obj0 = Qnil ;
342
+ VALUE obj1 = Qnil ;
343
+ VALUE obj2 = Qnil ;
344
+ VALUE obj3 = Qnil ;
345
+ VALUE SWIGUNUSED result;
346
+
347
+ obj0 = SWIG_From_int(static_cast< int >(row));
348
+ obj1 = SWIG_From_int(static_cast< int >(col));
349
+ obj2 = SWIG_NewPointerObj(SWIG_as_voidptr(grid), SWIGTYPE_p_wxGrid, 0 );
350
+ obj3 = wxGridActivationSource_to_array(actSource);
351
+ result = rb_funcall(swig_get_self(), try_activate_id(), 4,obj0,obj1,obj2,obj3);
352
+ return array_to_wxGridActivationResult(result);
353
+ __METHOD__
354
+ elsif !helpers_added && line["SwigDirector_#{module_name}::SwigDirector_#{module_name}(VALUE self"]
355
+ # insert helper methods
356
+ line = [Director::GridCellEditor::WRAPPER_HELPERS, line]
357
+ helpers_added = true
358
+ elsif line["_wrap_#{module_name}_TryActivate(int argc, VALUE *argv, VALUE self) {"]
359
+ skip_lines = true
360
+ # append new method implementation
361
+ line << <<~__METHOD__
362
+ #{module_name} *arg1 = (#{module_name} *) 0 ;
363
+ int arg2 ;
364
+ int arg3 ;
365
+ wxGrid *arg4 = (wxGrid *) 0 ;
366
+ void *argp1 = 0 ;
367
+ int res1 = 0 ;
368
+ int val2 ;
369
+ int ecode2 = 0 ;
370
+ int val3 ;
371
+ int ecode3 = 0 ;
372
+ void *argp4 = 0 ;
373
+ int res4 = 0 ;
374
+ Swig::Director *director = 0;
375
+ bool upcall = false;
376
+ VALUE vresult = Qnil;
377
+
378
+ if ((argc < 4) || (argc > 4)) {
379
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
380
+ }
381
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_#{module_name}, 0 | 0 );
382
+ if (!SWIG_IsOK(res1)) {
383
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "#{module_name} *","TryActivate", 1, self ));
384
+ }
385
+ arg1 = reinterpret_cast< #{module_name} * >(argp1);
386
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
387
+ if (!SWIG_IsOK(ecode2)) {
388
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","TryActivate", 2, argv[0] ));
389
+ }
390
+ arg2 = static_cast< int >(val2);
391
+ ecode3 = SWIG_AsVal_int(argv[1], &val3);
392
+ if (!SWIG_IsOK(ecode3)) {
393
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","TryActivate", 3, argv[1] ));
394
+ }
395
+ arg3 = static_cast< int >(val3);
396
+ res4 = SWIG_ConvertPtr(argv[2], &argp4,SWIGTYPE_p_wxGrid, 0 | 0 );
397
+ if (!SWIG_IsOK(res4)) {
398
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "wxGrid *","TryActivate", 4, argv[2] ));
399
+ }
400
+ arg4 = reinterpret_cast< wxGrid * >(argp4);
401
+ director = dynamic_cast<Swig::Director *>(arg1);
402
+ upcall = (director && (director->swig_get_self() == self));
403
+ try {
404
+ if (upcall) {
405
+ #{
406
+ if module_name == 'wxGridCellActivatableEditor'
407
+ 'Swig::DirectorPureVirtualException::raise("wxGridCellActivatableEditor::TryActivate");'
408
+ else
409
+ "vresult = wxGridActivationResult_to_array((arg1)->#{module_name}::TryActivate(arg2,arg3,arg4,array_to_wxGridActivationSource(argv[3], 4)));"
410
+ end
411
+ }
412
+ } else {
413
+ vresult = wxGridActivationResult_to_array((arg1)->TryActivate(arg2,arg3,arg4,array_to_wxGridActivationSource(argv[3], 4)));
414
+ }
415
+ } catch (Swig::DirectorException& e) {
416
+ rb_exc_raise(e.getError());
417
+ SWIG_fail;
418
+ }
419
+ return vresult;
420
+ fail:
421
+ return Qnil;
422
+ __METHOD__
423
+ end
424
+
425
+ line
426
+ end
427
+ end
428
+
429
+ end # class FixGridcelleditor
430
+
431
+ end
432
+ end
433
+
434
+ end # module WXRuby3
@@ -0,0 +1,132 @@
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 GridCellRenderer < Director
11
+
12
+ include Typemap::GridClientData
13
+
14
+ def setup
15
+ super
16
+ spec.gc_as_untracked_refcounted
17
+ if spec.module_name == 'wxGridCellRenderer'
18
+ # exposing the mixin wxClientDataContainer/wxSharedClientDataContainer has no real upside
19
+ # for wxRuby; far easier to just use member variables in derived classes
20
+ spec.override_inheritance_chain('wxGridCellRenderer', [])
21
+ spec.regard('wxGridCellRenderer::~wxGridCellRenderer')
22
+ # add method for correctly wrapping PGEditor output references
23
+ spec.add_header_code <<~__CODE
24
+ extern VALUE mWxGRID; // declare external module reference
25
+ extern VALUE wxRuby_GridCellRendererInstance(wxGridCellRenderer* wx_rnd);
26
+ extern void wxRuby_RegisterGridCellRenderer(wxGridCellRenderer* wx_rnd, VALUE rb_rnd);
27
+ extern VALUE wxRuby_WrapWxGridCellRendererInRuby(const wxGridCellRenderer *wx_gcr)
28
+ {
29
+ // If no object was passed to be wrapped.
30
+ if ( ! wx_gcr )
31
+ return Qnil;
32
+
33
+ // check for registered instance
34
+ VALUE rb_gcr = wxRuby_GridCellRendererInstance(const_cast<wxGridCellRenderer*> (wx_gcr));
35
+ if (rb_gcr && !NIL_P(rb_gcr))
36
+ {
37
+ return rb_gcr;
38
+ }
39
+
40
+ // unregistered renderer must be a standard C++ class renderer
41
+ const void *ptr = 0;
42
+ wxString class_name;
43
+ if ((ptr = dynamic_cast<const wxGridCellBoolRenderer*> (wx_gcr)))
44
+ {
45
+ class_name = "GridCellBoolRenderer";
46
+ }
47
+ else if ((ptr = dynamic_cast<const wxGridCellFloatRenderer*> (wx_gcr)))
48
+ {
49
+ class_name = "GridCellFloatRenderer";
50
+ }
51
+ else if ((ptr = dynamic_cast<const wxGridCellAutoWrapStringRenderer*> (wx_gcr)))
52
+ {
53
+ class_name = "GridCellAutoWrapStringRenderer";
54
+ }
55
+ else if ((ptr = dynamic_cast<const wxGridCellDateTimeRenderer*> (wx_gcr)))
56
+ {
57
+ class_name = "GridCellDateTimeRenderer";
58
+ }
59
+ else if ((ptr = dynamic_cast<const wxGridCellDateRenderer*> (wx_gcr)))
60
+ {
61
+ class_name = "GridCellDateRenderer";
62
+ }
63
+ else if ((ptr = dynamic_cast<const wxGridCellEnumRenderer*> (wx_gcr)))
64
+ {
65
+ class_name = "GridCellEnumRenderer";
66
+ }
67
+ else if ((ptr = dynamic_cast<const wxGridCellNumberRenderer*> (wx_gcr)))
68
+ {
69
+ class_name = "GridCellNumberRenderer";
70
+ }
71
+ else if ((ptr = dynamic_cast<const wxGridCellStringRenderer*> (wx_gcr)))
72
+ {
73
+ class_name = "GridCellStringRenderer";
74
+ }
75
+ VALUE r_class = Qnil;
76
+ if ( ptr && class_name.Len() > 0 )
77
+ {
78
+ wxCharBuffer wx_classname = class_name.mb_str();
79
+ VALUE r_class_name = rb_intern(wx_classname.data ()); // wxRuby class name (minus 'wx')
80
+ if (rb_const_defined(mWxGRID, r_class_name))
81
+ r_class = rb_const_get(mWxGRID, r_class_name);
82
+ }
83
+
84
+ // If we cannot find the class output a warning and return nil
85
+ if ( r_class == Qnil )
86
+ {
87
+ rb_warn("Error wrapping object; class `%s' is not (yet) supported in wxRuby",
88
+ (const char *)class_name.mb_str() );
89
+ return Qnil;
90
+ }
91
+
92
+ // Otherwise, retrieve the swig type info for this class and wrap it
93
+ // in Ruby. Make it owned to manage the ref count if GC claims the object.
94
+ // wxRuby_GetSwigTypeForClass is defined in wx.i
95
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(r_class);
96
+ rb_gcr = SWIG_NewPointerObj(const_cast<void*> (ptr), swig_type, 0);
97
+ wxRuby_RegisterGridCellRenderer(const_cast<wxGridCellRenderer*> (wx_gcr), rb_gcr);
98
+ return rb_gcr;
99
+ }
100
+ __CODE
101
+ else
102
+ case spec.module_name
103
+ when 'wxGridCellStringRenderer'
104
+ spec.override_inheritance_chain('wxGridCellStringRenderer', %w[wxGridCellRenderer])
105
+ when 'wxGridCellDateTimeRenderer'
106
+ spec.override_inheritance_chain('wxGridCellDateTimeRenderer', %w[wxGridCellDateRenderer wxGridCellStringRenderer wxGridCellRenderer])
107
+ else
108
+ spec.override_inheritance_chain(spec.module_name, %w[wxGridCellStringRenderer wxGridCellRenderer])
109
+ end
110
+ # due to the flawed wxWidgets XML docs we need to explicitly add these here
111
+ # otherwise the derived renderers won't be allocatable due to pure virtuals
112
+ spec.extend_interface spec.module_name,
113
+ 'virtual wxGridCellRenderer* Clone() const',
114
+ 'virtual void Draw(wxGrid &grid, wxGridCellAttr &attr, wxDC &dc, const wxRect &rect, int row, int col, bool isSelected)',
115
+ 'virtual wxSize GetBestSize(wxGrid &grid, wxGridCellAttr &attr, wxDC &dc, int row, int col)'
116
+ spec.force_proxy spec.module_name
117
+ end
118
+ unless spec.module_name == 'wxGridCellRenderer'
119
+ # type mapping for Clone return ref
120
+ spec.map 'wxGridCellRenderer*' => 'Wx::GRID::GridCellRenderer' do
121
+ add_header_code 'extern VALUE wxRuby_WrapWxGridCellRendererInRuby(const wxGridCellRenderer *wx_gcr);'
122
+ map_out code: '$result = wxRuby_WrapWxGridCellRendererInRuby($1);'
123
+ end
124
+ end
125
+ # handled; can be suppressed
126
+ spec.suppress_warning(473, "#{spec.module_name}::Clone")
127
+ end
128
+ end # class GridCellRenderer
129
+
130
+ end # class Director
131
+
132
+ end # module WXRuby3