wxruby3 0.9.0.pre.rc.3 → 0.9.0

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 (656) 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 +10 -1
  7. data/ext/wxruby3/swig/RubyStockObjects.i +5 -3
  8. data/ext/wxruby3/swig/common.i +8 -3
  9. data/ext/wxruby3/swig/mark_free_impl.i +6 -4
  10. data/ext/wxruby3/swig/memory_management.i +5 -3
  11. data/ext/wxruby3/swig/typedefs.i +5 -3
  12. data/ext/wxruby3/swig/wx.i +5 -0
  13. data/ext/wxruby3/swig/wx.rc +4 -2
  14. data/lib/wx/accessors.rb +10 -2
  15. data/lib/wx/aui/auifloatframe.rb +20 -0
  16. data/lib/wx/aui/auimanager.rb +3 -0
  17. data/lib/wx/aui/auinotebook.rb +17 -0
  18. data/lib/wx/aui/require.rb +5 -1
  19. data/lib/wx/aui.rb +4 -1
  20. data/lib/wx/core/acceleratortable.rb +8 -0
  21. data/lib/wx/core/animation.rb +8 -0
  22. data/lib/wx/core/app.rb +8 -0
  23. data/lib/wx/core/array_ext.rb +7 -0
  24. data/lib/wx/core/art_locator.rb +7 -0
  25. data/lib/wx/core/artprovider.rb +9 -0
  26. data/lib/wx/core/bitmap.rb +16 -4
  27. data/lib/wx/core/bitmap_combobox.rb +7 -0
  28. data/lib/wx/core/brush.rb +7 -0
  29. data/lib/wx/core/busycursor.rb +9 -0
  30. data/lib/wx/core/choice.rb +7 -0
  31. data/lib/wx/core/choicedlg.rb +7 -0
  32. data/lib/wx/core/clientdc.rb +9 -0
  33. data/lib/wx/core/clipboard.rb +8 -0
  34. data/lib/wx/core/collapsible_pane.rb +8 -1
  35. data/lib/wx/core/colour.rb +8 -0
  36. data/lib/wx/core/combo_ctrl.rb +110 -0
  37. data/lib/wx/core/combobox.rb +7 -0
  38. data/lib/wx/core/config.rb +303 -0
  39. data/lib/wx/core/controlwithitems.rb +12 -1
  40. data/lib/wx/core/cursor.rb +14 -4
  41. data/lib/wx/core/data_object.rb +7 -0
  42. data/lib/wx/core/dataformat.rb +9 -0
  43. data/lib/wx/core/datetime.rb +14 -0
  44. data/lib/wx/core/dc.rb +7 -0
  45. data/lib/wx/core/dialog.rb +18 -1
  46. data/lib/wx/core/enum.rb +7 -0
  47. data/lib/wx/core/event.rb +7 -0
  48. data/lib/wx/core/event_blocker.rb +7 -0
  49. data/lib/wx/core/event_loop.rb +7 -0
  50. data/lib/wx/core/evthandler.rb +8 -0
  51. data/lib/wx/core/ext.rb +7 -0
  52. data/lib/wx/core/file_dialog.rb +23 -0
  53. data/lib/wx/core/find_replace_dialog.rb +7 -0
  54. data/lib/wx/core/functions.rb +8 -0
  55. data/lib/wx/core/gauge.rb +10 -1
  56. data/lib/wx/core/genericdirctrl.rb +9 -0
  57. data/lib/wx/core/hboxsizer.rb +16 -0
  58. data/lib/wx/core/helpcontroller.rb +8 -0
  59. data/lib/wx/core/helpcontrollerhelpprovider.rb +9 -0
  60. data/lib/wx/core/helpprovider.rb +10 -1
  61. data/lib/wx/core/icon.rb +17 -6
  62. data/lib/wx/core/id_helper.rb +7 -0
  63. data/lib/wx/core/image.rb +16 -4
  64. data/lib/wx/core/imagelist.rb +8 -1
  65. data/lib/wx/core/listbox.rb +7 -0
  66. data/lib/wx/core/listctrl.rb +9 -0
  67. data/lib/wx/core/locale.rb +8 -0
  68. data/lib/wx/core/log.rb +24 -0
  69. data/lib/wx/core/menu.rb +9 -0
  70. data/lib/wx/core/menu_bar.rb +7 -0
  71. data/lib/wx/core/menuitem.rb +9 -0
  72. data/lib/wx/core/notebook.rb +9 -0
  73. data/lib/wx/core/object.rb +9 -0
  74. data/lib/wx/core/paintdc.rb +7 -0
  75. data/lib/wx/core/pen.rb +7 -0
  76. data/lib/wx/core/pen_info.rb +7 -0
  77. data/lib/wx/core/platform_info.rb +7 -0
  78. data/lib/wx/core/point.rb +8 -0
  79. data/lib/wx/core/real_point.rb +8 -0
  80. data/lib/wx/core/rect.rb +9 -0
  81. data/lib/wx/core/region_iterator.rb +7 -0
  82. data/lib/wx/core/simplehelpprovider.rb +9 -0
  83. data/lib/wx/core/size.rb +8 -0
  84. data/lib/wx/core/sizer.rb +9 -0
  85. data/lib/wx/core/splash_screen.rb +22 -2
  86. data/lib/wx/core/text_entry.rb +7 -0
  87. data/lib/wx/core/textctrl.rb +86 -5
  88. data/lib/wx/core/timer.rb +9 -0
  89. data/lib/wx/core/toolbar.rb +9 -0
  90. data/lib/wx/core/toolbartool.rb +8 -0
  91. data/lib/wx/core/treectrl.rb +9 -0
  92. data/lib/wx/core/v_list_box.rb +7 -0
  93. data/lib/wx/core/validator.rb +7 -0
  94. data/lib/wx/core/variant.rb +7 -0
  95. data/lib/wx/core/vboxsizer.rb +16 -0
  96. data/lib/wx/core/window.rb +8 -0
  97. data/lib/wx/core/window_update_locker.rb +9 -0
  98. data/lib/wx/core/xmlresource.rb +8 -0
  99. data/lib/wx/core.rb +4 -1
  100. data/lib/wx/doc/app.rb +7 -1
  101. data/lib/wx/doc/array_ext.rb +6 -0
  102. data/lib/wx/doc/art_locator.rb +7 -0
  103. data/lib/wx/doc/aui/auimanager.rb +6 -0
  104. data/lib/wx/doc/aui/auinotebook.rb +6 -0
  105. data/lib/wx/doc/bitmap.rb +12 -4
  106. data/lib/wx/doc/brush.rb +6 -0
  107. data/lib/wx/doc/busy_info.rb +6 -0
  108. data/lib/wx/doc/client_dc.rb +6 -0
  109. data/lib/wx/doc/clipboard.rb +6 -0
  110. data/lib/wx/doc/colour_dialog.rb +6 -0
  111. data/lib/wx/doc/config.rb +190 -0
  112. data/lib/wx/doc/const.rb +7 -0
  113. data/lib/wx/doc/controlwithitems.rb +6 -0
  114. data/lib/wx/doc/core.rb +6 -0
  115. data/lib/wx/doc/cursor.rb +13 -5
  116. data/lib/wx/doc/data_object.rb +6 -0
  117. data/lib/wx/doc/datetime.rb +16 -0
  118. data/lib/wx/doc/dc.rb +6 -0
  119. data/lib/wx/doc/enum.rb +8 -1
  120. data/lib/wx/doc/event.rb +12 -0
  121. data/lib/wx/doc/event_blocker.rb +6 -0
  122. data/lib/wx/doc/event_loop.rb +6 -0
  123. data/lib/wx/doc/events.rb +6 -0
  124. data/lib/wx/doc/evthandler.rb +8 -0
  125. data/lib/wx/doc/extra/01_packages.md +52 -51
  126. data/lib/wx/doc/extra/05_event-handling.md +37 -12
  127. data/lib/wx/doc/extra/06_geometry.md +5 -5
  128. data/lib/wx/doc/extra/07_colour_and_font.md +2 -2
  129. data/lib/wx/doc/extra/09_exceptions.md +1 -1
  130. data/lib/wx/doc/extra/10_art.md +18 -12
  131. data/lib/wx/doc/extra/11_drawing_and_dc.md +4 -4
  132. data/lib/wx/doc/font.rb +6 -0
  133. data/lib/wx/doc/font_data.rb +16 -0
  134. data/lib/wx/doc/functions.rb +9 -1
  135. data/lib/wx/doc/gc_dc.rb +6 -0
  136. data/lib/wx/doc/gdi_common.rb +8 -1
  137. data/lib/wx/doc/graphics_context.rb +59 -39
  138. data/lib/wx/doc/grid/grid.rb +16 -1
  139. data/lib/wx/doc/hboxsizer.rb +33 -0
  140. data/lib/wx/doc/help_controller.rb +6 -0
  141. data/lib/wx/doc/html/html_help_controller.rb +6 -0
  142. data/lib/wx/doc/icon.rb +13 -5
  143. data/lib/wx/doc/id_helper.rb +6 -0
  144. data/lib/wx/doc/image.rb +12 -4
  145. data/lib/wx/doc/list_ctrl.rb +6 -0
  146. data/lib/wx/doc/log.rb +17 -0
  147. data/lib/wx/doc/memory_dc.rb +6 -0
  148. data/lib/wx/doc/mirror_dc.rb +6 -0
  149. data/lib/wx/doc/pen.rb +6 -0
  150. data/lib/wx/doc/pg/events.rb +6 -0
  151. data/lib/wx/doc/pg/pg_property.rb +17 -0
  152. data/lib/wx/doc/pg/pgeditor.rb +6 -0
  153. data/lib/wx/doc/pg/property_grid.rb +6 -0
  154. data/lib/wx/doc/pg/property_grid_interface.rb +6 -0
  155. data/lib/wx/doc/progress_dialog.rb +6 -0
  156. data/lib/wx/doc/prt/page_setup_dialog.rb +6 -0
  157. data/lib/wx/doc/prt/print_data.rb +6 -0
  158. data/lib/wx/doc/prt/print_dialog.rb +6 -0
  159. data/lib/wx/doc/prt/printer.rb +6 -0
  160. data/lib/wx/doc/prt/printer_dc.rb +6 -0
  161. data/lib/wx/doc/radio_box.rb +6 -0
  162. data/lib/wx/doc/rbn/ribbon_bar.rb +6 -0
  163. data/lib/wx/doc/rbn/ribbon_button_bar.rb +6 -0
  164. data/lib/wx/doc/rbn/ribbon_gallery.rb +6 -0
  165. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +6 -0
  166. data/lib/wx/doc/region_iterator.rb +6 -0
  167. data/lib/wx/doc/rtc/richtext_buffer.rb +28 -0
  168. data/lib/wx/doc/rtc/richtext_formatting_dialog.rb +68 -0
  169. data/lib/wx/doc/rtc/richtext_printing.rb +6 -0
  170. data/lib/wx/doc/rtc/richtext_style_sheet.rb +20 -0
  171. data/lib/wx/doc/scaled_dc.rb +6 -0
  172. data/lib/wx/doc/screen_dc.rb +6 -0
  173. data/lib/wx/doc/stock_objects.rb +6 -0
  174. data/lib/wx/doc/stream.rb +6 -0
  175. data/lib/wx/doc/svg_file_dc.rb +6 -0
  176. data/lib/wx/doc/system_settings.rb +6 -0
  177. data/lib/wx/doc/text_validator.rb +6 -0
  178. data/lib/wx/doc/textctrl.rb +89 -0
  179. data/lib/wx/doc/tree_event.rb +20 -0
  180. data/lib/wx/doc/treebook.rb +6 -0
  181. data/lib/wx/doc/v_list_box.rb +6 -0
  182. data/lib/wx/doc/variant.rb +6 -0
  183. data/lib/wx/doc/vboxsizer.rb +33 -0
  184. data/lib/wx/doc/window.rb +6 -0
  185. data/lib/wx/doc/window_disabler.rb +6 -0
  186. data/lib/wx/doc/xml_resource.rb +8 -0
  187. data/lib/wx/global_const.rb +4 -1
  188. data/lib/wx/grid/grid.rb +23 -3
  189. data/lib/wx/grid/keyword_defs.rb +8 -1
  190. data/lib/wx/grid/require.rb +4 -1
  191. data/lib/wx/grid.rb +4 -1
  192. data/lib/wx/helpers.rb +8 -1
  193. data/lib/wx/html/htmlhelpcontroller.rb +29 -3
  194. data/lib/wx/html/htmlwindow.rb +23 -12
  195. data/lib/wx/html/keyword_defs.rb +8 -1
  196. data/lib/wx/html/require.rb +4 -1
  197. data/lib/wx/html/simple_html_listbox.rb +3 -0
  198. data/lib/wx/html.rb +4 -1
  199. data/lib/wx/keyword_ctors.rb +22 -3
  200. data/lib/wx/keyword_defs.rb +55 -3
  201. data/lib/wx/pg/events.rb +4 -1
  202. data/lib/wx/pg/keyword_defs.rb +8 -1
  203. data/lib/wx/pg/pg_editor.rb +3 -0
  204. data/lib/wx/pg/pg_properties.rb +4 -1
  205. data/lib/wx/pg/pg_property.rb +18 -5
  206. data/lib/wx/pg/property_grid.rb +4 -1
  207. data/lib/wx/pg/property_grid_interface.rb +3 -0
  208. data/lib/wx/pg/require.rb +4 -1
  209. data/lib/wx/pg.rb +4 -1
  210. data/lib/wx/prt/keyword_defs.rb +8 -1
  211. data/lib/wx/prt/page_setup_dialog.rb +3 -0
  212. data/lib/wx/prt/previewframe.rb +5 -0
  213. data/lib/wx/prt/require.rb +4 -1
  214. data/lib/wx/prt.rb +4 -1
  215. data/lib/wx/rbn/events.rb +4 -1
  216. data/lib/wx/rbn/keyword_defs.rb +8 -1
  217. data/lib/wx/rbn/require.rb +5 -1
  218. data/lib/wx/rbn/ribbon_art_provider.rb +3 -1
  219. data/lib/wx/rbn/ribbon_bar.rb +3 -0
  220. data/lib/wx/rbn/ribbon_button_bar.rb +3 -0
  221. data/lib/wx/rbn/ribbon_control.rb +3 -0
  222. data/lib/wx/rbn/ribbon_gallery.rb +10 -0
  223. data/lib/wx/rbn/ribbon_page.rb +3 -0
  224. data/lib/wx/rbn/ribbon_panel.rb +3 -0
  225. data/lib/wx/rbn/ribbon_tool_bar.rb +3 -0
  226. data/lib/wx/rbn.rb +4 -1
  227. data/lib/wx/rtc/ext.rb +4 -1
  228. data/lib/wx/rtc/keyword_defs.rb +18 -7
  229. data/lib/wx/rtc/require.rb +8 -1
  230. data/lib/wx/rtc/richtext_buffer.rb +36 -0
  231. data/lib/wx/rtc/richtext_formatting_dialog.rb +88 -0
  232. data/lib/wx/rtc/richtext_style_organiser_dialog.rb +46 -0
  233. data/lib/wx/rtc/symbol_picker_dialog.rb +47 -0
  234. data/lib/wx/rtc.rb +5 -1
  235. data/lib/wx/stc/keyword_defs.rb +8 -1
  236. data/lib/wx/stc/require.rb +4 -1
  237. data/lib/wx/stc.rb +4 -1
  238. data/lib/wx/version.rb +5 -1
  239. data/lib/wx/wxruby/base.rb +4 -1
  240. data/lib/wx/wxruby/cmd/sampler.rb +4 -1
  241. data/lib/wx/wxruby/cmd/test.rb +4 -1
  242. data/lib/wx.rb +4 -1
  243. data/rakelib/build.rake +4 -1
  244. data/rakelib/build.rb +4 -1
  245. data/rakelib/config.rake +4 -1
  246. data/rakelib/configure.rb +4 -1
  247. data/rakelib/doc.rake +4 -1
  248. data/rakelib/doc.rb +5 -1
  249. data/rakelib/install.rake +4 -1
  250. data/rakelib/install.rb +4 -1
  251. data/rakelib/lib/config/cygwin.rb +4 -1
  252. data/rakelib/lib/config/linux.rb +4 -1
  253. data/rakelib/lib/config/macosx.rb +5 -2
  254. data/rakelib/lib/config/mingw.rb +4 -1
  255. data/rakelib/lib/config/netbsd.rb +4 -1
  256. data/rakelib/lib/config/unixish.rb +10 -7
  257. data/rakelib/lib/config.rb +7 -2
  258. data/rakelib/lib/core/include/enum.inc +4 -1
  259. data/rakelib/lib/core/include/funcall.inc +10 -64
  260. data/rakelib/lib/core/include/init.inc +3 -0
  261. data/rakelib/lib/core/mapping.rb +26 -46
  262. data/rakelib/lib/core/package.rb +17 -3
  263. data/rakelib/lib/core/parameter.rb +4 -1
  264. data/rakelib/lib/core/spec.rb +14 -8
  265. data/rakelib/lib/core/spec_helper.rb +32 -9
  266. data/rakelib/lib/director/about_dialog_info.rb +4 -1
  267. data/rakelib/lib/director/accelerator.rb +7 -2
  268. data/rakelib/lib/director/animation.rb +4 -1
  269. data/rakelib/lib/director/animation_ctrl.rb +4 -1
  270. data/rakelib/lib/director/any_button.rb +5 -2
  271. data/rakelib/lib/director/app.rb +16 -2
  272. data/rakelib/lib/director/app_traits.rb +71 -0
  273. data/rakelib/lib/director/art_provider.rb +4 -1
  274. data/rakelib/lib/director/aui_dock_art.rb +4 -1
  275. data/rakelib/lib/director/aui_floating_frame.rb +4 -1
  276. data/rakelib/lib/director/aui_manager.rb +12 -5
  277. data/rakelib/lib/director/aui_manager_event.rb +4 -1
  278. data/rakelib/lib/director/aui_mdi_child_frame.rb +25 -1
  279. data/rakelib/lib/director/aui_mdi_client_window.rb +4 -1
  280. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -1
  281. data/rakelib/lib/director/aui_notebook.rb +12 -1
  282. data/rakelib/lib/director/aui_notebook_event.rb +4 -1
  283. data/rakelib/lib/director/aui_pane_info.rb +4 -1
  284. data/rakelib/lib/director/aui_tab_art.rb +52 -1
  285. data/rakelib/lib/director/aui_tab_ctrl.rb +14 -1
  286. data/rakelib/lib/director/aui_toolbar.rb +6 -3
  287. data/rakelib/lib/director/aui_toolbar_art.rb +52 -1
  288. data/rakelib/lib/director/aui_toolbar_event.rb +4 -1
  289. data/rakelib/lib/director/aui_toolbar_item.rb +4 -1
  290. data/rakelib/lib/director/banner_window.rb +26 -0
  291. data/rakelib/lib/director/bitmap.rb +11 -2
  292. data/rakelib/lib/director/bitmap_combobox.rb +5 -1
  293. data/rakelib/lib/director/book_ctrls.rb +13 -3
  294. data/rakelib/lib/director/brush.rb +4 -1
  295. data/rakelib/lib/director/busy_info.rb +4 -1
  296. data/rakelib/lib/director/button.rb +4 -1
  297. data/rakelib/lib/director/calendar_ctrl.rb +4 -1
  298. data/rakelib/lib/director/calendar_date_attr.rb +4 -1
  299. data/rakelib/lib/director/caret.rb +4 -1
  300. data/rakelib/lib/director/check_listbox.rb +4 -1
  301. data/rakelib/lib/director/choice.rb +4 -1
  302. data/rakelib/lib/director/clipboard.rb +4 -1
  303. data/rakelib/lib/director/collapsible_pane.rb +4 -1
  304. data/rakelib/lib/director/collapsible_pane_event.rb +4 -1
  305. data/rakelib/lib/director/colour.rb +9 -1
  306. data/rakelib/lib/director/colour_picker_ctrl.rb +4 -1
  307. data/rakelib/lib/director/combobox.rb +4 -1
  308. data/rakelib/lib/director/comboctrl.rb +94 -0
  309. data/rakelib/lib/director/config_base.rb +135 -0
  310. data/rakelib/lib/director/context_help_button.rb +4 -1
  311. data/rakelib/lib/director/control.rb +4 -1
  312. data/rakelib/lib/director/ctrl_with_items.rb +5 -1
  313. data/rakelib/lib/director/cursor.rb +6 -2
  314. data/rakelib/lib/director/data_format.rb +4 -1
  315. data/rakelib/lib/director/data_object.rb +4 -1
  316. data/rakelib/lib/director/data_object_simple_base.rb +4 -1
  317. data/rakelib/lib/director/date_event.rb +9 -2
  318. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  319. data/rakelib/lib/director/dc.rb +19 -1
  320. data/rakelib/lib/director/defs.rb +4 -1
  321. data/rakelib/lib/director/derived_dc.rb +27 -20
  322. data/rakelib/lib/director/dialog.rb +24 -3
  323. data/rakelib/lib/director/dir_filterlist_ctrl.rb +4 -1
  324. data/rakelib/lib/director/dir_picker_ctrl.rb +4 -1
  325. data/rakelib/lib/director/drag_image.rb +9 -2
  326. data/rakelib/lib/director/dragdrop.rb +4 -1
  327. data/rakelib/lib/director/editable_listbox.rb +4 -1
  328. data/rakelib/lib/director/event.rb +11 -3
  329. data/rakelib/lib/director/event_blocker.rb +4 -1
  330. data/rakelib/lib/director/event_filter.rb +4 -1
  331. data/rakelib/lib/director/event_handler.rb +28 -11
  332. data/rakelib/lib/director/event_loop.rb +4 -1
  333. data/rakelib/lib/director/events.rb +5 -2
  334. data/rakelib/lib/director/file_dialog_custom_control.rb +28 -0
  335. data/rakelib/lib/director/file_dialog_customize_hook.rb +28 -0
  336. data/rakelib/lib/director/file_picker_ctrl.rb +4 -1
  337. data/rakelib/lib/director/file_system.rb +45 -0
  338. data/rakelib/lib/director/find_dialog_event.rb +4 -1
  339. data/rakelib/lib/director/find_replace_data.rb +4 -1
  340. data/rakelib/lib/director/font.rb +7 -3
  341. data/rakelib/lib/director/font_data.rb +9 -1
  342. data/rakelib/lib/director/font_picker_ctrl.rb +4 -1
  343. data/rakelib/lib/director/frame.rb +45 -33
  344. data/rakelib/lib/director/fs_file.rb +52 -1
  345. data/rakelib/lib/director/functions.rb +11 -5
  346. data/rakelib/lib/director/gdi_object.rb +4 -1
  347. data/rakelib/lib/director/gdicommon.rb +14 -9
  348. data/rakelib/lib/director/generic_dirctrl.rb +4 -1
  349. data/rakelib/lib/director/graphics_context.rb +113 -18
  350. data/rakelib/lib/director/graphics_object.rb +13 -2
  351. data/rakelib/lib/director/grid_cell_attr.rb +28 -4
  352. data/rakelib/lib/director/grid_cell_editor.rb +22 -5
  353. data/rakelib/lib/director/grid_cell_renderer.rb +16 -3
  354. data/rakelib/lib/director/grid_ctrl.rb +146 -5
  355. data/rakelib/lib/director/grid_range_select_event.rb +4 -1
  356. data/rakelib/lib/director/grid_table_base.rb +6 -1
  357. data/rakelib/lib/director/grid_table_message.rb +4 -1
  358. data/rakelib/lib/director/header_ctrl.rb +37 -0
  359. data/rakelib/lib/director/help_controller.rb +13 -6
  360. data/rakelib/lib/director/help_provider.rb +4 -1
  361. data/rakelib/lib/director/html_cell.rb +10 -3
  362. data/rakelib/lib/director/html_data_object.rb +4 -1
  363. data/rakelib/lib/director/html_easy_printing.rb +4 -1
  364. data/rakelib/lib/director/html_event.rb +4 -1
  365. data/rakelib/lib/director/html_help_data.rb +4 -1
  366. data/rakelib/lib/director/html_help_window.rb +30 -0
  367. data/rakelib/lib/director/html_listbox.rb +4 -1
  368. data/rakelib/lib/director/html_printout.rb +6 -1
  369. data/rakelib/lib/director/html_window.rb +10 -8
  370. data/rakelib/lib/director/hyperlink_ctrl.rb +32 -0
  371. data/rakelib/lib/director/hyperlink_event.rb +4 -1
  372. data/rakelib/lib/director/icon.rb +4 -1
  373. data/rakelib/lib/director/image.rb +26 -3
  374. data/rakelib/lib/director/image_list.rb +5 -1
  375. data/rakelib/lib/director/info_bar.rb +26 -0
  376. data/rakelib/lib/director/list_ctrl.rb +39 -7
  377. data/rakelib/lib/director/listbox.rb +4 -1
  378. data/rakelib/lib/director/locale.rb +7 -4
  379. data/rakelib/lib/director/log.rb +51 -6
  380. data/rakelib/lib/director/mdi_frame.rb +4 -1
  381. data/rakelib/lib/director/media_ctrl.rb +4 -1
  382. data/rakelib/lib/director/menu.rb +16 -3
  383. data/rakelib/lib/director/menu_bar.rb +13 -2
  384. data/rakelib/lib/director/menu_item.rb +6 -6
  385. data/rakelib/lib/director/mouse_state.rb +5 -2
  386. data/rakelib/lib/director/numeric_property_validator.rb +4 -1
  387. data/rakelib/lib/director/object.rb +5 -2
  388. data/rakelib/lib/director/page_setup_dialog.rb +4 -1
  389. data/rakelib/lib/director/palette.rb +54 -2
  390. data/rakelib/lib/director/panel.rb +4 -1
  391. data/rakelib/lib/director/pen.rb +5 -2
  392. data/rakelib/lib/director/pgarray_editor_dialog.rb +4 -1
  393. data/rakelib/lib/director/pgcell.rb +4 -1
  394. data/rakelib/lib/director/pgeditor.rb +4 -1
  395. data/rakelib/lib/director/pgmulti_button.rb +4 -1
  396. data/rakelib/lib/director/pgproperties.rb +4 -1
  397. data/rakelib/lib/director/pgproperty.rb +42 -3
  398. data/rakelib/lib/director/pgvalidation_info.rb +9 -1
  399. data/rakelib/lib/director/pickerbase.rb +4 -1
  400. data/rakelib/lib/director/platform_info.rb +9 -1
  401. data/rakelib/lib/director/popup_window.rb +14 -1
  402. data/rakelib/lib/director/preview_frame.rb +5 -2
  403. data/rakelib/lib/director/print_data.rb +4 -1
  404. data/rakelib/lib/director/print_dialog.rb +4 -1
  405. data/rakelib/lib/director/printer.rb +14 -6
  406. data/rakelib/lib/director/property_grid.rb +30 -1
  407. data/rakelib/lib/director/property_grid_event.rb +11 -1
  408. data/rakelib/lib/director/property_grid_interface.rb +20 -6
  409. data/rakelib/lib/director/property_grid_manager.rb +4 -1
  410. data/rakelib/lib/director/property_grid_page.rb +4 -1
  411. data/rakelib/lib/director/property_grid_page_state.rb +4 -1
  412. data/rakelib/lib/director/radio_box.rb +4 -1
  413. data/rakelib/lib/director/rearrange_list.rb +36 -0
  414. data/rakelib/lib/director/region.rb +5 -1
  415. data/rakelib/lib/director/region_iterator.rb +4 -1
  416. data/rakelib/lib/director/ribbon_art_provider.rb +9 -1
  417. data/rakelib/lib/director/ribbon_bar.rb +4 -1
  418. data/rakelib/lib/director/ribbon_bar_event.rb +4 -1
  419. data/rakelib/lib/director/ribbon_button_bar.rb +4 -1
  420. data/rakelib/lib/director/ribbon_button_bar_event.rb +4 -1
  421. data/rakelib/lib/director/ribbon_ctrl.rb +4 -1
  422. data/rakelib/lib/director/ribbon_gallery.rb +8 -3
  423. data/rakelib/lib/director/ribbon_gallery_event.rb +4 -1
  424. data/rakelib/lib/director/ribbon_page.rb +4 -1
  425. data/rakelib/lib/director/ribbon_panel.rb +4 -1
  426. data/rakelib/lib/director/ribbon_panel_event.rb +4 -1
  427. data/rakelib/lib/director/ribbon_tool_bar.rb +4 -1
  428. data/rakelib/lib/director/ribbon_tool_bar_event.rb +4 -1
  429. data/rakelib/lib/director/richtext_box.rb +61 -0
  430. data/rakelib/lib/director/richtext_buffer.rb +219 -22
  431. data/rakelib/lib/director/richtext_buffer_data_object.rb +4 -1
  432. data/rakelib/lib/director/richtext_composite_object.rb +174 -0
  433. data/rakelib/lib/director/richtext_ctrl.rb +157 -4
  434. data/rakelib/lib/director/richtext_event.rb +4 -1
  435. data/rakelib/lib/director/richtext_file_handler.rb +13 -1
  436. data/rakelib/lib/director/richtext_formatting_dialog.rb +44 -0
  437. data/rakelib/lib/director/richtext_header_footer_data.rb +4 -1
  438. data/rakelib/lib/director/richtext_image.rb +56 -0
  439. data/rakelib/lib/director/richtext_object.rb +272 -0
  440. data/rakelib/lib/director/richtext_paragraph_layout_box.rb +178 -0
  441. data/rakelib/lib/director/richtext_printing.rb +4 -1
  442. data/rakelib/lib/director/richtext_style_listbox.rb +37 -0
  443. data/rakelib/lib/director/richtext_style_organiser_dialog.rb +28 -0
  444. data/rakelib/lib/director/sash_layout_event.rb +4 -1
  445. data/rakelib/lib/director/sash_layout_window.rb +4 -1
  446. data/rakelib/lib/director/sash_window.rb +4 -1
  447. data/rakelib/lib/director/scroll_bar.rb +4 -1
  448. data/rakelib/lib/director/scrolled_t.rb +7 -4
  449. data/rakelib/lib/director/searchctrl.rb +4 -1
  450. data/rakelib/lib/director/sizer.rb +4 -1
  451. data/rakelib/lib/director/sizer_item.rb +9 -3
  452. data/rakelib/lib/director/slider.rb +4 -1
  453. data/rakelib/lib/director/splash_screen.rb +4 -1
  454. data/rakelib/lib/director/splitter_event.rb +4 -1
  455. data/rakelib/lib/director/splitter_window.rb +4 -1
  456. data/rakelib/lib/director/static_bitmap.rb +4 -1
  457. data/rakelib/lib/director/static_box.rb +5 -2
  458. data/rakelib/lib/director/status_bar.rb +5 -1
  459. data/rakelib/lib/director/styled_text_ctrl.rb +14 -2
  460. data/rakelib/lib/director/styled_text_event.rb +4 -1
  461. data/rakelib/lib/director/system_options.rb +4 -1
  462. data/rakelib/lib/director/system_settings.rb +4 -1
  463. data/rakelib/lib/director/task_bar_icon.rb +4 -1
  464. data/rakelib/lib/director/text_attr.rb +5 -2
  465. data/rakelib/lib/director/text_entry.rb +4 -1
  466. data/rakelib/lib/director/text_validator.rb +6 -1
  467. data/rakelib/lib/director/textctrl.rb +32 -3
  468. data/rakelib/lib/director/time_picker_ctrl.rb +4 -1
  469. data/rakelib/lib/director/timer.rb +4 -1
  470. data/rakelib/lib/director/tip_provider.rb +4 -1
  471. data/rakelib/lib/director/toggle_button.rb +4 -1
  472. data/rakelib/lib/director/tool_bar.rb +20 -1
  473. data/rakelib/lib/director/tool_tip.rb +5 -2
  474. data/rakelib/lib/director/top_level_window.rb +58 -51
  475. data/rakelib/lib/director/tree_ctrl.rb +5 -2
  476. data/rakelib/lib/director/tree_event.rb +28 -10
  477. data/rakelib/lib/director/uiaction_simulator.rb +4 -1
  478. data/rakelib/lib/director/utils.rb +9 -1
  479. data/rakelib/lib/director/validator.rb +4 -1
  480. data/rakelib/lib/director/variant.rb +5 -2
  481. data/rakelib/lib/director/vlistbox.rb +4 -1
  482. data/rakelib/lib/director/vscrolled_window.rb +4 -1
  483. data/rakelib/lib/director/window.rb +81 -82
  484. data/rakelib/lib/director/window_disabler.rb +4 -1
  485. data/rakelib/lib/director/with_images.rb +5 -2
  486. data/rakelib/lib/director/wizard_page.rb +4 -1
  487. data/rakelib/lib/director/xml_node.rb +4 -1
  488. data/rakelib/lib/director/xml_resource.rb +4 -1
  489. data/rakelib/lib/director.rb +27 -28
  490. data/rakelib/lib/ext/enum_chain.rb +4 -1
  491. data/rakelib/lib/extractor/class.rb +8 -6
  492. data/rakelib/lib/extractor/enum.rb +15 -2
  493. data/rakelib/lib/extractor/function.rb +12 -4
  494. data/rakelib/lib/extractor/module.rb +4 -1
  495. data/rakelib/lib/extractor/variable.rb +4 -1
  496. data/rakelib/lib/extractor.rb +7 -2
  497. data/rakelib/lib/generate/analyzer.rb +31 -21
  498. data/rakelib/lib/generate/base.rb +4 -1
  499. data/rakelib/lib/generate/doc/grid_cell_attr.yaml +21 -0
  500. data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
  501. data/rakelib/lib/generate/doc/html_cell.yaml +11 -0
  502. data/rakelib/lib/generate/doc/html_help_controller.yaml +23 -0
  503. data/rakelib/lib/generate/doc/html_help_window.yaml +21 -0
  504. data/rakelib/lib/generate/doc/html_window.yaml +47 -0
  505. data/rakelib/lib/generate/doc/pg_editor.yaml +11 -0
  506. data/rakelib/lib/generate/doc/pg_multi_button.yaml +78 -0
  507. data/rakelib/lib/generate/doc/pg_properties.yaml +244 -0
  508. data/rakelib/lib/generate/doc/pg_property.yaml +188 -0
  509. data/rakelib/lib/generate/doc/property_grid.yaml +23 -0
  510. data/rakelib/lib/generate/doc/property_grid_interface.yaml +30 -0
  511. data/rakelib/lib/generate/doc/property_grid_manager.yaml +40 -0
  512. data/rakelib/lib/generate/doc/rich_text_html_handler.yaml +11 -0
  513. data/rakelib/lib/generate/doc/styled_text_ctrl.yaml +18 -0
  514. data/rakelib/lib/generate/doc/symbol_picker_dialog.yaml +40 -0
  515. data/rakelib/lib/generate/doc.rb +19 -3
  516. data/rakelib/lib/generate/interface.rb +79 -110
  517. data/rakelib/lib/generate/rakedep.rb +4 -1
  518. data/rakelib/lib/specs/interfaces.rb +45 -20
  519. data/rakelib/lib/streams.rb +5 -1
  520. data/rakelib/lib/swig_runner.rb +34 -22
  521. data/rakelib/lib/typemap/array_int_selections.rb +4 -1
  522. data/rakelib/lib/typemap/common.rb +57 -2
  523. data/rakelib/lib/typemap/config.rb +55 -0
  524. data/rakelib/lib/typemap/data_format.rb +4 -1
  525. data/rakelib/lib/typemap/data_object_data.rb +4 -1
  526. data/rakelib/lib/typemap/datetime.rb +8 -1
  527. data/rakelib/lib/typemap/grid_client_data.rb +4 -1
  528. data/rakelib/lib/typemap/grid_coords.rb +37 -7
  529. data/rakelib/lib/typemap/html_cell.rb +4 -1
  530. data/rakelib/lib/typemap/io_streams.rb +4 -1
  531. data/rakelib/lib/typemap/pgcell.rb +4 -1
  532. data/rakelib/lib/typemap/pgeditor.rb +4 -1
  533. data/rakelib/lib/typemap/pgprop_arg.rb +4 -1
  534. data/rakelib/lib/typemap/pgproperty.rb +4 -1
  535. data/rakelib/lib/typemap/points_list.rb +4 -1
  536. data/rakelib/lib/typemap/richtext.rb +185 -11
  537. data/rakelib/lib/typemap/tree_itemid.rb +26 -1
  538. data/rakelib/lib/util/string.rb +4 -1
  539. data/rakelib/prepost.rake +4 -1
  540. data/rakelib/prepost.rb +4 -1
  541. data/rakelib/run.rake +4 -1
  542. data/samples/aui/aui.rb +8 -3
  543. data/samples/bigdemo/bigdemo.rb +9 -2
  544. data/samples/bigdemo/run.rb +9 -2
  545. data/samples/bigdemo/utils.rb +9 -1
  546. data/samples/calendar/calendar.rb +9 -4
  547. data/samples/caret/caret.rb +8 -3
  548. data/samples/controls/books.rb +8 -2
  549. data/samples/controls/controls.rb +33 -77
  550. data/samples/controls/get_item_sample.rb +8 -2
  551. data/samples/controls/htlbox.rb +10 -3
  552. data/samples/dialogs/dialogs.rb +9 -4
  553. data/samples/dialogs/wizard.rb +8 -3
  554. data/samples/dragdrop/dragdrop.rb +8 -3
  555. data/samples/drawing/bitmap.rb +8 -3
  556. data/samples/drawing/bitmap_image.rb +8 -3
  557. data/samples/drawing/graphics_drawing.rb +44 -33
  558. data/samples/drawing/image_prt.rb +8 -2
  559. data/samples/drawing/maths_images.rb +8 -3
  560. data/samples/drawing/rmagic_bitmap_image.rb +8 -3
  561. data/samples/etc/choice.rb +8 -3
  562. data/samples/etc/miniframe.rb +8 -3
  563. data/samples/etc/sash.rb +8 -3
  564. data/samples/etc/scrollwin.rb +8 -3
  565. data/samples/etc/system_settings.rb +8 -3
  566. data/samples/event/activation.rb +8 -3
  567. data/samples/event/event.rb +8 -3
  568. data/samples/event/threaded.rb +8 -3
  569. data/samples/event/update_ui_event.rb +8 -3
  570. data/samples/grid/grid.rb +9 -3
  571. data/samples/grid/gridtablebase.rb +8 -3
  572. data/samples/html/html.rb +8 -3
  573. data/samples/mdi/mdi.rb +8 -3
  574. data/samples/minimal/minimal.rb +8 -3
  575. data/samples/minimal/nothing.rb +8 -3
  576. data/samples/printing/printing.rb +8 -3
  577. data/samples/printing/printing2.rb +8 -2
  578. data/samples/propgrid/propgrid.rb +4 -1
  579. data/samples/propgrid/propgrid_minimal.rb +4 -2
  580. data/samples/propgrid/sample_props.rb +4 -1
  581. data/samples/ribbon/ribbon.rb +4 -1
  582. data/samples/sampler/editor.rb +4 -1
  583. data/samples/sampler/ext.rb +4 -1
  584. data/samples/sampler/sample.rb +13 -4
  585. data/samples/sampler/stc_editor.rb +4 -1
  586. data/samples/sampler/txt_editor.rb +4 -1
  587. data/samples/sampler.rb +11 -3
  588. data/samples/splash/splash.rb +4 -2
  589. data/samples/text/art/richtext/alignleft.xpm +24 -0
  590. data/samples/text/art/richtext/alignright.xpm +24 -0
  591. data/samples/text/art/richtext/bold.xpm +24 -0
  592. data/samples/text/art/richtext/centre.xpm +24 -0
  593. data/samples/text/art/richtext/copy.xpm +45 -0
  594. data/samples/text/art/richtext/cut.xpm +47 -0
  595. data/samples/text/art/richtext/font.xpm +25 -0
  596. data/samples/text/art/richtext/idea.xpm +47 -0
  597. data/samples/text/art/richtext/indentless.xpm +25 -0
  598. data/samples/text/art/richtext/indentmore.xpm +25 -0
  599. data/samples/text/art/richtext/italic.xpm +25 -0
  600. data/samples/text/art/richtext/open.xpm +58 -0
  601. data/samples/text/art/richtext/paste.xpm +47 -0
  602. data/samples/text/art/richtext/redo.xpm +59 -0
  603. data/samples/text/art/richtext/save.xpm +43 -0
  604. data/samples/text/art/richtext/smiley.xpm +42 -0
  605. data/samples/text/art/richtext/underline.xpm +25 -0
  606. data/samples/text/art/richtext/undo.xpm +59 -0
  607. data/samples/text/art/richtext/zebra.xpm +409 -0
  608. data/samples/text/rich_textctrl.rb +8 -3
  609. data/samples/text/richtext.rb +1824 -0
  610. data/samples/text/scintilla.rb +8 -3
  611. data/samples/text/textctrl.rb +21 -4
  612. data/samples/text/tn_richtext.png +0 -0
  613. data/samples/text/unicode.rb +9 -4
  614. data/samples/treectrl/treectrl.rb +10 -5
  615. data/samples/xrc/custom_xrc_sample.rb +8 -3
  616. data/samples/xrc/xrc_sample.rb +8 -3
  617. data/tests/art/test_art/bitmap/wxruby-128x128.png +0 -0
  618. data/tests/art/test_art/bitmap/wxruby-256x256.png +0 -0
  619. data/tests/art/test_art/bitmap/wxruby-64x64.png +0 -0
  620. data/tests/lib/item_container_tests.rb +3 -0
  621. data/tests/lib/text_entry_tests.rb +3 -0
  622. data/tests/lib/wxapp_runner.rb +3 -0
  623. data/tests/lib/wxframe_runner.rb +81 -3
  624. data/tests/test_app_event_filter.rb +3 -0
  625. data/tests/test_app_traits.rb +33 -0
  626. data/tests/test_art.rb +22 -0
  627. data/tests/test_art_provider.rb +3 -0
  628. data/tests/test_aui.rb +65 -0
  629. data/tests/test_basic.rb +5 -1
  630. data/tests/test_box_sizer.rb +5 -2
  631. data/tests/test_clipboard.rb +3 -0
  632. data/tests/test_config.rb +150 -0
  633. data/tests/test_dc.rb +3 -0
  634. data/tests/test_dialog.rb +3 -0
  635. data/tests/test_event_handling.rb +3 -0
  636. data/tests/test_events.rb +3 -0
  637. data/tests/test_ext_controls.rb +286 -3
  638. data/tests/test_file_dialog.rb +55 -0
  639. data/tests/test_font.rb +8 -5
  640. data/tests/test_gdi_object.rb +3 -0
  641. data/tests/test_geometry.rb +4 -0
  642. data/tests/test_grid_sizer.rb +7 -4
  643. data/tests/test_intl.rb +3 -0
  644. data/tests/test_item_data.rb +3 -0
  645. data/tests/test_list_ctrl.rb +4 -1
  646. data/tests/test_log.rb +63 -0
  647. data/tests/test_proof_check.rb +52 -0
  648. data/tests/test_richtext.rb +204 -0
  649. data/tests/test_std_controls.rb +45 -35
  650. data/tests/test_timer.rb +3 -0
  651. data/tests/test_variant.rb +3 -0
  652. data/tests/test_window.rb +10 -8
  653. data/tests/testapp.rb +4 -0
  654. data/tests/testapp_noframe.rb +4 -0
  655. metadata +89 -3
  656. data/rakelib/lib/director/html_help_frame.rb +0 -25
@@ -1,43 +1,240 @@
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
 
9
+ require_relative './richtext_paragraph_layout_box'
10
+
6
11
  module WXRuby3
7
12
 
8
13
  class Director
9
14
 
10
- class RichTextBuffer < Director
15
+ class RichTextBuffer < RichTextParagraphLayoutBox
11
16
 
12
17
  include Typemap::RichText
13
- include Typemap::IOStreams
14
18
 
15
19
  def setup
16
- spec.disable_proxies
17
- spec.items.replace %w[
18
- wxTextAttrBorder
19
- wxTextAttrBorders
20
- wxTextBoxAttr
21
- wxRichTextAttr
22
- wxRichTextBuffer
23
- ]
24
- spec.gc_as_object 'wxRichTextAttr'
25
- spec.gc_as_object 'wxRichTextBuffer'
26
- spec.override_inheritance_chain('wxRichTextBuffer', %w[wxObject])
20
+ super
21
+ spec.items << 'wxRichTextFontTable' << 'wxRichTextFieldType' << 'wxRichTextFieldTypeStandard' << 'wxRichTextDrawingHandler'
22
+ spec.make_abstract 'wxRichTextFieldType'
23
+ spec.no_proxy 'wxRichTextFontTable'
24
+ spec.include 'wx/richtext/richtextstyles.h'
27
25
  spec.ignore %w[
28
26
  wxRichTextBuffer::GetBatchedCommand
29
27
  wxRichTextBuffer::GetCommandProcessor
28
+ wxRichTextBuffer::SubmitAction
29
+ wxRichTextBuffer::GetHandlers
30
+ wxRichTextBuffer::GetFieldTypes
31
+ wxRichTextBuffer::GetDrawingHandlers
32
+ wxRichTextBuffer::GetRenderer
33
+ wxRichTextBuffer::SetRenderer
30
34
  ]
31
- spec.disown 'wxRichTextFileHandler* handler'
32
- spec.ignore(%w[wxRICHTEXT_ALL wxRICHTEXT_NONE wxRICHTEXT_NO_SELECTION])
33
- # special typemap for const wxChar wxRichTextLineBreakChar;
34
- spec.add_swig_code <<~__HEREDOC
35
- %typemap(constcode,noblock=1) const wxChar {
36
- %set_constant("$symname", rb_str_new2((const char *)wxString($value).utf8_str()));
35
+ spec.disown 'wxRichTextFileHandler* handler',
36
+ 'wxRichTextDrawingHandler *handler',
37
+ 'wxRichTextFieldType *fieldType'
38
+ spec.add_extend_code 'wxRichTextBuffer', <<~__HEREDOC
39
+ static VALUE each_handler()
40
+ {
41
+ VALUE rc = Qnil;
42
+ if (rb_block_given_p())
43
+ {
44
+ wxList& handlers = wxRichTextBuffer::GetHandlers();
45
+ for (wxList::compatibility_iterator node = handlers.GetFirst();
46
+ node; node = node->GetNext())
47
+ {
48
+ wxRichTextFileHandler *handler = (wxRichTextFileHandler *) node->GetData();
49
+ rc = rb_yield (SWIG_NewPointerObj(SWIG_as_voidptr(handler), SWIGTYPE_p_wxRichTextFileHandler, 0));
50
+ }
51
+ }
52
+ return rc;
53
+ }
54
+
55
+ static VALUE each_field_type()
56
+ {
57
+ VALUE rc = Qnil;
58
+ if (rb_block_given_p())
59
+ {
60
+ wxRichTextFieldTypeHashMap& map = wxRichTextBuffer::GetFieldTypes();
61
+ wxRichTextFieldTypeHashMap::const_iterator it = map.begin();
62
+ for (; it != map.end() ;++it)
63
+ {
64
+ wxRichTextFieldType *ft = it->second;
65
+ rc = rb_yield (SWIG_NewPointerObj(SWIG_as_voidptr(ft), SWIGTYPE_p_wxRichTextFieldType, 0));
66
+ }
67
+ }
68
+ return rc;
69
+ }
70
+
71
+ static VALUE each_drawing_handler()
72
+ {
73
+ VALUE rc = Qnil;
74
+ if (rb_block_given_p())
75
+ {
76
+ wxList& handlers = wxRichTextBuffer::GetDrawingHandlers();
77
+ for (wxList::compatibility_iterator node = handlers.GetFirst();
78
+ node; node = node->GetNext())
79
+ {
80
+ wxRichTextDrawingHandler *handler = (wxRichTextDrawingHandler *) node->GetData();
81
+ rc = rb_yield (SWIG_NewPointerObj(SWIG_as_voidptr(handler), SWIGTYPE_p_wxRichTextDrawingHandler, 0));
82
+ }
83
+ }
84
+ return rc;
37
85
  }
38
86
  __HEREDOC
39
- spec.do_not_generate(:functions)
40
- super
87
+ spec.add_header_code <<~__HEREDOC
88
+ // define the richtext buffer marker
89
+ static void wxRuby_markRichTextBuffer()
90
+ {
91
+ // mark any user installed drawing handlers
92
+ wxList& handlers = wxRichTextBuffer::GetDrawingHandlers();
93
+ for (wxList::compatibility_iterator node = handlers.GetFirst();
94
+ node; node = node->GetNext())
95
+ {
96
+ VALUE obj = wxRuby_FindTracking(node->GetData());
97
+ if (obj && !NIL_P(obj))
98
+ rb_gc_mark(obj);
99
+ }
100
+ // mark any user installed field types
101
+ wxRichTextFieldTypeHashMap& map = wxRichTextBuffer::GetFieldTypes();
102
+ wxRichTextFieldTypeHashMap::const_iterator it = map.begin();
103
+ for (; it != map.end() ;++it)
104
+ {
105
+ VALUE obj = wxRuby_FindTracking(it->second);
106
+ if (obj && !NIL_P(obj))
107
+ rb_gc_mark(obj);
108
+ }
109
+ }
110
+ __HEREDOC
111
+ # register the marker at module initialization
112
+ spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markRichTextBuffer);'
113
+ # for GetExtWildcard
114
+ spec.map 'wxArrayInt* types' => 'Array,nil' do
115
+
116
+ map_in temp: 'wxArrayInt tmp, VALUE rb_types', code: <<~__CODE
117
+ rb_types = $input;
118
+ if (!NIL_P(rb_types))
119
+ {
120
+ if (TYPE(rb_types) == T_ARRAY)
121
+ {
122
+ $1 = &tmp;
123
+ }
124
+ else
125
+ {
126
+ SWIG_exception_fail(SWIG_TypeError, Ruby_Format_TypeError( "", "Array","$symname", $argnum, $input ));
127
+ }
128
+ }
129
+ __CODE
130
+
131
+ map_argout by_ref: true, code: <<~__CODE
132
+ if ($1)
133
+ {
134
+ for (size_t i = 0; i < $1->GetCount(); i++)
135
+ {
136
+ rb_ary_push(rb_types$argnum,INT2NUM( $1->Item(i) ) );
137
+ }
138
+ }
139
+ __CODE
140
+
141
+ end
142
+
143
+ # for wxRichTextFieldType::GetRangeSize
144
+ spec.map 'int & descent' => 'Integer' do
145
+
146
+ map_in temp: 'int tmp', code: 'tmp = NUM2INT($input); $1 = &tmp;'
147
+
148
+ map_argout code: '$result = SWIG_Ruby_AppendOutput($result, INT2NUM(tmp$argnum));'
149
+
150
+ map_directorin code: '$input = INT2NUM($1);'
151
+
152
+ map_directorargout code: <<~__CODE
153
+ if(output != Qnil)
154
+ {
155
+ $1 = NUM2INT(output);
156
+ }
157
+ else
158
+ {
159
+ $1 = 0;
160
+ }
161
+ __CODE
162
+
163
+ end
164
+
165
+ # for wxRichTextDrawingHandler::GetVirtualSubobjectAttributes
166
+ spec.map 'wxArrayInt & positions' => 'Array' do
167
+
168
+ map_in temp: 'wxArrayInt tmp, VALUE rb_pos', code: <<~__CODE
169
+ rb_pos = $input;
170
+ if (TYPE(rb_pos) == T_ARRAY)
171
+ {
172
+ $1 = &tmp;
173
+ }
174
+ else
175
+ {
176
+ SWIG_exception_fail(SWIG_TypeError, Ruby_Format_TypeError( "", "Array","$symname", $argnum, $input ));
177
+ }
178
+ __CODE
179
+
180
+ map_argout by_ref: true, code: <<~__CODE
181
+ for (size_t i = 0; i < $1->GetCount(); i++)
182
+ {
183
+ rb_ary_push(rb_pos$argnum,INT2NUM( $1->Item(i) ) );
184
+ }
185
+ __CODE
186
+
187
+ map_directorin code: 'VALUE rb_int_arr = $input = rb_ary_new();'
188
+ map_directorargout code: <<~__CODE
189
+ for (int i=0; i<RARRAY_LEN(rb_int_arr) ;++i)
190
+ {
191
+ $1.Add(NUM2INT(rb_ary_entry(rb_int_arr, i)));
192
+ }
193
+ output = Qnil;
194
+ __CODE
195
+
196
+ end
197
+ spec.map 'wxRichTextAttrArray & attributes' => 'Array' do
198
+
199
+ map_in temp: 'wxRichTextAttrArray arr, VALUE rb_arr', code: <<~__CODE
200
+ if (TYPE($input) == T_ARRAY)
201
+ {
202
+ $1 = &arr;
203
+ rb_arr = $input;
204
+ }
205
+ else
206
+ {
207
+ rb_raise(rb_eArgError, "Expected an Array for %d", $argnum-1);
208
+ }
209
+ __CODE
210
+
211
+ map_argout by_ref: true, code: <<~__CODE
212
+ for (size_t i=0; i<arr$argnum.GetCount() ;++i)
213
+ {
214
+ wxRichTextAttr* wx_rta = new wxRichTextAttr(arr$argnum.Item(i));
215
+ rb_ary_push(rb_arr$argnum, SWIG_NewPointerObj(SWIG_as_voidptr(wx_rta), SWIGTYPE_p_wxRichTextAttr, SWIG_POINTER_OWN));
216
+ }
217
+ __CODE
218
+
219
+ map_directorin code: 'VALUE rb_attr_arr = $input = rb_ary_new();'
220
+ map_directorargout code: <<~__CODE
221
+ for (int i=0; i<RARRAY_LEN(rb_attr_arr) ;++i)
222
+ {
223
+ void *ptr;
224
+ int res = SWIG_ConvertPtr(rb_ary_entry(rb_int_arr, i), &ptr,SWIGTYPE_p_wxRichTextAttr, 0);
225
+ if (!SWIG_IsOK(res))
226
+ {
227
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(res)), "in output value of type '""Wx::RTC::RichTextAttr""'");
228
+ }
229
+ wxRichTextAttr* wx_att = static_cast< wxRichTextAttr* >(ptr);
230
+ $1.Add(*wx_att);
231
+ }
232
+ output = Qnil;
233
+ __CODE
234
+
235
+ end
236
+
237
+ spec.do_not_generate(:typedefs, :variables, :enums, :defines, :functions)
41
238
  end
42
239
  end # class RichTextBuffer
43
240
 
@@ -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
@@ -0,0 +1,174 @@
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 './richtext_object'
10
+
11
+ module WXRuby3
12
+
13
+ class Director
14
+
15
+ class RichTextCompositeObject < RichTextObject
16
+
17
+ include Typemap::RichText
18
+
19
+ def setup
20
+ super
21
+ if spec.module_name == 'wxRichTextCompositeObject'
22
+ spec.items << 'wxRichTextParagraph' << 'wxRichTextLine'
23
+ spec.gc_as_untracked 'wxRichTextLine'
24
+ spec.no_proxy 'wxRichTextLine'
25
+ spec.make_abstract 'wxRichTextCompositeObject'
26
+ # for AppendChild, InsertChild
27
+ spec.disown 'wxRichTextObject *child'
28
+ # RemoveChild needs custom wrapper as we need to re-own any child that
29
+ # is removed but NOT deleted
30
+ spec.ignore 'wxRichTextCompositeObject::RemoveChild', ignore_doc: false
31
+ spec.add_extend_code 'wxRichTextCompositeObject', <<~__HEREDOC
32
+ bool RemoveChild(VALUE rb_child, bool deleteChild=false)
33
+ {
34
+ void *ptr;
35
+ int res = SWIG_ConvertPtr(rb_child, &ptr,SWIGTYPE_p_wxRichTextObject, 0);
36
+ if (!SWIG_IsOK(res))
37
+ {
38
+ rb_raise(rb_eArgError, "Expected Array of Wx::RTC::RichTextObject for child");
39
+ }
40
+ wxRichTextObject* wx_child = reinterpret_cast< wxRichTextObject * >(ptr);
41
+ bool rc = $self->RemoveChild(wx_child, deleteChild);
42
+ if (rc && !deleteChild)
43
+ {
44
+ RDATA(rb_child)->dfree = GC_RichTextObjectFreeFunc; // make sure Ruby owns
45
+ }
46
+ return rc;
47
+ }
48
+ __HEREDOC
49
+
50
+ spec.new_object 'wxRichTextLine::Clone'
51
+
52
+ spec.map 'const wxRichTextLineVector&' => 'Array<Wx::RTC::RichTextLine' do
53
+
54
+ map_out code: <<~__CODE
55
+ $result = rb_ary_new();
56
+ for (const wxRichTextLine *wx_rtl : *$1)
57
+ {
58
+ rb_ary_push($result, SWIG_NewPointerObj(SWIG_as_voidptr(const_cast<wxRichTextLine*> (wx_rtl)), SWIGTYPE_p_wxRichTextLine, 0));
59
+ }
60
+ __CODE
61
+
62
+ end
63
+
64
+ # create a lightweight, but typesafe, wrapper for wxRichTextFloatCollector
65
+ spec.add_init_code <<~__HEREDOC
66
+ // define wxRichTextFloatCollector wrapper class
67
+ mWxRichTextFloatCollector = rb_define_class_under(mWxRTC, "RichTextFloatCollector", rb_cObject);
68
+ rb_undef_alloc_func(mWxRichTextFloatCollector);
69
+ __HEREDOC
70
+
71
+ spec.add_header_code <<~__HEREDOC
72
+ VALUE mWxRichTextFloatCollector;
73
+
74
+ // wxRichTextFloatCollector wrapper class definition and helper functions
75
+ static size_t __wxRichTextFloatCollector_size(const void* data)
76
+ {
77
+ return 0;
78
+ }
79
+
80
+ #include <ruby/version.h>
81
+
82
+ static const rb_data_type_t __wxRichTextFloatCollector_type = {
83
+ "RichTextFloatCollector",
84
+ #if RUBY_API_VERSION_MAJOR >= 3
85
+ { NULL, NULL, __wxRichTextFloatCollector_size, 0, 0},
86
+ #else
87
+ { NULL, NULL, __wxRichTextFloatCollector_size, 0},
88
+ #endif
89
+ NULL, NULL, RUBY_TYPED_FREE_IMMEDIATELY
90
+ };
91
+
92
+ extern VALUE _wxRuby_Wrap_wxRichTextFloatCollector(wxRichTextFloatCollector* fc)
93
+ {
94
+ if (fc)
95
+ {
96
+ void* data = fc;
97
+ VALUE ret = TypedData_Wrap_Struct(mWxRichTextFloatCollector, &__wxRichTextFloatCollector_type, data);
98
+ return ret;
99
+ }
100
+ else
101
+ return Qnil;
102
+ }
103
+
104
+ extern wxRichTextFloatCollector* _wxRuby_Unwrap_wxRichTextFloatCollector(VALUE rbfc)
105
+ {
106
+ if (NIL_P(rbfc))
107
+ return nullptr;
108
+ else
109
+ {
110
+ void *data = 0;
111
+ TypedData_Get_Struct(rbfc, void, &__wxRichTextFloatCollector_type, data);
112
+ return reinterpret_cast<wxRichTextFloatCollector*> (data);
113
+ }
114
+ }
115
+
116
+ extern bool _wxRuby_Is_wxRichTextFloatCollector(VALUE rbfc)
117
+ {
118
+ return rb_typeddata_is_kind_of(rbfc, &__wxRichTextFloatCollector_type) == 1;
119
+ }
120
+ __HEREDOC
121
+
122
+ spec.ignore 'wxRichTextParagraph::MoveToList',
123
+ 'wxRichTextParagraph::MoveFromList',
124
+ ignore_doc: false
125
+ spec.map 'wxList& list' => 'Array<Wx::RTC::RichTextObject>', swig: false do
126
+ map_in
127
+ end
128
+ spec.add_extend_code 'wxRichTextParagraph', <<~__CODE
129
+ void move_to_list(wxRichTextObject *wx_rto, VALUE rb_list)
130
+ {
131
+ if (TYPE(rb_list) != T_ARRAY)
132
+ {
133
+ rb_raise(rb_eArgError, "Expected Array for list");
134
+ }
135
+ wxList wx_lst;
136
+ $self->MoveToList(wx_rto, wx_lst);
137
+ for (const wxObject* wx_obj : wx_lst)
138
+ {
139
+ VALUE rb_rto = wxRuby_RichTextObject2Ruby(dynamic_cast<const wxRichTextObject*> (wx_obj), SWIG_POINTER_OWN);
140
+ rb_ary_push(rb_list, rb_rto);
141
+ }
142
+ }
143
+
144
+ void move_from_list(VALUE rb_list)
145
+ {
146
+ if (TYPE(rb_list) != T_ARRAY)
147
+ {
148
+ rb_raise(rb_eArgError, "Expected Array for list");
149
+ }
150
+ wxList wx_lst;
151
+ for (int i=0; i<RARRAY_LEN(rb_list) ;++i)
152
+ {
153
+ void *ptr;
154
+ int res = SWIG_ConvertPtr(rb_ary_entry(rb_list, i), &ptr,SWIGTYPE_p_wxRichTextObject, SWIG_POINTER_DISOWN);
155
+ if (!SWIG_IsOK(res))
156
+ {
157
+ rb_raise(rb_eArgError, "Expected Array of Wx::RTC::RichTextObject for list");
158
+ }
159
+ wxRichTextObject* wx_rto = reinterpret_cast< wxRichTextObject * >(ptr);
160
+ wx_lst.push_back(wx_rto);
161
+ }
162
+ $self->MoveFromList(wx_lst);
163
+ }
164
+ __CODE
165
+
166
+ spec.do_not_generate(:typedefs, :variables, :enums, :defines, :functions)
167
+ end
168
+ end
169
+
170
+ end
171
+
172
+ end
173
+
174
+ 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'
@@ -18,6 +21,20 @@ module WXRuby3
18
21
 
19
22
  def setup
20
23
  super
24
+ spec.items << 'wxRichTextContextMenuPropertiesInfo' << 'wxCommandProcessor'
25
+ spec.include 'wx/richtext/richtextstyles.h'
26
+ spec.gc_as_untracked 'wxRichTextContextMenuPropertiesInfo'
27
+ spec.no_proxy 'wxCommandProcessor'
28
+ spec.make_abstract 'wxCommandProcessor'
29
+ # restrict CommandProcessor functionality so we do not expose wxCommand hierarchy
30
+ spec.ignore %w[
31
+ wxCommandProcessor::GetCommands
32
+ wxCommandProcessor::GetCurrentCommand
33
+ wxCommandProcessor::Submit
34
+ wxCommandProcessor::Store
35
+ ]
36
+ # mixin TextEntry
37
+ spec.include_mixin 'wxRichTextCtrl', { 'Wx::TextEntry' => 'wxTextEntryBase' }
21
38
  spec.override_inheritance_chain('wxRichTextCtrl', %w[wxControl wxWindow wxEvtHandler wxObject])
22
39
  spec.include 'wx/dc.h'
23
40
  spec.ignore [
@@ -30,31 +47,167 @@ module WXRuby3
30
47
  'wxRichTextCtrl::HitTest(const wxPoint &,long *)',
31
48
  'wxRichTextCtrl::SetListStyle(const wxRichTextRange &,wxRichTextListStyleDefinition *,int,int,int)',
32
49
  ]
50
+ # ignore the standard event handlers (doesn't seem useful to export to Ruby since non-virtual)
51
+ # and removing cleans the interface
52
+ spec.ignore %w[
53
+ wxRichTextCtrl::OnDropFiles
54
+ wxRichTextCtrl::OnCaptureLost
55
+ wxRichTextCtrl::OnSysColourChanged
56
+ wxRichTextCtrl::OnCut
57
+ wxRichTextCtrl::OnCopy
58
+ wxRichTextCtrl::OnPaste
59
+ wxRichTextCtrl::OnUndo
60
+ wxRichTextCtrl::OnRedo
61
+ wxRichTextCtrl::OnSelectAll
62
+ wxRichTextCtrl::OnProperties
63
+ wxRichTextCtrl::OnClear
64
+ wxRichTextCtrl::OnUpdateCut
65
+ wxRichTextCtrl::OnUpdateCopy
66
+ wxRichTextCtrl::OnUpdatePaste
67
+ wxRichTextCtrl::OnUpdateUndo
68
+ wxRichTextCtrl::OnUpdateRedo
69
+ wxRichTextCtrl::OnUpdateSelectAll
70
+ wxRichTextCtrl::OnUpdateProperties
71
+ wxRichTextCtrl::OnUpdateClear
72
+ wxRichTextCtrl::OnContextMenu
73
+ wxRichTextCtrl::OnPaint
74
+ wxRichTextCtrl::OnEraseBackground
75
+ wxRichTextCtrl::OnLeftClick
76
+ wxRichTextCtrl::OnLeftUp
77
+ wxRichTextCtrl::OnMoveMouse
78
+ wxRichTextCtrl::OnLeftDClick
79
+ wxRichTextCtrl::OnMiddleClick
80
+ wxRichTextCtrl::OnRightClick
81
+ wxRichTextCtrl::OnChar
82
+ wxRichTextCtrl::OnSize
83
+ wxRichTextCtrl::OnSetFocus
84
+ wxRichTextCtrl::OnKillFocus
85
+ wxRichTextCtrl::OnIdle
86
+ wxRichTextCtrl::OnScroll
87
+ ]
33
88
  # TODO : not supported (yet)
34
89
  spec.ignore %w[
35
- wxRichTextCtrl::WriteTextBox
36
- wxRichTextCtrl::WriteField
37
- wxRichTextCtrl::WriteTable
38
90
  wxRichTextCtrl::PaintBackground
39
91
  wxRichTextCtrl::PaintAboveContent
92
+ wxRichTextCtrl::LayoutContent
93
+ wxRichTextCtrl::DoLayoutBuffer
94
+ wxRichTextCtrl::DoGetValue
95
+ wxRichTextCtrl::DoSetValue
96
+ wxRichTextCtrl::DoWriteText
97
+ wxRichTextCtrl::EnableVerticalScrollbar
98
+ wxRichTextCtrl::GetVerticalScrollbarEnabled
99
+ wxRichTextCtrl::SetupScrollbars
100
+ wxRichTextCtrl::ScrollIntoView
101
+ wxRichTextCtrl::KeyboardNavigate
102
+ wxRichTextCtrl::PositionToXY
103
+ wxRichTextCtrl::XYToPosition
40
104
  ]
105
+ # this method contains worrisome code and is unclearly documented so I doubt it's usefulness
106
+ spec.ignore 'wxRichTextCtrl::FindContainerAtPoint'
107
+ # do not think having these proxied is going to bring much for wxRuby and suppressing them
108
+ # prevents code bloat
41
109
  spec.no_proxy %w[
42
110
  wxRichTextCtrl::GetDefaultStyleEx
43
111
  wxRichTextCtrl::GetBasicStyle
112
+ wxRichTextCtrl::WriteField
113
+ wxRichTextCtrl::WriteTextBox
114
+ wxRichTextCtrl::WriteTable
115
+ wxRichTextCtrl::WriteImage
116
+ wxRichTextCtrl::FindRangeForList
117
+ wxRichTextCtrl::ProcessMouseMovement
118
+ wxRichTextCtrl::ProcessBackKey
44
119
  ]
45
120
  unless Config.instance.features_set?('wxUSE_DATETIME')
46
121
  spec.ignore %w[wxRichTextCtrl::GetDragStartTime wxRichTextCtrl::SetDragStartTime]
47
122
  end
123
+ spec.add_header_code 'extern VALUE wxRuby_RichTextObject2Ruby(const wxRichTextObject *wx_rto, int own);'
48
124
  spec.swig_import('swig/classes/include/wxTextAttr.h',
125
+ 'swig/classes/include/wxRichTextObject.h',
126
+ 'swig/classes/include/wxRichTextCompositeObject.h',
127
+ 'swig/classes/include/wxRichTextParagraphLayoutBox.h',
49
128
  'swig/classes/include/wxRichTextBuffer.h',
50
129
  append_to_base_imports: true)
51
130
  spec.suppress_warning(402, 'wxRichTextAttr')
52
131
  # Deal with some output values from TextCtrl methods - PositionToXY
53
132
  spec.map_apply 'long * OUTPUT' => 'long *'
133
+ # DeleteSelectedContent
134
+ spec.map 'long *newPos' => 'Integer,nil' do
135
+ map_in ignore: true, temp: 'long tmp', code: '$1 = &tmp;'
136
+ # ignore C defined return value entirely (also affects directorout)
137
+ map_out ignore: 'bool'
138
+ map_argout code: <<~__CODE
139
+ if (result)
140
+ {
141
+ $result = LONG2NUM(tmp$argnum);
142
+ }
143
+ else
144
+ $result = Qnil;
145
+ __CODE
146
+ map_directorargout code: <<~__CODE
147
+ if (RTEST(result))
148
+ {
149
+ if (TYPE(result) == T_FIXNUM)
150
+ {
151
+ *newPos = NUM2LONG(result);
152
+ c_result = true;
153
+ }
154
+ else
155
+ {
156
+ Swig::DirectorTypeMismatchException::raise(rb_eTypeError,
157
+ "expected an Integer, or nil on failure");
158
+ }
159
+ }
160
+ else
161
+ c_result = false;
162
+ __CODE
163
+ end
54
164
  spec.map_apply 'long * OUTPUT' => [ 'wxTextCoord *col', 'wxTextCoord *row' ]
55
165
  # GetViewStart
56
166
  spec.map_apply 'int * OUTPUT' => 'int *'
57
167
  spec.map_apply 'SWIGTYPE *DISOWN' => 'wxRichTextStyleSheet* styleSheet'
168
+ # ProcessDelayedImageLoading
169
+ spec.map_apply 'int * OUTPUT' => 'int & loadCount'
170
+ # FindRangeForList & FindCaretPositionForCharacterPosition
171
+ spec.map_apply 'bool * OUTPUT' => ['bool & isNumberedList', 'bool & caretLineStart']
172
+ spec.map 'wxLongLong' => 'Integer' do
173
+ map_in code: '$1 = NUM2LL($input);'
174
+ map_out code: '$result = LL2NUM($1.GetValue());'
175
+ end
176
+ # for GetLastPosition
177
+ spec.map_apply 'long' => 'wxTextPos'
178
+ # for wxRichTextContextMenuPropertiesInfo::GetObjects/SetObjects
179
+ spec.map 'const wxRichTextObjectPtrArray &' => 'Array<Wx::RTC::RichTextObject>' do
180
+
181
+ map_in temp: 'wxRichTextObjectPtrArray tmp', code: <<~__CODE
182
+ if (TYPE($input) == T_ARRAY)
183
+ {
184
+ for (int i=0; i<RARRAY_LEN($input) ;++i)
185
+ {
186
+ void *ptr;
187
+ int res = SWIG_ConvertPtr(rb_ary_entry($input, i), &ptr, SWIGTYPE_p_wxRichTextObject, 0);
188
+ if (!SWIG_IsOK(res))
189
+ {
190
+ rb_raise(rb_eArgError, "Expected Array of Wx::RTC::RichTextObject for %d", $argnum-1);
191
+ }
192
+ tmp.Add(reinterpret_cast< wxRichTextObject * >(ptr));
193
+ }
194
+ $1 = &tmp;
195
+ }
196
+ else
197
+ {
198
+ rb_raise(rb_eArgError, "Expected Array for %d", $argnum-1);
199
+ }
200
+ __CODE
201
+
202
+ map_out code: <<~__CODE
203
+ $result = rb_ary_new();
204
+ for (size_t i=0; i<$1->GetCount() ;++i)
205
+ {
206
+ rb_ary_push($result, wxRuby_RichTextObject2Ruby($1->Item(i), 0));
207
+ }
208
+ __CODE
209
+
210
+ end
58
211
  end
59
212
  end # class RichTextCtrl
60
213
 
@@ -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
@@ -10,6 +13,7 @@ module WXRuby3
10
13
  class RichTextFileHandler < Director
11
14
 
12
15
  include Typemap::RichText
16
+ include Typemap::IOStreams
13
17
 
14
18
  def setup
15
19
  super
@@ -26,6 +30,14 @@ module WXRuby3
26
30
  wxRichTextXMLHandler::ExportXML
27
31
  ]
28
32
  when 'wxRichTextHTMLHandler'
33
+ # identically named instance and class method clash in SWIG
34
+ spec.ignore 'wxRichTextHTMLHandler::DeleteTemporaryImages()', ignore_doc: true
35
+ spec.add_extend_code 'wxRichTextHTMLHandler', <<~__CODE
36
+ bool delete_temporary_images()
37
+ {
38
+ return $self->DeleteTemporaryImages();
39
+ }
40
+ __CODE
29
41
  end
30
42
  spec.no_proxy "#{spec.module_name}::LoadFile",
31
43
  "#{spec.module_name}::SaveFile",