wxruby3 0.9.0.pre.rc.3 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (683) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/mkrf_conf_srcgem.rb +4 -1
  4. data/ext/wxruby3/include/wxruby-Config.h +953 -0
  5. data/ext/wxruby3/include/wxruby-ScaledDC.h +4 -1
  6. data/ext/wxruby3/include/wxruby-runtime.h +13 -1
  7. data/ext/wxruby3/swig/RubyStockObjects.i +5 -3
  8. data/ext/wxruby3/swig/common.i +30 -3
  9. data/ext/wxruby3/swig/custom/director.swg +296 -0
  10. data/ext/wxruby3/swig/custom/rubyapi.swg +19 -0
  11. data/ext/wxruby3/swig/custom/rubyerrors.swg +45 -0
  12. data/ext/wxruby3/swig/custom/rubyhead.swg +192 -0
  13. data/ext/wxruby3/swig/custom/rubyrun.swg +187 -0
  14. data/ext/wxruby3/swig/custom/swigrun.swg +363 -0
  15. data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +173 -0
  16. data/ext/wxruby3/swig/mark_free_impl.i +6 -4
  17. data/ext/wxruby3/swig/memory_management.i +5 -3
  18. data/ext/wxruby3/swig/typedefs.i +5 -3
  19. data/ext/wxruby3/swig/wx.i +55 -30
  20. data/ext/wxruby3/swig/wx.rc +4 -2
  21. data/lib/wx/accessors.rb +10 -2
  22. data/lib/wx/aui/auifloatframe.rb +20 -0
  23. data/lib/wx/aui/auimanager.rb +3 -0
  24. data/lib/wx/aui/auinotebook.rb +17 -0
  25. data/lib/wx/aui/require.rb +5 -1
  26. data/lib/wx/aui.rb +4 -1
  27. data/lib/wx/core/acceleratortable.rb +8 -0
  28. data/lib/wx/core/animation.rb +8 -0
  29. data/lib/wx/core/app.rb +8 -0
  30. data/lib/wx/core/array_ext.rb +7 -0
  31. data/lib/wx/core/art_locator.rb +7 -0
  32. data/lib/wx/core/artprovider.rb +9 -0
  33. data/lib/wx/core/bitmap.rb +16 -4
  34. data/lib/wx/core/bitmap_combobox.rb +7 -0
  35. data/lib/wx/core/brush.rb +7 -0
  36. data/lib/wx/core/busycursor.rb +9 -0
  37. data/lib/wx/core/choice.rb +7 -0
  38. data/lib/wx/core/choicedlg.rb +7 -0
  39. data/lib/wx/core/clientdc.rb +9 -0
  40. data/lib/wx/core/clipboard.rb +8 -0
  41. data/lib/wx/core/collapsible_pane.rb +8 -1
  42. data/lib/wx/core/colour.rb +8 -0
  43. data/lib/wx/core/combo_ctrl.rb +110 -0
  44. data/lib/wx/core/combobox.rb +7 -0
  45. data/lib/wx/core/config.rb +303 -0
  46. data/lib/wx/core/const.rb +83 -0
  47. data/lib/wx/core/controlwithitems.rb +12 -1
  48. data/lib/wx/core/cursor.rb +14 -4
  49. data/lib/wx/core/data_object.rb +7 -0
  50. data/lib/wx/core/dataformat.rb +9 -0
  51. data/lib/wx/core/datetime.rb +14 -0
  52. data/lib/wx/core/dc.rb +7 -0
  53. data/lib/wx/core/dialog.rb +18 -1
  54. data/lib/wx/core/enum.rb +7 -0
  55. data/lib/wx/core/event.rb +7 -0
  56. data/lib/wx/core/event_blocker.rb +7 -0
  57. data/lib/wx/core/event_loop.rb +7 -0
  58. data/lib/wx/core/evthandler.rb +8 -0
  59. data/lib/wx/core/ext.rb +7 -0
  60. data/lib/wx/core/file_dialog.rb +23 -0
  61. data/lib/wx/core/find_replace_dialog.rb +7 -0
  62. data/lib/wx/core/functions.rb +8 -0
  63. data/lib/wx/core/gauge.rb +10 -1
  64. data/lib/wx/core/genericdirctrl.rb +9 -0
  65. data/lib/wx/core/hboxsizer.rb +16 -0
  66. data/lib/wx/core/helpcontroller.rb +8 -0
  67. data/lib/wx/core/helpcontrollerhelpprovider.rb +9 -0
  68. data/lib/wx/core/helpprovider.rb +10 -1
  69. data/lib/wx/core/icon.rb +17 -6
  70. data/lib/wx/core/id_helper.rb +7 -0
  71. data/lib/wx/core/image.rb +16 -4
  72. data/lib/wx/core/imagelist.rb +8 -1
  73. data/lib/wx/core/listbox.rb +7 -0
  74. data/lib/wx/core/listctrl.rb +9 -0
  75. data/lib/wx/core/locale.rb +8 -0
  76. data/lib/wx/core/log.rb +24 -0
  77. data/lib/wx/core/menu.rb +9 -0
  78. data/lib/wx/core/menu_bar.rb +7 -0
  79. data/lib/wx/core/menuitem.rb +9 -0
  80. data/lib/wx/core/notebook.rb +9 -0
  81. data/lib/wx/core/object.rb +9 -0
  82. data/lib/wx/core/paintdc.rb +7 -0
  83. data/lib/wx/core/pen.rb +7 -0
  84. data/lib/wx/core/pen_info.rb +7 -0
  85. data/lib/wx/core/platform_info.rb +7 -0
  86. data/lib/wx/core/point.rb +8 -0
  87. data/lib/wx/core/real_point.rb +8 -0
  88. data/lib/wx/core/rect.rb +9 -0
  89. data/lib/wx/core/region_iterator.rb +7 -0
  90. data/lib/wx/core/simplehelpprovider.rb +9 -0
  91. data/lib/wx/core/size.rb +8 -0
  92. data/lib/wx/core/sizer.rb +9 -0
  93. data/lib/wx/core/splash_screen.rb +22 -2
  94. data/lib/wx/core/text_entry.rb +7 -0
  95. data/lib/wx/core/textctrl.rb +86 -5
  96. data/lib/wx/core/timer.rb +9 -0
  97. data/lib/wx/core/toolbar.rb +9 -0
  98. data/lib/wx/core/toolbartool.rb +8 -0
  99. data/lib/wx/core/treectrl.rb +9 -0
  100. data/lib/wx/core/v_list_box.rb +7 -0
  101. data/lib/wx/core/validator.rb +7 -0
  102. data/lib/wx/core/variant.rb +7 -0
  103. data/lib/wx/core/vboxsizer.rb +16 -0
  104. data/lib/wx/core/window.rb +8 -0
  105. data/lib/wx/core/window_update_locker.rb +9 -0
  106. data/lib/wx/core/xmlresource.rb +8 -0
  107. data/lib/wx/core.rb +4 -1
  108. data/lib/wx/doc/app.rb +7 -1
  109. data/lib/wx/doc/array_ext.rb +6 -0
  110. data/lib/wx/doc/art_locator.rb +7 -0
  111. data/lib/wx/doc/aui/auimanager.rb +6 -0
  112. data/lib/wx/doc/aui/auinotebook.rb +6 -0
  113. data/lib/wx/doc/bitmap.rb +12 -4
  114. data/lib/wx/doc/brush.rb +6 -0
  115. data/lib/wx/doc/busy_info.rb +6 -0
  116. data/lib/wx/doc/client_dc.rb +6 -0
  117. data/lib/wx/doc/clipboard.rb +6 -0
  118. data/lib/wx/doc/colour_dialog.rb +6 -0
  119. data/lib/wx/doc/config.rb +190 -0
  120. data/lib/wx/doc/const.rb +73 -66
  121. data/lib/wx/doc/controlwithitems.rb +6 -0
  122. data/lib/wx/doc/core.rb +6 -0
  123. data/lib/wx/doc/cursor.rb +13 -5
  124. data/lib/wx/doc/data_object.rb +6 -0
  125. data/lib/wx/doc/datetime.rb +16 -0
  126. data/lib/wx/doc/dc.rb +6 -0
  127. data/lib/wx/doc/enum.rb +8 -1
  128. data/lib/wx/doc/event.rb +6 -0
  129. data/lib/wx/doc/event_blocker.rb +6 -0
  130. data/lib/wx/doc/event_loop.rb +6 -0
  131. data/lib/wx/doc/events.rb +6 -0
  132. data/lib/wx/doc/evthandler.rb +8 -0
  133. data/lib/wx/doc/extra/01_packages.md +52 -51
  134. data/lib/wx/doc/extra/05_event-handling.md +37 -12
  135. data/lib/wx/doc/extra/06_geometry.md +5 -5
  136. data/lib/wx/doc/extra/07_colour_and_font.md +2 -2
  137. data/lib/wx/doc/extra/09_exceptions.md +1 -1
  138. data/lib/wx/doc/extra/10_art.md +18 -12
  139. data/lib/wx/doc/extra/11_drawing_and_dc.md +4 -4
  140. data/lib/wx/doc/font.rb +6 -0
  141. data/lib/wx/doc/font_data.rb +16 -0
  142. data/lib/wx/doc/functions.rb +18 -10
  143. data/lib/wx/doc/gc_dc.rb +6 -0
  144. data/lib/wx/doc/gdi_common.rb +8 -1
  145. data/lib/wx/doc/graphics_context.rb +59 -39
  146. data/lib/wx/doc/grid/grid.rb +16 -1
  147. data/lib/wx/doc/hboxsizer.rb +33 -0
  148. data/lib/wx/doc/help_controller.rb +6 -0
  149. data/lib/wx/doc/html/html_help_controller.rb +6 -0
  150. data/lib/wx/doc/icon.rb +13 -5
  151. data/lib/wx/doc/id_helper.rb +6 -0
  152. data/lib/wx/doc/image.rb +12 -4
  153. data/lib/wx/doc/list_ctrl.rb +6 -0
  154. data/lib/wx/doc/log.rb +17 -0
  155. data/lib/wx/doc/memory_dc.rb +6 -0
  156. data/lib/wx/doc/mirror_dc.rb +6 -0
  157. data/lib/wx/doc/pen.rb +6 -0
  158. data/lib/wx/doc/pg/events.rb +6 -0
  159. data/lib/wx/doc/pg/pg_property.rb +17 -0
  160. data/lib/wx/doc/pg/pgeditor.rb +6 -0
  161. data/lib/wx/doc/pg/property_grid.rb +6 -0
  162. data/lib/wx/doc/pg/property_grid_interface.rb +6 -0
  163. data/lib/wx/doc/progress_dialog.rb +6 -0
  164. data/lib/wx/doc/prt/page_setup_dialog.rb +6 -0
  165. data/lib/wx/doc/prt/print_data.rb +6 -0
  166. data/lib/wx/doc/prt/print_dialog.rb +6 -0
  167. data/lib/wx/doc/prt/printer.rb +6 -0
  168. data/lib/wx/doc/prt/printer_dc.rb +6 -0
  169. data/lib/wx/doc/radio_box.rb +6 -0
  170. data/lib/wx/doc/rbn/ribbon_bar.rb +6 -0
  171. data/lib/wx/doc/rbn/ribbon_button_bar.rb +6 -0
  172. data/lib/wx/doc/rbn/ribbon_gallery.rb +6 -0
  173. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +6 -0
  174. data/lib/wx/doc/region_iterator.rb +6 -0
  175. data/lib/wx/doc/rtc/richtext_buffer.rb +28 -0
  176. data/lib/wx/doc/rtc/richtext_formatting_dialog.rb +68 -0
  177. data/lib/wx/doc/rtc/richtext_printing.rb +6 -0
  178. data/lib/wx/doc/rtc/richtext_style_sheet.rb +20 -0
  179. data/lib/wx/doc/scaled_dc.rb +6 -0
  180. data/lib/wx/doc/screen_dc.rb +6 -0
  181. data/lib/wx/doc/stock_objects.rb +6 -0
  182. data/lib/wx/doc/stream.rb +6 -0
  183. data/lib/wx/doc/svg_file_dc.rb +6 -0
  184. data/lib/wx/doc/system_settings.rb +6 -0
  185. data/lib/wx/doc/text_validator.rb +6 -0
  186. data/lib/wx/doc/textctrl.rb +89 -0
  187. data/lib/wx/doc/tree_event.rb +20 -0
  188. data/lib/wx/doc/treebook.rb +6 -0
  189. data/lib/wx/doc/v_list_box.rb +6 -0
  190. data/lib/wx/doc/variant.rb +6 -0
  191. data/lib/wx/doc/vboxsizer.rb +33 -0
  192. data/lib/wx/doc/window.rb +11 -0
  193. data/lib/wx/doc/window_disabler.rb +6 -0
  194. data/lib/wx/doc/xml_resource.rb +8 -0
  195. data/lib/wx/global_const.rb +4 -1
  196. data/lib/wx/grid/grid.rb +23 -3
  197. data/lib/wx/grid/keyword_defs.rb +8 -1
  198. data/lib/wx/grid/require.rb +4 -1
  199. data/lib/wx/grid.rb +4 -1
  200. data/lib/wx/helpers.rb +8 -1
  201. data/lib/wx/html/htmlhelpcontroller.rb +29 -3
  202. data/lib/wx/html/htmlwindow.rb +23 -12
  203. data/lib/wx/html/keyword_defs.rb +8 -1
  204. data/lib/wx/html/require.rb +4 -1
  205. data/lib/wx/html/simple_html_listbox.rb +3 -0
  206. data/lib/wx/html.rb +4 -1
  207. data/lib/wx/keyword_ctors.rb +22 -3
  208. data/lib/wx/keyword_defs.rb +96 -7
  209. data/lib/wx/pg/events.rb +4 -1
  210. data/lib/wx/pg/keyword_defs.rb +8 -1
  211. data/lib/wx/pg/pg_editor.rb +3 -0
  212. data/lib/wx/pg/pg_properties.rb +4 -1
  213. data/lib/wx/pg/pg_property.rb +18 -5
  214. data/lib/wx/pg/property_grid.rb +4 -1
  215. data/lib/wx/pg/property_grid_interface.rb +3 -0
  216. data/lib/wx/pg/require.rb +4 -1
  217. data/lib/wx/pg.rb +4 -1
  218. data/lib/wx/prt/keyword_defs.rb +8 -1
  219. data/lib/wx/prt/page_setup_dialog.rb +3 -0
  220. data/lib/wx/prt/previewframe.rb +5 -0
  221. data/lib/wx/prt/require.rb +4 -1
  222. data/lib/wx/prt.rb +4 -1
  223. data/lib/wx/rbn/events.rb +4 -1
  224. data/lib/wx/rbn/keyword_defs.rb +8 -1
  225. data/lib/wx/rbn/require.rb +5 -1
  226. data/lib/wx/rbn/ribbon_art_provider.rb +3 -1
  227. data/lib/wx/rbn/ribbon_bar.rb +3 -0
  228. data/lib/wx/rbn/ribbon_button_bar.rb +3 -0
  229. data/lib/wx/rbn/ribbon_control.rb +3 -0
  230. data/lib/wx/rbn/ribbon_gallery.rb +10 -0
  231. data/lib/wx/rbn/ribbon_page.rb +3 -0
  232. data/lib/wx/rbn/ribbon_panel.rb +3 -0
  233. data/lib/wx/rbn/ribbon_tool_bar.rb +3 -0
  234. data/lib/wx/rbn.rb +4 -1
  235. data/lib/wx/rtc/ext.rb +4 -1
  236. data/lib/wx/rtc/keyword_defs.rb +18 -7
  237. data/lib/wx/rtc/require.rb +8 -1
  238. data/lib/wx/rtc/richtext_buffer.rb +36 -0
  239. data/lib/wx/rtc/richtext_formatting_dialog.rb +88 -0
  240. data/lib/wx/rtc/richtext_style_organiser_dialog.rb +46 -0
  241. data/lib/wx/rtc/symbol_picker_dialog.rb +47 -0
  242. data/lib/wx/rtc.rb +5 -1
  243. data/lib/wx/stc/keyword_defs.rb +8 -1
  244. data/lib/wx/stc/require.rb +4 -1
  245. data/lib/wx/stc.rb +4 -1
  246. data/lib/wx/version.rb +5 -1
  247. data/lib/wx/wxruby/base.rb +4 -1
  248. data/lib/wx/wxruby/cmd/sampler.rb +4 -1
  249. data/lib/wx/wxruby/cmd/test.rb +4 -1
  250. data/lib/wx.rb +4 -1
  251. data/rakelib/build.rake +4 -1
  252. data/rakelib/build.rb +4 -1
  253. data/rakelib/config.rake +4 -1
  254. data/rakelib/configure.rb +4 -1
  255. data/rakelib/doc.rake +4 -1
  256. data/rakelib/doc.rb +5 -1
  257. data/rakelib/install.rake +4 -1
  258. data/rakelib/install.rb +4 -1
  259. data/rakelib/lib/config/cygwin.rb +4 -1
  260. data/rakelib/lib/config/linux.rb +4 -1
  261. data/rakelib/lib/config/macosx.rb +6 -3
  262. data/rakelib/lib/config/mingw.rb +4 -1
  263. data/rakelib/lib/config/netbsd.rb +4 -1
  264. data/rakelib/lib/config/unixish.rb +10 -7
  265. data/rakelib/lib/config.rb +7 -2
  266. data/rakelib/lib/core/include/enum.inc +4 -1
  267. data/rakelib/lib/core/include/funcall.inc +22 -57
  268. data/rakelib/lib/core/include/init.inc +3 -0
  269. data/rakelib/lib/core/include/swigdirector.inc +384 -0
  270. data/rakelib/lib/core/include/swigrubyerrors.inc +161 -0
  271. data/{ext/wxruby3/swig/custom/swig4/rubyrun.swg → rakelib/lib/core/include/swigrubyrun.inc} +245 -120
  272. data/rakelib/lib/core/include/swigrun.inc +700 -0
  273. data/rakelib/lib/core/mapping.rb +26 -46
  274. data/rakelib/lib/core/package.rb +22 -5
  275. data/rakelib/lib/core/parameter.rb +7 -1
  276. data/rakelib/lib/core/spec.rb +14 -8
  277. data/rakelib/lib/core/spec_helper.rb +32 -9
  278. data/rakelib/lib/director/about_dialog_info.rb +4 -1
  279. data/rakelib/lib/director/accelerator.rb +8 -3
  280. data/rakelib/lib/director/animation.rb +5 -2
  281. data/rakelib/lib/director/animation_ctrl.rb +24 -1
  282. data/rakelib/lib/director/any_button.rb +5 -2
  283. data/rakelib/lib/director/app.rb +39 -7
  284. data/rakelib/lib/director/app_traits.rb +71 -0
  285. data/rakelib/lib/director/art_provider.rb +5 -2
  286. data/rakelib/lib/director/aui_dock_art.rb +4 -1
  287. data/rakelib/lib/director/aui_floating_frame.rb +4 -1
  288. data/rakelib/lib/director/aui_manager.rb +12 -5
  289. data/rakelib/lib/director/aui_manager_event.rb +4 -1
  290. data/rakelib/lib/director/aui_mdi_child_frame.rb +25 -1
  291. data/rakelib/lib/director/aui_mdi_client_window.rb +4 -1
  292. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -1
  293. data/rakelib/lib/director/aui_notebook.rb +12 -1
  294. data/rakelib/lib/director/aui_notebook_event.rb +4 -1
  295. data/rakelib/lib/director/aui_pane_info.rb +4 -1
  296. data/rakelib/lib/director/aui_tab_art.rb +52 -1
  297. data/rakelib/lib/director/aui_tab_ctrl.rb +14 -1
  298. data/rakelib/lib/director/aui_toolbar.rb +6 -3
  299. data/rakelib/lib/director/aui_toolbar_art.rb +52 -1
  300. data/rakelib/lib/director/aui_toolbar_event.rb +4 -1
  301. data/rakelib/lib/director/aui_toolbar_item.rb +4 -1
  302. data/rakelib/lib/director/banner_window.rb +26 -0
  303. data/rakelib/lib/director/bitmap.rb +11 -2
  304. data/rakelib/lib/director/bitmap_combobox.rb +5 -1
  305. data/rakelib/lib/director/book_ctrls.rb +13 -3
  306. data/rakelib/lib/director/brush.rb +4 -1
  307. data/rakelib/lib/director/busy_info.rb +4 -1
  308. data/rakelib/lib/director/button.rb +4 -1
  309. data/rakelib/lib/director/calendar_ctrl.rb +4 -1
  310. data/rakelib/lib/director/calendar_date_attr.rb +4 -1
  311. data/rakelib/lib/director/caret.rb +4 -1
  312. data/rakelib/lib/director/check_listbox.rb +4 -1
  313. data/rakelib/lib/director/choice.rb +4 -1
  314. data/rakelib/lib/director/clipboard.rb +4 -1
  315. data/rakelib/lib/director/collapsible_pane.rb +4 -1
  316. data/rakelib/lib/director/collapsible_pane_event.rb +4 -1
  317. data/rakelib/lib/director/colour.rb +9 -1
  318. data/rakelib/lib/director/colour_picker_ctrl.rb +4 -1
  319. data/rakelib/lib/director/combobox.rb +4 -1
  320. data/rakelib/lib/director/comboctrl.rb +94 -0
  321. data/rakelib/lib/director/config_base.rb +135 -0
  322. data/rakelib/lib/director/context_help_button.rb +4 -1
  323. data/rakelib/lib/director/control.rb +4 -1
  324. data/rakelib/lib/director/ctrl_with_items.rb +5 -1
  325. data/rakelib/lib/director/cursor.rb +6 -2
  326. data/rakelib/lib/director/data_format.rb +4 -1
  327. data/rakelib/lib/director/data_object.rb +4 -1
  328. data/rakelib/lib/director/data_object_simple_base.rb +5 -3
  329. data/rakelib/lib/director/date_event.rb +9 -2
  330. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  331. data/rakelib/lib/director/dc.rb +19 -1
  332. data/rakelib/lib/director/defs.rb +4 -1
  333. data/rakelib/lib/director/derived_dc.rb +27 -20
  334. data/rakelib/lib/director/dialog.rb +29 -3
  335. data/rakelib/lib/director/dialup_event.rb +44 -0
  336. data/rakelib/lib/director/dialup_manager.rb +45 -0
  337. data/rakelib/lib/director/dir_filterlist_ctrl.rb +4 -1
  338. data/rakelib/lib/director/dir_picker_ctrl.rb +4 -1
  339. data/rakelib/lib/director/drag_image.rb +9 -2
  340. data/rakelib/lib/director/dragdrop.rb +4 -1
  341. data/rakelib/lib/director/editable_listbox.rb +4 -1
  342. data/rakelib/lib/director/event.rb +29 -3
  343. data/rakelib/lib/director/event_blocker.rb +4 -1
  344. data/rakelib/lib/director/event_filter.rb +4 -1
  345. data/rakelib/lib/director/event_handler.rb +28 -11
  346. data/rakelib/lib/director/event_loop.rb +4 -1
  347. data/rakelib/lib/director/events.rb +5 -2
  348. data/rakelib/lib/director/file_ctrl.rb +35 -0
  349. data/rakelib/lib/director/file_ctrl_event.rb +26 -0
  350. data/rakelib/lib/director/file_dialog_custom_control.rb +28 -0
  351. data/rakelib/lib/director/file_dialog_customize_hook.rb +28 -0
  352. data/rakelib/lib/director/file_picker_ctrl.rb +4 -1
  353. data/rakelib/lib/director/file_system.rb +45 -0
  354. data/rakelib/lib/director/find_dialog_event.rb +4 -1
  355. data/rakelib/lib/director/find_replace_data.rb +4 -1
  356. data/rakelib/lib/director/font.rb +7 -3
  357. data/rakelib/lib/director/font_data.rb +9 -1
  358. data/rakelib/lib/director/font_picker_ctrl.rb +4 -1
  359. data/rakelib/lib/director/frame.rb +45 -33
  360. data/rakelib/lib/director/fs_file.rb +52 -1
  361. data/rakelib/lib/director/functions.rb +11 -5
  362. data/rakelib/lib/director/gdi_object.rb +4 -1
  363. data/rakelib/lib/director/gdicommon.rb +33 -10
  364. data/rakelib/lib/director/generic_dirctrl.rb +4 -1
  365. data/rakelib/lib/director/graphics_context.rb +113 -18
  366. data/rakelib/lib/director/graphics_object.rb +13 -2
  367. data/rakelib/lib/director/grid_cell_attr.rb +28 -4
  368. data/rakelib/lib/director/grid_cell_editor.rb +28 -11
  369. data/rakelib/lib/director/grid_cell_renderer.rb +16 -3
  370. data/rakelib/lib/director/grid_ctrl.rb +146 -5
  371. data/rakelib/lib/director/grid_range_select_event.rb +4 -1
  372. data/rakelib/lib/director/grid_table_base.rb +6 -1
  373. data/rakelib/lib/director/grid_table_message.rb +4 -1
  374. data/rakelib/lib/director/header_ctrl.rb +37 -0
  375. data/rakelib/lib/director/help_controller.rb +14 -7
  376. data/rakelib/lib/director/help_provider.rb +4 -1
  377. data/rakelib/lib/director/html_cell.rb +10 -3
  378. data/rakelib/lib/director/html_data_object.rb +4 -1
  379. data/rakelib/lib/director/html_easy_printing.rb +4 -1
  380. data/rakelib/lib/director/html_event.rb +4 -1
  381. data/rakelib/lib/director/html_help_data.rb +4 -1
  382. data/rakelib/lib/director/html_help_window.rb +30 -0
  383. data/rakelib/lib/director/html_listbox.rb +4 -1
  384. data/rakelib/lib/director/html_printout.rb +6 -1
  385. data/rakelib/lib/director/html_window.rb +10 -8
  386. data/rakelib/lib/director/hyperlink_ctrl.rb +32 -0
  387. data/rakelib/lib/director/hyperlink_event.rb +4 -1
  388. data/rakelib/lib/director/icon.rb +4 -1
  389. data/rakelib/lib/director/image.rb +26 -3
  390. data/rakelib/lib/director/image_list.rb +5 -1
  391. data/rakelib/lib/director/info_bar.rb +26 -0
  392. data/rakelib/lib/director/list_ctrl.rb +39 -7
  393. data/rakelib/lib/director/listbox.rb +4 -1
  394. data/rakelib/lib/director/locale.rb +7 -4
  395. data/rakelib/lib/director/log.rb +51 -6
  396. data/rakelib/lib/director/mdi_frame.rb +4 -1
  397. data/rakelib/lib/director/media_ctrl.rb +4 -1
  398. data/rakelib/lib/director/menu.rb +16 -3
  399. data/rakelib/lib/director/menu_bar.rb +13 -2
  400. data/rakelib/lib/director/menu_item.rb +6 -6
  401. data/rakelib/lib/director/mouse_state.rb +5 -2
  402. data/rakelib/lib/director/numeric_property_validator.rb +4 -1
  403. data/rakelib/lib/director/object.rb +5 -2
  404. data/rakelib/lib/director/page_setup_dialog.rb +4 -1
  405. data/rakelib/lib/director/palette.rb +54 -2
  406. data/rakelib/lib/director/panel.rb +4 -1
  407. data/rakelib/lib/director/pen.rb +5 -2
  408. data/rakelib/lib/director/pgarray_editor_dialog.rb +4 -7
  409. data/rakelib/lib/director/pgcell.rb +4 -1
  410. data/rakelib/lib/director/pgeditor.rb +6 -3
  411. data/rakelib/lib/director/pgmulti_button.rb +4 -1
  412. data/rakelib/lib/director/pgproperties.rb +6 -3
  413. data/rakelib/lib/director/pgproperty.rb +42 -3
  414. data/rakelib/lib/director/pgvalidation_info.rb +9 -1
  415. data/rakelib/lib/director/pickerbase.rb +4 -1
  416. data/rakelib/lib/director/platform_info.rb +9 -1
  417. data/rakelib/lib/director/popup_window.rb +14 -1
  418. data/rakelib/lib/director/preview_frame.rb +5 -2
  419. data/rakelib/lib/director/print_data.rb +4 -1
  420. data/rakelib/lib/director/print_dialog.rb +4 -1
  421. data/rakelib/lib/director/printer.rb +14 -6
  422. data/rakelib/lib/director/property_grid.rb +30 -1
  423. data/rakelib/lib/director/property_grid_event.rb +11 -1
  424. data/rakelib/lib/director/property_grid_interface.rb +20 -6
  425. data/rakelib/lib/director/property_grid_manager.rb +4 -1
  426. data/rakelib/lib/director/property_grid_page.rb +4 -1
  427. data/rakelib/lib/director/property_grid_page_state.rb +4 -1
  428. data/rakelib/lib/director/radio_box.rb +4 -1
  429. data/rakelib/lib/director/rearrange_list.rb +36 -0
  430. data/rakelib/lib/director/region.rb +5 -1
  431. data/rakelib/lib/director/region_iterator.rb +4 -1
  432. data/rakelib/lib/director/ribbon_art_provider.rb +9 -1
  433. data/rakelib/lib/director/ribbon_bar.rb +4 -1
  434. data/rakelib/lib/director/ribbon_bar_event.rb +4 -1
  435. data/rakelib/lib/director/ribbon_button_bar.rb +4 -1
  436. data/rakelib/lib/director/ribbon_button_bar_event.rb +4 -1
  437. data/rakelib/lib/director/ribbon_ctrl.rb +4 -1
  438. data/rakelib/lib/director/ribbon_gallery.rb +8 -3
  439. data/rakelib/lib/director/ribbon_gallery_event.rb +4 -1
  440. data/rakelib/lib/director/ribbon_page.rb +4 -1
  441. data/rakelib/lib/director/ribbon_panel.rb +4 -1
  442. data/rakelib/lib/director/ribbon_panel_event.rb +4 -1
  443. data/rakelib/lib/director/ribbon_tool_bar.rb +4 -1
  444. data/rakelib/lib/director/ribbon_tool_bar_event.rb +4 -1
  445. data/rakelib/lib/director/richtext_box.rb +61 -0
  446. data/rakelib/lib/director/richtext_buffer.rb +219 -22
  447. data/rakelib/lib/director/richtext_buffer_data_object.rb +4 -1
  448. data/rakelib/lib/director/richtext_composite_object.rb +174 -0
  449. data/rakelib/lib/director/richtext_ctrl.rb +157 -4
  450. data/rakelib/lib/director/richtext_event.rb +4 -1
  451. data/rakelib/lib/director/richtext_file_handler.rb +13 -1
  452. data/rakelib/lib/director/richtext_formatting_dialog.rb +44 -0
  453. data/rakelib/lib/director/richtext_header_footer_data.rb +4 -1
  454. data/rakelib/lib/director/richtext_image.rb +56 -0
  455. data/rakelib/lib/director/richtext_object.rb +272 -0
  456. data/rakelib/lib/director/richtext_paragraph_layout_box.rb +178 -0
  457. data/rakelib/lib/director/richtext_printing.rb +4 -1
  458. data/rakelib/lib/director/richtext_style_listbox.rb +37 -0
  459. data/rakelib/lib/director/richtext_style_organiser_dialog.rb +28 -0
  460. data/rakelib/lib/director/sash_event.rb +42 -0
  461. data/rakelib/lib/director/sash_layout_event.rb +4 -1
  462. data/rakelib/lib/director/sash_layout_window.rb +4 -1
  463. data/rakelib/lib/director/sash_window.rb +4 -1
  464. data/rakelib/lib/director/scroll_bar.rb +4 -1
  465. data/rakelib/lib/director/scrolled_t.rb +7 -4
  466. data/rakelib/lib/director/searchctrl.rb +4 -1
  467. data/rakelib/lib/director/sizer.rb +68 -2
  468. data/rakelib/lib/director/sizer_item.rb +31 -3
  469. data/rakelib/lib/director/slider.rb +4 -1
  470. data/rakelib/lib/director/splash_screen.rb +4 -1
  471. data/rakelib/lib/director/splitter_event.rb +4 -1
  472. data/rakelib/lib/director/splitter_window.rb +4 -1
  473. data/rakelib/lib/director/static_bitmap.rb +4 -1
  474. data/rakelib/lib/director/static_box.rb +5 -2
  475. data/rakelib/lib/director/status_bar.rb +5 -1
  476. data/rakelib/lib/director/styled_text_ctrl.rb +14 -2
  477. data/rakelib/lib/director/styled_text_event.rb +4 -1
  478. data/rakelib/lib/director/system_options.rb +4 -1
  479. data/rakelib/lib/director/system_settings.rb +4 -1
  480. data/rakelib/lib/director/task_bar_icon.rb +5 -2
  481. data/rakelib/lib/director/text_attr.rb +5 -2
  482. data/rakelib/lib/director/text_entry.rb +4 -1
  483. data/rakelib/lib/director/text_validator.rb +6 -1
  484. data/rakelib/lib/director/textctrl.rb +32 -3
  485. data/rakelib/lib/director/time_picker_ctrl.rb +4 -1
  486. data/rakelib/lib/director/timer.rb +4 -1
  487. data/rakelib/lib/director/tip_provider.rb +4 -1
  488. data/rakelib/lib/director/toggle_button.rb +4 -1
  489. data/rakelib/lib/director/tool_bar.rb +20 -1
  490. data/rakelib/lib/director/tool_tip.rb +5 -2
  491. data/rakelib/lib/director/top_level_window.rb +58 -51
  492. data/rakelib/lib/director/tree_ctrl.rb +24 -46
  493. data/rakelib/lib/director/tree_event.rb +28 -10
  494. data/rakelib/lib/director/uiaction_simulator.rb +4 -1
  495. data/rakelib/lib/director/utils.rb +9 -1
  496. data/rakelib/lib/director/validator.rb +4 -1
  497. data/rakelib/lib/director/variant.rb +5 -2
  498. data/rakelib/lib/director/vlistbox.rb +4 -1
  499. data/rakelib/lib/director/vscrolled_window.rb +4 -1
  500. data/rakelib/lib/director/window.rb +81 -82
  501. data/rakelib/lib/director/window_disabler.rb +4 -1
  502. data/rakelib/lib/director/with_images.rb +5 -2
  503. data/rakelib/lib/director/wizard_page.rb +4 -1
  504. data/rakelib/lib/director/xml_node.rb +4 -1
  505. data/rakelib/lib/director/xml_resource.rb +4 -1
  506. data/rakelib/lib/director.rb +27 -28
  507. data/rakelib/lib/ext/enum_chain.rb +4 -1
  508. data/rakelib/lib/extractor/class.rb +8 -6
  509. data/rakelib/lib/extractor/enum.rb +15 -2
  510. data/rakelib/lib/extractor/function.rb +12 -4
  511. data/rakelib/lib/extractor/module.rb +4 -1
  512. data/rakelib/lib/extractor/variable.rb +4 -1
  513. data/rakelib/lib/extractor.rb +7 -2
  514. data/rakelib/lib/generate/analyzer.rb +31 -21
  515. data/rakelib/lib/generate/base.rb +4 -1
  516. data/rakelib/lib/generate/doc/animation_ctrl.yaml +15 -0
  517. data/rakelib/lib/generate/doc/events.yaml +10 -4
  518. data/rakelib/lib/generate/doc/grid_cell_attr.yaml +21 -0
  519. data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
  520. data/rakelib/lib/generate/doc/html_cell.yaml +11 -0
  521. data/rakelib/lib/generate/doc/html_help_controller.yaml +23 -0
  522. data/rakelib/lib/generate/doc/html_help_window.yaml +21 -0
  523. data/rakelib/lib/generate/doc/html_window.yaml +47 -0
  524. data/rakelib/lib/generate/doc/pg_editor.yaml +11 -0
  525. data/rakelib/lib/generate/doc/pg_multi_button.yaml +78 -0
  526. data/rakelib/lib/generate/doc/pg_properties.yaml +244 -0
  527. data/rakelib/lib/generate/doc/pg_property.yaml +188 -0
  528. data/rakelib/lib/generate/doc/property_grid.yaml +23 -0
  529. data/rakelib/lib/generate/doc/property_grid_interface.yaml +30 -0
  530. data/rakelib/lib/generate/doc/property_grid_manager.yaml +40 -0
  531. data/rakelib/lib/generate/doc/rich_text_html_handler.yaml +11 -0
  532. data/rakelib/lib/generate/doc/static_box.yaml +8 -0
  533. data/rakelib/lib/generate/doc/styled_text_ctrl.yaml +18 -0
  534. data/rakelib/lib/generate/doc/symbol_picker_dialog.yaml +40 -0
  535. data/rakelib/lib/generate/doc/xml_resource.yaml +3 -0
  536. data/rakelib/lib/generate/doc.rb +33 -6
  537. data/rakelib/lib/generate/interface.rb +80 -110
  538. data/rakelib/lib/generate/rakedep.rb +4 -1
  539. data/rakelib/lib/specs/interfaces.rb +50 -21
  540. data/rakelib/lib/streams.rb +5 -1
  541. data/rakelib/lib/swig_runner.rb +38 -72
  542. data/rakelib/lib/typemap/array_int_selections.rb +4 -1
  543. data/rakelib/lib/typemap/common.rb +81 -11
  544. data/rakelib/lib/typemap/config.rb +55 -0
  545. data/rakelib/lib/typemap/data_format.rb +5 -2
  546. data/rakelib/lib/typemap/data_object_data.rb +6 -3
  547. data/rakelib/lib/typemap/datetime.rb +8 -1
  548. data/rakelib/lib/typemap/grid_client_data.rb +4 -1
  549. data/rakelib/lib/typemap/grid_coords.rb +37 -7
  550. data/rakelib/lib/typemap/html_cell.rb +4 -1
  551. data/rakelib/lib/typemap/io_streams.rb +4 -1
  552. data/rakelib/lib/typemap/pgcell.rb +4 -1
  553. data/rakelib/lib/typemap/pgeditor.rb +4 -1
  554. data/rakelib/lib/typemap/pgprop_arg.rb +11 -3
  555. data/rakelib/lib/typemap/pgproperty.rb +4 -1
  556. data/rakelib/lib/typemap/points_list.rb +9 -8
  557. data/rakelib/lib/typemap/richtext.rb +185 -11
  558. data/rakelib/lib/typemap/tree_itemid.rb +26 -1
  559. data/rakelib/lib/util/string.rb +14 -9
  560. data/rakelib/prepost.rake +4 -1
  561. data/rakelib/prepost.rb +4 -1
  562. data/rakelib/run.rake +4 -1
  563. data/samples/aui/aui.rb +8 -3
  564. data/samples/bigdemo/bigdemo.rb +9 -2
  565. data/samples/bigdemo/run.rb +9 -2
  566. data/samples/bigdemo/utils.rb +9 -1
  567. data/samples/calendar/calendar.rb +9 -4
  568. data/samples/caret/caret.rb +8 -3
  569. data/samples/controls/books.rb +8 -2
  570. data/samples/controls/controls.rb +33 -77
  571. data/samples/controls/get_item_sample.rb +8 -2
  572. data/samples/controls/htlbox.rb +10 -3
  573. data/samples/dialogs/dialogs.rb +9 -4
  574. data/samples/dialogs/wizard.rb +8 -3
  575. data/samples/dragdrop/dragdrop.rb +8 -3
  576. data/samples/drawing/bitmap.rb +8 -3
  577. data/samples/drawing/bitmap_image.rb +8 -3
  578. data/samples/drawing/graphics_drawing.rb +44 -33
  579. data/samples/drawing/image_prt.rb +8 -2
  580. data/samples/drawing/maths_images.rb +8 -3
  581. data/samples/drawing/rmagic_bitmap_image.rb +8 -3
  582. data/samples/etc/choice.rb +8 -3
  583. data/samples/etc/miniframe.rb +8 -3
  584. data/samples/etc/sash.rb +8 -3
  585. data/samples/etc/scrollwin.rb +8 -3
  586. data/samples/etc/system_settings.rb +8 -3
  587. data/samples/event/activation.rb +8 -3
  588. data/samples/event/event.rb +8 -3
  589. data/samples/event/threaded.rb +8 -3
  590. data/samples/event/update_ui_event.rb +8 -3
  591. data/samples/grid/grid.rb +9 -3
  592. data/samples/grid/gridtablebase.rb +8 -3
  593. data/samples/html/html.rb +8 -3
  594. data/samples/mdi/mdi.rb +8 -3
  595. data/samples/minimal/minimal.rb +8 -3
  596. data/samples/minimal/nothing.rb +8 -3
  597. data/samples/printing/printing.rb +8 -3
  598. data/samples/printing/printing2.rb +8 -2
  599. data/samples/propgrid/propgrid.rb +4 -1
  600. data/samples/propgrid/propgrid_minimal.rb +4 -2
  601. data/samples/propgrid/sample_props.rb +4 -1
  602. data/samples/ribbon/ribbon.rb +4 -1
  603. data/samples/sampler/editor.rb +4 -1
  604. data/samples/sampler/ext.rb +4 -1
  605. data/samples/sampler/sample.rb +13 -4
  606. data/samples/sampler/stc_editor.rb +4 -1
  607. data/samples/sampler/txt_editor.rb +4 -1
  608. data/samples/sampler.rb +11 -3
  609. data/samples/splash/splash.rb +4 -2
  610. data/samples/text/art/richtext/alignleft.xpm +24 -0
  611. data/samples/text/art/richtext/alignright.xpm +24 -0
  612. data/samples/text/art/richtext/bold.xpm +24 -0
  613. data/samples/text/art/richtext/centre.xpm +24 -0
  614. data/samples/text/art/richtext/copy.xpm +45 -0
  615. data/samples/text/art/richtext/cut.xpm +47 -0
  616. data/samples/text/art/richtext/font.xpm +25 -0
  617. data/samples/text/art/richtext/idea.xpm +47 -0
  618. data/samples/text/art/richtext/indentless.xpm +25 -0
  619. data/samples/text/art/richtext/indentmore.xpm +25 -0
  620. data/samples/text/art/richtext/italic.xpm +25 -0
  621. data/samples/text/art/richtext/open.xpm +58 -0
  622. data/samples/text/art/richtext/paste.xpm +47 -0
  623. data/samples/text/art/richtext/redo.xpm +59 -0
  624. data/samples/text/art/richtext/save.xpm +43 -0
  625. data/samples/text/art/richtext/smiley.xpm +42 -0
  626. data/samples/text/art/richtext/underline.xpm +25 -0
  627. data/samples/text/art/richtext/undo.xpm +59 -0
  628. data/samples/text/art/richtext/zebra.xpm +409 -0
  629. data/samples/text/rich_textctrl.rb +8 -3
  630. data/samples/text/richtext.rb +1794 -0
  631. data/samples/text/scintilla.rb +8 -3
  632. data/samples/text/textctrl.rb +21 -4
  633. data/samples/text/tn_richtext.png +0 -0
  634. data/samples/text/unicode.rb +9 -4
  635. data/samples/treectrl/treectrl.rb +10 -5
  636. data/samples/xrc/custom_xrc_sample.rb +8 -3
  637. data/samples/xrc/xrc_sample.rb +8 -3
  638. data/tests/art/test_art/bitmap/wxruby-128x128.png +0 -0
  639. data/tests/art/test_art/bitmap/wxruby-256x256.png +0 -0
  640. data/tests/art/test_art/bitmap/wxruby-64x64.png +0 -0
  641. data/tests/lib/item_container_tests.rb +3 -0
  642. data/tests/lib/text_entry_tests.rb +3 -0
  643. data/tests/lib/wxapp_runner.rb +3 -0
  644. data/tests/lib/wxframe_runner.rb +81 -3
  645. data/tests/test_app_event_filter.rb +3 -0
  646. data/tests/test_app_exit_exception.rb +36 -0
  647. data/tests/test_app_init_exception.rb +20 -0
  648. data/tests/test_app_traits.rb +33 -0
  649. data/tests/test_art.rb +22 -0
  650. data/tests/test_art_provider.rb +3 -0
  651. data/tests/test_aui.rb +65 -0
  652. data/tests/test_basic.rb +5 -1
  653. data/tests/test_book_controls.rb +29 -0
  654. data/tests/test_box_sizer.rb +5 -2
  655. data/tests/test_clipboard.rb +3 -0
  656. data/tests/test_config.rb +150 -0
  657. data/tests/test_dc.rb +3 -0
  658. data/tests/test_dialog.rb +3 -0
  659. data/tests/test_event_handling.rb +3 -0
  660. data/tests/test_events.rb +3 -0
  661. data/tests/test_exceptions.rb +41 -0
  662. data/tests/test_ext_controls.rb +286 -3
  663. data/tests/test_file_dialog.rb +55 -0
  664. data/tests/test_font.rb +8 -5
  665. data/tests/test_gdi_object.rb +3 -0
  666. data/tests/test_geometry.rb +4 -0
  667. data/tests/test_grid_sizer.rb +7 -4
  668. data/tests/test_intl.rb +3 -0
  669. data/tests/test_item_data.rb +3 -0
  670. data/tests/test_list_ctrl.rb +4 -1
  671. data/tests/test_log.rb +63 -0
  672. data/tests/test_proof_check.rb +52 -0
  673. data/tests/test_richtext.rb +204 -0
  674. data/tests/test_sizer.rb +43 -0
  675. data/tests/test_std_controls.rb +81 -35
  676. data/tests/test_timer.rb +3 -0
  677. data/tests/test_variant.rb +3 -0
  678. data/tests/test_window.rb +10 -8
  679. data/tests/testapp.rb +4 -0
  680. data/tests/testapp_noframe.rb +4 -0
  681. metadata +112 -5
  682. data/ext/wxruby3/swig/custom/swig3/rubyrun.swg +0 -456
  683. data/rakelib/lib/director/html_help_frame.rb +0 -25
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -13,7 +16,10 @@ module WXRuby3
13
16
 
14
17
  def setup
15
18
  super
16
- spec.gc_as_untracked_refcounted
19
+ spec.gc_as_untracked
20
+ # use custom free func to be able to account for more complex inheritance
21
+ spec.add_header_code 'extern void GC_free_GridCellEditor(void *ptr);'
22
+ spec.add_swig_code '%feature("freefunc") wxGridCellEditor "GC_free_GridCellEditor";'
17
23
  if spec.module_name == 'wxGridCellEditor'
18
24
  spec.post_processors << :fix_gridcelleditor
19
25
  # exposing the mixin wxClientDataContainer/wxSharedClientDataContainer has no real upside
@@ -101,7 +107,14 @@ module WXRuby3
101
107
  wxRuby_RegisterGridCellEditor(const_cast<wxGridCellEditor*> (wx_gce), rb_gce);
102
108
  return rb_gce;
103
109
  }
104
- __CODE
110
+
111
+ extern void GC_free_GridCellEditor(void *ptr)
112
+ {
113
+ wxGridCellEditor* gc_edt = (wxGridCellEditor*)ptr;
114
+ if (ptr)
115
+ gc_edt->DecRef();
116
+ }
117
+ __CODE
105
118
  elsif spec.module_name == 'wxGridCellActivatableEditor'
106
119
  spec.post_processors << :fix_gridcelleditor
107
120
  spec.override_inheritance_chain('wxGridCellActivatableEditor', %w[wxGridCellEditor])
@@ -126,6 +139,10 @@ module WXRuby3
126
139
  case spec.module_name
127
140
  when 'wxGridCellEnumEditor'
128
141
  spec.override_inheritance_chain(spec.module_name, %w[wxGridCellChoiceEditor wxGridCellEditor])
142
+ when 'wxGridCellChoiceEditor'
143
+ # unnecessary overload
144
+ spec.ignore 'wxGridCellChoiceEditor::wxGridCellChoiceEditor(size_t, const wxString [], bool)'
145
+ spec.override_inheritance_chain(spec.module_name, %w[wxGridCellEditor])
129
146
  when 'wxGridCellAutoWrapStringEditor', 'wxGridCellFloatEditor', 'wxGridCellNumberEditor'
130
147
  spec.override_inheritance_chain(spec.module_name, %w[wxGridCellTextEditor wxGridCellEditor])
131
148
  else
@@ -165,12 +182,12 @@ module WXRuby3
165
182
  static WxRuby_ID ga_mouse_id("mouse");
166
183
 
167
184
  inline wxGridActivationResult
168
- array_to_wxGridActivationResult(VALUE rbarr)
185
+ array_to_wxGridActivationResult(VALUE self, const char* method, VALUE rbarr)
169
186
  {
170
187
  if (rbarr == Qnil ||
171
188
  !(TYPE(rbarr) == T_ARRAY || TYPE(rbarr) == T_SYMBOL))
172
189
  {
173
- Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
190
+ Swig::DirectorTypeMismatchException::raise(self, method, SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
174
191
  "in output value of type 'wxGridActivationResult'");
175
192
  }
176
193
  if (TYPE(rbarr) == T_SYMBOL)
@@ -180,7 +197,7 @@ module WXRuby3
180
197
  else if (SYM2ID(rbarr) == ga_show_editor_id())
181
198
  return wxGridActivationResult::DoEdit();
182
199
  else
183
- Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
200
+ Swig::DirectorTypeMismatchException::raise(self, method, SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
184
201
  "in output value of type 'wxGridActivationResult'");
185
202
  }
186
203
  else
@@ -189,7 +206,7 @@ module WXRuby3
189
206
  VALUE rbStr = rb_ary_shift(rbarr); // could be nil
190
207
  if (rbAction == Qnil || TYPE(rbAction) != T_SYMBOL)
191
208
  {
192
- Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
209
+ Swig::DirectorTypeMismatchException::raise(self, method, SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
193
210
  "in output value of type 'wxGridActivationResult'");
194
211
  }
195
212
  else if (SYM2ID(rbAction) == ga_change_id() && rbStr != Qnil)
@@ -203,7 +220,7 @@ module WXRuby3
203
220
  else if (SYM2ID(rbAction) == ga_show_editor_id())
204
221
  return wxGridActivationResult::DoEdit();
205
222
  else
206
- Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
223
+ Swig::DirectorTypeMismatchException::raise(self, method, SWIG_ErrorType(SWIG_ArgError(SWIG_ERROR)),
207
224
  "in output value of type 'wxGridActivationResult'");
208
225
  }
209
226
  }
@@ -335,7 +352,7 @@ module WXRuby3
335
352
  elsif line["wxGridActivationResult SwigDirector_#{module_name}::TryActivate("]
336
353
  skip_lines = true
337
354
  # append new method implementation
338
- line << <<~__METHOD__
355
+ line << "\n" << <<~__METHOD__
339
356
  static WxRuby_ID try_activate_id("try_activate");
340
357
 
341
358
  VALUE obj0 = Qnil ;
@@ -349,7 +366,7 @@ module WXRuby3
349
366
  obj2 = SWIG_NewPointerObj(SWIG_as_voidptr(grid), SWIGTYPE_p_wxGrid, 0 );
350
367
  obj3 = wxGridActivationSource_to_array(actSource);
351
368
  result = rb_funcall(swig_get_self(), try_activate_id(), 4,obj0,obj1,obj2,obj3);
352
- return array_to_wxGridActivationResult(result);
369
+ return array_to_wxGridActivationResult(swig_get_self(), "try_activate", result);
353
370
  __METHOD__
354
371
  elsif !helpers_added && line["SwigDirector_#{module_name}::SwigDirector_#{module_name}(VALUE self"]
355
372
  # insert helper methods
@@ -358,7 +375,7 @@ module WXRuby3
358
375
  elsif line["_wrap_#{module_name}_TryActivate(int argc, VALUE *argv, VALUE self) {"]
359
376
  skip_lines = true
360
377
  # append new method implementation
361
- line << <<~__METHOD__
378
+ line << "\n" << <<~__METHOD__
362
379
  #{module_name} *arg1 = (#{module_name} *) 0 ;
363
380
  int arg2 ;
364
381
  int arg3 ;
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -13,7 +16,10 @@ module WXRuby3
13
16
 
14
17
  def setup
15
18
  super
16
- spec.gc_as_untracked_refcounted
19
+ spec.gc_as_untracked
20
+ # use custom free func to be able to account for more complex inheritance
21
+ spec.add_header_code 'extern void GC_free_GridCellRenderer(void *ptr);'
22
+ spec.add_swig_code '%feature("freefunc") wxGridCellRenderer "GC_free_GridCellRenderer";'
17
23
  if spec.module_name == 'wxGridCellRenderer'
18
24
  # exposing the mixin wxClientDataContainer/wxSharedClientDataContainer has no real upside
19
25
  # for wxRuby; far easier to just use member variables in derived classes
@@ -97,7 +103,14 @@ module WXRuby3
97
103
  wxRuby_RegisterGridCellRenderer(const_cast<wxGridCellRenderer*> (wx_gcr), rb_gcr);
98
104
  return rb_gcr;
99
105
  }
100
- __CODE
106
+
107
+ extern void GC_free_GridCellRenderer(void *ptr)
108
+ {
109
+ wxGridCellRenderer* gc_rdr = (wxGridCellRenderer*)ptr;
110
+ if (ptr)
111
+ gc_rdr->DecRef();
112
+ }
113
+ __CODE
101
114
  else
102
115
  case spec.module_name
103
116
  when 'wxGridCellStringRenderer'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './window'
@@ -15,9 +18,10 @@ module WXRuby3
15
18
 
16
19
  def setup
17
20
  # replace before calling super
18
- spec.items.replace %w[wxGrid]
21
+ spec.items.replace %w[wxGrid wxGridBlockCoords wxGridBlockDiffResult wxGridSizesInfo wxGridFitMode]
19
22
  super
20
- spec.gc_as_window
23
+ spec.gc_as_untracked %w[wxGridBlockCoords wxGridBlockDiffResult wxGridSizesInfo wxGridFitMode]
24
+ spec.gc_as_window 'wxGrid'
21
25
  spec.override_inheritance_chain('wxGrid', %w[wxScrolledCanvas wxWindow wxEvtHandler wxObject])
22
26
  spec.no_proxy 'wxGrid::SendAutoScrollEvents'
23
27
  # All of the methods have alternate versions that accept row, col pair
@@ -40,13 +44,85 @@ module WXRuby3
40
44
  spec.ignore 'wxGrid::SetCellValue(const wxString &,int,int)'
41
45
  spec.ignore 'wxGrid::SetTable' # there is wxGrid::AssignTable now that always takes ownership
42
46
 
43
- spec.ignore 'wxGrid::GetSelectedBlocks' # for now (flawed interface)
47
+ spec.regard 'wxGridSizesInfo::m_sizeDefault',
48
+ 'wxGridSizesInfo::m_customSizes'
49
+ spec.rename_for_ruby 'size_default' => 'wxGridSizesInfo::m_sizeDefault',
50
+ 'custom_sizes' => 'wxGridSizesInfo::m_customSizes'
51
+ spec.map 'wxUnsignedToIntHashMap' => 'Hash' do
52
+ add_header_code <<~__CODE
53
+ #if RUBY_API_VERSION_MAJOR<3 && RUBY_API_VERSION_MINOR<7
54
+ typedef int (*rb_foreach_func)(ANYARGS);
55
+ #else
56
+ typedef int (*rb_foreach_func)(VALUE, VALUE, VALUE);
57
+ #endif
58
+ #define FOREACH_FUNC(x) reinterpret_cast<rb_foreach_func>((void*)&(x))
59
+ static int _wxrb_cvt_custom_sizes(VALUE key, VALUE value, VALUE rbWxMap)
60
+ {
61
+ wxUnsignedToIntHashMap* wxMap;
62
+ Data_Get_Struct(rbWxMap, wxUnsignedToIntHashMap, wxMap);
63
+ (*wxMap)[NUM2UINT(key)] = NUM2INT(value);
64
+ return ST_CONTINUE;
65
+ }
66
+ __CODE
67
+ map_in code: <<~__CODE
68
+ if (TYPE($input) == T_HASH)
69
+ {
70
+ void* ptr = &($1);
71
+ VALUE rbWxMap = Data_Wrap_Struct(rb_cObject, 0, 0, ptr);
72
+ rb_hash_foreach($input, FOREACH_FUNC(_wxrb_cvt_custom_sizes), rbWxMap);
73
+ }
74
+ else
75
+ {
76
+ rb_raise(rb_eArgError, "Expected Hash for %d", $argnum-1);
77
+ }
78
+ __CODE
79
+
80
+ map_out code: <<~__CODE
81
+ $result = rb_hash_new();
82
+ wxUnsignedToIntHashMap::const_iterator it = $1.begin();
83
+ for (; it != $1.end() ;++it)
84
+ {
85
+ rb_hash_aset($result, UINT2NUM(it->first), INT2NUM(it->second));
86
+ }
87
+ __CODE
88
+ end
89
+
90
+ spec.ignore 'wxGrid::GetSelectedBlocks' # ignore
91
+ # add rubified API (finish in pure Ruby)
92
+ spec.add_extend_code 'wxGrid', <<~__HEREDOC
93
+ VALUE selected_blocks()
94
+ {
95
+ VALUE rc = Qnil;
96
+ if (rb_block_given_p())
97
+ {
98
+ wxGridBlocks sel = $self->GetSelectedBlocks();
99
+ for (const wxGridBlockCoords& gbc : sel)
100
+ {
101
+ rc = rb_yield (SWIG_NewPointerObj(new wxGridBlockCoords(gbc), SWIGTYPE_p_wxGridBlockCoords, SWIG_POINTER_OWN));
102
+ }
103
+ }
104
+ return rc;
105
+ }
106
+ __HEREDOC
107
+
108
+ spec.ignore 'wxGrid::GetGridWindowOffset(const wxGridWindow *, int &, int &) const'
44
109
 
45
110
  spec.add_header_code <<~__HEREDOC
46
111
  typedef wxGrid::wxGridSelectionModes wxGridSelectionModes;
47
112
  typedef wxGrid::CellSpan CellSpan;
48
113
  typedef wxGrid::TabBehaviour TabBehaviour;
49
114
  __HEREDOC
115
+
116
+ spec.map 'wxGridBlockCoordsVector' => 'Array<Wx::GRID::GridBlockCoords' do
117
+ map_out code: <<~__CODE
118
+ $result = rb_ary_new();
119
+ for (const wxGridBlockCoords& gbc: $1)
120
+ {
121
+ rb_ary_push($result, SWIG_NewPointerObj(new wxGridBlockCoords(gbc), SWIGTYPE_p_wxGridBlockCoords, SWIG_POINTER_OWN));
122
+ }
123
+ __CODE
124
+ end
125
+
50
126
  # Needed for methods that return cell and label alignments and other argout type mappings
51
127
  spec.map_apply 'int *OUTPUT' => [ 'int *horiz', 'int *vert' ,
52
128
  'int *num_rows', 'int *num_cols' ]
@@ -108,6 +184,71 @@ module WXRuby3
108
184
  'wxGrid::GetDefaultEditorForType',
109
185
  'wxGrid::GetDefaultRendererForCell',
110
186
  'wxGrid::GetDefaultRendererForType')
187
+
188
+ # create a lightweight, but typesafe, wrapper for wxGridWindow
189
+ spec.add_init_code <<~__HEREDOC
190
+ // define wxGridWindow wrapper class
191
+ mWxGridWindow = rb_define_class_under(mWxGRID, "GridWindow", rb_cObject);
192
+ rb_undef_alloc_func(mWxGridWindow);
193
+ __HEREDOC
194
+
195
+ spec.add_header_code <<~__HEREDOC
196
+ VALUE mWxGridWindow;
197
+
198
+ // wxGridWindow wrapper class definition and helper functions
199
+ static size_t __wxGridWindow_size(const void* data)
200
+ {
201
+ return 0;
202
+ }
203
+
204
+ #include <ruby/version.h>
205
+
206
+ static const rb_data_type_t __wxGridWindow_type = {
207
+ "GridWindow",
208
+ #if RUBY_API_VERSION_MAJOR >= 3
209
+ { NULL, NULL, __wxGridWindow_size, 0, 0},
210
+ #else
211
+ { NULL, NULL, __wxGridWindow_size, 0},
212
+ #endif
213
+ NULL, NULL, RUBY_TYPED_FREE_IMMEDIATELY
214
+ };
215
+
216
+ VALUE _wxRuby_Wrap_wxGridWindow(wxGridWindow* gw)
217
+ {
218
+ if (gw)
219
+ {
220
+ void* data = gw;
221
+ VALUE ret = TypedData_Wrap_Struct(mWxGridWindow, &__wxGridWindow_type, data);
222
+ return ret;
223
+ }
224
+ else
225
+ return Qnil;
226
+ }
227
+
228
+ wxGridWindow* _wxRuby_Unwrap_wxGridWindow(VALUE rbgw)
229
+ {
230
+ if (NIL_P(rbgw))
231
+ return nullptr;
232
+ else
233
+ {
234
+ void *data = 0;
235
+ TypedData_Get_Struct(rbgw, void, &__wxGridWindow_type, data);
236
+ return reinterpret_cast<wxGridWindow*> (data);
237
+ }
238
+ }
239
+
240
+ bool _wxRuby_Is_wxGridWindow(VALUE rbgw)
241
+ {
242
+ return rb_typeddata_is_kind_of(rbgw, &__wxGridWindow_type) == 1;
243
+ }
244
+ __HEREDOC
245
+
246
+ spec.map 'wxGridWindow*' => 'Wx::GRID::GridWindow' do
247
+ map_in code: '$1 = _wxRuby_Unwrap_wxGridWindow($input);'
248
+ map_out code: '$result = _wxRuby_Wrap_wxGridWindow($1);'
249
+ map_typecheck code: '$1 = _wxRuby_Is_wxGridWindow($input);'
250
+ end
251
+
111
252
  # Add custom code to handle GC marking for Grid cell attributes, editors and renderers.
112
253
  # Ruby created instances of these are registered in global tables whenever they are assigned to
113
254
  # a Grid (for a cell, default or named type). The global tables will be scanned during the GC marking stage
@@ -347,7 +488,7 @@ module WXRuby3
347
488
  # add type mappings to handle registration
348
489
  # first declare 'normal' type mapping for const pointer (for DrawCellHighlight)
349
490
  spec.map 'const wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
350
- map_check code: 'wxRuby_RegisterGridCellAttr($1, argv[$argnum-2]);'
491
+ map_check code: '' # do nothing; this instance does not get managed by wxWidgets
351
492
  end
352
493
  # next handle registering mappings
353
494
  spec.map 'wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
@@ -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
@@ -9,6 +12,8 @@ module WXRuby3
9
12
 
10
13
  class GridTableBase < Director
11
14
 
15
+ include Typemap::GridCoords
16
+
12
17
  def setup
13
18
  super
14
19
  spec.ignore %w[
@@ -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,37 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 wxWidgets interface director
7
+ ###
8
+
9
+ require_relative './window'
10
+
11
+ module WXRuby3
12
+
13
+ class Director
14
+
15
+ class HeaderCtrl < Window
16
+
17
+ def setup
18
+ super
19
+ spec.items << 'wxHeaderColumn' << 'wxHeaderCtrlSimple' << 'wxSettableHeaderColumn' << 'wxHeaderColumnSimple'
20
+ spec.regard 'wxHeaderCtrl::GetColumn',
21
+ 'wxHeaderCtrl::UpdateColumnVisibility',
22
+ 'wxHeaderCtrl::UpdateColumnsOrder',
23
+ 'wxHeaderCtrl::UpdateColumnWidthToFit',
24
+ 'wxHeaderCtrl::OnColumnCountChanging'
25
+ spec.regard 'wxHeaderCtrlSimple::GetBestFittingWidth'
26
+ spec.extend_interface 'wxHeaderCtrlSimple',
27
+ 'virtual const wxHeaderColumn& GetColumn(unsigned int idx) const',
28
+ visibility: 'protected'
29
+ # handled; can be suppressed
30
+ spec.suppress_warning(473, 'wxHeaderCtrl::GetColumn', 'wxHeaderCtrlSimple::GetColumn')
31
+ spec.do_not_generate :typedefs, :variables, :enums, :defines, :functions
32
+ end
33
+ end # class HeaderCtrl
34
+
35
+ end # class Director
36
+
37
+ end # module WXRuby3
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -9,9 +12,11 @@ module WXRuby3
9
12
 
10
13
  class HelpController < Director
11
14
 
15
+ include Typemap::ConfigBase
16
+
12
17
  def setup
13
18
  super
14
- spec.items << 'wxHelpControllerBase'
19
+ spec.items << 'wxHelpControllerBase' << 'helpfrm.h'
15
20
  spec.fold_bases(spec.module_name => 'wxHelpControllerBase')
16
21
  spec.rename_for_ruby('Init' => "#{spec.module_name}::Initialize")
17
22
  # ignore these (pure virtual) decls
@@ -50,10 +55,14 @@ module WXRuby3
50
55
  return rc;
51
56
  }
52
57
  __HEREDOC
58
+ spec.suppress_warning(473, "#{spec.module_name}::GetParentWindow")
53
59
  if spec.module_name == 'wxHtmlHelpController'
54
- spec.ignore 'wxHtmlHelpController::CreateHelpFrame'
55
- spec.suppress_warning(473,
56
- 'wxHtmlHelpController::GetParentWindow')
60
+ # prevent having to expose HtmlHelpFrame & HtmlHelpDialog
61
+ # I do not see real use in supporting custom HtmlHelpController derivatives
62
+ spec.ignore 'wxHtmlHelpController::CreateHelpFrame',
63
+ 'wxHtmlHelpController::CreateHelpDialog',
64
+ 'wxHtmlHelpController::GetFrame',
65
+ 'wxHtmlHelpController::GetDialog'
57
66
  elsif spec.module_name == 'wxExtHelpController'
58
67
  spec.ignore %w[
59
68
  wxExtHelpController::DisplayBlock
@@ -62,8 +71,6 @@ module WXRuby3
62
71
  wxExtHelpController::Quit
63
72
  wxExtHelpController::GetFrameParameters
64
73
  ]
65
- spec.suppress_warning(473,
66
- 'wxExtHelpController::GetParentWindow')
67
74
  # already generated with HelpController
68
75
  spec.do_not_generate :variables, :enums, :defines, :functions
69
76
  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
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -13,7 +16,7 @@ module WXRuby3
13
16
 
14
17
  def setup
15
18
  super
16
- spec.items << 'wxHtmlLinkInfo' << 'wxHtmlContainerCell' << 'htmldefs.h'
19
+ spec.items << 'wxHtmlLinkInfo' << 'wxHtmlContainerCell' << 'wxHtmlSelection' << 'htmldefs.h'
17
20
  # the classes here are internal and for reference only
18
21
  # should never be derived from or instantiated in (Ruby) user code
19
22
  spec.disable_proxies
@@ -27,7 +30,11 @@ module WXRuby3
27
30
  'wxHtmlCell::Draw',
28
31
  'wxHtmlCell::DrawInvisible',
29
32
  'wxHtmlCell::Layout',
30
- 'wxHtmlCell::ProcessMouseClick'
33
+ 'wxHtmlCell::ProcessMouseClick',
34
+ 'wxHtmlCell::GetMouseCursor',
35
+ 'wxHtmlCell::GetMouseCursorAt'
36
+ spec.ignore 'wxHtmlContainerCell::SetAlign',
37
+ 'wxHtmlContainerCell::SetWidthFloat'
31
38
  end
32
39
  end # class HtmlCell
33
40
 
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  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
@@ -0,0 +1,30 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 wxWidgets interface director
7
+ ###
8
+
9
+ require_relative './window'
10
+
11
+ module WXRuby3
12
+
13
+ class Director
14
+
15
+ class HtmlHelpWindow < Window
16
+
17
+ include Typemap::ConfigBase
18
+
19
+ def setup
20
+ super
21
+ # only allow setting config through propagation from help controller
22
+ # saves us from management code
23
+ spec.ignore 'wxHtmlHelpWindow::UseConfig'
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+
30
+ end
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './window'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 wxWidgets interface director
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -12,6 +15,8 @@ module WXRuby3
12
15
  def setup
13
16
  super
14
17
  spec.override_inheritance_chain('wxHtmlPrintout', {'wxPrintout' => 'wxPrinter'}, 'wxObject')
18
+ # for GetPageInfo
19
+ spec.map_apply 'int * OUTPUT' => ['int *minPage', 'int *maxPage', 'int *pageFrom', 'int *pageTo']
15
20
  # Deal with sizes argument to SetFonts
16
21
  spec.map 'const int *sizes' => 'Array(Integer,Integer,Integer,Integer,Integer,Integer,Integer), nil' do
17
22
  map_in temp: 'int tmp[7]', code: <<~__CODE
@@ -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'
@@ -12,6 +15,7 @@ module WXRuby3
12
15
  class HtmlWindow < Window
13
16
 
14
17
  include Typemap::HtmlCell
18
+ include Typemap::ConfigBase
15
19
 
16
20
  def setup
17
21
  super
@@ -34,15 +38,13 @@ module WXRuby3
34
38
  spec.suppress_warning(473, "wxHtmlWindow::GetHTMLWindow")
35
39
  # deprecated; use event handler instead
36
40
  spec.ignore 'wxHtmlWindow::OnLinkClicked'
41
+ # not useful for wxRuby
42
+ spec.ignore 'wxHtmlWindow::GetParser'
37
43
  spec.no_proxy 'wxHtmlWindow::SendAutoScrollEvents'
38
44
  spec.add_header_code 'typedef wxHtmlWindow::HTMLCursor HTMLCursor;'
39
- # type mapping for LoadFile, SetFonts and OnOpeningURL
40
- spec.map 'const wxFileName &filename' => 'String' do
41
- # Deal with wxFileName
42
- map_in temp: 'wxFileName tmp', code: <<~__CODE
43
- tmp = wxFileName(RSTR_TO_WXSTR($input));
44
- $1 = &tmp;
45
- __CODE
45
+ spec.map 'HTMLCursor' => 'Integer' do
46
+ map_in code: '$1 = static_cast<HTMLCursor> (NUM2INT($input));'
47
+ map_directorin code: '$input = INT2NUM((int)$1);'
46
48
  end
47
49
  # Deal with sizes argument to SetFonts
48
50
  spec.map 'const int *sizes' => 'Array(Integer,Integer,Integer,Integer,Integer,Integer,Integer), nil' do