wxruby3 0.9.0.pre.rc.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/mkrf_conf_srcgem.rb +4 -1
  4. data/ext/wxruby3/include/wxruby-Config.h +953 -0
  5. data/ext/wxruby3/include/wxruby-ScaledDC.h +4 -1
  6. data/ext/wxruby3/include/wxruby-runtime.h +10 -1
  7. data/ext/wxruby3/swig/RubyStockObjects.i +5 -3
  8. data/ext/wxruby3/swig/common.i +8 -3
  9. data/ext/wxruby3/swig/mark_free_impl.i +6 -4
  10. data/ext/wxruby3/swig/memory_management.i +5 -3
  11. data/ext/wxruby3/swig/typedefs.i +5 -3
  12. data/ext/wxruby3/swig/wx.i +5 -0
  13. data/ext/wxruby3/swig/wx.rc +4 -2
  14. data/lib/wx/accessors.rb +10 -2
  15. data/lib/wx/aui/auifloatframe.rb +20 -0
  16. data/lib/wx/aui/auimanager.rb +3 -0
  17. data/lib/wx/aui/auinotebook.rb +17 -0
  18. data/lib/wx/aui/require.rb +5 -1
  19. data/lib/wx/aui.rb +4 -1
  20. data/lib/wx/core/acceleratortable.rb +8 -0
  21. data/lib/wx/core/animation.rb +8 -0
  22. data/lib/wx/core/app.rb +8 -0
  23. data/lib/wx/core/array_ext.rb +7 -0
  24. data/lib/wx/core/art_locator.rb +7 -0
  25. data/lib/wx/core/artprovider.rb +9 -0
  26. data/lib/wx/core/bitmap.rb +16 -4
  27. data/lib/wx/core/bitmap_combobox.rb +7 -0
  28. data/lib/wx/core/brush.rb +7 -0
  29. data/lib/wx/core/busycursor.rb +9 -0
  30. data/lib/wx/core/choice.rb +7 -0
  31. data/lib/wx/core/choicedlg.rb +7 -0
  32. data/lib/wx/core/clientdc.rb +9 -0
  33. data/lib/wx/core/clipboard.rb +8 -0
  34. data/lib/wx/core/collapsible_pane.rb +8 -1
  35. data/lib/wx/core/colour.rb +8 -0
  36. data/lib/wx/core/combo_ctrl.rb +110 -0
  37. data/lib/wx/core/combobox.rb +7 -0
  38. data/lib/wx/core/config.rb +303 -0
  39. data/lib/wx/core/controlwithitems.rb +12 -1
  40. data/lib/wx/core/cursor.rb +14 -4
  41. data/lib/wx/core/data_object.rb +7 -0
  42. data/lib/wx/core/dataformat.rb +9 -0
  43. data/lib/wx/core/datetime.rb +14 -0
  44. data/lib/wx/core/dc.rb +7 -0
  45. data/lib/wx/core/dialog.rb +18 -1
  46. data/lib/wx/core/enum.rb +7 -0
  47. data/lib/wx/core/event.rb +7 -0
  48. data/lib/wx/core/event_blocker.rb +7 -0
  49. data/lib/wx/core/event_loop.rb +7 -0
  50. data/lib/wx/core/evthandler.rb +8 -0
  51. data/lib/wx/core/ext.rb +7 -0
  52. data/lib/wx/core/file_dialog.rb +23 -0
  53. data/lib/wx/core/find_replace_dialog.rb +7 -0
  54. data/lib/wx/core/functions.rb +8 -0
  55. data/lib/wx/core/gauge.rb +10 -1
  56. data/lib/wx/core/genericdirctrl.rb +9 -0
  57. data/lib/wx/core/hboxsizer.rb +16 -0
  58. data/lib/wx/core/helpcontroller.rb +8 -0
  59. data/lib/wx/core/helpcontrollerhelpprovider.rb +9 -0
  60. data/lib/wx/core/helpprovider.rb +10 -1
  61. data/lib/wx/core/icon.rb +17 -6
  62. data/lib/wx/core/id_helper.rb +7 -0
  63. data/lib/wx/core/image.rb +16 -4
  64. data/lib/wx/core/imagelist.rb +8 -1
  65. data/lib/wx/core/listbox.rb +7 -0
  66. data/lib/wx/core/listctrl.rb +9 -0
  67. data/lib/wx/core/locale.rb +8 -0
  68. data/lib/wx/core/log.rb +24 -0
  69. data/lib/wx/core/menu.rb +9 -0
  70. data/lib/wx/core/menu_bar.rb +7 -0
  71. data/lib/wx/core/menuitem.rb +9 -0
  72. data/lib/wx/core/notebook.rb +9 -0
  73. data/lib/wx/core/object.rb +9 -0
  74. data/lib/wx/core/paintdc.rb +7 -0
  75. data/lib/wx/core/pen.rb +7 -0
  76. data/lib/wx/core/pen_info.rb +7 -0
  77. data/lib/wx/core/platform_info.rb +7 -0
  78. data/lib/wx/core/point.rb +8 -0
  79. data/lib/wx/core/real_point.rb +8 -0
  80. data/lib/wx/core/rect.rb +9 -0
  81. data/lib/wx/core/region_iterator.rb +7 -0
  82. data/lib/wx/core/simplehelpprovider.rb +9 -0
  83. data/lib/wx/core/size.rb +8 -0
  84. data/lib/wx/core/sizer.rb +9 -0
  85. data/lib/wx/core/splash_screen.rb +22 -2
  86. data/lib/wx/core/text_entry.rb +7 -0
  87. data/lib/wx/core/textctrl.rb +86 -5
  88. data/lib/wx/core/timer.rb +9 -0
  89. data/lib/wx/core/toolbar.rb +9 -0
  90. data/lib/wx/core/toolbartool.rb +8 -0
  91. data/lib/wx/core/treectrl.rb +9 -0
  92. data/lib/wx/core/v_list_box.rb +7 -0
  93. data/lib/wx/core/validator.rb +7 -0
  94. data/lib/wx/core/variant.rb +7 -0
  95. data/lib/wx/core/vboxsizer.rb +16 -0
  96. data/lib/wx/core/window.rb +8 -0
  97. data/lib/wx/core/window_update_locker.rb +9 -0
  98. data/lib/wx/core/xmlresource.rb +8 -0
  99. data/lib/wx/core.rb +4 -1
  100. data/lib/wx/doc/app.rb +7 -1
  101. data/lib/wx/doc/array_ext.rb +6 -0
  102. data/lib/wx/doc/art_locator.rb +7 -0
  103. data/lib/wx/doc/aui/auimanager.rb +6 -0
  104. data/lib/wx/doc/aui/auinotebook.rb +6 -0
  105. data/lib/wx/doc/bitmap.rb +12 -4
  106. data/lib/wx/doc/brush.rb +6 -0
  107. data/lib/wx/doc/busy_info.rb +6 -0
  108. data/lib/wx/doc/client_dc.rb +6 -0
  109. data/lib/wx/doc/clipboard.rb +6 -0
  110. data/lib/wx/doc/colour_dialog.rb +6 -0
  111. data/lib/wx/doc/config.rb +190 -0
  112. data/lib/wx/doc/const.rb +7 -0
  113. data/lib/wx/doc/controlwithitems.rb +6 -0
  114. data/lib/wx/doc/core.rb +6 -0
  115. data/lib/wx/doc/cursor.rb +13 -5
  116. data/lib/wx/doc/data_object.rb +6 -0
  117. data/lib/wx/doc/datetime.rb +16 -0
  118. data/lib/wx/doc/dc.rb +6 -0
  119. data/lib/wx/doc/enum.rb +8 -1
  120. data/lib/wx/doc/event.rb +12 -0
  121. data/lib/wx/doc/event_blocker.rb +6 -0
  122. data/lib/wx/doc/event_loop.rb +6 -0
  123. data/lib/wx/doc/events.rb +6 -0
  124. data/lib/wx/doc/evthandler.rb +8 -0
  125. data/lib/wx/doc/extra/01_packages.md +52 -51
  126. data/lib/wx/doc/extra/05_event-handling.md +37 -12
  127. data/lib/wx/doc/extra/06_geometry.md +5 -5
  128. data/lib/wx/doc/extra/07_colour_and_font.md +2 -2
  129. data/lib/wx/doc/extra/09_exceptions.md +1 -1
  130. data/lib/wx/doc/extra/10_art.md +18 -12
  131. data/lib/wx/doc/extra/11_drawing_and_dc.md +4 -4
  132. data/lib/wx/doc/font.rb +6 -0
  133. data/lib/wx/doc/font_data.rb +16 -0
  134. data/lib/wx/doc/functions.rb +9 -1
  135. data/lib/wx/doc/gc_dc.rb +6 -0
  136. data/lib/wx/doc/gdi_common.rb +8 -1
  137. data/lib/wx/doc/graphics_context.rb +59 -39
  138. data/lib/wx/doc/grid/grid.rb +16 -1
  139. data/lib/wx/doc/hboxsizer.rb +33 -0
  140. data/lib/wx/doc/help_controller.rb +6 -0
  141. data/lib/wx/doc/html/html_help_controller.rb +6 -0
  142. data/lib/wx/doc/icon.rb +13 -5
  143. data/lib/wx/doc/id_helper.rb +6 -0
  144. data/lib/wx/doc/image.rb +12 -4
  145. data/lib/wx/doc/list_ctrl.rb +6 -0
  146. data/lib/wx/doc/log.rb +17 -0
  147. data/lib/wx/doc/memory_dc.rb +6 -0
  148. data/lib/wx/doc/mirror_dc.rb +6 -0
  149. data/lib/wx/doc/pen.rb +6 -0
  150. data/lib/wx/doc/pg/events.rb +6 -0
  151. data/lib/wx/doc/pg/pg_property.rb +17 -0
  152. data/lib/wx/doc/pg/pgeditor.rb +6 -0
  153. data/lib/wx/doc/pg/property_grid.rb +6 -0
  154. data/lib/wx/doc/pg/property_grid_interface.rb +6 -0
  155. data/lib/wx/doc/progress_dialog.rb +6 -0
  156. data/lib/wx/doc/prt/page_setup_dialog.rb +6 -0
  157. data/lib/wx/doc/prt/print_data.rb +6 -0
  158. data/lib/wx/doc/prt/print_dialog.rb +6 -0
  159. data/lib/wx/doc/prt/printer.rb +6 -0
  160. data/lib/wx/doc/prt/printer_dc.rb +6 -0
  161. data/lib/wx/doc/radio_box.rb +6 -0
  162. data/lib/wx/doc/rbn/ribbon_bar.rb +6 -0
  163. data/lib/wx/doc/rbn/ribbon_button_bar.rb +6 -0
  164. data/lib/wx/doc/rbn/ribbon_gallery.rb +6 -0
  165. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +6 -0
  166. data/lib/wx/doc/region_iterator.rb +6 -0
  167. data/lib/wx/doc/rtc/richtext_buffer.rb +28 -0
  168. data/lib/wx/doc/rtc/richtext_formatting_dialog.rb +68 -0
  169. data/lib/wx/doc/rtc/richtext_printing.rb +6 -0
  170. data/lib/wx/doc/rtc/richtext_style_sheet.rb +20 -0
  171. data/lib/wx/doc/scaled_dc.rb +6 -0
  172. data/lib/wx/doc/screen_dc.rb +6 -0
  173. data/lib/wx/doc/stock_objects.rb +6 -0
  174. data/lib/wx/doc/stream.rb +6 -0
  175. data/lib/wx/doc/svg_file_dc.rb +6 -0
  176. data/lib/wx/doc/system_settings.rb +6 -0
  177. data/lib/wx/doc/text_validator.rb +6 -0
  178. data/lib/wx/doc/textctrl.rb +89 -0
  179. data/lib/wx/doc/tree_event.rb +20 -0
  180. data/lib/wx/doc/treebook.rb +6 -0
  181. data/lib/wx/doc/v_list_box.rb +6 -0
  182. data/lib/wx/doc/variant.rb +6 -0
  183. data/lib/wx/doc/vboxsizer.rb +33 -0
  184. data/lib/wx/doc/window.rb +6 -0
  185. data/lib/wx/doc/window_disabler.rb +6 -0
  186. data/lib/wx/doc/xml_resource.rb +8 -0
  187. data/lib/wx/global_const.rb +4 -1
  188. data/lib/wx/grid/grid.rb +23 -3
  189. data/lib/wx/grid/keyword_defs.rb +8 -1
  190. data/lib/wx/grid/require.rb +4 -1
  191. data/lib/wx/grid.rb +4 -1
  192. data/lib/wx/helpers.rb +8 -1
  193. data/lib/wx/html/htmlhelpcontroller.rb +29 -3
  194. data/lib/wx/html/htmlwindow.rb +23 -12
  195. data/lib/wx/html/keyword_defs.rb +8 -1
  196. data/lib/wx/html/require.rb +4 -1
  197. data/lib/wx/html/simple_html_listbox.rb +3 -0
  198. data/lib/wx/html.rb +4 -1
  199. data/lib/wx/keyword_ctors.rb +22 -3
  200. data/lib/wx/keyword_defs.rb +55 -3
  201. data/lib/wx/pg/events.rb +4 -1
  202. data/lib/wx/pg/keyword_defs.rb +8 -1
  203. data/lib/wx/pg/pg_editor.rb +3 -0
  204. data/lib/wx/pg/pg_properties.rb +4 -1
  205. data/lib/wx/pg/pg_property.rb +18 -5
  206. data/lib/wx/pg/property_grid.rb +4 -1
  207. data/lib/wx/pg/property_grid_interface.rb +3 -0
  208. data/lib/wx/pg/require.rb +4 -1
  209. data/lib/wx/pg.rb +4 -1
  210. data/lib/wx/prt/keyword_defs.rb +8 -1
  211. data/lib/wx/prt/page_setup_dialog.rb +3 -0
  212. data/lib/wx/prt/previewframe.rb +5 -0
  213. data/lib/wx/prt/require.rb +4 -1
  214. data/lib/wx/prt.rb +4 -1
  215. data/lib/wx/rbn/events.rb +4 -1
  216. data/lib/wx/rbn/keyword_defs.rb +8 -1
  217. data/lib/wx/rbn/require.rb +5 -1
  218. data/lib/wx/rbn/ribbon_art_provider.rb +3 -1
  219. data/lib/wx/rbn/ribbon_bar.rb +3 -0
  220. data/lib/wx/rbn/ribbon_button_bar.rb +3 -0
  221. data/lib/wx/rbn/ribbon_control.rb +3 -0
  222. data/lib/wx/rbn/ribbon_gallery.rb +10 -0
  223. data/lib/wx/rbn/ribbon_page.rb +3 -0
  224. data/lib/wx/rbn/ribbon_panel.rb +3 -0
  225. data/lib/wx/rbn/ribbon_tool_bar.rb +3 -0
  226. data/lib/wx/rbn.rb +4 -1
  227. data/lib/wx/rtc/ext.rb +4 -1
  228. data/lib/wx/rtc/keyword_defs.rb +18 -7
  229. data/lib/wx/rtc/require.rb +8 -1
  230. data/lib/wx/rtc/richtext_buffer.rb +36 -0
  231. data/lib/wx/rtc/richtext_formatting_dialog.rb +88 -0
  232. data/lib/wx/rtc/richtext_style_organiser_dialog.rb +46 -0
  233. data/lib/wx/rtc/symbol_picker_dialog.rb +47 -0
  234. data/lib/wx/rtc.rb +5 -1
  235. data/lib/wx/stc/keyword_defs.rb +8 -1
  236. data/lib/wx/stc/require.rb +4 -1
  237. data/lib/wx/stc.rb +4 -1
  238. data/lib/wx/version.rb +5 -1
  239. data/lib/wx/wxruby/base.rb +4 -1
  240. data/lib/wx/wxruby/cmd/sampler.rb +4 -1
  241. data/lib/wx/wxruby/cmd/test.rb +4 -1
  242. data/lib/wx.rb +4 -1
  243. data/rakelib/build.rake +4 -1
  244. data/rakelib/build.rb +4 -1
  245. data/rakelib/config.rake +4 -1
  246. data/rakelib/configure.rb +4 -1
  247. data/rakelib/doc.rake +4 -1
  248. data/rakelib/doc.rb +5 -1
  249. data/rakelib/install.rake +4 -1
  250. data/rakelib/install.rb +4 -1
  251. data/rakelib/lib/config/cygwin.rb +4 -1
  252. data/rakelib/lib/config/linux.rb +4 -1
  253. data/rakelib/lib/config/macosx.rb +5 -2
  254. data/rakelib/lib/config/mingw.rb +4 -1
  255. data/rakelib/lib/config/netbsd.rb +4 -1
  256. data/rakelib/lib/config/unixish.rb +10 -7
  257. data/rakelib/lib/config.rb +7 -2
  258. data/rakelib/lib/core/include/enum.inc +4 -1
  259. data/rakelib/lib/core/include/funcall.inc +10 -64
  260. data/rakelib/lib/core/include/init.inc +3 -0
  261. data/rakelib/lib/core/mapping.rb +26 -46
  262. data/rakelib/lib/core/package.rb +17 -3
  263. data/rakelib/lib/core/parameter.rb +4 -1
  264. data/rakelib/lib/core/spec.rb +14 -8
  265. data/rakelib/lib/core/spec_helper.rb +32 -9
  266. data/rakelib/lib/director/about_dialog_info.rb +4 -1
  267. data/rakelib/lib/director/accelerator.rb +7 -2
  268. data/rakelib/lib/director/animation.rb +4 -1
  269. data/rakelib/lib/director/animation_ctrl.rb +4 -1
  270. data/rakelib/lib/director/any_button.rb +5 -2
  271. data/rakelib/lib/director/app.rb +16 -2
  272. data/rakelib/lib/director/app_traits.rb +71 -0
  273. data/rakelib/lib/director/art_provider.rb +4 -1
  274. data/rakelib/lib/director/aui_dock_art.rb +4 -1
  275. data/rakelib/lib/director/aui_floating_frame.rb +4 -1
  276. data/rakelib/lib/director/aui_manager.rb +12 -5
  277. data/rakelib/lib/director/aui_manager_event.rb +4 -1
  278. data/rakelib/lib/director/aui_mdi_child_frame.rb +25 -1
  279. data/rakelib/lib/director/aui_mdi_client_window.rb +4 -1
  280. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -1
  281. data/rakelib/lib/director/aui_notebook.rb +12 -1
  282. data/rakelib/lib/director/aui_notebook_event.rb +4 -1
  283. data/rakelib/lib/director/aui_pane_info.rb +4 -1
  284. data/rakelib/lib/director/aui_tab_art.rb +52 -1
  285. data/rakelib/lib/director/aui_tab_ctrl.rb +14 -1
  286. data/rakelib/lib/director/aui_toolbar.rb +6 -3
  287. data/rakelib/lib/director/aui_toolbar_art.rb +52 -1
  288. data/rakelib/lib/director/aui_toolbar_event.rb +4 -1
  289. data/rakelib/lib/director/aui_toolbar_item.rb +4 -1
  290. data/rakelib/lib/director/banner_window.rb +26 -0
  291. data/rakelib/lib/director/bitmap.rb +11 -2
  292. data/rakelib/lib/director/bitmap_combobox.rb +5 -1
  293. data/rakelib/lib/director/book_ctrls.rb +13 -3
  294. data/rakelib/lib/director/brush.rb +4 -1
  295. data/rakelib/lib/director/busy_info.rb +4 -1
  296. data/rakelib/lib/director/button.rb +4 -1
  297. data/rakelib/lib/director/calendar_ctrl.rb +4 -1
  298. data/rakelib/lib/director/calendar_date_attr.rb +4 -1
  299. data/rakelib/lib/director/caret.rb +4 -1
  300. data/rakelib/lib/director/check_listbox.rb +4 -1
  301. data/rakelib/lib/director/choice.rb +4 -1
  302. data/rakelib/lib/director/clipboard.rb +4 -1
  303. data/rakelib/lib/director/collapsible_pane.rb +4 -1
  304. data/rakelib/lib/director/collapsible_pane_event.rb +4 -1
  305. data/rakelib/lib/director/colour.rb +9 -1
  306. data/rakelib/lib/director/colour_picker_ctrl.rb +4 -1
  307. data/rakelib/lib/director/combobox.rb +4 -1
  308. data/rakelib/lib/director/comboctrl.rb +94 -0
  309. data/rakelib/lib/director/config_base.rb +135 -0
  310. data/rakelib/lib/director/context_help_button.rb +4 -1
  311. data/rakelib/lib/director/control.rb +4 -1
  312. data/rakelib/lib/director/ctrl_with_items.rb +5 -1
  313. data/rakelib/lib/director/cursor.rb +6 -2
  314. data/rakelib/lib/director/data_format.rb +4 -1
  315. data/rakelib/lib/director/data_object.rb +4 -1
  316. data/rakelib/lib/director/data_object_simple_base.rb +4 -1
  317. data/rakelib/lib/director/date_event.rb +9 -2
  318. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  319. data/rakelib/lib/director/dc.rb +19 -1
  320. data/rakelib/lib/director/defs.rb +4 -1
  321. data/rakelib/lib/director/derived_dc.rb +27 -20
  322. data/rakelib/lib/director/dialog.rb +24 -3
  323. data/rakelib/lib/director/dir_filterlist_ctrl.rb +4 -1
  324. data/rakelib/lib/director/dir_picker_ctrl.rb +4 -1
  325. data/rakelib/lib/director/drag_image.rb +9 -2
  326. data/rakelib/lib/director/dragdrop.rb +4 -1
  327. data/rakelib/lib/director/editable_listbox.rb +4 -1
  328. data/rakelib/lib/director/event.rb +11 -3
  329. data/rakelib/lib/director/event_blocker.rb +4 -1
  330. data/rakelib/lib/director/event_filter.rb +4 -1
  331. data/rakelib/lib/director/event_handler.rb +28 -11
  332. data/rakelib/lib/director/event_loop.rb +4 -1
  333. data/rakelib/lib/director/events.rb +5 -2
  334. data/rakelib/lib/director/file_dialog_custom_control.rb +28 -0
  335. data/rakelib/lib/director/file_dialog_customize_hook.rb +28 -0
  336. data/rakelib/lib/director/file_picker_ctrl.rb +4 -1
  337. data/rakelib/lib/director/file_system.rb +45 -0
  338. data/rakelib/lib/director/find_dialog_event.rb +4 -1
  339. data/rakelib/lib/director/find_replace_data.rb +4 -1
  340. data/rakelib/lib/director/font.rb +7 -3
  341. data/rakelib/lib/director/font_data.rb +9 -1
  342. data/rakelib/lib/director/font_picker_ctrl.rb +4 -1
  343. data/rakelib/lib/director/frame.rb +45 -33
  344. data/rakelib/lib/director/fs_file.rb +52 -1
  345. data/rakelib/lib/director/functions.rb +11 -5
  346. data/rakelib/lib/director/gdi_object.rb +4 -1
  347. data/rakelib/lib/director/gdicommon.rb +14 -9
  348. data/rakelib/lib/director/generic_dirctrl.rb +4 -1
  349. data/rakelib/lib/director/graphics_context.rb +113 -18
  350. data/rakelib/lib/director/graphics_object.rb +13 -2
  351. data/rakelib/lib/director/grid_cell_attr.rb +28 -4
  352. data/rakelib/lib/director/grid_cell_editor.rb +22 -5
  353. data/rakelib/lib/director/grid_cell_renderer.rb +16 -3
  354. data/rakelib/lib/director/grid_ctrl.rb +146 -5
  355. data/rakelib/lib/director/grid_range_select_event.rb +4 -1
  356. data/rakelib/lib/director/grid_table_base.rb +6 -1
  357. data/rakelib/lib/director/grid_table_message.rb +4 -1
  358. data/rakelib/lib/director/header_ctrl.rb +37 -0
  359. data/rakelib/lib/director/help_controller.rb +13 -6
  360. data/rakelib/lib/director/help_provider.rb +4 -1
  361. data/rakelib/lib/director/html_cell.rb +10 -3
  362. data/rakelib/lib/director/html_data_object.rb +4 -1
  363. data/rakelib/lib/director/html_easy_printing.rb +4 -1
  364. data/rakelib/lib/director/html_event.rb +4 -1
  365. data/rakelib/lib/director/html_help_data.rb +4 -1
  366. data/rakelib/lib/director/html_help_window.rb +30 -0
  367. data/rakelib/lib/director/html_listbox.rb +4 -1
  368. data/rakelib/lib/director/html_printout.rb +6 -1
  369. data/rakelib/lib/director/html_window.rb +10 -8
  370. data/rakelib/lib/director/hyperlink_ctrl.rb +32 -0
  371. data/rakelib/lib/director/hyperlink_event.rb +4 -1
  372. data/rakelib/lib/director/icon.rb +4 -1
  373. data/rakelib/lib/director/image.rb +26 -3
  374. data/rakelib/lib/director/image_list.rb +5 -1
  375. data/rakelib/lib/director/info_bar.rb +26 -0
  376. data/rakelib/lib/director/list_ctrl.rb +39 -7
  377. data/rakelib/lib/director/listbox.rb +4 -1
  378. data/rakelib/lib/director/locale.rb +7 -4
  379. data/rakelib/lib/director/log.rb +51 -6
  380. data/rakelib/lib/director/mdi_frame.rb +4 -1
  381. data/rakelib/lib/director/media_ctrl.rb +4 -1
  382. data/rakelib/lib/director/menu.rb +16 -3
  383. data/rakelib/lib/director/menu_bar.rb +13 -2
  384. data/rakelib/lib/director/menu_item.rb +6 -6
  385. data/rakelib/lib/director/mouse_state.rb +5 -2
  386. data/rakelib/lib/director/numeric_property_validator.rb +4 -1
  387. data/rakelib/lib/director/object.rb +5 -2
  388. data/rakelib/lib/director/page_setup_dialog.rb +4 -1
  389. data/rakelib/lib/director/palette.rb +54 -2
  390. data/rakelib/lib/director/panel.rb +4 -1
  391. data/rakelib/lib/director/pen.rb +5 -2
  392. data/rakelib/lib/director/pgarray_editor_dialog.rb +4 -1
  393. data/rakelib/lib/director/pgcell.rb +4 -1
  394. data/rakelib/lib/director/pgeditor.rb +4 -1
  395. data/rakelib/lib/director/pgmulti_button.rb +4 -1
  396. data/rakelib/lib/director/pgproperties.rb +4 -1
  397. data/rakelib/lib/director/pgproperty.rb +42 -3
  398. data/rakelib/lib/director/pgvalidation_info.rb +9 -1
  399. data/rakelib/lib/director/pickerbase.rb +4 -1
  400. data/rakelib/lib/director/platform_info.rb +9 -1
  401. data/rakelib/lib/director/popup_window.rb +14 -1
  402. data/rakelib/lib/director/preview_frame.rb +5 -2
  403. data/rakelib/lib/director/print_data.rb +4 -1
  404. data/rakelib/lib/director/print_dialog.rb +4 -1
  405. data/rakelib/lib/director/printer.rb +14 -6
  406. data/rakelib/lib/director/property_grid.rb +30 -1
  407. data/rakelib/lib/director/property_grid_event.rb +11 -1
  408. data/rakelib/lib/director/property_grid_interface.rb +20 -6
  409. data/rakelib/lib/director/property_grid_manager.rb +4 -1
  410. data/rakelib/lib/director/property_grid_page.rb +4 -1
  411. data/rakelib/lib/director/property_grid_page_state.rb +4 -1
  412. data/rakelib/lib/director/radio_box.rb +4 -1
  413. data/rakelib/lib/director/rearrange_list.rb +36 -0
  414. data/rakelib/lib/director/region.rb +5 -1
  415. data/rakelib/lib/director/region_iterator.rb +4 -1
  416. data/rakelib/lib/director/ribbon_art_provider.rb +9 -1
  417. data/rakelib/lib/director/ribbon_bar.rb +4 -1
  418. data/rakelib/lib/director/ribbon_bar_event.rb +4 -1
  419. data/rakelib/lib/director/ribbon_button_bar.rb +4 -1
  420. data/rakelib/lib/director/ribbon_button_bar_event.rb +4 -1
  421. data/rakelib/lib/director/ribbon_ctrl.rb +4 -1
  422. data/rakelib/lib/director/ribbon_gallery.rb +8 -3
  423. data/rakelib/lib/director/ribbon_gallery_event.rb +4 -1
  424. data/rakelib/lib/director/ribbon_page.rb +4 -1
  425. data/rakelib/lib/director/ribbon_panel.rb +4 -1
  426. data/rakelib/lib/director/ribbon_panel_event.rb +4 -1
  427. data/rakelib/lib/director/ribbon_tool_bar.rb +4 -1
  428. data/rakelib/lib/director/ribbon_tool_bar_event.rb +4 -1
  429. data/rakelib/lib/director/richtext_box.rb +61 -0
  430. data/rakelib/lib/director/richtext_buffer.rb +219 -22
  431. data/rakelib/lib/director/richtext_buffer_data_object.rb +4 -1
  432. data/rakelib/lib/director/richtext_composite_object.rb +174 -0
  433. data/rakelib/lib/director/richtext_ctrl.rb +157 -4
  434. data/rakelib/lib/director/richtext_event.rb +4 -1
  435. data/rakelib/lib/director/richtext_file_handler.rb +13 -1
  436. data/rakelib/lib/director/richtext_formatting_dialog.rb +44 -0
  437. data/rakelib/lib/director/richtext_header_footer_data.rb +4 -1
  438. data/rakelib/lib/director/richtext_image.rb +56 -0
  439. data/rakelib/lib/director/richtext_object.rb +272 -0
  440. data/rakelib/lib/director/richtext_paragraph_layout_box.rb +178 -0
  441. data/rakelib/lib/director/richtext_printing.rb +4 -1
  442. data/rakelib/lib/director/richtext_style_listbox.rb +37 -0
  443. data/rakelib/lib/director/richtext_style_organiser_dialog.rb +28 -0
  444. data/rakelib/lib/director/sash_layout_event.rb +4 -1
  445. data/rakelib/lib/director/sash_layout_window.rb +4 -1
  446. data/rakelib/lib/director/sash_window.rb +4 -1
  447. data/rakelib/lib/director/scroll_bar.rb +4 -1
  448. data/rakelib/lib/director/scrolled_t.rb +7 -4
  449. data/rakelib/lib/director/searchctrl.rb +4 -1
  450. data/rakelib/lib/director/sizer.rb +4 -1
  451. data/rakelib/lib/director/sizer_item.rb +9 -3
  452. data/rakelib/lib/director/slider.rb +4 -1
  453. data/rakelib/lib/director/splash_screen.rb +4 -1
  454. data/rakelib/lib/director/splitter_event.rb +4 -1
  455. data/rakelib/lib/director/splitter_window.rb +4 -1
  456. data/rakelib/lib/director/static_bitmap.rb +4 -1
  457. data/rakelib/lib/director/static_box.rb +5 -2
  458. data/rakelib/lib/director/status_bar.rb +5 -1
  459. data/rakelib/lib/director/styled_text_ctrl.rb +14 -2
  460. data/rakelib/lib/director/styled_text_event.rb +4 -1
  461. data/rakelib/lib/director/system_options.rb +4 -1
  462. data/rakelib/lib/director/system_settings.rb +4 -1
  463. data/rakelib/lib/director/task_bar_icon.rb +4 -1
  464. data/rakelib/lib/director/text_attr.rb +5 -2
  465. data/rakelib/lib/director/text_entry.rb +4 -1
  466. data/rakelib/lib/director/text_validator.rb +6 -1
  467. data/rakelib/lib/director/textctrl.rb +32 -3
  468. data/rakelib/lib/director/time_picker_ctrl.rb +4 -1
  469. data/rakelib/lib/director/timer.rb +4 -1
  470. data/rakelib/lib/director/tip_provider.rb +4 -1
  471. data/rakelib/lib/director/toggle_button.rb +4 -1
  472. data/rakelib/lib/director/tool_bar.rb +20 -1
  473. data/rakelib/lib/director/tool_tip.rb +5 -2
  474. data/rakelib/lib/director/top_level_window.rb +58 -51
  475. data/rakelib/lib/director/tree_ctrl.rb +5 -2
  476. data/rakelib/lib/director/tree_event.rb +28 -10
  477. data/rakelib/lib/director/uiaction_simulator.rb +4 -1
  478. data/rakelib/lib/director/utils.rb +9 -1
  479. data/rakelib/lib/director/validator.rb +4 -1
  480. data/rakelib/lib/director/variant.rb +5 -2
  481. data/rakelib/lib/director/vlistbox.rb +4 -1
  482. data/rakelib/lib/director/vscrolled_window.rb +4 -1
  483. data/rakelib/lib/director/window.rb +81 -82
  484. data/rakelib/lib/director/window_disabler.rb +4 -1
  485. data/rakelib/lib/director/with_images.rb +5 -2
  486. data/rakelib/lib/director/wizard_page.rb +4 -1
  487. data/rakelib/lib/director/xml_node.rb +4 -1
  488. data/rakelib/lib/director/xml_resource.rb +4 -1
  489. data/rakelib/lib/director.rb +27 -28
  490. data/rakelib/lib/ext/enum_chain.rb +4 -1
  491. data/rakelib/lib/extractor/class.rb +8 -6
  492. data/rakelib/lib/extractor/enum.rb +15 -2
  493. data/rakelib/lib/extractor/function.rb +12 -4
  494. data/rakelib/lib/extractor/module.rb +4 -1
  495. data/rakelib/lib/extractor/variable.rb +4 -1
  496. data/rakelib/lib/extractor.rb +7 -2
  497. data/rakelib/lib/generate/analyzer.rb +31 -21
  498. data/rakelib/lib/generate/base.rb +4 -1
  499. data/rakelib/lib/generate/doc/grid_cell_attr.yaml +21 -0
  500. data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
  501. data/rakelib/lib/generate/doc/html_cell.yaml +11 -0
  502. data/rakelib/lib/generate/doc/html_help_controller.yaml +23 -0
  503. data/rakelib/lib/generate/doc/html_help_window.yaml +21 -0
  504. data/rakelib/lib/generate/doc/html_window.yaml +47 -0
  505. data/rakelib/lib/generate/doc/pg_editor.yaml +11 -0
  506. data/rakelib/lib/generate/doc/pg_multi_button.yaml +78 -0
  507. data/rakelib/lib/generate/doc/pg_properties.yaml +244 -0
  508. data/rakelib/lib/generate/doc/pg_property.yaml +188 -0
  509. data/rakelib/lib/generate/doc/property_grid.yaml +23 -0
  510. data/rakelib/lib/generate/doc/property_grid_interface.yaml +30 -0
  511. data/rakelib/lib/generate/doc/property_grid_manager.yaml +40 -0
  512. data/rakelib/lib/generate/doc/rich_text_html_handler.yaml +11 -0
  513. data/rakelib/lib/generate/doc/styled_text_ctrl.yaml +18 -0
  514. data/rakelib/lib/generate/doc/symbol_picker_dialog.yaml +40 -0
  515. data/rakelib/lib/generate/doc.rb +19 -3
  516. data/rakelib/lib/generate/interface.rb +79 -110
  517. data/rakelib/lib/generate/rakedep.rb +4 -1
  518. data/rakelib/lib/specs/interfaces.rb +45 -20
  519. data/rakelib/lib/streams.rb +5 -1
  520. data/rakelib/lib/swig_runner.rb +34 -22
  521. data/rakelib/lib/typemap/array_int_selections.rb +4 -1
  522. data/rakelib/lib/typemap/common.rb +57 -2
  523. data/rakelib/lib/typemap/config.rb +55 -0
  524. data/rakelib/lib/typemap/data_format.rb +4 -1
  525. data/rakelib/lib/typemap/data_object_data.rb +4 -1
  526. data/rakelib/lib/typemap/datetime.rb +8 -1
  527. data/rakelib/lib/typemap/grid_client_data.rb +4 -1
  528. data/rakelib/lib/typemap/grid_coords.rb +37 -7
  529. data/rakelib/lib/typemap/html_cell.rb +4 -1
  530. data/rakelib/lib/typemap/io_streams.rb +4 -1
  531. data/rakelib/lib/typemap/pgcell.rb +4 -1
  532. data/rakelib/lib/typemap/pgeditor.rb +4 -1
  533. data/rakelib/lib/typemap/pgprop_arg.rb +4 -1
  534. data/rakelib/lib/typemap/pgproperty.rb +4 -1
  535. data/rakelib/lib/typemap/points_list.rb +4 -1
  536. data/rakelib/lib/typemap/richtext.rb +185 -11
  537. data/rakelib/lib/typemap/tree_itemid.rb +26 -1
  538. data/rakelib/lib/util/string.rb +4 -1
  539. data/rakelib/prepost.rake +4 -1
  540. data/rakelib/prepost.rb +4 -1
  541. data/rakelib/run.rake +4 -1
  542. data/samples/aui/aui.rb +8 -3
  543. data/samples/bigdemo/bigdemo.rb +9 -2
  544. data/samples/bigdemo/run.rb +9 -2
  545. data/samples/bigdemo/utils.rb +9 -1
  546. data/samples/calendar/calendar.rb +9 -4
  547. data/samples/caret/caret.rb +8 -3
  548. data/samples/controls/books.rb +8 -2
  549. data/samples/controls/controls.rb +33 -77
  550. data/samples/controls/get_item_sample.rb +8 -2
  551. data/samples/controls/htlbox.rb +10 -3
  552. data/samples/dialogs/dialogs.rb +9 -4
  553. data/samples/dialogs/wizard.rb +8 -3
  554. data/samples/dragdrop/dragdrop.rb +8 -3
  555. data/samples/drawing/bitmap.rb +8 -3
  556. data/samples/drawing/bitmap_image.rb +8 -3
  557. data/samples/drawing/graphics_drawing.rb +44 -33
  558. data/samples/drawing/image_prt.rb +8 -2
  559. data/samples/drawing/maths_images.rb +8 -3
  560. data/samples/drawing/rmagic_bitmap_image.rb +8 -3
  561. data/samples/etc/choice.rb +8 -3
  562. data/samples/etc/miniframe.rb +8 -3
  563. data/samples/etc/sash.rb +8 -3
  564. data/samples/etc/scrollwin.rb +8 -3
  565. data/samples/etc/system_settings.rb +8 -3
  566. data/samples/event/activation.rb +8 -3
  567. data/samples/event/event.rb +8 -3
  568. data/samples/event/threaded.rb +8 -3
  569. data/samples/event/update_ui_event.rb +8 -3
  570. data/samples/grid/grid.rb +9 -3
  571. data/samples/grid/gridtablebase.rb +8 -3
  572. data/samples/html/html.rb +8 -3
  573. data/samples/mdi/mdi.rb +8 -3
  574. data/samples/minimal/minimal.rb +8 -3
  575. data/samples/minimal/nothing.rb +8 -3
  576. data/samples/printing/printing.rb +8 -3
  577. data/samples/printing/printing2.rb +8 -2
  578. data/samples/propgrid/propgrid.rb +4 -1
  579. data/samples/propgrid/propgrid_minimal.rb +4 -2
  580. data/samples/propgrid/sample_props.rb +4 -1
  581. data/samples/ribbon/ribbon.rb +4 -1
  582. data/samples/sampler/editor.rb +4 -1
  583. data/samples/sampler/ext.rb +4 -1
  584. data/samples/sampler/sample.rb +13 -4
  585. data/samples/sampler/stc_editor.rb +4 -1
  586. data/samples/sampler/txt_editor.rb +4 -1
  587. data/samples/sampler.rb +11 -3
  588. data/samples/splash/splash.rb +4 -2
  589. data/samples/text/art/richtext/alignleft.xpm +24 -0
  590. data/samples/text/art/richtext/alignright.xpm +24 -0
  591. data/samples/text/art/richtext/bold.xpm +24 -0
  592. data/samples/text/art/richtext/centre.xpm +24 -0
  593. data/samples/text/art/richtext/copy.xpm +45 -0
  594. data/samples/text/art/richtext/cut.xpm +47 -0
  595. data/samples/text/art/richtext/font.xpm +25 -0
  596. data/samples/text/art/richtext/idea.xpm +47 -0
  597. data/samples/text/art/richtext/indentless.xpm +25 -0
  598. data/samples/text/art/richtext/indentmore.xpm +25 -0
  599. data/samples/text/art/richtext/italic.xpm +25 -0
  600. data/samples/text/art/richtext/open.xpm +58 -0
  601. data/samples/text/art/richtext/paste.xpm +47 -0
  602. data/samples/text/art/richtext/redo.xpm +59 -0
  603. data/samples/text/art/richtext/save.xpm +43 -0
  604. data/samples/text/art/richtext/smiley.xpm +42 -0
  605. data/samples/text/art/richtext/underline.xpm +25 -0
  606. data/samples/text/art/richtext/undo.xpm +59 -0
  607. data/samples/text/art/richtext/zebra.xpm +409 -0
  608. data/samples/text/rich_textctrl.rb +8 -3
  609. data/samples/text/richtext.rb +1824 -0
  610. data/samples/text/scintilla.rb +8 -3
  611. data/samples/text/textctrl.rb +21 -4
  612. data/samples/text/tn_richtext.png +0 -0
  613. data/samples/text/unicode.rb +9 -4
  614. data/samples/treectrl/treectrl.rb +10 -5
  615. data/samples/xrc/custom_xrc_sample.rb +8 -3
  616. data/samples/xrc/xrc_sample.rb +8 -3
  617. data/tests/art/test_art/bitmap/wxruby-128x128.png +0 -0
  618. data/tests/art/test_art/bitmap/wxruby-256x256.png +0 -0
  619. data/tests/art/test_art/bitmap/wxruby-64x64.png +0 -0
  620. data/tests/lib/item_container_tests.rb +3 -0
  621. data/tests/lib/text_entry_tests.rb +3 -0
  622. data/tests/lib/wxapp_runner.rb +3 -0
  623. data/tests/lib/wxframe_runner.rb +81 -3
  624. data/tests/test_app_event_filter.rb +3 -0
  625. data/tests/test_app_traits.rb +33 -0
  626. data/tests/test_art.rb +22 -0
  627. data/tests/test_art_provider.rb +3 -0
  628. data/tests/test_aui.rb +65 -0
  629. data/tests/test_basic.rb +5 -1
  630. data/tests/test_box_sizer.rb +5 -2
  631. data/tests/test_clipboard.rb +3 -0
  632. data/tests/test_config.rb +150 -0
  633. data/tests/test_dc.rb +3 -0
  634. data/tests/test_dialog.rb +3 -0
  635. data/tests/test_event_handling.rb +3 -0
  636. data/tests/test_events.rb +3 -0
  637. data/tests/test_ext_controls.rb +286 -3
  638. data/tests/test_file_dialog.rb +55 -0
  639. data/tests/test_font.rb +8 -5
  640. data/tests/test_gdi_object.rb +3 -0
  641. data/tests/test_geometry.rb +4 -0
  642. data/tests/test_grid_sizer.rb +7 -4
  643. data/tests/test_intl.rb +3 -0
  644. data/tests/test_item_data.rb +3 -0
  645. data/tests/test_list_ctrl.rb +4 -1
  646. data/tests/test_log.rb +63 -0
  647. data/tests/test_proof_check.rb +52 -0
  648. data/tests/test_richtext.rb +204 -0
  649. data/tests/test_std_controls.rb +45 -35
  650. data/tests/test_timer.rb +3 -0
  651. data/tests/test_variant.rb +3 -0
  652. data/tests/test_window.rb +10 -8
  653. data/tests/testapp.rb +4 -0
  654. data/tests/testapp_noframe.rb +4 -0
  655. metadata +89 -3
  656. data/rakelib/lib/director/html_help_frame.rb +0 -25
@@ -1,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 SWIG interface definition Generator class
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require 'monitor'
@@ -14,8 +17,6 @@ module WXRuby3
14
17
 
15
18
  def initialize(dir)
16
19
  super
17
- # select all typemaps that have an ignored out map
18
- @typemaps_with_ignored_out = type_maps.select { |tm| tm.ignores_output? }
19
20
  end
20
21
 
21
22
  def gen_swig_header(fout)
@@ -165,14 +166,14 @@ module WXRuby3
165
166
  def_classes.each do |cls|
166
167
  if !cls.ignored && !cls.is_template?
167
168
  unless is_folded_base?(cls.name)
168
- fout.puts "%feature(\"nodirector\") #{class_name(cls)};"
169
+ fout.puts "%feature(\"nodirector\") #{class_name(cls)}; /* disabled_proxies */"
169
170
  end
170
171
  end
171
172
  end
172
173
  else
173
174
  def_classes.each do |cls|
174
- unless cls.ignored || cls.is_template? || has_virtuals?(cls) || forced_proxy?(cls.name)
175
- fout.puts "%feature(\"nodirector\") #{class_name(cls)};"
175
+ unless cls.ignored || cls.is_template? || has_virtuals?(cls) || inherits_virtuals?(cls) || forced_proxy?(cls.name)
176
+ fout.puts "%feature(\"nodirector\") #{class_name(cls)}; /* no-virtuals */ "
176
177
  end
177
178
  if forced_proxy?(cls.name) && !cls.ignored && !cls.is_template?
178
179
  fout.puts "%feature(\"notabstract\") #{class_name(cls)};"
@@ -182,7 +183,7 @@ module WXRuby3
182
183
  unless no_proxies.empty?
183
184
  fout.puts
184
185
  no_proxies.each do |name|
185
- fout.puts "%feature(\"nodirector\") #{name};"
186
+ fout.puts "%feature(\"nodirector\") #{name}; /* no-proxy */"
186
187
  end
187
188
  end
188
189
  unless renames.empty?
@@ -406,9 +407,7 @@ module WXRuby3
406
407
  fout.indent { gen_inner_class(fout, member) }
407
408
  when Extractor::MethodDef
408
409
  if member.is_ctor
409
- gen_only_for(fout, member) do
410
- fout.puts " #{class_name(classdef)}#{member.args_string};"
411
- end
410
+ fout.puts " #{class_name(classdef)}#{member.args_string};"
412
411
  elsif member.is_dtor
413
412
  unless is_abstract?(classdef)
414
413
  dtor_sig = "~#{class_name(classdef)}()"
@@ -420,12 +419,10 @@ module WXRuby3
420
419
  when Extractor::EnumDef
421
420
  gen_interface_enum(fout, member, classdef)
422
421
  when Extractor::MemberVarDef
423
- gen_only_for(fout, member) do
424
- fout.puts " // from #{member.definition}"
425
- fout.puts ' %immutable;' if member.no_setter
426
- fout.puts " #{member.is_static ? 'static ' : ''}#{member.type} #{member.name};"
427
- fout.puts ' %mutable;' if member.no_setter
428
- end
422
+ fout.puts " // from #{member.definition}"
423
+ fout.puts ' %immutable;' if member.no_setter
424
+ fout.puts " #{member.is_static ? 'static ' : ''}#{member.type} #{member.name};"
425
+ fout.puts ' %mutable;' if member.no_setter
429
426
  when ::String
430
427
  fout.indent do
431
428
  fout.puts '// custom wxRuby extension'
@@ -455,15 +452,11 @@ module WXRuby3
455
452
  if member.is_ctor
456
453
  if member.protection == 'public'
457
454
  if !member.ignored && !member.deprecated
458
- gen_only_for(fout, member) do
459
- fout.puts " #{classdef.name}#{member.args_string};"
460
- end
455
+ fout.puts " #{classdef.name}#{member.args_string};"
461
456
  end
462
457
  member.overloads.each do |ovl|
463
458
  if ovl.protection == 'public' && !ovl.ignored && !ovl.deprecated
464
- gen_only_for(fout, ovl) do
465
- fout.puts " #{classdef.name}#{ovl.args_string};"
466
- end
459
+ fout.puts " #{classdef.name}#{ovl.args_string};"
467
460
  end
468
461
  end
469
462
  end
@@ -486,12 +479,10 @@ module WXRuby3
486
479
  end
487
480
  when Extractor::MemberVarDef
488
481
  if member.protection == 'public' && !member.ignored && !member.deprecated
489
- gen_only_for(fout, member) do
490
- fout.puts " // from #{member.definition}"
491
- fout.puts ' %immutable;' if member.no_setter
492
- fout.puts " #{member.is_static ? 'static ' : ''}#{member.type} #{member.name};"
493
- fout.puts ' %mutable;' if member.no_setter
494
- end
482
+ fout.puts " // from #{member.definition}"
483
+ fout.puts ' %immutable;' if member.no_setter
484
+ fout.puts " #{member.is_static ? 'static ' : ''}#{member.type} #{member.name};"
485
+ fout.puts ' %mutable;' if member.no_setter
495
486
  end
496
487
  end
497
488
  end
@@ -503,41 +494,36 @@ module WXRuby3
503
494
  mtd_type = methoddef.type
504
495
  no_output = false
505
496
  # check if this method matches a type map with ignored out defs
506
- if type_map = @typemaps_with_ignored_out.detect { |tm| tm.matches?(methoddef) }
507
- mtd_type = Typemap.rb_void_type(mtd_type) if (no_output = type_map.ignored_output.include?(mtd_type))
497
+ unless methoddef.parameters.empty?
498
+ # find matching type maps for arguments (if any)
499
+ _, _, matched_maps = type_maps.map_input(methoddef.parameters.dup)
500
+ # check if any of these specify to ignore the C output
501
+ mtd_type = Typemap.rb_void_type(mtd_type) if (no_output = matched_maps.any? { |map| map.ignores_output?(mtd_type) })
508
502
  end
509
503
  # generate method declaration
510
- gen_only_for(fout, methoddef) do
511
- fout.puts " // from #{methoddef.definition}"
512
- fout.puts %Q[ %feature("numoutputs", "0") #{methoddef.name};] if no_output
513
- mdecl = methoddef.is_static ? 'static ' : ''
514
- mdecl << 'virtual ' if methoddef.is_virtual
515
- purespec = (requires_purevirtual && methoddef.is_pure_virtual) ? ' =0' : ''
516
- fout.puts " #{mdecl}#{mtd_type} #{methoddef.name}#{methoddef.args_string}#{purespec};"
517
- end
504
+ fout.puts " // from #{methoddef.definition}"
505
+ fout.puts %Q[ %feature("numoutputs", "0") #{methoddef.name};] if no_output
506
+ mdecl = methoddef.is_static ? 'static ' : ''
507
+ mdecl << 'virtual ' if methoddef.is_virtual
508
+ purespec = (requires_purevirtual && methoddef.is_pure_virtual) ? ' =0' : ''
509
+ fout.puts " #{mdecl}#{mtd_type} #{methoddef.name}#{methoddef.args_string}#{purespec};"
518
510
  end
519
511
 
520
512
  def gen_interface_enum(fout, member, classdef)
521
- gen_only_for(fout, member) do
522
- fout.puts " // from #{classdef.name}::#{member.name}"
523
- fout.puts " enum #{member.is_anonymous ? '' : member.name} {"
524
- enum_size = member.items.size
525
- member.items.each_with_index do |e, i|
526
- gen_only_for(fout, e) do
527
- fout.puts " #{e.name}#{(i+1)<enum_size ? ',' : ''}"
528
- end unless e.ignored
529
- end
530
- fout.puts " };"
513
+ fout.puts " // from #{classdef.name}::#{member.name}"
514
+ fout.puts " enum #{member.is_anonymous ? '' : member.name} {"
515
+ enum_size = member.items.size
516
+ member.items.each_with_index do |e, i|
517
+ fout.puts " #{e.name}#{(i+1)<enum_size ? ',' : ''}" unless e.ignored
531
518
  end
519
+ fout.puts " };"
532
520
  end
533
521
 
534
522
  def gen_typedefs(fout)
535
523
  typedefs = def_items.select {|item| Extractor::TypedefDef === item && !item.ignored }
536
524
  typedefs.each do |item|
537
525
  fout.puts
538
- gen_only_for(fout, item) do
539
- fout.puts "#{item.definition};"
540
- end
526
+ fout.puts "#{item.definition};"
541
527
  end
542
528
  fout.puts '' unless typedefs.empty?
543
529
  end
@@ -546,14 +532,12 @@ module WXRuby3
546
532
  vars = def_items.select {|item| Extractor::GlobalVarDef === item && !item.ignored }
547
533
  vars.each do |item|
548
534
  fout.puts
549
- gen_only_for(fout, item) do
550
- wx_pfx = item.name.start_with?('wx') ? 'wx' : ''
551
- const_name = underscore!(rb_wx_name(item.name))
552
- const_type = item.type
553
- const_type += '*' if const_type.index('char') && item.args_string == '[]'
554
- const_type.sub!(/constexpr\s+/, '') # remove any 'constexpr ' type modifiers
555
- fout.puts "%constant #{const_type} #{wx_pfx}#{const_name.upcase} = #{item.name.rstrip};"
556
- end
535
+ wx_pfx = item.name.start_with?('wx') ? 'wx' : ''
536
+ const_name = underscore!(rb_wx_name(item.name))
537
+ const_type = item.type
538
+ const_type += '*' if const_type.index('char') && item.args_string == '[]'
539
+ const_type.sub!(/constexpr\s+/, '') # remove any 'constexpr ' type modifiers
540
+ fout.puts "%constant #{const_type} #{wx_pfx}#{const_name.upcase} = #{item.name.rstrip};"
557
541
  end
558
542
  fout.puts '' unless vars.empty?
559
543
  end
@@ -566,9 +550,7 @@ module WXRuby3
566
550
  fout.puts "enum #{item.name};" unless item.is_anonymous
567
551
  item.items.each do |e|
568
552
  unless e.ignored
569
- gen_only_for(fout, e) do
570
- fout.puts "%constant int #{e.name} = #{e.fqn};"
571
- end
553
+ fout.puts "%constant int #{e.name} = #{e.fqn};"
572
554
  end
573
555
  end
574
556
  end
@@ -597,37 +579,35 @@ module WXRuby3
597
579
  Extractor::DefineDef === item && !item.ignored && !item.is_macro? && item.value && !item.value.empty?
598
580
  }
599
581
  defines.each do |item|
600
- gen_only_for(fout, item) do
601
- if item.value =~ /\A\d/
602
- fout.puts
603
- fout.puts "#define #{item.name} #{item.value}"
604
- elsif item.value.start_with?('"')
605
- fout.puts
606
- fout.puts "%constant char* #{item.name} = #{item.value};"
607
- elsif item.value =~ /(wxString|wxS)\((".*")\)/
608
- fout.puts
609
- fout.puts "%constant char* #{item.name} = #{$2};"
610
- elsif item.value =~ /wx(Size|Point)(\(.*\))/
611
- frbext = init_rb_ext_file unless frbext
612
- frbext.indent { frbext.puts "#{rb_wx_name(item.name)} = Wx::#{$1}.new#{$2}" }
613
- frbext.puts
614
- elsif item.value =~ /wx(Colour|Font)(\(.*\))/
615
- frbext = init_rb_ext_file unless frbext
616
- frbext.indent do
617
- frbext.puts "Wx.add_delayed_constant(self, :#{rb_wx_name(item.name)}) { Wx::#{$1}.new#{$2} }"
618
- end
619
- frbext.puts
620
- elsif item.value =~ /wxSystemSettings::(\w+)\((.*)\)/
621
- frbext = init_rb_ext_file unless frbext
622
- args = $2.split(',').collect {|a| rb_constant_value(a) }.join(', ')
623
- frbext.indent do
624
- frbext.puts "Wx.add_delayed_constant(self, :#{rb_wx_name(item.name)}) { Wx::SystemSettings.#{rb_method_name($1)}(#{args}) }"
625
- end
626
- frbext.puts
627
- else
628
- fout.puts
629
- fout.puts "%constant int #{item.name} = #{item.value};"
582
+ if item.value =~ /\A\d/
583
+ fout.puts
584
+ fout.puts "#define #{item.name} #{item.value}"
585
+ elsif item.value.start_with?('"')
586
+ fout.puts
587
+ fout.puts "%constant char* #{item.name} = #{item.value};"
588
+ elsif item.value =~ /(wxString|wxS)\((".*")\)/
589
+ fout.puts
590
+ fout.puts "%constant char* #{item.name} = #{$2};"
591
+ elsif item.value =~ /wx(Size|Point)(\(.*\))/
592
+ frbext = init_rb_ext_file unless frbext
593
+ frbext.indent { frbext.puts "#{rb_wx_name(item.name)} = Wx::#{$1}.new#{$2}" }
594
+ frbext.puts
595
+ elsif item.value =~ /wx(Colour|Font)(\(.*\))/
596
+ frbext = init_rb_ext_file unless frbext
597
+ frbext.indent do
598
+ frbext.puts "Wx.add_delayed_constant(self, :#{rb_wx_name(item.name)}) { Wx::#{$1}.new#{$2} }"
630
599
  end
600
+ frbext.puts
601
+ elsif item.value =~ /wxSystemSettings::(\w+)\((.*)\)/
602
+ frbext = init_rb_ext_file unless frbext
603
+ args = $2.split(',').collect {|a| rb_constant_value(a) }.join(', ')
604
+ frbext.indent do
605
+ frbext.puts "Wx.add_delayed_constant(self, :#{rb_wx_name(item.name)}) { Wx::SystemSettings.#{rb_method_name($1)}(#{args}) }"
606
+ end
607
+ frbext.puts
608
+ else
609
+ fout.puts
610
+ fout.puts "%constant int #{item.name} = #{item.value};"
631
611
  end
632
612
  end
633
613
  if frbext
@@ -646,30 +626,19 @@ module WXRuby3
646
626
  fn_type = ovl.type
647
627
  no_output = false
648
628
  # check if this method matches a type map with ignored out defs
649
- if type_map = @typemaps_with_ignored_out.detect { |tm| tm.matches?(ovl) }
650
- fn_type = Typemap.rb_void_type(fn_type) if (no_output = type_map.ignored.include?(fn_type))
651
- end
652
- gen_only_for(fout, ovl) do
653
- fout.puts %Q[ %feature("numoutputs", "0") #{ovl.name};] if no_output
654
- fout.puts "#{fn_type} #{ovl.name}#{ovl.args_string};"
629
+ unless ovl.parameters.empty?
630
+ # find matching type maps for arguments (if any)
631
+ _, _, matched_maps = type_maps.map_input(ovl.parameters.dup)
632
+ # check if any of these specify to ignore the C output
633
+ fn_type = Typemap.rb_void_type(fn_type) if (no_output = matched_maps.any? { |map| map.ignores_output?(fn_type) })
655
634
  end
635
+ fout.puts %Q[ %feature("numoutputs", "0") #{ovl.name};] if no_output
636
+ fout.puts "#{fn_type} #{ovl.name}#{ovl.args_string};"
656
637
  end
657
638
  end
658
639
  fout.puts '' unless functions.empty?
659
640
  end
660
641
 
661
- def gen_only_for(fout, item, &block)
662
- if item.only_for
663
- if ::Array === item.only_for
664
- fout.puts "#if #{item.only_for.collect { |s| "defined(#{s})" }.join(' || ')}"
665
- else
666
- fout.puts "#ifdef #{item.only_for}"
667
- end
668
- end
669
- block.call
670
- fout.puts "#endif" if item.only_for
671
- end
672
-
673
642
  def gen_swig_interface_specs(fout)
674
643
  gen_swig_header(fout)
675
644
 
@@ -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 Rake dependency file Generator class
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './base'
@@ -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 generation specs
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -19,6 +22,8 @@ module WXRuby3
19
22
  Director.Spec(pkg, 'wxEventFilter')
20
23
  Director.Spec(pkg, 'wxGUIEventLoop')
21
24
  Director.Spec(pkg, 'wxApp')
25
+ Director.Spec(pkg, 'wxAppTraits')
26
+ Director.Spec(pkg, 'wxConfigBase')
22
27
  Director.Spec(pkg, 'wxDC')
23
28
  Director.Spec(pkg, 'wxWindowDC', director: Director::DerivedDC)
24
29
  Director.Spec(pkg, 'wxClientDC', director: Director::DerivedDC)
@@ -60,6 +65,7 @@ module WXRuby3
60
65
  Director.Spec(pkg, 'wxSizerItem')
61
66
  Director.Spec(pkg, 'wxSizer')
62
67
  Director.Spec(pkg, 'wxBoxSizer', director: Director::Sizer)
68
+ Director.Spec(pkg, 'wxWrapSizer', director: Director::Sizer)
63
69
  Director.Spec(pkg, 'wxControl')
64
70
  Director.Spec(pkg, 'wxStatusBar', requirements: %w[wxUSE_STATUSBAR])
65
71
  Director.Spec(pkg, 'wxTextEntry')
@@ -72,6 +78,7 @@ module WXRuby3
72
78
  Director.Spec(pkg, 'wxControlWithItems')
73
79
  Director.Spec(pkg, 'wxComboBox')
74
80
  Director.Spec(pkg, 'wxBitmapComboBox')
81
+ Director.Spec(pkg, 'wxComboCtrl')
75
82
  Director.Spec(pkg, 'wxRadioBox')
76
83
  Director.Spec(pkg, 'wxPanel')
77
84
  Director.Spec(pkg, 'wxWithImages')
@@ -93,8 +100,11 @@ module WXRuby3
93
100
  Director.Spec(pkg, 'wxSpinButton', director: Director::Window, requirements: %w[wxUSE_SPINBTN])
94
101
  Director.Spec(pkg, 'wxSpinEvent', director: Director::Event, requirements: Director.AnyOf(*%w[wxUSE_SPINBTN wxUSE_SPINCTRL]))
95
102
  Director.Spec(pkg, 'wxSpinCtrl', director: Director::Window, requirements: %w[wxUSE_SPINCTRL])
103
+ Director.Spec(pkg, 'wxSpinCtrlDouble', director: Director::Window, requirements: %w[wxUSE_SPINBTN]).spec.do_not_generate(:enums, :variables, :defines)
104
+ Director.Spec(pkg, 'wxSpinDoubleEvent', director: Director::Event, requirements: %w[wxUSE_SPINBTN]).spec.do_not_generate(:enums, :variables, :defines)
96
105
  Director.Spec(pkg, 'wxStaticBitmap')
97
106
  Director.Spec(pkg, 'wxBitmapButton', director: Director::Button)
107
+ Director.Spec(pkg, 'wxCommandLinkButton', director: Director::Button)
98
108
  Director.Spec(pkg, 'wxArtProvider')
99
109
  Director.Spec(pkg, 'wxStaticBoxSizer', director: Director::Sizer)
100
110
  Director.Spec(pkg, 'wxStdDialogButtonSizer', director: Director::Sizer)
@@ -138,6 +148,8 @@ module WXRuby3
138
148
  Director.Spec(pkg, 'wxTipProvider')
139
149
  Director.Spec(pkg, 'wxDirDialog', director: Director::Dialog, requirements: %w[wxUSE_DIRDLG])
140
150
  Director.Spec(pkg, 'wxFileDialog', director: Director::Dialog, requirements: %w[wxUSE_FILEDLG])
151
+ Director.Spec(pkg, 'wxFileDialogCustomizeHook', requirements: %w[wxUSE_FILEDLG])
152
+ Director.Spec(pkg, 'wxFileDialogCustomControl', requirements: %w[wxUSE_FILEDLG])
141
153
  Director.Spec(pkg, 'wxFileDirPickerEvent', director: Director::Event, requirements: Director.AnyOf(%w[wxUSE_DIRDLG wxUSE_DIRPICKERCTRL], %w[wxUSE_FILEDLG wxUSE_FILEPICKERCTRL]))
142
154
  Director.Spec(pkg, 'wxDirPickerCtrl', requirements: %w[wxUSE_DIRDLG wxUSE_DIRPICKERCTRL])
143
155
  Director.Spec(pkg, 'wxFilePickerCtrl', requirements: %w[wxUSE_FILEDLG wxUSE_FILEPICKERCTRL])
@@ -146,6 +158,8 @@ module WXRuby3
146
158
  Director.Spec(pkg, 'wxBusyInfo', requirements: %w[wxUSE_BUSYINFO])
147
159
  Director.Spec(pkg, 'wxListCtrl', requirements: %w[wxUSE_LISTCTRL])
148
160
  Director.Spec(pkg, 'wxListEvent', director: Director::Event, requirements: %w[wxUSE_LISTCTRL])
161
+ Director.Spec(pkg, 'wxHeaderCtrl')
162
+ Director.Spec(pkg, 'wxHeaderCtrlEvent', director: Director::Event)
149
163
  Director.Spec(pkg, 'wxGridSizer', director: Director::Sizer)
150
164
  Director.Spec(pkg, 'wxFlexGridSizer', director: Director::Sizer)
151
165
  Director.Spec(pkg, 'wxGBSizerItem', director: Director::SizerItem)
@@ -173,6 +187,8 @@ module WXRuby3
173
187
  Director.Spec(pkg, 'wxWizardPageSimple', director: Director::WizardPage, requirements: %w[wxUSE_WIZARDDLG])
174
188
  Director.Spec(pkg, 'wxWizard', director: Director::Dialog, requirements: %w[wxUSE_WIZARDDLG])
175
189
  Director.Spec(pkg, 'wxCheckListBox', requirements: %w[wxUSE_CHECKLISTBOX])
190
+ Director.Spec(pkg, 'wxRearrangeList', requirements: %w[wxUSE_CHECKLISTBOX])
191
+ Director.Spec(pkg, 'wxRearrangeCtrl', director: Director::Window, requirements: %w[wxUSE_CHECKLISTBOX])
176
192
  Director.Spec(pkg, 'wxDataFormat', requirements: %w[wxUSE_CLIPBOARD])
177
193
  Director.Spec(pkg, 'wxDataObject', requirements: %w[wxUSE_CLIPBOARD])
178
194
  Director.Spec(pkg, 'wxDataObjectSimpleBase', requirements: %w[wxUSE_CLIPBOARD])
@@ -202,8 +218,11 @@ module WXRuby3
202
218
  Director.Spec(pkg, 'wxSplashScreen', requirements: %w[wxUSE_SPLASH])
203
219
  Director.Spec(pkg, 'wxUIActionSimulator', requirements: %w[wxUSE_UIACTIONSIMULATOR])
204
220
  Director.Spec(pkg, 'wxActivityIndicator', director: Director::Window, requirements: %w[wxUSE_ACTIVITYINDICATOR])
205
- Director.Spec(pkg, 'wxHyperlinkCtrl', director: Director::Window, requirements: %w[wxUSE_HYPERLINKCTRL])
221
+ Director.Spec(pkg, 'wxHyperlinkCtrl', requirements: %w[wxUSE_HYPERLINKCTRL])
206
222
  Director.Spec(pkg, 'wxHyperlinkEvent', requirements: %w[wxUSE_HYPERLINKCTRL])
223
+ Director.Spec(pkg, 'wxBannerWindow', requirements: %w[wxUSE_BANNERWINDOW])
224
+ Director.Spec(pkg, 'wxInfoBar', requirements: %w[wxUSE_INFOBAR])
225
+ Director.Spec(pkg, 'wxFileSystem', requirements: %w[wxUSE_FILESYSTEM])
207
226
  }
208
227
 
209
228
  Director.Package('Wx::PRT', 'wxUSE_PRINTING_ARCHITECTURE') do |pkg|
@@ -217,7 +236,26 @@ module WXRuby3
217
236
  Director.Spec(pkg, 'wxPrinter')
218
237
  end
219
238
 
220
- Director.Package('Wx::RTC', 'wxUSE_RICHTEXT') { |pkg|
239
+ Director.Package('Wx::HTML', 'wxUSE_HTML') { |pkg|
240
+ Director.Spec(pkg, 'wxHtmlWindow')
241
+ Director.Spec(pkg, 'wxHtmlHelpData', requirements: %w[wxUSE_HELP])
242
+ Director.Spec(pkg, 'wxHtmlHelpWindow', requirements: %w[wxUSE_HELP])
243
+ Director.Spec(pkg, 'wxHtmlCellEvent', director: Director::HtmlEvent)
244
+ Director.Spec(pkg, 'wxHtmlLinkEvent', director: Director::HtmlEvent)
245
+ Director.Spec(pkg, 'wxHtmlHelpController', director: Director::HelpController, requirements: %w[wxUSE_HELP])
246
+ Director.Spec(pkg, 'wxHtmlCell')
247
+ Director.Spec(pkg, 'wxHtmlEasyPrinting', requirements: %w[wxUSE_PRINTING_ARCHITECTURE])
248
+ Director.Spec(pkg, 'wxHtmlPrintout', requirements: %w[wxUSE_PRINTING_ARCHITECTURE])
249
+ Director.Spec(pkg, 'wxHtmlListBox')
250
+ Director.Spec(pkg, 'wxHTMLDataObject') if Config.instance.wx_version >= '3.3'
251
+ }
252
+
253
+ Director.Package('Wx::RTC', 'wxUSE_RICHTEXT', depends_on: ['Wx::HTML']) { |pkg|
254
+ Director.Spec(pkg, 'wxRichTextObject')
255
+ Director.Spec(pkg, 'wxRichTextImage')
256
+ Director.Spec(pkg, 'wxRichTextCompositeObject')
257
+ Director.Spec(pkg, 'wxRichTextParagraphLayoutBox')
258
+ Director.Spec(pkg, 'wxRichTextBox')
221
259
  Director.Spec(pkg, 'wxRichTextEvent')
222
260
  Director.Spec(pkg, 'wxRichTextBuffer')
223
261
  Director.Spec(pkg, 'wxRichTextCtrl')
@@ -227,8 +265,10 @@ module WXRuby3
227
265
  Director.Spec(pkg, 'wxRichTextHeaderFooterData', requirements: %w[wxUSE_PRINTING_ARCHITECTURE])
228
266
  Director.Spec(pkg, 'wxRichTextPrinting', requirements: %w[wxUSE_PRINTING_ARCHITECTURE])
229
267
  Director.Spec(pkg, 'wxSymbolPickerDialog', director: Director::Dialog)
230
- # need to look into special needs
231
- # Director.Spec(pkg, 'wxRichTextBufferDataObject')
268
+ Director.Spec(pkg, 'wxRichTextFormattingDialog')
269
+ Director.Spec(pkg, 'wxRichTextStyleOrganiserDialog')
270
+ Director.Spec(pkg, 'wxRichTextStyleListBox')
271
+ Director.Spec(pkg, 'wxRichTextBufferDataObject')
232
272
  }
233
273
 
234
274
  Director.Package('Wx::STC', 'wxUSE_STC') { |pkg|
@@ -267,21 +307,6 @@ module WXRuby3
267
307
  Director.Spec(pkg, 'wxGridCtrl')
268
308
  }
269
309
 
270
- Director.Package('Wx::HTML', 'wxUSE_HTML') { |pkg|
271
- Director.Spec(pkg, 'wxHtmlWindow')
272
- Director.Spec(pkg, 'wxHtmlHelpData')
273
- Director.Spec(pkg, 'wxHtmlHelpWindow', director: Director::Window)
274
- Director.Spec(pkg, 'wxHtmlHelpFrame')
275
- Director.Spec(pkg, 'wxHtmlCellEvent', director: Director::HtmlEvent)
276
- Director.Spec(pkg, 'wxHtmlLinkEvent', director: Director::HtmlEvent)
277
- Director.Spec(pkg, 'wxHtmlHelpController', director: Director::HelpController, requirements: %w[wxUSE_HELP])
278
- Director.Spec(pkg, 'wxHtmlCell')
279
- Director.Spec(pkg, 'wxHtmlEasyPrinting', requirements: %w[wxUSE_PRINTING_ARCHITECTURE])
280
- Director.Spec(pkg, 'wxHtmlPrintout', requirements: %w[wxUSE_PRINTING_ARCHITECTURE])
281
- Director.Spec(pkg, 'wxHtmlListBox')
282
- Director.Spec(pkg, 'wxHTMLDataObject') if Config.instance.wx_version >= '3.3'
283
- }
284
-
285
310
  Director.Package('Wx::AUI', 'wxUSE_AUI') { |pkg|
286
311
  Director.Spec(pkg, 'wxAuiPaneInfo')
287
312
  Director.Spec(pkg, 'wxAuiManagerEvent')
@@ -1,7 +1,11 @@
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 buildtools configuration
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
8
+
5
9
  require 'tempfile'
6
10
  require 'fileutils'
7
11
 
@@ -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 SWIG code generation runner
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require 'fileutils'
@@ -255,10 +258,10 @@ module WXRuby3
255
258
  def_items.each do |item|
256
259
  case item
257
260
  when Extractor::EnumDef
258
- item.items.each { |e| enumerators[rb_wx_name(e.name)] = rb_wx_name(item.name) } if item.is_type
261
+ item.items.each { |e| enumerators[rb_wx_name(e.name)] = item } if item.is_type
259
262
  when Extractor::ClassDef
260
263
  item.items.select { |itm| Extractor::EnumDef === itm }.each do |enum|
261
- enum.items.each { |e| enumerators[rb_wx_name(e.name)] = rb_wx_name(enum.name) } if enum.is_type
264
+ enum.items.each { |e| enumerators[rb_wx_name(e.name)] = enum } if enum.is_type
262
265
  end
263
266
  end
264
267
  end
@@ -276,7 +279,7 @@ module WXRuby3
276
279
  brace_level = 0
277
280
 
278
281
  fix_enum = false
279
- enum_name = nil
282
+ enum_item = nil
280
283
 
281
284
  found_init = false
282
285
 
@@ -327,9 +330,9 @@ module WXRuby3
327
330
  # at the top of our Init_ function, make sure we only initialize
328
331
  # ourselves once
329
332
  if /void\s+Init_(wx|Wx)#{core_name}\(/ =~ line
330
- line += "static bool initialized;\n"
331
- line += "if(initialized) return;\n"
332
- line += "initialized = true;\n"
333
+ line += "\n static bool initialized;\n"
334
+ line += " if(initialized) return;\n"
335
+ line += " initialized = true;\n"
333
336
  found_init = true # switch to init fixes
334
337
  end
335
338
 
@@ -375,38 +378,47 @@ module WXRuby3
375
378
  # have we reached the first of a known enum?
376
379
  if enum_table.has_key?(md[2])
377
380
  fix_enum = true
378
- enum_name = enum_table[md[2]]
381
+ enum_item = enum_table[md[2]]
382
+ enum_name = rb_wx_name(enum_item.name)
383
+ enum_id = enum_item.scope.empty? ? enum_name : "#{rb_wx_name(enum_item.scope)}::#{enum_name}"
384
+ enum_var = enum_id.gsub('::', '_')
379
385
  line = [
380
386
  '',
381
- # create new enum class
382
- " VALUE cWx#{enum_name} = wxRuby_CreateEnumClass(\"#{enum_name}\"); // Inserted by fixmodule.rb",
383
- # add enum class constant to current module
384
- " rb_define_const(#{md[1]}, \"#{enum_name}\", cWx#{enum_name}); // Inserted by fixmodule.rb",
387
+ # create new enum class (use scoped id)
388
+ " VALUE cWx#{enum_var} = wxRuby_CreateEnumClass(\"#{enum_id}\"); // Inserted by fixmodule.rb",
389
+ # add enum class constant to current module (use unscoped name)
390
+ " rb_define_const(#{md[1]}, \"#{enum_name}\", cWx#{enum_var}); // Inserted by fixmodule.rb",
385
391
  # create enumerator value const under new enum class
386
- " wxRuby_AddEnumValue(cWx#{enum_name}, \"#{md[2]}\"#{md[3]} // Updated by fixmodule.rb"
392
+ " wxRuby_AddEnumValue(cWx#{enum_var}, \"#{md[2]}\"#{md[3]} // Updated by fixmodule.rb"
387
393
  ].join("\n")
388
394
  end
389
395
  else
390
396
  # still an enumerator?
391
397
  if enum_table.has_key?(md[2])
392
398
  # of the same enum?
393
- if enum_table[md[2]] == enum_name
399
+ if enum_item && enum_table[md[2]] == enum_item
400
+ enum_name = rb_wx_name(enum_item.name)
401
+ enum_id = enum_item.scope.empty? ? enum_name : "#{rb_wx_name(enum_item.scope)}::#{enum_name}"
402
+ enum_var = enum_id.gsub('::', '_')
394
403
  # create enumerator value const under new enum class
395
- line = " wxRuby_AddEnumValue(cWx#{enum_name}, \"#{md[2]}\"#{md[3]} // Updated by fixmodule.rb"
404
+ line = " wxRuby_AddEnumValue(cWx#{enum_var}, \"#{md[2]}\"#{md[3]} // Updated by fixmodule.rb"
396
405
  else # we found the start of another enum
397
- enum_name = enum_table[md[2]]
406
+ enum_item = enum_table[md[2]]
407
+ enum_name = rb_wx_name(enum_item.name)
408
+ enum_id = enum_item.scope.empty? ? enum_name : "#{rb_wx_name(enum_item.scope)}::#{enum_name}"
409
+ enum_var = enum_id.gsub('::', '_')
398
410
  line = [
399
411
  '',
400
- # create new enum class
401
- " VALUE cWx#{enum_name} = wxRuby_CreateEnumClass(\"#{enum_name}\"); // Inserted by fixmodule.rb",
402
- # add enum class constant to current module
403
- " rb_define_const(#{md[1]}, \"#{enum_name}\", cWx#{enum_name}); // Inserted by fixmodule.rb",
412
+ # create new enum class (use scoped id)
413
+ " VALUE cWx#{enum_var} = wxRuby_CreateEnumClass(\"#{enum_id}\"); // Inserted by fixmodule.rb",
414
+ # add enum class constant to current module (use unscoped name)
415
+ " rb_define_const(#{md[1]}, \"#{enum_name}\", cWx#{enum_var}); // Inserted by fixmodule.rb",
404
416
  # create enumerator value const under new enum class
405
- " wxRuby_AddEnumValue(cWx#{enum_name}, \"#{md[2]}\"#{md[3]} // Updated by fixmodule.rb"
417
+ " wxRuby_AddEnumValue(cWx#{enum_var}, \"#{md[2]}\"#{md[3]} // Updated by fixmodule.rb"
406
418
  ].join("\n")
407
419
  end
408
420
  else # end of enum def
409
- enum_name = nil
421
+ enum_item = nil
410
422
  fix_enum = false
411
423
  end
412
424
  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 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'