wxruby3 0.9.0.pre.rc.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +30 -8
  3. data/README.md +3 -3
  4. data/ext/mkrf_conf_srcgem.rb +4 -1
  5. data/ext/wxruby3/include/wxruby-Config.h +953 -0
  6. data/ext/wxruby3/include/wxruby-ScaledDC.h +4 -1
  7. data/ext/wxruby3/include/wxruby-runtime.h +10 -1
  8. data/ext/wxruby3/swig/RubyStockObjects.i +5 -3
  9. data/ext/wxruby3/swig/common.i +8 -3
  10. data/ext/wxruby3/swig/mark_free_impl.i +6 -4
  11. data/ext/wxruby3/swig/memory_management.i +5 -3
  12. data/ext/wxruby3/swig/typedefs.i +5 -3
  13. data/ext/wxruby3/swig/wx.i +7 -0
  14. data/ext/wxruby3/swig/wx.rc +4 -2
  15. data/lib/wx/accessors.rb +10 -2
  16. data/lib/wx/aui/auifloatframe.rb +20 -0
  17. data/lib/wx/aui/auimanager.rb +3 -0
  18. data/lib/wx/aui/auinotebook.rb +17 -0
  19. data/lib/wx/aui/require.rb +5 -1
  20. data/lib/wx/aui.rb +4 -1
  21. data/lib/wx/core/acceleratortable.rb +8 -0
  22. data/lib/wx/core/animation.rb +8 -0
  23. data/lib/wx/core/app.rb +8 -0
  24. data/lib/wx/core/array_ext.rb +7 -0
  25. data/lib/wx/core/art_locator.rb +7 -0
  26. data/lib/wx/core/artprovider.rb +9 -0
  27. data/lib/wx/core/bitmap.rb +16 -4
  28. data/lib/wx/core/bitmap_combobox.rb +7 -0
  29. data/lib/wx/core/brush.rb +7 -0
  30. data/lib/wx/core/busycursor.rb +9 -0
  31. data/lib/wx/core/choice.rb +7 -0
  32. data/lib/wx/core/choicedlg.rb +7 -0
  33. data/lib/wx/core/clientdc.rb +9 -0
  34. data/lib/wx/core/clipboard.rb +8 -0
  35. data/lib/wx/core/collapsible_pane.rb +8 -1
  36. data/lib/wx/core/colour.rb +8 -0
  37. data/lib/wx/core/combo_ctrl.rb +110 -0
  38. data/lib/wx/core/combobox.rb +7 -0
  39. data/lib/wx/core/config.rb +303 -0
  40. data/lib/wx/core/controlwithitems.rb +12 -1
  41. data/lib/wx/core/cursor.rb +14 -4
  42. data/lib/wx/core/data_object.rb +7 -0
  43. data/lib/wx/core/dataformat.rb +9 -0
  44. data/lib/wx/core/datetime.rb +14 -0
  45. data/lib/wx/core/dc.rb +7 -0
  46. data/lib/wx/core/dialog.rb +18 -1
  47. data/lib/wx/core/enum.rb +7 -0
  48. data/lib/wx/core/event.rb +7 -0
  49. data/lib/wx/core/event_blocker.rb +7 -0
  50. data/lib/wx/core/event_loop.rb +14 -0
  51. data/lib/wx/core/evthandler.rb +8 -0
  52. data/lib/wx/core/ext.rb +7 -0
  53. data/lib/wx/core/file_dialog.rb +23 -0
  54. data/lib/wx/core/find_replace_dialog.rb +7 -0
  55. data/lib/wx/core/functions.rb +8 -0
  56. data/lib/wx/core/gauge.rb +10 -1
  57. data/lib/wx/core/genericdirctrl.rb +9 -0
  58. data/lib/wx/core/hboxsizer.rb +16 -0
  59. data/lib/wx/core/helpcontroller.rb +8 -0
  60. data/lib/wx/core/helpcontrollerhelpprovider.rb +9 -0
  61. data/lib/wx/core/helpprovider.rb +10 -1
  62. data/lib/wx/core/icon.rb +17 -6
  63. data/lib/wx/core/id_helper.rb +7 -0
  64. data/lib/wx/core/image.rb +49 -4
  65. data/lib/wx/core/imagelist.rb +8 -1
  66. data/lib/wx/core/listbox.rb +7 -0
  67. data/lib/wx/core/listctrl.rb +26 -13
  68. data/lib/wx/core/locale.rb +8 -0
  69. data/lib/wx/core/log.rb +114 -0
  70. data/lib/wx/core/menu.rb +9 -0
  71. data/lib/wx/core/menu_bar.rb +7 -0
  72. data/lib/wx/core/menuitem.rb +9 -0
  73. data/lib/wx/core/notebook.rb +9 -0
  74. data/lib/wx/core/object.rb +9 -0
  75. data/lib/wx/core/paintdc.rb +7 -0
  76. data/lib/wx/core/pen.rb +7 -0
  77. data/lib/wx/core/pen_info.rb +7 -0
  78. data/lib/wx/core/platform_info.rb +7 -0
  79. data/lib/wx/core/point.rb +8 -0
  80. data/lib/wx/core/real_point.rb +8 -0
  81. data/lib/wx/core/rect.rb +9 -0
  82. data/lib/wx/core/region_iterator.rb +7 -0
  83. data/lib/wx/core/simplehelpprovider.rb +9 -0
  84. data/lib/wx/core/size.rb +8 -0
  85. data/lib/wx/core/sizer.rb +9 -0
  86. data/lib/wx/core/splash_screen.rb +22 -2
  87. data/lib/wx/core/text_entry.rb +7 -0
  88. data/lib/wx/core/textctrl.rb +86 -5
  89. data/lib/wx/core/timer.rb +9 -0
  90. data/lib/wx/core/toolbar.rb +9 -0
  91. data/lib/wx/core/toolbartool.rb +8 -0
  92. data/lib/wx/core/treectrl.rb +9 -0
  93. data/lib/wx/core/v_list_box.rb +7 -0
  94. data/lib/wx/core/validator.rb +7 -0
  95. data/lib/wx/core/variant.rb +7 -0
  96. data/lib/wx/core/vboxsizer.rb +16 -0
  97. data/lib/wx/core/window.rb +8 -0
  98. data/lib/wx/core/window_update_locker.rb +9 -0
  99. data/lib/wx/core/xmlresource.rb +8 -0
  100. data/lib/wx/core.rb +4 -1
  101. data/lib/wx/doc/app.rb +7 -1
  102. data/lib/wx/doc/array_ext.rb +6 -0
  103. data/lib/wx/doc/art_locator.rb +7 -0
  104. data/lib/wx/doc/aui/auimanager.rb +6 -0
  105. data/lib/wx/doc/aui/auinotebook.rb +6 -0
  106. data/lib/wx/doc/bitmap.rb +19 -15
  107. data/lib/wx/doc/brush.rb +6 -0
  108. data/lib/wx/doc/busy_info.rb +6 -0
  109. data/lib/wx/doc/client_dc.rb +6 -0
  110. data/lib/wx/doc/clipboard.rb +6 -0
  111. data/lib/wx/doc/colour_dialog.rb +6 -0
  112. data/lib/wx/doc/config.rb +190 -0
  113. data/lib/wx/doc/const.rb +7 -0
  114. data/lib/wx/doc/controlwithitems.rb +6 -0
  115. data/lib/wx/doc/core.rb +6 -0
  116. data/lib/wx/doc/cursor.rb +13 -5
  117. data/lib/wx/doc/data_object.rb +6 -0
  118. data/lib/wx/doc/datetime.rb +16 -0
  119. data/lib/wx/doc/dc.rb +6 -0
  120. data/lib/wx/doc/enum.rb +8 -1
  121. data/lib/wx/doc/event.rb +12 -0
  122. data/lib/wx/doc/event_blocker.rb +6 -0
  123. data/lib/wx/doc/event_loop.rb +13 -0
  124. data/lib/wx/doc/events.rb +6 -0
  125. data/lib/wx/doc/evthandler.rb +8 -0
  126. data/lib/wx/doc/extra/00_starting.md +6 -6
  127. data/lib/wx/doc/extra/01_packages.md +52 -51
  128. data/lib/wx/doc/extra/02_lifecycles.md +9 -8
  129. data/lib/wx/doc/extra/05_event-handling.md +37 -12
  130. data/lib/wx/doc/extra/06_geometry.md +5 -5
  131. data/lib/wx/doc/extra/07_colour_and_font.md +2 -2
  132. data/lib/wx/doc/extra/09_exceptions.md +2 -2
  133. data/lib/wx/doc/extra/10_art.md +18 -12
  134. data/lib/wx/doc/extra/11_drawing_and_dc.md +8 -8
  135. data/lib/wx/doc/font.rb +7 -1
  136. data/lib/wx/doc/font_data.rb +16 -0
  137. data/lib/wx/doc/functions.rb +60 -24
  138. data/lib/wx/doc/gc_dc.rb +7 -1
  139. data/lib/wx/doc/gdi_common.rb +8 -1
  140. data/lib/wx/doc/graphics_context.rb +59 -39
  141. data/lib/wx/doc/grid/grid.rb +16 -1
  142. data/lib/wx/doc/hboxsizer.rb +33 -0
  143. data/lib/wx/doc/help_controller.rb +6 -0
  144. data/lib/wx/doc/html/html_help_controller.rb +6 -0
  145. data/lib/wx/doc/icon.rb +13 -5
  146. data/lib/wx/doc/id_helper.rb +6 -0
  147. data/lib/wx/doc/image.rb +50 -12
  148. data/lib/wx/doc/list_ctrl.rb +38 -0
  149. data/lib/wx/doc/log.rb +45 -0
  150. data/lib/wx/doc/memory_dc.rb +6 -0
  151. data/lib/wx/doc/mirror_dc.rb +6 -0
  152. data/lib/wx/doc/pen.rb +6 -0
  153. data/lib/wx/doc/pg/events.rb +6 -0
  154. data/lib/wx/doc/pg/pg_property.rb +17 -0
  155. data/lib/wx/doc/pg/pgeditor.rb +6 -0
  156. data/lib/wx/doc/pg/property_grid.rb +6 -0
  157. data/lib/wx/doc/pg/property_grid_interface.rb +6 -0
  158. data/lib/wx/doc/progress_dialog.rb +6 -0
  159. data/lib/wx/doc/prt/page_setup_dialog.rb +6 -0
  160. data/lib/wx/doc/prt/print_data.rb +6 -0
  161. data/lib/wx/doc/prt/print_dialog.rb +6 -0
  162. data/lib/wx/doc/prt/printer.rb +6 -0
  163. data/lib/wx/doc/prt/printer_dc.rb +8 -2
  164. data/lib/wx/doc/radio_box.rb +6 -0
  165. data/lib/wx/doc/rbn/ribbon_bar.rb +6 -0
  166. data/lib/wx/doc/rbn/ribbon_button_bar.rb +6 -0
  167. data/lib/wx/doc/rbn/ribbon_gallery.rb +6 -0
  168. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +6 -0
  169. data/lib/wx/doc/region_iterator.rb +6 -0
  170. data/lib/wx/doc/rtc/richtext_buffer.rb +28 -0
  171. data/lib/wx/doc/rtc/richtext_formatting_dialog.rb +68 -0
  172. data/lib/wx/doc/rtc/richtext_printing.rb +6 -0
  173. data/lib/wx/doc/rtc/richtext_style_sheet.rb +20 -0
  174. data/lib/wx/doc/scaled_dc.rb +7 -1
  175. data/lib/wx/doc/screen_dc.rb +6 -0
  176. data/lib/wx/doc/stock_objects.rb +6 -0
  177. data/lib/wx/doc/stream.rb +6 -0
  178. data/lib/wx/doc/svg_file_dc.rb +6 -0
  179. data/lib/wx/doc/system_settings.rb +6 -0
  180. data/lib/wx/doc/text_validator.rb +18 -0
  181. data/lib/wx/doc/textctrl.rb +89 -0
  182. data/lib/wx/doc/tree_event.rb +20 -0
  183. data/lib/wx/doc/treebook.rb +6 -0
  184. data/lib/wx/doc/v_list_box.rb +6 -0
  185. data/lib/wx/doc/variant.rb +6 -0
  186. data/lib/wx/doc/vboxsizer.rb +33 -0
  187. data/lib/wx/doc/window.rb +6 -0
  188. data/lib/wx/doc/window_disabler.rb +6 -0
  189. data/lib/wx/doc/xml_resource.rb +8 -0
  190. data/lib/wx/global_const.rb +4 -1
  191. data/lib/wx/grid/grid.rb +23 -3
  192. data/lib/wx/grid/keyword_defs.rb +8 -1
  193. data/lib/wx/grid/require.rb +4 -1
  194. data/lib/wx/grid.rb +4 -1
  195. data/lib/wx/helpers.rb +8 -1
  196. data/lib/wx/html/htmlhelpcontroller.rb +29 -3
  197. data/lib/wx/html/htmlwindow.rb +23 -12
  198. data/lib/wx/html/keyword_defs.rb +8 -1
  199. data/lib/wx/html/require.rb +4 -1
  200. data/lib/wx/html/simple_html_listbox.rb +3 -0
  201. data/lib/wx/html.rb +4 -1
  202. data/lib/wx/keyword_ctors.rb +22 -3
  203. data/lib/wx/keyword_defs.rb +55 -3
  204. data/lib/wx/pg/events.rb +4 -1
  205. data/lib/wx/pg/keyword_defs.rb +8 -1
  206. data/lib/wx/pg/pg_editor.rb +3 -0
  207. data/lib/wx/pg/pg_properties.rb +4 -1
  208. data/lib/wx/pg/pg_property.rb +18 -5
  209. data/lib/wx/pg/property_grid.rb +4 -1
  210. data/lib/wx/pg/property_grid_interface.rb +3 -0
  211. data/lib/wx/pg/require.rb +4 -1
  212. data/lib/wx/pg.rb +4 -1
  213. data/lib/wx/prt/keyword_defs.rb +8 -1
  214. data/lib/wx/prt/page_setup_dialog.rb +3 -0
  215. data/lib/wx/prt/previewframe.rb +5 -0
  216. data/lib/wx/prt/require.rb +4 -1
  217. data/lib/wx/prt.rb +4 -1
  218. data/lib/wx/rbn/events.rb +4 -1
  219. data/lib/wx/rbn/keyword_defs.rb +8 -1
  220. data/lib/wx/rbn/require.rb +5 -1
  221. data/lib/wx/rbn/ribbon_art_provider.rb +3 -1
  222. data/lib/wx/rbn/ribbon_bar.rb +3 -0
  223. data/lib/wx/rbn/ribbon_button_bar.rb +3 -0
  224. data/lib/wx/rbn/ribbon_control.rb +3 -0
  225. data/lib/wx/rbn/ribbon_gallery.rb +10 -0
  226. data/lib/wx/rbn/ribbon_page.rb +3 -0
  227. data/lib/wx/rbn/ribbon_panel.rb +3 -0
  228. data/lib/wx/rbn/ribbon_tool_bar.rb +3 -0
  229. data/lib/wx/rbn.rb +4 -1
  230. data/lib/wx/rtc/ext.rb +4 -1
  231. data/lib/wx/rtc/keyword_defs.rb +18 -7
  232. data/lib/wx/rtc/require.rb +8 -1
  233. data/lib/wx/rtc/richtext_buffer.rb +36 -0
  234. data/lib/wx/rtc/richtext_formatting_dialog.rb +88 -0
  235. data/lib/wx/rtc/richtext_style_organiser_dialog.rb +46 -0
  236. data/lib/wx/rtc/symbol_picker_dialog.rb +47 -0
  237. data/lib/wx/rtc.rb +5 -1
  238. data/lib/wx/stc/keyword_defs.rb +8 -1
  239. data/lib/wx/stc/require.rb +4 -1
  240. data/lib/wx/stc.rb +4 -1
  241. data/lib/wx/version.rb +5 -1
  242. data/lib/wx/wxruby/base.rb +4 -1
  243. data/lib/wx/wxruby/cmd/sampler.rb +4 -1
  244. data/lib/wx/wxruby/cmd/test.rb +4 -1
  245. data/lib/wx.rb +4 -1
  246. data/rakelib/build.rake +4 -1
  247. data/rakelib/build.rb +4 -1
  248. data/rakelib/config.rake +4 -1
  249. data/rakelib/configure.rb +4 -1
  250. data/rakelib/doc.rake +4 -1
  251. data/rakelib/doc.rb +5 -1
  252. data/rakelib/install.rake +4 -1
  253. data/rakelib/install.rb +4 -1
  254. data/rakelib/lib/config/cygwin.rb +4 -1
  255. data/rakelib/lib/config/linux.rb +4 -1
  256. data/rakelib/lib/config/macosx.rb +5 -2
  257. data/rakelib/lib/config/mingw.rb +4 -1
  258. data/rakelib/lib/config/netbsd.rb +4 -1
  259. data/rakelib/lib/config/unixish.rb +10 -7
  260. data/rakelib/lib/config.rb +7 -2
  261. data/rakelib/lib/core/include/enum.inc +4 -1
  262. data/rakelib/lib/core/include/funcall.inc +10 -64
  263. data/rakelib/lib/core/include/init.inc +3 -0
  264. data/rakelib/lib/core/mapping.rb +40 -55
  265. data/rakelib/lib/core/package.rb +20 -3
  266. data/rakelib/lib/core/parameter.rb +4 -1
  267. data/rakelib/lib/core/spec.rb +35 -18
  268. data/rakelib/lib/core/spec_helper.rb +38 -9
  269. data/rakelib/lib/director/about_dialog_info.rb +4 -1
  270. data/rakelib/lib/director/accelerator.rb +7 -2
  271. data/rakelib/lib/director/animation.rb +4 -1
  272. data/rakelib/lib/director/animation_ctrl.rb +4 -1
  273. data/rakelib/lib/director/any_button.rb +5 -2
  274. data/rakelib/lib/director/app.rb +16 -2
  275. data/rakelib/lib/director/app_traits.rb +71 -0
  276. data/rakelib/lib/director/art_provider.rb +4 -1
  277. data/rakelib/lib/director/aui_dock_art.rb +4 -1
  278. data/rakelib/lib/director/aui_floating_frame.rb +4 -1
  279. data/rakelib/lib/director/aui_manager.rb +12 -5
  280. data/rakelib/lib/director/aui_manager_event.rb +4 -1
  281. data/rakelib/lib/director/aui_mdi_child_frame.rb +25 -1
  282. data/rakelib/lib/director/aui_mdi_client_window.rb +4 -1
  283. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -1
  284. data/rakelib/lib/director/aui_notebook.rb +12 -1
  285. data/rakelib/lib/director/aui_notebook_event.rb +4 -1
  286. data/rakelib/lib/director/aui_pane_info.rb +4 -1
  287. data/rakelib/lib/director/aui_tab_art.rb +52 -1
  288. data/rakelib/lib/director/aui_tab_ctrl.rb +14 -1
  289. data/rakelib/lib/director/aui_toolbar.rb +6 -3
  290. data/rakelib/lib/director/aui_toolbar_art.rb +52 -1
  291. data/rakelib/lib/director/aui_toolbar_event.rb +4 -1
  292. data/rakelib/lib/director/aui_toolbar_item.rb +4 -1
  293. data/rakelib/lib/director/banner_window.rb +26 -0
  294. data/rakelib/lib/director/bitmap.rb +11 -2
  295. data/rakelib/lib/director/bitmap_combobox.rb +5 -1
  296. data/rakelib/lib/director/book_ctrls.rb +13 -3
  297. data/rakelib/lib/director/brush.rb +4 -1
  298. data/rakelib/lib/director/busy_info.rb +4 -1
  299. data/rakelib/lib/director/button.rb +4 -1
  300. data/rakelib/lib/director/calendar_ctrl.rb +4 -1
  301. data/rakelib/lib/director/calendar_date_attr.rb +4 -1
  302. data/rakelib/lib/director/caret.rb +4 -1
  303. data/rakelib/lib/director/check_listbox.rb +4 -1
  304. data/rakelib/lib/director/choice.rb +4 -1
  305. data/rakelib/lib/director/clipboard.rb +4 -1
  306. data/rakelib/lib/director/collapsible_pane.rb +4 -1
  307. data/rakelib/lib/director/collapsible_pane_event.rb +4 -1
  308. data/rakelib/lib/director/colour.rb +9 -1
  309. data/rakelib/lib/director/colour_picker_ctrl.rb +4 -1
  310. data/rakelib/lib/director/combobox.rb +4 -1
  311. data/rakelib/lib/director/comboctrl.rb +94 -0
  312. data/rakelib/lib/director/config_base.rb +135 -0
  313. data/rakelib/lib/director/context_help_button.rb +4 -1
  314. data/rakelib/lib/director/control.rb +4 -1
  315. data/rakelib/lib/director/ctrl_with_items.rb +5 -1
  316. data/rakelib/lib/director/cursor.rb +6 -2
  317. data/rakelib/lib/director/data_format.rb +4 -1
  318. data/rakelib/lib/director/data_object.rb +4 -1
  319. data/rakelib/lib/director/data_object_simple_base.rb +4 -1
  320. data/rakelib/lib/director/date_event.rb +9 -2
  321. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  322. data/rakelib/lib/director/dc.rb +19 -1
  323. data/rakelib/lib/director/defs.rb +4 -1
  324. data/rakelib/lib/director/derived_dc.rb +27 -20
  325. data/rakelib/lib/director/dialog.rb +49 -3
  326. data/rakelib/lib/director/dir_filterlist_ctrl.rb +4 -1
  327. data/rakelib/lib/director/dir_picker_ctrl.rb +4 -1
  328. data/rakelib/lib/director/drag_image.rb +9 -2
  329. data/rakelib/lib/director/dragdrop.rb +4 -1
  330. data/rakelib/lib/director/editable_listbox.rb +4 -1
  331. data/rakelib/lib/director/event.rb +11 -3
  332. data/rakelib/lib/director/event_blocker.rb +4 -1
  333. data/rakelib/lib/director/event_filter.rb +4 -1
  334. data/rakelib/lib/director/event_handler.rb +28 -11
  335. data/rakelib/lib/director/event_loop.rb +29 -0
  336. data/rakelib/lib/director/events.rb +5 -2
  337. data/rakelib/lib/director/file_dialog_custom_control.rb +28 -0
  338. data/rakelib/lib/director/file_dialog_customize_hook.rb +28 -0
  339. data/rakelib/lib/director/file_picker_ctrl.rb +4 -1
  340. data/rakelib/lib/director/file_system.rb +45 -0
  341. data/rakelib/lib/director/find_dialog_event.rb +4 -1
  342. data/rakelib/lib/director/find_replace_data.rb +4 -1
  343. data/rakelib/lib/director/font.rb +7 -3
  344. data/rakelib/lib/director/font_data.rb +9 -1
  345. data/rakelib/lib/director/font_picker_ctrl.rb +4 -1
  346. data/rakelib/lib/director/frame.rb +45 -33
  347. data/rakelib/lib/director/fs_file.rb +52 -1
  348. data/rakelib/lib/director/functions.rb +51 -49
  349. data/rakelib/lib/director/gdi_object.rb +4 -1
  350. data/rakelib/lib/director/gdicommon.rb +14 -9
  351. data/rakelib/lib/director/generic_dirctrl.rb +4 -1
  352. data/rakelib/lib/director/graphics_context.rb +113 -18
  353. data/rakelib/lib/director/graphics_object.rb +13 -2
  354. data/rakelib/lib/director/grid_cell_attr.rb +28 -4
  355. data/rakelib/lib/director/grid_cell_editor.rb +22 -5
  356. data/rakelib/lib/director/grid_cell_renderer.rb +16 -3
  357. data/rakelib/lib/director/grid_ctrl.rb +146 -5
  358. data/rakelib/lib/director/grid_range_select_event.rb +4 -1
  359. data/rakelib/lib/director/grid_table_base.rb +6 -1
  360. data/rakelib/lib/director/grid_table_message.rb +4 -1
  361. data/rakelib/lib/director/header_ctrl.rb +37 -0
  362. data/rakelib/lib/director/help_controller.rb +13 -6
  363. data/rakelib/lib/director/help_provider.rb +4 -1
  364. data/rakelib/lib/director/html_cell.rb +10 -3
  365. data/rakelib/lib/director/html_data_object.rb +4 -1
  366. data/rakelib/lib/director/html_easy_printing.rb +4 -1
  367. data/rakelib/lib/director/html_event.rb +4 -1
  368. data/rakelib/lib/director/html_help_data.rb +4 -1
  369. data/rakelib/lib/director/html_help_window.rb +30 -0
  370. data/rakelib/lib/director/html_listbox.rb +4 -1
  371. data/rakelib/lib/director/html_printout.rb +6 -1
  372. data/rakelib/lib/director/html_window.rb +10 -8
  373. data/rakelib/lib/director/hyperlink_ctrl.rb +32 -0
  374. data/rakelib/lib/director/hyperlink_event.rb +4 -1
  375. data/rakelib/lib/director/icon.rb +4 -1
  376. data/rakelib/lib/director/image.rb +58 -3
  377. data/rakelib/lib/director/image_list.rb +5 -1
  378. data/rakelib/lib/director/info_bar.rb +26 -0
  379. data/rakelib/lib/director/list_ctrl.rb +42 -9
  380. data/rakelib/lib/director/listbox.rb +4 -1
  381. data/rakelib/lib/director/locale.rb +7 -4
  382. data/rakelib/lib/director/log.rb +111 -6
  383. data/rakelib/lib/director/mdi_frame.rb +4 -1
  384. data/rakelib/lib/director/media_ctrl.rb +4 -1
  385. data/rakelib/lib/director/menu.rb +16 -3
  386. data/rakelib/lib/director/menu_bar.rb +13 -2
  387. data/rakelib/lib/director/menu_item.rb +6 -6
  388. data/rakelib/lib/director/mouse_state.rb +5 -2
  389. data/rakelib/lib/director/numeric_property_validator.rb +4 -1
  390. data/rakelib/lib/director/object.rb +5 -2
  391. data/rakelib/lib/director/page_setup_dialog.rb +4 -1
  392. data/rakelib/lib/director/palette.rb +54 -2
  393. data/rakelib/lib/director/panel.rb +4 -1
  394. data/rakelib/lib/director/pen.rb +5 -2
  395. data/rakelib/lib/director/pgarray_editor_dialog.rb +4 -1
  396. data/rakelib/lib/director/pgcell.rb +4 -1
  397. data/rakelib/lib/director/pgeditor.rb +4 -1
  398. data/rakelib/lib/director/pgmulti_button.rb +4 -1
  399. data/rakelib/lib/director/pgproperties.rb +4 -1
  400. data/rakelib/lib/director/pgproperty.rb +42 -3
  401. data/rakelib/lib/director/pgvalidation_info.rb +9 -1
  402. data/rakelib/lib/director/pickerbase.rb +4 -1
  403. data/rakelib/lib/director/platform_info.rb +9 -1
  404. data/rakelib/lib/director/popup_window.rb +14 -1
  405. data/rakelib/lib/director/preview_frame.rb +5 -2
  406. data/rakelib/lib/director/print_data.rb +4 -1
  407. data/rakelib/lib/director/print_dialog.rb +4 -1
  408. data/rakelib/lib/director/printer.rb +14 -6
  409. data/rakelib/lib/director/property_grid.rb +30 -1
  410. data/rakelib/lib/director/property_grid_event.rb +11 -1
  411. data/rakelib/lib/director/property_grid_interface.rb +20 -6
  412. data/rakelib/lib/director/property_grid_manager.rb +4 -1
  413. data/rakelib/lib/director/property_grid_page.rb +4 -1
  414. data/rakelib/lib/director/property_grid_page_state.rb +4 -1
  415. data/rakelib/lib/director/radio_box.rb +4 -1
  416. data/rakelib/lib/director/rearrange_list.rb +36 -0
  417. data/rakelib/lib/director/region.rb +5 -1
  418. data/rakelib/lib/director/region_iterator.rb +4 -1
  419. data/rakelib/lib/director/ribbon_art_provider.rb +9 -1
  420. data/rakelib/lib/director/ribbon_bar.rb +4 -1
  421. data/rakelib/lib/director/ribbon_bar_event.rb +4 -1
  422. data/rakelib/lib/director/ribbon_button_bar.rb +4 -1
  423. data/rakelib/lib/director/ribbon_button_bar_event.rb +4 -1
  424. data/rakelib/lib/director/ribbon_ctrl.rb +4 -1
  425. data/rakelib/lib/director/ribbon_gallery.rb +8 -3
  426. data/rakelib/lib/director/ribbon_gallery_event.rb +4 -1
  427. data/rakelib/lib/director/ribbon_page.rb +4 -1
  428. data/rakelib/lib/director/ribbon_panel.rb +4 -1
  429. data/rakelib/lib/director/ribbon_panel_event.rb +4 -1
  430. data/rakelib/lib/director/ribbon_tool_bar.rb +4 -1
  431. data/rakelib/lib/director/ribbon_tool_bar_event.rb +4 -1
  432. data/rakelib/lib/director/richtext_box.rb +61 -0
  433. data/rakelib/lib/director/richtext_buffer.rb +219 -22
  434. data/rakelib/lib/director/richtext_buffer_data_object.rb +4 -1
  435. data/rakelib/lib/director/richtext_composite_object.rb +174 -0
  436. data/rakelib/lib/director/richtext_ctrl.rb +157 -4
  437. data/rakelib/lib/director/richtext_event.rb +4 -1
  438. data/rakelib/lib/director/richtext_file_handler.rb +13 -1
  439. data/rakelib/lib/director/richtext_formatting_dialog.rb +44 -0
  440. data/rakelib/lib/director/richtext_header_footer_data.rb +4 -1
  441. data/rakelib/lib/director/richtext_image.rb +56 -0
  442. data/rakelib/lib/director/richtext_object.rb +272 -0
  443. data/rakelib/lib/director/richtext_paragraph_layout_box.rb +178 -0
  444. data/rakelib/lib/director/richtext_printing.rb +4 -1
  445. data/rakelib/lib/director/richtext_style_listbox.rb +37 -0
  446. data/rakelib/lib/director/richtext_style_organiser_dialog.rb +28 -0
  447. data/rakelib/lib/director/sash_layout_event.rb +4 -1
  448. data/rakelib/lib/director/sash_layout_window.rb +4 -1
  449. data/rakelib/lib/director/sash_window.rb +4 -1
  450. data/rakelib/lib/director/scroll_bar.rb +4 -1
  451. data/rakelib/lib/director/scrolled_t.rb +7 -4
  452. data/rakelib/lib/director/searchctrl.rb +4 -1
  453. data/rakelib/lib/director/sizer.rb +4 -1
  454. data/rakelib/lib/director/sizer_item.rb +9 -3
  455. data/rakelib/lib/director/slider.rb +4 -1
  456. data/rakelib/lib/director/splash_screen.rb +4 -1
  457. data/rakelib/lib/director/splitter_event.rb +4 -1
  458. data/rakelib/lib/director/splitter_window.rb +4 -1
  459. data/rakelib/lib/director/static_bitmap.rb +4 -1
  460. data/rakelib/lib/director/static_box.rb +5 -2
  461. data/rakelib/lib/director/status_bar.rb +5 -1
  462. data/rakelib/lib/director/styled_text_ctrl.rb +14 -2
  463. data/rakelib/lib/director/styled_text_event.rb +4 -1
  464. data/rakelib/lib/director/system_options.rb +4 -1
  465. data/rakelib/lib/director/system_settings.rb +4 -1
  466. data/rakelib/lib/director/task_bar_icon.rb +4 -1
  467. data/rakelib/lib/director/text_attr.rb +5 -2
  468. data/rakelib/lib/director/text_entry.rb +29 -1
  469. data/rakelib/lib/director/text_validator.rb +14 -3
  470. data/rakelib/lib/director/textctrl.rb +32 -3
  471. data/rakelib/lib/director/time_picker_ctrl.rb +4 -1
  472. data/rakelib/lib/director/timer.rb +4 -1
  473. data/rakelib/lib/director/tip_provider.rb +4 -1
  474. data/rakelib/lib/director/toggle_button.rb +4 -1
  475. data/rakelib/lib/director/tool_bar.rb +20 -1
  476. data/rakelib/lib/director/tool_tip.rb +5 -2
  477. data/rakelib/lib/director/top_level_window.rb +58 -51
  478. data/rakelib/lib/director/tree_ctrl.rb +5 -2
  479. data/rakelib/lib/director/tree_event.rb +28 -10
  480. data/rakelib/lib/director/uiaction_simulator.rb +4 -1
  481. data/rakelib/lib/director/utils.rb +9 -1
  482. data/rakelib/lib/director/validator.rb +4 -1
  483. data/rakelib/lib/director/variant.rb +22 -6
  484. data/rakelib/lib/director/vlistbox.rb +4 -1
  485. data/rakelib/lib/director/vscrolled_window.rb +4 -1
  486. data/rakelib/lib/director/window.rb +81 -82
  487. data/rakelib/lib/director/window_disabler.rb +4 -1
  488. data/rakelib/lib/director/with_images.rb +5 -2
  489. data/rakelib/lib/director/wizard_page.rb +4 -1
  490. data/rakelib/lib/director/xml_node.rb +4 -1
  491. data/rakelib/lib/director/xml_resource.rb +4 -1
  492. data/rakelib/lib/director.rb +27 -28
  493. data/rakelib/lib/ext/enum_chain.rb +4 -1
  494. data/rakelib/lib/extractor/class.rb +8 -6
  495. data/rakelib/lib/extractor/enum.rb +15 -2
  496. data/rakelib/lib/extractor/function.rb +17 -9
  497. data/rakelib/lib/extractor/module.rb +4 -1
  498. data/rakelib/lib/extractor/variable.rb +10 -7
  499. data/rakelib/lib/extractor.rb +7 -2
  500. data/rakelib/lib/generate/analyzer.rb +31 -21
  501. data/rakelib/lib/generate/base.rb +4 -1
  502. data/rakelib/lib/generate/doc/aui_manager.yaml +21 -0
  503. data/rakelib/lib/generate/doc/font.yaml +29 -0
  504. data/rakelib/lib/generate/doc/frame.yaml +23 -0
  505. data/rakelib/lib/generate/doc/fs_file.yaml +11 -0
  506. data/rakelib/lib/generate/doc/gdi_common.yaml +36 -0
  507. data/rakelib/lib/generate/doc/graphics_context.yaml +34 -0
  508. data/rakelib/lib/generate/doc/grid_cell_attr.yaml +21 -0
  509. data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
  510. data/rakelib/lib/generate/doc/gui_event_loop.yaml +12 -0
  511. data/rakelib/lib/generate/doc/help_controller.yaml +24 -0
  512. data/rakelib/lib/generate/doc/html_cell.yaml +11 -0
  513. data/rakelib/lib/generate/doc/html_help_controller.yaml +23 -0
  514. data/rakelib/lib/generate/doc/html_help_window.yaml +21 -0
  515. data/rakelib/lib/generate/doc/html_window.yaml +47 -0
  516. data/rakelib/lib/generate/doc/icon.yaml +11 -0
  517. data/rakelib/lib/generate/doc/image.yaml +87 -0
  518. data/rakelib/lib/generate/doc/keyboard_state.yaml +19 -0
  519. data/rakelib/lib/generate/doc/list_ctrl.yaml +77 -0
  520. data/rakelib/lib/generate/doc/locale.yaml +12 -0
  521. data/rakelib/lib/generate/doc/log.yaml +86 -0
  522. data/rakelib/lib/generate/doc/mdi_frame.yaml +12 -0
  523. data/rakelib/lib/generate/doc/memory_dc.yaml +42 -0
  524. data/rakelib/lib/generate/doc/menu.yaml +17 -0
  525. data/rakelib/lib/generate/doc/menu_item.yaml +43 -0
  526. data/rakelib/lib/generate/doc/message_dialog.yaml +36 -0
  527. data/rakelib/lib/generate/doc/non_owned_window.yaml +14 -0
  528. data/rakelib/lib/generate/doc/notebook.yaml +18 -0
  529. data/rakelib/lib/generate/doc/pen.yaml +11 -0
  530. data/rakelib/lib/generate/doc/pg_editor.yaml +11 -0
  531. data/rakelib/lib/generate/doc/pg_multi_button.yaml +78 -0
  532. data/rakelib/lib/generate/doc/pg_properties.yaml +244 -0
  533. data/rakelib/lib/generate/doc/pg_property.yaml +188 -0
  534. data/rakelib/lib/generate/doc/picker_base.yaml +19 -0
  535. data/rakelib/lib/generate/doc/platform_info.yaml +15 -0
  536. data/rakelib/lib/generate/doc/property_grid.yaml +23 -0
  537. data/rakelib/lib/generate/doc/property_grid_interface.yaml +30 -0
  538. data/rakelib/lib/generate/doc/property_grid_manager.yaml +40 -0
  539. data/rakelib/lib/generate/doc/property_sheet_dialog.yaml +26 -0
  540. data/rakelib/lib/generate/doc/rich_text_html_handler.yaml +11 -0
  541. data/rakelib/lib/generate/doc/scroll_bar.yaml +11 -0
  542. data/rakelib/lib/generate/doc/scrolled_canvas.yaml +37 -0
  543. data/rakelib/lib/generate/doc/scrolled_control.yaml +37 -0
  544. data/rakelib/lib/generate/doc/scrolled_window.yaml +37 -0
  545. data/rakelib/lib/generate/doc/sizer.yaml +69 -0
  546. data/rakelib/lib/generate/doc/splash_screen.yaml +18 -0
  547. data/rakelib/lib/generate/doc/static_box.yaml +52 -0
  548. data/rakelib/lib/generate/doc/static_box_sizer.yaml +22 -0
  549. data/rakelib/lib/generate/doc/styled_text_ctrl.yaml +18 -0
  550. data/rakelib/lib/generate/doc/svg_file_dc.yaml +11 -0
  551. data/rakelib/lib/generate/doc/symbol_picker_dialog.yaml +40 -0
  552. data/rakelib/lib/generate/doc/text_ctrl.yaml +19 -0
  553. data/rakelib/lib/generate/doc/text_entry.yaml +42 -0
  554. data/rakelib/lib/generate/doc/text_entry_dialog.yaml +17 -0
  555. data/rakelib/lib/generate/doc/timer_event.yaml +28 -0
  556. data/rakelib/lib/generate/doc/tool_bar.yaml +35 -0
  557. data/rakelib/lib/generate/doc/top_level_window.yaml +23 -0
  558. data/rakelib/lib/generate/doc/validator.yaml +12 -0
  559. data/rakelib/lib/generate/doc/variant.yaml +29 -0
  560. data/rakelib/lib/generate/doc/window.yaml +249 -0
  561. data/rakelib/lib/generate/doc/wizard_page_simple.yaml +14 -0
  562. data/rakelib/lib/generate/doc/xml_node.yaml +7 -0
  563. data/rakelib/lib/generate/doc/xml_resource.yaml +27 -0
  564. data/rakelib/lib/generate/doc.rb +54 -4
  565. data/rakelib/lib/generate/interface.rb +79 -110
  566. data/rakelib/lib/generate/rakedep.rb +4 -1
  567. data/rakelib/lib/specs/interfaces.rb +46 -20
  568. data/rakelib/lib/streams.rb +5 -1
  569. data/rakelib/lib/swig_runner.rb +71 -22
  570. data/rakelib/lib/typemap/array_int_selections.rb +4 -1
  571. data/rakelib/lib/typemap/common.rb +57 -2
  572. data/rakelib/lib/typemap/config.rb +55 -0
  573. data/rakelib/lib/typemap/data_format.rb +4 -1
  574. data/rakelib/lib/typemap/data_object_data.rb +4 -1
  575. data/rakelib/lib/typemap/datetime.rb +8 -1
  576. data/rakelib/lib/typemap/grid_client_data.rb +4 -1
  577. data/rakelib/lib/typemap/grid_coords.rb +37 -7
  578. data/rakelib/lib/typemap/html_cell.rb +4 -1
  579. data/rakelib/lib/typemap/io_streams.rb +4 -1
  580. data/rakelib/lib/typemap/pgcell.rb +4 -1
  581. data/rakelib/lib/typemap/pgeditor.rb +4 -1
  582. data/rakelib/lib/typemap/pgprop_arg.rb +4 -1
  583. data/rakelib/lib/typemap/pgproperty.rb +4 -1
  584. data/rakelib/lib/typemap/points_list.rb +4 -1
  585. data/rakelib/lib/typemap/richtext.rb +185 -11
  586. data/rakelib/lib/typemap/tree_itemid.rb +26 -1
  587. data/rakelib/lib/util/string.rb +4 -1
  588. data/rakelib/prepost.rake +4 -1
  589. data/rakelib/prepost.rb +4 -1
  590. data/rakelib/run.rake +4 -1
  591. data/samples/aui/aui.rb +8 -3
  592. data/samples/bigdemo/bigdemo.rb +9 -2
  593. data/samples/bigdemo/run.rb +9 -2
  594. data/samples/bigdemo/utils.rb +9 -1
  595. data/samples/calendar/calendar.rb +9 -4
  596. data/samples/caret/caret.rb +8 -3
  597. data/samples/controls/books.rb +8 -2
  598. data/samples/controls/controls.rb +33 -77
  599. data/samples/controls/get_item_sample.rb +8 -2
  600. data/samples/controls/htlbox.rb +10 -3
  601. data/samples/dialogs/dialogs.rb +9 -4
  602. data/samples/dialogs/wizard.rb +8 -3
  603. data/samples/dragdrop/dragdrop.rb +8 -3
  604. data/samples/drawing/bitmap.rb +8 -3
  605. data/samples/drawing/bitmap_image.rb +8 -3
  606. data/samples/drawing/graphics_drawing.rb +44 -33
  607. data/samples/drawing/image_prt.rb +8 -2
  608. data/samples/drawing/maths_images.rb +8 -3
  609. data/samples/drawing/rmagic_bitmap_image.rb +8 -3
  610. data/samples/etc/choice.rb +8 -3
  611. data/samples/etc/miniframe.rb +8 -3
  612. data/samples/etc/sash.rb +8 -3
  613. data/samples/etc/scrollwin.rb +8 -3
  614. data/samples/etc/system_settings.rb +8 -3
  615. data/samples/event/activation.rb +8 -3
  616. data/samples/event/event.rb +8 -3
  617. data/samples/event/threaded.rb +8 -3
  618. data/samples/event/update_ui_event.rb +8 -3
  619. data/samples/grid/grid.rb +9 -3
  620. data/samples/grid/gridtablebase.rb +8 -3
  621. data/samples/html/html.rb +8 -3
  622. data/samples/mdi/mdi.rb +8 -3
  623. data/samples/minimal/minimal.rb +8 -3
  624. data/samples/minimal/nothing.rb +8 -3
  625. data/samples/printing/printing.rb +8 -3
  626. data/samples/printing/printing2.rb +8 -2
  627. data/samples/propgrid/propgrid.rb +4 -1
  628. data/samples/propgrid/propgrid_minimal.rb +4 -2
  629. data/samples/propgrid/sample_props.rb +4 -1
  630. data/samples/ribbon/ribbon.rb +4 -1
  631. data/samples/sampler/editor.rb +4 -1
  632. data/samples/sampler/ext.rb +4 -1
  633. data/samples/sampler/sample.rb +13 -4
  634. data/samples/sampler/stc_editor.rb +4 -1
  635. data/samples/sampler/txt_editor.rb +4 -1
  636. data/samples/sampler.rb +11 -3
  637. data/samples/splash/splash.rb +4 -2
  638. data/samples/text/art/richtext/alignleft.xpm +24 -0
  639. data/samples/text/art/richtext/alignright.xpm +24 -0
  640. data/samples/text/art/richtext/bold.xpm +24 -0
  641. data/samples/text/art/richtext/centre.xpm +24 -0
  642. data/samples/text/art/richtext/copy.xpm +45 -0
  643. data/samples/text/art/richtext/cut.xpm +47 -0
  644. data/samples/text/art/richtext/font.xpm +25 -0
  645. data/samples/text/art/richtext/idea.xpm +47 -0
  646. data/samples/text/art/richtext/indentless.xpm +25 -0
  647. data/samples/text/art/richtext/indentmore.xpm +25 -0
  648. data/samples/text/art/richtext/italic.xpm +25 -0
  649. data/samples/text/art/richtext/open.xpm +58 -0
  650. data/samples/text/art/richtext/paste.xpm +47 -0
  651. data/samples/text/art/richtext/redo.xpm +59 -0
  652. data/samples/text/art/richtext/save.xpm +43 -0
  653. data/samples/text/art/richtext/smiley.xpm +42 -0
  654. data/samples/text/art/richtext/underline.xpm +25 -0
  655. data/samples/text/art/richtext/undo.xpm +59 -0
  656. data/samples/text/art/richtext/zebra.xpm +409 -0
  657. data/samples/text/rich_textctrl.rb +8 -3
  658. data/samples/text/richtext.rb +1824 -0
  659. data/samples/text/scintilla.rb +8 -3
  660. data/samples/text/textctrl.rb +21 -4
  661. data/samples/text/tn_richtext.png +0 -0
  662. data/samples/text/unicode.rb +9 -4
  663. data/samples/treectrl/treectrl.rb +10 -5
  664. data/samples/xrc/custom_xrc_sample.rb +8 -3
  665. data/samples/xrc/xrc_sample.rb +8 -3
  666. data/tests/art/test_art/bitmap/wxruby-128x128.png +0 -0
  667. data/tests/art/test_art/bitmap/wxruby-256x256.png +0 -0
  668. data/tests/art/test_art/bitmap/wxruby-64x64.png +0 -0
  669. data/tests/lib/item_container_tests.rb +3 -0
  670. data/tests/lib/text_entry_tests.rb +3 -0
  671. data/tests/lib/wxapp_runner.rb +3 -0
  672. data/tests/lib/wxframe_runner.rb +81 -3
  673. data/tests/test_app_event_filter.rb +3 -0
  674. data/tests/test_app_traits.rb +33 -0
  675. data/tests/test_art.rb +31 -0
  676. data/tests/test_art_provider.rb +3 -0
  677. data/tests/test_aui.rb +65 -0
  678. data/tests/test_basic.rb +5 -1
  679. data/tests/test_box_sizer.rb +164 -0
  680. data/tests/test_clipboard.rb +3 -0
  681. data/tests/test_config.rb +150 -0
  682. data/tests/test_dc.rb +3 -0
  683. data/tests/test_dialog.rb +3 -0
  684. data/tests/test_event_handling.rb +3 -0
  685. data/tests/test_events.rb +3 -0
  686. data/tests/test_ext_controls.rb +286 -3
  687. data/tests/test_file_dialog.rb +55 -0
  688. data/tests/test_font.rb +8 -5
  689. data/tests/test_gdi_object.rb +3 -0
  690. data/tests/test_geometry.rb +4 -0
  691. data/tests/test_grid_sizer.rb +151 -0
  692. data/tests/test_intl.rb +3 -0
  693. data/tests/test_item_data.rb +3 -0
  694. data/tests/test_list_ctrl.rb +56 -0
  695. data/tests/test_log.rb +226 -0
  696. data/tests/test_proof_check.rb +52 -0
  697. data/tests/test_richtext.rb +204 -0
  698. data/tests/test_std_controls.rb +99 -31
  699. data/tests/test_timer.rb +98 -0
  700. data/tests/test_variant.rb +3 -0
  701. data/tests/test_window.rb +10 -8
  702. data/tests/testapp.rb +4 -0
  703. data/tests/testapp_noframe.rb +4 -0
  704. metadata +146 -3
  705. data/rakelib/lib/director/html_help_frame.rb +0 -25
@@ -1,3 +1,6 @@
1
+ // Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ //
3
+ // This software is released under the MIT license.
1
4
 
2
5
  #undef _
3
6
 
@@ -8,74 +11,18 @@
8
11
 
9
12
  typedef VALUE (*RUBY_INVOKE_FUNC) (VALUE);
10
13
 
11
- namespace Swig {
12
- /* Base class for director exceptions */
13
- class DirectorException : public std::exception
14
- {
15
- protected:
16
- VALUE swig_error;
17
- std::string swig_msg;
18
- protected:
19
- DirectorException(VALUE error) : swig_error(error) { }
20
- DirectorException(VALUE error, const char *hdr, const char *msg ="") : swig_error(error), swig_msg(hdr)
21
- {
22
- if (msg[0])
23
- {
24
- swig_msg += " ";
25
- swig_msg += msg;
26
- }
27
- if (swig_msg.size())
28
- {
29
- VALUE str = rb_str_new(swig_msg.data(), swig_msg.size());
30
- swig_error = rb_exc_new3(error, str);
31
- }
32
- else
33
- {
34
- swig_error = error;
35
- }
36
- }
37
- public:
38
- virtual ~DirectorException() throw() { }
39
- VALUE getType() const
40
- {
41
- return CLASS_OF(swig_error);
42
- }
43
- VALUE getError() const
44
- {
45
- return swig_error;
46
- }
47
- /* Deprecated, use what() instead */
48
- const std::string& getMessage() const
49
- {
50
- return swig_msg;
51
- }
52
- const char *what() const throw()
53
- {
54
- return swig_msg.c_str();
55
- }
56
- };
57
- class DirectorRubyException : public DirectorException
58
- {
59
- public:
60
- DirectorRubyException(const char *exname, const char *msg="")
61
- : DirectorException(rb_eRuntimeError, exname, msg)
62
- {
63
- }
64
- };
65
- }
66
-
67
14
  class WXRuby_RBFuncall
68
15
  {
69
16
  public:
70
- WXRuby_RBFuncall (ID fnid, bool throw_on_ex=true)
17
+ WXRuby_RBFuncall (ID fnid, bool abort_on_ex=true)
71
18
  : fn_id_ (fnid),
72
- throw_on_ex_ (throw_on_ex),
19
+ abort_on_ex_ (abort_on_ex),
73
20
  ex_caught_ (false)
74
21
  {
75
22
  }
76
- WXRuby_RBFuncall (const char* fn, bool throw_on_ex=true)
23
+ WXRuby_RBFuncall (const char* fn, bool abort_on_ex=true)
77
24
  : fn_id_ (rb_intern (fn)),
78
- throw_on_ex_ (throw_on_ex),
25
+ abort_on_ex_ (abort_on_ex),
79
26
  ex_caught_ (false)
80
27
  {
81
28
  }
@@ -118,14 +65,13 @@ protected:
118
65
  &invoke_state);
119
66
  if (invoke_state)
120
67
  {
121
- if (this->throw_on_ex_)
68
+ if (this->abort_on_ex_)
122
69
  {
123
70
  // handle exception
124
71
  VALUE rexc = this->get_exception ();
125
72
  VALUE msg = rb_eval_string ("$!.message+\"\\n\"+$!.backtrace.join(\"\\n\")");
126
73
  const char *exc_name = rb_obj_classname(rexc);
127
- wxLogDebug("%s : %s", exc_name, StringValuePtr(msg));
128
- throw Swig::DirectorRubyException(exc_name, StringValuePtr(msg));
74
+ wxLogFatalError("%s : %s", exc_name, StringValuePtr(msg));
129
75
  }
130
76
  else
131
77
  {
@@ -192,7 +138,7 @@ protected:
192
138
 
193
139
  private:
194
140
  ID fn_id_;
195
- bool throw_on_ex_;
141
+ bool abort_on_ex_;
196
142
  bool ex_caught_;
197
143
  };
198
144
 
@@ -1,3 +1,6 @@
1
+ // Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ //
3
+ // This software is released under the MIT license.
1
4
 
2
5
  #ifdef __WXMSW__
3
6
 
@@ -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 typemap mapping classes
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require 'set'
@@ -42,7 +45,7 @@ module WXRuby3
42
45
  elsif STD_STR_TYPES.include?(std_type)
43
46
  'String'
44
47
  elsif STD_BOOL_TYPES.include?(std_type)
45
- 'true,false'
48
+ 'Boolean'
46
49
  else
47
50
  nil
48
51
  end
@@ -61,11 +64,16 @@ module WXRuby3
61
64
  "VOID_#{ctype.tr(' ', '_').upcase}"
62
65
  end
63
66
 
67
+ def self.strip_type_decl(ctype)
68
+ ctype = ctype.gsub(/const\s+/, '')
69
+ ctype.gsub!(/\s+(\*|&)/, '\1')
70
+ ctype.strip!
71
+ ctype.tr!('*&', '')
72
+ ctype
73
+ end
74
+
64
75
  def self.wx_type_to_rb(typestr)
65
- c_type = typestr.gsub(/const\s+/, '')
66
- c_type.gsub!(/\s+(\*|&)/, '\1')
67
- c_type.strip!
68
- c_type.tr!('*&', '')
76
+ c_type = strip_type_decl(typestr)
69
77
  (std_type_maps[c_type] || c_type).sub(/\Awx/, 'Wx::')
70
78
  end
71
79
 
@@ -265,7 +273,7 @@ module WXRuby3
265
273
  end
266
274
 
267
275
  class ArgOut < Base
268
- def initialize(map, as: nil, temp: nil, code: nil, &block)
276
+ def initialize(map, as: nil, by_ref: false, temp: nil, code: nil, &block)
269
277
  super(map, temp: nil, code: code)
270
278
  @as = {}
271
279
  if as
@@ -273,10 +281,11 @@ module WXRuby3
273
281
  elsif !map.types.empty?
274
282
  map.types.each_pair { |pset, type| @as[pset] = _get_mapped_type(type) }
275
283
  end
284
+ @by_ref = by_ref
276
285
  block.call(self) if block
277
286
  end
278
287
 
279
- attr_reader :as
288
+ attr_reader :as, :by_ref
280
289
 
281
290
  def map_as(argdef)
282
291
  _map_args(argdef, @as)
@@ -429,8 +438,8 @@ module WXRuby3
429
438
  @check = FreeArg.new(self, temp: temp, code: code, &block)
430
439
  end
431
440
 
432
- def map_argout(as: nil, temp: nil, code: nil, &block)
433
- @argout = ArgOut.new(self, as: as, temp: temp, code: code, &block)
441
+ def map_argout(as: nil, by_ref: false, temp: nil, code: nil, &block)
442
+ @argout = ArgOut.new(self, as: as, by_ref: by_ref, temp: temp, code: code, &block)
434
443
  end
435
444
 
436
445
  def map_directorin(temp: nil, code: nil, &block)
@@ -505,7 +514,7 @@ module WXRuby3
505
514
  # shift mapped parameters
506
515
  parameters.shift(tm_pset.param_masks.size)
507
516
  # return mappings
508
- return [in_arg, out_arg]
517
+ return [in_arg, out_arg, self]
509
518
  end
510
519
  end
511
520
  nil
@@ -513,9 +522,6 @@ module WXRuby3
513
522
 
514
523
  def map_output(type)
515
524
  if maps_output?
516
- if ignores_output? && ignored_output.include?(type)
517
- return ''
518
- end
519
525
  if (tm_pset = @patterns.detect { |pset| pset == type })
520
526
  return @out.to.has_key?(tm_pset) ? @out.to[tm_pset].type : ''
521
527
  end
@@ -536,15 +542,11 @@ module WXRuby3
536
542
  end
537
543
 
538
544
  def maps_input_as_output?
539
- !!@argout
545
+ @argout && !@argout.by_ref
540
546
  end
541
547
 
542
- def ignores_output?
543
- @out && @out.ignore?
544
- end
545
-
546
- def ignored_output
547
- @out ? @out.ignored : []
548
+ def ignores_output?(type)
549
+ @out && @out.ignore? && @out.ignored.include?(type)
548
550
  end
549
551
 
550
552
  def to_swig
@@ -565,7 +567,7 @@ module WXRuby3
565
567
  @directorin,
566
568
  @directorargout,
567
569
  @varout]
568
- maps << @directorout unless ignores_output?
570
+ maps << @directorout unless @out && @out.ignore?
569
571
  s.concat maps.collect { |mapping| mapping ? mapping.to_swig : nil }.compact
570
572
  else
571
573
  []
@@ -654,7 +656,7 @@ module WXRuby3
654
656
  # shift mapped parameters
655
657
  parameters.shift(@src_pattern.param_masks.size)
656
658
  # return mappings
657
- return [in_arg, out_arg]
659
+ return [in_arg, out_arg, tm_app]
658
660
  end
659
661
  end
660
662
  nil
@@ -662,9 +664,6 @@ module WXRuby3
662
664
 
663
665
  def map_output(type)
664
666
  if maps_output?
665
- if ignores_output? && ignored_output.include?(type)
666
- return ''
667
- end
668
667
  return @applied_maps.detect { |tm| tm.maps_output? }.map_output(type)
669
668
  end
670
669
  nil
@@ -686,14 +685,6 @@ module WXRuby3
686
685
  @applied_maps ? @applied_maps.any? { |map| map.maps_input_as_output? } : false
687
686
  end
688
687
 
689
- def ignores_output?
690
- @applied_maps ? @applied_maps.any? { |map| map.ignores_output? } : false
691
- end
692
-
693
- def ignored_output
694
- ignores_output? ? @applied_maps.detect { |map| map.ignores_output? }.ignored_output : []
695
- end
696
-
697
688
  def to_swig
698
689
  "%apply #{@src_pattern} { #{@patterns.join(', ')} };"
699
690
  end
@@ -769,7 +760,7 @@ module WXRuby3
769
760
  # shift mapped parameters
770
761
  parameters.shift(tm_pset.param_masks.size)
771
762
  # return mappings
772
- return [in_arg, out_arg]
763
+ return [in_arg, out_arg, self]
773
764
  end
774
765
  end
775
766
  nil
@@ -798,14 +789,10 @@ module WXRuby3
798
789
  @maps_out
799
790
  end
800
791
 
801
- def ignores_output?
792
+ def ignores_output?(_)
802
793
  false
803
794
  end
804
795
 
805
- def ignored_output
806
- []
807
- end
808
-
809
796
  def to_swig
810
797
  nil
811
798
  end
@@ -854,15 +841,15 @@ module WXRuby3
854
841
  if @pattern.param_masks.first == parameters.first
855
842
  # just 'map' the parameter to itself
856
843
  param = parameters.shift # loose the 'mapped' parameter
857
- return [RubyArg[Typemap.wx_type_to_rb(param.type), param_offset], nil]
844
+ return [RubyArg[nil, param_offset], nil, self]
858
845
  end
859
846
  nil
860
847
  end
861
848
 
862
849
  def map_output(type)
863
- if matches?(type)
864
- return Typemap.wx_type_to_rb(type)
865
- end
850
+ # if matches?(type)
851
+ # return Typemap.wx_type_to_rb(type)
852
+ # end
866
853
  nil
867
854
  end
868
855
 
@@ -882,14 +869,10 @@ module WXRuby3
882
869
  false
883
870
  end
884
871
 
885
- def ignores_output?
872
+ def ignores_output?(_)
886
873
  false
887
874
  end
888
875
 
889
- def ignored_output
890
- []
891
- end
892
-
893
876
  def to_swig
894
877
  "%clear #{@pattern};"
895
878
  end
@@ -985,31 +968,33 @@ module WXRuby3
985
968
  param_offset = 0
986
969
  args = []
987
970
  ret = []
971
+ maps = []
988
972
  reverse_list = list.reverse_each
989
973
  while !parameters.empty?
990
974
  result = nil
991
975
  param_count = parameters.size
992
976
  reverse_list.detect { |map| result = map.map_input(parameters, param_offset) }
993
- arg_in = arg_out = nil
977
+ arg_in = arg_out = tmap = nil
994
978
  if result
995
- arg_in, arg_out = result
979
+ arg_in, arg_out, tmap = result
996
980
  else
997
- arg_in = RubyArg.new(Typemap.wx_type_to_rb(parameters.first.type), param_offset)
981
+ arg_in = RubyArg.new(nil, param_offset)
998
982
  parameters.shift # loose the mapped param
999
983
  end
1000
984
  # store mapped param
1001
985
  args << arg_in if arg_in
1002
986
  ret << arg_out if arg_out
987
+ maps << tmap if tmap
1003
988
  # calculate new param offset
1004
989
  param_offset += (param_count - parameters.size)
1005
990
  end
1006
- [args, ret]
991
+ [args, ret, maps]
1007
992
  end
1008
993
 
1009
994
  def map_output(type)
1010
995
  result = nil
1011
996
  list.reverse_each.detect { |map| result = map.map_output(type) }
1012
- result || Typemap.wx_type_to_rb(type)
997
+ result
1013
998
  end
1014
999
 
1015
1000
  def to_swig
@@ -1027,7 +1012,7 @@ module WXRuby3
1027
1012
  STD_INT_TYPES => 'Integer',
1028
1013
  STD_STR_TYPES => 'String',
1029
1014
  STD_FLOAT_TYPES => 'Float',
1030
- STD_BOOL_TYPES => 'true,false'
1015
+ STD_BOOL_TYPES => 'Boolean'
1031
1016
  }.inject(Typemap::Collection.new) do |list, (ctypes, rbtype)|
1032
1017
  unless rbtype == 'String'
1033
1018
  list << SystemMap.new(*ctypes.collect { |t| ["#{t} * OUTPUT", "#{t} & OUTPUT"]}.flatten,
@@ -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 extension library Package class
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
@@ -15,13 +18,14 @@ module WXRuby3
15
18
  @name = name
16
19
  @parent = parent
17
20
  @required_features = ::Set.new
21
+ @dependencies = ::Set.new
18
22
  @directors = []
19
23
  @director_index = {}
20
24
  @subpackages = {}
21
25
  @event_docs = {}
22
26
  end
23
27
 
24
- attr_reader :name, :parent, :required_features, :directors, :director_index, :subpackages, :event_docs
28
+ attr_reader :name, :parent, :required_features, :dependencies, :directors, :director_index, :subpackages, :event_docs
25
29
 
26
30
  def is_core?
27
31
  name == 'Wx' && !parent
@@ -88,6 +92,11 @@ module WXRuby3
88
92
  self
89
93
  end
90
94
 
95
+ def depends_on(*pkgs)
96
+ dependencies.merge(pkgs.flatten)
97
+ self
98
+ end
99
+
91
100
  def add_director(spec)
92
101
  dir = spec.director.new(spec)
93
102
  director_index[spec.name] = dir
@@ -102,6 +111,7 @@ module WXRuby3
102
111
  def director_for_class(class_name)
103
112
  dir = included_directors.detect { |dir| dir.spec.module_name == class_name || dir.spec.items.include?(class_name) }
104
113
  subpackages.each_value.detect { |spkg| dir = spkg.director_for_class(class_name) } if dir.nil?
114
+ dependencies.detect { |pkgdep| dir = pkgdep.director_for_class(class_name) } if dir.nil?
105
115
  dir = parent.director_for_class(class_name) if dir.nil? && parent
106
116
  dir
107
117
  end
@@ -145,7 +155,11 @@ module WXRuby3
145
155
  end
146
156
 
147
157
  def dep_libs
148
- parent ? parent.dep_libs + [File.join(Config.instance.dest_dir, "#{parent.libname}.#{Config.instance.dll_ext}")] : []
158
+ if parent
159
+ parent.dep_libs + [File.join(Config.instance.dest_dir, "#{parent.libname}.#{Config.instance.dll_ext}")]
160
+ else
161
+ []
162
+ end
149
163
  end
150
164
 
151
165
  def dep_libnames
@@ -585,6 +599,9 @@ module WXRuby3
585
599
  # Integer constant reflecting the sub-release number of the wxWidgets release used to build wxRuby
586
600
  WXWIDGETS_SUBRELEASE_NUMBER = \#{Wx::WXWIDGETS_SUBRELEASE_NUMBER}
587
601
 
602
+ # Integer constant reflecting the wxWidgets wxDEBUG_LEVEL
603
+ WXWIDGETS_DEBUG_LEVEL = \#{Wx::WXWIDGETS_DEBUG_LEVEL}
604
+
588
605
  # Boolean constant indicating if wxRuby was build in debug (true) or release (false) mode
589
606
  DEBUG = \#{Wx::DEBUG}
590
607
 
@@ -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 typemap Parameter class
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 Director specs class
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './mapping'
@@ -43,6 +46,7 @@ module WXRuby3
43
46
  @interface_extensions = ::Hash.new
44
47
  @folded_bases = ::Hash.new
45
48
  @abstracts = ::Hash.new
49
+ @disowned_alloc = ::Set.new
46
50
  @mixins = ::Set.new
47
51
  @included_mixins = ::Hash.new
48
52
  @items = [modname]
@@ -60,7 +64,6 @@ module WXRuby3
60
64
  @disowns = ::Set.new
61
65
  @new_objects = ::Set.new
62
66
  @warn_filters = ::Hash.new
63
- @only_for = ::Hash.new
64
67
  @includes = ::Set.new
65
68
  @swig_imports = {prepend: ::Set.new, append: ::Set.new}
66
69
  @swig_includes = ::Set.new
@@ -81,7 +84,7 @@ module WXRuby3
81
84
  end
82
85
 
83
86
  attr_reader :director, :package, :module_name, :name, :items, :folded_bases, :ignores, :regards, :readonly, :contracts, :event_overrides,
84
- :mixins, :included_mixins, :disabled_proxies, :no_proxies, :disowns, :new_objects, :warn_filters, :only_for,
87
+ :mixins, :included_mixins, :disabled_proxies, :no_proxies, :disowns, :new_objects, :warn_filters,
85
88
  :includes, :swig_imports, :swig_includes, :renames, :swig_code, :begin_code,
86
89
  :runtime_code, :header_code, :wrapper_code, :extend_code, :init_code, :interface_code,
87
90
  :nogen_sections, :post_processors, :requirements, :type_maps
@@ -134,6 +137,15 @@ module WXRuby3
134
137
  (!doc || doc_override) ? supers : nil
135
138
  end
136
139
 
140
+ def is_derived_from?(class_def, base_name)
141
+ base = inheritance_override(class_def.name)
142
+ if base
143
+ !!Extractor::ClassDef.find_base({base.name => base}, base_name)
144
+ else
145
+ class_def.is_derived_from?(base_name)
146
+ end
147
+ end
148
+
137
149
  def extend_interface(cls, *declarations, visibility: 'public')
138
150
  ((@interface_extensions[cls] ||= {})[visibility] ||= ::Set.new).merge declarations.flatten
139
151
  self
@@ -165,7 +177,7 @@ module WXRuby3
165
177
  @gc_type = :GC_NEVER
166
178
  else
167
179
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
168
- names.each {|n| @gc_type[n] = :GC_NEVER }
180
+ names.flatten.each {|n| @gc_type[n] = :GC_NEVER }
169
181
  end
170
182
  self
171
183
  end
@@ -175,7 +187,7 @@ module WXRuby3
175
187
  @gc_type = :GC_MANAGE_AS_OBJECT
176
188
  else
177
189
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
178
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_OBJECT }
190
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_OBJECT }
179
191
  end
180
192
  self
181
193
  end
@@ -185,7 +197,7 @@ module WXRuby3
185
197
  @gc_type = :GC_MANAGE_AS_WINDOW
186
198
  else
187
199
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
188
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_WINDOW }
200
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_WINDOW }
189
201
  end
190
202
  self
191
203
  end
@@ -195,7 +207,7 @@ module WXRuby3
195
207
  @gc_type = :GC_MANAGE_AS_FRAME
196
208
  else
197
209
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
198
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_FRAME }
210
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_FRAME }
199
211
  end
200
212
  self
201
213
  end
@@ -205,7 +217,7 @@ module WXRuby3
205
217
  @gc_type = :GC_MANAGE_AS_DIALOG
206
218
  else
207
219
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
208
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_DIALOG }
220
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_DIALOG }
209
221
  end
210
222
  self
211
223
  end
@@ -215,7 +227,7 @@ module WXRuby3
215
227
  @gc_type = :GC_MANAGE_AS_EVENT
216
228
  else
217
229
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
218
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_EVENT }
230
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_EVENT }
219
231
  end
220
232
  self
221
233
  end
@@ -225,7 +237,7 @@ module WXRuby3
225
237
  @gc_type = :GC_MANAGE_AS_SIZER
226
238
  else
227
239
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
228
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_SIZER }
240
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_SIZER }
229
241
  end
230
242
  self
231
243
  end
@@ -235,7 +247,7 @@ module WXRuby3
235
247
  @gc_type = :GC_MANAGE_AS_REFCOUNTED
236
248
  else
237
249
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
238
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_REFCOUNTED }
250
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_REFCOUNTED }
239
251
  end
240
252
  self
241
253
  end
@@ -245,7 +257,7 @@ module WXRuby3
245
257
  @gc_type = :GC_MANAGE_AS_UNTRACKED_REFCOUNTED
246
258
  else
247
259
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
248
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_UNTRACKED_REFCOUNTED }
260
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_UNTRACKED_REFCOUNTED }
249
261
  end
250
262
  self
251
263
  end
@@ -255,7 +267,7 @@ module WXRuby3
255
267
  @gc_type = :GC_MANAGE_AS_UNTRACKED
256
268
  else
257
269
  @gc_type = ::Hash.new unless @gc_type.is_a?(::Hash)
258
- names.each {|n| @gc_type[n] = :GC_MANAGE_AS_UNTRACKED }
270
+ names.flatten.each {|n| @gc_type[n] = :GC_MANAGE_AS_UNTRACKED }
259
271
  end
260
272
  self
261
273
  end
@@ -283,6 +295,16 @@ module WXRuby3
283
295
  self
284
296
  end
285
297
 
298
+ def allocate_disowned(cls)
299
+ @disowned_alloc << cls
300
+ post_processors << :fix_disowned_alloc unless post_processors.include? :fix_disowned_alloc
301
+ self
302
+ end
303
+
304
+ def allocate_disowned?(cls)
305
+ @disowned_alloc.include?(cls)
306
+ end
307
+
286
308
  def abstract?(cls)
287
309
  @abstracts.has_key?(cls) && @abstracts[cls]
288
310
  end
@@ -375,11 +397,6 @@ module WXRuby3
375
397
  self
376
398
  end
377
399
 
378
- def set_only_for(id, *names)
379
- (@only_for[id.to_s] ||= ::Set.new).merge(names.flatten)
380
- self
381
- end
382
-
383
400
  def include(*paths)
384
401
  @includes.merge(paths.flatten)
385
402
  self