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,57 @@
1
+ ###
2
+ # wxRuby3 Common typemap definitions
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative '../core/mapping'
7
+
8
+ module WXRuby3
9
+
10
+ module Typemap
11
+
12
+ # Typemaps which convert a wxArrayInt (array of integers) input
13
+ # argument to a ruby output argument of the same sort. Used by methods
14
+ # in (Check)ListBox and the global function get_multiple_choices (Functions.i)
15
+ # to retrieve a list of selected items.
16
+ module ArrayIntSelections
17
+
18
+ include Typemap::Module
19
+
20
+ define do
21
+
22
+ map 'wxArrayInt& selections', 'wxArrayInt &checkedItems', as: 'Array<Integer>' do
23
+
24
+ map_in ignore: true, temp: 'wxArrayInt tmp', code: '$1 = &tmp;'
25
+
26
+ # ignore C defined return value entirely (also affects directorout)
27
+ map_out ignore: ['int', 'unsigned int']
28
+
29
+ map_argout code: <<~__CODE
30
+ $result = rb_ary_new();
31
+ for (size_t i = 0; i < $1->GetCount(); i++)
32
+ {
33
+ rb_ary_push($result,INT2NUM( $1->Item(i) ) );
34
+ }
35
+ __CODE
36
+
37
+ map_directorargout code: <<~__CODE
38
+ c_result = 0;
39
+ if (result != Qnil && TYPE(result) == T_ARRAY)
40
+ {
41
+ c_result = RARRAY_LEN(result);
42
+ for (int i = 0, n = RARRAY_LEN(result); i < n ;i++)
43
+ {
44
+ int sel = NUM2INT(rb_ary_entry(result, i));
45
+ $1.Add(sel);
46
+ }
47
+ }
48
+ __CODE
49
+ end
50
+
51
+ end # define
52
+
53
+ end # ArrayIntSelections
54
+
55
+ end # Typemap
56
+
57
+ end # WXRuby3
@@ -0,0 +1,613 @@
1
+ ###
2
+ # wxRuby3 Common typemap definitions
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative '../core/mapping'
7
+
8
+ module WXRuby3
9
+
10
+ module Typemap
11
+
12
+ # initialize common basic mappings for std type typedefs
13
+ register_std_typedef('wxLongLong_t', 'long long')
14
+ register_std_typedef('wxULongLong_t', 'unsigned long long')
15
+ register_std_typedef('wxInt8', 'signed char')
16
+ register_std_typedef('wxUint8', 'unsigned char')
17
+ register_std_typedef('wxByte', 'unsigned char')
18
+ register_std_typedef('wxInt16', 'signed short')
19
+ register_std_typedef('wxUint16', 'unsigned short')
20
+ register_std_typedef('wxWord', 'unsigned short')
21
+ register_std_typedef('wxChar16', 'unsigned short')
22
+ register_std_typedef('wxInt32', 'int')
23
+ register_std_typedef('wxUint32', 'unsigned int')
24
+ register_std_typedef('wxDword', 'unsigned int')
25
+ register_std_typedef('wxChar32', 'unsigned int')
26
+ register_std_typedef('wxInt64', 'long long')
27
+ register_std_typedef('wxUint64', 'unsigned long long')
28
+ register_std_typedef('wxInt64', 'long long')
29
+ register_std_typedef('wxIntPtr', 'ssize_t')
30
+ register_std_typedef('wxUIntPtr', 'size_t')
31
+ register_std_typedef('wxPrintQuality', 'int')
32
+ register_std_typedef('wxCoord', 'int')
33
+ register_std_typedef('wxFloat32', 'float')
34
+ register_std_typedef('wxFloat64', 'double')
35
+ register_std_typedef('wxDouble', 'double')
36
+ register_std_typedef('wxWindowID', 'int')
37
+ register_std_typedef('wxEventType', 'int')
38
+
39
+ module Common
40
+
41
+ include Typemap::Module
42
+
43
+ define do
44
+
45
+ map 'unsigned char' => 'Integer' do
46
+ map_in code: '$1 = (NUM2INT($input) & 0xFFFF);'
47
+ map_directorout code: '$result = (NUM2INT($1) & 0xFFFF);'
48
+ map_typecheck precedence: 'UINT8', code: <<~__CODE
49
+ int i;
50
+ $1 = (TYPE($input) == T_FIXNUM && (i = NUM2INT($input))>=-256 && i<=255);
51
+ __CODE
52
+ end
53
+
54
+ map 'int * OUTPUT' => 'Integer' do
55
+ map_directorargout code: <<~__CODE
56
+ if(output != Qnil)
57
+ {
58
+ *$1 = (int)NUM2INT(output);
59
+ }
60
+ else
61
+ {
62
+ *$1 = 0;
63
+ }
64
+ __CODE
65
+ end
66
+
67
+ map 'long * OUTPUT' => 'Integer' do
68
+ map_directorargout code: <<~__CODE
69
+ if(output != Qnil)
70
+ {
71
+ *$1 = (int)NUM2INT(output);
72
+ }
73
+ else
74
+ {
75
+ *$1 = 0;
76
+ }
77
+ __CODE
78
+ end
79
+
80
+ # String <> wxString type mappings
81
+
82
+ map 'wxString&' => 'String' do
83
+ map_in temp: 'wxString tmp', code: 'tmp = RSTR_TO_WXSTR($input); $1 = &tmp;'
84
+ map_out code: '$result = WXSTR_PTR_TO_RSTR($1);'
85
+ map_directorout code: '$result = RSTR_TO_WXSTR($input);'
86
+ map_directorin code: '$input = WXSTR_TO_RSTR($1);'
87
+ map_typecheck precedence: 'STRING', code: '$1 = (TYPE($input) == T_STRING);'
88
+ end
89
+
90
+ map 'wxString*' => 'String' do
91
+ map_in temp: 'wxString tmp', code: 'tmp = RSTR_TO_WXSTR($input); $1 = &tmp;'
92
+ map_out code: '$result = WXSTR_PTR_TO_RSTR($1);'
93
+ map_directorin code: '$input = WXSTR_PTR_TO_RSTR($1);'
94
+ map_typecheck precedence: 'STRING', code: '$1 = (TYPE($input) == T_STRING);'
95
+ end
96
+
97
+ map 'wxString' => 'String' do
98
+ map_in code: '$1 = RSTR_TO_WXSTR($input);'
99
+ map_out code: '$result = WXSTR_TO_RSTR($1);'
100
+ map_directorout code: '$result = RSTR_TO_WXSTR($input);'
101
+ map_typecheck precedence: 'STRING', code: '$1 = (TYPE($input) == T_STRING);'
102
+ map_varout code: '$result = WXSTR_TO_RSTR($1);'
103
+ end
104
+
105
+ # String <> wxChar* type mappings
106
+
107
+ map 'wxUniChar' => 'String' do
108
+ map_in temp: 'wxString temp', code: <<~__CODE
109
+ temp = ($input == Qnil ? wxString() : wxString(StringValuePtr($input), wxConvUTF8));
110
+ $1 = temp.Len() > 0 ? temp.GetChar(0) : wxUniChar();
111
+ __CODE
112
+ map_out code: '$result = rb_str_new2((const char *)wxString($1).utf8_str());'
113
+ map_directorin code: "$input = rb_str_new2((const char *)wxString($1).utf8_str());"
114
+ map_directorout temp: 'wxString temp', code: <<~__CODE
115
+ temp = ($input == Qnil ? wxString() : wxString(StringValuePtr($input), wxConvUTF8));
116
+ $result = temp.Len() > 0 ? temp.GetChar(0) : wxUniChar();
117
+ __CODE
118
+ map_typecheck precedence: 'string', code: '$1 = (TYPE($input) == T_STRING);'
119
+ map_varout code: '$result = rb_str_new2((const char *)wxString($1).utf8_str());'
120
+ end
121
+
122
+ map 'const wxUniChar &', 'wxUniChar const &', as: 'String' do
123
+ map_in temp: 'wxString tempS, wxUniChar temp', code: <<~__CODE
124
+ tempS = ($input == Qnil ? wxString() : wxString(StringValuePtr($input), wxConvUTF8));
125
+ temp = tempS.Len() > 0 ? tempS.GetChar(0) : wxUniChar();
126
+ $1 = &temp;
127
+ __CODE
128
+ map_directorin code: "$input = rb_str_new2((const char *)wxString($1).utf8_str());"
129
+ map_typecheck precedence: 'string', code: '$1 = (TYPE($input) == T_STRING);'
130
+ end
131
+
132
+ map 'const wxChar *' => 'String' do
133
+ map_in temp: 'wxString temp', code: <<~__CODE
134
+ temp = ($input == Qnil ? wxString() : wxString(StringValuePtr($input), wxConvUTF8));
135
+ $1 = const_cast<wxChar*> (static_cast<wxChar const *> (temp.c_str()));
136
+ __CODE
137
+ map_out code: '$result = rb_str_new2((const char *)wxString($1).utf8_str());'
138
+ map_directorin code: "$input = rb_str_new2((const char *)wxString($1).utf8_str());"
139
+ map_typecheck precedence: 'string', code: '$1 = (TYPE($input) == T_STRING);'
140
+ map_varout code: '$result = rb_str_new2((const char *)wxString($1).utf8_str());'
141
+ end
142
+
143
+ # String <> wxChar type mappings
144
+ map 'wxChar' => 'String' do
145
+ map_in temp: 'wxString temp', code: <<~__CODE
146
+ if ($input == Qnil || TYPE($input) != T_STRING || RSTRING_LEN($input) < 1)
147
+ {
148
+ $1 = 0;
149
+ }
150
+ else
151
+ {
152
+ temp = wxString(StringValuePtr($input), wxConvUTF8);
153
+ $1 = temp[0];
154
+ }
155
+ __CODE
156
+ map_out code: <<~__CODE
157
+ if ($1 == 0)
158
+ {
159
+ $result = Qnil;
160
+ }
161
+ else
162
+ {
163
+ $result = rb_str_new2((const char *)wxString($1).utf8_str());
164
+ }
165
+ __CODE
166
+ map_directorin code: <<~__CODE
167
+ if ($1 == 0)
168
+ {
169
+ $input = Qnil;
170
+ }
171
+ else
172
+ {
173
+ $input = rb_str_new2((const char *)wxString($1).utf8_str());
174
+ }
175
+ __CODE
176
+ map_typecheck precedence: 'string', code: '$1 = (TYPE($input) == T_STRING);'
177
+ map_varout code: <<~__CODE
178
+ if ($1 == 0)
179
+ {
180
+ $result = Qnil;
181
+ }
182
+ else
183
+ {
184
+ $result = rb_str_new2((const char *)wxString($1).utf8_str());
185
+ }
186
+ __CODE
187
+ end
188
+
189
+ # Object <> void* type mappings
190
+
191
+ map 'void*' => 'Object' do
192
+ map_in code: '$1 = (void*)($input);'
193
+ map_out code: <<~__CODE
194
+ if ($1) $result = (VALUE)($1);
195
+ else $result = Qnil;
196
+ __CODE
197
+ # void* should only be considered after everything else does not match
198
+ # since for Ruby the precedence for bool is set to 10000 make it 20000
199
+ # (have to be careful when bool is matched alongside void* though since
200
+ # the check considers values the Ruby way for bool, i.e. anything matches a bool)
201
+ map_typecheck precedence: 20000, code: '$1 = TRUE;'
202
+ end
203
+
204
+ # Typemaps for wxSize and wxPoint as input parameters; for brevity,
205
+ # wxRuby permits these common input parameters to be represented as
206
+ # two-element arrays [x, y] or [width, height].
207
+
208
+ map 'wxSize&' => 'Array(Integer, Integer), Wx::Size',
209
+ 'wxPoint&' => 'Array(Integer, Integer), Wx::Point' do
210
+ map_in code: <<~__CODE
211
+ if ( TYPE($input) == T_DATA )
212
+ {
213
+ void* argp$argnum;
214
+ SWIG_ConvertPtr($input, &argp$argnum, $1_descriptor, 1 );
215
+ $1 = reinterpret_cast< $1_basetype * >(argp$argnum);
216
+ }
217
+ else if ( TYPE($input) == T_ARRAY )
218
+ {
219
+ $1 = new $1_basetype( NUM2INT( rb_ary_entry($input, 0) ),
220
+ NUM2INT( rb_ary_entry($input, 1) ) );
221
+ // Create a ruby object so the C++ obj is freed when GC runs
222
+ SWIG_NewPointerObj($1, $1_descriptor, 1);
223
+ }
224
+ else
225
+ {
226
+ rb_raise(rb_eTypeError, "Wrong type for $1_basetype parameter");
227
+ }
228
+ __CODE
229
+ map_typecheck precedence: 'POINTER', code: <<~__CODE
230
+ void *vptr = 0;
231
+ $1 = 0;
232
+ if (TYPE($input) == T_ARRAY && RARRAY_LEN($input) == 2)
233
+ $1 = 1;
234
+ else if (TYPE($input) == T_DATA && SWIG_CheckState (SWIG_ConvertPtr ($input, &vptr, $1_descriptor, 0)))
235
+ $1 = 1;
236
+ __CODE
237
+ end
238
+
239
+ # Integer <> wxItemKind type mappings
240
+
241
+ map 'wxItemKind' => 'Integer' do
242
+ map_in code: '$1 = (wxItemKind)NUM2INT($input);'
243
+ map_out code: '$result = INT2NUM((int)$1);'
244
+ # fixes mixup between
245
+ # wxMenuItem* wxMenu::Append(int itemid, const wxString& text, const wxString& help = wxEmptyString, wxItemKind kind = wxITEM_NORMAL)
246
+ # and
247
+ # void wxMenu::Append(int itemid, const wxString& text, const wxString& help, bool isCheckable);
248
+ map_typecheck precedence: 'INTEGER',
249
+ code: '$1 = (TYPE($input) == T_FIXNUM && TYPE($input) != T_TRUE && TYPE($input) != T_FALSE);'
250
+ end
251
+
252
+ # Array<String> <> wxString[]/wxString* type mappings
253
+
254
+ map 'int n, const wxString choices []',
255
+ 'int n, const wxString* choices',
256
+ 'int nItems, const wxString *items' do
257
+ map_in from: { type: 'Array<String>', index: 1 },
258
+ temp: 'std::unique_ptr<wxString[]> arr', code: <<~__CODE
259
+ if (($input == Qnil) || (TYPE($input) != T_ARRAY))
260
+ {
261
+ $1 = 0;
262
+ $2 = NULL;
263
+ }
264
+ else
265
+ {
266
+ arr = std::make_unique<wxString[]>(RARRAY_LEN($input));
267
+ for (int i = 0; i < RARRAY_LEN($input); i++)
268
+ {
269
+ VALUE str = rb_ary_entry($input,i);
270
+ arr[i] = wxString(StringValuePtr(str), wxConvUTF8);
271
+ }
272
+ $1 = RARRAY_LEN($input);
273
+ $2 = arr.get();
274
+ }
275
+ __CODE
276
+ map_default code: <<~__CODE
277
+ {
278
+ $1 = 0;
279
+ $2 = NULL;
280
+ }
281
+ __CODE
282
+ map_typecheck precedence: 'STRING_ARRAY', code: '$1 = (TYPE($input) == T_ARRAY);'
283
+ end
284
+
285
+ # Array<String> <> wxArrayString type mappings
286
+
287
+ map 'wxArrayString &' => 'Array<String>' do
288
+ map_in temp: 'wxArrayString tmp', code: <<~__CODE
289
+ if (($input == Qnil) || (TYPE($input) != T_ARRAY))
290
+ {
291
+ $1 = &tmp;
292
+ }
293
+ else
294
+ {
295
+ for (int i = 0; i < RARRAY_LEN($input); i++)
296
+ {
297
+ VALUE str = rb_ary_entry($input, i);
298
+ wxString item(StringValuePtr(str), wxConvUTF8);
299
+ tmp.Add(item);
300
+ }
301
+ $1 = &tmp;
302
+ }
303
+ __CODE
304
+ map_out code: <<~__CODE
305
+ $result = rb_ary_new();
306
+ for (size_t i = 0; i < $1->GetCount(); i++)
307
+ {
308
+ rb_ary_push($result, WXSTR_TO_RSTR($1->Item(i)));
309
+ }
310
+ __CODE
311
+ map_directorin code: <<~__CODE
312
+ $input = rb_ary_new();
313
+ for (size_t i = 0; i < $1.GetCount(); i++)
314
+ {
315
+ rb_ary_push($input, WXSTR_TO_RSTR($1.Item(i)));
316
+ }
317
+ __CODE
318
+ map_typecheck precedence: 'STRING_ARRAY', code: '$1 = (TYPE($input) == T_ARRAY);'
319
+ end
320
+
321
+ # wxArrayString return by value
322
+ map 'wxArrayString' => 'Array<String>' do
323
+ map_out code: <<~__CODE
324
+ $result = rb_ary_new();
325
+ for (size_t i = 0; i < $1.GetCount(); i++)
326
+ {
327
+ rb_ary_push($result, WXSTR_TO_RSTR($1.Item(i)));
328
+ }
329
+ __CODE
330
+ map_directorout code: <<~__CODE
331
+ if (TYPE($input) != T_ARRAY)
332
+ {
333
+ for (int i = 0; i < RARRAY_LEN($input); i++)
334
+ {
335
+ VALUE str = rb_ary_entry($input, i);
336
+ wxString item(StringValuePtr(str), wxConvUTF8);
337
+ $result.Add(item);
338
+ }
339
+ }
340
+ __CODE
341
+ end
342
+
343
+ # Array<Integer> <> wxArrayInt/wxArrayInt& type mappings
344
+
345
+ # return by value
346
+ map 'wxArrayInt' => 'Array<Integer>' do
347
+ map_in code: <<~__CODE
348
+ if (($input != Qnil) && (TYPE($input) == T_ARRAY))
349
+ {
350
+ for (int i = 0; i < RARRAY_LEN($input); i++)
351
+ {
352
+ int item = NUM2INT(rb_ary_entry($input,i));
353
+ $1.Add(item);
354
+ }
355
+ }
356
+ __CODE
357
+ map_out code: <<~__CODE
358
+ $result = rb_ary_new();
359
+ for (size_t i = 0; i < $1.GetCount(); i++)
360
+ {
361
+ rb_ary_push($result,INT2NUM( $1.Item(i) ) );
362
+ }
363
+ __CODE
364
+ map_directorout code: <<~__CODE
365
+ if (TYPE($input) != T_ARRAY)
366
+ {
367
+ for (int i = 0; i < RARRAY_LEN($input); i++)
368
+ {
369
+ int item = NUM2INT(rb_ary_entry($input,i));
370
+ $result.Add(item);
371
+ }
372
+ }
373
+ __CODE
374
+ map_typecheck precedence: 'INT32_ARRAY', code: '$1 = (TYPE($input) == T_ARRAY);'
375
+ end
376
+
377
+ # input reference
378
+ map 'wxArrayInt&' => 'Array<Integer>' do
379
+ map_in temp: 'wxArrayInt tmp', code: <<~__CODE
380
+ if (($input == Qnil) || (TYPE($input) != T_ARRAY))
381
+ {
382
+ $1 = &tmp;
383
+ }
384
+ else
385
+ {
386
+ for (int i = 0; i < RARRAY_LEN($input); i++)
387
+ {
388
+ int item = NUM2INT(rb_ary_entry($input,i));
389
+ tmp.Add(item);
390
+ }
391
+ $1 = &tmp;
392
+ }
393
+ __CODE
394
+ map_directorin code: <<~__CODE
395
+ $input = rb_ary_new();
396
+ for (size_t i = 0; i < $1.GetCount(); i++)
397
+ {
398
+ rb_ary_push($input,INT2NUM( $1.Item(i) ) );
399
+ }
400
+ __CODE
401
+ map_typecheck precedence: 'INT32_ARRAY', code: '$1 = (TYPE($input) == T_ARRAY);'
402
+ end
403
+
404
+ # various enumerator type mappings
405
+
406
+ map *%w[wxEdge wxRelationship wxKeyCode], as: 'Integer' do
407
+ map_in code: '$1 = ($1_type)NUM2INT($input);'
408
+ map_out code: '$result = INT2NUM((int)$1);'
409
+ map_typecheck precedence: 'INT32', code: '$1 = TYPE($input) == T_FIXNUM;'
410
+ end
411
+
412
+ # integer OUTPUT mappings
413
+
414
+ map_apply 'int *OUTPUT' => ['int * x', 'int * y', 'int * w', 'int * h', 'int * descent', 'int * externalLeading']
415
+ map_apply 'int *OUTPUT' => ['wxCoord * width', 'wxCoord * height', 'wxCoord * heightLine',
416
+ 'wxCoord * w', 'wxCoord * h', 'wxCoord * descent', 'wxCoord * externalLeading']
417
+
418
+ # Window check type mapping
419
+
420
+ map 'wxWindow* parent' => 'Wx::Window' do
421
+ # This typemap catches the first argument of all constructors and
422
+ # Create() methods for Wx::Window classes. These should not be called
423
+ # before App::main_loop is started, and, except for TopLevelWindows,
424
+ # the parent argument must not be NULL.
425
+ map_check code: <<~__CODE
426
+ if ( ! rb_const_defined(wxRuby_Core(), rb_intern("THE_APP") ) )
427
+ {
428
+ rb_raise(rb_eRuntimeError,
429
+ "Cannot create a Window before App.main_loop has been called");
430
+ }
431
+ if ( ! $1 && ! rb_obj_is_kind_of(self, wxRuby_GetTopLevelWindowClass()) )
432
+ {
433
+ rb_raise(rb_eArgError,
434
+ "Window parent argument must not be nil");
435
+ }
436
+ __CODE
437
+ end
438
+
439
+ # window/sizer object wrapping
440
+
441
+ map 'wxWindow*' => 'Wx::Window', 'wxSizer*' => 'Wx::Sizer' do
442
+ map_out code: '$result = wxRuby_WrapWxObjectInRuby($1);'
443
+ end
444
+
445
+
446
+ # Validators must be cast to correct subclass, but internal validator
447
+ # is a clone, and should not be freed, so disown after wrapping.
448
+ map 'wxValidator*' => 'Wx::Validator' do
449
+ map_out code: <<~__CODE
450
+ $result = wxRuby_WrapWxObjectInRuby($1);
451
+ if (!NIL_P($result)) RDATA($result)->dfree = SWIG_RubyRemoveTracking;
452
+ __CODE
453
+ end
454
+
455
+ # For ProcessEvent and AddPendingEvent and wxApp::FilterEvent
456
+
457
+ map 'wxEvent &event' => 'Wx::Event' do
458
+ map_directorin code: <<~__CODE
459
+ #ifdef __WXRB_DEBUG__
460
+ $input = wxRuby_WrapWxEventInRuby(this, const_cast<wxEvent*> (&$1));
461
+ #else
462
+ $input = wxRuby_WrapWxEventInRuby(const_cast<wxEvent*> (&$1));
463
+ #endif
464
+ __CODE
465
+
466
+ # Thin and trusting wrapping to bypass SWIG's normal mechanisms; we
467
+ # don't want SWIG changing ownership or typechecking these.
468
+ map_in code: '$1 = (wxEvent*)DATA_PTR($input);'
469
+ end
470
+
471
+ # For wxWindow::DoUpdateUIEvent
472
+
473
+ map 'wxUpdateUIEvent &' => 'Wx::UpdateUIEvent' do
474
+ map_directorin code: <<~__CODE
475
+ #ifdef __WXRB_DEBUG__
476
+ $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
477
+ #else
478
+ $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
479
+ #endif
480
+ __CODE
481
+ end
482
+
483
+ # For wxControl::Command
484
+
485
+ map 'wxCommandEvent &' => 'Wx::CommandEvent' do
486
+ map_directorin code: <<~__CODE
487
+ #ifdef __WXRB_DEBUG__
488
+ $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
489
+ #else
490
+ $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
491
+ #endif
492
+ __CODE
493
+ end
494
+
495
+ # typemap to allow String or Symbol for wxColour in args
496
+ map 'const wxColour&', 'const wxColour*', as: 'Wx::Colour,String,Symbol' do
497
+ map_in temp: 'wxColour tmpcol', code: <<~__CODE
498
+ tmpcol = wxRuby_ColourFromRuby($input);
499
+ if ((TYPE($input) == T_STRING || TYPE($input) == T_SYMBOL) && !tmpcol.IsOk())
500
+ {
501
+ rb_raise(rb_eArgError, "Invalid Colour value for %i", $argnum-1);
502
+ }
503
+ $1 = &tmpcol;
504
+ __CODE
505
+ map_out code: '$result = wxRuby_ColourToRuby(*$1);'
506
+ map_typecheck precedence: 'POINTER', code: <<~__CODE
507
+ $1 = wxRuby_IsRubyColour($input);
508
+ __CODE
509
+ end
510
+
511
+ # typemap to allow wxFontInfo for wxFont in args
512
+ map 'const wxFont&', 'const wxFont*', as: 'Wx::Font,Wx::FontInfo' do
513
+ map_in temp: 'wxFont tmpfnt', code: <<~__CODE
514
+ tmpfnt = wxRuby_FontFromRuby($input);
515
+ $1 = &tmpfnt;
516
+ __CODE
517
+ map_out code: '$result = wxRuby_FontToRuby(*$1);'
518
+ map_typecheck precedence: 'POINTER', code: <<~__CODE
519
+ $1 = wxRuby_IsRubyFont($input);
520
+ __CODE
521
+ end
522
+
523
+ # typemap to provide backward compatibility for BitmapBundle
524
+ map 'const wxBitmapBundle&' do
525
+ add_header_code <<~__CODE
526
+ inline bool wx_IsClass(VALUE obj, const char* class_name)
527
+ {
528
+ VALUE klass = rb_const_get(wxRuby_Core(), rb_intern(class_name));
529
+ return rb_obj_is_kind_of(obj, klass);
530
+ }
531
+ __CODE
532
+ map_in from: 'Wx::BitmapBundle,Wx::Bitmap,Wx::Icon,Wx::Image',
533
+ temp: 'wxBitmapBundle tmpBundle', code: <<~__CODE
534
+ $1 = &tmpBundle;
535
+ if (!NIL_P($input))
536
+ {
537
+ bool ok = false;
538
+ if (TYPE($input) == T_DATA)
539
+ {
540
+ void *ptr;
541
+ Data_Get_Struct($input, void, ptr);
542
+ if (ptr)
543
+ {
544
+ ok = true;
545
+ if (wx_IsClass($input, "BitmapBundle"))
546
+ tmpBundle = *static_cast<wxBitmapBundle*> (ptr);
547
+ else if (wx_IsClass($input, "Bitmap"))
548
+ tmpBundle = wxBitmapBundle(*static_cast<wxBitmap*> (ptr));
549
+ else if (wx_IsClass($input, "Icon"))
550
+ tmpBundle = wxBitmapBundle(*static_cast<wxIcon*> (ptr));
551
+ else if (wx_IsClass($input, "Image"))
552
+ tmpBundle = wxBitmapBundle(*static_cast<wxImage*> (ptr));
553
+ else
554
+ ok = false;
555
+ }
556
+ else
557
+ {
558
+ rb_raise(rb_eArgError, "Object already deleted for $1_basetype parameter $argnum");
559
+ }
560
+ }
561
+ // did we get a bitmap of some kind?
562
+ if (!ok)
563
+ {
564
+ rb_raise(rb_eTypeError, "Wrong type for $1_basetype parameter $argnum");
565
+ }
566
+ }
567
+ __CODE
568
+ map_typecheck precedence: 2000, code: <<~__CODE
569
+ $1 = (NIL_P($input) ||
570
+ (TYPE($input) == T_DATA &&
571
+ (wx_IsClass($input, "BitmapBundle") ||
572
+ wx_IsClass($input, "Bitmap") ||
573
+ wx_IsClass($input, "Icon") ||
574
+ wx_IsClass($input, "Image")))
575
+ );
576
+ __CODE
577
+ end
578
+
579
+ # output typemaps for common reference counted objects like wxPen, wxBrush,
580
+ # making sure to ALWAYS create managed copies
581
+ # (wxColour and wxFont are handled in separate typemaps above)
582
+ %w[wxPen wxBrush wxBitmap wxIcon wxCursor wxIconBundle wxPalette wxFontData wxFindReplaceData].each do |klass|
583
+ map "const #{klass}&", "const #{klass}*" do
584
+ map_out code: <<~__CODE
585
+ $result = SWIG_NewPointerObj((new #{klass}(*static_cast< const #{klass}* >($1))), SWIGTYPE_p_#{klass}, SWIG_POINTER_OWN);
586
+ __CODE
587
+ end
588
+ end
589
+
590
+ # special case bc SWIG causes trouble in Window.cpp
591
+ map 'const wxRegion&', 'const wxRegion*' do
592
+ map_out code: '$result = wxRuby_WrapWxObjectInRuby(new wxRegion(*static_cast<const wxRegion*> ($1)));'
593
+ end
594
+
595
+ # add type mapping for wxVariant input args
596
+ intypes = 'nil,String,Integer,Float,Time,Wx::Font,Wx::Colour,Wx::Variant,Array<WxVariant>,Array<String>,Object'
597
+ if Config.instance.features_set?('wxUSE_PROPGRID')
598
+ intypes << 'Wx::PG::ColourPropertyValue'
599
+ end
600
+ map 'const wxVariant&' => intypes do
601
+ map_in temp: 'wxVariant tmp', code: 'tmp = wxRuby_ConvertRbValue2Variant($input); $1 = &tmp;'
602
+ end
603
+ map 'wxVariant' => intypes do
604
+ map_in code: '$1 = wxRuby_ConvertRbValue2Variant($input);'
605
+ end
606
+
607
+ end # define
608
+
609
+ end # Common
610
+
611
+ end # Typemap
612
+
613
+ end # WXRuby3