wxruby3 0.9.0.pre.rc.2 → 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 (705) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +30 -8
  3. data/README.md +3 -3
  4. data/ext/mkrf_conf_srcgem.rb +4 -1
  5. data/ext/wxruby3/include/wxruby-Config.h +953 -0
  6. data/ext/wxruby3/include/wxruby-ScaledDC.h +4 -1
  7. data/ext/wxruby3/include/wxruby-runtime.h +10 -1
  8. data/ext/wxruby3/swig/RubyStockObjects.i +5 -3
  9. data/ext/wxruby3/swig/common.i +8 -3
  10. data/ext/wxruby3/swig/mark_free_impl.i +6 -4
  11. data/ext/wxruby3/swig/memory_management.i +5 -3
  12. data/ext/wxruby3/swig/typedefs.i +5 -3
  13. data/ext/wxruby3/swig/wx.i +7 -0
  14. data/ext/wxruby3/swig/wx.rc +4 -2
  15. data/lib/wx/accessors.rb +10 -2
  16. data/lib/wx/aui/auifloatframe.rb +20 -0
  17. data/lib/wx/aui/auimanager.rb +3 -0
  18. data/lib/wx/aui/auinotebook.rb +17 -0
  19. data/lib/wx/aui/require.rb +5 -1
  20. data/lib/wx/aui.rb +4 -1
  21. data/lib/wx/core/acceleratortable.rb +8 -0
  22. data/lib/wx/core/animation.rb +8 -0
  23. data/lib/wx/core/app.rb +8 -0
  24. data/lib/wx/core/array_ext.rb +7 -0
  25. data/lib/wx/core/art_locator.rb +7 -0
  26. data/lib/wx/core/artprovider.rb +9 -0
  27. data/lib/wx/core/bitmap.rb +16 -4
  28. data/lib/wx/core/bitmap_combobox.rb +7 -0
  29. data/lib/wx/core/brush.rb +7 -0
  30. data/lib/wx/core/busycursor.rb +9 -0
  31. data/lib/wx/core/choice.rb +7 -0
  32. data/lib/wx/core/choicedlg.rb +7 -0
  33. data/lib/wx/core/clientdc.rb +9 -0
  34. data/lib/wx/core/clipboard.rb +8 -0
  35. data/lib/wx/core/collapsible_pane.rb +8 -1
  36. data/lib/wx/core/colour.rb +8 -0
  37. data/lib/wx/core/combo_ctrl.rb +110 -0
  38. data/lib/wx/core/combobox.rb +7 -0
  39. data/lib/wx/core/config.rb +303 -0
  40. data/lib/wx/core/controlwithitems.rb +12 -1
  41. data/lib/wx/core/cursor.rb +14 -4
  42. data/lib/wx/core/data_object.rb +7 -0
  43. data/lib/wx/core/dataformat.rb +9 -0
  44. data/lib/wx/core/datetime.rb +14 -0
  45. data/lib/wx/core/dc.rb +7 -0
  46. data/lib/wx/core/dialog.rb +18 -1
  47. data/lib/wx/core/enum.rb +7 -0
  48. data/lib/wx/core/event.rb +7 -0
  49. data/lib/wx/core/event_blocker.rb +7 -0
  50. data/lib/wx/core/event_loop.rb +14 -0
  51. data/lib/wx/core/evthandler.rb +8 -0
  52. data/lib/wx/core/ext.rb +7 -0
  53. data/lib/wx/core/file_dialog.rb +23 -0
  54. data/lib/wx/core/find_replace_dialog.rb +7 -0
  55. data/lib/wx/core/functions.rb +8 -0
  56. data/lib/wx/core/gauge.rb +10 -1
  57. data/lib/wx/core/genericdirctrl.rb +9 -0
  58. data/lib/wx/core/hboxsizer.rb +16 -0
  59. data/lib/wx/core/helpcontroller.rb +8 -0
  60. data/lib/wx/core/helpcontrollerhelpprovider.rb +9 -0
  61. data/lib/wx/core/helpprovider.rb +10 -1
  62. data/lib/wx/core/icon.rb +17 -6
  63. data/lib/wx/core/id_helper.rb +7 -0
  64. data/lib/wx/core/image.rb +49 -4
  65. data/lib/wx/core/imagelist.rb +8 -1
  66. data/lib/wx/core/listbox.rb +7 -0
  67. data/lib/wx/core/listctrl.rb +26 -13
  68. data/lib/wx/core/locale.rb +8 -0
  69. data/lib/wx/core/log.rb +114 -0
  70. data/lib/wx/core/menu.rb +9 -0
  71. data/lib/wx/core/menu_bar.rb +7 -0
  72. data/lib/wx/core/menuitem.rb +9 -0
  73. data/lib/wx/core/notebook.rb +9 -0
  74. data/lib/wx/core/object.rb +9 -0
  75. data/lib/wx/core/paintdc.rb +7 -0
  76. data/lib/wx/core/pen.rb +7 -0
  77. data/lib/wx/core/pen_info.rb +7 -0
  78. data/lib/wx/core/platform_info.rb +7 -0
  79. data/lib/wx/core/point.rb +8 -0
  80. data/lib/wx/core/real_point.rb +8 -0
  81. data/lib/wx/core/rect.rb +9 -0
  82. data/lib/wx/core/region_iterator.rb +7 -0
  83. data/lib/wx/core/simplehelpprovider.rb +9 -0
  84. data/lib/wx/core/size.rb +8 -0
  85. data/lib/wx/core/sizer.rb +9 -0
  86. data/lib/wx/core/splash_screen.rb +22 -2
  87. data/lib/wx/core/text_entry.rb +7 -0
  88. data/lib/wx/core/textctrl.rb +86 -5
  89. data/lib/wx/core/timer.rb +9 -0
  90. data/lib/wx/core/toolbar.rb +9 -0
  91. data/lib/wx/core/toolbartool.rb +8 -0
  92. data/lib/wx/core/treectrl.rb +9 -0
  93. data/lib/wx/core/v_list_box.rb +7 -0
  94. data/lib/wx/core/validator.rb +7 -0
  95. data/lib/wx/core/variant.rb +7 -0
  96. data/lib/wx/core/vboxsizer.rb +16 -0
  97. data/lib/wx/core/window.rb +8 -0
  98. data/lib/wx/core/window_update_locker.rb +9 -0
  99. data/lib/wx/core/xmlresource.rb +8 -0
  100. data/lib/wx/core.rb +4 -1
  101. data/lib/wx/doc/app.rb +7 -1
  102. data/lib/wx/doc/array_ext.rb +6 -0
  103. data/lib/wx/doc/art_locator.rb +7 -0
  104. data/lib/wx/doc/aui/auimanager.rb +6 -0
  105. data/lib/wx/doc/aui/auinotebook.rb +6 -0
  106. data/lib/wx/doc/bitmap.rb +19 -15
  107. data/lib/wx/doc/brush.rb +6 -0
  108. data/lib/wx/doc/busy_info.rb +6 -0
  109. data/lib/wx/doc/client_dc.rb +6 -0
  110. data/lib/wx/doc/clipboard.rb +6 -0
  111. data/lib/wx/doc/colour_dialog.rb +6 -0
  112. data/lib/wx/doc/config.rb +190 -0
  113. data/lib/wx/doc/const.rb +7 -0
  114. data/lib/wx/doc/controlwithitems.rb +6 -0
  115. data/lib/wx/doc/core.rb +6 -0
  116. data/lib/wx/doc/cursor.rb +13 -5
  117. data/lib/wx/doc/data_object.rb +6 -0
  118. data/lib/wx/doc/datetime.rb +16 -0
  119. data/lib/wx/doc/dc.rb +6 -0
  120. data/lib/wx/doc/enum.rb +8 -1
  121. data/lib/wx/doc/event.rb +12 -0
  122. data/lib/wx/doc/event_blocker.rb +6 -0
  123. data/lib/wx/doc/event_loop.rb +13 -0
  124. data/lib/wx/doc/events.rb +6 -0
  125. data/lib/wx/doc/evthandler.rb +8 -0
  126. data/lib/wx/doc/extra/00_starting.md +6 -6
  127. data/lib/wx/doc/extra/01_packages.md +52 -51
  128. data/lib/wx/doc/extra/02_lifecycles.md +9 -8
  129. data/lib/wx/doc/extra/05_event-handling.md +37 -12
  130. data/lib/wx/doc/extra/06_geometry.md +5 -5
  131. data/lib/wx/doc/extra/07_colour_and_font.md +2 -2
  132. data/lib/wx/doc/extra/09_exceptions.md +2 -2
  133. data/lib/wx/doc/extra/10_art.md +18 -12
  134. data/lib/wx/doc/extra/11_drawing_and_dc.md +8 -8
  135. data/lib/wx/doc/font.rb +7 -1
  136. data/lib/wx/doc/font_data.rb +16 -0
  137. data/lib/wx/doc/functions.rb +60 -24
  138. data/lib/wx/doc/gc_dc.rb +7 -1
  139. data/lib/wx/doc/gdi_common.rb +8 -1
  140. data/lib/wx/doc/graphics_context.rb +59 -39
  141. data/lib/wx/doc/grid/grid.rb +16 -1
  142. data/lib/wx/doc/hboxsizer.rb +33 -0
  143. data/lib/wx/doc/help_controller.rb +6 -0
  144. data/lib/wx/doc/html/html_help_controller.rb +6 -0
  145. data/lib/wx/doc/icon.rb +13 -5
  146. data/lib/wx/doc/id_helper.rb +6 -0
  147. data/lib/wx/doc/image.rb +50 -12
  148. data/lib/wx/doc/list_ctrl.rb +38 -0
  149. data/lib/wx/doc/log.rb +45 -0
  150. data/lib/wx/doc/memory_dc.rb +6 -0
  151. data/lib/wx/doc/mirror_dc.rb +6 -0
  152. data/lib/wx/doc/pen.rb +6 -0
  153. data/lib/wx/doc/pg/events.rb +6 -0
  154. data/lib/wx/doc/pg/pg_property.rb +17 -0
  155. data/lib/wx/doc/pg/pgeditor.rb +6 -0
  156. data/lib/wx/doc/pg/property_grid.rb +6 -0
  157. data/lib/wx/doc/pg/property_grid_interface.rb +6 -0
  158. data/lib/wx/doc/progress_dialog.rb +6 -0
  159. data/lib/wx/doc/prt/page_setup_dialog.rb +6 -0
  160. data/lib/wx/doc/prt/print_data.rb +6 -0
  161. data/lib/wx/doc/prt/print_dialog.rb +6 -0
  162. data/lib/wx/doc/prt/printer.rb +6 -0
  163. data/lib/wx/doc/prt/printer_dc.rb +8 -2
  164. data/lib/wx/doc/radio_box.rb +6 -0
  165. data/lib/wx/doc/rbn/ribbon_bar.rb +6 -0
  166. data/lib/wx/doc/rbn/ribbon_button_bar.rb +6 -0
  167. data/lib/wx/doc/rbn/ribbon_gallery.rb +6 -0
  168. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +6 -0
  169. data/lib/wx/doc/region_iterator.rb +6 -0
  170. data/lib/wx/doc/rtc/richtext_buffer.rb +28 -0
  171. data/lib/wx/doc/rtc/richtext_formatting_dialog.rb +68 -0
  172. data/lib/wx/doc/rtc/richtext_printing.rb +6 -0
  173. data/lib/wx/doc/rtc/richtext_style_sheet.rb +20 -0
  174. data/lib/wx/doc/scaled_dc.rb +7 -1
  175. data/lib/wx/doc/screen_dc.rb +6 -0
  176. data/lib/wx/doc/stock_objects.rb +6 -0
  177. data/lib/wx/doc/stream.rb +6 -0
  178. data/lib/wx/doc/svg_file_dc.rb +6 -0
  179. data/lib/wx/doc/system_settings.rb +6 -0
  180. data/lib/wx/doc/text_validator.rb +18 -0
  181. data/lib/wx/doc/textctrl.rb +89 -0
  182. data/lib/wx/doc/tree_event.rb +20 -0
  183. data/lib/wx/doc/treebook.rb +6 -0
  184. data/lib/wx/doc/v_list_box.rb +6 -0
  185. data/lib/wx/doc/variant.rb +6 -0
  186. data/lib/wx/doc/vboxsizer.rb +33 -0
  187. data/lib/wx/doc/window.rb +6 -0
  188. data/lib/wx/doc/window_disabler.rb +6 -0
  189. data/lib/wx/doc/xml_resource.rb +8 -0
  190. data/lib/wx/global_const.rb +4 -1
  191. data/lib/wx/grid/grid.rb +23 -3
  192. data/lib/wx/grid/keyword_defs.rb +8 -1
  193. data/lib/wx/grid/require.rb +4 -1
  194. data/lib/wx/grid.rb +4 -1
  195. data/lib/wx/helpers.rb +8 -1
  196. data/lib/wx/html/htmlhelpcontroller.rb +29 -3
  197. data/lib/wx/html/htmlwindow.rb +23 -12
  198. data/lib/wx/html/keyword_defs.rb +8 -1
  199. data/lib/wx/html/require.rb +4 -1
  200. data/lib/wx/html/simple_html_listbox.rb +3 -0
  201. data/lib/wx/html.rb +4 -1
  202. data/lib/wx/keyword_ctors.rb +22 -3
  203. data/lib/wx/keyword_defs.rb +55 -3
  204. data/lib/wx/pg/events.rb +4 -1
  205. data/lib/wx/pg/keyword_defs.rb +8 -1
  206. data/lib/wx/pg/pg_editor.rb +3 -0
  207. data/lib/wx/pg/pg_properties.rb +4 -1
  208. data/lib/wx/pg/pg_property.rb +18 -5
  209. data/lib/wx/pg/property_grid.rb +4 -1
  210. data/lib/wx/pg/property_grid_interface.rb +3 -0
  211. data/lib/wx/pg/require.rb +4 -1
  212. data/lib/wx/pg.rb +4 -1
  213. data/lib/wx/prt/keyword_defs.rb +8 -1
  214. data/lib/wx/prt/page_setup_dialog.rb +3 -0
  215. data/lib/wx/prt/previewframe.rb +5 -0
  216. data/lib/wx/prt/require.rb +4 -1
  217. data/lib/wx/prt.rb +4 -1
  218. data/lib/wx/rbn/events.rb +4 -1
  219. data/lib/wx/rbn/keyword_defs.rb +8 -1
  220. data/lib/wx/rbn/require.rb +5 -1
  221. data/lib/wx/rbn/ribbon_art_provider.rb +3 -1
  222. data/lib/wx/rbn/ribbon_bar.rb +3 -0
  223. data/lib/wx/rbn/ribbon_button_bar.rb +3 -0
  224. data/lib/wx/rbn/ribbon_control.rb +3 -0
  225. data/lib/wx/rbn/ribbon_gallery.rb +10 -0
  226. data/lib/wx/rbn/ribbon_page.rb +3 -0
  227. data/lib/wx/rbn/ribbon_panel.rb +3 -0
  228. data/lib/wx/rbn/ribbon_tool_bar.rb +3 -0
  229. data/lib/wx/rbn.rb +4 -1
  230. data/lib/wx/rtc/ext.rb +4 -1
  231. data/lib/wx/rtc/keyword_defs.rb +18 -7
  232. data/lib/wx/rtc/require.rb +8 -1
  233. data/lib/wx/rtc/richtext_buffer.rb +36 -0
  234. data/lib/wx/rtc/richtext_formatting_dialog.rb +88 -0
  235. data/lib/wx/rtc/richtext_style_organiser_dialog.rb +46 -0
  236. data/lib/wx/rtc/symbol_picker_dialog.rb +47 -0
  237. data/lib/wx/rtc.rb +5 -1
  238. data/lib/wx/stc/keyword_defs.rb +8 -1
  239. data/lib/wx/stc/require.rb +4 -1
  240. data/lib/wx/stc.rb +4 -1
  241. data/lib/wx/version.rb +5 -1
  242. data/lib/wx/wxruby/base.rb +4 -1
  243. data/lib/wx/wxruby/cmd/sampler.rb +4 -1
  244. data/lib/wx/wxruby/cmd/test.rb +4 -1
  245. data/lib/wx.rb +4 -1
  246. data/rakelib/build.rake +4 -1
  247. data/rakelib/build.rb +4 -1
  248. data/rakelib/config.rake +4 -1
  249. data/rakelib/configure.rb +4 -1
  250. data/rakelib/doc.rake +4 -1
  251. data/rakelib/doc.rb +5 -1
  252. data/rakelib/install.rake +4 -1
  253. data/rakelib/install.rb +4 -1
  254. data/rakelib/lib/config/cygwin.rb +4 -1
  255. data/rakelib/lib/config/linux.rb +4 -1
  256. data/rakelib/lib/config/macosx.rb +5 -2
  257. data/rakelib/lib/config/mingw.rb +4 -1
  258. data/rakelib/lib/config/netbsd.rb +4 -1
  259. data/rakelib/lib/config/unixish.rb +10 -7
  260. data/rakelib/lib/config.rb +7 -2
  261. data/rakelib/lib/core/include/enum.inc +4 -1
  262. data/rakelib/lib/core/include/funcall.inc +10 -64
  263. data/rakelib/lib/core/include/init.inc +3 -0
  264. data/rakelib/lib/core/mapping.rb +40 -55
  265. data/rakelib/lib/core/package.rb +20 -3
  266. data/rakelib/lib/core/parameter.rb +4 -1
  267. data/rakelib/lib/core/spec.rb +35 -18
  268. data/rakelib/lib/core/spec_helper.rb +38 -9
  269. data/rakelib/lib/director/about_dialog_info.rb +4 -1
  270. data/rakelib/lib/director/accelerator.rb +7 -2
  271. data/rakelib/lib/director/animation.rb +4 -1
  272. data/rakelib/lib/director/animation_ctrl.rb +4 -1
  273. data/rakelib/lib/director/any_button.rb +5 -2
  274. data/rakelib/lib/director/app.rb +16 -2
  275. data/rakelib/lib/director/app_traits.rb +71 -0
  276. data/rakelib/lib/director/art_provider.rb +4 -1
  277. data/rakelib/lib/director/aui_dock_art.rb +4 -1
  278. data/rakelib/lib/director/aui_floating_frame.rb +4 -1
  279. data/rakelib/lib/director/aui_manager.rb +12 -5
  280. data/rakelib/lib/director/aui_manager_event.rb +4 -1
  281. data/rakelib/lib/director/aui_mdi_child_frame.rb +25 -1
  282. data/rakelib/lib/director/aui_mdi_client_window.rb +4 -1
  283. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -1
  284. data/rakelib/lib/director/aui_notebook.rb +12 -1
  285. data/rakelib/lib/director/aui_notebook_event.rb +4 -1
  286. data/rakelib/lib/director/aui_pane_info.rb +4 -1
  287. data/rakelib/lib/director/aui_tab_art.rb +52 -1
  288. data/rakelib/lib/director/aui_tab_ctrl.rb +14 -1
  289. data/rakelib/lib/director/aui_toolbar.rb +6 -3
  290. data/rakelib/lib/director/aui_toolbar_art.rb +52 -1
  291. data/rakelib/lib/director/aui_toolbar_event.rb +4 -1
  292. data/rakelib/lib/director/aui_toolbar_item.rb +4 -1
  293. data/rakelib/lib/director/banner_window.rb +26 -0
  294. data/rakelib/lib/director/bitmap.rb +11 -2
  295. data/rakelib/lib/director/bitmap_combobox.rb +5 -1
  296. data/rakelib/lib/director/book_ctrls.rb +13 -3
  297. data/rakelib/lib/director/brush.rb +4 -1
  298. data/rakelib/lib/director/busy_info.rb +4 -1
  299. data/rakelib/lib/director/button.rb +4 -1
  300. data/rakelib/lib/director/calendar_ctrl.rb +4 -1
  301. data/rakelib/lib/director/calendar_date_attr.rb +4 -1
  302. data/rakelib/lib/director/caret.rb +4 -1
  303. data/rakelib/lib/director/check_listbox.rb +4 -1
  304. data/rakelib/lib/director/choice.rb +4 -1
  305. data/rakelib/lib/director/clipboard.rb +4 -1
  306. data/rakelib/lib/director/collapsible_pane.rb +4 -1
  307. data/rakelib/lib/director/collapsible_pane_event.rb +4 -1
  308. data/rakelib/lib/director/colour.rb +9 -1
  309. data/rakelib/lib/director/colour_picker_ctrl.rb +4 -1
  310. data/rakelib/lib/director/combobox.rb +4 -1
  311. data/rakelib/lib/director/comboctrl.rb +94 -0
  312. data/rakelib/lib/director/config_base.rb +135 -0
  313. data/rakelib/lib/director/context_help_button.rb +4 -1
  314. data/rakelib/lib/director/control.rb +4 -1
  315. data/rakelib/lib/director/ctrl_with_items.rb +5 -1
  316. data/rakelib/lib/director/cursor.rb +6 -2
  317. data/rakelib/lib/director/data_format.rb +4 -1
  318. data/rakelib/lib/director/data_object.rb +4 -1
  319. data/rakelib/lib/director/data_object_simple_base.rb +4 -1
  320. data/rakelib/lib/director/date_event.rb +9 -2
  321. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  322. data/rakelib/lib/director/dc.rb +19 -1
  323. data/rakelib/lib/director/defs.rb +4 -1
  324. data/rakelib/lib/director/derived_dc.rb +27 -20
  325. data/rakelib/lib/director/dialog.rb +49 -3
  326. data/rakelib/lib/director/dir_filterlist_ctrl.rb +4 -1
  327. data/rakelib/lib/director/dir_picker_ctrl.rb +4 -1
  328. data/rakelib/lib/director/drag_image.rb +9 -2
  329. data/rakelib/lib/director/dragdrop.rb +4 -1
  330. data/rakelib/lib/director/editable_listbox.rb +4 -1
  331. data/rakelib/lib/director/event.rb +11 -3
  332. data/rakelib/lib/director/event_blocker.rb +4 -1
  333. data/rakelib/lib/director/event_filter.rb +4 -1
  334. data/rakelib/lib/director/event_handler.rb +28 -11
  335. data/rakelib/lib/director/event_loop.rb +29 -0
  336. data/rakelib/lib/director/events.rb +5 -2
  337. data/rakelib/lib/director/file_dialog_custom_control.rb +28 -0
  338. data/rakelib/lib/director/file_dialog_customize_hook.rb +28 -0
  339. data/rakelib/lib/director/file_picker_ctrl.rb +4 -1
  340. data/rakelib/lib/director/file_system.rb +45 -0
  341. data/rakelib/lib/director/find_dialog_event.rb +4 -1
  342. data/rakelib/lib/director/find_replace_data.rb +4 -1
  343. data/rakelib/lib/director/font.rb +7 -3
  344. data/rakelib/lib/director/font_data.rb +9 -1
  345. data/rakelib/lib/director/font_picker_ctrl.rb +4 -1
  346. data/rakelib/lib/director/frame.rb +45 -33
  347. data/rakelib/lib/director/fs_file.rb +52 -1
  348. data/rakelib/lib/director/functions.rb +51 -49
  349. data/rakelib/lib/director/gdi_object.rb +4 -1
  350. data/rakelib/lib/director/gdicommon.rb +14 -9
  351. data/rakelib/lib/director/generic_dirctrl.rb +4 -1
  352. data/rakelib/lib/director/graphics_context.rb +113 -18
  353. data/rakelib/lib/director/graphics_object.rb +13 -2
  354. data/rakelib/lib/director/grid_cell_attr.rb +28 -4
  355. data/rakelib/lib/director/grid_cell_editor.rb +22 -5
  356. data/rakelib/lib/director/grid_cell_renderer.rb +16 -3
  357. data/rakelib/lib/director/grid_ctrl.rb +146 -5
  358. data/rakelib/lib/director/grid_range_select_event.rb +4 -1
  359. data/rakelib/lib/director/grid_table_base.rb +6 -1
  360. data/rakelib/lib/director/grid_table_message.rb +4 -1
  361. data/rakelib/lib/director/header_ctrl.rb +37 -0
  362. data/rakelib/lib/director/help_controller.rb +13 -6
  363. data/rakelib/lib/director/help_provider.rb +4 -1
  364. data/rakelib/lib/director/html_cell.rb +10 -3
  365. data/rakelib/lib/director/html_data_object.rb +4 -1
  366. data/rakelib/lib/director/html_easy_printing.rb +4 -1
  367. data/rakelib/lib/director/html_event.rb +4 -1
  368. data/rakelib/lib/director/html_help_data.rb +4 -1
  369. data/rakelib/lib/director/html_help_window.rb +30 -0
  370. data/rakelib/lib/director/html_listbox.rb +4 -1
  371. data/rakelib/lib/director/html_printout.rb +6 -1
  372. data/rakelib/lib/director/html_window.rb +10 -8
  373. data/rakelib/lib/director/hyperlink_ctrl.rb +32 -0
  374. data/rakelib/lib/director/hyperlink_event.rb +4 -1
  375. data/rakelib/lib/director/icon.rb +4 -1
  376. data/rakelib/lib/director/image.rb +58 -3
  377. data/rakelib/lib/director/image_list.rb +5 -1
  378. data/rakelib/lib/director/info_bar.rb +26 -0
  379. data/rakelib/lib/director/list_ctrl.rb +42 -9
  380. data/rakelib/lib/director/listbox.rb +4 -1
  381. data/rakelib/lib/director/locale.rb +7 -4
  382. data/rakelib/lib/director/log.rb +111 -6
  383. data/rakelib/lib/director/mdi_frame.rb +4 -1
  384. data/rakelib/lib/director/media_ctrl.rb +4 -1
  385. data/rakelib/lib/director/menu.rb +16 -3
  386. data/rakelib/lib/director/menu_bar.rb +13 -2
  387. data/rakelib/lib/director/menu_item.rb +6 -6
  388. data/rakelib/lib/director/mouse_state.rb +5 -2
  389. data/rakelib/lib/director/numeric_property_validator.rb +4 -1
  390. data/rakelib/lib/director/object.rb +5 -2
  391. data/rakelib/lib/director/page_setup_dialog.rb +4 -1
  392. data/rakelib/lib/director/palette.rb +54 -2
  393. data/rakelib/lib/director/panel.rb +4 -1
  394. data/rakelib/lib/director/pen.rb +5 -2
  395. data/rakelib/lib/director/pgarray_editor_dialog.rb +4 -1
  396. data/rakelib/lib/director/pgcell.rb +4 -1
  397. data/rakelib/lib/director/pgeditor.rb +4 -1
  398. data/rakelib/lib/director/pgmulti_button.rb +4 -1
  399. data/rakelib/lib/director/pgproperties.rb +4 -1
  400. data/rakelib/lib/director/pgproperty.rb +42 -3
  401. data/rakelib/lib/director/pgvalidation_info.rb +9 -1
  402. data/rakelib/lib/director/pickerbase.rb +4 -1
  403. data/rakelib/lib/director/platform_info.rb +9 -1
  404. data/rakelib/lib/director/popup_window.rb +14 -1
  405. data/rakelib/lib/director/preview_frame.rb +5 -2
  406. data/rakelib/lib/director/print_data.rb +4 -1
  407. data/rakelib/lib/director/print_dialog.rb +4 -1
  408. data/rakelib/lib/director/printer.rb +14 -6
  409. data/rakelib/lib/director/property_grid.rb +30 -1
  410. data/rakelib/lib/director/property_grid_event.rb +11 -1
  411. data/rakelib/lib/director/property_grid_interface.rb +20 -6
  412. data/rakelib/lib/director/property_grid_manager.rb +4 -1
  413. data/rakelib/lib/director/property_grid_page.rb +4 -1
  414. data/rakelib/lib/director/property_grid_page_state.rb +4 -1
  415. data/rakelib/lib/director/radio_box.rb +4 -1
  416. data/rakelib/lib/director/rearrange_list.rb +36 -0
  417. data/rakelib/lib/director/region.rb +5 -1
  418. data/rakelib/lib/director/region_iterator.rb +4 -1
  419. data/rakelib/lib/director/ribbon_art_provider.rb +9 -1
  420. data/rakelib/lib/director/ribbon_bar.rb +4 -1
  421. data/rakelib/lib/director/ribbon_bar_event.rb +4 -1
  422. data/rakelib/lib/director/ribbon_button_bar.rb +4 -1
  423. data/rakelib/lib/director/ribbon_button_bar_event.rb +4 -1
  424. data/rakelib/lib/director/ribbon_ctrl.rb +4 -1
  425. data/rakelib/lib/director/ribbon_gallery.rb +8 -3
  426. data/rakelib/lib/director/ribbon_gallery_event.rb +4 -1
  427. data/rakelib/lib/director/ribbon_page.rb +4 -1
  428. data/rakelib/lib/director/ribbon_panel.rb +4 -1
  429. data/rakelib/lib/director/ribbon_panel_event.rb +4 -1
  430. data/rakelib/lib/director/ribbon_tool_bar.rb +4 -1
  431. data/rakelib/lib/director/ribbon_tool_bar_event.rb +4 -1
  432. data/rakelib/lib/director/richtext_box.rb +61 -0
  433. data/rakelib/lib/director/richtext_buffer.rb +219 -22
  434. data/rakelib/lib/director/richtext_buffer_data_object.rb +4 -1
  435. data/rakelib/lib/director/richtext_composite_object.rb +174 -0
  436. data/rakelib/lib/director/richtext_ctrl.rb +157 -4
  437. data/rakelib/lib/director/richtext_event.rb +4 -1
  438. data/rakelib/lib/director/richtext_file_handler.rb +13 -1
  439. data/rakelib/lib/director/richtext_formatting_dialog.rb +44 -0
  440. data/rakelib/lib/director/richtext_header_footer_data.rb +4 -1
  441. data/rakelib/lib/director/richtext_image.rb +56 -0
  442. data/rakelib/lib/director/richtext_object.rb +272 -0
  443. data/rakelib/lib/director/richtext_paragraph_layout_box.rb +178 -0
  444. data/rakelib/lib/director/richtext_printing.rb +4 -1
  445. data/rakelib/lib/director/richtext_style_listbox.rb +37 -0
  446. data/rakelib/lib/director/richtext_style_organiser_dialog.rb +28 -0
  447. data/rakelib/lib/director/sash_layout_event.rb +4 -1
  448. data/rakelib/lib/director/sash_layout_window.rb +4 -1
  449. data/rakelib/lib/director/sash_window.rb +4 -1
  450. data/rakelib/lib/director/scroll_bar.rb +4 -1
  451. data/rakelib/lib/director/scrolled_t.rb +7 -4
  452. data/rakelib/lib/director/searchctrl.rb +4 -1
  453. data/rakelib/lib/director/sizer.rb +4 -1
  454. data/rakelib/lib/director/sizer_item.rb +9 -3
  455. data/rakelib/lib/director/slider.rb +4 -1
  456. data/rakelib/lib/director/splash_screen.rb +4 -1
  457. data/rakelib/lib/director/splitter_event.rb +4 -1
  458. data/rakelib/lib/director/splitter_window.rb +4 -1
  459. data/rakelib/lib/director/static_bitmap.rb +4 -1
  460. data/rakelib/lib/director/static_box.rb +5 -2
  461. data/rakelib/lib/director/status_bar.rb +5 -1
  462. data/rakelib/lib/director/styled_text_ctrl.rb +14 -2
  463. data/rakelib/lib/director/styled_text_event.rb +4 -1
  464. data/rakelib/lib/director/system_options.rb +4 -1
  465. data/rakelib/lib/director/system_settings.rb +4 -1
  466. data/rakelib/lib/director/task_bar_icon.rb +4 -1
  467. data/rakelib/lib/director/text_attr.rb +5 -2
  468. data/rakelib/lib/director/text_entry.rb +29 -1
  469. data/rakelib/lib/director/text_validator.rb +14 -3
  470. data/rakelib/lib/director/textctrl.rb +32 -3
  471. data/rakelib/lib/director/time_picker_ctrl.rb +4 -1
  472. data/rakelib/lib/director/timer.rb +4 -1
  473. data/rakelib/lib/director/tip_provider.rb +4 -1
  474. data/rakelib/lib/director/toggle_button.rb +4 -1
  475. data/rakelib/lib/director/tool_bar.rb +20 -1
  476. data/rakelib/lib/director/tool_tip.rb +5 -2
  477. data/rakelib/lib/director/top_level_window.rb +58 -51
  478. data/rakelib/lib/director/tree_ctrl.rb +5 -2
  479. data/rakelib/lib/director/tree_event.rb +28 -10
  480. data/rakelib/lib/director/uiaction_simulator.rb +4 -1
  481. data/rakelib/lib/director/utils.rb +9 -1
  482. data/rakelib/lib/director/validator.rb +4 -1
  483. data/rakelib/lib/director/variant.rb +22 -6
  484. data/rakelib/lib/director/vlistbox.rb +4 -1
  485. data/rakelib/lib/director/vscrolled_window.rb +4 -1
  486. data/rakelib/lib/director/window.rb +81 -82
  487. data/rakelib/lib/director/window_disabler.rb +4 -1
  488. data/rakelib/lib/director/with_images.rb +5 -2
  489. data/rakelib/lib/director/wizard_page.rb +4 -1
  490. data/rakelib/lib/director/xml_node.rb +4 -1
  491. data/rakelib/lib/director/xml_resource.rb +4 -1
  492. data/rakelib/lib/director.rb +27 -28
  493. data/rakelib/lib/ext/enum_chain.rb +4 -1
  494. data/rakelib/lib/extractor/class.rb +8 -6
  495. data/rakelib/lib/extractor/enum.rb +15 -2
  496. data/rakelib/lib/extractor/function.rb +17 -9
  497. data/rakelib/lib/extractor/module.rb +4 -1
  498. data/rakelib/lib/extractor/variable.rb +10 -7
  499. data/rakelib/lib/extractor.rb +7 -2
  500. data/rakelib/lib/generate/analyzer.rb +31 -21
  501. data/rakelib/lib/generate/base.rb +4 -1
  502. data/rakelib/lib/generate/doc/aui_manager.yaml +21 -0
  503. data/rakelib/lib/generate/doc/font.yaml +29 -0
  504. data/rakelib/lib/generate/doc/frame.yaml +23 -0
  505. data/rakelib/lib/generate/doc/fs_file.yaml +11 -0
  506. data/rakelib/lib/generate/doc/gdi_common.yaml +36 -0
  507. data/rakelib/lib/generate/doc/graphics_context.yaml +34 -0
  508. data/rakelib/lib/generate/doc/grid_cell_attr.yaml +21 -0
  509. data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
  510. data/rakelib/lib/generate/doc/gui_event_loop.yaml +12 -0
  511. data/rakelib/lib/generate/doc/help_controller.yaml +24 -0
  512. data/rakelib/lib/generate/doc/html_cell.yaml +11 -0
  513. data/rakelib/lib/generate/doc/html_help_controller.yaml +23 -0
  514. data/rakelib/lib/generate/doc/html_help_window.yaml +21 -0
  515. data/rakelib/lib/generate/doc/html_window.yaml +47 -0
  516. data/rakelib/lib/generate/doc/icon.yaml +11 -0
  517. data/rakelib/lib/generate/doc/image.yaml +87 -0
  518. data/rakelib/lib/generate/doc/keyboard_state.yaml +19 -0
  519. data/rakelib/lib/generate/doc/list_ctrl.yaml +77 -0
  520. data/rakelib/lib/generate/doc/locale.yaml +12 -0
  521. data/rakelib/lib/generate/doc/log.yaml +86 -0
  522. data/rakelib/lib/generate/doc/mdi_frame.yaml +12 -0
  523. data/rakelib/lib/generate/doc/memory_dc.yaml +42 -0
  524. data/rakelib/lib/generate/doc/menu.yaml +17 -0
  525. data/rakelib/lib/generate/doc/menu_item.yaml +43 -0
  526. data/rakelib/lib/generate/doc/message_dialog.yaml +36 -0
  527. data/rakelib/lib/generate/doc/non_owned_window.yaml +14 -0
  528. data/rakelib/lib/generate/doc/notebook.yaml +18 -0
  529. data/rakelib/lib/generate/doc/pen.yaml +11 -0
  530. data/rakelib/lib/generate/doc/pg_editor.yaml +11 -0
  531. data/rakelib/lib/generate/doc/pg_multi_button.yaml +78 -0
  532. data/rakelib/lib/generate/doc/pg_properties.yaml +244 -0
  533. data/rakelib/lib/generate/doc/pg_property.yaml +188 -0
  534. data/rakelib/lib/generate/doc/picker_base.yaml +19 -0
  535. data/rakelib/lib/generate/doc/platform_info.yaml +15 -0
  536. data/rakelib/lib/generate/doc/property_grid.yaml +23 -0
  537. data/rakelib/lib/generate/doc/property_grid_interface.yaml +30 -0
  538. data/rakelib/lib/generate/doc/property_grid_manager.yaml +40 -0
  539. data/rakelib/lib/generate/doc/property_sheet_dialog.yaml +26 -0
  540. data/rakelib/lib/generate/doc/rich_text_html_handler.yaml +11 -0
  541. data/rakelib/lib/generate/doc/scroll_bar.yaml +11 -0
  542. data/rakelib/lib/generate/doc/scrolled_canvas.yaml +37 -0
  543. data/rakelib/lib/generate/doc/scrolled_control.yaml +37 -0
  544. data/rakelib/lib/generate/doc/scrolled_window.yaml +37 -0
  545. data/rakelib/lib/generate/doc/sizer.yaml +69 -0
  546. data/rakelib/lib/generate/doc/splash_screen.yaml +18 -0
  547. data/rakelib/lib/generate/doc/static_box.yaml +52 -0
  548. data/rakelib/lib/generate/doc/static_box_sizer.yaml +22 -0
  549. data/rakelib/lib/generate/doc/styled_text_ctrl.yaml +18 -0
  550. data/rakelib/lib/generate/doc/svg_file_dc.yaml +11 -0
  551. data/rakelib/lib/generate/doc/symbol_picker_dialog.yaml +40 -0
  552. data/rakelib/lib/generate/doc/text_ctrl.yaml +19 -0
  553. data/rakelib/lib/generate/doc/text_entry.yaml +42 -0
  554. data/rakelib/lib/generate/doc/text_entry_dialog.yaml +17 -0
  555. data/rakelib/lib/generate/doc/timer_event.yaml +28 -0
  556. data/rakelib/lib/generate/doc/tool_bar.yaml +35 -0
  557. data/rakelib/lib/generate/doc/top_level_window.yaml +23 -0
  558. data/rakelib/lib/generate/doc/validator.yaml +12 -0
  559. data/rakelib/lib/generate/doc/variant.yaml +29 -0
  560. data/rakelib/lib/generate/doc/window.yaml +249 -0
  561. data/rakelib/lib/generate/doc/wizard_page_simple.yaml +14 -0
  562. data/rakelib/lib/generate/doc/xml_node.yaml +7 -0
  563. data/rakelib/lib/generate/doc/xml_resource.yaml +27 -0
  564. data/rakelib/lib/generate/doc.rb +54 -4
  565. data/rakelib/lib/generate/interface.rb +79 -110
  566. data/rakelib/lib/generate/rakedep.rb +4 -1
  567. data/rakelib/lib/specs/interfaces.rb +46 -20
  568. data/rakelib/lib/streams.rb +5 -1
  569. data/rakelib/lib/swig_runner.rb +71 -22
  570. data/rakelib/lib/typemap/array_int_selections.rb +4 -1
  571. data/rakelib/lib/typemap/common.rb +57 -2
  572. data/rakelib/lib/typemap/config.rb +55 -0
  573. data/rakelib/lib/typemap/data_format.rb +4 -1
  574. data/rakelib/lib/typemap/data_object_data.rb +4 -1
  575. data/rakelib/lib/typemap/datetime.rb +8 -1
  576. data/rakelib/lib/typemap/grid_client_data.rb +4 -1
  577. data/rakelib/lib/typemap/grid_coords.rb +37 -7
  578. data/rakelib/lib/typemap/html_cell.rb +4 -1
  579. data/rakelib/lib/typemap/io_streams.rb +4 -1
  580. data/rakelib/lib/typemap/pgcell.rb +4 -1
  581. data/rakelib/lib/typemap/pgeditor.rb +4 -1
  582. data/rakelib/lib/typemap/pgprop_arg.rb +4 -1
  583. data/rakelib/lib/typemap/pgproperty.rb +4 -1
  584. data/rakelib/lib/typemap/points_list.rb +4 -1
  585. data/rakelib/lib/typemap/richtext.rb +185 -11
  586. data/rakelib/lib/typemap/tree_itemid.rb +26 -1
  587. data/rakelib/lib/util/string.rb +4 -1
  588. data/rakelib/prepost.rake +4 -1
  589. data/rakelib/prepost.rb +4 -1
  590. data/rakelib/run.rake +4 -1
  591. data/samples/aui/aui.rb +8 -3
  592. data/samples/bigdemo/bigdemo.rb +9 -2
  593. data/samples/bigdemo/run.rb +9 -2
  594. data/samples/bigdemo/utils.rb +9 -1
  595. data/samples/calendar/calendar.rb +9 -4
  596. data/samples/caret/caret.rb +8 -3
  597. data/samples/controls/books.rb +8 -2
  598. data/samples/controls/controls.rb +33 -77
  599. data/samples/controls/get_item_sample.rb +8 -2
  600. data/samples/controls/htlbox.rb +10 -3
  601. data/samples/dialogs/dialogs.rb +9 -4
  602. data/samples/dialogs/wizard.rb +8 -3
  603. data/samples/dragdrop/dragdrop.rb +8 -3
  604. data/samples/drawing/bitmap.rb +8 -3
  605. data/samples/drawing/bitmap_image.rb +8 -3
  606. data/samples/drawing/graphics_drawing.rb +44 -33
  607. data/samples/drawing/image_prt.rb +8 -2
  608. data/samples/drawing/maths_images.rb +8 -3
  609. data/samples/drawing/rmagic_bitmap_image.rb +8 -3
  610. data/samples/etc/choice.rb +8 -3
  611. data/samples/etc/miniframe.rb +8 -3
  612. data/samples/etc/sash.rb +8 -3
  613. data/samples/etc/scrollwin.rb +8 -3
  614. data/samples/etc/system_settings.rb +8 -3
  615. data/samples/event/activation.rb +8 -3
  616. data/samples/event/event.rb +8 -3
  617. data/samples/event/threaded.rb +8 -3
  618. data/samples/event/update_ui_event.rb +8 -3
  619. data/samples/grid/grid.rb +9 -3
  620. data/samples/grid/gridtablebase.rb +8 -3
  621. data/samples/html/html.rb +8 -3
  622. data/samples/mdi/mdi.rb +8 -3
  623. data/samples/minimal/minimal.rb +8 -3
  624. data/samples/minimal/nothing.rb +8 -3
  625. data/samples/printing/printing.rb +8 -3
  626. data/samples/printing/printing2.rb +8 -2
  627. data/samples/propgrid/propgrid.rb +4 -1
  628. data/samples/propgrid/propgrid_minimal.rb +4 -2
  629. data/samples/propgrid/sample_props.rb +4 -1
  630. data/samples/ribbon/ribbon.rb +4 -1
  631. data/samples/sampler/editor.rb +4 -1
  632. data/samples/sampler/ext.rb +4 -1
  633. data/samples/sampler/sample.rb +13 -4
  634. data/samples/sampler/stc_editor.rb +4 -1
  635. data/samples/sampler/txt_editor.rb +4 -1
  636. data/samples/sampler.rb +11 -3
  637. data/samples/splash/splash.rb +4 -2
  638. data/samples/text/art/richtext/alignleft.xpm +24 -0
  639. data/samples/text/art/richtext/alignright.xpm +24 -0
  640. data/samples/text/art/richtext/bold.xpm +24 -0
  641. data/samples/text/art/richtext/centre.xpm +24 -0
  642. data/samples/text/art/richtext/copy.xpm +45 -0
  643. data/samples/text/art/richtext/cut.xpm +47 -0
  644. data/samples/text/art/richtext/font.xpm +25 -0
  645. data/samples/text/art/richtext/idea.xpm +47 -0
  646. data/samples/text/art/richtext/indentless.xpm +25 -0
  647. data/samples/text/art/richtext/indentmore.xpm +25 -0
  648. data/samples/text/art/richtext/italic.xpm +25 -0
  649. data/samples/text/art/richtext/open.xpm +58 -0
  650. data/samples/text/art/richtext/paste.xpm +47 -0
  651. data/samples/text/art/richtext/redo.xpm +59 -0
  652. data/samples/text/art/richtext/save.xpm +43 -0
  653. data/samples/text/art/richtext/smiley.xpm +42 -0
  654. data/samples/text/art/richtext/underline.xpm +25 -0
  655. data/samples/text/art/richtext/undo.xpm +59 -0
  656. data/samples/text/art/richtext/zebra.xpm +409 -0
  657. data/samples/text/rich_textctrl.rb +8 -3
  658. data/samples/text/richtext.rb +1824 -0
  659. data/samples/text/scintilla.rb +8 -3
  660. data/samples/text/textctrl.rb +21 -4
  661. data/samples/text/tn_richtext.png +0 -0
  662. data/samples/text/unicode.rb +9 -4
  663. data/samples/treectrl/treectrl.rb +10 -5
  664. data/samples/xrc/custom_xrc_sample.rb +8 -3
  665. data/samples/xrc/xrc_sample.rb +8 -3
  666. data/tests/art/test_art/bitmap/wxruby-128x128.png +0 -0
  667. data/tests/art/test_art/bitmap/wxruby-256x256.png +0 -0
  668. data/tests/art/test_art/bitmap/wxruby-64x64.png +0 -0
  669. data/tests/lib/item_container_tests.rb +3 -0
  670. data/tests/lib/text_entry_tests.rb +3 -0
  671. data/tests/lib/wxapp_runner.rb +3 -0
  672. data/tests/lib/wxframe_runner.rb +81 -3
  673. data/tests/test_app_event_filter.rb +3 -0
  674. data/tests/test_app_traits.rb +33 -0
  675. data/tests/test_art.rb +31 -0
  676. data/tests/test_art_provider.rb +3 -0
  677. data/tests/test_aui.rb +65 -0
  678. data/tests/test_basic.rb +5 -1
  679. data/tests/test_box_sizer.rb +164 -0
  680. data/tests/test_clipboard.rb +3 -0
  681. data/tests/test_config.rb +150 -0
  682. data/tests/test_dc.rb +3 -0
  683. data/tests/test_dialog.rb +3 -0
  684. data/tests/test_event_handling.rb +3 -0
  685. data/tests/test_events.rb +3 -0
  686. data/tests/test_ext_controls.rb +286 -3
  687. data/tests/test_file_dialog.rb +55 -0
  688. data/tests/test_font.rb +8 -5
  689. data/tests/test_gdi_object.rb +3 -0
  690. data/tests/test_geometry.rb +4 -0
  691. data/tests/test_grid_sizer.rb +151 -0
  692. data/tests/test_intl.rb +3 -0
  693. data/tests/test_item_data.rb +3 -0
  694. data/tests/test_list_ctrl.rb +56 -0
  695. data/tests/test_log.rb +226 -0
  696. data/tests/test_proof_check.rb +52 -0
  697. data/tests/test_richtext.rb +204 -0
  698. data/tests/test_std_controls.rb +99 -31
  699. data/tests/test_timer.rb +98 -0
  700. data/tests/test_variant.rb +3 -0
  701. data/tests/test_window.rb +10 -8
  702. data/tests/testapp.rb +4 -0
  703. data/tests/testapp_noframe.rb +4 -0
  704. metadata +146 -3
  705. 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
  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",
@@ -0,0 +1,44 @@
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 './dialog'
10
+
11
+ module WXRuby3
12
+
13
+ class Director
14
+
15
+ class RichTextFormattingDialog < Dialog
16
+
17
+ include Typemap::RichText
18
+
19
+ def setup
20
+ super
21
+ spec.items << 'wxRichTextFormattingDialogFactory'
22
+ spec.add_header_code 'extern VALUE wxRuby_RichTextStyleDefinition2Ruby(const wxRichTextStyleDefinition *wx_rtsd, int own);'
23
+ spec.no_proxy %w[
24
+ wxRichTextFormattingDialog::GetStyleDefinition
25
+ wxRichTextFormattingDialog::GetStyleSheet
26
+ wxRichTextFormattingDialog::GetStyle
27
+ wxRichTextFormattingDialog::SetStyle
28
+ wxRichTextFormattingDialog::SetStyleDefinition
29
+ ]
30
+ # add undocumented methods
31
+ spec.extend_interface 'wxRichTextFormattingDialog',
32
+ 'wxRichTextObject* GetObject() const',
33
+ 'void SetObject(wxRichTextObject* obj)',
34
+ 'virtual bool ApplyStyle(wxRichTextCtrl* ctrl, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO)'
35
+ spec.add_header_code 'extern VALUE wxRuby_RichTextObject2Ruby(const wxRichTextObject *wx_rto, int own);'
36
+ spec.disown 'wxRichTextFormattingDialogFactory *factory'
37
+ spec.suppress_warning(473, 'wxRichTextFormattingDialogFactory::CreatePage')
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+
44
+ 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
  module WXRuby3
@@ -0,0 +1,56 @@
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 RichTextImage < RichTextObject
16
+
17
+ include Typemap::RichText
18
+ include Typemap::IOStreams
19
+
20
+ def setup
21
+ super
22
+ spec.items << 'wxRichTextImageBlock'
23
+ spec.no_proxy 'wxRichTextImageBlock'
24
+ spec.ignore 'wxRichTextImageBlock::ReadBlock',
25
+ 'wxRichTextImageBlock::WriteBlock'
26
+ # for SetData & GetData
27
+ spec.map 'unsigned char *' => 'String' do
28
+
29
+ map_in temp: 'std::unique_ptr<unsigned char[]> buf', code: <<~__CODE
30
+ if (TYPE($input) == T_STRING)
31
+ {
32
+ int data_len = RSTRING_LEN($input);
33
+ buf = std::make_unique<unsigned char[]> (data_len);
34
+ memcpy(buf.get(), StringValuePtr($input), data_len);
35
+ $1 = buf.release();
36
+ }
37
+ else
38
+ {
39
+ rb_raise(rb_eArgError, "Expected a String for %d", $argnum-1);
40
+ }
41
+ __CODE
42
+
43
+ map_out code: <<~__CODE
44
+ size_t data_len = arg1->GetDataSize();
45
+ $result = rb_str_new( (const char*)$1, data_len);
46
+ __CODE
47
+ end
48
+ spec.map_apply 'bool * OUTPUT' => 'bool & changed'
49
+ spec.do_not_generate(:typedefs, :variables, :enums, :defines, :functions)
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+
56
+ end
@@ -0,0 +1,272 @@
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 RichTextObject < Director
14
+
15
+ include Typemap::RichText
16
+
17
+ def setup
18
+ super
19
+ spec.swig_import 'swig/classes/include/wxTextAttr.h'
20
+ if spec.module_name == 'wxRichTextObject'
21
+ spec.items.concat %w[
22
+ wxRichTextPlainText
23
+ wxRichTextDrawingContext
24
+ wxRichTextAttr
25
+ wxTextBoxAttr
26
+ wxTextAttrDimension
27
+ wxTextAttrDimensions
28
+ wxTextAttrShadow
29
+ wxTextAttrBorder
30
+ wxTextAttrBorders
31
+ wxTextAttrSize
32
+ wxRichTextSelection
33
+ wxRichTextProperties
34
+ ]
35
+ spec.disable_proxies
36
+ spec.gc_as_untracked 'wxRichTextObject',
37
+ 'wxRichTextPlainText'
38
+ spec.add_swig_code '%feature("freefunc") wxRichTextObject "GC_RichTextObjectFreeFunc";'
39
+ spec.gc_as_untracked 'wxRichTextDrawingContext',
40
+ 'wxRichTextAttr',
41
+ 'wxTextBoxAttr',
42
+ 'wxTextAttrDimension',
43
+ 'wxTextAttrDimensions',
44
+ 'wxTextAttrShadow',
45
+ 'wxTextAttrBorder',
46
+ 'wxTextAttrBorders',
47
+ 'wxTextAttrSize',
48
+ 'wxRichTextSelection',
49
+ 'wxRichTextProperties'
50
+ spec.add_header_code <<~__HEREDOC
51
+ extern void GC_RichTextObjectFreeFunc(void* ptr)
52
+ {
53
+ SWIG_RubyRemoveTracking(ptr);
54
+ if (ptr)
55
+ {
56
+ #ifdef __WXRB_DEBUG__
57
+ if (wxRuby_TraceLevel()>1)
58
+ std::wcout << "GC_RichTextObjectFreeFunc(" << ptr << ")" << std::endl;
59
+ #endif
60
+ ((wxRichTextObject*)ptr)->Dereference();
61
+ }
62
+ }
63
+ __HEREDOC
64
+ spec.make_abstract 'wxRichTextObject'
65
+ spec.add_header_code <<~__HEREDOC
66
+ extern VALUE wxRuby_RichTextObject2Ruby(const wxRichTextObject *wx_rto, int own)
67
+ {
68
+ // If no object was passed to be wrapped.
69
+ if ( ! wx_rto )
70
+ return Qnil;
71
+
72
+ // Get the wx class and the ruby class we are converting into
73
+ wxString class_name( wx_rto->GetClassInfo()->GetClassName() );
74
+ wxCharBuffer wx_classname = class_name.mb_str();
75
+ VALUE r_class_name = rb_intern(wx_classname.data () + 2);
76
+ VALUE r_class = Qnil;
77
+
78
+ if ( class_name.Len() > 2 )
79
+ {
80
+ // lookup the class in the RichText module
81
+ if (rb_const_defined(mWxRTC, r_class_name))
82
+ r_class = rb_const_get(mWxRTC, r_class_name);
83
+ }
84
+
85
+ // Handle classes (currently) unknown in wxRuby.
86
+ if ( NIL_P(r_class) )
87
+ {
88
+ rb_warn("Error wrapping object; class '%s' is not (yet) supported in wxRuby",
89
+ (const char *)class_name.mb_str());
90
+ return Qnil;
91
+ }
92
+
93
+ // Otherwise, retrieve the swig type info for this class and wrap it
94
+ // in Ruby. wxRuby_GetSwigTypeForClass is defined in wx.i
95
+ swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(r_class);
96
+ VALUE rb_rto = SWIG_NewPointerObj(const_cast<wxRichTextObject*> (wx_rto), swig_type, own);
97
+ return rb_rto;
98
+ }
99
+ __HEREDOC
100
+ spec.ignore(%w[wxRICHTEXT_ALL wxRICHTEXT_NONE wxRICHTEXT_NO_SELECTION])
101
+ # special typemap for const wxChar wxRichTextLineBreakChar;
102
+ spec.add_swig_code <<~__HEREDOC
103
+ %typemap(constcode,noblock=1) const wxChar {
104
+ %set_constant("$symname", rb_str_new2((const char *)wxString($value).utf8_str()));
105
+ }
106
+ __HEREDOC
107
+ spec.new_object 'wxRichTextObject::DoSplit',
108
+ 'wxRichTextObject::Clone'
109
+ # for wxRichTextObject::GetRangeSize
110
+ spec.map 'int & descent', as: 'Integer' do
111
+
112
+ map_in temp: 'int tmp', code: 'tmp = NUM2INT($input); $1 = &tmp;'
113
+
114
+ map_argout code: '$result = SWIG_Ruby_AppendOutput($result, INT2NUM(tmp$argnum));'
115
+
116
+ map_directorin code: '$input = INT2NUM($1);'
117
+
118
+ map_directorargout code: <<~__CODE
119
+ if(output != Qnil)
120
+ {
121
+ $1 = NUM2INT(output);
122
+ }
123
+ else
124
+ {
125
+ $1 = 0;
126
+ }
127
+ __CODE
128
+
129
+ end
130
+ spec.map_apply 'int * OUTPUT' => ['int * height',
131
+ 'int &leftMargin', 'int &rightMargin', 'int &topMargin', 'int &bottomMargin']
132
+ spec.map 'wxTextOutputStream &' => 'IO,Wx::OutputStream' do
133
+
134
+ add_header_code <<~__CODE
135
+ WXRUBY_EXPORT bool wxRuby_IsOutputStream(VALUE);
136
+ WXRUBY_EXPORT bool wxRuby_IsCompatibleOutput(VALUE rbos);
137
+ WXRUBY_EXPORT wxOutputStream* wxRuby_RubyToOutputStream(VALUE);
138
+ WXRUBY_EXPORT VALUE wxRuby_RubyFromOutputStream(wxOutputStream&);
139
+
140
+ // Allows a ruby IO-like object to be used as a wxOutputStream
141
+ class WXRUBY_EXPORT wxRubyOutputStream : public wxOutputStream
142
+ {
143
+ public:
144
+ // Initialize with the writeable ruby IO-like object
145
+ wxRubyOutputStream(VALUE rb_io);
146
+ virtual ~wxRubyOutputStream();
147
+
148
+ wxFileOffset GetLength() const wxOVERRIDE;
149
+
150
+ void Sync() wxOVERRIDE;
151
+ bool Close() wxOVERRIDE;
152
+ bool Ok() const { return IsOk(); }
153
+ bool IsOk() const wxOVERRIDE;
154
+ bool IsSeekable() const wxOVERRIDE;
155
+
156
+ VALUE GetRubyIO () { return m_rbio; }
157
+
158
+ protected:
159
+ size_t OnSysWrite(const void *buffer, size_t size) wxOVERRIDE;
160
+ wxFileOffset OnSysSeek(wxFileOffset seek, wxSeekMode mode) wxOVERRIDE;
161
+ wxFileOffset OnSysTell() const wxOVERRIDE;
162
+
163
+ VALUE m_rbio; // Wrapped ruby object
164
+ bool m_isIO;
165
+ bool m_isSeekable;
166
+ };
167
+ __CODE
168
+
169
+ map_in temp: 'std::unique_ptr<wxRubyOutputStream> tmp_ros, std::unique_ptr<wxTextOutputStream> tmp_tos',
170
+ code: <<~__CODE
171
+ if (wxRuby_IsCompatibleOutput($input))
172
+ {
173
+ tmp_ros = std::make_unique<wxRubyOutputStream>($input);
174
+ tmp_tos = std::make_unique<wxTextOutputStream>(*tmp_ros.get());
175
+ $1 = tmp_tos.get();
176
+ }
177
+ else
178
+ {
179
+ wxOutputStream* wx_os = wxRuby_RubyToOutputStream($input);
180
+ if (!wx_os)
181
+ {
182
+ rb_raise(rb_eArgError, "Invalid value for %d expected IO(-like) or Wx::OutputStream", $argnum-1);
183
+ }
184
+ tmp_tos = std::make_unique<wxTextOutputStream>(*wx_os);
185
+ $1 = tmp_tos.get();
186
+ }
187
+ __CODE
188
+ end
189
+ spec.map 'wxRichTextAttrArray & attributes' => 'Array' do
190
+
191
+ map_in temp: 'wxRichTextAttrArray arr, VALUE rb_arr', code: <<~__CODE
192
+ if (TYPE($input) == T_ARRAY)
193
+ {
194
+ $1 = &arr;
195
+ rb_arr = $input;
196
+ }
197
+ else
198
+ {
199
+ rb_raise(rb_eArgError, "Expected an Array for %d", $argnum-1);
200
+ }
201
+ __CODE
202
+
203
+ map_argout by_ref: true, code: <<~__CODE
204
+ for (size_t i=0; i<arr$argnum.GetCount() ;++i)
205
+ {
206
+ wxRichTextAttr* wx_rta = new wxRichTextAttr(arr$argnum.Item(i));
207
+ rb_ary_push(rb_arr$argnum, SWIG_NewPointerObj(SWIG_as_voidptr(wx_rta), SWIGTYPE_p_wxRichTextAttr, SWIG_POINTER_OWN));
208
+ }
209
+ __CODE
210
+
211
+ end
212
+ spec.ignore 'wxRichTextSelection::operator[]'
213
+ spec.ignore 'wxRichTextProperties::SetProperty(const wxString &,const wxChar *)',
214
+ 'wxRichTextProperties::operator[]'
215
+ spec.map 'const wxRichTextVariantArray &' => 'Array<Wx::Variant>' do
216
+ map_in temp: 'wxRichTextVariantArray tmp', code: <<~__CODE
217
+ if (($input == Qnil) || (TYPE($input) != T_ARRAY))
218
+ {
219
+ rb_raise(rb_eArgError, "Expected an Array of Wx::Variant for %d", $argnum-1);
220
+ }
221
+ else
222
+ {
223
+ for (int i = 0; i < RARRAY_LEN($input); ++i)
224
+ {
225
+ void *ptr;
226
+ VALUE var = rb_ary_entry($input, i);
227
+ int res = SWIG_ConvertPtr(var, &ptr, SWIGTYPE_p_wxVariant, 0 );
228
+ if (!SWIG_IsOK(res)) {
229
+ rb_raise(rb_eArgError, "Expected an Array of Wx::Variant for %d", $argnum-1);
230
+ }
231
+ tmp.Add(*static_cast<wxVariant*>(ptr));
232
+ }
233
+ $1 = &tmp;
234
+ }
235
+ __CODE
236
+ map_out code: <<~__CODE
237
+ $result = rb_ary_new();
238
+ for (size_t i = 0; i < $1->Count(); ++i)
239
+ {
240
+ wxVariant *var = &(*$1)[i];
241
+ rb_ary_push($result, SWIG_NewPointerObj(SWIG_as_voidptr(var), SWIGTYPE_p_wxVariant, 0));
242
+ }
243
+ __CODE
244
+ map_typecheck precedence: 'OBJECT_ARRAY', code: '$1 = TYPE($input) == T_ARRAY;'
245
+ end
246
+ spec.do_not_generate(:functions)
247
+ else
248
+ spec.add_header_code 'extern VALUE wxRuby_RichTextObject2Ruby(const wxRichTextObject *wx_rto, int own);'
249
+ end
250
+ end
251
+
252
+ def process(gendoc: false)
253
+ defmod = super
254
+ unless spec.module_name == 'wxRichTextObject'
255
+ spec.add_header_code 'extern void GC_RichTextObjectFreeFunc(void* ptr);'
256
+ spec.items.each do |citem|
257
+ def_item = defmod.find_item(citem)
258
+ if Extractor::ClassDef === def_item && def_item.is_derived_from?('wxRichTextObject')
259
+ spec.no_proxy def_item.name
260
+ spec.gc_as_untracked def_item.name
261
+ spec.add_swig_code %Q{%feature("freefunc") #{def_item.name} "GC_RichTextObjectFreeFunc";}
262
+ end
263
+ end
264
+ end
265
+ defmod
266
+ end
267
+
268
+ end
269
+
270
+ end
271
+
272
+ end