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,284 @@
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 Functions < Director
11
+
12
+ include Typemap::ArrayIntSelections
13
+
14
+ def setup
15
+ super
16
+ spec.items.clear
17
+ spec.add_header_code <<~__HEREDOC
18
+ #include <wx/image.h>
19
+ #include <wx/app.h>
20
+ #include <wx/choicdlg.h>
21
+ #include <wx/numdlg.h>
22
+ #include <wx/xrc/xmlres.h>
23
+ #include <wx/utils.h>
24
+ #include <wx/stockitem.h>
25
+ #include <wx/aboutdlg.h>
26
+
27
+ // Logging functions - these don't directly wrap the corresponding wx
28
+ // LogXXX functions because those expect a literal format string and a
29
+ // list of arguments, rather than a dynamic string. Instead we do the
30
+ // sprintf in ruby, then pass the composed message directly to the
31
+ // log. This also avoids format string attacks.
32
+
33
+ // Log a Wx message with the given level to the current Wx log output
34
+ static VALUE log_generic(int argc, VALUE *argv, VALUE self)
35
+ {
36
+ if ( wxLog::IsEnabled() )
37
+ {
38
+ wxLogLevel lvl = static_cast<wxLogLevel> (NUM2INT(argv[0]));
39
+ VALUE log_msg = argc==2 ? argv[1] : rb_f_sprintf(argc-1, &argv[1]);
40
+ wxLog::OnLog( lvl,
41
+ wxString(StringValuePtr(log_msg), wxConvUTF8),
42
+ time(NULL) );
43
+ }
44
+ return Qnil;
45
+ }
46
+
47
+ // Log a Wx low prio Message to the current Wx log output
48
+ static VALUE log_info(int argc, VALUE *argv, VALUE self)
49
+ {
50
+ if ( wxLog::IsEnabled() )
51
+ {
52
+ VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
53
+ wxLog::OnLog( wxLOG_Info,
54
+ wxString(StringValuePtr(log_msg), wxConvUTF8),
55
+ time(NULL) );
56
+ }
57
+ return Qnil;
58
+ }
59
+
60
+ // Log a Wx verbose Message to the current Wx log output
61
+ static VALUE log_verbose(int argc, VALUE *argv, VALUE self)
62
+ {
63
+ if ( wxLog::IsEnabled() && wxLog::GetVerbose () )
64
+ {
65
+ VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
66
+ wxLog::OnLog( wxLOG_Info,
67
+ wxString(StringValuePtr(log_msg), wxConvUTF8),
68
+ time(NULL) );
69
+ }
70
+ return Qnil;
71
+ }
72
+
73
+ // Log a Wx Message to the current Wx log output
74
+ static VALUE log_message(int argc, VALUE *argv, VALUE self)
75
+ {
76
+ if ( wxLog::IsEnabled() )
77
+ {
78
+ VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
79
+ wxLog::OnLog( wxLOG_Message,
80
+ wxString(StringValuePtr(log_msg), wxConvUTF8),
81
+ time(NULL) );
82
+ }
83
+ return Qnil;
84
+ }
85
+
86
+ // Log a Wx Warning message to the current Wx log output
87
+ static VALUE log_warning(int argc, VALUE *argv, VALUE self)
88
+ {
89
+ if ( wxLog::IsEnabled() )
90
+ {
91
+ VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
92
+ wxLog::OnLog( wxLOG_Warning,
93
+ wxString(StringValuePtr(log_msg), wxConvUTF8),
94
+ time(NULL) );
95
+ }
96
+ return Qnil;
97
+ }
98
+
99
+ // Log an error message to the current output
100
+ static VALUE log_error(int argc, VALUE *argv, VALUE self)
101
+ {
102
+ if ( wxLog::IsEnabled() )
103
+ {
104
+ VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
105
+ wxLog::OnLog( wxLOG_Error,
106
+ wxString(StringValuePtr(log_msg), wxConvUTF8),
107
+ time(NULL) );
108
+ }
109
+ return Qnil;
110
+ }
111
+
112
+ // Log a debug message
113
+ static VALUE log_debug(int argc, VALUE *argv, VALUE self)
114
+ {
115
+ if (wxLog::IsLevelEnabled(wxLOG_Debug, wxASCII_STR(wxLOG_COMPONENT)))
116
+ {
117
+ VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
118
+ wxLogDebug(wxString(StringValuePtr(log_msg), wxConvUTF8));
119
+ }
120
+ return Qnil;
121
+ }
122
+
123
+ // Log a Wx Status message - this is directed to the status bar of the
124
+ // specified window, or the application main window if not specified.
125
+ // Based on wxWidgets code in src/generic/logg.cpp, WxLogGui::DoLog
126
+ static VALUE log_status(int argc, VALUE *argv, VALUE self)
127
+ {
128
+ if ( ! wxLog::IsEnabled() )
129
+ return Qnil;
130
+
131
+ VALUE log_msg; // The message to be written
132
+ wxFrame* log_frame {}; // The frame whose status bar should display the logmsg
133
+
134
+ // To a specific window's status bar
135
+ if( TYPE(argv[0]) == T_DATA ) {
136
+ log_msg = rb_f_sprintf(argc-1, &argv[1]);
137
+ Data_Get_Struct(argv[0], wxFrame, log_frame);
138
+ }
139
+ // To the application main window's status bar
140
+ else {
141
+ log_msg = rb_f_sprintf(argc, argv);
142
+ wxWindow* win = wxTheApp->GetTopWindow();
143
+ // Check the top window is actually a frame, not a dialog
144
+ if ( win != NULL && win->IsKindOf( CLASSINFO(wxFrame) ) )
145
+ log_frame = (wxFrame*)win;
146
+ }
147
+
148
+ // Finally, display in the status bar if it has one
149
+ if ( log_frame && log_frame->GetStatusBar() )
150
+ log_frame->SetStatusText(wxString( StringValuePtr(log_msg), wxConvUTF8));
151
+
152
+ return Qnil;
153
+ }
154
+
155
+ // Returns the global app object
156
+ static VALUE get_app(VALUE self)
157
+ {
158
+ static WxRuby_ID THE_APP_id("THE_APP");
159
+
160
+ return rb_const_get(wxRuby_Core(), THE_APP_id());
161
+ }
162
+
163
+ // Converts a string XRC id into a Wx id
164
+ static VALUE
165
+ xrcid(VALUE self,VALUE str_id)
166
+ {
167
+ wxString temp(StringValuePtr(str_id), wxConvUTF8);
168
+ int ret = wxXmlResource::GetXRCID(temp);
169
+ return INT2NUM(ret);
170
+ }
171
+
172
+
173
+ // Returns the pointer address of the underlying C++ object as a hex
174
+ // string - useful for debugging
175
+ static VALUE
176
+ cpp_ptr_addr(VALUE self, VALUE obj)
177
+ {
178
+ static WxRuby_ID sprintf_id("sprintf");
179
+
180
+ size_t ptr = (size_t)DATA_PTR(obj);
181
+ return rb_funcall( rb_mKernel, sprintf_id(), 2,
182
+ rb_str_new2("0x%x"), OFFT2NUM(ptr) );
183
+ }
184
+ __HEREDOC
185
+
186
+ # All the functions which take a parent argument in this file display
187
+ # dialogs, so the parent argument can be nil (which is not permitted in
188
+ # the normal typemap defined in common.rb). So override the standard
189
+ # typemap and just check that the App has been started.
190
+ spec.map 'wxWindow* parent' do
191
+ map_check code: <<~__CODE
192
+ if ( !wxRuby_IsAppRunning() )
193
+ {
194
+ rb_raise(rb_eRuntimeError,
195
+ "Cannot display dialog before App.main_loop has been called");
196
+ }
197
+ __CODE
198
+ end
199
+ # hardcoded interface declarations
200
+ spec.add_interface_code <<~__HEREDOC
201
+ bool wxSafeYield(wxWindow* win = NULL, bool onlyIfNeeded = false);
202
+
203
+ // Mouse / keyboard information
204
+ wxWindow * wxGetActiveWindow();
205
+
206
+ // Dialog shortcuts
207
+ VOID_INT wxGetSelectedChoices(wxArrayInt& selections,
208
+ const wxString& message,
209
+ const wxString& caption,
210
+ int n, const wxString *choices,
211
+ wxWindow *parent = NULL,
212
+ int x = wxDefaultCoord,
213
+ int y = wxDefaultCoord,
214
+ bool centre = true,
215
+ int width = wxCHOICE_WIDTH,
216
+ int height = wxCHOICE_HEIGHT);
217
+
218
+
219
+ wxString wxFileSelector (const wxString &message,
220
+ const wxString &default_path=wxEmptyString,
221
+ const wxString &default_filename=wxEmptyString,
222
+ const wxString &default_extension=wxEmptyString,
223
+ const wxString &wildcard=wxFileSelectorDefaultWildcardStr,
224
+ int flags=0, wxWindow *parent=NULL, int x=wxDefaultCoord, int y=wxDefaultCoord);
225
+
226
+ wxString wxFileSelectorEx (const wxString &message=wxFileSelectorPromptStr,
227
+ const wxString &default_path=wxEmptyString,
228
+ const wxString &default_filename=wxEmptyString,
229
+ int *indexDefaultExtension=NULL,
230
+ const wxString &wildcard=wxFileSelectorDefaultWildcardStr,
231
+ int flags=0, wxWindow *parent=NULL, int x=wxDefaultCoord, int y=wxDefaultCoord);
232
+
233
+ wxString wxLoadFileSelector (const wxString &what,
234
+ const wxString &extension,
235
+ const wxString &default_name=wxEmptyString,
236
+ wxWindow *parent=NULL);
237
+
238
+ wxString wxSaveFileSelector (const wxString &what,
239
+ const wxString &extension,
240
+ const wxString &default_name=wxEmptyString,
241
+ wxWindow *parent=NULL);
242
+
243
+ // Managing stock ids
244
+ enum wxStockLabelQueryFlag {
245
+ wxSTOCK_NOFLAGS = 0 ,
246
+ wxSTOCK_WITH_MNEMONIC = 1 ,
247
+ wxSTOCK_WITH_ACCELERATOR = 2 ,
248
+ wxSTOCK_WITHOUT_ELLIPSIS = 4 ,
249
+ wxSTOCK_FOR_BUTTON = wxSTOCK_WITHOUT_ELLIPSIS | wxSTOCK_WITH_MNEMONIC
250
+ };
251
+
252
+ bool wxIsStockID(wxWindowID id);
253
+ bool wxIsStockLabel(wxWindowID id, const wxString& label);
254
+ wxString wxGetStockLabel(wxWindowID id,
255
+ long flags = wxSTOCK_WITH_MNEMONIC);
256
+ wxAcceleratorEntry wxGetStockAccelerator(wxWindowID id);
257
+
258
+ enum wxStockHelpStringClient
259
+ {
260
+ wxSTOCK_MENU
261
+ };
262
+
263
+ wxString wxGetStockHelpString(wxWindowID id,
264
+ wxStockHelpStringClient client = wxSTOCK_MENU);
265
+ __HEREDOC
266
+ spec.add_init_code <<~__HEREDOC
267
+ rb_define_module_function(mWxFunctions, "log_generic", VALUEFUNC(log_generic), -1);
268
+ rb_define_module_function(mWxFunctions, "log_info", VALUEFUNC(log_info), -1);
269
+ rb_define_module_function(mWxFunctions, "log_verbose", VALUEFUNC(log_verbose), -1);
270
+ rb_define_module_function(mWxFunctions, "log_message", VALUEFUNC(log_message), -1);
271
+ rb_define_module_function(mWxFunctions, "log_warning", VALUEFUNC(log_warning), -1);
272
+ rb_define_module_function(mWxFunctions, "log_status", VALUEFUNC(log_status), -1);
273
+ rb_define_module_function(mWxFunctions, "log_error", VALUEFUNC(log_error), -1);
274
+ rb_define_module_function(mWxFunctions, "log_debug", VALUEFUNC(log_debug), -1);
275
+ rb_define_module_function(mWxFunctions, "get_app", VALUEFUNC(get_app), 0);
276
+ rb_define_module_function(mWxFunctions, "xrcid", VALUEFUNC(xrcid), 1);
277
+ rb_define_module_function(mWxFunctions, "ptr_addr", VALUEFUNC(cpp_ptr_addr), 1);
278
+ __HEREDOC
279
+ end
280
+ end # class Functions
281
+
282
+ end # class Director
283
+
284
+ end # module WXRuby3
@@ -0,0 +1,21 @@
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 GDIObject < Director
11
+
12
+ def setup
13
+ spec.make_abstract('wxGDIObject')
14
+ spec.no_proxy('wxGDIObject')
15
+ super
16
+ end
17
+ end # class GDIObject
18
+
19
+ end # class Director
20
+
21
+ end # module WXRuby3
@@ -0,0 +1,94 @@
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 GDICommon < Director
11
+
12
+ def setup
13
+ spec.items.replace %w{wxPoint wxSize wxRect wxRealPoint wxColourDatabase}
14
+ # all ctors
15
+ spec.require_app 'wxColourDatabase'
16
+ # global functions
17
+ spec.require_app %w[wxColourDisplay wxDisplayDepth wxSetCursor wxGetClientDisplayRect
18
+ wxGetDisplayPPI wxGetDisplaySize wxGetDisplaySizeMM]
19
+ spec.ignore %w{
20
+ wxTheColourDatabase
21
+ }
22
+ spec.ignore [
23
+ 'wxClientDisplayRect(int *,int *,int *,int *)',
24
+ 'wxDisplaySize(int *,int *)',
25
+ 'wxDisplaySizeMM(int *,int *)',
26
+ 'wxRect::Inflate(wxCoord,wxCoord)',
27
+ 'wxRect::Inflate(wxCoord,wxCoord) const',
28
+ 'wxRect::Deflate(wxCoord,wxCoord)',
29
+ 'wxRect::Deflate(wxCoord,wxCoord) const',
30
+ 'wxRect::Offset(wxCoord,wxCoord)',
31
+ 'wxRect::Intersect(const wxRect &)',
32
+ 'wxRect::Union(const wxRect &)'
33
+ ]
34
+ # overrule common wxPoint mapping for wxRect ctor to fix ctor ambiguities here wrt wxSize
35
+ spec.map 'const wxPoint& topLeft', 'const wxPoint& bottomRight', as: 'Wx::Point' do
36
+ map_in code: <<~__CODE
37
+ if ( TYPE($input) == T_DATA )
38
+ {
39
+ void* argp$argnum;
40
+ SWIG_ConvertPtr($input, &argp$argnum, $1_descriptor, 1 );
41
+ $1 = reinterpret_cast< $1_basetype * >(argp$argnum);
42
+ }
43
+ else
44
+ {
45
+ rb_raise(rb_eTypeError, "Wrong type for $1_basetype parameter");
46
+ }
47
+ __CODE
48
+ map_typecheck precedence: 'POINTER', code: <<~__CODE
49
+ void *vptr = 0;
50
+ $1 = 0;
51
+ if (TYPE($input) == T_DATA && SWIG_CheckState (SWIG_ConvertPtr ($input, &vptr, $1_descriptor, 0)))
52
+ $1 = 1;
53
+ __CODE
54
+ end
55
+ spec.map 'wxRect&' => 'Wx::Rect', 'wxSize&' => 'Wx::Size' do
56
+ map_out code: '$result = self; wxUnusedVar(result);'
57
+ end
58
+ spec.regard %w[
59
+ wxPoint::x wxPoint::y
60
+ wxRealPoint::x wxRealPoint::y
61
+ ]
62
+ spec.set_only_for '__WXGTK__', 'wxStockCursor.wxCURSOR_DEFAULT'
63
+ spec.set_only_for '__X__', %w{
64
+ wxStockCursor.wxCURSOR_CROSS_REVERSE
65
+ wxStockCursor.wxCURSOR_DOUBLE_ARROW
66
+ wxStockCursor.wxCURSOR_BASED_ARROW_UP
67
+ wxStockCursor.wxCURSOR_BASED_ARROW_DOWN
68
+ }
69
+ spec.set_only_for '__WXMAC__', 'wxStockCursor.wxCURSOR_COPY_ARROW'
70
+ spec.add_extend_code 'wxRect', <<~__HEREDOC
71
+ wxRect add(const wxRect &rect) const {
72
+ return (*(const wxRect*)$self) + rect;
73
+ }
74
+ wxRect mul(const wxRect &rect) const {
75
+ return (*(const wxRect*)$self) * rect;
76
+ }
77
+ __HEREDOC
78
+ spec.swig_import 'swig/classes/include/wxDefs.h'
79
+ super
80
+ end
81
+
82
+ def process(gendoc: false)
83
+ defmod = super
84
+ e = defmod.find('wxBitmapType')
85
+ e.items.each do |item|
86
+ item.ignore if item.name.end_with?('_RESOURCE')
87
+ end
88
+ defmod
89
+ end
90
+ end # class GDICommon
91
+
92
+ end # class Director
93
+
94
+ end # module WXRuby3
@@ -0,0 +1,24 @@
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 GenericDirCtrl < Window
11
+
12
+ include Typemap::TreeItemId
13
+
14
+ def setup
15
+ super
16
+ spec.no_proxy 'wxGenericDirCtrl'
17
+ spec.do_not_generate(:variables, :defines, :enums, :functions) # already with DirFilterListCtrl
18
+ end
19
+
20
+ end # class GenericDirCtrl
21
+
22
+ end # class Director
23
+
24
+ end # module WXRuby3
@@ -0,0 +1,143 @@
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 GraphicsContext < Director
11
+
12
+ def setup
13
+ super
14
+ spec.disable_proxies
15
+ # these static creators require a running app
16
+ spec.require_app 'wxGraphicsContext::Create',
17
+ 'wxGraphicsContext::CreateFromUnknownDC'
18
+ spec.ignore 'wxGraphicsContext::CreateFromNative',
19
+ 'wxGraphicsContext::CreateFromNativeWindow',
20
+ 'wxGraphicsContext::CreateFromNativeHDC',
21
+ 'wxGraphicsContext::GetNativeContext',
22
+ 'wxGraphicsContext::Create(const wxEnhMetaFileDC &)'
23
+ # type mappings
24
+ # Typemap to fix GraphicsContext#get_text_extent
25
+ spec.map_apply 'double *OUTPUT' => [ 'wxDouble* width', 'wxDouble* height',
26
+ 'wxDouble* descent', 'wxDouble* externalLeading' ]
27
+ spec.map 'wxDouble* width, wxDouble* height, wxDouble* descent, wxDouble* externalLeading' do
28
+ map_directorargout code: <<~__CODE
29
+ if ( (TYPE(result) == T_ARRAY) && (RARRAY_LEN(result) >= 2) )
30
+ {
31
+ *$1 = ($*1_ltype)NUM2INT(rb_ary_entry(result,0));
32
+ *$2 = ($*2_ltype)NUM2INT(rb_ary_entry(result,1));
33
+ if ( ($3 != NULL ) && RARRAY_LEN(result) >= 3)
34
+ *$3 = ($*3_ltype)NUM2INT(rb_ary_entry(result,2));
35
+ if ( ( $4 != NULL ) && RARRAY_LEN(result) >= 4 )
36
+ *$4 = ($*4_ltype)NUM2INT(rb_ary_entry(result,3));
37
+ }
38
+ __CODE
39
+ end
40
+ spec.map 'size_t, const wxPoint2DDouble *' => 'Array<Array<Float,Float>>' do
41
+ map_in from: {type: 'Array<Array<Float,Float>>', index: 1},
42
+ temp: 'std::unique_ptr<wxPoint2DDouble[]> tmp_pts',
43
+ code: <<~__CODE
44
+ bool ok = false;
45
+ if (TYPE($input) == T_ARRAY)
46
+ {
47
+ ok = true;
48
+ tmp_pts = std::make_unique<wxPoint2DDouble[]>(RARRAY_LEN($input));
49
+ for (int i=0; i<RARRAY_LEN($input) ;++i)
50
+ {
51
+ VALUE el = rb_ary_entry($input, i);
52
+ if (TYPE(el) == T_ARRAY && RARRAY_LEN(el) == 2)
53
+ {
54
+ tmp_pts[i] = wxPoint2DDouble(NUM2DBL(rb_ary_entry(el, 0)), NUM2DBL(rb_ary_entry(el, 1)));
55
+ }
56
+ else
57
+ { ok = false; }
58
+ }
59
+ if (ok)
60
+ {
61
+ $1 = RARRAY_LEN($input);
62
+ $2 = tmp_pts.get();
63
+ }
64
+ }
65
+ if (!ok)
66
+ {
67
+ rb_raise(rb_eArgError, "Invalid value for %i", $argnum-1);
68
+ }
69
+ __CODE
70
+ map_default code: '$1 = 0; $2 = NULL;'
71
+ map_typecheck precedence: 5, code: <<~__CODE
72
+ $1 = false;
73
+ if (TYPE($input) == T_ARRAY && RARRAY_LEN($input)>0)
74
+ {
75
+ VALUE el = rb_ary_entry($input, 0);
76
+ if (TYPE(el) == T_ARRAY && RARRAY_LEN(el) == 2)
77
+ {
78
+ VALUE pt = rb_ary_entry(el, 0);
79
+ $1 = TYPE(pt) != T_ARRAY;
80
+ }
81
+ }
82
+ __CODE
83
+ end
84
+ spec.map 'size_t, const wxPoint2DDouble *, const wxPoint2DDouble *' do
85
+ map_in from: {type: 'Array<Array<Array<Float,Float>,Array<Float,Float>>>', index: 0},
86
+ temp: ['std::unique_ptr<wxPoint2DDouble[]> tmp_begin', 'std::unique_ptr<wxPoint2DDouble[]> tmp_end'],
87
+ code: <<~__CODE
88
+ bool ok = false;
89
+ if (TYPE($input) == T_ARRAY)
90
+ {
91
+ ok = true;
92
+ tmp_begin = std::make_unique<wxPoint2DDouble[]>(RARRAY_LEN($input));
93
+ tmp_end = std::make_unique<wxPoint2DDouble[]>(RARRAY_LEN($input));
94
+ for (int i=0; i<RARRAY_LEN($input) ;++i)
95
+ {
96
+ VALUE el = rb_ary_entry($input, i);
97
+ if (TYPE(el) == T_ARRAY && RARRAY_LEN(el) == 2)
98
+ {
99
+ VALUE begin_pt = rb_ary_entry(el, 0);
100
+ VALUE end_pt = rb_ary_entry(el, 1);
101
+ if (TYPE(begin_pt) == T_ARRAY && RARRAY_LEN(begin_pt) == 2 && TYPE(end_pt) == T_ARRAY && RARRAY_LEN(end_pt) == 2)
102
+ {
103
+ tmp_begin[i] = wxPoint2DDouble(NUM2DBL(rb_ary_entry(begin_pt, 0)), NUM2DBL(rb_ary_entry(begin_pt, 1)));
104
+ tmp_end[i] = wxPoint2DDouble(NUM2DBL(rb_ary_entry(end_pt, 0)), NUM2DBL(rb_ary_entry(end_pt, 1)));
105
+ }
106
+ else
107
+ { ok = false; }
108
+ }
109
+ else
110
+ { ok = false; }
111
+ }
112
+ if (ok)
113
+ {
114
+ $1 = RARRAY_LEN($input);
115
+ $2 = tmp_begin.get();
116
+ $3 = tmp_end.get();
117
+ }
118
+ }
119
+ if (!ok)
120
+ {
121
+ rb_raise(rb_eArgError, "Invalid value for %i", $argnum-1);
122
+ }
123
+ __CODE
124
+ map_default code: '$1 = 0; $2 = NULL; $3 = NULL;'
125
+ map_typecheck precedence: 10, code: <<~__CODE
126
+ $1 = false;
127
+ if (TYPE($input) == T_ARRAY && RARRAY_LEN($input)>0)
128
+ {
129
+ VALUE el = rb_ary_entry($input, 0);
130
+ if (TYPE(el) == T_ARRAY && RARRAY_LEN(el) == 2)
131
+ {
132
+ VALUE pt = rb_ary_entry(el, 0);
133
+ $1 = TYPE(pt) == T_ARRAY;
134
+ }
135
+ }
136
+ __CODE
137
+ end
138
+ end
139
+ end # class GraphicsContext
140
+
141
+ end # class Director
142
+
143
+ end # module WXRuby3
@@ -0,0 +1,69 @@
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 GraphicsObject < Director
11
+
12
+ def setup
13
+ super
14
+ spec.items.concat %w[wxGraphicsPen wxGraphicsBrush wxGraphicsPath wxGraphicsFont wxGraphicsMatrix wxGraphicsBitmap]
15
+ spec.disable_proxies
16
+ spec.ignore 'wxGraphicsObject::GetRenderer'
17
+ spec.ignore 'wxGraphicsMatrix::Concat(const wxGraphicsMatrix &)'
18
+ spec.ignore 'wxGraphicsMatrix::IsEqual(const wxGraphicsMatrix &)'
19
+ spec.ignore 'wxGraphicsMatrix::GetNativeMatrix'
20
+ spec.ignore 'wxGraphicsBitmap::GetNativeBitmap'
21
+ spec.ignore 'wxGraphicsPath::GetNativePath', 'wxGraphicsPath::UnGetNativePath'
22
+ # Deal with GraphicsMatrix#get method
23
+ spec.map_apply 'double *OUTPUT' => [ 'wxDouble *a', 'wxDouble *b',
24
+ 'wxDouble *c', 'wxDouble *d',
25
+ 'wxDouble *tx' , 'wxDouble *ty' ]
26
+ # type mapping for GraphicsPath wxPoint2DDouble args
27
+ spec.map 'const wxPoint2DDouble&' => 'Array<Float,Float>' do
28
+ map_in temp: 'wxPoint2DDouble tmp_pt', code: <<~__CODE
29
+ if (TYPE($input) == T_ARRAY && RARRAY_LEN($input) == 2)
30
+ {
31
+ tmp_pt = wxPoint2DDouble(NUM2DBL(rb_ary_entry($input, 0)),
32
+ NUM2DBL(rb_ary_entry($input, 1)));
33
+ $1 = &tmp_pt;
34
+ }
35
+ else
36
+ {
37
+ rb_raise(rb_eTypeError, "Wrong type for %i", $argnum-1);
38
+ }
39
+ __CODE
40
+ end
41
+ spec.ignore 'wxGraphicsPath::GetBox() const',
42
+ 'wxGraphicsPath::GetCurrentPoint() const'
43
+ if Config.platform == :mingw
44
+ # it seems for WXMSW there is a problem cleaning up GraphicsObjects in GC after
45
+ # the wxApp has ended (probably because some other wxWidgets cleanup already
46
+ # forcibly deleted their resources)
47
+ spec.add_header_code <<~__HEREDOC
48
+ // special free func is needed to clean up only as long the app still runs
49
+ // the rest we leave for the system clean up as the process terminates
50
+ void GC_free_GraphicsObject(wxGraphicsObject *go)
51
+ {
52
+ SWIG_RubyRemoveTracking(go);
53
+ if ( wxRuby_IsAppRunning() )
54
+ delete go;
55
+ }
56
+ __HEREDOC
57
+ spec.add_swig_code '%feature("freefunc") wxGraphicsPen "GC_free_GraphicsObject";'
58
+ spec.add_swig_code '%feature("freefunc") wxGraphicsBrush "GC_free_GraphicsObject";'
59
+ spec.add_swig_code '%feature("freefunc") wxGraphicsPath "GC_free_GraphicsObject";'
60
+ spec.add_swig_code '%feature("freefunc") wxGraphicsFont "GC_free_GraphicsObject";'
61
+ spec.add_swig_code '%feature("freefunc") wxGraphicsMatrix "GC_free_GraphicsObject";'
62
+ spec.add_swig_code '%feature("freefunc") wxGraphicsBitmap "GC_free_GraphicsObject";'
63
+ end
64
+ end
65
+ end # class GraphicsObject
66
+
67
+ end # class Director
68
+
69
+ end # module WXRuby3