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,61 @@
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 Printer < Director
11
+
12
+ def setup
13
+ super
14
+ spec.items << 'wxPrintout' << 'wxPrintPreview'
15
+ spec.no_proxy 'wxPrinter', 'wxPrintPreview' # do not see the point in allowing overrides for the standard methods
16
+ spec.new_object 'wxPrinter::CreateAbortWindow'
17
+ spec.new_object 'wxPrinter::PrintDialog'
18
+ # make wxPrinter GC-safe
19
+ spec.ignore 'wxPrinter::GetPrintDialogData'
20
+ spec.add_extend_code 'wxPrinter', <<~__HEREDOC
21
+ wxPrintDialogData* GetPrintDialogData()
22
+ { return new wxPrintDialogData(self->GetPrintDialogData()); }
23
+ void SetPrintDialogData(const wxPrintDialogData& pd)
24
+ { self->GetPrintDialogData() = pd; }
25
+ __HEREDOC
26
+ spec.new_object 'wxPrinter::GetPrintDialogData'
27
+ spec.disown 'wxPrintout *' # Printout-s passed to PrintPreview will be managed by wxWidgets
28
+ spec.add_header_code <<~__HEREDOC
29
+ static void GC_mark_wxPrintPreview(void *ptr)
30
+ {
31
+ wxPrintPreview* print_preview = (wxPrintPreview*)ptr;
32
+ wxPrintout* printout = print_preview->GetPrintout();
33
+ rb_gc_mark( SWIG_RubyInstanceFor(printout) );
34
+ wxPrintout* printout_for_printing = print_preview->GetPrintoutForPrinting();
35
+ rb_gc_mark( SWIG_RubyInstanceFor(printout_for_printing) );
36
+ }
37
+ __HEREDOC
38
+ spec.add_swig_code '%markfunc wxPrintPreview "GC_mark_wxPrintPreview";'
39
+ # for GetCanvas
40
+ spec.ignore('wxPrintPreview::GetCanvas', ignore_doc: false)
41
+ spec.extend_interface('wxPrintPreview',
42
+ 'virtual wxScrolledWindow* GetCanvas() const')
43
+ # docs only mapping
44
+ spec.map 'wxPreviewCanvas *' => 'wxScrolledWindow', swig: false do
45
+ map_out
46
+ end
47
+ spec.suppress_warning(473,
48
+ 'wxPrintPreview::GetCanvas',
49
+ 'wxPrintPreview::GetFrame',
50
+ 'wxPrintPreview::GetPrintout',
51
+ 'wxPrintPreview::GetPrintoutForPrinting')
52
+ # for various Printout getters
53
+ spec.add_swig_code '%feature("new", "0") wxPrintout::GetDC;'
54
+ spec.map_apply 'int * OUTPUT' => 'int *'
55
+ spec.do_not_generate(:variables, :defines, :enums, :functions) # with PrintAbortDialog
56
+ end
57
+ end # class Printer
58
+
59
+ end # class Director
60
+
61
+ end # module WXRuby3
@@ -0,0 +1,174 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative './window'
7
+
8
+ module WXRuby3
9
+
10
+ class Director
11
+
12
+ class PropertyGrid < Window
13
+
14
+ include Typemap::PGProperty
15
+
16
+ include Typemap::PGCell
17
+
18
+ include Typemap::PGPropArg
19
+
20
+ def setup
21
+ super
22
+ spec.gc_as_window 'wxPropertyGrid'
23
+ spec.override_inheritance_chain('wxPropertyGrid', %w[wxScrolledControl wxControl wxWindow wxEvtHandler wxObject])
24
+ spec.add_header_code 'typedef wxScrolled<wxControl> wxScrolledControl;'
25
+ spec.no_proxy 'wxPropertyGrid::SendAutoScrollEvents',
26
+ 'wxPropertyGrid::RefreshProperty',
27
+ 'wxPropertyGrid::GetStatusBar'
28
+ # not usable in wxRuby
29
+ spec.ignore 'wxPropertyGrid::SetSortFunction',
30
+ 'wxPropertyGrid::GetSortFunction'
31
+ spec.ignore 'wxPropertyGrid::RegisterEditorClass' # defined in pure Ruby
32
+ spec.disown 'wxPGEditor *editor' # for DoRegisterEditorClass
33
+ # special doc-only mapping to remove this arg from docs as wxRuby always passes false here
34
+ spec.map 'bool noDefCheck', swig: false do
35
+ map_in ignore: true
36
+ end
37
+ # replace by custom extension
38
+ spec.add_header_code <<~__HEREDOC
39
+ static int wxRuby_PropertyGridSortFunction(wxPropertyGrid* pg, wxPGProperty* pp1, wxPGProperty* pp2)
40
+ {
41
+ static WxRuby_ID call_id("call");
42
+
43
+ VALUE rb_pg = SWIG_RubyInstanceFor(pg);
44
+ VALUE rb_pp1 = SWIG_NewPointerObj(SWIG_as_voidptr(pp1), SWIGTYPE_p_wxPGProperty, 0);
45
+ VALUE rb_pp2 = SWIG_NewPointerObj(SWIG_as_voidptr(pp2), SWIGTYPE_p_wxPGProperty, 0);
46
+ VALUE rb_sorter = rb_iv_get(rb_pg, "@__sorter");
47
+ if (NIL_P(rb_sorter))
48
+ {
49
+ VALUE msg = rb_inspect(rb_pg);
50
+ rb_raise(rb_eRuntimeError, "Nil @__sorter for %s",
51
+ StringValuePtr(msg));
52
+ }
53
+ return INT2NUM(rb_funcall(rb_sorter, call_id(), 3, rb_pg, rb_pp1, rb_pp2));
54
+ }
55
+ __HEREDOC
56
+ spec.add_extend_code 'wxPropertyGrid', <<~__HEREDOC
57
+ void SetSorter(VALUE proc)
58
+ {
59
+ VALUE rb_self = SWIG_RubyInstanceFor(self);
60
+ rb_iv_set(rb_self, "@__sorter", proc);
61
+ self->SetSortFunction(wxRuby_PropertyGridSortFunction);
62
+ }
63
+ VALUE GetSorter()
64
+ {
65
+ VALUE rb_self = SWIG_RubyInstanceFor(self);
66
+ return rb_iv_get(rb_self, "@__sorter");
67
+ }
68
+ __HEREDOC
69
+ spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
70
+ # mixin PropertyGridInterface
71
+ spec.include_mixin 'wxPropertyGrid', 'Wx::PG::PropertyGridInterface'
72
+ # customize mark function
73
+ spec.add_header_code <<~__HEREDOC
74
+ static void GC_mark_wxPropertyGrid(void* ptr)
75
+ {
76
+ #ifdef __WXRB_DEBUG__
77
+ if (wxRuby_TraceLevel()>1)
78
+ std::wcout << "> GC_mark_wxPropertyGrid : " << ptr << std::endl;
79
+ #endif
80
+ if ( GC_IsWindowDeleted(ptr) )
81
+ {
82
+ return;
83
+ }
84
+ // Do standard marking routines as for all wxWindows
85
+ GC_mark_wxWindow(ptr);
86
+
87
+ wxPropertyGrid* wx_pg = (wxPropertyGrid*) ptr;
88
+
89
+ // mark all properties
90
+ wxPGVIterator it =
91
+ wx_pg->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
92
+ // iterate all
93
+ for ( ; !it.AtEnd(); it.Next() )
94
+ {
95
+ wxPGProperty* p = it.GetProperty();
96
+ VALUE rb_p = SWIG_RubyInstanceFor(p);
97
+ if (NIL_P(rb_p))
98
+ {
99
+ VALUE object = (VALUE) p->GetClientData();
100
+ if ( object && !NIL_P(object))
101
+ {
102
+ #ifdef __WXRB_DEBUG__
103
+ if (wxRuby_TraceLevel()>2)
104
+ std::wcout << "*** marking property data " << p << ":" << p->GetName() << std::endl;
105
+ #endif
106
+ rb_gc_mark(object);
107
+ }
108
+ }
109
+ else
110
+ {
111
+ rb_gc_mark(rb_p);
112
+ }
113
+ }
114
+ }
115
+ __HEREDOC
116
+ spec.add_swig_code '%markfunc wxPropertyGrid "GC_mark_wxPropertyGrid";'
117
+ # missing from XML docs
118
+ spec.extend_interface 'wxPropertyGrid',
119
+ 'wxPoint GetGoodEditorDialogPosition(wxPGProperty* p, const wxSize& sz)',
120
+ 'wxWindow* GetPrimaryEditor() const',
121
+ 'wxWindow* GetEditorControlSecondary() const',
122
+ 'wxRect GetPropertyRect(const wxPGProperty* p1, const wxPGProperty* p2) const'
123
+ # add extension code to retrieve the internal standard editors
124
+ # can't use the global variables directly to create constants as these will
125
+ # only be initialized after the app has started so we add a module method
126
+ # to retrieve the variables and use that to initialize the constants using
127
+ # delayed init
128
+ spec.include 'wx/propgrid/advprops.h'
129
+ spec.add_extend_code 'wxPropertyGrid', <<~__HEREDOC
130
+ static wxPGEditor* get_standard_editor_class(const wxString& editor_name)
131
+ {
132
+ // will trigger registration of all property editors
133
+ wxPropertyGridInterface::RegisterAdditionalEditors();
134
+ if (editor_name == wxS("TextCtrl"))
135
+ {
136
+ return wxPGEditor_TextCtrl;
137
+ }
138
+ if (editor_name == wxS("TextCtrlAndButton"))
139
+ {
140
+ return wxPGEditor_TextCtrlAndButton;
141
+ }
142
+ if (editor_name == wxS("Choice"))
143
+ {
144
+ return wxPGEditor_Choice;
145
+ }
146
+ if (editor_name == wxS("ComboBox"))
147
+ {
148
+ return wxPGEditor_ComboBox;
149
+ }
150
+ if (editor_name == wxS("CheckBox"))
151
+ {
152
+ return wxPGEditor_CheckBox;
153
+ }
154
+ if (editor_name == wxS("ChoiceAndButton"))
155
+ {
156
+ return wxPGEditor_ChoiceAndButton;
157
+ }
158
+ if (editor_name == wxS("SpinCtrl"))
159
+ {
160
+ return wxPGEditor_SpinCtrl;
161
+ }
162
+ if (editor_name == wxS("DatePickerCtrl"))
163
+ {
164
+ return wxPGEditor_DatePickerCtrl;
165
+ }
166
+ return 0;
167
+ }
168
+ __HEREDOC
169
+ end
170
+ end # class PropertyGrid
171
+
172
+ end # class Director
173
+
174
+ end # module WXRuby3
@@ -0,0 +1,23 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative './event'
7
+
8
+ module WXRuby3
9
+
10
+ class Director
11
+
12
+ include Typemap::PGProperty
13
+
14
+ class PropertyGridEvent < Event
15
+
16
+ def setup
17
+ super
18
+ end
19
+ end # class PropertyGridEvent
20
+
21
+ end # class Director
22
+
23
+ end # module WXRuby3
@@ -0,0 +1,227 @@
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 PropertyGridInterface < Director
11
+
12
+ include Typemap::DateTime
13
+
14
+ include Typemap::PGProperty
15
+
16
+ include Typemap::PGEditor
17
+
18
+ include Typemap::PGPropArg
19
+
20
+ def setup
21
+ super
22
+ spec.gc_as_temporary 'wxPropertyGridInterface' # actually no GC control necessary as this is a mixin only
23
+ # turn wxPropertyGridInterface into a mixin module
24
+ spec.make_mixin 'wxPropertyGridInterface'
25
+ # add typedef to work around flaky define in wxWidgets
26
+ spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
27
+ # for Append, AppendIn, Insert, ReplaceProperty
28
+ spec.disown 'wxPGProperty *property', 'wxPGProperty *newProperty'
29
+ spec.ignore 'wxPropertyGridInterface::RemoveProperty' # too problematic bc of GC issues
30
+ # ignore ALL but the Wx::Variant overload
31
+ spec.ignore 'wxPropertyGridInterface::SetPropertyValue', ignore_doc: false
32
+ spec.regard 'wxPropertyGridInterface::SetPropertyValue(wxPGPropArg, wxVariant)'
33
+ # SWIG chokes on the specified 'defaultCategory' default arg
34
+ spec.ignore 'wxPropertyGridInterface::SetPropertyValues', ignore_doc: false
35
+ # so redeclare in way SWIG can process (type map takes care of the defaults; no need for wxVariantList overload)
36
+ spec.extend_interface 'wxPropertyGridInterface',
37
+ 'void SetPropertyValues(const wxVariant &list, const wxPGPropArgCls& defaultCategory = 0)'
38
+ # optionals
39
+ if Config.instance.features_set?('wxUSE_LONGLONG')
40
+ spec.set_only_for 'wxLongLong_t',
41
+ 'wxPropertyGridInterface::GetPropertyValueAsLongLong',
42
+ 'wxPropertyGridInterface::GetPropertyValueAsULongLong'
43
+ else
44
+ spec.ignore 'wxPropertyGridInterface::GetPropertyValueAsLongLong',
45
+ 'wxPropertyGridInterface::GetPropertyValueAsULongLong'
46
+ end
47
+ unless Config.instance.features_set?('wxUSE_DATETIME')
48
+ spec.ignore 'wxPropertyGridInterface::GetPropertyValueAsDateTime'
49
+ end
50
+ unless Config.instance.features_set?('wxUSE_VALIDATORS')
51
+ spec.ignore 'wxPropertyGridInterface::GetPropertyValidator'
52
+ end
53
+ # fix incorrect XML documentation
54
+ spec.ignore 'wxPropertyGridInterface::SetPropertyImage', ignore_doc: false # ignore non-const BitmapBundle arg decl
55
+ # and add correct decl
56
+ spec.extend_interface 'wxPropertyGridInterface', 'void SetPropertyImage(wxPGPropArg id, const wxBitmapBundle &bmp)'
57
+ # don't expose property grid iterators; add a more Ruby-like extension
58
+ spec.ignore 'wxPropertyGridInterface::GetIterator', 'wxPropertyGridInterface::GetVIterator'
59
+ # add basic property enumerator; will wrap this in pure Ruby still for improved argument handling
60
+ spec.add_extend_code 'wxPropertyGridInterface', <<~__HEREDOC
61
+ VALUE each_property(int flags, VALUE start, bool reverse)
62
+ {
63
+ VALUE rc = Qnil;
64
+ if (NIL_P(start) && !reverse)
65
+ {
66
+ // use faster forward-only iterating over all containers
67
+ wxPGVIterator prop_it = self->GetVIterator(flags);
68
+ while (!prop_it.AtEnd())
69
+ {
70
+ wxPGProperty* pp = prop_it.GetProperty();
71
+ VALUE rb_prop = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
72
+ rc = rb_yield(rb_prop);
73
+ prop_it.Next();
74
+ }
75
+ }
76
+ else
77
+ {
78
+ wxPropertyGridIterator prop_it;
79
+ if (NIL_P(start))
80
+ {
81
+ prop_it = self->GetIterator(flags, wxBOTTOM); // reverse -> start at end
82
+ }
83
+ else if (TYPE(start) == T_DATA)
84
+ {
85
+ void* ptr;
86
+ int res = SWIG_ConvertPtr(start, &ptr,SWIGTYPE_p_wxPGProperty, 0);
87
+ if (!SWIG_IsOK(res))
88
+ {
89
+ VALUE msg = rb_inspect(start);
90
+ rb_raise(rb_eArgError, "Expected Integer or PGProperty for 2 but got %s",
91
+ StringValuePtr(msg));
92
+ }
93
+ wxPGProperty* pp = static_cast<wxPGProperty*> (ptr);
94
+ prop_it = self->GetIterator(flags, pp);
95
+ }
96
+ else if (TYPE(start) == T_FIXNUM || wxRuby_IsAnEnum(start))
97
+ {
98
+ prop_it = self->GetIterator(flags, (int)NUM2INT(start));
99
+ }
100
+ else
101
+ {
102
+ VALUE msg = rb_inspect(start);
103
+ rb_raise(rb_eArgError, "Expected Integer or PGProperty for 2 but got %s",
104
+ StringValuePtr(msg));
105
+ }
106
+ while (!prop_it.AtEnd())
107
+ {
108
+ wxPGProperty* pp = prop_it.GetProperty();
109
+ VALUE rb_prop = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
110
+ rc = rb_yield(rb_prop);
111
+ reverse ? prop_it.Prev() : prop_it.Next();
112
+ }
113
+ }
114
+ return rc;
115
+ }
116
+ __HEREDOC
117
+ # don't expose wxPGAttributeStorage; add a more Ruby-like extension
118
+ spec.ignore 'wxPropertyGridInterface::GetPropertyAttributes'
119
+ spec.add_extend_code 'wxPropertyGridInterface', <<~__HEREDOC
120
+ VALUE each_property_attribute(const wxPGPropArgCls& proparg)
121
+ {
122
+ const wxPGAttributeStorage& att_store = self->GetPropertyAttributes(proparg);
123
+ wxPGAttributeStorage::const_iterator it = att_store.StartIteration();
124
+ wxVariant att_var;
125
+ VALUE rc = Qnil;
126
+ while (att_store.GetNext(it, att_var))
127
+ {
128
+ VALUE rb_att_var = SWIG_NewPointerObj(new wxVariant(att_var), SWIGTYPE_p_wxVariant, SWIG_POINTER_OWN);
129
+ rc = rb_yield(rb_att_var);
130
+ }
131
+ return rc;
132
+ }
133
+ __HEREDOC
134
+ # type mapping for 'wxArrayPGProperty *targetArr' (GetPropertiesWithFlag)
135
+ spec.map 'wxArrayPGProperty *targetArr' => 'Array<Wx::PG::PGProperty>' do
136
+ map_in ignore: true, temp: 'wxArrayPGProperty tmp', code: '$1 = &tmp;'
137
+ map_argout code: <<~__CODE
138
+ $result = rb_ary_new();
139
+ for (size_t i = 0; i < $1->GetCount(); i++)
140
+ {
141
+ wxPGProperty* pp = $1->Item(i);
142
+ VALUE rb_pp = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
143
+ rb_ary_push($result, rb_pp);
144
+ }
145
+ __CODE
146
+ end
147
+ # GetState is missing from the XML docs but we want to add a customized version anyway
148
+ # to be able to return either a PropertyGridPage (for PropertyGridManager) or a PropertyGridPageState
149
+ # (for PropertyGrid).
150
+ spec.include 'wx/propgrid/manager.h'
151
+ spec.add_header_code <<~__CODE
152
+ extern VALUE mWxPG; // declare external module reference
153
+
154
+ static WxRuby_ID pgi_PropertyGridPageState_id("PropertyGridPageState");
155
+ static WxRuby_ID pgi_PropertyGridPage_id("PropertyGridPage");
156
+ __CODE
157
+ spec.add_extend_code 'wxPropertyGridInterface', <<~__HEREDOC
158
+ VALUE get_state()
159
+ {
160
+ // attempt cast
161
+ wxPropertyGridManager* wx_pgm = dynamic_cast<wxPropertyGridManager*> (self);
162
+ if (wx_pgm)
163
+ {
164
+ return wxRuby_WrapWxObjectInRuby(wx_pgm->GetCurrentPage());
165
+ }
166
+ else
167
+ {
168
+ wxPropertyGridPageState* wx_pgps = self->GetState();
169
+ VALUE klass = rb_const_get(mWxPG, pgi_PropertyGridPageState_id());
170
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
171
+ return SWIG_NewPointerObj(SWIG_as_voidptr(wx_pgps), swig_type, 0);
172
+ }
173
+ }
174
+ __HEREDOC
175
+ # In wxRuby PropertyGridPageState is folded into PropertyGridPage so it is not actually
176
+ # derived from PropertyGridPageState but is one in the sense of Ruby's duck typing so we have
177
+ # some tinkering to do to make RefreshGrid accept either a PropertyGridPageState (returned from
178
+ # PropertyGridInterface#GetSate for a PropertyGrid) or a PropertyGridPage (returned either by
179
+ # PropertyGridInterface#GetState for a PropertyGridManager or any of the PropertyGridManager#GetXXXPage
180
+ # methods).
181
+ spec.ignore 'wxPropertyGridInterface::RefreshGrid', ignore_doc: false
182
+ spec.add_extend_code 'wxPropertyGridInterface', <<~__HEREDOC
183
+ void RefreshGrid(VALUE rb_state)
184
+ {
185
+ wxPropertyGridPageState *state = 0;
186
+ if (!NIL_P(rb_state))
187
+ {
188
+ VALUE klass = rb_const_get(mWxPG, pgi_PropertyGridPageState_id());
189
+ if (rb_obj_is_kind_of(rb_state, klass))
190
+ {
191
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
192
+ int res = SWIG_ConvertPtr(rb_state, SWIG_as_voidptrptr(&state), swig_type, 0);
193
+ if (!SWIG_IsOK(res)) {
194
+ VALUE msg = rb_inspect(rb_state);
195
+ rb_raise(rb_eArgError, "Expected PropertyGridPage or PropertyGridPageState for 1 but got %s",
196
+ StringValuePtr(msg));
197
+ }
198
+ }
199
+ else
200
+ {
201
+ wxPropertyGridPage *wx_pg = 0;
202
+ VALUE klass = rb_const_get(mWxPG, pgi_PropertyGridPage_id());
203
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
204
+ int res = SWIG_ConvertPtr(rb_state, SWIG_as_voidptrptr(&wx_pg), swig_type, 0);
205
+ if (!SWIG_IsOK(res)) {
206
+ VALUE msg = rb_inspect(rb_state);
207
+ rb_raise(rb_eArgError, "Expected PropertyGridPage or PropertyGridPageState for 1 but got %s",
208
+ StringValuePtr(msg));
209
+ }
210
+ state = wx_pg;
211
+ }
212
+ }
213
+ self->RefreshGrid(state);
214
+ }
215
+ __HEREDOC
216
+ spec.map 'wxPropertyGridPageState *state' => 'Wx::PG::PropertyGridPage,Wx::PG::PropertyGridPageState', swig: false do
217
+ map_in
218
+ end
219
+
220
+ spec.do_not_generate :variables, :defines, :enums, :functions # with pgproperty
221
+ end
222
+ end # class PropertyGridInterface
223
+
224
+ end # class Director
225
+
226
+
227
+ end # module WXRuby3
@@ -0,0 +1,90 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative './window'
7
+
8
+ module WXRuby3
9
+
10
+ class Director
11
+
12
+ class PropertyGridManager < Window
13
+
14
+ include Typemap::PGPropArg
15
+
16
+ def setup
17
+ super
18
+ spec.override_inheritance_chain('wxPropertyGridManager', %w[wxPanel wxWindow wxEvtHandler wxObject])
19
+ spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
20
+ # mixin PropertyGridInterface
21
+ spec.include_mixin 'wxPropertyGridManager', 'Wx::PG::PropertyGridInterface'
22
+ # for AddPage and InsertPage
23
+ spec.disown 'wxPropertyGridPage *pageObj'
24
+ spec.suppress_warning(473, 'wxPropertyGridManager::InsertPage')
25
+ # do not expose iterator class; #each_property provided by PropertyGridInterface mixin
26
+ spec.ignore 'wxPropertyGridManager::GetVIterator'
27
+ # customize mark function
28
+ spec.add_header_code <<~__HEREDOC
29
+ static void GC_mark_wxPropertyGridManager(void* ptr)
30
+ {
31
+ #ifdef __WXRB_DEBUG__
32
+ if (wxRuby_TraceLevel()>1)
33
+ std::wcout << "> GC_mark_wxPropertyGridManager : " << ptr << std::endl;
34
+ #endif
35
+ if ( GC_IsWindowDeleted(ptr) )
36
+ {
37
+ return;
38
+ }
39
+ // Do standard marking routines as for all wxWindows
40
+ GC_mark_wxWindow(ptr);
41
+
42
+ wxPropertyGridManager* wx_pg = (wxPropertyGridManager*) ptr;
43
+
44
+ // mark all properties of all pages
45
+ #ifdef __WXRB_DEBUG__
46
+ long l = 0;
47
+ #endif
48
+ for (size_t i=0; i < wx_pg->GetPageCount() ;++i)
49
+ {
50
+ wxPGVIterator it =
51
+ wx_pg->GetPage(i)->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
52
+ // iterate all
53
+ for ( ; !it.AtEnd(); it.Next() )
54
+ {
55
+ #ifdef __WXRB_DEBUG__
56
+ ++l;
57
+ #endif
58
+ wxPGProperty* p = it.GetProperty();
59
+ VALUE rb_p = SWIG_RubyInstanceFor(p);
60
+ if (NIL_P(rb_p))
61
+ {
62
+ VALUE object = (VALUE) p->GetClientData();
63
+ if ( object && !NIL_P(object))
64
+ {
65
+ #ifdef __WXRB_DEBUG__
66
+ if (wxRuby_TraceLevel()>2)
67
+ std::wcout << "*** marking property data " << p << ":" << p->GetName() << std::endl;
68
+ #endif
69
+ rb_gc_mark(object);
70
+ }
71
+ }
72
+ else
73
+ {
74
+ rb_gc_mark(rb_p);
75
+ }
76
+ }
77
+ }
78
+ #ifdef __WXRB_DEBUG__
79
+ if (wxRuby_TraceLevel()>1)
80
+ std::wcout << "*** iterated " << l << " properties" << std::endl;
81
+ #endif
82
+ }
83
+ __HEREDOC
84
+ spec.add_swig_code '%markfunc wxPropertyGridManager "GC_mark_wxPropertyGridManager";'
85
+ end
86
+ end # class PropertyGridManager
87
+
88
+ end # class Director
89
+
90
+ end # module WXRuby3
@@ -0,0 +1,76 @@
1
+ ###
2
+ # wxRuby3 wxWidgets interface director
3
+ # Copyright (c) M.J.N. Corino, The Netherlands
4
+ ###
5
+
6
+ require_relative './event_handler'
7
+
8
+ module WXRuby3
9
+
10
+ class Director
11
+
12
+ class PropertyGridPage < EvtHandler
13
+
14
+ include Typemap::PGProperty
15
+
16
+ include Typemap::PGPropArg
17
+
18
+ def setup
19
+ super
20
+ spec.items << 'wxPropertyGridPageState'
21
+ spec.override_inheritance_chain('wxPropertyGridPage', %w[wxEvtHandler wxObject])
22
+ # no real use in exposing wxPropertyGridPageState currently
23
+ spec.fold_bases 'wxPropertyGridPage' => 'wxPropertyGridPageState'
24
+ # need a custom implementation to handle event handler proc cleanup
25
+ spec.add_header_code <<~__HEREDOC
26
+ class WXRubyPropertyGridPage : public wxPropertyGridPage
27
+ {
28
+ public:
29
+ WXRubyPropertyGridPage() : wxPropertyGridPage() {}
30
+ virtual ~WXRubyPropertyGridPage()
31
+ {
32
+ wxRuby_ReleaseEvtHandlerProcs(this);
33
+ }
34
+ };
35
+ __HEREDOC
36
+ spec.use_class_implementation 'wxPropertyGridPage', 'WXRubyPropertyGridPage'
37
+ spec.ignore 'wxPropertyGridPage::GetStatePtr'
38
+ if Config.instance.wx_version >= '3.3.0'
39
+ spec.ignore 'wxPropertyGridPageState::DoSetSplitter'
40
+ else
41
+ spec.ignore 'wxPropertyGridPageState::DoSetSplitterPosition'
42
+ end
43
+ # mixin PropertyGridInterface
44
+ spec.include_mixin 'wxPropertyGridPage', 'Wx::PG::PropertyGridInterface'
45
+ # these are ambiguous bc inherited from both PropertyGridInterface and wxPropertyGridPageState
46
+ spec.ignore 'wxPropertyGridPageState::GetSelection',
47
+ 'wxPropertyGridPageState::GetPropertyCategory',
48
+ ignore_doc: false
49
+ # so we create custom extensions to circumvent that
50
+ spec.add_extend_code 'wxPropertyGridPage', <<~__HEREDOC
51
+ wxPGProperty* GetSelection () const
52
+ {
53
+ return self->wxPropertyGridPageState::GetSelection();
54
+ }
55
+
56
+ wxPropertyCategory* GetPropertyCategory( wxPGPropArg id ) const
57
+ {
58
+ return self->wxPropertyGridInterface::GetPropertyCategory(id);
59
+ }
60
+ __HEREDOC
61
+ spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
62
+ # for DoInsert
63
+ spec.disown 'wxPGProperty *property'
64
+ # the 'doDelete' argument is troublesome for GC handling in wxRuby so we remove it in the wxRuby interface
65
+ # and force it to be always 'true' (called with 'false' only from wxPropertyGridInterface::RemoveProperty
66
+ # which we do not support in wxRuby either)
67
+ spec.map 'bool doDelete' do
68
+ map_in ignore: true, code: '$1= true;'
69
+ end
70
+ spec.suppress_warning(473, 'wxPropertyGridPage::DoInsert')
71
+ end
72
+ end # class PropertyGridPage
73
+
74
+ end # class Director
75
+
76
+ end # module WXRuby3
@@ -0,0 +1,32 @@
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 PropertyGridPageState < Director
11
+
12
+ def setup
13
+ super
14
+ spec.items << 'wxPropertyGridHitTestResult'
15
+ spec.gc_never 'wxPropertyGridPageState'
16
+ spec.gc_as_temporary 'wxPropertyGridHitTestResult'
17
+ spec.make_abstract 'wxPropertyGridPageState'
18
+ spec.disable_proxies
19
+ spec.ignore 'wxPropertyGridPageState::DoDelete',
20
+ 'wxPropertyGridPageState::DoInsert'
21
+ if Config.instance.wx_version >= '3.3.0'
22
+ spec.ignore 'wxPropertyGridPageState::DoSetSplitter'
23
+ else
24
+ spec.ignore 'wxPropertyGridPageState::DoSetSplitterPosition'
25
+ end
26
+ spec.do_not_generate :variables, :enums, :defines, :functions
27
+ end
28
+ end # class PropertyGridPageState
29
+
30
+ end # class Director
31
+
32
+ end # module WXRuby3