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,282 @@
1
+ // Copyright 2004-2007, wxRuby development team
2
+ // released under the MIT-like wxRuby2 license
3
+
4
+ %module(directors="1") wxruby3
5
+
6
+ %include "common.i"
7
+
8
+ %{
9
+ #include <wx/gdicmn.h>
10
+ #include <wx/image.h>
11
+ #include <wx/xrc/xmlres.h>
12
+
13
+ #include <wx/filesys.h>
14
+ #include <wx/fs_zip.h>
15
+ %}
16
+
17
+ // Some common functions
18
+ %{
19
+ extern VALUE mWxCore;
20
+ WXRUBY_EXPORT VALUE wxRuby_Core()
21
+ {
22
+ return mWxCore;
23
+ }
24
+
25
+ // Mapping of known wxRuby classes to SWIG type information
26
+ WX_DECLARE_HASH_MAP(VALUE,
27
+ swig_type_info*,
28
+ wxIntegerHash,
29
+ wxIntegerEqual,
30
+ RbClassToSwigTypeHash);
31
+ RbClassToSwigTypeHash Global_Type_Map;
32
+
33
+ // Record swig_type_info for a wxRuby class; called in class
34
+ // initialisation
35
+ WXRUBY_EXPORT void wxRuby_SetSwigTypeForClass(VALUE cls, swig_type_info* ty) {
36
+ Global_Type_Map[cls] = ty;
37
+ }
38
+
39
+ // Retrieve swig_type_info for a ruby class - needed by functions which
40
+ // wrap objects whose type is not known in advance - eg
41
+ // Window#find_window_by_index (see Window.i)
42
+ WXRUBY_EXPORT swig_type_info* wxRuby_GetSwigTypeForClass(VALUE cls) {
43
+ return Global_Type_Map[cls];
44
+ }
45
+
46
+ // Overriding standard SWIG tracking - SWIG's implementation is not
47
+ // compatible with ruby 1.8.7 / 1.9.x as it can allocate BigNum objects
48
+ // during GC , which is an error. So instead we provide a C++ ptr->Ruby
49
+ // object map using Wx's hashmap class.
50
+ WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
51
+ PtrToRbObjHash);
52
+ PtrToRbObjHash Global_Ptr_Map;
53
+
54
+ // Add a tracking from ptr -> object
55
+ WXRUBY_EXPORT void wxRuby_AddTracking(void* ptr, VALUE object) {
56
+ #ifdef __WXRB_DEBUG__
57
+ if (wxRuby_TraceLevel()>1)
58
+ {
59
+ std::wcout << "> wxRuby_AddTracking" << std::flush;
60
+ VALUE clsname = rb_mod_name(CLASS_OF(object));
61
+ std::wcout << "("
62
+ << ptr << ":{"
63
+ << (clsname != Qnil ? StringValueCStr(clsname) : "<noname>")
64
+ << "})" << std::endl;
65
+ }
66
+ #endif
67
+ Global_Ptr_Map[ptr] = object;
68
+ }
69
+
70
+ // Return the ruby object for ptr
71
+ WXRUBY_EXPORT VALUE wxRuby_FindTracking(void* ptr) {
72
+ if ( Global_Ptr_Map.count(ptr) == 0 )
73
+ return Qnil;
74
+ else
75
+ return Global_Ptr_Map[ptr];
76
+ }
77
+
78
+ // Remove the tracking for ptr
79
+ WXRUBY_EXPORT void wxRuby_RemoveTracking(void* ptr) {
80
+ #ifdef __WXRB_DEBUG__
81
+ if (wxRuby_TraceLevel()>1)
82
+ std::wcout << "< wxRuby_RemoveTracking(" << ptr << ")" << std::endl;
83
+ #endif
84
+ Global_Ptr_Map.erase(ptr);
85
+ }
86
+
87
+ // Iterate over all the trackings, calling the passed-in method on each
88
+ WXRUBY_EXPORT void wxRuby_IterateTracking( void(*meth)(void* ptr, VALUE obj) ) {
89
+ PtrToRbObjHash::iterator it;
90
+ for( it = Global_Ptr_Map.begin(); it != Global_Ptr_Map.end(); ++it )
91
+ {
92
+ void* ptr = it->first;
93
+ VALUE obj = it->second;
94
+ (*meth)(ptr, obj);
95
+ }
96
+ }
97
+
98
+
99
+ // Returns a ruby object wrapped around a wxObject. This is used for
100
+ // methods whose return type is a generic C++ class (eg wxWindow), but
101
+ // whose return values are actually instances of specific C++ classes
102
+ // (eg wxButton) and so must be wrapped in the right Ruby class
103
+ // (Wx::Button). It must check if the ruby wrapper object already
104
+ // exists, and if not, wrap it in the correct class, and ensure that
105
+ // future calls return the same object. Most of this is handled by the
106
+ // SWIG API - the main additional complexity is using Wx's RTTI system
107
+ // to discover the specific C++ class, then find a ruby class, and the
108
+ // SWIG type info struct with the appropriate mark & free funcs to wrap
109
+ // it in.
110
+ //
111
+ // This is useful for methods which return arbitrary windows - for
112
+ // example, Window::FindWindowById or the FindWindowByPoint global
113
+ // function; and in circumstances, especially XRC-loading, where
114
+ // complete Windows are created in C++ without ruby code.
115
+ WXRUBY_EXPORT VALUE wxRuby_WrapWxObjectInRuby(wxObject *wx_obj)
116
+ {
117
+ static WxRuby_ID window_id("Window");
118
+
119
+ // If no object was passed to be wrapped; this could be a normal state
120
+ // (eg if get_sizer was called on a Window with no sizer set), or
121
+ // could be an error, eg if calling get_window_by_id and no window
122
+ // matched the id, or an error arose from incorrect XML syntax
123
+ if ( ! wx_obj )
124
+ return Qnil;
125
+
126
+ // Get the wx class and the ruby class we are converting into
127
+ wxString class_name( wx_obj->GetClassInfo()->GetClassName() );
128
+ wxCharBuffer wx_classname = class_name.mb_str();
129
+ VALUE r_class_name = rb_intern(wx_classname.data () + 2);
130
+ VALUE r_class = Qnil;
131
+
132
+ if ( class_name.Len() > 2 )
133
+ {
134
+ // lookup the class in the main module and any package submodules loaded
135
+ if (rb_const_defined(mWxCore, r_class_name))
136
+ r_class = rb_const_get(mWxCore, r_class_name);
137
+ else
138
+ {
139
+ VALUE submod_ary = rb_ivar_get(mWxCore, rb_intern("@__pkgmods__"));
140
+ for (long n=0; n<RARRAY_LEN(submod_ary); ++n)
141
+ {
142
+ VALUE submod = rb_ary_entry(submod_ary, n);
143
+ if (rb_const_defined(submod, r_class_name))
144
+ {
145
+ r_class = rb_const_get(submod, r_class_name);
146
+ break;
147
+ }
148
+ }
149
+ }
150
+ }
151
+
152
+ // Handle classes (currently) unknown in wxRuby.
153
+ // (could cause problems because class-specific methods won't be accessible).
154
+ if ( r_class == Qnil )
155
+ {
156
+ // map unknown wxWindow derivatives as basic window
157
+ if (wxIsKindOf(wx_obj, wxWindow))
158
+ {
159
+ r_class = rb_const_get(mWxCore, window_id());
160
+ // issue warning if $VERBOSE is true
161
+ rb_warning("Cannot wrap exact window class as '%s' is not (yet) known in wxRuby; wrapping as base Window object.",
162
+ (const char *)class_name.mb_str());
163
+ }
164
+ else
165
+ {
166
+ rb_warn("Error wrapping object; class '%s' is not (yet) supported in wxRuby",
167
+ (const char *)class_name.mb_str());
168
+ return Qnil;
169
+ }
170
+ }
171
+
172
+ // Otherwise, retrieve the swig type info for this class and wrap it
173
+ // in Ruby. wxRuby_GetSwigTypeForClass is defined in wx.i
174
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(r_class);
175
+ VALUE r_obj = SWIG_NewPointerObj(wx_obj, swig_type, 1);
176
+ return r_obj;
177
+ }
178
+
179
+
180
+ // The passage of wxEvents from the C++ to the ruby side has to be
181
+ // controlled carefully because normal Wx events are created on the
182
+ // stack, and hence the underlying object is often deleted while the
183
+ // ruby object is still around. This (plus typemap in typemap.i) gets
184
+ // round this by tracking Event objects created on the ruby side with eg
185
+ // CommandEvent.new, but never tracking, marking or freeing those
186
+ // generated on the C++ side.
187
+ // Cached reference to EvtHandler evt_type_id -> ruby_event_class map
188
+ static VALUE Evt_Type_Map = NULL;
189
+
190
+ #ifdef __WXRB_DEBUG__
191
+ WXRUBY_EXPORT VALUE wxRuby_WrapWxEventInRuby(void* rcvr, wxEvent *wx_event)
192
+ #else
193
+ WXRUBY_EXPORT VALUE wxRuby_WrapWxEventInRuby(wxEvent *wx_event)
194
+ #endif
195
+ {
196
+ // Get the mapping of event types to classes
197
+ if ( ! Evt_Type_Map )
198
+ {
199
+ Evt_Type_Map = wxRuby_GetEventTypeClassMap ();
200
+ }
201
+
202
+ #if __WXRB_DEBUG__
203
+ if (wxRuby_TraceLevel()>1)
204
+ std::wcout << "* wxRuby_WrapWxEventInRuby(rcvr=" << rcvr << ", " << wx_event << ":{" << wx_event->GetEventType() << "@" << wx_event->GetEventObject() << "})" << std::endl;
205
+ #endif
206
+
207
+ // Then, look up the event type in this hash (MUCH faster than calling
208
+ // EvtHandler.evt_class_for_type method)
209
+ VALUE rb_event_type_id = INT2NUM( wx_event->GetEventType() );
210
+ VALUE rb_event_class = rb_hash_aref(Evt_Type_Map, rb_event_type_id);
211
+
212
+ // Check we have a valid class; warn and map to default Wx::Event if not
213
+ if ( NIL_P(rb_event_class) )
214
+ {
215
+ rb_event_class = wxRuby_GetDefaultEventClass ();
216
+ wxString class_name( wx_event->GetClassInfo()->GetClassName() );
217
+ rb_warning("Unmapped event type %i (%s)", wx_event->GetEventType(), (const char *)class_name.mb_str());
218
+ }
219
+
220
+ // Now, see if we have a tracked instance of this object already
221
+ // wrapped - this would be the case if it had been created on the Ruby
222
+ // side.
223
+ VALUE rb_event = SWIG_RubyInstanceFor((void *)wx_event);
224
+
225
+ // Something has been found, but sometimes stale objects are left in
226
+ // the tracking, especially for types that are created and destroyed
227
+ // quickly; therefore, we need to verify that the found Ruby object is
228
+ // really the right thing, and not some stale reference.
229
+ if ( rb_event != Qnil )
230
+ {
231
+ if ( rb_obj_is_kind_of(rb_event, rb_event_class ) )
232
+ return rb_event; // OK
233
+ else
234
+ SWIG_RubyRemoveTracking((void *)wx_event); // Remove stale ref
235
+ }
236
+
237
+ // No existing Ruby instance found, so a transitory event object; wrap
238
+ // without mark or free functions as Wx will deals with deletion
239
+ rb_event = Data_Wrap_Struct(rb_event_class, 0, 0, 0);
240
+ DATA_PTR(rb_event) = wx_event;
241
+ // do not forget to mark the instance with the mangled swig type name
242
+ swig_type_info* type = wxRuby_GetSwigTypeForClass(rb_event_class);
243
+ rb_iv_set(rb_event, "@__swigtype__", rb_str_new2(type->name));
244
+
245
+ #if __WXRB_DEBUG__
246
+ if (wxRuby_TraceLevel()>1)
247
+ std::wcout << "* wxRuby_WrapWxEventInRuby - wrapped transitory event " << wx_event << "{" << type->name << "}" << std::endl;
248
+ #endif
249
+
250
+ return rb_event;
251
+ }
252
+ %}
253
+
254
+ %inline %{
255
+ #ifdef __WXRB_DEBUG__
256
+ int wxrb_trace_level = 0;
257
+ #else
258
+ const int wxrb_trace_level = 0;
259
+ #endif
260
+ %}
261
+
262
+ %{
263
+ #ifdef __WXRB_DEBUG__
264
+ WXRUBY_EXPORT int wxRuby_TraceLevel()
265
+ {
266
+ return _wxrb_trace_level;
267
+ }
268
+ #endif
269
+ %}
270
+
271
+ %include "mark_free_impl.i"
272
+
273
+ %init %{
274
+ // Set up all image formats
275
+ wxInitAllImageHandlers();
276
+
277
+ // Load handlers on the global resources object
278
+ wxXmlResource::Get()->InitAllHandlers();
279
+
280
+ // This is needed so HtmlHelp can load docs from a zip file
281
+ wxFileSystem::AddHandler(new wxArchiveFSHandler);
282
+ %}
@@ -0,0 +1,19 @@
1
+ /////////////////////////////////////////////////////////////////////////////
2
+ // Name: swig/wxruby.rc
3
+ // Purpose: wxRuby3 MSW standard resource file
4
+ // Author: Martin Corino
5
+ /////////////////////////////////////////////////////////////////////////////
6
+
7
+ // note that the icon used by the Explorer (i.e. the programs icon) is the
8
+ // first icon in the executable and the icons are sorted both by their order
9
+ // and alphabetically (!), so put this icon first and give it a name
10
+ // starting with "a"
11
+ aaaaaaaaWxRuby3 ICON "wxruby3/wxruby.ico"
12
+
13
+ // To get DPI change events, we need to opt in into per monitor DPI support.
14
+ #ifndef wxUSE_DPI_AWARE_MANIFEST
15
+ #define wxUSE_DPI_AWARE_MANIFEST 2
16
+ #endif
17
+
18
+ // this file contains the standard icons, cursors, ...
19
+ #include "wx/msw/wx.rc"
Binary file
@@ -0,0 +1,63 @@
1
+ # = WxSugar - Accessors
2
+ #
3
+ # The default WxRuby interface has lots and lots of methods like
4
+ #
5
+ # * get_position()
6
+ # * set_size(a_size)
7
+ # * is_checked()
8
+ # * can_undo()
9
+ # * has_style(a_style)
10
+ #
11
+ # and so on. Methods that retrieve set, or query attributes of an object
12
+ # are more normally in Ruby called simply by the attribute name, or, in
13
+ # other cases, with a predicate method:
14
+ #
15
+ # * pos = my_widget.position
16
+ # * my_widget.size = a_size
17
+ # * my_widget.checked?
18
+ # * my_widget.can_undo?
19
+ # * my_widget.has_style?
20
+ #
21
+ # The wxRuby generation scripts capture most of these and automatically declare
22
+ # alias definitions for those. But not all.
23
+ # This extension captures the ones that are still missing an appropriate alias and
24
+ # automagically creates an alias for every WxRuby instance method that
25
+ # begins with +get_+, +set_+, +is_+, +can_+ and +has_+. Note that if you are calling a
26
+ # 'setter' method on self, you must explicitly send the message to self:
27
+ #
28
+ # # set's self size to be 100px by 100px
29
+ # self.size = Wx::Size.new(100, 100)
30
+ # # only sets the value of a local variable 'size'
31
+ # size = Wx::Size.new
32
+
33
+ module WxRubyStyleAccessors
34
+ # Ruby-style method named are implemented by method-missing; if an
35
+ # unknown method is called, see if it is a rubyish name for a real
36
+ # method. In principle it would be possible to set up real aliases for
37
+ # them at start-up, but in practice this is far too slow for all the
38
+ # classes that need to be started up.
39
+ def method_missing(sym, *args)
40
+ case sym.to_s
41
+ when /^(\w+)\=$/
42
+ meth = "set_#{$1}"
43
+ when /^((?:has|can)\w+)\?$/
44
+ meth = $1
45
+ when /^(\w+)\?$/
46
+ meth = "is_#{$1}"
47
+ else
48
+ meth = "get_#{sym}"
49
+ end
50
+ if respond_to?(meth)
51
+ send(meth, *args)
52
+ else
53
+ super
54
+ end
55
+ end
56
+
57
+ def self.included(mod)
58
+ mod.extend WxRubyStyleAccessors
59
+ mod.constants.collect { | c | mod.const_get(c) }.grep(Module).each do |mod|
60
+ mod.include WxRubyStyleAccessors if mod.name.start_with?('Wx::') # only setup Wx namespace
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,17 @@
1
+
2
+ class Wx::AUI::AuiManager
3
+ def get_all_panes
4
+ ::Enumerator.new { |y| each_pane { |p| y << p } }
5
+ end
6
+ alias :all_panes :get_all_panes
7
+
8
+ unless Wx::EvtHandler.event_type_for_name(:evt_aui_find_manager)
9
+ # missing from XML API refs
10
+ Wx::EvtHandler.register_event_type Wx::EvtHandler::EventType[
11
+ 'evt_aui_find_manager', 0,
12
+ Wx::AUI::EVT_AUI_FIND_MANAGER,
13
+ Wx::AUI::AuiManagerEvent
14
+ ] if Wx::AUI.const_defined?(:EVT_AUI_FIND_MANAGER)
15
+ end
16
+
17
+ end
@@ -0,0 +1,9 @@
1
+ # Advanced User Interface Notebook - draggable panes etc
2
+ class Wx::AUI::AuiNotebook
3
+ # Convenience method for iterating pages
4
+ def each_page
5
+ 0.upto(get_page_count - 1) do | i |
6
+ yield get_page(i)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # Wx::AUI sub package for wxRuby3
2
+ # Copyright (c) M.J.N. Corino, The Netherlands
3
+
4
+ #require_relative './ext'
5
+ require_relative './events/evt_list'
6
+ require_relative './auimanager'
7
+ require_relative './auinotebook'
8
+
9
+ Wx::Dialog.setup_dialog_functors(Wx::AUI)
data/lib/wx/aui.rb ADDED
@@ -0,0 +1,14 @@
1
+ # Wx::AUI sub package loader for wxRuby3
2
+ # Copyright (c) M.J.N. Corino, The Netherlands
3
+
4
+
5
+ require 'wx/core'
6
+
7
+ require 'wxruby_aui'
8
+
9
+ require_relative './aui/require'
10
+
11
+ ::Wx.include(WxRubyStyleAccessors)
12
+
13
+ ::Wx.include(Wx::AUI) if defined?(::WX_GLOBAL_CONSTANTS) && ::WX_GLOBAL_CONSTANTS
14
+ ::Wx::AUI.include((defined?(::WX_GLOBAL_CONSTANTS) && ::WX_GLOBAL_CONSTANTS) ? WxGlobalConstants : WxEnumConstants)
@@ -0,0 +1,28 @@
1
+ class Wx::AcceleratorTable
2
+ # Allow new to be called as []
3
+ class << self
4
+ alias :[] :new
5
+ end
6
+
7
+ # Allow initialize to be called with a splat-like list of arguments,
8
+ # and allow entries to be specified in terser form [mod, key, id]
9
+ # rather than full AcceleratorEntry.new call.
10
+ wx_init = self.instance_method(:initialize)
11
+ define_method(:initialize) do | *args |
12
+ # Test for old-style arg passing in a single array
13
+ if args.length == 1 and args.first.kind_of?(Array) and
14
+ args.first.all? { | e | e.kind_of?(Wx::AcceleratorEntry) }
15
+ args = args[0]
16
+ end
17
+ # Convert to array of AccEntries, to pass in as single array
18
+ args = args.map do | entry |
19
+ case entry
20
+ when Wx::AcceleratorEntry then entry
21
+ when Array then Wx::AcceleratorEntry.new(*entry)
22
+ else Kernel.raise ArgumentError,
23
+ "#{entry.inspect} is not a valid AcceleratorTable entry"
24
+ end
25
+ end
26
+ wx_init.bind(self).call(args)
27
+ end
28
+ end
@@ -0,0 +1,18 @@
1
+ class Wx::Animation
2
+ # Redefine the initialize method so it raises an exception if a
3
+ # non-existent file is given to the constructor; otherwise, wx Widgets
4
+ # just carries on with an empty bitmap, which may cause faults later
5
+ wx_init = self.instance_method(:initialize)
6
+ define_method(:initialize) do | *args |
7
+ if args[0].kind_of? String
8
+ if not File.exist?( File.expand_path(args[0]) )
9
+ Kernel.raise( ArgumentError,
10
+ "Animation file does not exist: #{args[0]}" )
11
+ end
12
+ res = wx_init.bind(self).call()
13
+ res.load_file(args[0], args[1] || Wx::ANIMATION_TYPE_ANY)
14
+ else
15
+ wx_init.bind(self).call(*args)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,89 @@
1
+ # Copyright 2004-2006 by Kevin Smith
2
+ # released under the MIT-style wxruby2 license
3
+
4
+ require_relative './ext'
5
+
6
+ # Controller class which creates and manages all windows.
7
+ class Wx::App
8
+
9
+ # convenience method to retrieve global Wx::App instance
10
+ def self.the_app
11
+ if Wx::const_defined?(:THE_APP) and Wx::THE_APP.is_running
12
+ Wx::THE_APP
13
+ else
14
+ nil
15
+ end
16
+ end
17
+
18
+ # Ruby init callback.
19
+ # Initializes delayed load constants and than calls the user defined 'on_init'
20
+ def on_ruby_init
21
+ Wx.load_delayed_constants
22
+ self.respond_to?(:on_init) ? self.on_init : false
23
+ end
24
+ private :on_ruby_init
25
+
26
+ # Make C-ext main_loop method private
27
+ private :main_loop
28
+
29
+ # App instance run method.
30
+ # Accepts optional 'on_init' block.
31
+ # The block will be ignored when the (derived) App class
32
+ # already has an 'on_init' method defined.
33
+ def run(&block)
34
+ if block_given?
35
+ if self.respond_to?(:on_init)
36
+ Wx.log_warning("'on_init' block ignored as #{self.class.name} already has an #on_init method defined")
37
+ else
38
+ self.singleton_class.class_eval do
39
+ define_method(:on_init, &block)
40
+ end
41
+ end
42
+ end
43
+ main_loop # run the main loop (which triggers the call to on_init)
44
+ end
45
+
46
+ # Convenience class method to create simple apps. Starts an
47
+ # application main_loop, setting up initial windows etc as specified
48
+ # in the passed block.
49
+ # block
50
+ def self.run(&block)
51
+ if block_given?
52
+ app_klass = Class.new(self)
53
+ app_klass.class_eval do
54
+ define_method(:on_init, &block)
55
+ end
56
+ else
57
+ app_klass = self
58
+ end
59
+ app_klass.new.run
60
+ end
61
+
62
+
63
+ # This is a class method in Wx, but permit it to be an instance method
64
+ # in wxRuby
65
+ def is_main_loop_running
66
+ Wx::App.is_main_loop_running
67
+ end
68
+
69
+ # This method handles failed assertions from within the WxWidgets C++
70
+ # code. These messages are only generated by a DEBUG build of
71
+ # WxRuby. Such messages usually indicate that the API is being used
72
+ # incorrectly; the file/line reference points to the place in the
73
+ # WxWidgets source code where the assertion was made.
74
+ define_method(:on_assert_failure) do | file, line, func, condition, message |
75
+ warn "Wx WARNING: #{message} (#{func}@#{file}:#{line})"
76
+ end
77
+
78
+ # For use in development only, of no practical use in production code.
79
+ # This method causes Ruby's garbage collection to run (roughly) at
80
+ # interval +interval+ (seconds) - the default is 1, i.e. every
81
+ # second. This should help ferret out bugs in memory management more
82
+ # quickly.
83
+ def gc_stress(interval = 1)
84
+ t = Wx::Timer.new(self, 9999)
85
+ evt_timer(9999) { Thread.pass }
86
+ Thread.new { loop { sleep interval; GC.start } }
87
+ t.start(100)
88
+ end
89
+ end
@@ -0,0 +1,31 @@
1
+ # Class which can supply icons and bitmaps
2
+ class Wx::ArtProvider
3
+ # Keep a note of supplied ArtProviders to prevent them being GC'd
4
+ @__art_provs = []
5
+
6
+ class << self
7
+ wx_push_back = instance_method(:push_back)
8
+ define_method(:push_back) do | art_prov |
9
+ wx_push_back.bind(self).call(art_prov)
10
+ @__art_provs.unshift(art_prov)
11
+ end
12
+
13
+ wx_pop = instance_method(:pop)
14
+ define_method(:pop) do
15
+ wx_pop.bind(self).call
16
+ @__art_provs.pop
17
+ end
18
+
19
+ wx_push = instance_method(:push)
20
+ define_method(:push) do | art_prov |
21
+ wx_push.bind(self).call(art_prov)
22
+ @__art_provs.push(art_prov)
23
+ end
24
+
25
+ wx_delete = instance_method(:delete)
26
+ define_method(:delete) do | art_prov |
27
+ wx_push.bind(self).call(art_prov)
28
+ @__art_provs.delete(art_prov)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,59 @@
1
+ # A platform-dependent image that can be drawn on the screen
2
+ class Wx::Bitmap
3
+ # Allow wxRuby to guess the type of an image file from its extension.
4
+ BITMAP_TYPE_GUESS = {
5
+ 'bmp' => Wx::BitmapType::BITMAP_TYPE_BMP,
6
+ 'gif' => Wx::BitmapType::BITMAP_TYPE_GIF,
7
+ 'ico' => Wx::BitmapType::BITMAP_TYPE_ICO,
8
+ 'jpeg' => Wx::BitmapType::BITMAP_TYPE_JPEG,
9
+ 'jpg' => Wx::BitmapType::BITMAP_TYPE_JPEG,
10
+ 'pbm' => Wx::BitmapType::BITMAP_TYPE_PNM,
11
+ 'pcx' => Wx::BitmapType::BITMAP_TYPE_PCX,
12
+ 'pgm' => Wx::BitmapType::BITMAP_TYPE_PNM,
13
+ 'png' => Wx::BitmapType::BITMAP_TYPE_PNG,
14
+ 'pnm' => Wx::BitmapType::BITMAP_TYPE_PNM,
15
+ 'ppm' => Wx::BitmapType::BITMAP_TYPE_PNM,
16
+ 'tga' => Wx::BitmapType::BITMAP_TYPE_TGA,
17
+ 'tif' => Wx::BitmapType::BITMAP_TYPE_TIF,
18
+ 'tiff' => Wx::BitmapType::BITMAP_TYPE_TIF,
19
+ 'xbm' => Wx::BitmapType::BITMAP_TYPE_XBM,
20
+ 'xpm' => Wx::BitmapType::BITMAP_TYPE_XPM
21
+ }
22
+
23
+ # Constructor copying data from an image
24
+ def self.from_image(img, depth = -1)
25
+ new(img, depth)
26
+ end
27
+
28
+ # Ruby methods that switch class are conventionally named to_foo
29
+ alias :to_image :convert_to_image
30
+
31
+ # Redefine the initialize method so it raises an exception if a
32
+ # non-existent file is given to the constructor; otherwise, wx Widgets
33
+ # just carries on with an empty bitmap, which may cause faults
34
+ # later. Also, be helpful and try to guess the bitmap type from the
35
+ # filename if it's not specified
36
+ wx_init = self.instance_method(:initialize)
37
+ define_method(:initialize) do | *args |
38
+ # If creating from a file, check it exists
39
+ if args[0].kind_of? String
40
+ if not File.exist?( File.expand_path(args[0]) )
41
+ Kernel.raise(ArgumentError, "Bitmap file does not exist: #{args[0]}")
42
+ end
43
+ # If type not specified, try to guess it from the file extension
44
+ if not args[1] and file_ext = args[0][/\w+$/]
45
+ args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
46
+ end
47
+ end
48
+ wx_init.bind(self).call(*args)
49
+ end
50
+
51
+ # Accepts a block, which will be passed a device context which can be
52
+ # used to draw upon the Bitmap
53
+ def draw
54
+ dc = Wx::MemoryDC.new
55
+ dc.select_object(self)
56
+ yield dc
57
+ dc.select_object( Wx::NULL_BITMAP )
58
+ end
59
+ end
@@ -0,0 +1,12 @@
1
+ # Emulates the wxWidgets BusyCursor class, by providing a scope within
2
+ # which a busy cursor will be shown
3
+ class Wx::BusyCursor
4
+ # Only one class method, optionally accepting a cursor that should be
5
+ # shown, defaulting to an hour glass cursor.
6
+ def self.busy(cursor = Wx::HOURGLASS_CURSOR)
7
+ Wx::begin_busy_cursor(cursor)
8
+ yield
9
+ ensure
10
+ Wx::end_busy_cursor
11
+ end
12
+ end
@@ -0,0 +1,4 @@
1
+ class Wx::Choice
2
+ alias :get_item_data :get_client_data
3
+ alias :set_item_data :set_client_data
4
+ end