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
data/rakelib/doc.rb CHANGED
@@ -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 rake doc generation support
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
8
+
5
9
  require_relative './lib/config'
6
10
 
7
11
  if WXRuby3.is_bootstrapped?
data/rakelib/install.rake CHANGED
@@ -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 file
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  namespace :wxruby do
data/rakelib/install.rb CHANGED
@@ -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 install support
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require 'optparse'
@@ -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 buildtools configuration
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  raise "Cygwin platform is unsupported as yet."
@@ -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 buildtools configuration
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './unixish'
@@ -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 buildtools configuration
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './unixish'
@@ -85,7 +88,7 @@ module WXRuby3
85
88
  private
86
89
 
87
90
  def wx_configure
88
- bash('./configure --disable-sys-libs --without-liblzma --prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info')
91
+ bash('./configure --disable-optimise --disable-sys-libs --without-liblzma --prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info CFLAGS="-Wno-unused-but-set-variable"')
89
92
  end
90
93
 
91
94
  def wx_make
@@ -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 buildtools configuration
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative './unixish'
@@ -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 buildtools configuration
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  raise "NETBSD platform is unsupported as yet."
@@ -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 buildtools configuration
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require 'set'
@@ -155,17 +158,17 @@ module WXRuby3
155
158
  @wx_version = wx_config('--version')
156
159
  @wx_port = case wx_config('--selected-config')
157
160
  when /\Agtk/
158
- :wxGTK
161
+ :wxgtk
159
162
  when /\Aqt/
160
- :wxQT
163
+ :wxqt
161
164
  when /\Ax11/
162
- :wxX11
165
+ :wxx11
163
166
  when /\Amotif/
164
- :wxMOTIF
167
+ :wxmotif
165
168
  when /\Amsw/
166
- :wxMSW
169
+ :wxmsw
167
170
  when /\Aosx/
168
- :wxOSX
171
+ :wxosx
169
172
  else
170
173
  nil
171
174
  end
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 buildtools configuration
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require 'rbconfig'
@@ -189,14 +192,16 @@ module WXRuby3
189
192
  private :bash
190
193
 
191
194
  def test(*tests, **options)
195
+ errors = 0
192
196
  tests = Dir.glob(File.join(Config.instance.test_dir, '*.rb')) if tests.empty?
193
197
  tests.each do |test|
194
198
  unless File.exist?(test)
195
199
  test = File.join(Config.instance.test_dir, test)
196
200
  test = Dir.glob(test+'.rb').shift || test unless File.exist?(test)
197
201
  end
198
- Rake.sh(Config.instance.exec_env, *make_ruby_cmd(test))
202
+ Rake.sh(Config.instance.exec_env, *make_ruby_cmd(test)) { |ok,status| errors += 1 unless ok }
199
203
  end
204
+ fail "ERRORS: ##{errors} test scripts failed." if errors>0
200
205
  end
201
206
 
202
207
  def irb(**options)
@@ -1,5 +1,8 @@
1
+ // Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ //
3
+ // This software is released under the MIT license.
4
+
1
5
  // wxRuby3 Wx::Enum class embedded implementation
2
- // Copyright (c) M.J.N. Corino, The Netherlands
3
6
 
4
7
  VALUE cWxEnum;
5
8
 
@@ -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
@@ -270,7 +273,7 @@ module WXRuby3
270
273
  end
271
274
 
272
275
  class ArgOut < Base
273
- def initialize(map, as: nil, temp: nil, code: nil, &block)
276
+ def initialize(map, as: nil, by_ref: false, temp: nil, code: nil, &block)
274
277
  super(map, temp: nil, code: code)
275
278
  @as = {}
276
279
  if as
@@ -278,10 +281,11 @@ module WXRuby3
278
281
  elsif !map.types.empty?
279
282
  map.types.each_pair { |pset, type| @as[pset] = _get_mapped_type(type) }
280
283
  end
284
+ @by_ref = by_ref
281
285
  block.call(self) if block
282
286
  end
283
287
 
284
- attr_reader :as
288
+ attr_reader :as, :by_ref
285
289
 
286
290
  def map_as(argdef)
287
291
  _map_args(argdef, @as)
@@ -434,8 +438,8 @@ module WXRuby3
434
438
  @check = FreeArg.new(self, temp: temp, code: code, &block)
435
439
  end
436
440
 
437
- def map_argout(as: nil, temp: nil, code: nil, &block)
438
- @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)
439
443
  end
440
444
 
441
445
  def map_directorin(temp: nil, code: nil, &block)
@@ -510,7 +514,7 @@ module WXRuby3
510
514
  # shift mapped parameters
511
515
  parameters.shift(tm_pset.param_masks.size)
512
516
  # return mappings
513
- return [in_arg, out_arg]
517
+ return [in_arg, out_arg, self]
514
518
  end
515
519
  end
516
520
  nil
@@ -518,9 +522,6 @@ module WXRuby3
518
522
 
519
523
  def map_output(type)
520
524
  if maps_output?
521
- if ignores_output? && ignored_output.include?(type)
522
- return ''
523
- end
524
525
  if (tm_pset = @patterns.detect { |pset| pset == type })
525
526
  return @out.to.has_key?(tm_pset) ? @out.to[tm_pset].type : ''
526
527
  end
@@ -541,15 +542,11 @@ module WXRuby3
541
542
  end
542
543
 
543
544
  def maps_input_as_output?
544
- !!@argout
545
- end
546
-
547
- def ignores_output?
548
- @out && @out.ignore?
545
+ @argout && !@argout.by_ref
549
546
  end
550
547
 
551
- def ignored_output
552
- @out ? @out.ignored : []
548
+ def ignores_output?(type)
549
+ @out && @out.ignore? && @out.ignored.include?(type)
553
550
  end
554
551
 
555
552
  def to_swig
@@ -570,7 +567,7 @@ module WXRuby3
570
567
  @directorin,
571
568
  @directorargout,
572
569
  @varout]
573
- maps << @directorout unless ignores_output?
570
+ maps << @directorout unless @out && @out.ignore?
574
571
  s.concat maps.collect { |mapping| mapping ? mapping.to_swig : nil }.compact
575
572
  else
576
573
  []
@@ -659,7 +656,7 @@ module WXRuby3
659
656
  # shift mapped parameters
660
657
  parameters.shift(@src_pattern.param_masks.size)
661
658
  # return mappings
662
- return [in_arg, out_arg]
659
+ return [in_arg, out_arg, tm_app]
663
660
  end
664
661
  end
665
662
  nil
@@ -667,9 +664,6 @@ module WXRuby3
667
664
 
668
665
  def map_output(type)
669
666
  if maps_output?
670
- if ignores_output? && ignored_output.include?(type)
671
- return ''
672
- end
673
667
  return @applied_maps.detect { |tm| tm.maps_output? }.map_output(type)
674
668
  end
675
669
  nil
@@ -691,14 +685,6 @@ module WXRuby3
691
685
  @applied_maps ? @applied_maps.any? { |map| map.maps_input_as_output? } : false
692
686
  end
693
687
 
694
- def ignores_output?
695
- @applied_maps ? @applied_maps.any? { |map| map.ignores_output? } : false
696
- end
697
-
698
- def ignored_output
699
- ignores_output? ? @applied_maps.detect { |map| map.ignores_output? }.ignored_output : []
700
- end
701
-
702
688
  def to_swig
703
689
  "%apply #{@src_pattern} { #{@patterns.join(', ')} };"
704
690
  end
@@ -774,7 +760,7 @@ module WXRuby3
774
760
  # shift mapped parameters
775
761
  parameters.shift(tm_pset.param_masks.size)
776
762
  # return mappings
777
- return [in_arg, out_arg]
763
+ return [in_arg, out_arg, self]
778
764
  end
779
765
  end
780
766
  nil
@@ -803,14 +789,10 @@ module WXRuby3
803
789
  @maps_out
804
790
  end
805
791
 
806
- def ignores_output?
792
+ def ignores_output?(_)
807
793
  false
808
794
  end
809
795
 
810
- def ignored_output
811
- []
812
- end
813
-
814
796
  def to_swig
815
797
  nil
816
798
  end
@@ -859,7 +841,7 @@ module WXRuby3
859
841
  if @pattern.param_masks.first == parameters.first
860
842
  # just 'map' the parameter to itself
861
843
  param = parameters.shift # loose the 'mapped' parameter
862
- return [RubyArg[nil, param_offset], nil]
844
+ return [RubyArg[nil, param_offset], nil, self]
863
845
  end
864
846
  nil
865
847
  end
@@ -887,14 +869,10 @@ module WXRuby3
887
869
  false
888
870
  end
889
871
 
890
- def ignores_output?
872
+ def ignores_output?(_)
891
873
  false
892
874
  end
893
875
 
894
- def ignored_output
895
- []
896
- end
897
-
898
876
  def to_swig
899
877
  "%clear #{@pattern};"
900
878
  end
@@ -990,14 +968,15 @@ module WXRuby3
990
968
  param_offset = 0
991
969
  args = []
992
970
  ret = []
971
+ maps = []
993
972
  reverse_list = list.reverse_each
994
973
  while !parameters.empty?
995
974
  result = nil
996
975
  param_count = parameters.size
997
976
  reverse_list.detect { |map| result = map.map_input(parameters, param_offset) }
998
- arg_in = arg_out = nil
977
+ arg_in = arg_out = tmap = nil
999
978
  if result
1000
- arg_in, arg_out = result
979
+ arg_in, arg_out, tmap = result
1001
980
  else
1002
981
  arg_in = RubyArg.new(nil, param_offset)
1003
982
  parameters.shift # loose the mapped param
@@ -1005,10 +984,11 @@ module WXRuby3
1005
984
  # store mapped param
1006
985
  args << arg_in if arg_in
1007
986
  ret << arg_out if arg_out
987
+ maps << tmap if tmap
1008
988
  # calculate new param offset
1009
989
  param_offset += (param_count - parameters.size)
1010
990
  end
1011
- [args, ret]
991
+ [args, ret, maps]
1012
992
  end
1013
993
 
1014
994
  def map_output(type)
@@ -1032,7 +1012,7 @@ module WXRuby3
1032
1012
  STD_INT_TYPES => 'Integer',
1033
1013
  STD_STR_TYPES => 'String',
1034
1014
  STD_FLOAT_TYPES => 'Float',
1035
- STD_BOOL_TYPES => 'true,false'
1015
+ STD_BOOL_TYPES => 'Boolean'
1036
1016
  }.inject(Typemap::Collection.new) do |list, (ctypes, rbtype)|
1037
1017
  unless rbtype == 'String'
1038
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
@@ -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'
@@ -61,7 +64,6 @@ module WXRuby3
61
64
  @disowns = ::Set.new
62
65
  @new_objects = ::Set.new
63
66
  @warn_filters = ::Hash.new
64
- @only_for = ::Hash.new
65
67
  @includes = ::Set.new
66
68
  @swig_imports = {prepend: ::Set.new, append: ::Set.new}
67
69
  @swig_includes = ::Set.new
@@ -82,7 +84,7 @@ module WXRuby3
82
84
  end
83
85
 
84
86
  attr_reader :director, :package, :module_name, :name, :items, :folded_bases, :ignores, :regards, :readonly, :contracts, :event_overrides,
85
- :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,
86
88
  :includes, :swig_imports, :swig_includes, :renames, :swig_code, :begin_code,
87
89
  :runtime_code, :header_code, :wrapper_code, :extend_code, :init_code, :interface_code,
88
90
  :nogen_sections, :post_processors, :requirements, :type_maps
@@ -135,6 +137,15 @@ module WXRuby3
135
137
  (!doc || doc_override) ? supers : nil
136
138
  end
137
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
+
138
149
  def extend_interface(cls, *declarations, visibility: 'public')
139
150
  ((@interface_extensions[cls] ||= {})[visibility] ||= ::Set.new).merge declarations.flatten
140
151
  self
@@ -386,11 +397,6 @@ module WXRuby3
386
397
  self
387
398
  end
388
399
 
389
- def set_only_for(id, *names)
390
- (@only_for[id.to_s] ||= ::Set.new).merge(names.flatten)
391
- self
392
- end
393
-
394
400
  def include(*paths)
395
401
  @includes.merge(paths.flatten)
396
402
  self