wxruby3 0.9.1 → 0.9.3

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 (472) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/INSTALL.md +35 -29
  4. data/README.md +24 -15
  5. data/ext/wxruby3/include/wxRubyApp.h +338 -0
  6. data/ext/wxruby3/include/wxruby-ClientData.h +48 -0
  7. data/ext/wxruby3/include/wxruby-Config.h +6 -6
  8. data/ext/wxruby3/include/wxruby-Validator.h +39 -0
  9. data/ext/wxruby3/include/wxruby-ValidatorBinding.h +64 -0
  10. data/ext/wxruby3/swig/common.i +1 -1
  11. data/ext/wxruby3/swig/custom/director.swg +8 -0
  12. data/ext/wxruby3/swig/mark_free_impl.i +0 -33
  13. data/lib/wx/aui/aui_tab_ctrl.rb +18 -0
  14. data/lib/wx/aui/auinotebook.rb +6 -2
  15. data/lib/wx/aui/require.rb +1 -0
  16. data/lib/wx/core/app.rb +2 -2
  17. data/lib/wx/core/bitmap_combobox.rb +17 -21
  18. data/lib/wx/core/collapsible_pane.rb +1 -1
  19. data/lib/wx/core/combobox.rb +13 -3
  20. data/lib/wx/core/controlwithitems.rb +40 -128
  21. data/lib/wx/core/enum.rb +17 -1
  22. data/lib/wx/core/event.rb +6 -1
  23. data/lib/wx/core/evthandler.rb +8 -2
  24. data/lib/wx/core/generic_validator.rb +312 -0
  25. data/lib/wx/core/listbox.rb +2 -2
  26. data/lib/wx/core/log.rb +1 -1
  27. data/lib/wx/core/menu.rb +10 -0
  28. data/lib/wx/core/notebook.rb +6 -2
  29. data/lib/wx/core/owner_drawn_combobox.rb +45 -0
  30. data/lib/wx/core/size.rb +4 -0
  31. data/lib/wx/core/sizer.rb +12 -2
  32. data/lib/wx/core/standard_paths.rb +22 -0
  33. data/lib/wx/core/task_bar_button.rb +19 -0
  34. data/lib/wx/core/text_entry.rb +4 -1
  35. data/lib/wx/core/textctrl.rb +11 -1
  36. data/lib/wx/core/{treectrl.rb → tree_ctrl.rb} +31 -12
  37. data/lib/wx/core/validator.rb +70 -5
  38. data/lib/wx/core/window.rb +13 -7
  39. data/lib/wx/doc/app.rb +48 -38
  40. data/lib/wx/doc/art_locator.rb +48 -43
  41. data/lib/wx/doc/aui/auimanager.rb +16 -8
  42. data/lib/wx/doc/aui/auinotebook.rb +20 -5
  43. data/lib/wx/doc/clipboard.rb +11 -7
  44. data/lib/wx/doc/colour_dialog.rb +14 -10
  45. data/lib/wx/doc/comboctrl.rb +18 -0
  46. data/lib/wx/doc/controlwithitems.rb +34 -8
  47. data/lib/wx/doc/data_object.rb +2 -2
  48. data/lib/wx/doc/date_picker_ctrl.rb +23 -0
  49. data/lib/wx/doc/editable_listbox.rb +44 -0
  50. data/lib/wx/doc/enum.rb +15 -0
  51. data/lib/wx/doc/event.rb +12 -0
  52. data/lib/wx/doc/evthandler.rb +113 -108
  53. data/lib/wx/doc/extra/12_client_data.md +89 -0
  54. data/lib/wx/doc/extra/13_validators.md +139 -0
  55. data/lib/wx/doc/font.rb +1 -0
  56. data/lib/wx/doc/gc_dc.rb +6 -1
  57. data/lib/wx/doc/gdi_common.rb +4 -0
  58. data/lib/wx/doc/generic_validator.rb +95 -0
  59. data/lib/wx/doc/graphics_context.rb +1 -0
  60. data/lib/wx/doc/grid/grid.rb +22 -1
  61. data/lib/wx/doc/help_controller.rb +11 -7
  62. data/lib/wx/doc/html/html_help_controller.rb +12 -4
  63. data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
  64. data/lib/wx/doc/list_ctrl.rb +33 -29
  65. data/lib/wx/doc/menu.rb +20 -0
  66. data/lib/wx/doc/notebook.rb +21 -0
  67. data/lib/wx/doc/num_validator.rb +387 -0
  68. data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
  69. data/lib/wx/doc/pg/events.rb +13 -9
  70. data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
  71. data/lib/wx/doc/pg/pg_property.rb +18 -0
  72. data/lib/wx/doc/progress_dialog.rb +36 -32
  73. data/lib/wx/doc/prt/page_setup_dialog.rb +20 -12
  74. data/lib/wx/doc/prt/print_data.rb +13 -5
  75. data/lib/wx/doc/prt/print_dialog.rb +31 -23
  76. data/lib/wx/doc/prt/printer.rb +20 -12
  77. data/lib/wx/doc/radio_box.rb +19 -15
  78. data/lib/wx/doc/rbn/ribbon_bar.rb +13 -5
  79. data/lib/wx/doc/rbn/ribbon_button_bar.rb +13 -5
  80. data/lib/wx/doc/rbn/ribbon_gallery.rb +13 -5
  81. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +13 -5
  82. data/lib/wx/doc/region_iterator.rb +32 -28
  83. data/lib/wx/doc/rtc/rich_text_composite_object.rb +24 -0
  84. data/lib/wx/doc/rtc/rich_text_ctrl.rb +24 -0
  85. data/lib/wx/doc/rtc/rich_text_paragraph.rb +24 -0
  86. data/lib/wx/doc/rtc/richtext_buffer.rb +27 -19
  87. data/lib/wx/doc/rtc/richtext_printing.rb +17 -9
  88. data/lib/wx/doc/rtc/richtext_style_sheet.rb +17 -9
  89. data/lib/wx/doc/sizer.rb +20 -0
  90. data/lib/wx/doc/static_bitmap.rb +25 -0
  91. data/lib/wx/doc/stc/styled_text_ctrl.rb +24 -0
  92. data/lib/wx/doc/stream.rb +39 -35
  93. data/lib/wx/doc/system_settings.rb +30 -26
  94. data/lib/wx/doc/text_validator.rb +23 -9
  95. data/lib/wx/doc/textctrl.rb +16 -0
  96. data/lib/wx/doc/tree_ctrl.rb +95 -0
  97. data/lib/wx/doc/treebook.rb +9 -5
  98. data/lib/wx/doc/v_list_box.rb +9 -5
  99. data/lib/wx/doc/validator.rb +113 -0
  100. data/lib/wx/doc/variant.rb +164 -160
  101. data/lib/wx/doc/window.rb +87 -47
  102. data/lib/wx/doc/window_disabler.rb +10 -6
  103. data/lib/wx/grid/grid.rb +27 -4
  104. data/lib/wx/html/simple_html_listbox.rb +24 -91
  105. data/lib/wx/keyword_defs.rb +34 -2
  106. data/lib/wx/pg/pg_property.rb +22 -0
  107. data/lib/wx/rbn/ribbon_gallery.rb +0 -21
  108. data/lib/wx/rtc/require.rb +3 -0
  109. data/lib/wx/rtc/rich_text_composite_object.rb +25 -0
  110. data/lib/wx/rtc/rich_text_ctrl.rb +25 -0
  111. data/lib/wx/rtc/rich_text_paragraph.rb +25 -0
  112. data/lib/wx/stc/require.rb +1 -0
  113. data/lib/wx/stc/styled_text_ctrl.rb +25 -0
  114. data/lib/wx/version.rb +1 -1
  115. data/rakelib/lib/config/linux.rb +0 -3
  116. data/rakelib/lib/config/macosx.rb +2 -2
  117. data/rakelib/lib/config/mingw.rb +13 -1
  118. data/rakelib/lib/config/unixish.rb +1 -1
  119. data/rakelib/lib/config.rb +14 -4
  120. data/rakelib/lib/core/include/client_data.inc +65 -0
  121. data/rakelib/lib/core/include/funcall.inc +1 -1
  122. data/rakelib/lib/core/package.rb +31 -9
  123. data/rakelib/lib/core/parameter.rb +1 -1
  124. data/rakelib/lib/core/spec.rb +6 -1
  125. data/rakelib/lib/core/spec_helper.rb +7 -1
  126. data/rakelib/lib/director/accelerator.rb +2 -3
  127. data/rakelib/lib/director/accessible.rb +47 -0
  128. data/rakelib/lib/director/app.rb +30 -319
  129. data/rakelib/lib/director/app_traits.rb +13 -13
  130. data/rakelib/lib/director/bitmap_combobox.rb +2 -2
  131. data/rakelib/lib/director/combobox.rb +22 -0
  132. data/rakelib/lib/director/comboctrl.rb +1 -55
  133. data/rakelib/lib/director/ctrl_with_items.rb +105 -26
  134. data/rakelib/lib/director/data_format.rb +1 -1
  135. data/rakelib/lib/director/date_picker_ctrl.rb +8 -6
  136. data/rakelib/lib/director/derived_dc.rb +1 -1
  137. data/rakelib/lib/director/dialog.rb +1 -0
  138. data/rakelib/lib/director/drag_image.rb +2 -3
  139. data/rakelib/lib/director/editable_listbox.rb +30 -0
  140. data/rakelib/lib/director/event.rb +104 -14
  141. data/rakelib/lib/director/event_handler.rb +3 -2
  142. data/rakelib/lib/director/frame.rb +1 -3
  143. data/rakelib/lib/director/functions.rb +4 -2
  144. data/rakelib/lib/director/gdicommon.rb +8 -10
  145. data/rakelib/lib/director/generic_dirctrl.rb +17 -0
  146. data/rakelib/lib/director/graphics_context.rb +2 -4
  147. data/rakelib/lib/director/grid_cell_attr.rb +0 -2
  148. data/rakelib/lib/director/grid_cell_editor.rb +0 -2
  149. data/rakelib/lib/director/grid_cell_renderer.rb +0 -2
  150. data/rakelib/lib/director/grid_ctrl.rb +34 -3
  151. data/rakelib/lib/director/header_ctrl.rb +6 -1
  152. data/rakelib/lib/director/html_listbox.rb +96 -22
  153. data/rakelib/lib/director/icon.rb +5 -2
  154. data/rakelib/lib/director/list_ctrl.rb +5 -6
  155. data/rakelib/lib/director/locale.rb +1 -3
  156. data/rakelib/lib/director/log.rb +1 -4
  157. data/rakelib/lib/director/media_ctrl.rb +54 -0
  158. data/rakelib/lib/director/menu.rb +16 -1
  159. data/rakelib/lib/director/menu_item.rb +2 -2
  160. data/rakelib/lib/director/num_validator.rb +495 -0
  161. data/rakelib/lib/director/numeric_property_validator.rb +131 -6
  162. data/rakelib/lib/director/owner_drawn_combobox.rb +192 -0
  163. data/rakelib/lib/director/pgproperties.rb +1 -1
  164. data/rakelib/lib/director/pgproperty.rb +27 -30
  165. data/rakelib/lib/director/property_grid_interface.rb +5 -10
  166. data/rakelib/lib/director/ribbon_button_bar.rb +3 -3
  167. data/rakelib/lib/director/ribbon_gallery.rb +3 -5
  168. data/rakelib/lib/director/richtext_composite_object.rb +25 -0
  169. data/rakelib/lib/director/richtext_ctrl.rb +14 -4
  170. data/rakelib/lib/director/richtext_formatting_dialog.rb +7 -5
  171. data/rakelib/lib/director/richtext_paragraph_layout_box.rb +9 -7
  172. data/rakelib/lib/director/sizer.rb +30 -4
  173. data/rakelib/lib/director/sizer_item.rb +13 -0
  174. data/rakelib/lib/director/static_bitmap.rb +28 -0
  175. data/rakelib/lib/director/static_box.rb +4 -5
  176. data/rakelib/lib/director/styled_text_ctrl.rb +12 -0
  177. data/rakelib/lib/director/task_bar_button.rb +30 -0
  178. data/rakelib/lib/director/task_bar_icon.rb +5 -13
  179. data/rakelib/lib/director/text_entry.rb +4 -0
  180. data/rakelib/lib/director/text_validator.rb +124 -13
  181. data/rakelib/lib/director/textctrl.rb +12 -1
  182. data/rakelib/lib/director/toggle_button.rb +1 -0
  183. data/rakelib/lib/director/tool_tip.rb +1 -1
  184. data/rakelib/lib/director/top_level_window.rb +4 -7
  185. data/rakelib/lib/director/tree_ctrl.rb +40 -6
  186. data/rakelib/lib/director/utils.rb +16 -2
  187. data/rakelib/lib/director/validator.rb +196 -21
  188. data/rakelib/lib/director/variant.rb +1 -1
  189. data/rakelib/lib/director/window.rb +40 -7
  190. data/rakelib/lib/director.rb +4 -4
  191. data/rakelib/lib/extractor/function.rb +8 -7
  192. data/rakelib/lib/extractor.rb +34 -5
  193. data/rakelib/lib/generate/analyzer.rb +9 -4
  194. data/rakelib/lib/generate/doc/busy_info.yaml +0 -2
  195. data/rakelib/lib/generate/doc/clipboard.yaml +0 -2
  196. data/rakelib/lib/generate/doc/cursor.yaml +0 -2
  197. data/rakelib/lib/generate/doc/panel.yaml +7 -0
  198. data/rakelib/lib/generate/doc.rb +85 -17
  199. data/rakelib/lib/specs/interfaces.rb +163 -160
  200. data/rakelib/lib/swig_runner.rb +55 -9
  201. data/rakelib/lib/typemap/client_data.rb +67 -0
  202. data/rakelib/lib/typemap/common.rb +33 -4
  203. data/rakelib/lib/typemap/datetime.rb +1 -1
  204. data/rakelib/lib/typemap/tree_itemid.rb +2 -2
  205. data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +74 -2
  206. data/rakelib/yard/templates/default/fulldoc/html/full_list.erb +38 -0
  207. data/rakelib/yard/templates/default/fulldoc/html/setup.rb +39 -0
  208. data/rakelib/yard/templates/default/tags/html/wxrb_require.erb +10 -0
  209. data/rakelib/yard/templates/default/tags/setup.rb +16 -0
  210. data/rakelib/yard/yard-custom-templates.rb +3 -0
  211. data/samples/aui/aui.rb +1237 -1233
  212. data/samples/calendar/calendar.rb +293 -289
  213. data/samples/controls/get_item_sample.rb +83 -79
  214. data/samples/controls/htlbox.rb +331 -327
  215. data/samples/dialogs/dialogs.rb +682 -694
  216. data/samples/dialogs/wizard.rb +52 -55
  217. data/samples/dragdrop/dragdrop.rb +146 -142
  218. data/samples/drawing/bitmap.rb +29 -26
  219. data/samples/drawing/bitmap_image.rb +84 -80
  220. data/samples/drawing/graphics_drawing.rb +209 -205
  221. data/samples/drawing/image_prt.rb +344 -340
  222. data/samples/drawing/maths_images.rb +18 -1
  223. data/samples/drawing/rmagic_bitmap_image.rb +88 -84
  224. data/samples/etc/caret.rb +306 -0
  225. data/samples/etc/miniframe.rb +65 -60
  226. data/samples/etc/sash.rb +109 -105
  227. data/samples/etc/scrollwin.rb +86 -80
  228. data/samples/etc/system_settings.rb +216 -209
  229. data/samples/event/activation.rb +72 -67
  230. data/samples/event/event.rb +160 -153
  231. data/samples/event/threaded.rb +8 -1
  232. data/samples/event/update_ui_event.rb +67 -60
  233. data/samples/grid/grid.rb +188 -181
  234. data/samples/grid/gridtablebase.rb +136 -129
  235. data/samples/html/html.rb +208 -204
  236. data/samples/mdi/mdi.rb +59 -54
  237. data/samples/minimal/minimal.rb +54 -51
  238. data/samples/minimal/nothing.rb +1 -0
  239. data/samples/printing/printing.rb +367 -377
  240. data/samples/printing/printing2.rb +203 -198
  241. data/samples/propgrid/propgrid.rb +2312 -2308
  242. data/samples/propgrid/propgrid_minimal.rb +57 -50
  243. data/samples/ribbon/ribbon.rb +780 -774
  244. data/samples/sampler/ext.rb +0 -33
  245. data/samples/sampler/sample.rb +4 -9
  246. data/samples/sampler.rb +1 -1
  247. data/samples/splash/splash.rb +118 -116
  248. data/samples/text/rich_textctrl.rb +207 -201
  249. data/samples/text/richtext.rb +1409 -1405
  250. data/samples/text/scintilla.rb +137 -128
  251. data/samples/text/textctrl.rb +89 -83
  252. data/samples/text/unicode.rb +175 -168
  253. data/samples/treectrl/treectrl.rb +1430 -1426
  254. data/samples/widgets/activityindicator.rb +95 -0
  255. data/samples/widgets/art/widgets/activityindicator.xpm +278 -0
  256. data/samples/widgets/art/widgets/bmpbtn.xpm +37 -0
  257. data/samples/widgets/art/widgets/bmpcombobox.xpm +54 -0
  258. data/samples/widgets/art/widgets/button.xpm +54 -0
  259. data/samples/widgets/art/widgets/checkbox.xpm +54 -0
  260. data/samples/{bigdemo/icons → widgets/art/widgets}/choice.xpm +1 -1
  261. data/samples/widgets/art/widgets/choicebk.xpm +54 -0
  262. data/samples/widgets/art/widgets/clrpicker.xpm +193 -0
  263. data/samples/widgets/art/widgets/combobox.xpm +54 -0
  264. data/samples/widgets/art/widgets/datepick.xpm +200 -0
  265. data/samples/widgets/art/widgets/dirctrl.xpm +54 -0
  266. data/samples/widgets/art/widgets/dirpicker.xpm +213 -0
  267. data/samples/widgets/art/widgets/filepicker.xpm +214 -0
  268. data/samples/widgets/art/widgets/fontpicker.xpm +185 -0
  269. data/samples/widgets/art/widgets/gauge.xpm +54 -0
  270. data/samples/widgets/art/widgets/header.xpm +54 -0
  271. data/samples/widgets/art/widgets/hyperlnk.xpm +54 -0
  272. data/samples/widgets/art/widgets/listbook.xpm +54 -0
  273. data/samples/widgets/art/widgets/listbox.xpm +54 -0
  274. data/samples/widgets/art/widgets/native.xpm +81 -0
  275. data/samples/widgets/art/widgets/notebook.xpm +54 -0
  276. data/samples/widgets/art/widgets/odcombobox.xpm +54 -0
  277. data/samples/widgets/art/widgets/radiobox.xpm +54 -0
  278. data/samples/widgets/art/widgets/scrolbar.xpm +54 -0
  279. data/samples/widgets/art/widgets/slider.xpm +54 -0
  280. data/samples/widgets/art/widgets/spinbtn.xpm +40 -0
  281. data/samples/widgets/art/widgets/statbmp.xpm +40 -0
  282. data/samples/widgets/art/widgets/statbox.xpm +54 -0
  283. data/samples/widgets/art/widgets/stattext.xpm +54 -0
  284. data/samples/widgets/art/widgets/text.xpm +54 -0
  285. data/samples/widgets/art/widgets/timepick.xpm +207 -0
  286. data/samples/widgets/art/widgets/toggle.xpm +54 -0
  287. data/samples/widgets/art/widgets/toucan.png +0 -0
  288. data/samples/widgets/bmpcombobox.rb +651 -0
  289. data/samples/widgets/button.rb +462 -0
  290. data/samples/widgets/checkbox.rb +211 -0
  291. data/samples/widgets/choice.rb +287 -0
  292. data/samples/widgets/clrpicker.rb +156 -0
  293. data/samples/widgets/combobox.rb +516 -0
  294. data/samples/widgets/datepick.rb +215 -0
  295. data/samples/widgets/dirctrl.rb +265 -0
  296. data/samples/widgets/dirpicker.rb +158 -0
  297. data/samples/widgets/editlbox.rb +122 -0
  298. data/samples/widgets/filectrl.rb +216 -0
  299. data/samples/widgets/filepicker.rb +214 -0
  300. data/samples/widgets/fontpicker.rb +135 -0
  301. data/samples/widgets/gauge.rb +311 -0
  302. data/samples/widgets/headerctrl.rb +236 -0
  303. data/samples/widgets/hyperlink.rb +203 -0
  304. data/samples/widgets/itemcontainer.rb +185 -0
  305. data/samples/widgets/listbox.rb +473 -0
  306. data/samples/widgets/notebook.rb +488 -0
  307. data/samples/widgets/odcombobox.rb +608 -0
  308. data/samples/widgets/radiobox.rb +328 -0
  309. data/samples/widgets/searchctrl.rb +159 -0
  310. data/samples/widgets/slider.rb +594 -0
  311. data/samples/widgets/spinbtn.rb +443 -0
  312. data/samples/widgets/statbmp.rb +130 -0
  313. data/samples/widgets/static.rb +436 -0
  314. data/samples/widgets/textctrl.rb +700 -0
  315. data/samples/widgets/timepick.rb +148 -0
  316. data/samples/widgets/tn_widgets.png +0 -0
  317. data/samples/widgets/toggle.rb +385 -0
  318. data/samples/widgets/widgets.rb +1233 -0
  319. data/samples/xrc/custom_xrc_sample.rb +47 -41
  320. data/samples/xrc/xrc_sample.rb +53 -47
  321. data/tests/media/beep_lo.wav +0 -0
  322. data/tests/test_event_handling.rb +52 -34
  323. data/tests/test_events.rb +7 -0
  324. data/tests/test_item_data.rb +24 -0
  325. data/tests/test_list_ctrl.rb +1 -1
  326. data/tests/test_media_ctrl.rb +38 -0
  327. data/tests/test_menu.rb +69 -0
  328. data/tests/test_pg.rb +27 -0
  329. data/tests/test_richtext.rb +45 -0
  330. data/tests/test_sizer.rb +59 -0
  331. data/tests/test_std_controls.rb +42 -1
  332. data/tests/test_styled_text_ctrl.rb +46 -0
  333. data/tests/test_tree_ctrl.rb +138 -0
  334. data/tests/test_validators.rb +805 -0
  335. data/tests/test_window.rb +12 -0
  336. data/tests/testapp_noframe.rb +1 -1
  337. metadata +121 -139
  338. data/lib/wx/core/choice.rb +0 -14
  339. data/lib/wx/core/combo_ctrl.rb +0 -110
  340. data/rakelib/lib/typemap/grid_client_data.rb +0 -58
  341. data/samples/bigdemo/About.rbw +0 -39
  342. data/samples/bigdemo/ColorPanel.rbw +0 -23
  343. data/samples/bigdemo/GridSimple.rbw +0 -78
  344. data/samples/bigdemo/MDIDemo.rbw +0 -57
  345. data/samples/bigdemo/PopupMenu.rbw +0 -146
  346. data/samples/bigdemo/ShapedWindow.rbw +0 -128
  347. data/samples/bigdemo/Sizers.rbw +0 -541
  348. data/samples/bigdemo/bigdemo.rb +0 -817
  349. data/samples/bigdemo/demoTemplate.rbw +0 -33
  350. data/samples/bigdemo/helpfile.htb +0 -0
  351. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  352. data/samples/bigdemo/icons/Test 015.png +0 -0
  353. data/samples/bigdemo/icons/choice.bmp +0 -0
  354. data/samples/bigdemo/icons/combo.bmp +0 -0
  355. data/samples/bigdemo/icons/combo.xpm +0 -27
  356. data/samples/bigdemo/icons/copy.xpm +0 -25
  357. data/samples/bigdemo/icons/cut.xpm +0 -24
  358. data/samples/bigdemo/icons/gauge.bmp +0 -0
  359. data/samples/bigdemo/icons/gauge.xpm +0 -27
  360. data/samples/bigdemo/icons/help.xpm +0 -25
  361. data/samples/bigdemo/icons/list.bmp +0 -0
  362. data/samples/bigdemo/icons/list.xpm +0 -27
  363. data/samples/bigdemo/icons/mondrian.ico +0 -0
  364. data/samples/bigdemo/icons/mondrian.xpm +0 -44
  365. data/samples/bigdemo/icons/new.xpm +0 -24
  366. data/samples/bigdemo/icons/ogl.ico +0 -0
  367. data/samples/bigdemo/icons/ogl.xpm +0 -45
  368. data/samples/bigdemo/icons/open.xpm +0 -26
  369. data/samples/bigdemo/icons/paste.bmp +0 -0
  370. data/samples/bigdemo/icons/paste.xpm +0 -38
  371. data/samples/bigdemo/icons/pointy.png +0 -0
  372. data/samples/bigdemo/icons/preview.xpm +0 -26
  373. data/samples/bigdemo/icons/print.xpm +0 -26
  374. data/samples/bigdemo/icons/radio.bmp +0 -0
  375. data/samples/bigdemo/icons/radio.xpm +0 -27
  376. data/samples/bigdemo/icons/robert.xpm +0 -415
  377. data/samples/bigdemo/icons/sashtest.ico +0 -0
  378. data/samples/bigdemo/icons/save.xpm +0 -25
  379. data/samples/bigdemo/icons/smiles.bmp +0 -0
  380. data/samples/bigdemo/icons/smiles.xpm +0 -39
  381. data/samples/bigdemo/icons/smiley.ico +0 -0
  382. data/samples/bigdemo/icons/smiley.xpm +0 -42
  383. data/samples/bigdemo/icons/stattext.xpm +0 -24
  384. data/samples/bigdemo/icons/test2.bmp +0 -0
  385. data/samples/bigdemo/icons/test2.png +0 -0
  386. data/samples/bigdemo/icons/test2.xpm +0 -79
  387. data/samples/bigdemo/icons/text.bmp +0 -0
  388. data/samples/bigdemo/icons/text.xpm +0 -27
  389. data/samples/bigdemo/icons/tog1.bmp +0 -0
  390. data/samples/bigdemo/icons/tog1.xpm +0 -38
  391. data/samples/bigdemo/icons/tog2.bmp +0 -0
  392. data/samples/bigdemo/icons/tog2.xpm +0 -38
  393. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  394. data/samples/bigdemo/icons/wxwin.ico +0 -0
  395. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  396. data/samples/bigdemo/icons/wxwin16x16.xpm +0 -25
  397. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  398. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  399. data/samples/bigdemo/run.rb +0 -98
  400. data/samples/bigdemo/tips.txt +0 -7
  401. data/samples/bigdemo/utils.rb +0 -20
  402. data/samples/bigdemo/wxArtProvider.rbw +0 -282
  403. data/samples/bigdemo/wxBitmapButton.rbw +0 -65
  404. data/samples/bigdemo/wxButton.rbw +0 -64
  405. data/samples/bigdemo/wxCalendarCtrl.rbw +0 -59
  406. data/samples/bigdemo/wxCheckBox.rbw +0 -50
  407. data/samples/bigdemo/wxCheckListBox.rbw +0 -65
  408. data/samples/bigdemo/wxChoice.rbw +0 -47
  409. data/samples/bigdemo/wxChoicebook.rbw +0 -78
  410. data/samples/bigdemo/wxColourDialog.rbw +0 -33
  411. data/samples/bigdemo/wxComboBox.rbw +0 -77
  412. data/samples/bigdemo/wxCursor.rbw +0 -136
  413. data/samples/bigdemo/wxDialog.rbw +0 -74
  414. data/samples/bigdemo/wxDirDialog.rbw +0 -29
  415. data/samples/bigdemo/wxDragImage.rbw +0 -70
  416. data/samples/bigdemo/wxFileDialog.rbw +0 -37
  417. data/samples/bigdemo/wxFileDialog_Save.rbw +0 -35
  418. data/samples/bigdemo/wxFindReplaceDialog.rbw +0 -82
  419. data/samples/bigdemo/wxFontDialog.rbw +0 -200
  420. data/samples/bigdemo/wxFrame.rbw +0 -53
  421. data/samples/bigdemo/wxGauge.rbw +0 -65
  422. data/samples/bigdemo/wxGenericDirCtrl.rbw +0 -74
  423. data/samples/bigdemo/wxGrid.rbw +0 -66
  424. data/samples/bigdemo/wxHtmlHelpController.rbw +0 -52
  425. data/samples/bigdemo/wxListBox.rbw +0 -140
  426. data/samples/bigdemo/wxListCtrl_virtual.rbw +0 -112
  427. data/samples/bigdemo/wxMDIWindows.rbw +0 -50
  428. data/samples/bigdemo/wxMenu.rbw +0 -247
  429. data/samples/bigdemo/wxMessageDialog.rbw +0 -27
  430. data/samples/bigdemo/wxMiniFrame.rbw +0 -70
  431. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +0 -29
  432. data/samples/bigdemo/wxNotebook.rbw +0 -136
  433. data/samples/bigdemo/wxProgressDialog.rbw +0 -43
  434. data/samples/bigdemo/wxRadioBox.rbw +0 -72
  435. data/samples/bigdemo/wxRadioButton.rbw +0 -125
  436. data/samples/bigdemo/wxSashWindow.rbw +0 -141
  437. data/samples/bigdemo/wxScrolledMessageDialog.rbw +0 -57
  438. data/samples/bigdemo/wxScrolledWindow.rbw +0 -199
  439. data/samples/bigdemo/wxSingleChoiceDialog.rbw +0 -33
  440. data/samples/bigdemo/wxSlider.rbw +0 -42
  441. data/samples/bigdemo/wxSpinButton.rbw +0 -50
  442. data/samples/bigdemo/wxSpinCtrl.rbw +0 -51
  443. data/samples/bigdemo/wxSplitterWindow.rbw +0 -63
  444. data/samples/bigdemo/wxStaticBitmap.rbw +0 -47
  445. data/samples/bigdemo/wxStaticText.rbw +0 -55
  446. data/samples/bigdemo/wxStatusBar.rbw +0 -126
  447. data/samples/bigdemo/wxTextCtrl.rbw +0 -149
  448. data/samples/bigdemo/wxTextEntryDialog.rbw +0 -31
  449. data/samples/bigdemo/wxToggleButton.rbw +0 -49
  450. data/samples/bigdemo/wxToolBar.rbw +0 -131
  451. data/samples/bigdemo/wxTreeCtrl.rbw +0 -191
  452. data/samples/caret/caret.rb +0 -298
  453. data/samples/caret/mondrian.xpm +0 -44
  454. data/samples/controls/books.rb +0 -189
  455. data/samples/controls/choice.xpm +0 -27
  456. data/samples/controls/combo.xpm +0 -27
  457. data/samples/controls/controls.rb +0 -1099
  458. data/samples/controls/gauge.xpm +0 -27
  459. data/samples/controls/list.xpm +0 -27
  460. data/samples/controls/mondrian.ico +0 -0
  461. data/samples/controls/mondrian.xpm +0 -44
  462. data/samples/controls/radio.xpm +0 -27
  463. data/samples/controls/stattext.xpm +0 -24
  464. data/samples/controls/test2.bmp +0 -0
  465. data/samples/controls/text.xpm +0 -27
  466. data/samples/controls/tn_books.png +0 -0
  467. data/samples/controls/tn_controls.png +0 -0
  468. data/samples/etc/choice.rb +0 -87
  469. data/samples/etc/tn_choice.png +0 -0
  470. data/samples/text/mondrian.ico +0 -0
  471. data/samples/text/mondrian.xpm +0 -44
  472. /data/samples/{caret → etc}/tn_caret.png +0 -0
@@ -87,6 +87,18 @@ module WXRuby3
87
87
  # TODO : these will need some sort of stream solution to be useful
88
88
  spec.ignore 'wxStyledTextCtrl::GetCharacterPointer',
89
89
  'wxStyledTextCtrl::GetRangePointer'
90
+ spec.add_extend_code 'wxStyledTextCtrl', <<~__HEREDOC
91
+ VALUE each_line()
92
+ {
93
+ VALUE rc = Qnil;
94
+ for (int i=0; i<$self->GetNumberOfLines() ;++i)
95
+ {
96
+ VALUE rb_ln = WXSTR_TO_RSTR($self->GetLineText(i));
97
+ rc = rb_yield(rb_ln);
98
+ }
99
+ return rc;
100
+ }
101
+ __HEREDOC
90
102
  spec.do_not_generate(:variables, :enums, :defines, :functions)
91
103
  end
92
104
  end # class StyledTextCtrl
@@ -0,0 +1,30 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 wxWidgets interface director
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ class Director
12
+
13
+ class TaskBarButton < Director
14
+
15
+ def setup
16
+ super
17
+ spec.items << 'wxThumbBarButton'
18
+ spec.no_proxy 'wxTaskBarButton'
19
+ spec.gc_as_untracked 'wxTaskBarButton', 'wxThumbBarButton'
20
+ spec.disown 'wxThumbBarButton *button'
21
+ # superfluous and causing trouble for disown policy (re-implemented in pure Ruby)
22
+ spec.ignore 'wxTaskBarButton::RemoveThumbBarButton(wxThumbBarButton*)', ignore_doc: false
23
+ spec.new_object 'wxTaskBarButton::RemoveThumbBarButton(int)'
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+
30
+ end
@@ -16,7 +16,7 @@ module WXRuby3
16
16
 
17
17
  def setup
18
18
  super
19
- spec.gc_never
19
+ spec.gc_as_object
20
20
  # need a custom implementation to handle event handler proc cleanup
21
21
  spec.add_header_code <<~__HEREDOC
22
22
  class WXRubyTaskBarIcon : public wxTaskBarIcon
@@ -26,9 +26,11 @@ module WXRuby3
26
26
  virtual ~WXRubyTaskBarIcon()
27
27
  {
28
28
  wxRuby_ReleaseEvtHandlerProcs(this);
29
- }
29
+ SWIG_RubyUnlinkObjects(this);
30
+ SWIG_RubyRemoveTracking(this);
31
+ }
30
32
  };
31
- __HEREDOC
33
+ __HEREDOC
32
34
  spec.use_class_implementation 'wxTaskBarIcon', 'WXRubyTaskBarIcon'
33
35
  # this one is protected so ignored by default but we want it here
34
36
  # (we do not want GetPopupMenu available for override in Ruby)
@@ -61,16 +63,6 @@ module WXRuby3
61
63
  }
62
64
  __CODE
63
65
  end
64
- spec.add_extend_code 'wxTaskBarIcon', <<~__HEREDOC
65
- // Explicitly dispose of a TaskBarIcon; needed for clean exits on
66
- // Windows.
67
- VALUE destroy()
68
- {
69
- delete $self;
70
- return Qnil;
71
- }
72
- __HEREDOC
73
- # already generated with TaskBarIconEvent
74
66
  spec.do_not_generate :variables, :enums, :defines, :functions
75
67
  end
76
68
  end # class TaskBarIcon
@@ -26,6 +26,10 @@ module WXRuby3
26
26
  spec.add_header_code '#define wxTextEntry wxTextEntryBase'
27
27
  spec.disown 'wxTextCompleter *completer' # managed by wxWidgets after passing in
28
28
  spec.map_apply 'long * OUTPUT' => 'long *' # for GetSelection
29
+ # missing non-pure virtual overrides in docs for wxTextCompleterSimple
30
+ spec.extend_interface 'wxTextCompleterSimple',
31
+ 'virtual bool Start(const wxString &prefix)',
32
+ 'virtual wxString GetNext()'
29
33
  # for wxTextCompleterSimple::GetCompletions
30
34
  spec.map 'wxArrayString &res' => 'Array<String>' do
31
35
 
@@ -6,48 +6,159 @@
6
6
  # wxRuby3 wxWidgets interface director
7
7
  ###
8
8
 
9
- require_relative './event_handler'
9
+ require_relative './validator'
10
10
 
11
11
  module WXRuby3
12
12
 
13
13
  class Director
14
14
 
15
- class TextValidator < EvtHandler
15
+ class TextValidator < Validator
16
16
 
17
17
  def setup
18
18
  super
19
19
  # need a custom implementation to handle event handler proc cleanup
20
20
  spec.add_header_code <<~__HEREDOC
21
- class WXRubyTextValidator : public wxTextValidator
21
+ class WXRubyTextValidator : public wxTextValidator, public wxRubyValidatorBinding
22
22
  {
23
23
  public:
24
- WXRubyTextValidator(const wxTextValidator& v)
25
- : wxTextValidator(v) {}
26
24
  WXRubyTextValidator(long style=wxFILTER_NONE)
27
- : wxTextValidator(style) {}
25
+ : wxTextValidator(style, &m_valueCache)
26
+ {
27
+ }
28
+ WXRubyTextValidator(const WXRubyTextValidator& other)
29
+ : wxTextValidator(other.GetStyle(), &m_valueCache)
30
+ , wxRubyValidatorBinding(other)
31
+ {
32
+ }
28
33
  virtual ~WXRubyTextValidator()
29
34
  {
30
35
  wxRuby_ReleaseEvtHandlerProcs(this);
31
- }
36
+ }
37
+
38
+ virtual wxObject* Clone() const override
39
+ {
40
+ WXRubyTextValidator* clone = new WXRubyTextValidator(*this);
41
+ clone->m_valueCache = this->m_valueCache;
42
+ return clone;
43
+ }
44
+
45
+ virtual void SetWindow(wxWindow *win) override
46
+ {
47
+ this->wxTextValidator::SetWindow(win);
48
+ VALUE self = this->get_self();
49
+ // make sure Ruby does not own this validator instance anymore
50
+ RDATA(self)->dfree = SWIG_RubyRemoveTracking;
51
+ }
52
+
53
+ virtual bool TransferFromWindow () override
54
+ {
55
+ // call super
56
+ if (this->wxTextValidator::TransferFromWindow())
57
+ {
58
+ // ok, data is retrieved from window and cached
59
+ // now allow any defined binding handler to pass on the data
60
+ return this->DoOnTransferFromWindow(WXSTR_TO_RSTR(m_valueCache));
61
+ }
62
+ return false;
63
+ }
64
+ virtual bool TransferToWindow () override
65
+ {
66
+ // collect data from any defined binding handler
67
+ VALUE data = this->DoOnTransferToWindow();
68
+ // if Qnil returned there is no data returned from handler so we just keep what's in the store
69
+ if (!NIL_P(data))
70
+ {
71
+ m_valueCache = RSTR_TO_WXSTR(data);
72
+ }
73
+ // now allow standard functionality to transfer to window
74
+ return this->wxTextValidator::TransferToWindow();
75
+ }
76
+
77
+ const wxString& GetValue () const
78
+ {
79
+ return m_valueCache;
80
+ }
81
+
82
+ void SetValue (const wxString& val)
83
+ {
84
+ m_valueCache = val;
85
+ }
86
+
87
+ private:
88
+ static VALUE c_TextValidator;
89
+
90
+ virtual VALUE get_self() override
91
+ {
92
+ if (NIL_P(this->self_))
93
+ {
94
+ this->self_ = SWIG_RubyInstanceFor(this);
95
+ // if this is a C++ created clone (wxWidgets clones validators that are set) it's not tracked yet
96
+ if (NIL_P(this->self_))
97
+ {
98
+ if (NIL_P(c_TextValidator))
99
+ {
100
+ c_TextValidator = rb_const_get(mWxCore, rb_intern("TextValidator"));
101
+ }
102
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(c_TextValidator);
103
+ this->self_ = SWIG_NewPointerObj(this, swig_type, 0); // wrap but don't make Ruby own it
104
+ }
105
+ }
106
+ return this->self_;
107
+ }
108
+
109
+ wxString m_valueCache;
32
110
  };
33
- __HEREDOC
111
+
112
+ VALUE WXRubyTextValidator::c_TextValidator = Qnil;
113
+
114
+ static void GC_mark_wxTextValidator(void* ptr)
115
+ {
116
+ if (ptr)
117
+ {
118
+ wxValidator* vp = reinterpret_cast<wxValidator*> (ptr);
119
+ WXRubyTextValidator* rbvp = dynamic_cast<WXRubyTextValidator*> (vp);
120
+ // This might be a pointer to a non-customized validator (or clone thereof) created internally
121
+ // by wxWidgets C++ code
122
+ if (rbvp) rbvp->GC_Mark();
123
+ }
124
+ }
125
+
126
+ __HEREDOC
127
+ spec.add_swig_code '%markfunc wxTextValidator "GC_mark_wxTextValidator";'
128
+ # make Ruby director and wrappers use custom implementation
34
129
  spec.use_class_implementation 'wxTextValidator', 'WXRubyTextValidator'
35
- # ignore copy ctor doc
36
- spec.regard 'wxTextValidator::wxTextValidator(const wxTextValidator&)', regard_doc: false
37
130
  # ignore this ctor
38
131
  spec.ignore 'wxTextValidator::wxTextValidator(long, wxString*)'
39
132
  # add alternative
40
133
  spec.extend_interface 'wxTextValidator', 'wxTextValidator(long style=wxFILTER_NONE)'
41
- # ignore non-virtual standard handler (not really useful in Ruby)
134
+ # add wxRuby extensions
135
+ spec.add_extend_code 'wxTextValidator', <<~__HEREDOC
136
+ VALUE GetValue()
137
+ {
138
+ WXRubyTextValidator* rb_self = dynamic_cast<WXRubyTextValidator*> ($self);
139
+ if (rb_self)
140
+ return WXSTR_TO_RSTR(rb_self->GetValue());
141
+ else
142
+ return Qnil;
143
+ }
144
+
145
+ void SetValue(const wxString& val)
146
+ {
147
+ WXRubyTextValidator* rb_self = dynamic_cast<WXRubyTextValidator*> ($self);
148
+ if (rb_self)
149
+ rb_self->SetValue(val);
150
+ }
151
+ __HEREDOC
152
+ # ignore non-virtual standard handler (not useful in Ruby)
42
153
  spec.ignore 'wxTextValidator::OnChar'
43
- spec.no_proxy 'wxTextValidator::Clone'
44
154
  spec.new_object 'wxTextValidator::Clone'
45
155
  # handle clone mapping
46
156
  spec.map 'wxObject *' => 'Wx::TextValidator' do
47
157
  map_out code: <<~__CODE
48
- $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxTextValidator, SWIG_POINTER_OWN | 0 );
158
+ $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxTextValidator, SWIG_POINTER_OWN);
49
159
  __CODE
50
160
  end
161
+ spec.suppress_warning(473, 'wxTextValidator::Clone')
51
162
  # not provided in Ruby
52
163
  spec.ignore %w[wxTextValidator::TransferFromWindow wxTextValidator::TransferToWindow]
53
164
  end
@@ -32,7 +32,7 @@ module WXRuby3
32
32
  # we will not wrap it but create a simplified interface when USE_SPELLCHECK is enabled which
33
33
  # we will complement in pure Ruby to provide Wx::TextProofOptions class
34
34
  spec.ignore('wxTextCtrl::EnableProofCheck', 'wxTextCtrl::GetProofCheckOptions')
35
- if Config.instance.features_set?('wxUSE_SPELLCHECK')
35
+ if Config.instance.features_set?('USE_SPELLCHECK')
36
36
  spec.add_extend_code 'wxTextCtrl', <<~__HEREDOC
37
37
  VALUE DoEnableProofCheck(bool spelling, bool grammar, const wxString& language)
38
38
  {
@@ -99,6 +99,17 @@ module WXRuby3
99
99
  else if(TYPE(value)==T_FLOAT)
100
100
  *self << (double)(RFLOAT_VALUE(value));
101
101
  }
102
+
103
+ VALUE each_line()
104
+ {
105
+ VALUE rc = Qnil;
106
+ for (int i=0; i<$self->GetNumberOfLines() ;++i)
107
+ {
108
+ VALUE rb_ln = WXSTR_TO_RSTR($self->GetLineText(i));
109
+ rc = rb_yield(rb_ln);
110
+ }
111
+ return rc;
112
+ }
102
113
  __HEREDOC
103
114
  spec.swig_import 'swig/classes/include/wxTextAttr.h'
104
115
  end
@@ -15,6 +15,7 @@ module WXRuby3
15
15
  class ToggleButton < Window
16
16
 
17
17
  def setup
18
+ spec.items << 'wxBitmapToggleButton'
18
19
  spec.include('wx/tglbtn.h')
19
20
  super
20
21
  end
@@ -13,7 +13,7 @@ module WXRuby3
13
13
  class ToolTip < Director
14
14
 
15
15
  def setup
16
- spec.ignore('wxToolTip::SetMaxWidth') unless Config.instance.features_set?('__WXMSW__')
16
+ spec.ignore_unless('WXMSW', 'wxToolTip::SetMaxWidth')
17
17
  super
18
18
  end
19
19
  end # class ToolTip
@@ -26,10 +26,8 @@ module WXRuby3
26
26
  # for upcalls
27
27
  spec.extend_interface('wxTopLevelWindow',
28
28
  'virtual bool Destroy() override',
29
- #'virtual bool IsTopLevel() override',
30
29
  'virtual void SetLayoutDirection(wxLayoutDirection dir) override',
31
30
  'virtual bool Show(bool show = true) override',
32
- 'virtual void Raise() override',
33
31
  'virtual void Refresh(bool eraseBackground = true, wxRect const *rect = NULL) override')
34
32
  spec.add_wrapper_code <<~__HEREDOC
35
33
  extern VALUE wxRuby_GetTopLevelWindowClass() {
@@ -41,15 +39,14 @@ module WXRuby3
41
39
  wxTopLevelWindow::RestoreToGeometry
42
40
  wxTopLevelWindow::GeometrySerializer
43
41
  }
44
- unless Config.instance.features_set?('__WXUNIVERSAL__')
45
- spec.ignore %w{
42
+ # #ignore_unless if wxRuby one day supports 'WXUNIVERSAL'
43
+ spec.ignore %w{
46
44
  wxTopLevelWindow::IsUsingNativeDecorations
47
45
  wxTopLevelWindow::UseNativeDecorations
48
46
  wxTopLevelWindow::UseNativeDecorationsByDefault
49
47
  }
50
- end
51
- spec.ignore('wxTopLevelWindow::MSWGetSystemMenu') unless Config.instance.features_set?('__WXMSW__')
52
- spec.ignore('wxTopLevelWindow::OSXSetModified','wxTopLevelWindow::OSXIsModified') unless Config.instance.features_set?('__WXOSX__')
48
+ spec.ignore_unless('WXMSW', 'wxTopLevelWindow::MSWGetSystemMenu')
49
+ spec.ignore_unless('WXOSX', 'wxTopLevelWindow::OSXSetModified','wxTopLevelWindow::OSXIsModified')
53
50
  spec.swig_import 'swig/classes/include/wxDefs.h'
54
51
  # incorrectly documented here
55
52
  spec.override_events 'wxTopLevelWindow',
@@ -50,6 +50,41 @@ module WXRuby3
50
50
  wxTreeCtrl::GetFirstChild
51
51
  wxTreeCtrl::GetNextChild
52
52
  ]
53
+ if Config.instance.wx_version >= '3.3.0'
54
+ # new method with bitmap bundle vector
55
+ spec.no_proxy 'wxTreeCtrl::SetStateImages'
56
+ spec.map 'const wxVector<wxBitmapBundle>& images' => 'Array<Wx::ImageBundle>' do
57
+ map_in temp: 'wxVector<wxBitmapBundle> tmp', code: <<~__CODE
58
+ if ($input != Qnil)
59
+ {
60
+ if (TYPE($input) == T_ARRAY)
61
+ {
62
+ for (int i=0; i<RARRAY_LEN($input) ;++i)
63
+ {
64
+ void* ptr;
65
+ VALUE rb_image = rb_ary_entry($input, i);
66
+ int res = SWIG_ConvertPtr(rb_image, &ptr, wxRuby_GetSwigTypeForClassName("BitmapBundle"), 0);
67
+ if (!SWIG_IsOK(res))
68
+ {
69
+ VALUE msg = rb_inspect(rb_image);
70
+ rb_raise(rb_eTypeError, "Expected Wx::ImageBundle at index %d but got %s", i, StringValuePtr(msg));
71
+ }
72
+ tmp.push_back(*static_cast<wxBitmapBundle*>(ptr));
73
+ }
74
+ }
75
+ else
76
+ {
77
+ VALUE msg = rb_inspect($input);
78
+ rb_raise(rb_eArgError, "Expected Array of Wx::ImageBundle for $argnum but got %s", StringValuePtr(msg));
79
+ }
80
+ }
81
+ $1 = &tmp;
82
+ __CODE
83
+ end
84
+ end
85
+ # don't see how supporting overloading this one in Ruby is helpful
86
+ # (also seeing SetButtonsImageList isn't virtual at all)
87
+ spec.no_proxy 'wxTreeCtrl::SetStateImageList'
53
88
  # these are potentially involved in GC mark phase so
54
89
  # we can't have them redirecting to Ruby calls
55
90
  spec.no_proxy %w[
@@ -75,7 +110,7 @@ module WXRuby3
75
110
  wxTreeCtrl::GetFocusedItem
76
111
  wxTreeCtrl::GetSelection
77
112
  ]
78
- if Config.instance.features_set?('wxHAS_LAST_VISIBLE')
113
+ if Config.instance.features_set?('HAS_LAST_VISIBLE')
79
114
  spec.no_proxy 'wxTreeCtrl::GetLastVisible'
80
115
  end
81
116
  # simply a nuisance to support
@@ -84,7 +119,7 @@ module WXRuby3
84
119
  wxTreeCtrl::EndEditLabel
85
120
  ]
86
121
  # for now, ignore this version as the added customization features
87
- # do not work as yet and may cause us more trouble than it's worth
122
+ # work only on WXMSW as yet and may cause us more trouble than it's worth
88
123
  spec.ignore 'wxTreeCtrl::EditLabel'
89
124
  # add simplified non-virtual version
90
125
  spec.add_extend_code 'wxTreeCtrl', <<~__HEREDOC
@@ -94,10 +129,9 @@ module WXRuby3
94
129
  (void)self->EditLabel(item);
95
130
  }
96
131
  __HEREDOC
97
- if [:wxmsw, :wxqt].include?(Config.instance.wx_port)
98
- spec.ignore('wxTreeCtrl::SetButtonsImageList')
99
- spec.ignore('wxTreeCtrl::GetButtonsImageList')
100
- end
132
+ spec.ignore_unless(Config::AnyOf.new(*%w[WXGTK WXOSX]),
133
+ 'wxTreeCtrl::SetButtonsImageList',
134
+ 'wxTreeCtrl::GetButtonsImageList')
101
135
  # these reimplemented window base methods need to be properly wrapped but
102
136
  # are missing from the XML docs
103
137
  spec.extend_interface('wxTreeCtrl',
@@ -41,8 +41,22 @@ module WXRuby3
41
41
  wxNow
42
42
  wxDecToHex
43
43
  wxHexToDec
44
- wxStripMenuCodes
45
44
  ]
45
+ # ignore these enum(erator)s
46
+ spec.ignore %w[
47
+ wxSignal
48
+ wxKillError
49
+ wxKillFlags
50
+ wxShutdownFlags
51
+ @.wxEXEC_ASYNC
52
+ @.wxEXEC_SYNC
53
+ @.wxEXEC_SHOW_CONSOLE
54
+ @.wxEXEC_MAKE_GROUP_LEADER
55
+ @.wxEXEC_NODISABLE
56
+ @.wxEXEC_NOEVENTS
57
+ @.wxEXEC_HIDE_CONSOLE
58
+ @.wxEXEC_BLOCK
59
+ ]
46
60
  spec.ignore 'wxPostDelete' unless Config.instance.wx_version >= '3.3.0'
47
61
  spec.ignore 'wxGetEmailAddress(char *,int)',
48
62
  'wxGetUserId(char *,int)',
@@ -53,7 +67,7 @@ module WXRuby3
53
67
  __CODE
54
68
  end
55
69
  # we want only the functions that are not ignored
56
- spec.do_not_generate(:classes, :typedefs, :variables, :enums, :defines)
70
+ spec.do_not_generate(:classes, :typedefs, :variables, :defines)
57
71
  super
58
72
  end
59
73
  end # class Utils