wxruby3 0.9.0.pre.rc.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/mkrf_conf_srcgem.rb +4 -1
  4. data/ext/wxruby3/include/wxruby-Config.h +953 -0
  5. data/ext/wxruby3/include/wxruby-ScaledDC.h +4 -1
  6. data/ext/wxruby3/include/wxruby-runtime.h +10 -1
  7. data/ext/wxruby3/swig/RubyStockObjects.i +5 -3
  8. data/ext/wxruby3/swig/common.i +8 -3
  9. data/ext/wxruby3/swig/mark_free_impl.i +6 -4
  10. data/ext/wxruby3/swig/memory_management.i +5 -3
  11. data/ext/wxruby3/swig/typedefs.i +5 -3
  12. data/ext/wxruby3/swig/wx.i +5 -0
  13. data/ext/wxruby3/swig/wx.rc +4 -2
  14. data/lib/wx/accessors.rb +10 -2
  15. data/lib/wx/aui/auifloatframe.rb +20 -0
  16. data/lib/wx/aui/auimanager.rb +3 -0
  17. data/lib/wx/aui/auinotebook.rb +17 -0
  18. data/lib/wx/aui/require.rb +5 -1
  19. data/lib/wx/aui.rb +4 -1
  20. data/lib/wx/core/acceleratortable.rb +8 -0
  21. data/lib/wx/core/animation.rb +8 -0
  22. data/lib/wx/core/app.rb +8 -0
  23. data/lib/wx/core/array_ext.rb +7 -0
  24. data/lib/wx/core/art_locator.rb +7 -0
  25. data/lib/wx/core/artprovider.rb +9 -0
  26. data/lib/wx/core/bitmap.rb +16 -4
  27. data/lib/wx/core/bitmap_combobox.rb +7 -0
  28. data/lib/wx/core/brush.rb +7 -0
  29. data/lib/wx/core/busycursor.rb +9 -0
  30. data/lib/wx/core/choice.rb +7 -0
  31. data/lib/wx/core/choicedlg.rb +7 -0
  32. data/lib/wx/core/clientdc.rb +9 -0
  33. data/lib/wx/core/clipboard.rb +8 -0
  34. data/lib/wx/core/collapsible_pane.rb +8 -1
  35. data/lib/wx/core/colour.rb +8 -0
  36. data/lib/wx/core/combo_ctrl.rb +110 -0
  37. data/lib/wx/core/combobox.rb +7 -0
  38. data/lib/wx/core/config.rb +303 -0
  39. data/lib/wx/core/controlwithitems.rb +12 -1
  40. data/lib/wx/core/cursor.rb +14 -4
  41. data/lib/wx/core/data_object.rb +7 -0
  42. data/lib/wx/core/dataformat.rb +9 -0
  43. data/lib/wx/core/datetime.rb +14 -0
  44. data/lib/wx/core/dc.rb +7 -0
  45. data/lib/wx/core/dialog.rb +18 -1
  46. data/lib/wx/core/enum.rb +7 -0
  47. data/lib/wx/core/event.rb +7 -0
  48. data/lib/wx/core/event_blocker.rb +7 -0
  49. data/lib/wx/core/event_loop.rb +7 -0
  50. data/lib/wx/core/evthandler.rb +8 -0
  51. data/lib/wx/core/ext.rb +7 -0
  52. data/lib/wx/core/file_dialog.rb +23 -0
  53. data/lib/wx/core/find_replace_dialog.rb +7 -0
  54. data/lib/wx/core/functions.rb +8 -0
  55. data/lib/wx/core/gauge.rb +10 -1
  56. data/lib/wx/core/genericdirctrl.rb +9 -0
  57. data/lib/wx/core/hboxsizer.rb +16 -0
  58. data/lib/wx/core/helpcontroller.rb +8 -0
  59. data/lib/wx/core/helpcontrollerhelpprovider.rb +9 -0
  60. data/lib/wx/core/helpprovider.rb +10 -1
  61. data/lib/wx/core/icon.rb +17 -6
  62. data/lib/wx/core/id_helper.rb +7 -0
  63. data/lib/wx/core/image.rb +16 -4
  64. data/lib/wx/core/imagelist.rb +8 -1
  65. data/lib/wx/core/listbox.rb +7 -0
  66. data/lib/wx/core/listctrl.rb +9 -0
  67. data/lib/wx/core/locale.rb +8 -0
  68. data/lib/wx/core/log.rb +24 -0
  69. data/lib/wx/core/menu.rb +9 -0
  70. data/lib/wx/core/menu_bar.rb +7 -0
  71. data/lib/wx/core/menuitem.rb +9 -0
  72. data/lib/wx/core/notebook.rb +9 -0
  73. data/lib/wx/core/object.rb +9 -0
  74. data/lib/wx/core/paintdc.rb +7 -0
  75. data/lib/wx/core/pen.rb +7 -0
  76. data/lib/wx/core/pen_info.rb +7 -0
  77. data/lib/wx/core/platform_info.rb +7 -0
  78. data/lib/wx/core/point.rb +8 -0
  79. data/lib/wx/core/real_point.rb +8 -0
  80. data/lib/wx/core/rect.rb +9 -0
  81. data/lib/wx/core/region_iterator.rb +7 -0
  82. data/lib/wx/core/simplehelpprovider.rb +9 -0
  83. data/lib/wx/core/size.rb +8 -0
  84. data/lib/wx/core/sizer.rb +9 -0
  85. data/lib/wx/core/splash_screen.rb +22 -2
  86. data/lib/wx/core/text_entry.rb +7 -0
  87. data/lib/wx/core/textctrl.rb +86 -5
  88. data/lib/wx/core/timer.rb +9 -0
  89. data/lib/wx/core/toolbar.rb +9 -0
  90. data/lib/wx/core/toolbartool.rb +8 -0
  91. data/lib/wx/core/treectrl.rb +9 -0
  92. data/lib/wx/core/v_list_box.rb +7 -0
  93. data/lib/wx/core/validator.rb +7 -0
  94. data/lib/wx/core/variant.rb +7 -0
  95. data/lib/wx/core/vboxsizer.rb +16 -0
  96. data/lib/wx/core/window.rb +8 -0
  97. data/lib/wx/core/window_update_locker.rb +9 -0
  98. data/lib/wx/core/xmlresource.rb +8 -0
  99. data/lib/wx/core.rb +4 -1
  100. data/lib/wx/doc/app.rb +7 -1
  101. data/lib/wx/doc/array_ext.rb +6 -0
  102. data/lib/wx/doc/art_locator.rb +7 -0
  103. data/lib/wx/doc/aui/auimanager.rb +6 -0
  104. data/lib/wx/doc/aui/auinotebook.rb +6 -0
  105. data/lib/wx/doc/bitmap.rb +12 -4
  106. data/lib/wx/doc/brush.rb +6 -0
  107. data/lib/wx/doc/busy_info.rb +6 -0
  108. data/lib/wx/doc/client_dc.rb +6 -0
  109. data/lib/wx/doc/clipboard.rb +6 -0
  110. data/lib/wx/doc/colour_dialog.rb +6 -0
  111. data/lib/wx/doc/config.rb +190 -0
  112. data/lib/wx/doc/const.rb +7 -0
  113. data/lib/wx/doc/controlwithitems.rb +6 -0
  114. data/lib/wx/doc/core.rb +6 -0
  115. data/lib/wx/doc/cursor.rb +13 -5
  116. data/lib/wx/doc/data_object.rb +6 -0
  117. data/lib/wx/doc/datetime.rb +16 -0
  118. data/lib/wx/doc/dc.rb +6 -0
  119. data/lib/wx/doc/enum.rb +8 -1
  120. data/lib/wx/doc/event.rb +12 -0
  121. data/lib/wx/doc/event_blocker.rb +6 -0
  122. data/lib/wx/doc/event_loop.rb +6 -0
  123. data/lib/wx/doc/events.rb +6 -0
  124. data/lib/wx/doc/evthandler.rb +8 -0
  125. data/lib/wx/doc/extra/01_packages.md +52 -51
  126. data/lib/wx/doc/extra/05_event-handling.md +37 -12
  127. data/lib/wx/doc/extra/06_geometry.md +5 -5
  128. data/lib/wx/doc/extra/07_colour_and_font.md +2 -2
  129. data/lib/wx/doc/extra/09_exceptions.md +1 -1
  130. data/lib/wx/doc/extra/10_art.md +18 -12
  131. data/lib/wx/doc/extra/11_drawing_and_dc.md +4 -4
  132. data/lib/wx/doc/font.rb +6 -0
  133. data/lib/wx/doc/font_data.rb +16 -0
  134. data/lib/wx/doc/functions.rb +9 -1
  135. data/lib/wx/doc/gc_dc.rb +6 -0
  136. data/lib/wx/doc/gdi_common.rb +8 -1
  137. data/lib/wx/doc/graphics_context.rb +59 -39
  138. data/lib/wx/doc/grid/grid.rb +16 -1
  139. data/lib/wx/doc/hboxsizer.rb +33 -0
  140. data/lib/wx/doc/help_controller.rb +6 -0
  141. data/lib/wx/doc/html/html_help_controller.rb +6 -0
  142. data/lib/wx/doc/icon.rb +13 -5
  143. data/lib/wx/doc/id_helper.rb +6 -0
  144. data/lib/wx/doc/image.rb +12 -4
  145. data/lib/wx/doc/list_ctrl.rb +6 -0
  146. data/lib/wx/doc/log.rb +17 -0
  147. data/lib/wx/doc/memory_dc.rb +6 -0
  148. data/lib/wx/doc/mirror_dc.rb +6 -0
  149. data/lib/wx/doc/pen.rb +6 -0
  150. data/lib/wx/doc/pg/events.rb +6 -0
  151. data/lib/wx/doc/pg/pg_property.rb +17 -0
  152. data/lib/wx/doc/pg/pgeditor.rb +6 -0
  153. data/lib/wx/doc/pg/property_grid.rb +6 -0
  154. data/lib/wx/doc/pg/property_grid_interface.rb +6 -0
  155. data/lib/wx/doc/progress_dialog.rb +6 -0
  156. data/lib/wx/doc/prt/page_setup_dialog.rb +6 -0
  157. data/lib/wx/doc/prt/print_data.rb +6 -0
  158. data/lib/wx/doc/prt/print_dialog.rb +6 -0
  159. data/lib/wx/doc/prt/printer.rb +6 -0
  160. data/lib/wx/doc/prt/printer_dc.rb +6 -0
  161. data/lib/wx/doc/radio_box.rb +6 -0
  162. data/lib/wx/doc/rbn/ribbon_bar.rb +6 -0
  163. data/lib/wx/doc/rbn/ribbon_button_bar.rb +6 -0
  164. data/lib/wx/doc/rbn/ribbon_gallery.rb +6 -0
  165. data/lib/wx/doc/rbn/ribbon_tool_bar.rb +6 -0
  166. data/lib/wx/doc/region_iterator.rb +6 -0
  167. data/lib/wx/doc/rtc/richtext_buffer.rb +28 -0
  168. data/lib/wx/doc/rtc/richtext_formatting_dialog.rb +68 -0
  169. data/lib/wx/doc/rtc/richtext_printing.rb +6 -0
  170. data/lib/wx/doc/rtc/richtext_style_sheet.rb +20 -0
  171. data/lib/wx/doc/scaled_dc.rb +6 -0
  172. data/lib/wx/doc/screen_dc.rb +6 -0
  173. data/lib/wx/doc/stock_objects.rb +6 -0
  174. data/lib/wx/doc/stream.rb +6 -0
  175. data/lib/wx/doc/svg_file_dc.rb +6 -0
  176. data/lib/wx/doc/system_settings.rb +6 -0
  177. data/lib/wx/doc/text_validator.rb +6 -0
  178. data/lib/wx/doc/textctrl.rb +89 -0
  179. data/lib/wx/doc/tree_event.rb +20 -0
  180. data/lib/wx/doc/treebook.rb +6 -0
  181. data/lib/wx/doc/v_list_box.rb +6 -0
  182. data/lib/wx/doc/variant.rb +6 -0
  183. data/lib/wx/doc/vboxsizer.rb +33 -0
  184. data/lib/wx/doc/window.rb +6 -0
  185. data/lib/wx/doc/window_disabler.rb +6 -0
  186. data/lib/wx/doc/xml_resource.rb +8 -0
  187. data/lib/wx/global_const.rb +4 -1
  188. data/lib/wx/grid/grid.rb +23 -3
  189. data/lib/wx/grid/keyword_defs.rb +8 -1
  190. data/lib/wx/grid/require.rb +4 -1
  191. data/lib/wx/grid.rb +4 -1
  192. data/lib/wx/helpers.rb +8 -1
  193. data/lib/wx/html/htmlhelpcontroller.rb +29 -3
  194. data/lib/wx/html/htmlwindow.rb +23 -12
  195. data/lib/wx/html/keyword_defs.rb +8 -1
  196. data/lib/wx/html/require.rb +4 -1
  197. data/lib/wx/html/simple_html_listbox.rb +3 -0
  198. data/lib/wx/html.rb +4 -1
  199. data/lib/wx/keyword_ctors.rb +22 -3
  200. data/lib/wx/keyword_defs.rb +55 -3
  201. data/lib/wx/pg/events.rb +4 -1
  202. data/lib/wx/pg/keyword_defs.rb +8 -1
  203. data/lib/wx/pg/pg_editor.rb +3 -0
  204. data/lib/wx/pg/pg_properties.rb +4 -1
  205. data/lib/wx/pg/pg_property.rb +18 -5
  206. data/lib/wx/pg/property_grid.rb +4 -1
  207. data/lib/wx/pg/property_grid_interface.rb +3 -0
  208. data/lib/wx/pg/require.rb +4 -1
  209. data/lib/wx/pg.rb +4 -1
  210. data/lib/wx/prt/keyword_defs.rb +8 -1
  211. data/lib/wx/prt/page_setup_dialog.rb +3 -0
  212. data/lib/wx/prt/previewframe.rb +5 -0
  213. data/lib/wx/prt/require.rb +4 -1
  214. data/lib/wx/prt.rb +4 -1
  215. data/lib/wx/rbn/events.rb +4 -1
  216. data/lib/wx/rbn/keyword_defs.rb +8 -1
  217. data/lib/wx/rbn/require.rb +5 -1
  218. data/lib/wx/rbn/ribbon_art_provider.rb +3 -1
  219. data/lib/wx/rbn/ribbon_bar.rb +3 -0
  220. data/lib/wx/rbn/ribbon_button_bar.rb +3 -0
  221. data/lib/wx/rbn/ribbon_control.rb +3 -0
  222. data/lib/wx/rbn/ribbon_gallery.rb +10 -0
  223. data/lib/wx/rbn/ribbon_page.rb +3 -0
  224. data/lib/wx/rbn/ribbon_panel.rb +3 -0
  225. data/lib/wx/rbn/ribbon_tool_bar.rb +3 -0
  226. data/lib/wx/rbn.rb +4 -1
  227. data/lib/wx/rtc/ext.rb +4 -1
  228. data/lib/wx/rtc/keyword_defs.rb +18 -7
  229. data/lib/wx/rtc/require.rb +8 -1
  230. data/lib/wx/rtc/richtext_buffer.rb +36 -0
  231. data/lib/wx/rtc/richtext_formatting_dialog.rb +88 -0
  232. data/lib/wx/rtc/richtext_style_organiser_dialog.rb +46 -0
  233. data/lib/wx/rtc/symbol_picker_dialog.rb +47 -0
  234. data/lib/wx/rtc.rb +5 -1
  235. data/lib/wx/stc/keyword_defs.rb +8 -1
  236. data/lib/wx/stc/require.rb +4 -1
  237. data/lib/wx/stc.rb +4 -1
  238. data/lib/wx/version.rb +5 -1
  239. data/lib/wx/wxruby/base.rb +4 -1
  240. data/lib/wx/wxruby/cmd/sampler.rb +4 -1
  241. data/lib/wx/wxruby/cmd/test.rb +4 -1
  242. data/lib/wx.rb +4 -1
  243. data/rakelib/build.rake +4 -1
  244. data/rakelib/build.rb +4 -1
  245. data/rakelib/config.rake +4 -1
  246. data/rakelib/configure.rb +4 -1
  247. data/rakelib/doc.rake +4 -1
  248. data/rakelib/doc.rb +5 -1
  249. data/rakelib/install.rake +4 -1
  250. data/rakelib/install.rb +4 -1
  251. data/rakelib/lib/config/cygwin.rb +4 -1
  252. data/rakelib/lib/config/linux.rb +4 -1
  253. data/rakelib/lib/config/macosx.rb +5 -2
  254. data/rakelib/lib/config/mingw.rb +4 -1
  255. data/rakelib/lib/config/netbsd.rb +4 -1
  256. data/rakelib/lib/config/unixish.rb +10 -7
  257. data/rakelib/lib/config.rb +7 -2
  258. data/rakelib/lib/core/include/enum.inc +4 -1
  259. data/rakelib/lib/core/include/funcall.inc +10 -64
  260. data/rakelib/lib/core/include/init.inc +3 -0
  261. data/rakelib/lib/core/mapping.rb +26 -46
  262. data/rakelib/lib/core/package.rb +17 -3
  263. data/rakelib/lib/core/parameter.rb +4 -1
  264. data/rakelib/lib/core/spec.rb +14 -8
  265. data/rakelib/lib/core/spec_helper.rb +32 -9
  266. data/rakelib/lib/director/about_dialog_info.rb +4 -1
  267. data/rakelib/lib/director/accelerator.rb +7 -2
  268. data/rakelib/lib/director/animation.rb +4 -1
  269. data/rakelib/lib/director/animation_ctrl.rb +4 -1
  270. data/rakelib/lib/director/any_button.rb +5 -2
  271. data/rakelib/lib/director/app.rb +16 -2
  272. data/rakelib/lib/director/app_traits.rb +71 -0
  273. data/rakelib/lib/director/art_provider.rb +4 -1
  274. data/rakelib/lib/director/aui_dock_art.rb +4 -1
  275. data/rakelib/lib/director/aui_floating_frame.rb +4 -1
  276. data/rakelib/lib/director/aui_manager.rb +12 -5
  277. data/rakelib/lib/director/aui_manager_event.rb +4 -1
  278. data/rakelib/lib/director/aui_mdi_child_frame.rb +25 -1
  279. data/rakelib/lib/director/aui_mdi_client_window.rb +4 -1
  280. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -1
  281. data/rakelib/lib/director/aui_notebook.rb +12 -1
  282. data/rakelib/lib/director/aui_notebook_event.rb +4 -1
  283. data/rakelib/lib/director/aui_pane_info.rb +4 -1
  284. data/rakelib/lib/director/aui_tab_art.rb +52 -1
  285. data/rakelib/lib/director/aui_tab_ctrl.rb +14 -1
  286. data/rakelib/lib/director/aui_toolbar.rb +6 -3
  287. data/rakelib/lib/director/aui_toolbar_art.rb +52 -1
  288. data/rakelib/lib/director/aui_toolbar_event.rb +4 -1
  289. data/rakelib/lib/director/aui_toolbar_item.rb +4 -1
  290. data/rakelib/lib/director/banner_window.rb +26 -0
  291. data/rakelib/lib/director/bitmap.rb +11 -2
  292. data/rakelib/lib/director/bitmap_combobox.rb +5 -1
  293. data/rakelib/lib/director/book_ctrls.rb +13 -3
  294. data/rakelib/lib/director/brush.rb +4 -1
  295. data/rakelib/lib/director/busy_info.rb +4 -1
  296. data/rakelib/lib/director/button.rb +4 -1
  297. data/rakelib/lib/director/calendar_ctrl.rb +4 -1
  298. data/rakelib/lib/director/calendar_date_attr.rb +4 -1
  299. data/rakelib/lib/director/caret.rb +4 -1
  300. data/rakelib/lib/director/check_listbox.rb +4 -1
  301. data/rakelib/lib/director/choice.rb +4 -1
  302. data/rakelib/lib/director/clipboard.rb +4 -1
  303. data/rakelib/lib/director/collapsible_pane.rb +4 -1
  304. data/rakelib/lib/director/collapsible_pane_event.rb +4 -1
  305. data/rakelib/lib/director/colour.rb +9 -1
  306. data/rakelib/lib/director/colour_picker_ctrl.rb +4 -1
  307. data/rakelib/lib/director/combobox.rb +4 -1
  308. data/rakelib/lib/director/comboctrl.rb +94 -0
  309. data/rakelib/lib/director/config_base.rb +135 -0
  310. data/rakelib/lib/director/context_help_button.rb +4 -1
  311. data/rakelib/lib/director/control.rb +4 -1
  312. data/rakelib/lib/director/ctrl_with_items.rb +5 -1
  313. data/rakelib/lib/director/cursor.rb +6 -2
  314. data/rakelib/lib/director/data_format.rb +4 -1
  315. data/rakelib/lib/director/data_object.rb +4 -1
  316. data/rakelib/lib/director/data_object_simple_base.rb +4 -1
  317. data/rakelib/lib/director/date_event.rb +9 -2
  318. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  319. data/rakelib/lib/director/dc.rb +19 -1
  320. data/rakelib/lib/director/defs.rb +4 -1
  321. data/rakelib/lib/director/derived_dc.rb +27 -20
  322. data/rakelib/lib/director/dialog.rb +24 -3
  323. data/rakelib/lib/director/dir_filterlist_ctrl.rb +4 -1
  324. data/rakelib/lib/director/dir_picker_ctrl.rb +4 -1
  325. data/rakelib/lib/director/drag_image.rb +9 -2
  326. data/rakelib/lib/director/dragdrop.rb +4 -1
  327. data/rakelib/lib/director/editable_listbox.rb +4 -1
  328. data/rakelib/lib/director/event.rb +11 -3
  329. data/rakelib/lib/director/event_blocker.rb +4 -1
  330. data/rakelib/lib/director/event_filter.rb +4 -1
  331. data/rakelib/lib/director/event_handler.rb +28 -11
  332. data/rakelib/lib/director/event_loop.rb +4 -1
  333. data/rakelib/lib/director/events.rb +5 -2
  334. data/rakelib/lib/director/file_dialog_custom_control.rb +28 -0
  335. data/rakelib/lib/director/file_dialog_customize_hook.rb +28 -0
  336. data/rakelib/lib/director/file_picker_ctrl.rb +4 -1
  337. data/rakelib/lib/director/file_system.rb +45 -0
  338. data/rakelib/lib/director/find_dialog_event.rb +4 -1
  339. data/rakelib/lib/director/find_replace_data.rb +4 -1
  340. data/rakelib/lib/director/font.rb +7 -3
  341. data/rakelib/lib/director/font_data.rb +9 -1
  342. data/rakelib/lib/director/font_picker_ctrl.rb +4 -1
  343. data/rakelib/lib/director/frame.rb +45 -33
  344. data/rakelib/lib/director/fs_file.rb +52 -1
  345. data/rakelib/lib/director/functions.rb +11 -5
  346. data/rakelib/lib/director/gdi_object.rb +4 -1
  347. data/rakelib/lib/director/gdicommon.rb +14 -9
  348. data/rakelib/lib/director/generic_dirctrl.rb +4 -1
  349. data/rakelib/lib/director/graphics_context.rb +113 -18
  350. data/rakelib/lib/director/graphics_object.rb +13 -2
  351. data/rakelib/lib/director/grid_cell_attr.rb +28 -4
  352. data/rakelib/lib/director/grid_cell_editor.rb +22 -5
  353. data/rakelib/lib/director/grid_cell_renderer.rb +16 -3
  354. data/rakelib/lib/director/grid_ctrl.rb +146 -5
  355. data/rakelib/lib/director/grid_range_select_event.rb +4 -1
  356. data/rakelib/lib/director/grid_table_base.rb +6 -1
  357. data/rakelib/lib/director/grid_table_message.rb +4 -1
  358. data/rakelib/lib/director/header_ctrl.rb +37 -0
  359. data/rakelib/lib/director/help_controller.rb +13 -6
  360. data/rakelib/lib/director/help_provider.rb +4 -1
  361. data/rakelib/lib/director/html_cell.rb +10 -3
  362. data/rakelib/lib/director/html_data_object.rb +4 -1
  363. data/rakelib/lib/director/html_easy_printing.rb +4 -1
  364. data/rakelib/lib/director/html_event.rb +4 -1
  365. data/rakelib/lib/director/html_help_data.rb +4 -1
  366. data/rakelib/lib/director/html_help_window.rb +30 -0
  367. data/rakelib/lib/director/html_listbox.rb +4 -1
  368. data/rakelib/lib/director/html_printout.rb +6 -1
  369. data/rakelib/lib/director/html_window.rb +10 -8
  370. data/rakelib/lib/director/hyperlink_ctrl.rb +32 -0
  371. data/rakelib/lib/director/hyperlink_event.rb +4 -1
  372. data/rakelib/lib/director/icon.rb +4 -1
  373. data/rakelib/lib/director/image.rb +26 -3
  374. data/rakelib/lib/director/image_list.rb +5 -1
  375. data/rakelib/lib/director/info_bar.rb +26 -0
  376. data/rakelib/lib/director/list_ctrl.rb +39 -7
  377. data/rakelib/lib/director/listbox.rb +4 -1
  378. data/rakelib/lib/director/locale.rb +7 -4
  379. data/rakelib/lib/director/log.rb +51 -6
  380. data/rakelib/lib/director/mdi_frame.rb +4 -1
  381. data/rakelib/lib/director/media_ctrl.rb +4 -1
  382. data/rakelib/lib/director/menu.rb +16 -3
  383. data/rakelib/lib/director/menu_bar.rb +13 -2
  384. data/rakelib/lib/director/menu_item.rb +6 -6
  385. data/rakelib/lib/director/mouse_state.rb +5 -2
  386. data/rakelib/lib/director/numeric_property_validator.rb +4 -1
  387. data/rakelib/lib/director/object.rb +5 -2
  388. data/rakelib/lib/director/page_setup_dialog.rb +4 -1
  389. data/rakelib/lib/director/palette.rb +54 -2
  390. data/rakelib/lib/director/panel.rb +4 -1
  391. data/rakelib/lib/director/pen.rb +5 -2
  392. data/rakelib/lib/director/pgarray_editor_dialog.rb +4 -1
  393. data/rakelib/lib/director/pgcell.rb +4 -1
  394. data/rakelib/lib/director/pgeditor.rb +4 -1
  395. data/rakelib/lib/director/pgmulti_button.rb +4 -1
  396. data/rakelib/lib/director/pgproperties.rb +4 -1
  397. data/rakelib/lib/director/pgproperty.rb +42 -3
  398. data/rakelib/lib/director/pgvalidation_info.rb +9 -1
  399. data/rakelib/lib/director/pickerbase.rb +4 -1
  400. data/rakelib/lib/director/platform_info.rb +9 -1
  401. data/rakelib/lib/director/popup_window.rb +14 -1
  402. data/rakelib/lib/director/preview_frame.rb +5 -2
  403. data/rakelib/lib/director/print_data.rb +4 -1
  404. data/rakelib/lib/director/print_dialog.rb +4 -1
  405. data/rakelib/lib/director/printer.rb +14 -6
  406. data/rakelib/lib/director/property_grid.rb +30 -1
  407. data/rakelib/lib/director/property_grid_event.rb +11 -1
  408. data/rakelib/lib/director/property_grid_interface.rb +20 -6
  409. data/rakelib/lib/director/property_grid_manager.rb +4 -1
  410. data/rakelib/lib/director/property_grid_page.rb +4 -1
  411. data/rakelib/lib/director/property_grid_page_state.rb +4 -1
  412. data/rakelib/lib/director/radio_box.rb +4 -1
  413. data/rakelib/lib/director/rearrange_list.rb +36 -0
  414. data/rakelib/lib/director/region.rb +5 -1
  415. data/rakelib/lib/director/region_iterator.rb +4 -1
  416. data/rakelib/lib/director/ribbon_art_provider.rb +9 -1
  417. data/rakelib/lib/director/ribbon_bar.rb +4 -1
  418. data/rakelib/lib/director/ribbon_bar_event.rb +4 -1
  419. data/rakelib/lib/director/ribbon_button_bar.rb +4 -1
  420. data/rakelib/lib/director/ribbon_button_bar_event.rb +4 -1
  421. data/rakelib/lib/director/ribbon_ctrl.rb +4 -1
  422. data/rakelib/lib/director/ribbon_gallery.rb +8 -3
  423. data/rakelib/lib/director/ribbon_gallery_event.rb +4 -1
  424. data/rakelib/lib/director/ribbon_page.rb +4 -1
  425. data/rakelib/lib/director/ribbon_panel.rb +4 -1
  426. data/rakelib/lib/director/ribbon_panel_event.rb +4 -1
  427. data/rakelib/lib/director/ribbon_tool_bar.rb +4 -1
  428. data/rakelib/lib/director/ribbon_tool_bar_event.rb +4 -1
  429. data/rakelib/lib/director/richtext_box.rb +61 -0
  430. data/rakelib/lib/director/richtext_buffer.rb +219 -22
  431. data/rakelib/lib/director/richtext_buffer_data_object.rb +4 -1
  432. data/rakelib/lib/director/richtext_composite_object.rb +174 -0
  433. data/rakelib/lib/director/richtext_ctrl.rb +157 -4
  434. data/rakelib/lib/director/richtext_event.rb +4 -1
  435. data/rakelib/lib/director/richtext_file_handler.rb +13 -1
  436. data/rakelib/lib/director/richtext_formatting_dialog.rb +44 -0
  437. data/rakelib/lib/director/richtext_header_footer_data.rb +4 -1
  438. data/rakelib/lib/director/richtext_image.rb +56 -0
  439. data/rakelib/lib/director/richtext_object.rb +272 -0
  440. data/rakelib/lib/director/richtext_paragraph_layout_box.rb +178 -0
  441. data/rakelib/lib/director/richtext_printing.rb +4 -1
  442. data/rakelib/lib/director/richtext_style_listbox.rb +37 -0
  443. data/rakelib/lib/director/richtext_style_organiser_dialog.rb +28 -0
  444. data/rakelib/lib/director/sash_layout_event.rb +4 -1
  445. data/rakelib/lib/director/sash_layout_window.rb +4 -1
  446. data/rakelib/lib/director/sash_window.rb +4 -1
  447. data/rakelib/lib/director/scroll_bar.rb +4 -1
  448. data/rakelib/lib/director/scrolled_t.rb +7 -4
  449. data/rakelib/lib/director/searchctrl.rb +4 -1
  450. data/rakelib/lib/director/sizer.rb +4 -1
  451. data/rakelib/lib/director/sizer_item.rb +9 -3
  452. data/rakelib/lib/director/slider.rb +4 -1
  453. data/rakelib/lib/director/splash_screen.rb +4 -1
  454. data/rakelib/lib/director/splitter_event.rb +4 -1
  455. data/rakelib/lib/director/splitter_window.rb +4 -1
  456. data/rakelib/lib/director/static_bitmap.rb +4 -1
  457. data/rakelib/lib/director/static_box.rb +5 -2
  458. data/rakelib/lib/director/status_bar.rb +5 -1
  459. data/rakelib/lib/director/styled_text_ctrl.rb +14 -2
  460. data/rakelib/lib/director/styled_text_event.rb +4 -1
  461. data/rakelib/lib/director/system_options.rb +4 -1
  462. data/rakelib/lib/director/system_settings.rb +4 -1
  463. data/rakelib/lib/director/task_bar_icon.rb +4 -1
  464. data/rakelib/lib/director/text_attr.rb +5 -2
  465. data/rakelib/lib/director/text_entry.rb +4 -1
  466. data/rakelib/lib/director/text_validator.rb +6 -1
  467. data/rakelib/lib/director/textctrl.rb +32 -3
  468. data/rakelib/lib/director/time_picker_ctrl.rb +4 -1
  469. data/rakelib/lib/director/timer.rb +4 -1
  470. data/rakelib/lib/director/tip_provider.rb +4 -1
  471. data/rakelib/lib/director/toggle_button.rb +4 -1
  472. data/rakelib/lib/director/tool_bar.rb +20 -1
  473. data/rakelib/lib/director/tool_tip.rb +5 -2
  474. data/rakelib/lib/director/top_level_window.rb +58 -51
  475. data/rakelib/lib/director/tree_ctrl.rb +5 -2
  476. data/rakelib/lib/director/tree_event.rb +28 -10
  477. data/rakelib/lib/director/uiaction_simulator.rb +4 -1
  478. data/rakelib/lib/director/utils.rb +9 -1
  479. data/rakelib/lib/director/validator.rb +4 -1
  480. data/rakelib/lib/director/variant.rb +5 -2
  481. data/rakelib/lib/director/vlistbox.rb +4 -1
  482. data/rakelib/lib/director/vscrolled_window.rb +4 -1
  483. data/rakelib/lib/director/window.rb +81 -82
  484. data/rakelib/lib/director/window_disabler.rb +4 -1
  485. data/rakelib/lib/director/with_images.rb +5 -2
  486. data/rakelib/lib/director/wizard_page.rb +4 -1
  487. data/rakelib/lib/director/xml_node.rb +4 -1
  488. data/rakelib/lib/director/xml_resource.rb +4 -1
  489. data/rakelib/lib/director.rb +27 -28
  490. data/rakelib/lib/ext/enum_chain.rb +4 -1
  491. data/rakelib/lib/extractor/class.rb +8 -6
  492. data/rakelib/lib/extractor/enum.rb +15 -2
  493. data/rakelib/lib/extractor/function.rb +12 -4
  494. data/rakelib/lib/extractor/module.rb +4 -1
  495. data/rakelib/lib/extractor/variable.rb +4 -1
  496. data/rakelib/lib/extractor.rb +7 -2
  497. data/rakelib/lib/generate/analyzer.rb +31 -21
  498. data/rakelib/lib/generate/base.rb +4 -1
  499. data/rakelib/lib/generate/doc/grid_cell_attr.yaml +21 -0
  500. data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
  501. data/rakelib/lib/generate/doc/html_cell.yaml +11 -0
  502. data/rakelib/lib/generate/doc/html_help_controller.yaml +23 -0
  503. data/rakelib/lib/generate/doc/html_help_window.yaml +21 -0
  504. data/rakelib/lib/generate/doc/html_window.yaml +47 -0
  505. data/rakelib/lib/generate/doc/pg_editor.yaml +11 -0
  506. data/rakelib/lib/generate/doc/pg_multi_button.yaml +78 -0
  507. data/rakelib/lib/generate/doc/pg_properties.yaml +244 -0
  508. data/rakelib/lib/generate/doc/pg_property.yaml +188 -0
  509. data/rakelib/lib/generate/doc/property_grid.yaml +23 -0
  510. data/rakelib/lib/generate/doc/property_grid_interface.yaml +30 -0
  511. data/rakelib/lib/generate/doc/property_grid_manager.yaml +40 -0
  512. data/rakelib/lib/generate/doc/rich_text_html_handler.yaml +11 -0
  513. data/rakelib/lib/generate/doc/styled_text_ctrl.yaml +18 -0
  514. data/rakelib/lib/generate/doc/symbol_picker_dialog.yaml +40 -0
  515. data/rakelib/lib/generate/doc.rb +19 -3
  516. data/rakelib/lib/generate/interface.rb +79 -110
  517. data/rakelib/lib/generate/rakedep.rb +4 -1
  518. data/rakelib/lib/specs/interfaces.rb +45 -20
  519. data/rakelib/lib/streams.rb +5 -1
  520. data/rakelib/lib/swig_runner.rb +34 -22
  521. data/rakelib/lib/typemap/array_int_selections.rb +4 -1
  522. data/rakelib/lib/typemap/common.rb +57 -2
  523. data/rakelib/lib/typemap/config.rb +55 -0
  524. data/rakelib/lib/typemap/data_format.rb +4 -1
  525. data/rakelib/lib/typemap/data_object_data.rb +4 -1
  526. data/rakelib/lib/typemap/datetime.rb +8 -1
  527. data/rakelib/lib/typemap/grid_client_data.rb +4 -1
  528. data/rakelib/lib/typemap/grid_coords.rb +37 -7
  529. data/rakelib/lib/typemap/html_cell.rb +4 -1
  530. data/rakelib/lib/typemap/io_streams.rb +4 -1
  531. data/rakelib/lib/typemap/pgcell.rb +4 -1
  532. data/rakelib/lib/typemap/pgeditor.rb +4 -1
  533. data/rakelib/lib/typemap/pgprop_arg.rb +4 -1
  534. data/rakelib/lib/typemap/pgproperty.rb +4 -1
  535. data/rakelib/lib/typemap/points_list.rb +4 -1
  536. data/rakelib/lib/typemap/richtext.rb +185 -11
  537. data/rakelib/lib/typemap/tree_itemid.rb +26 -1
  538. data/rakelib/lib/util/string.rb +4 -1
  539. data/rakelib/prepost.rake +4 -1
  540. data/rakelib/prepost.rb +4 -1
  541. data/rakelib/run.rake +4 -1
  542. data/samples/aui/aui.rb +8 -3
  543. data/samples/bigdemo/bigdemo.rb +9 -2
  544. data/samples/bigdemo/run.rb +9 -2
  545. data/samples/bigdemo/utils.rb +9 -1
  546. data/samples/calendar/calendar.rb +9 -4
  547. data/samples/caret/caret.rb +8 -3
  548. data/samples/controls/books.rb +8 -2
  549. data/samples/controls/controls.rb +33 -77
  550. data/samples/controls/get_item_sample.rb +8 -2
  551. data/samples/controls/htlbox.rb +10 -3
  552. data/samples/dialogs/dialogs.rb +9 -4
  553. data/samples/dialogs/wizard.rb +8 -3
  554. data/samples/dragdrop/dragdrop.rb +8 -3
  555. data/samples/drawing/bitmap.rb +8 -3
  556. data/samples/drawing/bitmap_image.rb +8 -3
  557. data/samples/drawing/graphics_drawing.rb +44 -33
  558. data/samples/drawing/image_prt.rb +8 -2
  559. data/samples/drawing/maths_images.rb +8 -3
  560. data/samples/drawing/rmagic_bitmap_image.rb +8 -3
  561. data/samples/etc/choice.rb +8 -3
  562. data/samples/etc/miniframe.rb +8 -3
  563. data/samples/etc/sash.rb +8 -3
  564. data/samples/etc/scrollwin.rb +8 -3
  565. data/samples/etc/system_settings.rb +8 -3
  566. data/samples/event/activation.rb +8 -3
  567. data/samples/event/event.rb +8 -3
  568. data/samples/event/threaded.rb +8 -3
  569. data/samples/event/update_ui_event.rb +8 -3
  570. data/samples/grid/grid.rb +9 -3
  571. data/samples/grid/gridtablebase.rb +8 -3
  572. data/samples/html/html.rb +8 -3
  573. data/samples/mdi/mdi.rb +8 -3
  574. data/samples/minimal/minimal.rb +8 -3
  575. data/samples/minimal/nothing.rb +8 -3
  576. data/samples/printing/printing.rb +8 -3
  577. data/samples/printing/printing2.rb +8 -2
  578. data/samples/propgrid/propgrid.rb +4 -1
  579. data/samples/propgrid/propgrid_minimal.rb +4 -2
  580. data/samples/propgrid/sample_props.rb +4 -1
  581. data/samples/ribbon/ribbon.rb +4 -1
  582. data/samples/sampler/editor.rb +4 -1
  583. data/samples/sampler/ext.rb +4 -1
  584. data/samples/sampler/sample.rb +13 -4
  585. data/samples/sampler/stc_editor.rb +4 -1
  586. data/samples/sampler/txt_editor.rb +4 -1
  587. data/samples/sampler.rb +11 -3
  588. data/samples/splash/splash.rb +4 -2
  589. data/samples/text/art/richtext/alignleft.xpm +24 -0
  590. data/samples/text/art/richtext/alignright.xpm +24 -0
  591. data/samples/text/art/richtext/bold.xpm +24 -0
  592. data/samples/text/art/richtext/centre.xpm +24 -0
  593. data/samples/text/art/richtext/copy.xpm +45 -0
  594. data/samples/text/art/richtext/cut.xpm +47 -0
  595. data/samples/text/art/richtext/font.xpm +25 -0
  596. data/samples/text/art/richtext/idea.xpm +47 -0
  597. data/samples/text/art/richtext/indentless.xpm +25 -0
  598. data/samples/text/art/richtext/indentmore.xpm +25 -0
  599. data/samples/text/art/richtext/italic.xpm +25 -0
  600. data/samples/text/art/richtext/open.xpm +58 -0
  601. data/samples/text/art/richtext/paste.xpm +47 -0
  602. data/samples/text/art/richtext/redo.xpm +59 -0
  603. data/samples/text/art/richtext/save.xpm +43 -0
  604. data/samples/text/art/richtext/smiley.xpm +42 -0
  605. data/samples/text/art/richtext/underline.xpm +25 -0
  606. data/samples/text/art/richtext/undo.xpm +59 -0
  607. data/samples/text/art/richtext/zebra.xpm +409 -0
  608. data/samples/text/rich_textctrl.rb +8 -3
  609. data/samples/text/richtext.rb +1824 -0
  610. data/samples/text/scintilla.rb +8 -3
  611. data/samples/text/textctrl.rb +21 -4
  612. data/samples/text/tn_richtext.png +0 -0
  613. data/samples/text/unicode.rb +9 -4
  614. data/samples/treectrl/treectrl.rb +10 -5
  615. data/samples/xrc/custom_xrc_sample.rb +8 -3
  616. data/samples/xrc/xrc_sample.rb +8 -3
  617. data/tests/art/test_art/bitmap/wxruby-128x128.png +0 -0
  618. data/tests/art/test_art/bitmap/wxruby-256x256.png +0 -0
  619. data/tests/art/test_art/bitmap/wxruby-64x64.png +0 -0
  620. data/tests/lib/item_container_tests.rb +3 -0
  621. data/tests/lib/text_entry_tests.rb +3 -0
  622. data/tests/lib/wxapp_runner.rb +3 -0
  623. data/tests/lib/wxframe_runner.rb +81 -3
  624. data/tests/test_app_event_filter.rb +3 -0
  625. data/tests/test_app_traits.rb +33 -0
  626. data/tests/test_art.rb +22 -0
  627. data/tests/test_art_provider.rb +3 -0
  628. data/tests/test_aui.rb +65 -0
  629. data/tests/test_basic.rb +5 -1
  630. data/tests/test_box_sizer.rb +5 -2
  631. data/tests/test_clipboard.rb +3 -0
  632. data/tests/test_config.rb +150 -0
  633. data/tests/test_dc.rb +3 -0
  634. data/tests/test_dialog.rb +3 -0
  635. data/tests/test_event_handling.rb +3 -0
  636. data/tests/test_events.rb +3 -0
  637. data/tests/test_ext_controls.rb +286 -3
  638. data/tests/test_file_dialog.rb +55 -0
  639. data/tests/test_font.rb +8 -5
  640. data/tests/test_gdi_object.rb +3 -0
  641. data/tests/test_geometry.rb +4 -0
  642. data/tests/test_grid_sizer.rb +7 -4
  643. data/tests/test_intl.rb +3 -0
  644. data/tests/test_item_data.rb +3 -0
  645. data/tests/test_list_ctrl.rb +4 -1
  646. data/tests/test_log.rb +63 -0
  647. data/tests/test_proof_check.rb +52 -0
  648. data/tests/test_richtext.rb +204 -0
  649. data/tests/test_std_controls.rb +45 -35
  650. data/tests/test_timer.rb +3 -0
  651. data/tests/test_variant.rb +3 -0
  652. data/tests/test_window.rb +10 -8
  653. data/tests/testapp.rb +4 -0
  654. data/tests/testapp_noframe.rb +4 -0
  655. metadata +89 -3
  656. data/rakelib/lib/director/html_help_frame.rb +0 -25
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -97,6 +100,7 @@ module WXRuby3
97
100
  map 'wxString' => 'String' do
98
101
  map_in code: '$1 = RSTR_TO_WXSTR($input);'
99
102
  map_out code: '$result = WXSTR_TO_RSTR($1);'
103
+ map_directorin code: '$input = WXSTR_TO_RSTR($1);'
100
104
  map_directorout code: '$result = RSTR_TO_WXSTR($input);'
101
105
  map_typecheck precedence: 'STRING', code: '$1 = (TYPE($input) == T_STRING);'
102
106
  map_varout code: '$result = WXSTR_TO_RSTR($1);'
@@ -374,7 +378,7 @@ module WXRuby3
374
378
  map_typecheck precedence: 'INT32_ARRAY', code: '$1 = (TYPE($input) == T_ARRAY);'
375
379
  end
376
380
 
377
- # input reference
381
+ # input reference (out by value)
378
382
  map 'wxArrayInt&' => 'Array<Integer>' do
379
383
  map_in temp: 'wxArrayInt tmp', code: <<~__CODE
380
384
  if (($input == Qnil) || (TYPE($input) != T_ARRAY))
@@ -391,6 +395,13 @@ module WXRuby3
391
395
  $1 = &tmp;
392
396
  }
393
397
  __CODE
398
+ map_out code: <<~__CODE
399
+ $result = rb_ary_new();
400
+ for (size_t i = 0; i < $1->GetCount(); i++)
401
+ {
402
+ rb_ary_push($result,INT2NUM( $1->Item(i) ) );
403
+ }
404
+ __CODE
394
405
  map_directorin code: <<~__CODE
395
406
  $input = rb_ary_new();
396
407
  for (size_t i = 0; i < $1.GetCount(); i++)
@@ -399,6 +410,8 @@ module WXRuby3
399
410
  }
400
411
  __CODE
401
412
  map_typecheck precedence: 'INT32_ARRAY', code: '$1 = (TYPE($input) == T_ARRAY);'
413
+ # no directorout mapping as returning a reference would cause trouble; luckily there
414
+ # do not seem to be virtual methods returning that
402
415
  end
403
416
 
404
417
  # various enumerator type mappings
@@ -492,6 +505,27 @@ module WXRuby3
492
505
  __CODE
493
506
  end
494
507
 
508
+ # For various editor controls
509
+
510
+ map 'const wxKeyEvent &' => 'Wx::KeyEvent' do
511
+ map_directorin code: <<~__CODE
512
+ #ifdef __WXRB_DEBUG__
513
+ $input = wxRuby_WrapWxEventInRuby(const_cast<void*> ((const void*)this), const_cast<wxKeyEvent*> (&$1));
514
+ #else
515
+ $input = wxRuby_WrapWxEventInRuby(const_cast<wxKeyEvent*> (&$1));
516
+ #endif
517
+ __CODE
518
+ end
519
+ map 'wxKeyEvent &' => 'Wx::KeyEvent' do
520
+ map_directorin code: <<~__CODE
521
+ #ifdef __WXRB_DEBUG__
522
+ $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
523
+ #else
524
+ $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
525
+ #endif
526
+ __CODE
527
+ end
528
+
495
529
  # typemap to allow String or Symbol for wxColour in args
496
530
  map 'const wxColour&', 'const wxColour*', as: 'Wx::Colour,String,Symbol' do
497
531
  map_in temp: 'wxColour tmpcol', code: <<~__CODE
@@ -616,6 +650,27 @@ module WXRuby3
616
650
  map_in code: '$1 = wxRuby_ConvertRbValue2Variant($input);'
617
651
  end
618
652
 
653
+ # add type mapping for wxFileName input args
654
+ map 'const wxFileName&' => 'String' do
655
+ # Deal with wxFileName
656
+ map_in temp: 'wxFileName tmp', code: <<~__CODE
657
+ tmp = wxFileName(RSTR_TO_WXSTR($input));
658
+ $1 = &tmp;
659
+ __CODE
660
+ map_typecheck precedence: 'POINTER', code: <<~__CODE
661
+ $1 = TYPE($input) == T_STRING;
662
+ __CODE
663
+ map_directorin code: <<~__CODE
664
+ $input = WXSTR_TO_RSTR($1.GetFullPath());
665
+ __CODE
666
+ end
667
+
668
+ # add type mapping for wxFileName output
669
+ map 'wxFileName' => 'String' do
670
+ map_out code: '$result = WXSTR_TO_RSTR($1.GetFullPath());'
671
+ map_directorout code: '$result = RSTR_TO_WXSTR($input);'
672
+ end
673
+
619
674
  end # define
620
675
 
621
676
  end # Common
@@ -0,0 +1,55 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 Common typemap definitions
7
+ ###
8
+
9
+ require_relative '../core/mapping'
10
+
11
+ module WXRuby3
12
+
13
+ module Typemap
14
+
15
+ # Deals with GetAllFormats
16
+ module ConfigBase
17
+
18
+ include Typemap::Module
19
+
20
+ define do
21
+
22
+ map 'wxConfigBase*' => 'Wx::ConfigBase' do
23
+
24
+ map_in code: <<~__CODE
25
+ $1 = nullptr;
26
+ if (!NIL_P($input))
27
+ {
28
+ $1 = wxRuby_Ruby2ConfigBase($input);
29
+ if ($1 == nullptr)
30
+ {
31
+ VALUE msg = rb_inspect($input);
32
+ rb_raise(rb_eArgError, "Expected Wx::ConfigBase or Hash for %d but got %s",
33
+ $argnum-1, StringValuePtr(msg));
34
+ }
35
+ }
36
+ __CODE
37
+
38
+ map_typecheck precedence: 'POINTER', code: <<~__CODE
39
+ $1 = wxRuby_IsRubyConfig($input);
40
+ __CODE
41
+
42
+
43
+ map_directorin code: <<~__CODE
44
+ $input = wxRuby_ConfigBase2Ruby($1);
45
+ __CODE
46
+
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+
53
+ end
54
+
55
+ end
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -45,6 +48,10 @@ module WXRuby3
45
48
 
46
49
  map 'wxDateTime' => 'Time,Date,DateTime' do
47
50
 
51
+ # Accepts any Time-like object from Ruby and creates a wxDateTime
52
+ map_in temp: 'std::unique_ptr<wxDateTime> tmp_dt',
53
+ code: 'tmp_dt.reset(wxRuby_wxDateTimeFromRuby($input)); $1 = *tmp_dt.get();'
54
+
48
55
  # Converts a return value of wxDateTime to a Ruby Time object
49
56
  map_out code: '$result = wxRuby_wxDateTimeToRuby($1);'
50
57
 
@@ -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 Grid client data typemap definition
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -17,18 +20,43 @@ module WXRuby3
17
20
 
18
21
  define do
19
22
 
23
+ map 'const wxGridCellCoords&' => 'Array(Integer, Integer)' do
24
+
25
+ map_in temp: 'int a, int b, wxGridCellCoords gcc', code: <<~__CODE
26
+ if (TYPE($input) != T_ARRAY || RARRAY_LEN($input) != 2)
27
+ {
28
+ rb_raise(rb_eTypeError,
29
+ "Grid cell co-ordinates should be passed as [row, col] array");
30
+ }
31
+
32
+ a = NUM2INT( rb_ary_entry($input, 0) );
33
+ b = NUM2INT( rb_ary_entry($input, 1) );
34
+ gcc = wxGridCellCoords(a,b);
35
+ $1 = &gcc;
36
+ __CODE
37
+
38
+ map_out code: <<~__CODE
39
+ $result = rb_ary_new();
40
+ rb_ary_push($result, INT2NUM($1->GetRow() ));
41
+ rb_ary_push($result, INT2NUM($1->GetCol() ));
42
+ __CODE
43
+
44
+ map_typecheck precedence: 'POINTER', code: '$1 = (TYPE($input) == T_ARRAY && RARRAY_LEN($input) == 2);'
45
+
46
+ end
47
+
20
48
  map 'wxGridCellCoords' => 'Array(Integer, Integer)' do
21
49
 
22
- map_in temp: 'int a, b', code: <<~__CODE
23
- if ( ! TYPE($input) == T_ARRAY )
50
+ map_in temp: 'int a, int b', code: <<~__CODE
51
+ if (TYPE($input) != T_ARRAY || RARRAY_LEN($input) != 2)
24
52
  {
25
53
  rb_raise(rb_eTypeError,
26
54
  "Grid cell co-ordinates should be passed as [row, col] array");
27
55
  }
28
56
 
29
- a = NUM2INT( rb_ary_entry($1, 0) );
30
- b = NUM2INT( rb_ary_entry($1, 1) );
31
- $input = wxGridCellCoords(a,b);
57
+ a = NUM2INT( rb_ary_entry($input, 0) );
58
+ b = NUM2INT( rb_ary_entry($input, 1) );
59
+ $1 = wxGridCellCoords(a,b);
32
60
  __CODE
33
61
 
34
62
  map_out code: <<~__CODE
@@ -37,6 +65,8 @@ module WXRuby3
37
65
  rb_ary_push($result, INT2NUM($1.GetCol() ));
38
66
  __CODE
39
67
 
68
+ map_typecheck precedence: 'POINTER', code: '$1 = (TYPE($input) == T_ARRAY && RARRAY_LEN($input) == 2);'
69
+
40
70
  end
41
71
 
42
72
  # Needed for get_selected_cells, get_selection_block_top_left etc
@@ -44,7 +74,7 @@ module WXRuby3
44
74
 
45
75
  map_out code: <<~__CODE
46
76
  $result = rb_ary_new();
47
- for (size_t i = 0; i < $1.GetCount(); i++)
77
+ for (size_t i = 0; i < $1.size(); i++)
48
78
  {
49
79
  wxGridCellCoords coord = $1.Item(i);
50
80
  VALUE rb_coord = rb_ary_new();
@@ -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 HtmlCell typemap definition
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -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 PGProperty typemap definition
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -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 PGProperty typemap definition
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -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 PGPropArg typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -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 PGProperty typemap definition
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -14,12 +17,6 @@ module WXRuby3
14
17
 
15
18
  include Typemap::Module
16
19
 
17
- def self.on_include(including_mod)
18
- # Used by several classes to load and save rich text content to files
19
- # and streams.
20
- including_mod.include(Typemap::IOStreams)
21
- end
22
-
23
20
  define do
24
21
 
25
22
  # The wxWidgets RichText API in several places represents and returns
@@ -28,10 +25,10 @@ module WXRuby3
28
25
  # typemaps
29
26
  map 'wxRichTextRange&' => 'Range' do
30
27
 
31
- map_in code: <<~__CODE
28
+ map_in temp: 'wxRichTextRange rng', code: <<~__CODE
32
29
  int start = NUM2INT( rb_funcall( $input, rb_intern("begin"), 0));
33
30
  int end = NUM2INT( rb_funcall( $input, rb_intern("end"), 0));
34
- wxRichTextRange rng = wxRichTextRange(start, end);
31
+ rng = wxRichTextRange(start, end);
35
32
  $1 = &rng;
36
33
  __CODE
37
34
 
@@ -55,8 +52,185 @@ module WXRuby3
55
52
 
56
53
  end
57
54
 
58
- # Used as in/out parameters by some other selection-getting methods
59
- map_apply 'int *OUTPUT' => [ 'long * from' , 'long * to' ]
55
+ map 'const wxRichTextRangeArray &' => 'Array<Range>' do
56
+
57
+ map_in temp: 'wxRichTextRangeArray tmp', code: <<~__CODE
58
+ if (TYPE($input) == T_ARRAY)
59
+ {
60
+ for (int i=0; i<RARRAY_LEN($input) ;++i)
61
+ {
62
+ VALUE rb_range = rb_ary_entry($input, i);
63
+ int start = NUM2INT( rb_funcall(rb_range, rb_intern("begin"), 0));
64
+ int end = NUM2INT( rb_funcall(rb_range, rb_intern("end"), 0));
65
+ tmp.Add(wxRichTextRange(start, end));
66
+ }
67
+ $1 = &tmp;
68
+ }
69
+ else
70
+ {
71
+ rb_raise(rb_eArgError, "Expected Array of Range for %d", $argnum-1);
72
+ }
73
+ __CODE
74
+
75
+ map_out code: <<~__CODE
76
+ $result = rb_ary_new();
77
+ for (size_t i = 0; i < $1->GetCount(); i++)
78
+ {
79
+ const wxRichTextRange& range = $1->Item(i);
80
+ rb_ary_push($result, rb_range_new (LONG2NUM(range.GetStart()),LONG2NUM(range.GetEnd()),0));
81
+ }
82
+ __CODE
83
+
84
+ map_typecheck precedence: 'POINTER', code: '$1 = TYPE($input) == T_ARRAY;'
85
+
86
+ end
87
+
88
+ map 'wxRichTextRangeArray' => 'Array<Range>' do
89
+
90
+ map_out code: <<~__CODE
91
+ $result = rb_ary_new();
92
+ for (size_t i = 0; i < $1.GetCount(); ++i)
93
+ {
94
+ const wxRichTextRange& range = $1.Item(i);
95
+ rb_ary_push($result, rb_range_new (LONG2NUM(range.GetStart()),LONG2NUM(range.GetEnd()),0));
96
+ }
97
+ __CODE
98
+
99
+ end
100
+
101
+ map 'wxRichTextObject *' => 'Wx::RTC::RichTextObject' do
102
+
103
+ map_out code: '$result = wxRuby_RichTextObject2Ruby($1, $owner);'
104
+
105
+ end
106
+
107
+ map 'wxRichTextObject **' => 'Wx::RTC::RichTextObject' do
108
+
109
+ map_in ignore: true, temp: 'wxRichTextObject * tmp', code: '$1 = &tmp;'
110
+
111
+ map_argout code: '$result = SWIG_Ruby_AppendOutput($result, wxRuby_RichTextObject2Ruby(tmp$argnum, 0));'
112
+
113
+ end
114
+
115
+ map 'wxArrayInt * partialExtents' => 'Array,nil' do
116
+ map_in temp: 'wxArrayInt tmp, VALUE rb_arg', code: <<~__CODE
117
+ rb_arg = $input;
118
+ if (NIL_P($input) || TYPE($input) == T_ARRAY)
119
+ {
120
+ $1 = NIL_P($input) ? nullptr : &tmp;
121
+ }
122
+ else
123
+ {
124
+ rb_raise(rb_eArgError, "Expected Array or nil for %d", $argnum-1);
125
+ }
126
+ __CODE
127
+ map_argout by_ref: true, code: <<~__CODE
128
+ if (!NIL_P(rb_arg$argnum))
129
+ {
130
+ for (size_t i=0; i<tmp$argnum.GetCount() ;++i)
131
+ {
132
+ rb_ary_push(rb_arg$argnum, INT2NUM(tmp$argnum.Item(i)));
133
+ }
134
+ }
135
+ __CODE
136
+
137
+ map_directorin code: 'VALUE rb_int_arr = $input = ($1 == nullptr ? Qnil : rb_ary_new());'
138
+ map_directorargout code: <<~__CODE
139
+ if ($1)
140
+ {
141
+ for (int i=0; i<RARRAY_LEN(rb_int_arr) ;++i)
142
+ {
143
+ $1->Add(NUM2INT(rb_ary_entry(rb_int_arr, i)));
144
+ }
145
+ }
146
+ output = Qnil;
147
+ __CODE
148
+ end
149
+
150
+ # Used as out parameters by some other selection-getting methods
151
+ map_apply 'long * OUTPUT' => [ 'long * from' , 'long * to', 'long *x', 'long *y' ]
152
+
153
+ map 'long & end', 'long& textPosition', 'long& wrapPosition', as: 'Integer' do
154
+
155
+ map_in temp: 'long tmp', code: 'tmp = NUM2LONG($input); $1 = &tmp;'
156
+
157
+ map_argout code: '$result = SWIG_Ruby_AppendOutput($result, LONG2NUM(tmp$argnum));'
158
+
159
+ map_directorin code: '$input = LONG2NUM($1);'
160
+
161
+ map_directorargout code: <<~__CODE
162
+ if(output != Qnil)
163
+ {
164
+ $1 = NUM2LONG(output);
165
+ }
166
+ else
167
+ {
168
+ $1 = 0;
169
+ }
170
+ __CODE
171
+
172
+ end
173
+
174
+ map 'bool * recurse' => 'Boolean' do
175
+
176
+ map_in temp: 'bool recurse', code: 'recurse = ($input == Qtrue); $1 = &recurse;'
177
+
178
+ map_argout code: '$result = SWIG_Ruby_AppendOutput($result, recurse$argnum ? Qtrue : Qfalse);'
179
+
180
+ end
181
+
182
+ map 'wxRichTextFloatCollector*' => 'Wx::RTC::RichTextFloatCollector' do
183
+ add_header_code <<~__CODE
184
+ extern VALUE _wxRuby_Wrap_wxRichTextFloatCollector(wxRichTextFloatCollector* fc);
185
+ extern wxRichTextFloatCollector* _wxRuby_Unwrap_wxRichTextFloatCollector(VALUE rbfc);
186
+ extern bool _wxRuby_Is_wxRichTextFloatCollector(VALUE rbfc);
187
+ __CODE
188
+ map_in code: '$1 = _wxRuby_Unwrap_wxRichTextFloatCollector($input);'
189
+ map_out code: '$result = _wxRuby_Wrap_wxRichTextFloatCollector($1);'
190
+ map_typecheck code: '$1 = _wxRuby_Is_wxRichTextFloatCollector($input);'
191
+ end
192
+
193
+ map 'const wxRichTextObjectList &' => 'Array<Wx::RTC::RichTextObject>' do
194
+
195
+ map_out code: <<~__CODE
196
+ $result = rb_ary_new();
197
+ for (const wxRichTextObject *wx_rto : *$1)
198
+ {
199
+ rb_ary_push($result, wxRuby_RichTextObject2Ruby(wx_rto, 0));
200
+ }
201
+ __CODE
202
+
203
+ end
204
+
205
+
206
+ map 'wxRichTextObjectList &' => 'Array<Wx::RTC::RichTextObject>' do
207
+
208
+ map_in temp: 'wxRichTextObjectList wx_lst, VALUE rb_lst', code: <<~__CODE
209
+ if (TYPE($input) == T_ARRAY)
210
+ {
211
+ $1 = &wx_lst;
212
+ rb_lst = $input;
213
+ }
214
+ else
215
+ {
216
+ rb_raise(rb_eArgError, "Expected an Array for %d", $argnum-1);
217
+ }
218
+ __CODE
219
+
220
+ map_argout by_ref: true, code: <<~__CODE
221
+ for (const wxRichTextObject *wx_rto : wx_lst$argnum)
222
+ {
223
+ rb_ary_push(rb_lst$argnum, SWIG_NewPointerObj(SWIG_as_voidptr(const_cast<wxRichTextObject*> (wx_rto)), SWIGTYPE_p_wxRichTextObject, 0));
224
+ }
225
+ __CODE
226
+
227
+ end
228
+
229
+ map 'wxRichTextStyleDefinition *' => 'Wx::RTC::RichTextStyleDefinition' do
230
+
231
+ map_out code: '$result = wxRuby_RichTextStyleDefinition2Ruby($1, $owner);'
232
+
233
+ end
60
234
 
61
235
  end # define
62
236
 
@@ -1,6 +1,9 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
1
5
  ###
2
6
  # wxRuby3 Common typemap definitions
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  require_relative '../core/mapping'
@@ -23,21 +26,43 @@ module WXRuby3
23
26
  // implemented in TreeEvent.cpp
24
27
  extern VALUE _wxRuby_Wrap_wxTreeItemId(const wxTreeItemId& id);
25
28
  extern wxTreeItemId _wxRuby_Unwrap_wxTreeItemId(VALUE id);
29
+ extern bool _wxRuby_Is_wxTreeItemId(VALUE id);
26
30
  __CODE
27
31
 
28
32
  map_in temp: 'wxTreeItemId tmpId', code: <<~__CODE
29
33
  if ($input != Qnil) tmpId = _wxRuby_Unwrap_wxTreeItemId($input);
30
34
  $1 = &tmpId;
31
35
  __CODE
36
+
32
37
  map_directorin code: '$input = _wxRuby_Wrap_wxTreeItemId($1);'
38
+
39
+ map_typecheck precedence: 'POINTER', code: '$1 = _wxRuby_Is_wxTreeItemId($input);'
33
40
  end
34
41
 
35
42
  map 'wxTreeItemId' => 'Wx::TreeItemId' do
43
+
44
+ add_header_code <<~__CODE
45
+ // implemented in TreeEvent.cpp
46
+ extern VALUE _wxRuby_Wrap_wxTreeItemId(const wxTreeItemId& id);
47
+ extern wxTreeItemId _wxRuby_Unwrap_wxTreeItemId(VALUE id);
48
+ extern bool _wxRuby_Is_wxTreeItemId(VALUE id);
49
+ __CODE
50
+
51
+ map_in temp: 'wxTreeItemId tmpId', code: <<~__CODE
52
+ if ($input != Qnil) tmpId = _wxRuby_Unwrap_wxTreeItemId($input);
53
+ $1 = &tmpId;
54
+ __CODE
55
+
56
+ map_directorin code: '$input = _wxRuby_Wrap_wxTreeItemId($1);'
57
+
36
58
  map_out code: '$result = _wxRuby_Wrap_wxTreeItemId($1);'
59
+
37
60
  map_directorout temp: 'wxTreeItemId tmpId', code: <<~__CODE
38
61
  if ($input != Qnil) tmpId = _wxRuby_Unwrap_wxTreeItemId($input);
39
62
  $result = &tmpId;
40
63
  __CODE
64
+
65
+ map_typecheck precedence: 'POINTER', code: '$1 = _wxRuby_Is_wxTreeItemId($input);'
41
66
  end
42
67
 
43
68
  end # define
@@ -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
  # String utilities mixin
3
- # Copyright (c) M.J.N. Corino, The Netherlands
4
7
  ###
5
8
 
6
9
  module WXRuby3
data/rakelib/prepost.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
  require_relative './prepost'