wxruby3 0.9.0.pre.rc.3 → 0.9.1

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 (683) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/mkrf_conf_srcgem.rb +4 -1
  4. data/ext/wxruby3/include/wxruby-Config.h +953 -0
  5. data/ext/wxruby3/include/wxruby-ScaledDC.h +4 -1
  6. data/ext/wxruby3/include/wxruby-runtime.h +13 -1
  7. data/ext/wxruby3/swig/RubyStockObjects.i +5 -3
  8. data/ext/wxruby3/swig/common.i +30 -3
  9. data/ext/wxruby3/swig/custom/director.swg +296 -0
  10. data/ext/wxruby3/swig/custom/rubyapi.swg +19 -0
  11. data/ext/wxruby3/swig/custom/rubyerrors.swg +45 -0
  12. data/ext/wxruby3/swig/custom/rubyhead.swg +192 -0
  13. data/ext/wxruby3/swig/custom/rubyrun.swg +187 -0
  14. data/ext/wxruby3/swig/custom/swigrun.swg +363 -0
  15. data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +173 -0
  16. data/ext/wxruby3/swig/mark_free_impl.i +6 -4
  17. data/ext/wxruby3/swig/memory_management.i +5 -3
  18. data/ext/wxruby3/swig/typedefs.i +5 -3
  19. data/ext/wxruby3/swig/wx.i +55 -30
  20. data/ext/wxruby3/swig/wx.rc +4 -2
  21. data/lib/wx/accessors.rb +10 -2
  22. data/lib/wx/aui/auifloatframe.rb +20 -0
  23. data/lib/wx/aui/auimanager.rb +3 -0
  24. data/lib/wx/aui/auinotebook.rb +17 -0
  25. data/lib/wx/aui/require.rb +5 -1
  26. data/lib/wx/aui.rb +4 -1
  27. data/lib/wx/core/acceleratortable.rb +8 -0
  28. data/lib/wx/core/animation.rb +8 -0
  29. data/lib/wx/core/app.rb +8 -0
  30. data/lib/wx/core/array_ext.rb +7 -0
  31. data/lib/wx/core/art_locator.rb +7 -0
  32. data/lib/wx/core/artprovider.rb +9 -0
  33. data/lib/wx/core/bitmap.rb +16 -4
  34. data/lib/wx/core/bitmap_combobox.rb +7 -0
  35. data/lib/wx/core/brush.rb +7 -0
  36. data/lib/wx/core/busycursor.rb +9 -0
  37. data/lib/wx/core/choice.rb +7 -0
  38. data/lib/wx/core/choicedlg.rb +7 -0
  39. data/lib/wx/core/clientdc.rb +9 -0
  40. data/lib/wx/core/clipboard.rb +8 -0
  41. data/lib/wx/core/collapsible_pane.rb +8 -1
  42. data/lib/wx/core/colour.rb +8 -0
  43. data/lib/wx/core/combo_ctrl.rb +110 -0
  44. data/lib/wx/core/combobox.rb +7 -0
  45. data/lib/wx/core/config.rb +303 -0
  46. data/lib/wx/core/const.rb +83 -0
  47. data/lib/wx/core/controlwithitems.rb +12 -1
  48. data/lib/wx/core/cursor.rb +14 -4
  49. data/lib/wx/core/data_object.rb +7 -0
  50. data/lib/wx/core/dataformat.rb +9 -0
  51. data/lib/wx/core/datetime.rb +14 -0
  52. data/lib/wx/core/dc.rb +7 -0
  53. data/lib/wx/core/dialog.rb +18 -1
  54. data/lib/wx/core/enum.rb +7 -0
  55. data/lib/wx/core/event.rb +7 -0
  56. data/lib/wx/core/event_blocker.rb +7 -0
  57. data/lib/wx/core/event_loop.rb +7 -0
  58. data/lib/wx/core/evthandler.rb +8 -0
  59. data/lib/wx/core/ext.rb +7 -0
  60. data/lib/wx/core/file_dialog.rb +23 -0
  61. data/lib/wx/core/find_replace_dialog.rb +7 -0
  62. data/lib/wx/core/functions.rb +8 -0
  63. data/lib/wx/core/gauge.rb +10 -1
  64. data/lib/wx/core/genericdirctrl.rb +9 -0
  65. data/lib/wx/core/hboxsizer.rb +16 -0
  66. data/lib/wx/core/helpcontroller.rb +8 -0
  67. data/lib/wx/core/helpcontrollerhelpprovider.rb +9 -0
  68. data/lib/wx/core/helpprovider.rb +10 -1
  69. data/lib/wx/core/icon.rb +17 -6
  70. data/lib/wx/core/id_helper.rb +7 -0
  71. data/lib/wx/core/image.rb +16 -4
  72. data/lib/wx/core/imagelist.rb +8 -1
  73. data/lib/wx/core/listbox.rb +7 -0
  74. data/lib/wx/core/listctrl.rb +9 -0
  75. data/lib/wx/core/locale.rb +8 -0
  76. data/lib/wx/core/log.rb +24 -0
  77. data/lib/wx/core/menu.rb +9 -0
  78. data/lib/wx/core/menu_bar.rb +7 -0
  79. data/lib/wx/core/menuitem.rb +9 -0
  80. data/lib/wx/core/notebook.rb +9 -0
  81. data/lib/wx/core/object.rb +9 -0
  82. data/lib/wx/core/paintdc.rb +7 -0
  83. data/lib/wx/core/pen.rb +7 -0
  84. data/lib/wx/core/pen_info.rb +7 -0
  85. data/lib/wx/core/platform_info.rb +7 -0
  86. data/lib/wx/core/point.rb +8 -0
  87. data/lib/wx/core/real_point.rb +8 -0
  88. data/lib/wx/core/rect.rb +9 -0
  89. data/lib/wx/core/region_iterator.rb +7 -0
  90. data/lib/wx/core/simplehelpprovider.rb +9 -0
  91. data/lib/wx/core/size.rb +8 -0
  92. data/lib/wx/core/sizer.rb +9 -0
  93. data/lib/wx/core/splash_screen.rb +22 -2
  94. data/lib/wx/core/text_entry.rb +7 -0
  95. data/lib/wx/core/textctrl.rb +86 -5
  96. data/lib/wx/core/timer.rb +9 -0
  97. data/lib/wx/core/toolbar.rb +9 -0
  98. data/lib/wx/core/toolbartool.rb +8 -0
  99. data/lib/wx/core/treectrl.rb +9 -0
  100. data/lib/wx/core/v_list_box.rb +7 -0
  101. data/lib/wx/core/validator.rb +7 -0
  102. data/lib/wx/core/variant.rb +7 -0
  103. data/lib/wx/core/vboxsizer.rb +16 -0
  104. data/lib/wx/core/window.rb +8 -0
  105. data/lib/wx/core/window_update_locker.rb +9 -0
  106. data/lib/wx/core/xmlresource.rb +8 -0
  107. data/lib/wx/core.rb +4 -1
  108. data/lib/wx/doc/app.rb +7 -1
  109. data/lib/wx/doc/array_ext.rb +6 -0
  110. data/lib/wx/doc/art_locator.rb +7 -0
  111. data/lib/wx/doc/aui/auimanager.rb +6 -0
  112. data/lib/wx/doc/aui/auinotebook.rb +6 -0
  113. data/lib/wx/doc/bitmap.rb +12 -4
  114. data/lib/wx/doc/brush.rb +6 -0
  115. data/lib/wx/doc/busy_info.rb +6 -0
  116. data/lib/wx/doc/client_dc.rb +6 -0
  117. data/lib/wx/doc/clipboard.rb +6 -0
  118. data/lib/wx/doc/colour_dialog.rb +6 -0
  119. data/lib/wx/doc/config.rb +190 -0
  120. data/lib/wx/doc/const.rb +73 -66
  121. data/lib/wx/doc/controlwithitems.rb +6 -0
  122. data/lib/wx/doc/core.rb +6 -0
  123. data/lib/wx/doc/cursor.rb +13 -5
  124. data/lib/wx/doc/data_object.rb +6 -0
  125. data/lib/wx/doc/datetime.rb +16 -0
  126. data/lib/wx/doc/dc.rb +6 -0
  127. data/lib/wx/doc/enum.rb +8 -1
  128. data/lib/wx/doc/event.rb +6 -0
  129. data/lib/wx/doc/event_blocker.rb +6 -0
  130. data/lib/wx/doc/event_loop.rb +6 -0
  131. data/lib/wx/doc/events.rb +6 -0
  132. data/lib/wx/doc/evthandler.rb +8 -0
  133. data/lib/wx/doc/extra/01_packages.md +52 -51
  134. data/lib/wx/doc/extra/05_event-handling.md +37 -12
  135. data/lib/wx/doc/extra/06_geometry.md +5 -5
  136. data/lib/wx/doc/extra/07_colour_and_font.md +2 -2
  137. data/lib/wx/doc/extra/09_exceptions.md +1 -1
  138. data/lib/wx/doc/extra/10_art.md +18 -12
  139. data/lib/wx/doc/extra/11_drawing_and_dc.md +4 -4
  140. data/lib/wx/doc/font.rb +6 -0
  141. data/lib/wx/doc/font_data.rb +16 -0
  142. data/lib/wx/doc/functions.rb +18 -10
  143. data/lib/wx/doc/gc_dc.rb +6 -0
  144. data/lib/wx/doc/gdi_common.rb +8 -1
  145. data/lib/wx/doc/graphics_context.rb +59 -39
  146. data/lib/wx/doc/grid/grid.rb +16 -1
  147. data/lib/wx/doc/hboxsizer.rb +33 -0
  148. data/lib/wx/doc/help_controller.rb +6 -0
  149. data/lib/wx/doc/html/html_help_controller.rb +6 -0
  150. data/lib/wx/doc/icon.rb +13 -5
  151. data/lib/wx/doc/id_helper.rb +6 -0
  152. data/lib/wx/doc/image.rb +12 -4
  153. data/lib/wx/doc/list_ctrl.rb +6 -0
  154. data/lib/wx/doc/log.rb +17 -0
  155. data/lib/wx/doc/memory_dc.rb +6 -0
  156. data/lib/wx/doc/mirror_dc.rb +6 -0
  157. data/lib/wx/doc/pen.rb +6 -0
  158. data/lib/wx/doc/pg/events.rb +6 -0
  159. data/lib/wx/doc/pg/pg_property.rb +17 -0
  160. data/lib/wx/doc/pg/pgeditor.rb +6 -0
  161. data/lib/wx/doc/pg/property_grid.rb +6 -0
  162. data/lib/wx/doc/pg/property_grid_interface.rb +6 -0
  163. data/lib/wx/doc/progress_dialog.rb +6 -0
  164. data/lib/wx/doc/prt/page_setup_dialog.rb +6 -0
  165. data/lib/wx/doc/prt/print_data.rb +6 -0
  166. data/lib/wx/doc/prt/print_dialog.rb +6 -0
  167. data/lib/wx/doc/prt/printer.rb +6 -0
  168. data/lib/wx/doc/prt/printer_dc.rb +6 -0
  169. data/lib/wx/doc/radio_box.rb +6 -0
  170. data/lib/wx/doc/rbn/ribbon_bar.rb +6 -0
  171. data/lib/wx/doc/rbn/ribbon_button_bar.rb +6 -0
  172. data/lib/wx/doc/rbn/ribbon_gallery.rb +6 -0
  173. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +6 -0
  174. data/lib/wx/doc/region_iterator.rb +6 -0
  175. data/lib/wx/doc/rtc/richtext_buffer.rb +28 -0
  176. data/lib/wx/doc/rtc/richtext_formatting_dialog.rb +68 -0
  177. data/lib/wx/doc/rtc/richtext_printing.rb +6 -0
  178. data/lib/wx/doc/rtc/richtext_style_sheet.rb +20 -0
  179. data/lib/wx/doc/scaled_dc.rb +6 -0
  180. data/lib/wx/doc/screen_dc.rb +6 -0
  181. data/lib/wx/doc/stock_objects.rb +6 -0
  182. data/lib/wx/doc/stream.rb +6 -0
  183. data/lib/wx/doc/svg_file_dc.rb +6 -0
  184. data/lib/wx/doc/system_settings.rb +6 -0
  185. data/lib/wx/doc/text_validator.rb +6 -0
  186. data/lib/wx/doc/textctrl.rb +89 -0
  187. data/lib/wx/doc/tree_event.rb +20 -0
  188. data/lib/wx/doc/treebook.rb +6 -0
  189. data/lib/wx/doc/v_list_box.rb +6 -0
  190. data/lib/wx/doc/variant.rb +6 -0
  191. data/lib/wx/doc/vboxsizer.rb +33 -0
  192. data/lib/wx/doc/window.rb +11 -0
  193. data/lib/wx/doc/window_disabler.rb +6 -0
  194. data/lib/wx/doc/xml_resource.rb +8 -0
  195. data/lib/wx/global_const.rb +4 -1
  196. data/lib/wx/grid/grid.rb +23 -3
  197. data/lib/wx/grid/keyword_defs.rb +8 -1
  198. data/lib/wx/grid/require.rb +4 -1
  199. data/lib/wx/grid.rb +4 -1
  200. data/lib/wx/helpers.rb +8 -1
  201. data/lib/wx/html/htmlhelpcontroller.rb +29 -3
  202. data/lib/wx/html/htmlwindow.rb +23 -12
  203. data/lib/wx/html/keyword_defs.rb +8 -1
  204. data/lib/wx/html/require.rb +4 -1
  205. data/lib/wx/html/simple_html_listbox.rb +3 -0
  206. data/lib/wx/html.rb +4 -1
  207. data/lib/wx/keyword_ctors.rb +22 -3
  208. data/lib/wx/keyword_defs.rb +96 -7
  209. data/lib/wx/pg/events.rb +4 -1
  210. data/lib/wx/pg/keyword_defs.rb +8 -1
  211. data/lib/wx/pg/pg_editor.rb +3 -0
  212. data/lib/wx/pg/pg_properties.rb +4 -1
  213. data/lib/wx/pg/pg_property.rb +18 -5
  214. data/lib/wx/pg/property_grid.rb +4 -1
  215. data/lib/wx/pg/property_grid_interface.rb +3 -0
  216. data/lib/wx/pg/require.rb +4 -1
  217. data/lib/wx/pg.rb +4 -1
  218. data/lib/wx/prt/keyword_defs.rb +8 -1
  219. data/lib/wx/prt/page_setup_dialog.rb +3 -0
  220. data/lib/wx/prt/previewframe.rb +5 -0
  221. data/lib/wx/prt/require.rb +4 -1
  222. data/lib/wx/prt.rb +4 -1
  223. data/lib/wx/rbn/events.rb +4 -1
  224. data/lib/wx/rbn/keyword_defs.rb +8 -1
  225. data/lib/wx/rbn/require.rb +5 -1
  226. data/lib/wx/rbn/ribbon_art_provider.rb +3 -1
  227. data/lib/wx/rbn/ribbon_bar.rb +3 -0
  228. data/lib/wx/rbn/ribbon_button_bar.rb +3 -0
  229. data/lib/wx/rbn/ribbon_control.rb +3 -0
  230. data/lib/wx/rbn/ribbon_gallery.rb +10 -0
  231. data/lib/wx/rbn/ribbon_page.rb +3 -0
  232. data/lib/wx/rbn/ribbon_panel.rb +3 -0
  233. data/lib/wx/rbn/ribbon_tool_bar.rb +3 -0
  234. data/lib/wx/rbn.rb +4 -1
  235. data/lib/wx/rtc/ext.rb +4 -1
  236. data/lib/wx/rtc/keyword_defs.rb +18 -7
  237. data/lib/wx/rtc/require.rb +8 -1
  238. data/lib/wx/rtc/richtext_buffer.rb +36 -0
  239. data/lib/wx/rtc/richtext_formatting_dialog.rb +88 -0
  240. data/lib/wx/rtc/richtext_style_organiser_dialog.rb +46 -0
  241. data/lib/wx/rtc/symbol_picker_dialog.rb +47 -0
  242. data/lib/wx/rtc.rb +5 -1
  243. data/lib/wx/stc/keyword_defs.rb +8 -1
  244. data/lib/wx/stc/require.rb +4 -1
  245. data/lib/wx/stc.rb +4 -1
  246. data/lib/wx/version.rb +5 -1
  247. data/lib/wx/wxruby/base.rb +4 -1
  248. data/lib/wx/wxruby/cmd/sampler.rb +4 -1
  249. data/lib/wx/wxruby/cmd/test.rb +4 -1
  250. data/lib/wx.rb +4 -1
  251. data/rakelib/build.rake +4 -1
  252. data/rakelib/build.rb +4 -1
  253. data/rakelib/config.rake +4 -1
  254. data/rakelib/configure.rb +4 -1
  255. data/rakelib/doc.rake +4 -1
  256. data/rakelib/doc.rb +5 -1
  257. data/rakelib/install.rake +4 -1
  258. data/rakelib/install.rb +4 -1
  259. data/rakelib/lib/config/cygwin.rb +4 -1
  260. data/rakelib/lib/config/linux.rb +4 -1
  261. data/rakelib/lib/config/macosx.rb +6 -3
  262. data/rakelib/lib/config/mingw.rb +4 -1
  263. data/rakelib/lib/config/netbsd.rb +4 -1
  264. data/rakelib/lib/config/unixish.rb +10 -7
  265. data/rakelib/lib/config.rb +7 -2
  266. data/rakelib/lib/core/include/enum.inc +4 -1
  267. data/rakelib/lib/core/include/funcall.inc +22 -57
  268. data/rakelib/lib/core/include/init.inc +3 -0
  269. data/rakelib/lib/core/include/swigdirector.inc +384 -0
  270. data/rakelib/lib/core/include/swigrubyerrors.inc +161 -0
  271. data/{ext/wxruby3/swig/custom/swig4/rubyrun.swg → rakelib/lib/core/include/swigrubyrun.inc} +245 -120
  272. data/rakelib/lib/core/include/swigrun.inc +700 -0
  273. data/rakelib/lib/core/mapping.rb +26 -46
  274. data/rakelib/lib/core/package.rb +22 -5
  275. data/rakelib/lib/core/parameter.rb +7 -1
  276. data/rakelib/lib/core/spec.rb +14 -8
  277. data/rakelib/lib/core/spec_helper.rb +32 -9
  278. data/rakelib/lib/director/about_dialog_info.rb +4 -1
  279. data/rakelib/lib/director/accelerator.rb +8 -3
  280. data/rakelib/lib/director/animation.rb +5 -2
  281. data/rakelib/lib/director/animation_ctrl.rb +24 -1
  282. data/rakelib/lib/director/any_button.rb +5 -2
  283. data/rakelib/lib/director/app.rb +39 -7
  284. data/rakelib/lib/director/app_traits.rb +71 -0
  285. data/rakelib/lib/director/art_provider.rb +5 -2
  286. data/rakelib/lib/director/aui_dock_art.rb +4 -1
  287. data/rakelib/lib/director/aui_floating_frame.rb +4 -1
  288. data/rakelib/lib/director/aui_manager.rb +12 -5
  289. data/rakelib/lib/director/aui_manager_event.rb +4 -1
  290. data/rakelib/lib/director/aui_mdi_child_frame.rb +25 -1
  291. data/rakelib/lib/director/aui_mdi_client_window.rb +4 -1
  292. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -1
  293. data/rakelib/lib/director/aui_notebook.rb +12 -1
  294. data/rakelib/lib/director/aui_notebook_event.rb +4 -1
  295. data/rakelib/lib/director/aui_pane_info.rb +4 -1
  296. data/rakelib/lib/director/aui_tab_art.rb +52 -1
  297. data/rakelib/lib/director/aui_tab_ctrl.rb +14 -1
  298. data/rakelib/lib/director/aui_toolbar.rb +6 -3
  299. data/rakelib/lib/director/aui_toolbar_art.rb +52 -1
  300. data/rakelib/lib/director/aui_toolbar_event.rb +4 -1
  301. data/rakelib/lib/director/aui_toolbar_item.rb +4 -1
  302. data/rakelib/lib/director/banner_window.rb +26 -0
  303. data/rakelib/lib/director/bitmap.rb +11 -2
  304. data/rakelib/lib/director/bitmap_combobox.rb +5 -1
  305. data/rakelib/lib/director/book_ctrls.rb +13 -3
  306. data/rakelib/lib/director/brush.rb +4 -1
  307. data/rakelib/lib/director/busy_info.rb +4 -1
  308. data/rakelib/lib/director/button.rb +4 -1
  309. data/rakelib/lib/director/calendar_ctrl.rb +4 -1
  310. data/rakelib/lib/director/calendar_date_attr.rb +4 -1
  311. data/rakelib/lib/director/caret.rb +4 -1
  312. data/rakelib/lib/director/check_listbox.rb +4 -1
  313. data/rakelib/lib/director/choice.rb +4 -1
  314. data/rakelib/lib/director/clipboard.rb +4 -1
  315. data/rakelib/lib/director/collapsible_pane.rb +4 -1
  316. data/rakelib/lib/director/collapsible_pane_event.rb +4 -1
  317. data/rakelib/lib/director/colour.rb +9 -1
  318. data/rakelib/lib/director/colour_picker_ctrl.rb +4 -1
  319. data/rakelib/lib/director/combobox.rb +4 -1
  320. data/rakelib/lib/director/comboctrl.rb +94 -0
  321. data/rakelib/lib/director/config_base.rb +135 -0
  322. data/rakelib/lib/director/context_help_button.rb +4 -1
  323. data/rakelib/lib/director/control.rb +4 -1
  324. data/rakelib/lib/director/ctrl_with_items.rb +5 -1
  325. data/rakelib/lib/director/cursor.rb +6 -2
  326. data/rakelib/lib/director/data_format.rb +4 -1
  327. data/rakelib/lib/director/data_object.rb +4 -1
  328. data/rakelib/lib/director/data_object_simple_base.rb +5 -3
  329. data/rakelib/lib/director/date_event.rb +9 -2
  330. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  331. data/rakelib/lib/director/dc.rb +19 -1
  332. data/rakelib/lib/director/defs.rb +4 -1
  333. data/rakelib/lib/director/derived_dc.rb +27 -20
  334. data/rakelib/lib/director/dialog.rb +29 -3
  335. data/rakelib/lib/director/dialup_event.rb +44 -0
  336. data/rakelib/lib/director/dialup_manager.rb +45 -0
  337. data/rakelib/lib/director/dir_filterlist_ctrl.rb +4 -1
  338. data/rakelib/lib/director/dir_picker_ctrl.rb +4 -1
  339. data/rakelib/lib/director/drag_image.rb +9 -2
  340. data/rakelib/lib/director/dragdrop.rb +4 -1
  341. data/rakelib/lib/director/editable_listbox.rb +4 -1
  342. data/rakelib/lib/director/event.rb +29 -3
  343. data/rakelib/lib/director/event_blocker.rb +4 -1
  344. data/rakelib/lib/director/event_filter.rb +4 -1
  345. data/rakelib/lib/director/event_handler.rb +28 -11
  346. data/rakelib/lib/director/event_loop.rb +4 -1
  347. data/rakelib/lib/director/events.rb +5 -2
  348. data/rakelib/lib/director/file_ctrl.rb +35 -0
  349. data/rakelib/lib/director/file_ctrl_event.rb +26 -0
  350. data/rakelib/lib/director/file_dialog_custom_control.rb +28 -0
  351. data/rakelib/lib/director/file_dialog_customize_hook.rb +28 -0
  352. data/rakelib/lib/director/file_picker_ctrl.rb +4 -1
  353. data/rakelib/lib/director/file_system.rb +45 -0
  354. data/rakelib/lib/director/find_dialog_event.rb +4 -1
  355. data/rakelib/lib/director/find_replace_data.rb +4 -1
  356. data/rakelib/lib/director/font.rb +7 -3
  357. data/rakelib/lib/director/font_data.rb +9 -1
  358. data/rakelib/lib/director/font_picker_ctrl.rb +4 -1
  359. data/rakelib/lib/director/frame.rb +45 -33
  360. data/rakelib/lib/director/fs_file.rb +52 -1
  361. data/rakelib/lib/director/functions.rb +11 -5
  362. data/rakelib/lib/director/gdi_object.rb +4 -1
  363. data/rakelib/lib/director/gdicommon.rb +33 -10
  364. data/rakelib/lib/director/generic_dirctrl.rb +4 -1
  365. data/rakelib/lib/director/graphics_context.rb +113 -18
  366. data/rakelib/lib/director/graphics_object.rb +13 -2
  367. data/rakelib/lib/director/grid_cell_attr.rb +28 -4
  368. data/rakelib/lib/director/grid_cell_editor.rb +28 -11
  369. data/rakelib/lib/director/grid_cell_renderer.rb +16 -3
  370. data/rakelib/lib/director/grid_ctrl.rb +146 -5
  371. data/rakelib/lib/director/grid_range_select_event.rb +4 -1
  372. data/rakelib/lib/director/grid_table_base.rb +6 -1
  373. data/rakelib/lib/director/grid_table_message.rb +4 -1
  374. data/rakelib/lib/director/header_ctrl.rb +37 -0
  375. data/rakelib/lib/director/help_controller.rb +14 -7
  376. data/rakelib/lib/director/help_provider.rb +4 -1
  377. data/rakelib/lib/director/html_cell.rb +10 -3
  378. data/rakelib/lib/director/html_data_object.rb +4 -1
  379. data/rakelib/lib/director/html_easy_printing.rb +4 -1
  380. data/rakelib/lib/director/html_event.rb +4 -1
  381. data/rakelib/lib/director/html_help_data.rb +4 -1
  382. data/rakelib/lib/director/html_help_window.rb +30 -0
  383. data/rakelib/lib/director/html_listbox.rb +4 -1
  384. data/rakelib/lib/director/html_printout.rb +6 -1
  385. data/rakelib/lib/director/html_window.rb +10 -8
  386. data/rakelib/lib/director/hyperlink_ctrl.rb +32 -0
  387. data/rakelib/lib/director/hyperlink_event.rb +4 -1
  388. data/rakelib/lib/director/icon.rb +4 -1
  389. data/rakelib/lib/director/image.rb +26 -3
  390. data/rakelib/lib/director/image_list.rb +5 -1
  391. data/rakelib/lib/director/info_bar.rb +26 -0
  392. data/rakelib/lib/director/list_ctrl.rb +39 -7
  393. data/rakelib/lib/director/listbox.rb +4 -1
  394. data/rakelib/lib/director/locale.rb +7 -4
  395. data/rakelib/lib/director/log.rb +51 -6
  396. data/rakelib/lib/director/mdi_frame.rb +4 -1
  397. data/rakelib/lib/director/media_ctrl.rb +4 -1
  398. data/rakelib/lib/director/menu.rb +16 -3
  399. data/rakelib/lib/director/menu_bar.rb +13 -2
  400. data/rakelib/lib/director/menu_item.rb +6 -6
  401. data/rakelib/lib/director/mouse_state.rb +5 -2
  402. data/rakelib/lib/director/numeric_property_validator.rb +4 -1
  403. data/rakelib/lib/director/object.rb +5 -2
  404. data/rakelib/lib/director/page_setup_dialog.rb +4 -1
  405. data/rakelib/lib/director/palette.rb +54 -2
  406. data/rakelib/lib/director/panel.rb +4 -1
  407. data/rakelib/lib/director/pen.rb +5 -2
  408. data/rakelib/lib/director/pgarray_editor_dialog.rb +4 -7
  409. data/rakelib/lib/director/pgcell.rb +4 -1
  410. data/rakelib/lib/director/pgeditor.rb +6 -3
  411. data/rakelib/lib/director/pgmulti_button.rb +4 -1
  412. data/rakelib/lib/director/pgproperties.rb +6 -3
  413. data/rakelib/lib/director/pgproperty.rb +42 -3
  414. data/rakelib/lib/director/pgvalidation_info.rb +9 -1
  415. data/rakelib/lib/director/pickerbase.rb +4 -1
  416. data/rakelib/lib/director/platform_info.rb +9 -1
  417. data/rakelib/lib/director/popup_window.rb +14 -1
  418. data/rakelib/lib/director/preview_frame.rb +5 -2
  419. data/rakelib/lib/director/print_data.rb +4 -1
  420. data/rakelib/lib/director/print_dialog.rb +4 -1
  421. data/rakelib/lib/director/printer.rb +14 -6
  422. data/rakelib/lib/director/property_grid.rb +30 -1
  423. data/rakelib/lib/director/property_grid_event.rb +11 -1
  424. data/rakelib/lib/director/property_grid_interface.rb +20 -6
  425. data/rakelib/lib/director/property_grid_manager.rb +4 -1
  426. data/rakelib/lib/director/property_grid_page.rb +4 -1
  427. data/rakelib/lib/director/property_grid_page_state.rb +4 -1
  428. data/rakelib/lib/director/radio_box.rb +4 -1
  429. data/rakelib/lib/director/rearrange_list.rb +36 -0
  430. data/rakelib/lib/director/region.rb +5 -1
  431. data/rakelib/lib/director/region_iterator.rb +4 -1
  432. data/rakelib/lib/director/ribbon_art_provider.rb +9 -1
  433. data/rakelib/lib/director/ribbon_bar.rb +4 -1
  434. data/rakelib/lib/director/ribbon_bar_event.rb +4 -1
  435. data/rakelib/lib/director/ribbon_button_bar.rb +4 -1
  436. data/rakelib/lib/director/ribbon_button_bar_event.rb +4 -1
  437. data/rakelib/lib/director/ribbon_ctrl.rb +4 -1
  438. data/rakelib/lib/director/ribbon_gallery.rb +8 -3
  439. data/rakelib/lib/director/ribbon_gallery_event.rb +4 -1
  440. data/rakelib/lib/director/ribbon_page.rb +4 -1
  441. data/rakelib/lib/director/ribbon_panel.rb +4 -1
  442. data/rakelib/lib/director/ribbon_panel_event.rb +4 -1
  443. data/rakelib/lib/director/ribbon_tool_bar.rb +4 -1
  444. data/rakelib/lib/director/ribbon_tool_bar_event.rb +4 -1
  445. data/rakelib/lib/director/richtext_box.rb +61 -0
  446. data/rakelib/lib/director/richtext_buffer.rb +219 -22
  447. data/rakelib/lib/director/richtext_buffer_data_object.rb +4 -1
  448. data/rakelib/lib/director/richtext_composite_object.rb +174 -0
  449. data/rakelib/lib/director/richtext_ctrl.rb +157 -4
  450. data/rakelib/lib/director/richtext_event.rb +4 -1
  451. data/rakelib/lib/director/richtext_file_handler.rb +13 -1
  452. data/rakelib/lib/director/richtext_formatting_dialog.rb +44 -0
  453. data/rakelib/lib/director/richtext_header_footer_data.rb +4 -1
  454. data/rakelib/lib/director/richtext_image.rb +56 -0
  455. data/rakelib/lib/director/richtext_object.rb +272 -0
  456. data/rakelib/lib/director/richtext_paragraph_layout_box.rb +178 -0
  457. data/rakelib/lib/director/richtext_printing.rb +4 -1
  458. data/rakelib/lib/director/richtext_style_listbox.rb +37 -0
  459. data/rakelib/lib/director/richtext_style_organiser_dialog.rb +28 -0
  460. data/rakelib/lib/director/sash_event.rb +42 -0
  461. data/rakelib/lib/director/sash_layout_event.rb +4 -1
  462. data/rakelib/lib/director/sash_layout_window.rb +4 -1
  463. data/rakelib/lib/director/sash_window.rb +4 -1
  464. data/rakelib/lib/director/scroll_bar.rb +4 -1
  465. data/rakelib/lib/director/scrolled_t.rb +7 -4
  466. data/rakelib/lib/director/searchctrl.rb +4 -1
  467. data/rakelib/lib/director/sizer.rb +68 -2
  468. data/rakelib/lib/director/sizer_item.rb +31 -3
  469. data/rakelib/lib/director/slider.rb +4 -1
  470. data/rakelib/lib/director/splash_screen.rb +4 -1
  471. data/rakelib/lib/director/splitter_event.rb +4 -1
  472. data/rakelib/lib/director/splitter_window.rb +4 -1
  473. data/rakelib/lib/director/static_bitmap.rb +4 -1
  474. data/rakelib/lib/director/static_box.rb +5 -2
  475. data/rakelib/lib/director/status_bar.rb +5 -1
  476. data/rakelib/lib/director/styled_text_ctrl.rb +14 -2
  477. data/rakelib/lib/director/styled_text_event.rb +4 -1
  478. data/rakelib/lib/director/system_options.rb +4 -1
  479. data/rakelib/lib/director/system_settings.rb +4 -1
  480. data/rakelib/lib/director/task_bar_icon.rb +5 -2
  481. data/rakelib/lib/director/text_attr.rb +5 -2
  482. data/rakelib/lib/director/text_entry.rb +4 -1
  483. data/rakelib/lib/director/text_validator.rb +6 -1
  484. data/rakelib/lib/director/textctrl.rb +32 -3
  485. data/rakelib/lib/director/time_picker_ctrl.rb +4 -1
  486. data/rakelib/lib/director/timer.rb +4 -1
  487. data/rakelib/lib/director/tip_provider.rb +4 -1
  488. data/rakelib/lib/director/toggle_button.rb +4 -1
  489. data/rakelib/lib/director/tool_bar.rb +20 -1
  490. data/rakelib/lib/director/tool_tip.rb +5 -2
  491. data/rakelib/lib/director/top_level_window.rb +58 -51
  492. data/rakelib/lib/director/tree_ctrl.rb +24 -46
  493. data/rakelib/lib/director/tree_event.rb +28 -10
  494. data/rakelib/lib/director/uiaction_simulator.rb +4 -1
  495. data/rakelib/lib/director/utils.rb +9 -1
  496. data/rakelib/lib/director/validator.rb +4 -1
  497. data/rakelib/lib/director/variant.rb +5 -2
  498. data/rakelib/lib/director/vlistbox.rb +4 -1
  499. data/rakelib/lib/director/vscrolled_window.rb +4 -1
  500. data/rakelib/lib/director/window.rb +81 -82
  501. data/rakelib/lib/director/window_disabler.rb +4 -1
  502. data/rakelib/lib/director/with_images.rb +5 -2
  503. data/rakelib/lib/director/wizard_page.rb +4 -1
  504. data/rakelib/lib/director/xml_node.rb +4 -1
  505. data/rakelib/lib/director/xml_resource.rb +4 -1
  506. data/rakelib/lib/director.rb +27 -28
  507. data/rakelib/lib/ext/enum_chain.rb +4 -1
  508. data/rakelib/lib/extractor/class.rb +8 -6
  509. data/rakelib/lib/extractor/enum.rb +15 -2
  510. data/rakelib/lib/extractor/function.rb +12 -4
  511. data/rakelib/lib/extractor/module.rb +4 -1
  512. data/rakelib/lib/extractor/variable.rb +4 -1
  513. data/rakelib/lib/extractor.rb +7 -2
  514. data/rakelib/lib/generate/analyzer.rb +31 -21
  515. data/rakelib/lib/generate/base.rb +4 -1
  516. data/rakelib/lib/generate/doc/animation_ctrl.yaml +15 -0
  517. data/rakelib/lib/generate/doc/events.yaml +10 -4
  518. data/rakelib/lib/generate/doc/grid_cell_attr.yaml +21 -0
  519. data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
  520. data/rakelib/lib/generate/doc/html_cell.yaml +11 -0
  521. data/rakelib/lib/generate/doc/html_help_controller.yaml +23 -0
  522. data/rakelib/lib/generate/doc/html_help_window.yaml +21 -0
  523. data/rakelib/lib/generate/doc/html_window.yaml +47 -0
  524. data/rakelib/lib/generate/doc/pg_editor.yaml +11 -0
  525. data/rakelib/lib/generate/doc/pg_multi_button.yaml +78 -0
  526. data/rakelib/lib/generate/doc/pg_properties.yaml +244 -0
  527. data/rakelib/lib/generate/doc/pg_property.yaml +188 -0
  528. data/rakelib/lib/generate/doc/property_grid.yaml +23 -0
  529. data/rakelib/lib/generate/doc/property_grid_interface.yaml +30 -0
  530. data/rakelib/lib/generate/doc/property_grid_manager.yaml +40 -0
  531. data/rakelib/lib/generate/doc/rich_text_html_handler.yaml +11 -0
  532. data/rakelib/lib/generate/doc/static_box.yaml +8 -0
  533. data/rakelib/lib/generate/doc/styled_text_ctrl.yaml +18 -0
  534. data/rakelib/lib/generate/doc/symbol_picker_dialog.yaml +40 -0
  535. data/rakelib/lib/generate/doc/xml_resource.yaml +3 -0
  536. data/rakelib/lib/generate/doc.rb +33 -6
  537. data/rakelib/lib/generate/interface.rb +80 -110
  538. data/rakelib/lib/generate/rakedep.rb +4 -1
  539. data/rakelib/lib/specs/interfaces.rb +50 -21
  540. data/rakelib/lib/streams.rb +5 -1
  541. data/rakelib/lib/swig_runner.rb +38 -72
  542. data/rakelib/lib/typemap/array_int_selections.rb +4 -1
  543. data/rakelib/lib/typemap/common.rb +81 -11
  544. data/rakelib/lib/typemap/config.rb +55 -0
  545. data/rakelib/lib/typemap/data_format.rb +5 -2
  546. data/rakelib/lib/typemap/data_object_data.rb +6 -3
  547. data/rakelib/lib/typemap/datetime.rb +8 -1
  548. data/rakelib/lib/typemap/grid_client_data.rb +4 -1
  549. data/rakelib/lib/typemap/grid_coords.rb +37 -7
  550. data/rakelib/lib/typemap/html_cell.rb +4 -1
  551. data/rakelib/lib/typemap/io_streams.rb +4 -1
  552. data/rakelib/lib/typemap/pgcell.rb +4 -1
  553. data/rakelib/lib/typemap/pgeditor.rb +4 -1
  554. data/rakelib/lib/typemap/pgprop_arg.rb +11 -3
  555. data/rakelib/lib/typemap/pgproperty.rb +4 -1
  556. data/rakelib/lib/typemap/points_list.rb +9 -8
  557. data/rakelib/lib/typemap/richtext.rb +185 -11
  558. data/rakelib/lib/typemap/tree_itemid.rb +26 -1
  559. data/rakelib/lib/util/string.rb +14 -9
  560. data/rakelib/prepost.rake +4 -1
  561. data/rakelib/prepost.rb +4 -1
  562. data/rakelib/run.rake +4 -1
  563. data/samples/aui/aui.rb +8 -3
  564. data/samples/bigdemo/bigdemo.rb +9 -2
  565. data/samples/bigdemo/run.rb +9 -2
  566. data/samples/bigdemo/utils.rb +9 -1
  567. data/samples/calendar/calendar.rb +9 -4
  568. data/samples/caret/caret.rb +8 -3
  569. data/samples/controls/books.rb +8 -2
  570. data/samples/controls/controls.rb +33 -77
  571. data/samples/controls/get_item_sample.rb +8 -2
  572. data/samples/controls/htlbox.rb +10 -3
  573. data/samples/dialogs/dialogs.rb +9 -4
  574. data/samples/dialogs/wizard.rb +8 -3
  575. data/samples/dragdrop/dragdrop.rb +8 -3
  576. data/samples/drawing/bitmap.rb +8 -3
  577. data/samples/drawing/bitmap_image.rb +8 -3
  578. data/samples/drawing/graphics_drawing.rb +44 -33
  579. data/samples/drawing/image_prt.rb +8 -2
  580. data/samples/drawing/maths_images.rb +8 -3
  581. data/samples/drawing/rmagic_bitmap_image.rb +8 -3
  582. data/samples/etc/choice.rb +8 -3
  583. data/samples/etc/miniframe.rb +8 -3
  584. data/samples/etc/sash.rb +8 -3
  585. data/samples/etc/scrollwin.rb +8 -3
  586. data/samples/etc/system_settings.rb +8 -3
  587. data/samples/event/activation.rb +8 -3
  588. data/samples/event/event.rb +8 -3
  589. data/samples/event/threaded.rb +8 -3
  590. data/samples/event/update_ui_event.rb +8 -3
  591. data/samples/grid/grid.rb +9 -3
  592. data/samples/grid/gridtablebase.rb +8 -3
  593. data/samples/html/html.rb +8 -3
  594. data/samples/mdi/mdi.rb +8 -3
  595. data/samples/minimal/minimal.rb +8 -3
  596. data/samples/minimal/nothing.rb +8 -3
  597. data/samples/printing/printing.rb +8 -3
  598. data/samples/printing/printing2.rb +8 -2
  599. data/samples/propgrid/propgrid.rb +4 -1
  600. data/samples/propgrid/propgrid_minimal.rb +4 -2
  601. data/samples/propgrid/sample_props.rb +4 -1
  602. data/samples/ribbon/ribbon.rb +4 -1
  603. data/samples/sampler/editor.rb +4 -1
  604. data/samples/sampler/ext.rb +4 -1
  605. data/samples/sampler/sample.rb +13 -4
  606. data/samples/sampler/stc_editor.rb +4 -1
  607. data/samples/sampler/txt_editor.rb +4 -1
  608. data/samples/sampler.rb +11 -3
  609. data/samples/splash/splash.rb +4 -2
  610. data/samples/text/art/richtext/alignleft.xpm +24 -0
  611. data/samples/text/art/richtext/alignright.xpm +24 -0
  612. data/samples/text/art/richtext/bold.xpm +24 -0
  613. data/samples/text/art/richtext/centre.xpm +24 -0
  614. data/samples/text/art/richtext/copy.xpm +45 -0
  615. data/samples/text/art/richtext/cut.xpm +47 -0
  616. data/samples/text/art/richtext/font.xpm +25 -0
  617. data/samples/text/art/richtext/idea.xpm +47 -0
  618. data/samples/text/art/richtext/indentless.xpm +25 -0
  619. data/samples/text/art/richtext/indentmore.xpm +25 -0
  620. data/samples/text/art/richtext/italic.xpm +25 -0
  621. data/samples/text/art/richtext/open.xpm +58 -0
  622. data/samples/text/art/richtext/paste.xpm +47 -0
  623. data/samples/text/art/richtext/redo.xpm +59 -0
  624. data/samples/text/art/richtext/save.xpm +43 -0
  625. data/samples/text/art/richtext/smiley.xpm +42 -0
  626. data/samples/text/art/richtext/underline.xpm +25 -0
  627. data/samples/text/art/richtext/undo.xpm +59 -0
  628. data/samples/text/art/richtext/zebra.xpm +409 -0
  629. data/samples/text/rich_textctrl.rb +8 -3
  630. data/samples/text/richtext.rb +1794 -0
  631. data/samples/text/scintilla.rb +8 -3
  632. data/samples/text/textctrl.rb +21 -4
  633. data/samples/text/tn_richtext.png +0 -0
  634. data/samples/text/unicode.rb +9 -4
  635. data/samples/treectrl/treectrl.rb +10 -5
  636. data/samples/xrc/custom_xrc_sample.rb +8 -3
  637. data/samples/xrc/xrc_sample.rb +8 -3
  638. data/tests/art/test_art/bitmap/wxruby-128x128.png +0 -0
  639. data/tests/art/test_art/bitmap/wxruby-256x256.png +0 -0
  640. data/tests/art/test_art/bitmap/wxruby-64x64.png +0 -0
  641. data/tests/lib/item_container_tests.rb +3 -0
  642. data/tests/lib/text_entry_tests.rb +3 -0
  643. data/tests/lib/wxapp_runner.rb +3 -0
  644. data/tests/lib/wxframe_runner.rb +81 -3
  645. data/tests/test_app_event_filter.rb +3 -0
  646. data/tests/test_app_exit_exception.rb +36 -0
  647. data/tests/test_app_init_exception.rb +20 -0
  648. data/tests/test_app_traits.rb +33 -0
  649. data/tests/test_art.rb +22 -0
  650. data/tests/test_art_provider.rb +3 -0
  651. data/tests/test_aui.rb +65 -0
  652. data/tests/test_basic.rb +5 -1
  653. data/tests/test_book_controls.rb +29 -0
  654. data/tests/test_box_sizer.rb +5 -2
  655. data/tests/test_clipboard.rb +3 -0
  656. data/tests/test_config.rb +150 -0
  657. data/tests/test_dc.rb +3 -0
  658. data/tests/test_dialog.rb +3 -0
  659. data/tests/test_event_handling.rb +3 -0
  660. data/tests/test_events.rb +3 -0
  661. data/tests/test_exceptions.rb +41 -0
  662. data/tests/test_ext_controls.rb +286 -3
  663. data/tests/test_file_dialog.rb +55 -0
  664. data/tests/test_font.rb +8 -5
  665. data/tests/test_gdi_object.rb +3 -0
  666. data/tests/test_geometry.rb +4 -0
  667. data/tests/test_grid_sizer.rb +7 -4
  668. data/tests/test_intl.rb +3 -0
  669. data/tests/test_item_data.rb +3 -0
  670. data/tests/test_list_ctrl.rb +4 -1
  671. data/tests/test_log.rb +63 -0
  672. data/tests/test_proof_check.rb +52 -0
  673. data/tests/test_richtext.rb +204 -0
  674. data/tests/test_sizer.rb +43 -0
  675. data/tests/test_std_controls.rb +81 -35
  676. data/tests/test_timer.rb +3 -0
  677. data/tests/test_variant.rb +3 -0
  678. data/tests/test_window.rb +10 -8
  679. data/tests/testapp.rb +4 -0
  680. data/tests/testapp_noframe.rb +4 -0
  681. metadata +112 -5
  682. data/ext/wxruby3/swig/custom/swig3/rubyrun.swg +0 -456
  683. data/rakelib/lib/director/html_help_frame.rb +0 -25
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './ctrl_with_items'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './ctrl_with_items'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './window'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './event'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -16,6 +19,11 @@ module WXRuby3
16
19
  wxColour::GetPixel wxTransparentColour wxColour::operator!=
17
20
  wxBLACK wxBLUE wxCYAN wxGREEN wxYELLOW wxLIGHT_GREY wxRED wxWHITE
18
21
  ])
22
+ spec.map 'unsigned char *' => 'Integer' do
23
+ map_in temp: 'unsigned char tmp', code: 'tmp = NUM2UINT($input); $1 = &tmp;'
24
+ map_argout code: '$result = SWIG_Ruby_AppendOutput($result, UINT2NUM(tmp$argnum));'
25
+ map_typecheck precedence: 'POINTER', code: '$1 = (TYPE($input) == T_FIXNUM);'
26
+ end
19
27
  # rename static method to prevent masking the instance method
20
28
  spec.rename_for_ruby 'create_disabled' => 'wxColour::MakeDisabled(unsigned char *r, unsigned char *g, unsigned char *b, unsigned char brightness=255)',
21
29
  # for consistency
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './window'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './ctrl_with_items'
@@ -0,0 +1,94 @@
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
+ require_relative './window'
10
+
11
+ module WXRuby3
12
+
13
+ class Director
14
+
15
+ class ComboCtrl < Window
16
+
17
+ def setup
18
+ super
19
+ spec.items << 'wxComboPopup' << 'wxOwnerDrawnComboBox' << 'wxItemContainer'
20
+ # mixin TextEntry
21
+ spec.include_mixin 'wxComboCtrl', { 'Wx::TextEntry' => 'wxTextEntryBase' }
22
+ spec.override_inheritance_chain('wxComboCtrl',
23
+ %w[wxControl
24
+ wxWindow
25
+ wxEvtHandler
26
+ wxObject])
27
+ spec.regard %w[
28
+ wxComboCtrl::AnimateShow
29
+ wxComboCtrl::DoSetPopupControl
30
+ wxComboCtrl::DoShowPopup
31
+ ]
32
+ # turn wxComboPopup into a mixin module
33
+ spec.make_mixin 'wxComboPopup'
34
+ # override inheritance chain
35
+ spec.override_inheritance_chain('wxOwnerDrawnComboBox', %w[wxComboCtrl wxControl wxWindow wxEvtHandler wxObject])
36
+ spec.fold_bases('wxOwnerDrawnComboBox' => %w[wxItemContainer])
37
+ spec.regard %w[
38
+ wxOwnerDrawnComboBox::OnDrawBackground
39
+ wxOwnerDrawnComboBox::OnDrawItem
40
+ wxOwnerDrawnComboBox::OnMeasureItem
41
+ wxOwnerDrawnComboBox::OnMeasureItemWidth
42
+ ]
43
+ # unuseful overloads
44
+ spec.ignore 'wxOwnerDrawnComboBox::wxOwnerDrawnComboBox(wxWindow *, wxWindowID, const wxString &, const wxPoint &, const wxSize &, int, const wxString [], long, const wxValidator &, const wxString &)',
45
+ 'wxOwnerDrawnComboBox::Create(wxWindow *, wxWindowID, const wxString &, const wxPoint &, const wxSize &, int, const wxString [], long, const wxValidator &, const wxString &)'
46
+ spec.ignore('wxItemContainer::Append(const wxString &, wxClientData *)',
47
+ 'wxItemContainer::Append(const std::vector< wxString > &)',
48
+ 'wxItemContainer::Append(const wxArrayString &, wxClientData **)',
49
+ 'wxItemContainer::Append(unsigned int, const wxString *)',
50
+ 'wxItemContainer::Append(unsigned int, const wxString *, void **)',
51
+ 'wxItemContainer::Append(unsigned int, const wxString *, wxClientData **)',
52
+ 'wxItemContainer::Insert(const wxString &, unsigned int, wxClientData *)',
53
+ 'wxItemContainer::Insert(const std::vector< wxString > &)',
54
+ 'wxItemContainer::Insert(const wxArrayString &, unsigned int, wxClientData **)',
55
+ 'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int)',
56
+ 'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int, void **)',
57
+ 'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int, wxClientData **)',
58
+ 'wxItemContainer::Set(const std::vector< wxString > &)',
59
+ 'wxItemContainer::Set(const wxArrayString &, wxClientData **)',
60
+ 'wxItemContainer::Set(unsigned int, const wxString *)',
61
+ 'wxItemContainer::Set(unsigned int, const wxString *, void **)',
62
+ 'wxItemContainer::Set(unsigned int, const wxString *, wxClientData **)',
63
+ 'wxItemContainer::DetachClientObject',
64
+ 'wxItemContainer::HasClientObjectData',
65
+ 'wxItemContainer::GetClientObject',
66
+ 'wxItemContainer::SetClientObject',
67
+ 'wxItemContainer::HasClientUntypedData',
68
+ 'wxItemContainer::Clear')
69
+ spec.ignore('wxItemContainer::Append(const wxArrayString &, void **)',
70
+ 'wxItemContainer::Insert(const wxArrayString &, unsigned int, void **)',
71
+ 'wxItemContainer::Set(const wxArrayString &, void **)', ignore_doc: false)
72
+ # ambiguous
73
+ spec.ignore 'wxOwnerDrawnComboBox::IsEmpty', ignore_doc: false
74
+ # for doc only
75
+ spec.map 'void** clientData' => 'Array', swig: false do
76
+ map_in code: ''
77
+ end
78
+ spec.ignore(%w[wxItemContainer::GetClientData wxItemContainer::SetClientData], ignore_doc: false) # keep docs
79
+ # Replace the old Wx definition of this method (which segfaults)
80
+ # Only need the setter as we cache data in Ruby and the getter
81
+ # therefor can be pure Ruby
82
+ spec.add_extend_code 'wxOwnerDrawnComboBox', <<~__HEREDOC
83
+ VALUE set_client_data(int n, VALUE item_data) {
84
+ self->SetClientData(n, (void *)item_data);
85
+ return item_data;
86
+ }
87
+ __HEREDOC
88
+ end
89
+
90
+ end # class ComboCtrl
91
+
92
+ end # class Director
93
+
94
+ end # module WXRuby3
@@ -0,0 +1,135 @@
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 ConfigBase < Director
14
+
15
+ def setup
16
+ super
17
+ spec.items.clear
18
+ spec.add_header_code <<~__HEREDOC
19
+ #include "wxruby-Config.h"
20
+
21
+ static const char * __iv_ConfigBase_sc_config = "@config";
22
+
23
+ static VALUE config_base_get(int argc, VALUE *argv, VALUE self)
24
+ {
25
+ bool autoCreate = true;
26
+ if (argc > 0)
27
+ {
28
+ if (argc > 1)
29
+ {
30
+ rb_raise(rb_eArgError, "Expected a single boolean argument");
31
+ return Qnil;
32
+ }
33
+ autoCreate = !(argv[0] == Qfalse || argv[0] == Qnil);
34
+ }
35
+
36
+ VALUE cConfigBase_Singleton = rb_funcall(g_cConfigBase, rb_intern("singleton_class"), 0, 0);
37
+ VALUE curConfig = rb_iv_get(cConfigBase_Singleton, __iv_ConfigBase_sc_config);
38
+ // create new config instance if none exists and autoCreate is true
39
+ if (NIL_P(curConfig) && autoCreate)
40
+ {
41
+ // create new ConfigBase instance
42
+ curConfig = rb_class_new_instance(0, 0, g_cConfig);
43
+ // set global wxConfigBase instance to a new Ruby Config wrapper
44
+ wxConfigBase::Set(wxRuby_Ruby2ConfigBase(curConfig));
45
+ // store global ConfigBase instance as Ruby instance variable of ConfigBase singleton class
46
+ // (keeps it safe from GC)
47
+ VALUE cConfigBase_Singleton = rb_funcall(g_cConfigBase, rb_intern("singleton_class"), 0, 0);
48
+ rb_iv_set(cConfigBase_Singleton, __iv_ConfigBase_sc_config, curConfig);
49
+ }
50
+ return curConfig;
51
+ }
52
+
53
+ static VALUE config_base_create(int argc, VALUE *argv, VALUE self)
54
+ {
55
+ if (argc>0)
56
+ {
57
+ rb_raise(rb_eArgError, "No arguments allowed.");
58
+ return Qnil;
59
+ }
60
+ return config_base_get(0, 0, self);
61
+ }
62
+
63
+ static VALUE config_base_set(int argc, VALUE *argv, VALUE self)
64
+ {
65
+ VALUE newCfg = Qnil;
66
+ if (argc>0)
67
+ {
68
+ if (argc > 1)
69
+ {
70
+ rb_raise(rb_eArgError, "Expected a single argument.");
71
+ return Qnil;
72
+ }
73
+ newCfg = argv[0];
74
+ if (!NIL_P(newCfg) && rb_obj_is_kind_of(newCfg, g_cConfig) != Qtrue)
75
+ {
76
+ rb_raise(rb_eArgError, "Expected a Wx::Config instance");
77
+ return Qnil;
78
+ }
79
+ }
80
+
81
+ // get existing config (if any)
82
+ VALUE cConfigBase_Singleton = rb_funcall(g_cConfigBase, rb_intern("singleton_class"), 0, 0);
83
+ VALUE curConfig = rb_iv_get(cConfigBase_Singleton, __iv_ConfigBase_sc_config);
84
+ // set new config instance (could be nil)
85
+ if (!NIL_P(newCfg))
86
+ {
87
+ // set global wxConfigBase instance to a (new) Ruby Hash wrapper
88
+ wxConfigBase::Set(wxRuby_Ruby2ConfigBase(newCfg));
89
+ }
90
+ rb_iv_set(cConfigBase_Singleton, __iv_ConfigBase_sc_config, newCfg);
91
+
92
+ return curConfig; // return old config (if any)
93
+ }
94
+ __HEREDOC
95
+ spec.add_wrapper_code <<~__HEREDOC
96
+ SWIGINTERN void
97
+ _free_config(void* cfg)
98
+ {
99
+ if (cfg)
100
+ {
101
+ wxRbHashConfig* config = (wxRbHashConfig*)cfg;
102
+ delete config;
103
+ }
104
+ }
105
+
106
+ SWIGINTERN VALUE
107
+ #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
108
+ config_allocate(VALUE self)
109
+ #else
110
+ config_allocate(int argc, VALUE *argv, VALUE self)
111
+ #endif
112
+ {
113
+ VALUE vresult = Data_Wrap_Struct(g_cConfig, 0, _free_config, 0);
114
+ #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
115
+ rb_obj_call_init(vresult, argc, argv);
116
+ #endif
117
+ return vresult;
118
+ }
119
+ __HEREDOC
120
+ spec.add_init_code <<~__HEREDOC
121
+ g_cConfigBase = rb_define_class_under(mWxCore, "ConfigBase", rb_cObject);
122
+ rb_define_module_function(g_cConfigBase, "create", VALUEFUNC(config_base_create), -1);
123
+ rb_define_module_function(g_cConfigBase, "get", VALUEFUNC(config_base_get), -1);
124
+ rb_define_module_function(g_cConfigBase, "set", VALUEFUNC(config_base_set), -1);
125
+
126
+ g_cConfig = rb_define_class_under(mWxCore, "Config", g_cConfigBase);
127
+ rb_define_alloc_func(g_cConfig, config_allocate);
128
+ __HEREDOC
129
+ end
130
+
131
+ end
132
+
133
+ end
134
+
135
+ end
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './button'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './window'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './window'
@@ -15,6 +18,7 @@ module WXRuby3
15
18
  super
16
19
  if spec.module_name == 'wxControlWithItems'
17
20
  spec.items.replace %w[wxControlWithItems wxItemContainer wxItemContainerImmutable]
21
+ spec.no_proxy 'wxControlWithItems'
18
22
  spec.fold_bases('wxControlWithItems' => %w[wxItemContainer wxItemContainerImmutable])
19
23
  spec.override_inheritance_chain('wxControlWithItems',
20
24
  %w[wxControl
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -17,7 +20,8 @@ module WXRuby3
17
20
  'wxCursor::wxCursor(const wxImage &)',
18
21
  'wxCursor::wxCursor(const char *const *)',
19
22
  'wxCursor::wxCursor(const wxCursor &)'
20
- spec.ignore 'wxCursor::wxCursor(const char[],int,int,int,int,const char[])'
23
+ spec.ignore 'wxCursor::wxCursor(const char[],int,int,int,int,const char[])',
24
+ 'wxCursor::wxCursor(const char *const *)'
21
25
  # ignore stock object (see RubyStockObjects.i)
22
26
  spec.ignore %w[wxSTANDARD_CURSOR wxHOURGLASS_CURSOR wxCROSS_CURSOR]
23
27
  super
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -102,8 +105,7 @@ module WXRuby3
102
105
  }
103
106
  else
104
107
  {
105
- Swig::DirectorTypeMismatchException::raise(rb_eTypeError,
106
- "get_data_here should return a string, or nil on failure");
108
+ Swig::DirectorTypeMismatchException::raise(swig_get_self(), "$symname", rb_eTypeError, "get_data_here should return a string, or nil on failure");
107
109
  }
108
110
  }
109
111
  else
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './event'
@@ -98,7 +101,7 @@ module WXRuby3
98
101
  {
99
102
  if (ruby_value == Qnil)
100
103
  {
101
- return new wxDateTime();
104
+ return new wxDateTime(wxDefaultDateTime.GetValue());
102
105
  }
103
106
  else
104
107
  {
@@ -130,6 +133,10 @@ module WXRuby3
130
133
  __HEREDOC
131
134
  elsif spec.module_name == 'wxCalendarEvent'
132
135
  spec.override_inheritance_chain('wxCalendarEvent', 'wxDateEvent', {'wxCommandEvent' => 'wxEvent'}, 'wxEvent', 'wxObject', doc_override: false)
136
+ spec.ignore 'wxCalendarEvent::SetWeekDay' # only internal use; saves us from exposing/mapping wxDateTime::WeekDay
137
+ spec.map 'wxDateTime::WeekDay' => 'Integer' do
138
+ map_out code: '$result = INT2NUM(static_cast<int> ($1));'
139
+ end
133
140
  # inconsistent definitions
134
141
  spec.add_swig_code %Q{%constant wxEventType wxEVT_CALENDAR = wxEVT_CALENDAR_DOUBLECLICKED;}
135
142
  end
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './window'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -13,11 +16,18 @@ module WXRuby3
13
16
 
14
17
  def setup
15
18
  super
19
+ spec.items << 'wxFontMetrics'
16
20
  # it's not safe to track DC objects as these are often created on the stack in C++
17
21
  # before being passed to Ruby methods
18
22
  # as we cannot capture their deletion in anyway this would leave the tracked items
19
23
  # registered and reused when future stack allocated DC's happen to have the same address
20
24
  spec.gc_as_untracked
25
+ spec.regard 'wxFontMetrics::height',
26
+ 'wxFontMetrics::ascent',
27
+ 'wxFontMetrics::descent',
28
+ 'wxFontMetrics::internalLeading',
29
+ 'wxFontMetrics::externalLeading',
30
+ 'wxFontMetrics::averageWidth'
21
31
  spec.ignore [
22
32
  'wxDC::GetPartialTextExtents',
23
33
  'wxDC::DrawLines(const wxPointList *,wxCoord,wxCoord)',
@@ -26,6 +36,12 @@ module WXRuby3
26
36
  'wxDC::GetLogicalOrigin(wxCoord *,wxCoord *) const',
27
37
  'wxDC::GetHandle'
28
38
  ]
39
+ # ignore Matrix Transformation methods until someone asks for them
40
+ # TODO : possibly wrap at a later time
41
+ spec.ignore 'wxDC::SetTransformMatrix',
42
+ 'wxDC::GetTransformMatrix',
43
+ 'wxDC::ResetTransformMatrix',
44
+ 'wxDC::CanUseTransformMatrix'
29
45
  spec.disable_proxies
30
46
  spec.rename_for_ruby({
31
47
  'GetDimensions' => 'wxDC::GetSize(wxCoord *, wxCoord *) const',
@@ -47,6 +63,8 @@ module WXRuby3
47
63
  return rb_result;
48
64
  }
49
65
  __HEREDOC
66
+ # for GetUserScale and GetLogicalScale
67
+ spec.map_apply 'double * OUTPUT' => 'double *'
50
68
  spec.swig_import 'swig/classes/include/wxGDICommon.h'
51
69
  end
52
70
  end # class DC
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Defs director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -179,7 +182,7 @@ module WXRuby3
179
182
  }
180
183
  return rc;
181
184
  }
182
- static VALUE draw_on(wxWindow* tgt, wxBitmap &buffer=wxNullBitmap, int style=wxBUFFER_CLIENT_AREA)
185
+ static VALUE draw_on(wxWindow* tgt, wxBitmap &buffer, int style=wxBUFFER_CLIENT_AREA)
183
186
  {
184
187
  if (!wxRuby_IsAppRunning())
185
188
  rb_raise(rb_eRuntimeError, "A running Wx::App is required.");
@@ -275,6 +278,28 @@ module WXRuby3
275
278
  # like all DC this should best always be a temporary stack object
276
279
  # we do not allow creation in Ruby but rather provide class
277
280
  # methods for block execution on a temp dc
281
+ unless Config.platform == :linux
282
+ spec.add_extend_code 'wxGCDC', <<~__HEREDOC
283
+ static VALUE draw_on(const wxPrinterDC& dc)
284
+ {
285
+ if (!wxRuby_IsAppRunning())
286
+ rb_raise(rb_eRuntimeError, "A running Wx::App is required.");
287
+ VALUE rc = Qnil;
288
+ if (rb_block_given_p ())
289
+ {
290
+ // Somehow there seems to be a problem with the Ruby GCDC value
291
+ // being GC-ed unless we block GC for the duration of the block
292
+ // execution. Unclear why. We have similar code for other objects
293
+ // where this issue does not come up.
294
+ wxGCDC gc_dc(dc);
295
+ wxGCDC* dc_ptr = &gc_dc;
296
+ VALUE rb_dc = SWIG_NewPointerObj(SWIG_as_voidptr(dc_ptr), SWIGTYPE_p_wxGCDC, 0);
297
+ rc = rb_yield(rb_dc);
298
+ }
299
+ return rc;
300
+ }
301
+ __HEREDOC
302
+ end
278
303
  spec.add_extend_code 'wxGCDC', <<~__HEREDOC
279
304
  static VALUE draw_on(const wxWindowDC& dc)
280
305
  {
@@ -312,24 +337,6 @@ module WXRuby3
312
337
  }
313
338
  return rc;
314
339
  }
315
- static VALUE draw_on(const wxPrinterDC& dc)
316
- {
317
- if (!wxRuby_IsAppRunning())
318
- rb_raise(rb_eRuntimeError, "A running Wx::App is required.");
319
- VALUE rc = Qnil;
320
- if (rb_block_given_p ())
321
- {
322
- // Somehow there seems to be a problem with the Ruby GCDC value
323
- // being GC-ed unless we block GC for the duration of the block
324
- // execution. Unclear why. We have similar code for other objects
325
- // where this issue does not come up.
326
- wxGCDC gc_dc(dc);
327
- wxGCDC* dc_ptr = &gc_dc;
328
- VALUE rb_dc = SWIG_NewPointerObj(SWIG_as_voidptr(dc_ptr), SWIGTYPE_p_wxGCDC, 0);
329
- rc = rb_yield(rb_dc);
330
- }
331
- return rc;
332
- }
333
340
  static VALUE draw_on(wxGraphicsContext* gc)
334
341
  {
335
342
  if (!wxRuby_IsAppRunning())