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,55 @@
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 Utils < Director
11
+
12
+ def setup
13
+ spec.items.replace %w[utils.h]
14
+ spec.ignore %w[
15
+ wxGetenv
16
+ wxGetEnv
17
+ wxSetEnv
18
+ wxUnsetEnv
19
+ wxGetEnvMap
20
+ wxSecureZeroMemory
21
+ wxGetBatteryState
22
+ wxGetPowerType
23
+ wxGetDisplayName
24
+ wxSetDisplayName
25
+ wxGetDiskSpace
26
+ wxLoadUserResource
27
+ wxQsort
28
+ wxGetOsVersion
29
+ wxGetLinuxDistributionInfo
30
+ wxExecute
31
+ wxGetProcessId
32
+ wxKill
33
+ wxShell
34
+ wxMicroSleep
35
+ wxMilliSleep
36
+ wxSleep
37
+ wxUsleep
38
+ wxNow
39
+ wxDecToHex
40
+ wxHexToDec
41
+ wxStripMenuCodes
42
+ ]
43
+ spec.ignore 'wxPostDelete' unless Config.instance.wx_version >= '3.3.0'
44
+ spec.ignore 'wxGetEmailAddress(char *,int)',
45
+ 'wxGetUserId(char *,int)',
46
+ 'wxGetUserName(char *,int)'
47
+ # we want only the functions that are not ignored
48
+ spec.do_not_generate(:classes, :typedefs, :variables, :enums, :defines)
49
+ super
50
+ end
51
+ end # class Utils
52
+
53
+ end # class Director
54
+
55
+ end # module WXRuby3
@@ -0,0 +1,44 @@
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 Validator < EvtHandler
13
+
14
+ def setup
15
+ super
16
+ # make Ruby director and wrappers use custom implementation
17
+ spec.use_class_implementation('wxValidator', 'wxRubyValidator')
18
+ # provide custom wxRuby derivative of validator
19
+ spec.add_header_code <<~__HEREDOC
20
+ class wxRubyValidator : public wxValidator
21
+ {
22
+ public:
23
+ wxRubyValidator () : wxValidator () {}
24
+ virtual ~wxRubyValidator ()
25
+ {
26
+ wxRuby_ReleaseEvtHandlerProcs(this);
27
+ }
28
+
29
+ // these two methods are noops in wxRuby (since we do not support C++ data transfer there)
30
+ // but we want them to always return true to prevent wxWidgets from complaining
31
+ bool TransferFromWindow () override { return true; }
32
+ bool TransferToWindow () override { return true; }
33
+ };
34
+ __HEREDOC
35
+ # will be provided as a pure Ruby method
36
+ spec.ignore 'wxValidator::Clone'
37
+ # not provided in Ruby
38
+ spec.ignore %w[wxValidator::TransferFromWindow wxValidator::TransferToWindow]
39
+ end
40
+ end # class Validator
41
+
42
+ end # class Director
43
+
44
+ end # module WXRuby3
@@ -0,0 +1,549 @@
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 Variant < Director
11
+
12
+ include Typemap::DateTime
13
+
14
+ def setup
15
+ super
16
+ # variants are (almost) always returned by value and never transfer ownership
17
+ # so we do not need tracking or special free function
18
+ spec.gc_as_temporary 'wxVariant'
19
+ spec.disable_proxies
20
+ # add custom wxVariant extensions so to be
21
+ # able to handle all PGProperty specific value types
22
+ spec.add_header_code <<~__HEREDOC
23
+ #include <wx/font.h>
24
+ #ifdef wxUSE_PROPGRID
25
+ # include <wx/propgrid/advprops.h>
26
+ #endif
27
+ #ifndef __WXRB_DATETIME_HELPERS__
28
+ #include <wx/datetime.h>
29
+ WXRB_EXPORT_FLAG wxDateTime* wxRuby_wxDateTimeFromRuby(VALUE ruby_value);
30
+ #endif
31
+
32
+ static WxRuby_ID var_to_time_id("to_time");
33
+ static WxRuby_ID var_Variant_id("Variant");
34
+ static WxRuby_ID var_Font_id("Font");
35
+ static WxRuby_ID var_Colour_id("Colour");
36
+ static WxRuby_ID var_ColourPropertyValue_id("ColourPropertyValue");
37
+ static WxRuby_ID var_PG_id("PG");
38
+
39
+ __HEREDOC
40
+ # add Ruby to Variant auto converter
41
+ spec.add_wrapper_code <<~__HEREDOC
42
+
43
+ WXRUBY_EXPORT wxVariant wxRuby_ConvertRbValue2Variant(VALUE rbval)
44
+ {
45
+ if (!NIL_P(rbval))
46
+ {
47
+ long lval;
48
+ double dval;
49
+ if (rb_obj_is_kind_of(rbval, rb_cTime) || rb_respond_to(rbval, var_to_time_id()))
50
+ {
51
+ wxDateTime* wxdt = wxRuby_wxDateTimeFromRuby(rbval);
52
+ wxVariant var(*wxdt);
53
+ delete wxdt;
54
+ return var;
55
+ }
56
+ if (TYPE(rbval) == T_DATA)
57
+ {
58
+ void *ptr;
59
+ VALUE klass;
60
+ if (rb_obj_is_kind_of(rbval, klass = rb_const_get(mWxCore, var_Variant_id())))
61
+ {
62
+ int res = SWIG_ConvertPtr(rbval, &ptr, SWIGTYPE_p_wxVariant, 0);
63
+ if (!SWIG_IsOK(res)) {
64
+ rb_raise(rb_eTypeError, "Unexpected failure to convert to wxVariant");
65
+ }
66
+ return wxVariant(*static_cast<wxVariant*> (ptr));
67
+ }
68
+ if (rb_obj_is_kind_of(rbval, klass = rb_const_get(mWxCore, var_Font_id())))
69
+ {
70
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
71
+ int res = SWIG_ConvertPtr(rbval, &ptr, swig_type, 0);
72
+ if (!SWIG_IsOK(res)) {
73
+ rb_raise(rb_eTypeError, "Unexpected failure to convert to wxFont");
74
+ }
75
+ wxVariant var; var << *static_cast<wxFont*> (ptr);
76
+ return var;
77
+ }
78
+ if (rb_obj_is_kind_of(rbval, klass = rb_const_get(mWxCore, var_Colour_id())))
79
+ {
80
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
81
+ int res = SWIG_ConvertPtr(rbval, &ptr, swig_type, 0);
82
+ if (!SWIG_IsOK(res)) {
83
+ rb_raise(rb_eTypeError, "Unexpected failure to convert to wxColour");
84
+ }
85
+ wxVariant var; var << *static_cast<wxColour*> (ptr);
86
+ return var;
87
+ }
88
+ #ifdef wxUSE_PROPGRID
89
+ if (rb_obj_is_kind_of(rbval, klass = rb_const_get(mWxCore, var_ColourPropertyValue_id())))
90
+ {
91
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
92
+ int res = SWIG_ConvertPtr(rbval, &ptr, swig_type, 0);
93
+ if (!SWIG_IsOK(res)) {
94
+ rb_raise(rb_eTypeError, "Unexpected failure to convert to wxColourPropertyValue");
95
+ }
96
+ wxVariant var; var << *static_cast<wxColourPropertyValue*> (ptr);
97
+ return var;
98
+ }
99
+ #endif
100
+ }
101
+ else if (TYPE(rbval) == T_ARRAY)
102
+ {
103
+ if ((RARRAY_LEN(rbval) > 0 && TYPE(rb_ary_entry(rbval, 0)) == T_STRING))
104
+ {
105
+ wxArrayString arrs;
106
+ for (int i = 0; i < RARRAY_LEN(rbval); i++)
107
+ {
108
+ VALUE str = rb_ary_entry(rbval, i);
109
+ wxString item(StringValuePtr(str), wxConvUTF8);
110
+ arrs.Add(item);
111
+ }
112
+ return wxVariant(arrs);
113
+ }
114
+ if (RARRAY_LEN(rbval) == 0 ||
115
+ rb_obj_is_kind_of(rb_ary_entry(rbval, 0), rb_const_get(mWxCore, var_Variant_id())))
116
+ {
117
+ wxVariantList vlist;
118
+ for (int i = 0; i < RARRAY_LEN(rbval); i++)
119
+ {
120
+ void *ptr;
121
+ VALUE var = rb_ary_entry(rbval, i);
122
+ int res = SWIG_ConvertPtr(var, &ptr, SWIGTYPE_p_wxVariant, 0);
123
+ if (!SWIG_IsOK(res)) {
124
+ rb_raise(rb_eTypeError, "Array of Variant should contain nothing else but Variants");
125
+ }
126
+ // the default constructed wxVariantList will not delete it's contents so no need to copy variant
127
+ vlist.Append(static_cast<wxVariant*>(ptr));
128
+ }
129
+ return wxVariant(vlist);
130
+ }
131
+ }
132
+ else
133
+ {
134
+ if (TYPE(rbval) == T_STRING)
135
+ {
136
+ return wxVariant(RSTR_TO_WXSTR(rbval));
137
+ }
138
+ if ((TYPE(rbval) == T_TRUE) || (TYPE(rbval) == T_FALSE))
139
+ {
140
+ return wxVariant(TYPE(rbval) == T_TRUE);
141
+ }
142
+ #ifdef wxUSE_LONGLONG
143
+ if ((sizeof(long) < 8) && (TYPE(rbval) == T_BIGNUM) && (rb_big_sign(rbval) == 0))
144
+ {
145
+ wxLongLong_t ll = rb_big2ll(rbval);
146
+ return wxVariant(wxLongLong(ll));
147
+ }
148
+ #endif
149
+ if (SWIG_CheckState(SWIG_AsVal_long(rbval, &lval)))
150
+ {
151
+ return wxVariant(lval);
152
+ }
153
+ if ((TYPE(rbval) == T_FIXNUM || TYPE(rbval) == T_BIGNUM))
154
+ {
155
+ wxULongLong_t ull = TYPE(rbval) == T_FIXNUM ? NUM2ULL(rbval) : rb_big2ull(rbval);
156
+ return wxVariant(wxULongLong(ull));
157
+ }
158
+ if (SWIG_CheckState(SWIG_AsVal_double(rbval, &dval)))
159
+ {
160
+ return wxVariant(dval);
161
+ }
162
+ }
163
+ // if nothing else; wrap as Ruby value
164
+ return wxVariant(new WXRBValueVariantData(rbval));
165
+ }
166
+ return wxVariant();
167
+ }
168
+ __HEREDOC
169
+ spec.add_extend_code 'wxVariant', <<~__HEREDOC
170
+ wxVariant(const wxFont& val, const wxString &name=wxEmptyString)
171
+ {
172
+ wxVariant var(0L, name);
173
+ var << val;
174
+ return new wxVariant(var);
175
+ }
176
+ wxVariant(const wxColour& val, const wxString &name=wxEmptyString)
177
+ {
178
+ wxVariant var(0L, name);
179
+ var << val;
180
+ return new wxVariant(var);
181
+ }
182
+ wxVariant(const wxColourPropertyValue& val, const wxString &name=wxEmptyString)
183
+ {
184
+ wxVariant var(0L, name);
185
+ var << val;
186
+ return new wxVariant(var);
187
+ }
188
+ wxFont GetFont()
189
+ {
190
+ wxFont font; font << *self; return font;
191
+ }
192
+ wxColour GetColour()
193
+ {
194
+ wxColour clr; clr << *self; return clr;
195
+ }
196
+ wxColourPropertyValue GetColourPropertyValue()
197
+ {
198
+ wxColourPropertyValue cpv; cpv << *self; return cpv;
199
+ }
200
+ __HEREDOC
201
+ # ignore all operator== variants but the operator==(const wxVariant&) version
202
+ spec.ignore 'wxVariant::operator==', ignore_doc: false
203
+ spec.regard 'wxVariant::operator==(const wxVariant &) const' # this should work as ignores are processed before regards
204
+ spec.ignore 'wxVariant::Convert' # troublesome overloads in Ruby
205
+ # need type checks to prevent clashing with Time
206
+ spec.map 'const wxVariant&' do
207
+ map_typecheck precedence: 1, code: <<~__CODE
208
+ $1 = rb_obj_is_kind_of($input, rb_const_get(mWxCore, var_Variant_id()));
209
+ __CODE
210
+ end
211
+ spec.map 'const wxFont&' do
212
+ map_typecheck precedence: 2, code: <<~__CODE
213
+ $1 = rb_obj_is_kind_of($input, rb_const_get(mWxCore, var_Font_id()));
214
+ __CODE
215
+ end
216
+ spec.map 'const wxColour&' do
217
+ map_typecheck precedence: 3, code: <<~__CODE
218
+ $1 = rb_obj_is_kind_of($input, rb_const_get(mWxCore, var_Colour_id()));
219
+ __CODE
220
+ end
221
+ spec.map 'const wxColourPropertyValue&' do
222
+ map_typecheck precedence: 4, code: <<~__CODE
223
+ VALUE mWxPG = rb_const_get(mWxCore, var_PG_id());
224
+ $1 = rb_obj_is_kind_of($input, rb_const_get(mWxPG, var_ColourPropertyValue_id()));
225
+ __CODE
226
+ end
227
+ if Config.instance.features_set?('wxUSE_LONGLONG')
228
+ # wxLongLong mapping to be considered before considering 'long' (see typecheck precedence)
229
+ spec.map 'wxLongLong' => 'Integer' do
230
+ map_in code: <<~__CODE
231
+ wxLongLong_t ll = rb_big2ll($input);
232
+ $1 = ll;
233
+ __CODE
234
+ map_out code: <<~__CODE
235
+ $result = LL2NUM($1.GetValue());
236
+ __CODE
237
+ # only map to wxLongLong if size of long is less than 64bit and a bignum given otherwise leave it to long mapping
238
+ map_typecheck precedence: 10, code: '$1 = (sizeof(long) < 8) && (TYPE($input) == T_BIGNUM) && (rb_big_sign($input) == 0);'
239
+ end
240
+ # wxULongLong mapping to be considered after considering wxLongLong and 'long' (see typecheck precedence)
241
+ spec.map 'wxULongLong' => 'Integer' do
242
+ map_in code: <<~__CODE
243
+ wxULongLong_t ull = TYPE($input) == T_FIXNUM ? NUM2ULL($input) : rb_big2ull($input);
244
+ $1 = ull;
245
+ __CODE
246
+ map_out code: <<~__CODE
247
+ $result = ULL2NUM($1.GetValue());
248
+ __CODE
249
+ # only map to wxULongLong if integer specified
250
+ map_typecheck precedence: 69, code: '$1 = (TYPE($input) == T_FIXNUM || TYPE($input) == T_BIGNUM);'
251
+ end
252
+ else
253
+ spec.ignore 'wxVariant::wxVariant(wxLongLong, const wxString &)',
254
+ 'wxVariant::wxVariant(wxULongLong, const wxString &)'
255
+ end
256
+ # wxRuby does not support wxAny or generic wxObject
257
+ spec.ignore 'wxVariant::wxVariant(const wxAny&)',
258
+ 'wxVariant::GetAny',
259
+ 'wxVariant::wxVariant(wxObject*, const wxString&)',
260
+ 'wxVariant::GetWxObjectPtr',
261
+ 'wxVariant::IsValueKindOf'
262
+ # ignore shadowing methods
263
+ spec.ignore 'wxVariant::wxVariant(const wxChar *, const wxString &)',
264
+ 'wxVariant::wxVariant(wxChar, const wxString &)'
265
+ # not really handy in Ruby; replace by pure Ruby #each
266
+ spec.ignore 'wxVariant::GetList'
267
+ # replace with custom extensions
268
+ spec.ignore 'wxVariant::operator[]'
269
+ # the index operators are the only methods returning
270
+ # by reference, but they still do not transfer ownership
271
+ spec.add_extend_code 'wxVariant', <<~__HEREDOC
272
+ // def [](idx) end
273
+ wxVariant& __getitem__(size_t idx)
274
+ {
275
+ return (*self)[idx];
276
+ }
277
+ // def []=(idx, variant) end
278
+ wxVariant& __setitem__(size_t idx, const wxVariant& var)
279
+ {
280
+ (*self)[idx] = var;
281
+ return (*self)[idx];
282
+ }
283
+ __HEREDOC
284
+ spec.rename_for_ruby 'GetWxObject' => 'wxVariant::GetWxObjectPtr'
285
+ # override typecheck for bool to make it strict
286
+ spec.map 'bool' do
287
+ # strict bool checking here
288
+ map_typecheck precedence: 10000, code: <<~__CODE
289
+ $1 = (TYPE($input) == T_TRUE) || (TYPE($input) == T_FALSE);
290
+ __CODE
291
+ end
292
+ # override typecheck for wxArrayString as we also have to consider
293
+ # wxVariantList
294
+ spec.map 'const wxArrayString&' do
295
+ map_typecheck precedence: 'STRING_ARRAY',
296
+ code: '$1 = ((TYPE($input) == T_ARRAY) && (RARRAY_LEN($input) > 0) && (TYPE(rb_ary_entry($input, 0)) == T_STRING));'
297
+ end
298
+ # type map for wxVariantList
299
+ spec.map 'const wxVariantList&' => 'Array<Wx::Variant>' do
300
+ map_in temp: 'wxVariantList tmp', code: <<~__CODE
301
+ if (($input == Qnil) || (TYPE($input) != T_ARRAY))
302
+ {
303
+ $1 = &tmp;
304
+ }
305
+ else
306
+ {
307
+ for (int i = 0; i < RARRAY_LEN($input); i++)
308
+ {
309
+ void *ptr;
310
+ VALUE var = rb_ary_entry($input, i);
311
+ int res = SWIG_ConvertPtr(var, &ptr, SWIGTYPE_p_wxVariant, 0 );
312
+ if (!SWIG_IsOK(res)) {
313
+ SWIG_exception_fail(SWIG_ArgError(res), Ruby_Format_TypeError( "", "wxVariantList","wxVariant", 1, var ));
314
+ }
315
+ // the default constructed wxVariantList tmp will not delete it's contents so no need to copy variant
316
+ tmp.Append(static_cast<wxVariant*>(ptr));
317
+ }
318
+ $1 = &tmp;
319
+ }
320
+ __CODE
321
+ map_out code: <<~__CODE
322
+ $result = rb_ary_new();
323
+ for (size_t i = 0; i < $1->GetCount(); i++)
324
+ {
325
+ rb_ary_push($result, SWIG_NewPointerObj(SWIG_as_voidptr((*$1)[i]), SWIGTYPE_p_wxVariant, 0));
326
+ }
327
+ __CODE
328
+ map_typecheck precedence: 'OBJECT_ARRAY',
329
+ code: <<~__CODE
330
+ $1 = ((TYPE($input) == T_ARRAY) &&
331
+ ((RARRAY_LEN($input) == 0) || rb_obj_is_kind_of(rb_ary_entry($input, 0), rb_const_get(mWxCore, var_Variant_id()))));
332
+ __CODE
333
+ end
334
+ # ignore void* support
335
+ spec.ignore 'wxVariant::wxVariant(void*, const wxString &)',
336
+ 'wxVariant::GetVoidPtr'
337
+ # do not expose (not really useful in Ruby) but map to any Ruby Object-s not matching any other types
338
+ spec.map 'wxVariantData*' => 'Object' do
339
+ map_in code: '$1 = new WXRBValueVariantData($input);'
340
+ map_out code: <<~__CODE
341
+ if ($1 && $1->GetType() == WXRBValueVariantData::type_name_)
342
+ {
343
+ $result = ((WXRBValueVariantData*)$1)->GetValue();
344
+ }
345
+ else
346
+ {
347
+ $result = Qnil;
348
+ }
349
+ __CODE
350
+ # set precedence to be considered as very last option (like void*)
351
+ map_typecheck precedence: 20000, code: '$1 = TRUE;'
352
+ end
353
+ spec.rename_for_ruby 'GetObject' => 'wxVariant::GetData'
354
+ spec.ignore 'wxVariant::SetData'
355
+ # provide a custom wxVariantData implementation for Ruby VALUE
356
+ # and some interface extensions to use that from Ruby
357
+ spec.add_header_code <<~__HEREDOC
358
+ class WXRBValueVariantData;
359
+ // Mapping of WXRBValueVariantData* to Ruby VALUE
360
+ WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
361
+ WXRBVariantDataToRbValueHash);
362
+ static WXRBVariantDataToRbValueHash Variant_Value_Map;
363
+
364
+ static void wxRuby_markRbValueVariants()
365
+ {
366
+ WXRBVariantDataToRbValueHash::iterator it;
367
+ for( it = Variant_Value_Map.begin(); it != Variant_Value_Map.end(); ++it )
368
+ {
369
+ VALUE obj = it->second;
370
+ #ifdef __WXRB_DEBUG__
371
+ if (wxRuby_TraceLevel()>1)
372
+ {
373
+ void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0);
374
+ std::wcout << "**** wxRuby_markRbValueVariants : " << it->first << "|" << (void*)c_ptr << std::endl;
375
+ }
376
+ #endif
377
+ rb_gc_mark(obj);
378
+ }
379
+ }
380
+
381
+ static void wxRuby_RegisterValueVariantData(void* ptr, VALUE rbval)
382
+ {
383
+ #ifdef __WXRB_DEBUG__
384
+ if (wxRuby_TraceLevel()>1)
385
+ {
386
+ void *c_ptr = (TYPE(rbval) == T_DATA ? DATA_PTR(rbval) : 0);
387
+ std::wcout << "**** wxRuby_RegisterValueVariantData : " << ptr << "|" << (void*)c_ptr << std::endl;
388
+ }
389
+ #endif
390
+ Variant_Value_Map[ptr] = rbval;
391
+ }
392
+
393
+ static void wxRuby_UnregisterValueVariantData(void* ptr)
394
+ {
395
+ #ifdef __WXRB_DEBUG__
396
+ if (wxRuby_TraceLevel()>1)
397
+ std::wcout << "**** wxRuby_UnregisterValueVariantData : " << ptr << std::endl;
398
+ #endif
399
+ Variant_Value_Map.erase(ptr);
400
+ }
401
+
402
+ class WXRUBY_EXPORT WXRBValueVariantData : public wxVariantData
403
+ {
404
+ public:
405
+ static wxString type_name_;
406
+
407
+ WXRBValueVariantData() : m_value(Qnil) { }
408
+ WXRBValueVariantData(VALUE rbval) : m_value(rbval) { wxRuby_RegisterValueVariantData(this, rbval); }
409
+ virtual ~WXRBValueVariantData() { wxRuby_UnregisterValueVariantData(this); }
410
+
411
+ VALUE GetValue() { return m_value; }
412
+
413
+ // Override these to provide common functionality
414
+ virtual bool Eq(wxVariantData& data) const wxOVERRIDE
415
+ {
416
+ wxASSERT( GetType() == data.GetType() );
417
+ WXRBValueVariantData & otherData = (WXRBValueVariantData &) data;
418
+ return otherData.m_value == m_value;
419
+ }
420
+
421
+ virtual wxString GetType() const wxOVERRIDE
422
+ {
423
+ return type_name_;
424
+ }
425
+
426
+ virtual wxVariantData* Clone() const wxOVERRIDE
427
+ {
428
+ return new WXRBValueVariantData(m_value);
429
+ }
430
+
431
+ virtual bool Write(wxString& str) const wxOVERRIDE
432
+ {
433
+ static WxRuby_ID to_s_id("to_s");
434
+
435
+ VALUE s = rb_funcall(m_value, to_s_id(), 0);
436
+ str = RSTR_TO_WXSTR(s);
437
+ return true;
438
+ }
439
+
440
+ //#if wxUSE_ANY
441
+ // // Converts value to wxAny, if possible. Return true if successful.
442
+ // virtual bool GetAsAny(wxAny* WXUNUSED(any)) const { return false; }
443
+ //#endif
444
+ protected:
445
+ VALUE m_value;
446
+ };
447
+ wxString WXRBValueVariantData::type_name_ = wxS("WXRB_VALUE");
448
+
449
+ WXRUBY_EXPORT VALUE& operator << (VALUE &value, const wxVariant &variant)
450
+ {
451
+ wxASSERT( variant.GetType() == WXRBValueVariantData::type_name_);
452
+ WXRBValueVariantData *data = (WXRBValueVariantData*) variant.GetData();
453
+ value = data->GetValue();
454
+ return value;
455
+ }
456
+
457
+ WXRUBY_EXPORT wxVariant& operator << (wxVariant &variant, const VALUE &value)
458
+ {
459
+ WXRBValueVariantData *data = new WXRBValueVariantData(value);
460
+ variant.SetData(data);
461
+ return variant;
462
+ }
463
+ __HEREDOC
464
+ spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markRbValueVariants);'
465
+ # add custom extension methods 'assign' as replacement for operator=
466
+ spec.add_extend_code 'wxVariant', <<~__HEREDOC
467
+ void assign(const wxVariant& v)
468
+ { (*self) = v; }
469
+ void assign(const wxFont& v)
470
+ { (*self) << v; }
471
+ void assign(const wxColour& v)
472
+ { (*self) << v; }
473
+ void assign(const wxColourPropertyValue& v)
474
+ { (*self) << v; }
475
+ void assign(wxVariantData* v)
476
+ { self->SetData(v); }
477
+ void assign(const wxString& v)
478
+ { (*self) = v; }
479
+ void assign(long v)
480
+ { (*self) = v; }
481
+ void assign(bool v)
482
+ { (*self) = v; }
483
+ void assign(double v)
484
+ { (*self) = v; }
485
+ void assign(wxLongLong v)
486
+ { (*self) = v; }
487
+ void assign(wxULongLong v)
488
+ { (*self) = v; }
489
+ void assign(const wxVariantList& v)
490
+ { (*self) = v; }
491
+ void assign(const wxDateTime& v)
492
+ { (*self) = v; }
493
+ void assign(const wxArrayString& v)
494
+ { (*self) = v; }
495
+
496
+ VALUE to_i()
497
+ {
498
+ static WxRuby_ID to_i_id("to_i");
499
+
500
+ if (self->IsNull()) return INT2NUM(0);
501
+ wxString ts = self->GetType();
502
+ if (ts == wxS("long")) return SWIG_From_long(self->GetLong());
503
+ if (ts == wxS("longlong")) return LL2NUM(self->GetLongLong().GetValue());
504
+ if (ts == wxS("ulonglong")) return ULL2NUM(self->GetULongLong().GetValue());
505
+ if (ts == wxS("double")) return rb_funcall(SWIG_From_double(self->GetDouble()), to_i_id(), 0);
506
+ if (ts == wxS("datetime")) return rb_funcall(wxRuby_wxDateTimeToRuby(self->GetDateTime()), to_i_id(), 0);
507
+ rb_raise(rb_eTypeError, "Cannot convert Variant<%s> to Integer", (const char*)ts.ToAscii());
508
+ return Qnil;
509
+ }
510
+
511
+ VALUE to_f()
512
+ {
513
+ static WxRuby_ID to_f_id("to_f");
514
+
515
+ if (self->IsNull()) return SWIG_From_double(0.0);
516
+ wxString ts = self->GetType();
517
+ if (ts == wxS("long")) return rb_funcall(SWIG_From_long(self->GetLong()), to_f_id(), 0);
518
+ if (ts == wxS("longlong")) return rb_funcall(LL2NUM(self->GetLongLong().GetValue()), to_f_id(), 0);
519
+ if (ts == wxS("ulonglong")) return rb_funcall(ULL2NUM(self->GetULongLong().GetValue()), to_f_id(), 0);
520
+ if (ts == wxS("double")) return SWIG_From_double(self->GetDouble());
521
+ if (ts == wxS("datetime")) return rb_funcall(wxRuby_wxDateTimeToRuby(self->GetDateTime()), to_f_id(), 0);
522
+ rb_raise(rb_eTypeError, "Cannot convert Variant<%s> to Integer", (const char*)ts.ToAscii());
523
+ return Qnil;
524
+ }
525
+
526
+ VALUE to_s()
527
+ {
528
+ static WxRuby_ID to_s_id("to_s");
529
+
530
+ if (self->IsNull()) return rb_str_new2("");
531
+ wxString ts = self->GetType();
532
+ if (ts == wxS("string")) return WXSTR_TO_RSTR(self->GetString());
533
+ if (ts == wxS("bool")) return rb_funcall(SWIG_From_bool(self->GetBool()), to_s_id(), 0);
534
+ if (ts == wxS("long")) return rb_funcall(SWIG_From_long(self->GetLong()), to_s_id(), 0);
535
+ if (ts == wxS("longlong")) return rb_funcall(LL2NUM(self->GetLongLong().GetValue()), to_s_id(), 0);
536
+ if (ts == wxS("ulonglong")) return rb_funcall(ULL2NUM(self->GetULongLong().GetValue()), to_s_id(), 0);
537
+ if (ts == wxS("double")) return rb_funcall(SWIG_From_double(self->GetDouble()), to_s_id(), 0);
538
+ if (ts == wxS("datetime")) return rb_funcall(wxRuby_wxDateTimeToRuby(self->GetDateTime()), to_s_id(), 0);
539
+ if (ts == WXRBValueVariantData::type_name_) return rb_funcall(((WXRBValueVariantData*)self->GetData())->GetValue(), to_s_id(), 0);
540
+ rb_raise(rb_eTypeError, "Cannot convert Variant<%s> to String", (const char*)ts.ToAscii());
541
+ return Qnil;
542
+ }
543
+ __HEREDOC
544
+ end
545
+ end # class Variant
546
+
547
+ end # class Director
548
+
549
+ end # module WXRuby3
@@ -0,0 +1,46 @@
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 VListBox < Window
13
+
14
+ def setup
15
+ super
16
+ spec.override_inheritance_chain('wxVListBox', %w[wxVScrolledWindow wxPanel wxWindow wxEvtHandler wxObject])
17
+ spec.make_abstract 'wxVListBox'
18
+ # provide base implementations for OnDrawItem and OnMeasureItem
19
+ spec.add_header_code <<~__HEREDOC
20
+ // Custom subclass implementation.
21
+ class wxRubyVListBox : public wxVListBox
22
+ {
23
+ public:
24
+ wxRubyVListBox()
25
+ : wxVListBox () {}
26
+ wxRubyVListBox(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxVListBoxNameStr)
27
+ : wxVListBox(parent, id, pos, size, style, name) {}
28
+ protected:
29
+ virtual void OnDrawItem(wxDC&, const wxRect&, size_t) const
30
+ {
31
+ rb_raise(rb_eNoMethodError, "Not implemented");
32
+ }
33
+ virtual wxCoord OnMeasureItem(size_t) const
34
+ {
35
+ rb_raise(rb_eNoMethodError, "Not implemented");
36
+ }
37
+ };
38
+ __HEREDOC
39
+ # make Ruby director and wrappers use custom implementation
40
+ spec.use_class_implementation('wxVListBox', 'wxRubyVListBox')
41
+ end
42
+ end # class VListBox
43
+
44
+ end # class Director
45
+
46
+ end # module WXRuby3