wxruby3 0.9.0.pre.beta.8

Sign up to get free protection for your applications and to get access to all the features.
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,879 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Adapted for wxRuby3
4
+ # Copyright (c) M.J.N. Corino, The Netherlands
5
+ ###
6
+
7
+ require 'wx'
8
+
9
+ include Wx
10
+
11
+ DIALOGS_CHOOSE_COLOUR = 1
12
+ DIALOGS_CHOOSE_COLOUR_GENERIC = 2
13
+ DIALOGS_CHOOSE_FONT = 3
14
+ DIALOGS_CHOOSE_FONT_GENERIC = 4
15
+ DIALOGS_MESSAGE_BOX = 5
16
+ DIALOGS_SINGLE_CHOICE = 6
17
+ DIALOGS_MULTI_CHOICE = 7
18
+ DIALOGS_TEXT_ENTRY = 8
19
+ DIALOGS_PASSWORD_ENTRY = 9
20
+ DIALOGS_FILE_OPEN = 10
21
+ DIALOGS_FILE_OPEN2 = 11
22
+ DIALOGS_FILES_OPEN = 12
23
+ DIALOGS_FILE_SAVE = 13
24
+ DIALOGS_DIR_CHOOSE = 14
25
+ DIALOGS_GENERIC_DIR_CHOOSE = 15
26
+ DIALOGS_TIP = 16
27
+ DIALOGS_CUSTOM_TIP = 17
28
+ DIALOGS_NUM_ENTRY = 18
29
+ DIALOGS_LOG_DIALOG = 19
30
+ DIALOGS_MODAL = 20
31
+ DIALOGS_MODELESS = 21
32
+ DIALOGS_MODELESS_BTN = 22
33
+ DIALOGS_PROGRESS = 23
34
+ DIALOGS_BUSYINFO = 24
35
+ DIALOGS_STYLED_BUSYINFO = 25
36
+ DIALOGS_FIND = 26
37
+ DIALOGS_REPLACE = 27
38
+ DIALOGS_PREFS = 28
39
+
40
+ class MyTipProvider < TipProvider
41
+ TIPS = [
42
+ %Q{This is the first tip.},
43
+ %Q{This is the second tip.\nWhich even has a second line.},
44
+ %Q{This is the third tip.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.},
45
+ ]
46
+
47
+ def initialize(curtip)
48
+ super
49
+ end
50
+
51
+ def get_tip()
52
+ c = get_current_tip
53
+ if c >= 0 && c < TIPS.size
54
+ set_current_tip(c+1)
55
+ TIPS[c]
56
+ else
57
+ set_current_tip(1)
58
+ TIPS[0]
59
+ end
60
+ end
61
+ end
62
+
63
+ class MyModalDialog < Dialog
64
+ def initialize(parent)
65
+ super(parent, -1, "Modal dialog")
66
+
67
+ sizer_top = BoxSizer.new(HORIZONTAL)
68
+
69
+ @btn_focused = Button.new(self, -1, "Default button")
70
+ @btn_delete = Button.new(self, -1, "&Delete button")
71
+ btn_ok = Button.new(self, ID_CANCEL, "&Close")
72
+ sizer_top.add(@btn_focused, 0, ALIGN_CENTER | ALL, 5)
73
+ sizer_top.add(@btn_delete, 0, ALIGN_CENTER | ALL, 5)
74
+ sizer_top.add(btn_ok, 0, ALIGN_CENTER | ALL, 5)
75
+
76
+ set_auto_layout(true)
77
+ set_sizer(sizer_top)
78
+
79
+ sizer_top.set_size_hints(self)
80
+ sizer_top.fit(self)
81
+
82
+ @btn_focused.set_focus()
83
+ @btn_focused.set_default()
84
+
85
+ evt_button(-1) {|event| on_button(event) }
86
+ end
87
+
88
+ def on_button(event)
89
+ id = event.get_id
90
+
91
+ if id == @btn_delete.get_id
92
+ @btn_focused.destroy
93
+ @btn_focused = nil
94
+
95
+ @btn_delete.disable()
96
+ elsif @btn_focused && id == @btn_focused.get_id
97
+ get_text_from_user("Dummy prompt", "Modal dialog called from dialog",
98
+ "", self)
99
+ else
100
+ event.skip()
101
+ end
102
+ end
103
+ end
104
+
105
+
106
+ class MyModelessDialog < Dialog
107
+ def initialize(parent)
108
+ super(parent, -1, "Modeless dialog")
109
+
110
+ sizer_top = BoxSizer.new(VERTICAL)
111
+
112
+ btn = Button.new(self, DIALOGS_MODELESS_BTN, "Press me")
113
+ check = CheckBox.new(self, -1, "Should be disabled")
114
+ check.disable()
115
+
116
+ sizer_top.add(btn, 1, EXPAND | ALL, 5)
117
+ sizer_top.add(check, 1, EXPAND | ALL, 5)
118
+
119
+ set_auto_layout(true)
120
+ set_sizer(sizer_top)
121
+
122
+ sizer_top.set_size_hints(self)
123
+ sizer_top.fit(self)
124
+
125
+ evt_button(DIALOGS_MODELESS_BTN) {|event| on_button(event) }
126
+
127
+ evt_close() {|event| on_close(event) }
128
+
129
+ end
130
+
131
+ def on_button(event)
132
+ message_box("Button pressed in modeless dialog", "Info",
133
+ OK | ICON_INFORMATION, self)
134
+ end
135
+
136
+ def on_close(event)
137
+ if event.can_veto()
138
+ message_box("Use the menu item to close self dialog",
139
+ "Modeless dialog",
140
+ OK | ICON_INFORMATION, self)
141
+
142
+ event.veto()
143
+ end
144
+ end
145
+ end
146
+
147
+ # PropertySheetDialog is specialised for doing preferences dialogs; it
148
+ # contains a BookCtrl of some sort
149
+ class MyPrefsDialog < Wx::PropertySheetDialog
150
+ def initialize(parent)
151
+ # Using Book type other than Notebook needs two-step construction
152
+ super()
153
+ self.sheet_style = Wx::PROPSHEET_BUTTONTOOLBOOK
154
+ self.sheet_outer_border = 1
155
+ self.sheet_inner_border = 2
156
+ img_list = Wx::ImageList.new(32, 32)
157
+ img_list << std_bitmap(Wx::ART_NORMAL_FILE)
158
+ img_list << std_bitmap(Wx::ART_CDROM)
159
+ img_list << std_bitmap(Wx::ART_REPORT_VIEW)
160
+
161
+ create(parent, -1, "Preferences")
162
+ create_buttons(Wx::ID_OK|Wx::ID_CANCEL)
163
+ book_ctrl.image_list = img_list
164
+ book_ctrl.add_page(file_panel(book_ctrl), "File", false, 0)
165
+ book_ctrl.add_page(cdrom_panel(book_ctrl), "CD ROM", false, 1)
166
+
167
+ layout_dialog
168
+ end
169
+
170
+ # Gets one of the rather ugly standard bitmaps from ArtProvider
171
+ def std_bitmap(art_id)
172
+ Wx::ArtProvider.bitmap(art_id, Wx::ART_TOOLBAR, [32, 32])
173
+ end
174
+
175
+ def file_panel(book)
176
+ panel = Wx::Panel.new(book)
177
+ panel.sizer = Wx::VBoxSizer.new
178
+
179
+ cb1 = Wx::CheckBox.new(panel, :label => 'Show hidden files')
180
+ panel.sizer.add(cb1, 0, Wx::ALL, 5)
181
+
182
+ cb2 = Wx::CheckBox.new(panel, :label => 'Always show extensions')
183
+ panel.sizer.add(cb2, 0, Wx::ALL, 5)
184
+
185
+ cb3 = Wx::CheckBox.new(panel, :label => 'Show icons')
186
+ panel.sizer.add(cb3, 0, Wx::ALL, 5)
187
+
188
+ cb4 = Wx::CheckBox.new(panel, :label => 'Show owner')
189
+ panel.sizer.add(cb4, 0, Wx::ALL, 5)
190
+
191
+ st = Wx::StaticText.new(panel, :label => "Sort by:")
192
+ panel.sizer.add(st, 0, Wx::ALL, 5)
193
+
194
+ cb1 = Wx::Choice.new(panel, :choices => %w|Name Created Modified Size|)
195
+ panel.sizer.add(cb1, 0, Wx::ALL, 5)
196
+ panel
197
+ end
198
+
199
+ def cdrom_panel(book)
200
+ panel = Wx::Panel.new(book)
201
+ panel.sizer = Wx::VBoxSizer.new
202
+
203
+ choices = [ 'Show files', 'Play media', 'Run CD', 'Do nothing' ]
204
+ rb = Wx::RadioBox.new( panel,
205
+ :label => 'When opening CD',
206
+ :choices => choices,
207
+ :major_dimension => 1)
208
+ panel.sizer.add(rb, 0, Wx::GROW|Wx::ALL, 5)
209
+ panel
210
+ end
211
+ end
212
+
213
+ class MyCanvas < ScrolledWindow
214
+ def initialize(parent)
215
+ super(parent,-1,DEFAULT_POSITION,DEFAULT_SIZE, NO_FULL_REPAINT_ON_RESIZE)
216
+ evt_paint { |event| on_paint(event) }
217
+ end
218
+
219
+ def clear
220
+
221
+ end
222
+
223
+ def on_paint(event)
224
+ paint do |dc|
225
+ dc.set_text_foreground( get_app.canvas_text_colour )
226
+ dc.set_font( get_app.canvas_font )
227
+ dc.draw_text("Windows common dialogs test application", 10, 10)
228
+ end
229
+ end
230
+ end
231
+
232
+ class MyFrame < Frame
233
+ def initialize(parent,
234
+ title,
235
+ pos,
236
+ size)
237
+ super(parent, -1, title, pos, size)
238
+
239
+ @dialog = nil
240
+
241
+ @dlg_find = nil
242
+ @dlg_replace = nil
243
+
244
+ @find_data = FindReplaceData.new
245
+
246
+ @ext_def = ""
247
+ @index = -1
248
+ @index_2 = -1
249
+
250
+ @max = 10
251
+
252
+ create_status_bar()
253
+
254
+ evt_menu(DIALOGS_CHOOSE_COLOUR) {|event| on_choose_colour(event) }
255
+ evt_menu(DIALOGS_CHOOSE_FONT) {|event| on_choose_font(event) }
256
+ evt_menu(DIALOGS_LOG_DIALOG) {|event| on_log_dialog(event) }
257
+ evt_menu(DIALOGS_MESSAGE_BOX) {|event| on_message_box(event) }
258
+ evt_menu(DIALOGS_TEXT_ENTRY) {|event| on_text_entry(event) }
259
+ evt_menu(DIALOGS_PASSWORD_ENTRY) {|event| on_password_entry(event) }
260
+ evt_menu(DIALOGS_NUM_ENTRY) {|event| on_numeric_entry(event) }
261
+ evt_menu(DIALOGS_SINGLE_CHOICE) {|event| on_single_choice(event) }
262
+ evt_menu(DIALOGS_MULTI_CHOICE) {|event| on_multi_choice(event) }
263
+ evt_menu(DIALOGS_FILE_OPEN) {|event| on_file_open(event) }
264
+ evt_menu(DIALOGS_FILE_OPEN2) {|event| on_file_open2(event) }
265
+ evt_menu(DIALOGS_FILES_OPEN) {|event| on_files_open(event) }
266
+ evt_menu(DIALOGS_FILE_SAVE) {|event| on_file_save(event) }
267
+ evt_menu(DIALOGS_DIR_CHOOSE) {|event| on_dir_choose(event) }
268
+ evt_menu(DIALOGS_MODAL) {|event| on_modal_dlg(event) }
269
+ evt_menu(DIALOGS_MODELESS) {|event| on_modeless_dlg(event) }
270
+ evt_menu(DIALOGS_TIP) {|event| on_show_tip(event) }
271
+ evt_menu(DIALOGS_CUSTOM_TIP) {|event| on_show_custom_tip(event) }
272
+ evt_menu(DIALOGS_PROGRESS) {|event| on_show_progress(event) }
273
+ evt_menu(DIALOGS_BUSYINFO) {|event| on_show_busy_info(event) }
274
+ evt_menu(DIALOGS_STYLED_BUSYINFO) {|event| on_show_styled_busy_info(event) }
275
+ evt_menu(DIALOGS_PREFS) {|event| on_show_prefs(event) }
276
+ evt_menu(DIALOGS_FIND) {|event| on_show_find_dialog(event) }
277
+ evt_menu(DIALOGS_REPLACE) {|event| on_show_replace_dialog(event) }
278
+ evt_find(-1) {|event| on_find_dialog(event) }
279
+ evt_find_next(-1) {|event| on_find_dialog(event) }
280
+ evt_find_replace(-1) {|event| on_find_dialog(event) }
281
+ evt_find_replace_all(-1) {|event| on_find_dialog(event) }
282
+ evt_find_close(-1) {|event| on_find_dialog(event) }
283
+ evt_menu(ID_EXIT) {|event| on_exit(event) }
284
+
285
+ end
286
+
287
+ def on_choose_colour(event)
288
+
289
+ col = MyApp.canvas.get_background_colour()
290
+
291
+ data = ColourData.new
292
+ data.set_colour(col)
293
+ data.set_choose_full(true)
294
+ for i in 0 ... 16
295
+ colour = Colour.new(i*16, i*16, i*16)
296
+ data.set_custom_colour(i, colour)
297
+ end
298
+
299
+ Wx::ColourDialog(self, data) do |dialog|
300
+ dialog.set_title("Choose the background colour (not OS X)")
301
+ if dialog.show_modal() == ID_OK
302
+ retData = dialog.get_colour_data()
303
+ col = retData.get_colour()
304
+ MyApp.canvas.set_background_colour(col)
305
+ #$my_canvas.clear()
306
+ MyApp.canvas.refresh()
307
+ end
308
+ end
309
+ end
310
+
311
+
312
+ def on_choose_font(event)
313
+ data = FontData.new
314
+ data.set_initial_font(Wx::get_app.canvas_font)
315
+ data.set_colour(Wx::get_app.canvas_text_colour)
316
+
317
+ Wx::FontDialog(self, data) do |dialog|
318
+ if dialog.show_modal() == ID_OK
319
+ ret_data = dialog.get_font_data()
320
+ Wx::get_app.canvas_font = ret_data.get_chosen_font()
321
+ Wx::get_app.canvas_text_colour = ret_data.get_colour()
322
+ font = ret_data.get_chosen_font
323
+ msg = "Font = %s, %i pt" % [ font.get_face_name,
324
+ font.get_point_size ]
325
+ # Using functors is not mandatory but to prevent memory leaks
326
+ # you MUST destroy the dialog yourself than at some point
327
+ dialog2 = MessageDialog.new(self, msg, "Got font")
328
+ dialog2.show_modal
329
+ dialog2.destroy
330
+ end
331
+ #else: cancelled by the user, don't change the font
332
+ end
333
+ end
334
+
335
+
336
+ def on_log_dialog(event)
337
+
338
+ # calling yield() (as ~BusyCursor does) shouldn't result in messages
339
+ # being flushed -- test it
340
+
341
+ BusyCursor.busy() do
342
+
343
+ log_message("This is some message - everything is ok so far.")
344
+ log_message("Another message...\n... self one is on multiple lines")
345
+ log_warning("And then something went wrong!")
346
+
347
+ # and if ~BusyCursor doesn't do it, then call it manually
348
+ Wx::get_app.yield()
349
+
350
+ log_error("Intermediary error handler decided to abort.")
351
+ log_error("DEMO: The top level caller detected an unrecoverable error.")
352
+
353
+ Log::flush_active()
354
+
355
+ log_message("And this is the same dialog but with only one message.")
356
+ end
357
+ end
358
+
359
+ def on_message_box(event)
360
+
361
+ Wx::MessageDialog(nil, "This is a message box\nA long, long string to test out the message box properly",
362
+ "Message box text", NO_DEFAULT|YES_NO|CANCEL|ICON_INFORMATION) do |dialog|
363
+ case dialog.show_modal
364
+ when ID_YES
365
+ log_status("You pressed \"Yes\"")
366
+ when ID_NO
367
+ log_status("You pressed \"No\"")
368
+ when ID_CANCEL
369
+ log_status("You pressed \"Cancel\"")
370
+ else
371
+ log_error("Unexpected MessageDialog return code!")
372
+ end
373
+ end
374
+ end
375
+
376
+
377
+ def on_numeric_entry(event)
378
+
379
+ res = get_number_from_user( "This is some text, actually a lot of text.\n" +
380
+ "Even two rows of text.",
381
+ "Enter a number:", "Numeric input test",
382
+ 50, 0, 100, self )
383
+
384
+ if res == -1
385
+ msg = "Invalid number entered or dialog cancelled."
386
+ icon = ICON_HAND
387
+ else
388
+ msg = sprintf("You've entered %d", res )
389
+ icon = ICON_INFORMATION
390
+ end
391
+
392
+ message_box(msg, "Numeric test result", OK | icon, self)
393
+ end
394
+
395
+ def on_password_entry(event)
396
+
397
+ pwd = get_password_from_user("Enter password:",
398
+ "Password entry dialog",
399
+ "", self)
400
+ if pwd
401
+ message_box(sprintf("Your password is '%s'", pwd),
402
+ "Got password", OK | ICON_INFORMATION, self)
403
+ end
404
+ end
405
+
406
+
407
+ def on_text_entry(event)
408
+
409
+ Wx::TextEntryDialog(self,
410
+ "This is a small sample\n" +
411
+ "A long, long string to test out the text entrybox",
412
+ "Please enter a string",
413
+ "Default value",
414
+ OK | CANCEL) do |dialog|
415
+ if dialog.show_modal() == ID_OK
416
+ dialog2 = MessageDialog.new(self, dialog.get_value(), "Got string")
417
+ dialog2.show_modal
418
+ dialog2.destroy
419
+ end
420
+ end
421
+ end
422
+
423
+ def on_single_choice(event)
424
+
425
+ choices = %w[One Two Three Four Five]
426
+
427
+ Wx::SingleChoiceDialog(self,
428
+ "This is a small sample\n" +
429
+ "A single-choice convenience dialog",
430
+ "Please select a value",
431
+ choices, nil, OK | CANCEL) do |dialog|
432
+ dialog.set_selection(2)
433
+
434
+ if dialog.show_modal == ID_OK
435
+ Wx::MessageDialog(self, dialog.get_string_selection, "Got string")
436
+ end
437
+ end
438
+ end
439
+
440
+
441
+ def on_multi_choice(event)
442
+
443
+ choices = %w[One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve Seventeen]
444
+
445
+ Wx::MultiChoiceDialog(self,
446
+ "This is a small sample\n" +
447
+ "A multi-choice convenience dialog",
448
+ "Please select a value",
449
+ choices, OK | CANCEL) do |dialog|
450
+ if dialog.show_modal == ID_OK
451
+ selections = dialog.get_selections
452
+ if selections
453
+ msg = ("You selected %d items:\n" % selections.length) +
454
+ selections.length.times.collect { |n| "\t%d: %d (%s)\n" % [n, selections[n], choices[selections[n]]] }.join
455
+ log_message(msg)
456
+ end
457
+ end
458
+ end
459
+ end
460
+
461
+ def on_file_open(event)
462
+
463
+ Wx::FileDialog(self,
464
+ "Testing open file dialog",
465
+ "",
466
+ "",
467
+ "C++ files (*.h;*.cpp)|*.h;*.cpp"
468
+ ) do |dialog|
469
+ dialog.set_directory(get_home_dir)
470
+
471
+ if dialog.show_modal == ID_OK
472
+ info = sprintf("Full file name: %s\n" +
473
+ "Path: %s\n" +
474
+ "Name: %s",
475
+ dialog.get_path,
476
+ dialog.get_directory,
477
+ dialog.get_filename)
478
+ Wx::MessageDialog(self, info, "Selected file")
479
+ end
480
+ end
481
+ end
482
+
483
+
484
+ # this shows how to take advantage of specifying a default extension in the
485
+ # call to FileSelector: it is remembered after each new call and the next
486
+ # one will use it by default
487
+ def on_file_open2(event)
488
+
489
+ path = file_selector(
490
+ "Select the file to load",
491
+ "", "",
492
+ @ext_def,
493
+ "Waveform (*.wav)|*.wav|Plain text (*.txt)|*.txt|All files (*.*)|*.*",
494
+ FD_CHANGE_DIR,
495
+ self
496
+ )
497
+
498
+ if path == nil
499
+ return nil
500
+ end
501
+
502
+ # it is just a sample, would use SplitPath in real program
503
+ @ext_def = path[/[^\.]*$/]
504
+
505
+ log_message("You selected the file '%s', remembered extension '%s'",
506
+ path, @ext_def)
507
+ end
508
+
509
+
510
+ def on_files_open(event)
511
+ Wx::FileDialog(self, "Testing open multiple file dialog",
512
+ "", "", FILE_SELECTOR_DEFAULT_WILDCARD_STR,
513
+ FD_MULTIPLE) do |dialog|
514
+ if dialog.show_modal == ID_OK
515
+ paths = dialog.get_paths
516
+ filenames = dialog.get_filenames
517
+
518
+ count = paths.length
519
+ msg = count.times.collect { |n| "File %d: %s (%s)\n" % [n, paths[n], filenames[n]] }.join
520
+ Wx::MessageDialog(self, msg, "Selected files")
521
+ end
522
+ end
523
+ end
524
+
525
+
526
+ def on_file_save(event)
527
+ Wx::FileDialog(self,
528
+ "Testing save file dialog",
529
+ "",
530
+ "myletter.doc",
531
+ "Text files (*.txt)|*.txt|Document files (*.doc)|*.doc",
532
+ FD_SAVE | FD_OVERWRITE_PROMPT) do |dialog|
533
+ dialog.set_filter_index(1)
534
+
535
+ if dialog.show_modal == ID_OK
536
+
537
+ log_message("%s, filter %d",
538
+ dialog.get_path, dialog.get_filter_index)
539
+ end
540
+ end
541
+ end
542
+
543
+ def on_dir_choose(event)
544
+
545
+ # pass some initial dir to DirDialog
546
+ dir_home = get_home_dir()
547
+
548
+ Wx::DirDialog(self, "Testing directory picker", dir_home) do |dialog|
549
+ if dialog.show_modal == ID_OK
550
+ log_message("Selected path: %s", dialog.get_path)
551
+ end
552
+ end
553
+ end
554
+
555
+
556
+ def on_modal_dlg(event)
557
+ MyModalDialog(self)
558
+ end
559
+
560
+ def on_modeless_dlg(event)
561
+ show = get_menu_bar().is_checked(event.get_id())
562
+ if show
563
+ if !@dialog
564
+ @dialog = MyModelessDialog.new(self)
565
+ end
566
+ @dialog.show(true)
567
+ else # hide
568
+ @dialog.destroy
569
+ @dialog = nil
570
+ end
571
+ end
572
+
573
+ def on_show_tip(event)
574
+
575
+ if @index == -1
576
+ @index = rand(5)
577
+ end
578
+
579
+ tip_src = File.join( File.dirname(__FILE__), 'tips.txt')
580
+ tip_provider = create_file_tip_provider(tip_src, @index)
581
+
582
+ show_at_startup = show_tip(self, tip_provider)
583
+
584
+ if show_at_startup
585
+ message_box("Will show tips on startup", "Tips dialog",
586
+ OK | ICON_INFORMATION, self)
587
+ end
588
+
589
+ @index = tip_provider.get_current_tip()
590
+
591
+ end
592
+
593
+ def on_show_custom_tip(event)
594
+
595
+ if @index_2 == -1
596
+ @index_2 = rand(3)
597
+ end
598
+
599
+ tip_provider = MyTipProvider.new(@index_2)
600
+ show_at_startup = show_tip(self, tip_provider)
601
+
602
+ if show_at_startup
603
+ message_box("Will show tips on startup", "Tips dialog",
604
+ OK | ICON_INFORMATION, self)
605
+ end
606
+
607
+ @index_2 = tip_provider.get_current_tip()
608
+
609
+ end
610
+
611
+ def on_exit(event)
612
+ close(true)
613
+ end
614
+
615
+
616
+ def on_show_prefs(event)
617
+ MyPrefsDialog(self)
618
+ end
619
+
620
+ def on_show_progress(event)
621
+ cont = false
622
+ Wx::ProgressDialog("Progress dialog example",
623
+ "An informative message",
624
+ @max, # range
625
+ self, # parent
626
+ PD_CAN_ABORT | PD_APP_MODAL |
627
+ PD_ELAPSED_TIME | PD_ESTIMATED_TIME |
628
+ PD_REMAINING_TIME) do |dialog|
629
+ cont = true
630
+ (@max+1).times do |i|
631
+ if i == @max
632
+ cont = dialog.update(i, "That's all, folks!")
633
+ elsif i == @max / 2
634
+ cont = dialog.update(i, "Only half of it left (very long message)!")
635
+ else
636
+ cont = dialog.update(i)
637
+ end
638
+
639
+ if !cont
640
+ if message_box("Do you really want to cancel?",
641
+ "Progress dialog question", # caption
642
+ YES_NO | ICON_QUESTION) == YES
643
+ dialog.show(false)
644
+ break
645
+ end
646
+ dialog.resume
647
+ end
648
+ sleep(1)
649
+ end
650
+ end
651
+
652
+ if !cont
653
+ log_status("Progress dialog aborted!")
654
+ else
655
+ log_status("Countdown from %d finished", @max)
656
+ end
657
+ end
658
+
659
+ def on_show_busy_info(event)
660
+ result = nil
661
+ WindowDisabler.disable(self) do
662
+ result = BusyInfo.busy("Working, please wait...", self) do |bi|
663
+
664
+ for i in 0 ... 18
665
+ Wx::get_app.yield()
666
+ end
667
+ sleep(1)
668
+ bi.update_text('Working some more...')
669
+ for i in 0 ... 18
670
+ Wx::get_app.yield()
671
+ end
672
+ sleep(1)
673
+
674
+ 'Finished work!'
675
+ end
676
+ end
677
+ log_status(result)
678
+ end
679
+
680
+ def on_show_styled_busy_info(event)
681
+ result = nil
682
+ icon_file = File.join( File.dirname(__FILE__)+"/../art", "wxruby.png")
683
+ WindowDisabler.disable(self) do
684
+ bif = BusyInfoFlags.new.parent(self).icon(Wx::Icon.new(icon_file)).title("Busy window").text("Working, please wait...")
685
+ result = BusyInfo.busy(bif) do |bi|
686
+
687
+ for i in 0 ... 18
688
+ Wx::get_app.yield()
689
+ end
690
+ sleep(1)
691
+ bi.update_text('Working some more...')
692
+ for i in 0 ... 18
693
+ Wx::get_app.yield()
694
+ end
695
+ sleep(1)
696
+
697
+ 'Finished work!'
698
+ end
699
+ end
700
+ log_status(result)
701
+ end
702
+
703
+ def on_show_replace_dialog(event)
704
+
705
+ if @dlg_replace
706
+ @dlg_replace.destroy
707
+ @dlg_replace = nil
708
+ else
709
+ @dlg_replace = FindReplaceDialog.new(
710
+ self,
711
+ @find_data,
712
+ "Find and replace dialog",
713
+ FR_REPLACEDIALOG
714
+ )
715
+
716
+ @dlg_replace.show(true)
717
+ end
718
+ end
719
+
720
+ def on_show_find_dialog(event)
721
+
722
+ if @dlg_find
723
+ @dlg_find.destroy
724
+ @dlg_find = nil
725
+ else
726
+ @dlg_find = FindReplaceDialog.new(
727
+ self,
728
+ @find_data,
729
+ "Find dialog", # just for testing
730
+ FR_NOWHOLEWORD
731
+ )
732
+
733
+ @dlg_find.show(true)
734
+ end
735
+ end
736
+
737
+ def decode_find_dialog_event_flags(flags)
738
+ str = ""
739
+ str << ((flags & FR_DOWN) != 0 ? "down" : "up") << ", " \
740
+ << ((flags & FR_WHOLEWORD) != 0 ? "whole words only, " : "") \
741
+ << ((flags & FR_MATCHCASE) != 0 ? "" : "not ") \
742
+ << "case sensitive"
743
+
744
+ return str
745
+ end
746
+
747
+ def on_find_dialog(event)
748
+
749
+ type = event.get_event_type()
750
+
751
+ if type == EVT_FIND || type == EVT_FIND_NEXT
752
+ log_message("Find %s'%s' (flags: %s)",
753
+ type == EVT_FIND_NEXT ? "next " : "",
754
+ event.get_find_string(),
755
+ decode_find_dialog_event_flags(event.get_flags()))
756
+ elsif type == EVT_FIND_REPLACE || type == EVT_FIND_REPLACE_ALL
757
+ log_message("Replace %s'%s' with '%s' (flags: %s)",
758
+ type == EVT_FIND_REPLACE_ALL ? "all " : "",
759
+ event.get_find_string(),
760
+ event.get_replace_string(),
761
+ decode_find_dialog_event_flags(event.get_flags()))
762
+ elsif type == EVT_FIND_CLOSE
763
+ dlg = event.get_dialog()
764
+ if dlg == @dlg_find
765
+ txt = "Find"
766
+ id_menu = DIALOGS_FIND
767
+ @dlg_find = nil
768
+ elsif dlg == @dlg_replace
769
+ txt = "Replace"
770
+ id_menu = DIALOGS_REPLACE
771
+ @dlg_replace = nil
772
+ else
773
+ txt = "Unknown"
774
+ id_menu = -1
775
+ log_error("unexpected event")
776
+ end
777
+
778
+ log_message("%s dialog is being closed.", txt)
779
+
780
+ if id_menu != -1
781
+ get_menu_bar().check(id_menu, false)
782
+ end
783
+
784
+ dlg.destroy()
785
+ else
786
+ log_error("Unknown find dialog event!")
787
+ end
788
+ end
789
+
790
+ end
791
+
792
+
793
+ class MyApp < App
794
+
795
+ class << self
796
+ attr_accessor :canvas
797
+ end
798
+
799
+ attr_accessor :canvas_text_colour, :canvas_font
800
+
801
+ def on_init
802
+ self.canvas_text_colour = Wx::Colour.new("BLACK")
803
+ self.canvas_font = Wx::NORMAL_FONT
804
+ # Create the main frame window
805
+ frame = MyFrame.new(nil, "Windows dialogs example",
806
+ Point.new(20, 20), Size.new(400, 300))
807
+ gc_stress
808
+ # Make a menubar
809
+ file_menu = Menu.new
810
+
811
+ file_menu.append(DIALOGS_CHOOSE_COLOUR, "&Choose colour")
812
+ file_menu.append_separator()
813
+ file_menu.append(DIALOGS_CHOOSE_FONT, "Choose &font")
814
+ file_menu.append_separator()
815
+ file_menu.append(DIALOGS_LOG_DIALOG, "&Log dialog\tCtrl-L")
816
+ file_menu.append(DIALOGS_MESSAGE_BOX, "&Message box\tCtrl-M")
817
+ file_menu.append(DIALOGS_TEXT_ENTRY, "Text &entry\tCtrl-E")
818
+ file_menu.append(DIALOGS_PASSWORD_ENTRY, "&Password entry\tCtrl-P")
819
+ file_menu.append(DIALOGS_NUM_ENTRY, "&Numeric entry\tCtrl-N")
820
+ file_menu.append(DIALOGS_SINGLE_CHOICE, "&Single choice\tCtrl-C")
821
+ file_menu.append(DIALOGS_MULTI_CHOICE, "M&ultiple choice\tCtrl-U")
822
+ file_menu.append_separator()
823
+ file_menu.append(DIALOGS_TIP, "&Tip of the day\tCtrl-T")
824
+ file_menu.append(DIALOGS_CUSTOM_TIP, "Custom tip of the day")
825
+ file_menu.append_separator()
826
+ file_menu.append(DIALOGS_FILE_OPEN, "&Open file\tCtrl-O")
827
+ file_menu.append(DIALOGS_FILE_OPEN2, "&Second open file\tCtrl-2")
828
+ file_menu.append(DIALOGS_FILES_OPEN, "Open &files\tShift-Ctrl-O")
829
+ file_menu.append(DIALOGS_FILE_SAVE, "Sa&ve file\tCtrl-S")
830
+ file_menu.append(DIALOGS_DIR_CHOOSE, "Choose a &directory\tCtrl-D")
831
+ file_menu.append(DIALOGS_PROGRESS, "Pro&gress dialog\tCtrl-G")
832
+ file_menu.append(DIALOGS_BUSYINFO, "&Busy info dialog\tCtrl-B")
833
+ file_menu.append(DIALOGS_STYLED_BUSYINFO, "Styled BusyInfo dialog")
834
+ file_menu.append(DIALOGS_PREFS, "Propert&y sheet dialog\tCtrl-Y")
835
+ file_menu.append(DIALOGS_FIND, "&Find dialog\tCtrl-F", "", ITEM_CHECK)
836
+ file_menu.append(DIALOGS_REPLACE, "Find and &replace dialog\tShift-Ctrl-F", "", ITEM_CHECK)
837
+
838
+ file_menu.append_separator()
839
+ file_menu.append(DIALOGS_MODAL, "Mo&dal dialog\tCtrl-W")
840
+ file_menu.append(DIALOGS_MODELESS, "Modeless &dialog\tCtrl-Z", "", ITEM_CHECK)
841
+ file_menu.append_separator()
842
+ file_menu.append(ID_EXIT, "E&xit\tAlt-X")
843
+ menu_bar = MenuBar.new
844
+ menu_bar.append(file_menu, "&File")
845
+ frame.set_menu_bar(menu_bar)
846
+
847
+ MyApp.canvas = MyCanvas.new(frame)
848
+ MyApp.canvas.set_background_colour(WHITE)
849
+
850
+ frame.centre(BOTH)
851
+
852
+ # Show the frame
853
+ frame.show
854
+ end
855
+
856
+ def on_exit
857
+ MyApp.canvas = nil
858
+ end
859
+ end
860
+
861
+ module DialogsSample
862
+
863
+ include WxRuby::Sample if defined? WxRuby::Sample
864
+
865
+ def self.describe
866
+ { file: __FILE__,
867
+ summary: 'wxRuby dialogs example.',
868
+ description: 'wxRuby example demonstrating various common dialogs.' }
869
+ end
870
+
871
+ def self.run
872
+ execute(__FILE__)
873
+ end
874
+
875
+ if $0 == __FILE__
876
+ MyApp.run
877
+ end
878
+
879
+ end