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,306 @@
1
+ // wxRuby3 Wx::Enum class embedded implementation
2
+ // Copyright (c) M.J.N. Corino, The Netherlands
3
+
4
+ VALUE cWxEnum;
5
+
6
+ // instance variable for Enum class
7
+ static const char * __iv_cEnum_value = "@value";
8
+
9
+ // Enum class singleton class
10
+ static VALUE cEnum_Singleton;
11
+ // instance variable for Enum class singleton class (hash registry of Enum classes)
12
+ static const char * __iv_Enum_sc_enums = "@enums";
13
+
14
+ // instance variables for derived Enum class singleton classes
15
+ static const char * __iv_enum_klass_values = "@values"; // hash map of all value instances of derived Enum (by integer value)
16
+ static const char * __iv_enum_klass_values_by_name = "@values_by_name"; // hash map of all value instances of derived Enum
17
+ static const char * __iv_enum_klass_name = "@name"; // unscoped name of derived Enum
18
+
19
+ static VALUE wx_Enum_initialize(int argc, VALUE *argv, VALUE self)
20
+ {
21
+ if ((argc < 1) || (argc > 1))
22
+ {
23
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)", argc); return Qnil;
24
+ }
25
+ rb_iv_set(self, __iv_cEnum_value, rb_funcall(argv[0], rb_intern("to_i"), 0, 0));
26
+ return self;
27
+ }
28
+
29
+ static VALUE wx_Enum_coerce(int argc, VALUE *argv, VALUE self)
30
+ {
31
+ if ((argc < 1) || (argc > 1))
32
+ {
33
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)", argc); return Qnil;
34
+ }
35
+ if (!rb_obj_is_kind_of(argv[0], rb_cNumeric))
36
+ {
37
+ VALUE str = rb_inspect(argv[0]);
38
+ rb_raise(rb_eTypeError,
39
+ "Unable to coerce %s to be compatible with Enum",
40
+ StringValuePtr(str));
41
+ return Qnil;
42
+ }
43
+ VALUE result = rb_ary_new();
44
+ rb_ary_push(result, rb_iv_get(self, __iv_cEnum_value));
45
+ rb_ary_push(result, rb_funcall(argv[0], rb_intern("to_i"), 0, 0));
46
+ return result;
47
+ }
48
+
49
+ static VALUE wx_Enum_is_integer(int argc, VALUE *argv, VALUE self)
50
+ {
51
+ if ((argc < 0) || (argc > 0))
52
+ {
53
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)", argc); return Qnil;
54
+ }
55
+ return Qtrue;
56
+ }
57
+
58
+ static VALUE wx_Enum_is_real(int argc, VALUE *argv, VALUE self)
59
+ {
60
+ if ((argc < 0) || (argc > 0))
61
+ {
62
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)", argc); return Qnil;
63
+ }
64
+ return Qfalse;
65
+ }
66
+
67
+ static VALUE wx_Enum_method_missing(int argc, VALUE *argv, VALUE self)
68
+ {
69
+ if (argc < 1)
70
+ {
71
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)", argc); return Qnil;
72
+ }
73
+ VALUE value = rb_iv_get(self, __iv_cEnum_value);
74
+ return rb_funcall2(value, rb_to_id(argv[0]), argc-1, (argv+1));
75
+ }
76
+
77
+ static VALUE wx_Enum_is_equal(int argc, VALUE *argv, VALUE self)
78
+ {
79
+ if ((argc < 1) || (argc > 1))
80
+ {
81
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)", argc); return Qnil;
82
+ }
83
+ if (CLASS_OF(self) == CLASS_OF(argv[0]) &&
84
+ NUM2INT(rb_iv_get(self, __iv_cEnum_value)) == NUM2INT(rb_iv_get(argv[0], __iv_cEnum_value)))
85
+ return Qtrue;
86
+ else
87
+ return Qfalse;
88
+ }
89
+
90
+ static VALUE wx_Enum_compare(int argc, VALUE *argv, VALUE self)
91
+ {
92
+ if ((argc < 1) || (argc > 1))
93
+ {
94
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)", argc); return Qnil;
95
+ }
96
+ if (rb_obj_is_kind_of(argv[0], cWxEnum))
97
+ {
98
+ return rb_funcall(rb_iv_get(self, __iv_cEnum_value), rb_intern("<=>"), 1, rb_iv_get(argv[0], __iv_cEnum_value), 0);
99
+ }
100
+ else if (rb_obj_is_kind_of(argv[0], rb_cNumeric))
101
+ {
102
+ return rb_funcall(rb_iv_get(self, __iv_cEnum_value), rb_intern("<=>"), 1, argv[0], 0);
103
+ }
104
+ VALUE str = rb_inspect(argv[0]);
105
+ rb_raise(rb_eArgError,
106
+ "Failed to compare Enum with %s",
107
+ StringValuePtr(str));
108
+ return Qnil;
109
+ }
110
+
111
+ static VALUE wx_Enum_succ(int argc, VALUE *argv, VALUE self)
112
+ {
113
+ if ((argc < 0) || (argc > 0))
114
+ {
115
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)", argc); return Qnil;
116
+ }
117
+ return rb_funcall(rb_iv_get(self, __iv_cEnum_value), rb_intern("succ"), 0);
118
+ }
119
+
120
+ static VALUE wx_Enum_inspect(int argc, VALUE *argv, VALUE self)
121
+ {
122
+ if ((argc < 0) || (argc > 0))
123
+ {
124
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)", argc); return Qnil;
125
+ }
126
+ VALUE str = rb_str_new2(rb_class2name(CLASS_OF(self)));
127
+ rb_str_cat2(str, "<");
128
+ rb_funcall(str,
129
+ rb_intern("<<"),
130
+ 1,
131
+ rb_funcall(rb_iv_get(self, __iv_cEnum_value),
132
+ rb_intern("to_s"),
133
+ 0,
134
+ 0),
135
+ 0);
136
+ rb_str_cat2(str, ">");
137
+ return str;
138
+ }
139
+
140
+ static VALUE wx_Enum_to_int(int argc, VALUE *argv, VALUE self)
141
+ {
142
+ if ((argc < 0) || (argc > 0))
143
+ {
144
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)", argc); return Qnil;
145
+ }
146
+ return rb_iv_get(self, __iv_cEnum_value);
147
+ }
148
+
149
+ static VALUE wx_Enum_sc_get_enum_class(int argc, VALUE *argv, VALUE self)
150
+ {
151
+ if ((argc < 1) || (argc > 1))
152
+ {
153
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)", argc); return Qnil;
154
+ }
155
+ return rb_hash_aref(rb_iv_get(cEnum_Singleton, __iv_Enum_sc_enums), rb_to_symbol(argv[0]));
156
+ }
157
+
158
+ static VALUE wx_Enum_sc_create_enum_class(int argc, VALUE *argv, VALUE self)
159
+ {
160
+ if ((argc < 2) || (argc > 2))
161
+ {
162
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)", argc); return Qnil;
163
+ }
164
+ VALUE enum_name = rb_to_symbol(argv[0]);
165
+ if (TYPE(argv[1]) != T_HASH)
166
+ {
167
+ VALUE str = rb_inspect(argv[1]);
168
+ rb_raise(rb_eArgError,
169
+ "Invalid enum_values; expected Hash but got %s.",
170
+ StringValuePtr(str));
171
+ return Qnil;
172
+ }
173
+ ID id_new = rb_intern("new");
174
+ ID id_to_i = rb_intern("to_i");
175
+ ID id_const_set = rb_intern("const_set");
176
+ VALUE enum_klass = rb_funcall(rb_cClass, id_new, 1, cWxEnum, 0);
177
+ VALUE enum_values = rb_funcall(argv[1], rb_intern("keys"), 0, 0);
178
+ for (int i=0; i<RARRAY_LEN(enum_values) ;++i)
179
+ {
180
+ VALUE enum_value_name = rb_ary_entry(enum_values, i);
181
+ VALUE enum_value_num = rb_funcall(rb_hash_aref(argv[1], enum_value_name), id_to_i, 0, 0);
182
+ VALUE enum_value = rb_funcall(enum_klass, id_new, 1, enum_value_num, 0);
183
+ rb_funcall(enum_klass, id_const_set, 2, enum_value_name, enum_value, 0);
184
+ }
185
+ rb_hash_aset(rb_iv_get(cEnum_Singleton, __iv_Enum_sc_enums), enum_name, enum_klass);
186
+ return enum_klass;
187
+ }
188
+
189
+ static void wx_setup_Enum_singleton_class()
190
+ {
191
+ cEnum_Singleton = rb_funcall(cWxEnum, rb_intern("singleton_class"), 0, 0);
192
+ rb_iv_set(cEnum_Singleton, __iv_Enum_sc_enums, rb_hash_new());
193
+ rb_define_method(cEnum_Singleton, "create", VALUEFUNC(wx_Enum_sc_create_enum_class), -1);
194
+ rb_define_singleton_method(cWxEnum, "[]", VALUEFUNC(wx_Enum_sc_get_enum_class), -1);
195
+ }
196
+
197
+ static void wx_define_Enum_class()
198
+ {
199
+ cWxEnum = rb_define_class_under(mWxCore, "Enum", rb_cNumeric);
200
+ rb_define_method(cWxEnum, "initialize", VALUEFUNC(wx_Enum_initialize), -1);
201
+ rb_define_method(cWxEnum, "coerce", VALUEFUNC(wx_Enum_coerce), -1);
202
+ rb_define_method(cWxEnum, "integer?", VALUEFUNC(wx_Enum_is_integer), -1);
203
+ rb_define_method(cWxEnum, "real?", VALUEFUNC(wx_Enum_is_real), -1);
204
+ rb_define_method(cWxEnum, "method_missing", VALUEFUNC(wx_Enum_method_missing), -1);
205
+ rb_define_method(cWxEnum, "eql?", VALUEFUNC(wx_Enum_is_equal), -1);
206
+ rb_define_method(cWxEnum, "<=>", VALUEFUNC(wx_Enum_compare), -1);
207
+ rb_define_method(cWxEnum, "succ", VALUEFUNC(wx_Enum_succ), -1);
208
+ rb_define_method(cWxEnum, "inspect", VALUEFUNC(wx_Enum_inspect), -1);
209
+ rb_define_method(cWxEnum, "to_int", VALUEFUNC(wx_Enum_to_int), -1);
210
+ rb_define_alias(cWxEnum, "to_i", "to_int");
211
+ wx_setup_Enum_singleton_class();
212
+ }
213
+
214
+ WXRB_EXPORT_FLAG VALUE wxRuby_GetEnumClass(const char* enum_class_name_cstr)
215
+ {
216
+ VALUE enum_hash = rb_iv_get(cEnum_Singleton, __iv_Enum_sc_enums);
217
+ return rb_hash_aref(enum_hash, rb_str_new2(enum_class_name_cstr));
218
+ }
219
+
220
+ static VALUE wx_Enum_sc_get_enum_value(int argc, VALUE *argv, VALUE self)
221
+ {
222
+ if ((argc < 1) || (argc > 1))
223
+ {
224
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)", argc); return Qnil;
225
+ }
226
+ VALUE enum_singleton_klass = rb_funcall(self, rb_intern("singleton_class"), 0, 0);
227
+ return rb_hash_aref(rb_iv_get(enum_singleton_klass, __iv_enum_klass_values_by_name), rb_to_symbol(argv[0]));
228
+ }
229
+
230
+ WXRB_EXPORT_FLAG VALUE wxRuby_CreateEnumClass(const char* enum_class_name_cstr)
231
+ {
232
+ VALUE enum_klass = rb_funcall(rb_cClass, rb_intern("new"), 1, cWxEnum, 0);
233
+ rb_define_singleton_method(enum_klass, "[]", VALUEFUNC(wx_Enum_sc_get_enum_value), -1);
234
+ VALUE enum_singleton_klass = rb_funcall(enum_klass, rb_intern("singleton_class"), 0, 0);
235
+ rb_iv_set(enum_singleton_klass, __iv_enum_klass_values, rb_hash_new());
236
+ rb_iv_set(enum_singleton_klass, __iv_enum_klass_values_by_name, rb_hash_new());
237
+ rb_iv_set(enum_singleton_klass, __iv_enum_klass_name, rb_str_new2(enum_class_name_cstr));
238
+ rb_hash_aset(rb_iv_get(cEnum_Singleton, __iv_Enum_sc_enums),
239
+ ID2SYM(rb_intern(enum_class_name_cstr)),
240
+ enum_klass);
241
+ return enum_klass;
242
+ }
243
+
244
+ WXRB_EXPORT_FLAG VALUE wxRuby_AddEnumValue(VALUE enum_klass, const char* enum_value_name_cstr, VALUE enum_value_num)
245
+ {
246
+ VALUE enum_value_name = ID2SYM(rb_intern(enum_value_name_cstr));
247
+ VALUE enum_value = rb_funcall(enum_klass, rb_intern("new"), 1, enum_value_num, 0);
248
+ VALUE enum_singleton_klass = rb_funcall(enum_klass, rb_intern("singleton_class"), 0, 0);
249
+ rb_hash_aset(rb_iv_get(enum_singleton_klass, __iv_enum_klass_values), enum_value_num, enum_value);
250
+ rb_hash_aset(rb_iv_get(enum_singleton_klass, __iv_enum_klass_values_by_name), enum_value_name, enum_value);
251
+ rb_funcall(enum_klass, rb_intern("const_set"), 2, enum_value_name, enum_value, 0);
252
+ return enum_value;
253
+ }
254
+
255
+ WXRB_EXPORT_FLAG VALUE wxRuby_GetEnumValueObject(const char* enum_wx_class_name_cstr, int enum_val)
256
+ {
257
+ if (enum_wx_class_name_cstr)
258
+ {
259
+ const char *enum_class_name = enum_wx_class_name_cstr;
260
+ if (strncmp(enum_class_name, "wx", 2) == 0)
261
+ enum_class_name += 2;
262
+ VALUE enum_hash = rb_iv_get(cEnum_Singleton, __iv_Enum_sc_enums);
263
+ VALUE enum_klass = rb_hash_aref(enum_hash, ID2SYM(rb_intern(enum_class_name)));
264
+ VALUE enum_singleton_klass = rb_funcall(enum_klass, rb_intern("singleton_class"), 0, 0);
265
+ VALUE enum_values_hash = rb_iv_get(enum_singleton_klass, __iv_enum_klass_values);
266
+ return rb_hash_aref(enum_values_hash, INT2NUM(enum_val));
267
+ }
268
+ return Qnil;
269
+ }
270
+
271
+ WXRB_EXPORT_FLAG bool wxRuby_GetEnumValue(const char* enum_wx_class_name_cstr, VALUE rb_enum_val, int &c_eval)
272
+ {
273
+ if (enum_wx_class_name_cstr && rb_obj_is_kind_of(rb_enum_val, cWxEnum))
274
+ {
275
+ VALUE enum_singleton_klass = rb_funcall(CLASS_OF(rb_enum_val), rb_intern("singleton_class"), 0, 0);
276
+ VALUE rb_enum_class_name = rb_iv_get(enum_singleton_klass, __iv_enum_klass_name);
277
+ const char *enum_class_name = enum_wx_class_name_cstr;
278
+ if (strncmp(enum_class_name, "wx", 2) == 0)
279
+ enum_class_name += 2;
280
+ if (strcmp(enum_class_name, StringValuePtr(rb_enum_class_name)) == 0)
281
+ {
282
+ c_eval = NUM2INT(rb_iv_get(rb_enum_val, __iv_cEnum_value));
283
+ return true;
284
+ }
285
+ }
286
+ return false;
287
+ }
288
+
289
+ WXRB_EXPORT_FLAG bool wxRuby_IsAnEnum(VALUE rb_val)
290
+ {
291
+ return rb_obj_is_kind_of(rb_val, cWxEnum);
292
+ }
293
+
294
+ WXRB_EXPORT_FLAG bool wxRuby_IsEnumValue(const char* enum_wx_class_name_cstr, VALUE rb_enum_val)
295
+ {
296
+ if (enum_wx_class_name_cstr && rb_obj_is_kind_of(rb_enum_val, cWxEnum))
297
+ {
298
+ VALUE enum_singleton_klass = rb_funcall(CLASS_OF(rb_enum_val), rb_intern("singleton_class"), 0, 0);
299
+ VALUE rb_enum_class_name = rb_iv_get(enum_singleton_klass, __iv_enum_klass_name);
300
+ const char *enum_class_name = enum_wx_class_name_cstr;
301
+ if (strncmp(enum_class_name, "wx", 2) == 0)
302
+ enum_class_name += 2;
303
+ return (strcmp(enum_class_name, StringValuePtr(rb_enum_class_name)) == 0);
304
+ }
305
+ return false;
306
+ }
@@ -0,0 +1,277 @@
1
+
2
+ #undef _
3
+
4
+ #include <exception>
5
+ #include <string>
6
+
7
+ #include <wx/wx.h>
8
+
9
+ typedef VALUE (*RUBY_INVOKE_FUNC) (VALUE);
10
+
11
+ namespace Swig {
12
+ /* Base class for director exceptions */
13
+ class DirectorException : public std::exception
14
+ {
15
+ protected:
16
+ VALUE swig_error;
17
+ std::string swig_msg;
18
+ protected:
19
+ DirectorException(VALUE error) : swig_error(error) { }
20
+ DirectorException(VALUE error, const char *hdr, const char *msg ="") : swig_error(error), swig_msg(hdr)
21
+ {
22
+ if (msg[0])
23
+ {
24
+ swig_msg += " ";
25
+ swig_msg += msg;
26
+ }
27
+ if (swig_msg.size())
28
+ {
29
+ VALUE str = rb_str_new(swig_msg.data(), swig_msg.size());
30
+ swig_error = rb_exc_new3(error, str);
31
+ }
32
+ else
33
+ {
34
+ swig_error = error;
35
+ }
36
+ }
37
+ public:
38
+ virtual ~DirectorException() throw() { }
39
+ VALUE getType() const
40
+ {
41
+ return CLASS_OF(swig_error);
42
+ }
43
+ VALUE getError() const
44
+ {
45
+ return swig_error;
46
+ }
47
+ /* Deprecated, use what() instead */
48
+ const std::string& getMessage() const
49
+ {
50
+ return swig_msg;
51
+ }
52
+ const char *what() const throw()
53
+ {
54
+ return swig_msg.c_str();
55
+ }
56
+ };
57
+ class DirectorRubyException : public DirectorException
58
+ {
59
+ public:
60
+ DirectorRubyException(const char *exname, const char *msg="")
61
+ : DirectorException(rb_eRuntimeError, exname, msg)
62
+ {
63
+ }
64
+ };
65
+ }
66
+
67
+ class WXRuby_RBFuncall
68
+ {
69
+ public:
70
+ WXRuby_RBFuncall (ID fnid, bool throw_on_ex=true)
71
+ : fn_id_ (fnid),
72
+ throw_on_ex_ (throw_on_ex),
73
+ ex_caught_ (false)
74
+ {
75
+ }
76
+ WXRuby_RBFuncall (const char* fn, bool throw_on_ex=true)
77
+ : fn_id_ (rb_intern (fn)),
78
+ throw_on_ex_ (throw_on_ex),
79
+ ex_caught_ (false)
80
+ {
81
+ }
82
+ ~WXRuby_RBFuncall () {}
83
+
84
+ VALUE invoke (VALUE rcvr, VALUE args)
85
+ {
86
+ return this->_invoke (FuncArgArray (rcvr, args));
87
+ }
88
+ VALUE invoke (VALUE rcvr, int argc, VALUE *args)
89
+ {
90
+ return this->_invoke (FuncArgList (rcvr, argc, args));
91
+ }
92
+ VALUE invoke (VALUE rcvr)
93
+ {
94
+ return this->_invoke (FuncArgList (rcvr, 0, 0));
95
+ }
96
+
97
+ bool has_caught_exception () { return this->ex_caught_; }
98
+
99
+ VALUE get_exception () { return rb_gv_get ("$!"); }
100
+
101
+ ID id () { return this->fn_id_; }
102
+
103
+ protected:
104
+ struct FuncArgs
105
+ {
106
+ virtual ~FuncArgs () {}
107
+ virtual VALUE rb_invoke (ID fnid) const = 0;
108
+ };
109
+
110
+ VALUE _invoke (const FuncArgs& fa)
111
+ {
112
+ this->ex_caught_ = false; // reset
113
+
114
+ int invoke_state = 0;
115
+ HelperArgs ha (*this, fa);
116
+ VALUE result = rb_protect (RUBY_INVOKE_FUNC(WXRuby_RBFuncall::invoke_helper),
117
+ (VALUE)&ha,
118
+ &invoke_state);
119
+ if (invoke_state)
120
+ {
121
+ if (this->throw_on_ex_)
122
+ {
123
+ // handle exception
124
+ VALUE rexc = this->get_exception ();
125
+ VALUE msg = rb_eval_string ("$!.message+\"\\n\"+$!.backtrace.join(\"\\n\")");
126
+ const char *exc_name = rb_obj_classname(rexc);
127
+ wxLogDebug("%s : %s", exc_name, StringValuePtr(msg));
128
+ throw Swig::DirectorRubyException(exc_name, StringValuePtr(msg));
129
+ }
130
+ else
131
+ {
132
+ this->ex_caught_ = true;
133
+ }
134
+ }
135
+ else
136
+ {
137
+ return result;
138
+ }
139
+ return Qnil;
140
+ }
141
+
142
+ struct FuncArgArray : public FuncArgs
143
+ {
144
+ FuncArgArray (VALUE rcvr, VALUE args)
145
+ : receiver_ (rcvr), args_ (args) {}
146
+ virtual ~FuncArgArray () {}
147
+
148
+ virtual VALUE rb_invoke (ID fnid) const
149
+ {
150
+ return rb_apply (this->receiver_, fnid, this->args_);
151
+ }
152
+
153
+ VALUE receiver_;
154
+ VALUE args_;
155
+ };
156
+
157
+ struct FuncArgList : public FuncArgs
158
+ {
159
+ FuncArgList (VALUE rcvr, int argc, VALUE* args)
160
+ : receiver_ (rcvr), argc_ (argc), args_ (args) {}
161
+ virtual ~FuncArgList () {}
162
+
163
+ virtual VALUE rb_invoke (ID fnid) const
164
+ {
165
+ return rb_funcall2 (this->receiver_, fnid, this->argc_, this->args_);
166
+ }
167
+
168
+ VALUE receiver_;
169
+ int argc_;
170
+ VALUE* args_;
171
+ };
172
+
173
+ VALUE invoke_inner (const FuncArgs& fnargs)
174
+ {
175
+ return fnargs.rb_invoke (this->fn_id_);
176
+ }
177
+
178
+ struct HelperArgs
179
+ {
180
+ HelperArgs (WXRuby_RBFuncall& c, const FuncArgs& fa)
181
+ : caller_ (c), fnargs_ (fa) {}
182
+
183
+ WXRuby_RBFuncall& caller_;
184
+ const FuncArgs& fnargs_;
185
+ };
186
+
187
+ static VALUE invoke_helper (VALUE arg)
188
+ {
189
+ HelperArgs* ha = reinterpret_cast<HelperArgs*> (arg);
190
+ return ha->caller_.invoke_inner (ha->fnargs_);
191
+ }
192
+
193
+ private:
194
+ ID fn_id_;
195
+ bool throw_on_ex_;
196
+ bool ex_caught_;
197
+ };
198
+
199
+ WXRB_EXPORT_FLAG VALUE wxRuby_Funcall(VALUE rcvr, ID func, int argc, ...)
200
+ {
201
+ VALUE *argv;
202
+ va_list ar;
203
+
204
+ if (argc > 0)
205
+ {
206
+ long i;
207
+
208
+ va_start(ar, argc);
209
+
210
+ argv = ALLOCA_N(VALUE, argc);
211
+
212
+ for (i = 0; i < argc; i++)
213
+ {
214
+ argv[i] = va_arg(ar, VALUE);
215
+ }
216
+ va_end(ar);
217
+ }
218
+ else
219
+ {
220
+ argv = 0;
221
+ }
222
+ return WXRuby_RBFuncall(func).invoke(rcvr, argc, argv);
223
+ }
224
+
225
+ WXRB_EXPORT_FLAG VALUE wxRuby_Funcall(bool& ex_caught, VALUE rcvr, ID func, int argc, ...)
226
+ {
227
+ VALUE *argv;
228
+ va_list ar;
229
+
230
+ if (argc > 0)
231
+ {
232
+ long i;
233
+
234
+ va_start(ar, argc);
235
+
236
+ argv = ALLOCA_N(VALUE, argc);
237
+
238
+ for (i = 0; i < argc; i++)
239
+ {
240
+ argv[i] = va_arg(ar, VALUE);
241
+ }
242
+ va_end(ar);
243
+ }
244
+ else
245
+ {
246
+ argv = 0;
247
+ }
248
+ WXRuby_RBFuncall wxrb_fn(func, false);
249
+ VALUE rc = wxrb_fn.invoke(rcvr, argc, argv);
250
+ if ((ex_caught = wxrb_fn.has_caught_exception ()))
251
+ {
252
+ return wxrb_fn.get_exception ();
253
+ }
254
+ else
255
+ {
256
+ return rc;
257
+ }
258
+ }
259
+
260
+ WXRB_EXPORT_FLAG VALUE wxRuby_Funcall(VALUE rcvr, ID func, VALUE args)
261
+ {
262
+ return WXRuby_RBFuncall(func).invoke(rcvr, args);
263
+ }
264
+
265
+ WXRB_EXPORT_FLAG VALUE wxRuby_Funcall(bool& ex_caught, VALUE rcvr, ID func, VALUE args)
266
+ {
267
+ WXRuby_RBFuncall wxrb_fn(func, false);
268
+ VALUE rc = wxrb_fn.invoke(rcvr, args);
269
+ if ((ex_caught = wxrb_fn.has_caught_exception ()))
270
+ {
271
+ return wxrb_fn.get_exception ();
272
+ }
273
+ else
274
+ {
275
+ return rc;
276
+ }
277
+ }
@@ -0,0 +1,95 @@
1
+
2
+ #ifdef __WXMSW__
3
+
4
+ extern "C"
5
+ {
6
+ WXDLLIMPEXP_BASE HINSTANCE wxGetInstance();
7
+ }
8
+
9
+ WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst);
10
+
11
+ //----------------------------------------------------------------------
12
+ // This gets run when the DLL is loaded. We just need to save the
13
+ // instance handle.
14
+ //----------------------------------------------------------------------
15
+
16
+ extern "C"
17
+ BOOL WINAPI DllMain(
18
+ HINSTANCE hinstDLL, // handle to DLL module
19
+ DWORD fdwReason, // reason for calling function
20
+ LPVOID lpvReserved)
21
+ {
22
+ // If wxRuby is embedded in another (wxWidgets) app then
23
+ // the instance may already have been set.
24
+ if (fdwReason==DLL_PROCESS_ATTACH && !wxGetInstance())
25
+ wxSetInstance(hinstDLL);
26
+
27
+ return TRUE;
28
+ }
29
+
30
+ // Adapted from wxPython
31
+ static void wxRuby_SetActivationContext()
32
+ {
33
+
34
+ OSVERSIONINFO info;
35
+ memset(&info, 0, sizeof(OSVERSIONINFO));
36
+ info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
37
+ GetVersionEx(&info);
38
+ if (info.dwMajorVersion < 5)
39
+ return;
40
+
41
+ ULONG_PTR cookie = 0;
42
+ HANDLE h;
43
+ ACTCTX actctx;
44
+ TCHAR modulename[MAX_PATH];
45
+
46
+ GetModuleFileName(wxGetInstance(), modulename, MAX_PATH);
47
+ memset(&actctx, 0, sizeof(ACTCTX));
48
+ actctx.cbSize = sizeof(actctx);
49
+ actctx.lpSource = modulename;
50
+ #ifdef ISOLATION_AWARE_ENABLED
51
+ actctx.lpResourceName = MAKEINTRESOURCE(2);
52
+ #else
53
+ actctx.lpResourceName = MAKEINTRESOURCE(1);
54
+ #endif
55
+ actctx.hModule = wxGetInstance();
56
+ actctx.dwFlags = ACTCTX_FLAG_HMODULE_VALID | ACTCTX_FLAG_RESOURCE_NAME_VALID;
57
+
58
+ h = CreateActCtx(&actctx);
59
+ if (h == INVALID_HANDLE_VALUE)
60
+ {
61
+ LPTSTR lpMsgBuf;
62
+ DWORD dw = GetLastError();
63
+
64
+ FormatMessage(
65
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
66
+ FORMAT_MESSAGE_FROM_SYSTEM |
67
+ FORMAT_MESSAGE_IGNORE_INSERTS,
68
+ NULL,
69
+ dw,
70
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
71
+ (LPTSTR) &lpMsgBuf,
72
+ 0, NULL );
73
+ ::fprintf(stderr, "Error in CreateActCtx : %s\n", lpMsgBuf);
74
+ return;
75
+ }
76
+
77
+ if (! ActivateActCtx(h, &cookie))
78
+ {
79
+ LPTSTR lpMsgBuf;
80
+ DWORD dw = GetLastError();
81
+
82
+ FormatMessage(
83
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
84
+ FORMAT_MESSAGE_FROM_SYSTEM |
85
+ FORMAT_MESSAGE_IGNORE_INSERTS,
86
+ NULL,
87
+ dw,
88
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
89
+ (LPTSTR) &lpMsgBuf,
90
+ 0, NULL );
91
+ ::fprintf(stderr, "Error in ActivateActCtx : %s\n", lpMsgBuf);
92
+ }
93
+ }
94
+
95
+ #endif