wxruby3 1.6.0 → 1.7.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 (541) hide show
  1. checksums.yaml +4 -4
  2. data/CREDITS.md +32 -25
  3. data/INSTALL.md +21 -6
  4. data/README.md +5 -5
  5. data/assets/repo-social-preview.odg +0 -0
  6. data/assets/repo-social-preview.xcf +0 -0
  7. data/ext/wxruby3/include/wxRubyApp.h +58 -45
  8. data/ext/wxruby3/include/wxruby-runtime.h +78 -1
  9. data/ext/wxruby3/swig/common.i +2 -2
  10. data/ext/wxruby3/swig/custom/director.swg +2 -2
  11. data/ext/wxruby3/swig/custom/rubyprimtypes.swg +59 -15
  12. data/ext/wxruby3/swig/custom/rubyrun.swg +4 -0
  13. data/ext/wxruby3/swig/custom/rubytracking.swg +4 -0
  14. data/ext/wxruby3/swig/custom/swiglabels.swg +129 -0
  15. data/ext/wxruby3/swig/custom/swigrun.swg +15 -0
  16. data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +20 -0
  17. data/ext/wxruby3/swig/mark_free_impl.i +154 -88
  18. data/ext/wxruby3/swig/memory_management.i +1 -0
  19. data/ext/wxruby3/swig/wx.i +73 -44
  20. data/lib/wx/aui/events/evt_list.rb +148 -0
  21. data/lib/wx/aui/require.rb +0 -1
  22. data/lib/wx/core/calendar_ctrl.rb +15 -0
  23. data/lib/wx/core/clipboard.rb +9 -13
  24. data/lib/wx/core/config.rb +1 -1
  25. data/lib/wx/core/events/evt_list.rb +1458 -0
  26. data/lib/wx/core/font/encoding.rb +113 -0
  27. data/lib/wx/core/generic_validator.rb +83 -31
  28. data/lib/wx/core/tipwindow.rb +16 -0
  29. data/lib/wx/core/variant.rb +6 -0
  30. data/lib/wx/doc/aui/auitabctrl.rb +35 -0
  31. data/lib/wx/doc/config.rb +2 -2
  32. data/lib/wx/doc/functions.rb +1 -1
  33. data/lib/wx/doc/gen/about_dialog_info.rb +330 -0
  34. data/lib/wx/doc/gen/accelerator.rb +178 -0
  35. data/lib/wx/doc/gen/activity_indicator.rb +83 -0
  36. data/lib/wx/doc/gen/affine_matrix2d.rb +284 -0
  37. data/lib/wx/doc/gen/animation.rb +275 -0
  38. data/lib/wx/doc/gen/animation_ctrl.rb +300 -0
  39. data/lib/wx/doc/gen/any_button.rb +191 -0
  40. data/lib/wx/doc/gen/app.rb +463 -0
  41. data/lib/wx/doc/gen/app_traits.rb +396 -0
  42. data/lib/wx/doc/gen/art_provider.rb +605 -0
  43. data/lib/wx/doc/gen/aui/aui_dock_art.rb +455 -0
  44. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +54 -0
  45. data/lib/wx/doc/gen/aui/aui_manager.rb +847 -0
  46. data/lib/wx/doc/gen/aui/aui_manager_event.rb +131 -0
  47. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +180 -0
  48. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +59 -0
  49. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +130 -0
  50. data/lib/wx/doc/gen/aui/aui_notebook.rb +631 -0
  51. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +233 -0
  52. data/lib/wx/doc/gen/aui/aui_pane_info.rb +769 -0
  53. data/lib/wx/doc/gen/aui/aui_tab_art.rb +352 -0
  54. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +14 -0
  55. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +510 -0
  56. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +340 -0
  57. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +244 -0
  58. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +257 -0
  59. data/lib/wx/doc/gen/aui/event_list.rb +179 -0
  60. data/lib/wx/doc/gen/banner_window.rb +124 -0
  61. data/lib/wx/doc/gen/bitmap.rb +731 -0
  62. data/lib/wx/doc/gen/bitmap_button.rb +123 -0
  63. data/lib/wx/doc/gen/bitmap_combo_box.rb +221 -0
  64. data/lib/wx/doc/gen/book_ctrl_base.rb +273 -0
  65. data/lib/wx/doc/gen/book_ctrl_event.rb +66 -0
  66. data/lib/wx/doc/gen/box_sizer.rb +85 -0
  67. data/lib/wx/doc/gen/brush.rb +251 -0
  68. data/lib/wx/doc/gen/busy_info.rb +157 -0
  69. data/lib/wx/doc/gen/button.rb +182 -0
  70. data/lib/wx/doc/gen/calculate_layout_event.rb +62 -0
  71. data/lib/wx/doc/gen/calendar_ctrl.rb +505 -0
  72. data/lib/wx/doc/gen/calendar_date_attr.rb +138 -0
  73. data/lib/wx/doc/gen/calendar_event.rb +147 -0
  74. data/lib/wx/doc/gen/caret.rb +97 -0
  75. data/lib/wx/doc/gen/check_box.rb +175 -0
  76. data/lib/wx/doc/gen/check_list_box.rb +121 -0
  77. data/lib/wx/doc/gen/choice.rb +175 -0
  78. data/lib/wx/doc/gen/choicebook.rb +116 -0
  79. data/lib/wx/doc/gen/client_dc.rb +43 -0
  80. data/lib/wx/doc/gen/clipboard.rb +144 -0
  81. data/lib/wx/doc/gen/collapsible_pane.rb +138 -0
  82. data/lib/wx/doc/gen/collapsible_pane_event.rb +46 -0
  83. data/lib/wx/doc/gen/colour.rb +333 -0
  84. data/lib/wx/doc/gen/colour_dialog.rb +190 -0
  85. data/lib/wx/doc/gen/colour_picker_ctrl.rb +110 -0
  86. data/lib/wx/doc/gen/colour_picker_event.rb +77 -0
  87. data/lib/wx/doc/gen/combo_box.rb +292 -0
  88. data/lib/wx/doc/gen/combo_ctrl.rb +662 -0
  89. data/lib/wx/doc/gen/command_link_button.rb +134 -0
  90. data/lib/wx/doc/gen/config_base.rb +10 -0
  91. data/lib/wx/doc/gen/context_help_button.rb +109 -0
  92. data/lib/wx/doc/gen/control.rb +277 -0
  93. data/lib/wx/doc/gen/control_with_items.rb +253 -0
  94. data/lib/wx/doc/gen/core.rb +45 -0
  95. data/lib/wx/doc/gen/credential_entry_dialog.rb +137 -0
  96. data/lib/wx/doc/gen/cursor.rb +193 -0
  97. data/lib/wx/doc/gen/data_format.rb +85 -0
  98. data/lib/wx/doc/gen/data_object.rb +436 -0
  99. data/lib/wx/doc/gen/data_object_simple_base.rb +10 -0
  100. data/lib/wx/doc/gen/date_event.rb +49 -0
  101. data/lib/wx/doc/gen/date_picker_ctrl.rb +161 -0
  102. data/lib/wx/doc/gen/dc.rb +1631 -0
  103. data/lib/wx/doc/gen/dc_overlay.rb +102 -0
  104. data/lib/wx/doc/gen/defs.rb +2802 -0
  105. data/lib/wx/doc/gen/dial_up_event.rb +45 -0
  106. data/lib/wx/doc/gen/dial_up_manager.rb +149 -0
  107. data/lib/wx/doc/gen/dialog.rb +541 -0
  108. data/lib/wx/doc/gen/dir_dialog.rb +164 -0
  109. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +90 -0
  110. data/lib/wx/doc/gen/dir_picker_ctrl.rb +125 -0
  111. data/lib/wx/doc/gen/display.rb +238 -0
  112. data/lib/wx/doc/gen/drag_drop.rb +299 -0
  113. data/lib/wx/doc/gen/drag_image.rb +116 -0
  114. data/lib/wx/doc/gen/editable_list_box.rb +109 -0
  115. data/lib/wx/doc/gen/event.rb +990 -0
  116. data/lib/wx/doc/gen/event_blocker.rb +50 -0
  117. data/lib/wx/doc/gen/event_filter.rb +92 -0
  118. data/lib/wx/doc/gen/event_list.rb +1644 -0
  119. data/lib/wx/doc/gen/events.rb +2809 -0
  120. data/lib/wx/doc/gen/evt_handler.rb +229 -0
  121. data/lib/wx/doc/gen/ext_help_controller.rb +109 -0
  122. data/lib/wx/doc/gen/file_ctrl.rb +231 -0
  123. data/lib/wx/doc/gen/file_ctrl_event.rb +83 -0
  124. data/lib/wx/doc/gen/file_dialog.rb +353 -0
  125. data/lib/wx/doc/gen/file_dialog_custom_control.rb +165 -0
  126. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +158 -0
  127. data/lib/wx/doc/gen/file_dir_picker_event.rb +100 -0
  128. data/lib/wx/doc/gen/file_picker_ctrl.rb +132 -0
  129. data/lib/wx/doc/gen/file_system.rb +232 -0
  130. data/lib/wx/doc/gen/find_dialog_event.rb +126 -0
  131. data/lib/wx/doc/gen/find_replace_data.rb +60 -0
  132. data/lib/wx/doc/gen/find_replace_dialog.rb +58 -0
  133. data/lib/wx/doc/gen/flex_grid_sizer.rb +199 -0
  134. data/lib/wx/doc/gen/font.rb +1379 -0
  135. data/lib/wx/doc/gen/font_data.rb +151 -0
  136. data/lib/wx/doc/gen/font_dialog.rb +88 -0
  137. data/lib/wx/doc/gen/font_picker_ctrl.rb +143 -0
  138. data/lib/wx/doc/gen/font_picker_event.rb +65 -0
  139. data/lib/wx/doc/gen/frame.rb +352 -0
  140. data/lib/wx/doc/gen/fs_file.rb +337 -0
  141. data/lib/wx/doc/gen/functions.rb +10 -0
  142. data/lib/wx/doc/gen/gauge.rb +157 -0
  143. data/lib/wx/doc/gen/gb_sizer_item.rb +68 -0
  144. data/lib/wx/doc/gen/gcdc.rb +46 -0
  145. data/lib/wx/doc/gen/gdi_common.rb +1271 -0
  146. data/lib/wx/doc/gen/gdi_object.rb +31 -0
  147. data/lib/wx/doc/gen/generic_about_dialog.rb +140 -0
  148. data/lib/wx/doc/gen/generic_dir_ctrl.rb +223 -0
  149. data/lib/wx/doc/gen/geometry.rb +661 -0
  150. data/lib/wx/doc/gen/graphics_context.rb +1184 -0
  151. data/lib/wx/doc/gen/graphics_object.rb +750 -0
  152. data/lib/wx/doc/gen/grid/event_list.rb +191 -0
  153. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +40 -0
  154. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +280 -0
  155. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +35 -0
  156. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +37 -0
  157. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +49 -0
  158. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +35 -0
  159. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +46 -0
  160. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +38 -0
  161. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +45 -0
  162. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +40 -0
  163. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +197 -0
  164. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +39 -0
  165. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +44 -0
  166. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +45 -0
  167. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +79 -0
  168. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +46 -0
  169. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +35 -0
  170. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +108 -0
  171. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +35 -0
  172. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +49 -0
  173. data/lib/wx/doc/gen/grid/grid_ctrl.rb +3002 -0
  174. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +95 -0
  175. data/lib/wx/doc/gen/grid/grid_event.rb +129 -0
  176. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +104 -0
  177. data/lib/wx/doc/gen/grid/grid_size_event.rb +85 -0
  178. data/lib/wx/doc/gen/grid/grid_string_table.rb +142 -0
  179. data/lib/wx/doc/gen/grid/grid_table_base.rb +317 -0
  180. data/lib/wx/doc/gen/grid/grid_table_message.rb +81 -0
  181. data/lib/wx/doc/gen/grid_bag_sizer.rb +323 -0
  182. data/lib/wx/doc/gen/grid_sizer.rb +195 -0
  183. data/lib/wx/doc/gen/gui_event_loop.rb +159 -0
  184. data/lib/wx/doc/gen/h_scrolled_window.rb +562 -0
  185. data/lib/wx/doc/gen/header_ctrl.rb +880 -0
  186. data/lib/wx/doc/gen/header_ctrl_event.rb +133 -0
  187. data/lib/wx/doc/gen/help_controller.rb +195 -0
  188. data/lib/wx/doc/gen/help_provider.rb +98 -0
  189. data/lib/wx/doc/gen/html/event_list.rb +38 -0
  190. data/lib/wx/doc/gen/html/html_cell.rb +536 -0
  191. data/lib/wx/doc/gen/html/html_cell_event.rb +69 -0
  192. data/lib/wx/doc/gen/html/html_data_object.rb +42 -0
  193. data/lib/wx/doc/gen/html/html_easy_printing.rb +203 -0
  194. data/lib/wx/doc/gen/html/html_help_controller.rb +340 -0
  195. data/lib/wx/doc/gen/html/html_help_data.rb +159 -0
  196. data/lib/wx/doc/gen/html/html_help_window.rb +258 -0
  197. data/lib/wx/doc/gen/html/html_link_event.rb +41 -0
  198. data/lib/wx/doc/gen/html/html_list_box.rb +346 -0
  199. data/lib/wx/doc/gen/html/html_printout.rb +109 -0
  200. data/lib/wx/doc/gen/html/html_window.rb +461 -0
  201. data/lib/wx/doc/gen/hyperlink_ctrl.rb +311 -0
  202. data/lib/wx/doc/gen/hyperlink_event.rb +44 -0
  203. data/lib/wx/doc/gen/icon.rb +267 -0
  204. data/lib/wx/doc/gen/icon_location.rb +40 -0
  205. data/lib/wx/doc/gen/image.rb +1371 -0
  206. data/lib/wx/doc/gen/image_list.rb +168 -0
  207. data/lib/wx/doc/gen/info_bar.rb +195 -0
  208. data/lib/wx/doc/gen/keyboard_state.rb +140 -0
  209. data/lib/wx/doc/gen/list_box.rb +304 -0
  210. data/lib/wx/doc/gen/list_ctrl.rb +1774 -0
  211. data/lib/wx/doc/gen/list_event.rb +208 -0
  212. data/lib/wx/doc/gen/listbook.rb +116 -0
  213. data/lib/wx/doc/gen/locale.rb +4293 -0
  214. data/lib/wx/doc/gen/log.rb +603 -0
  215. data/lib/wx/doc/gen/mdi_client_window.rb +47 -0
  216. data/lib/wx/doc/gen/mdi_frame.rb +324 -0
  217. data/lib/wx/doc/gen/media_ctrl.rb +269 -0
  218. data/lib/wx/doc/gen/media_event.rb +117 -0
  219. data/lib/wx/doc/gen/memory_dc.rb +174 -0
  220. data/lib/wx/doc/gen/menu.rb +509 -0
  221. data/lib/wx/doc/gen/menu_bar.rb +287 -0
  222. data/lib/wx/doc/gen/menu_item.rb +362 -0
  223. data/lib/wx/doc/gen/message_dialog.rb +238 -0
  224. data/lib/wx/doc/gen/mini_frame.rb +108 -0
  225. data/lib/wx/doc/gen/mirror_dc.rb +22 -0
  226. data/lib/wx/doc/gen/mouse_state.rb +150 -0
  227. data/lib/wx/doc/gen/multi_choice_dialog.rb +80 -0
  228. data/lib/wx/doc/gen/non_owned_window.rb +49 -0
  229. data/lib/wx/doc/gen/notebook.rb +278 -0
  230. data/lib/wx/doc/gen/num_validator.rb +37 -0
  231. data/lib/wx/doc/gen/number_entry_dialog.rb +93 -0
  232. data/lib/wx/doc/gen/object.rb +59 -0
  233. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +395 -0
  234. data/lib/wx/doc/gen/paint_dc.rb +27 -0
  235. data/lib/wx/doc/gen/palette.rb +92 -0
  236. data/lib/wx/doc/gen/panel.rb +127 -0
  237. data/lib/wx/doc/gen/pen.rb +511 -0
  238. data/lib/wx/doc/gen/persistence_manager.rb +135 -0
  239. data/lib/wx/doc/gen/persistent_object.rb +52 -0
  240. data/lib/wx/doc/gen/persistent_window.rb +241 -0
  241. data/lib/wx/doc/gen/pg/event_list.rb +106 -0
  242. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +54 -0
  243. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +292 -0
  244. data/lib/wx/doc/gen/pg/pg_cell.rb +177 -0
  245. data/lib/wx/doc/gen/pg/pg_editor.rb +721 -0
  246. data/lib/wx/doc/gen/pg/pg_multi_button.rb +152 -0
  247. data/lib/wx/doc/gen/pg/pg_properties.rb +2829 -0
  248. data/lib/wx/doc/gen/pg/pg_property.rb +2078 -0
  249. data/lib/wx/doc/gen/pg/pg_validation_info.rb +344 -0
  250. data/lib/wx/doc/gen/pg/property_grid.rb +740 -0
  251. data/lib/wx/doc/gen/pg/property_grid_event.rb +184 -0
  252. data/lib/wx/doc/gen/pg/property_grid_interface.rb +1098 -0
  253. data/lib/wx/doc/gen/pg/property_grid_manager.rb +415 -0
  254. data/lib/wx/doc/gen/pg/property_grid_page.rb +354 -0
  255. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +165 -0
  256. data/lib/wx/doc/gen/picker_base.rb +152 -0
  257. data/lib/wx/doc/gen/platform_info.rb +622 -0
  258. data/lib/wx/doc/gen/popup_window.rb +107 -0
  259. data/lib/wx/doc/gen/progress_dialog.rb +100 -0
  260. data/lib/wx/doc/gen/property_sheet_dialog.rb +216 -0
  261. data/lib/wx/doc/gen/prt/event_list.rb +17 -0
  262. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +44 -0
  263. data/lib/wx/doc/gen/prt/post_script_dc.rb +30 -0
  264. data/lib/wx/doc/gen/prt/preview_frame.rb +78 -0
  265. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +151 -0
  266. data/lib/wx/doc/gen/prt/print_data.rb +804 -0
  267. data/lib/wx/doc/gen/prt/print_dialog.rb +55 -0
  268. data/lib/wx/doc/gen/prt/printer.rb +518 -0
  269. data/lib/wx/doc/gen/prt/printer_dc.rb +37 -0
  270. data/lib/wx/doc/gen/query_layout_info_event.rb +106 -0
  271. data/lib/wx/doc/gen/radio_box.rb +306 -0
  272. data/lib/wx/doc/gen/radio_button.rb +159 -0
  273. data/lib/wx/doc/gen/rbn/event_list.rb +136 -0
  274. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1132 -0
  275. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +308 -0
  276. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +45 -0
  277. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +458 -0
  278. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +63 -0
  279. data/lib/wx/doc/gen/rbn/ribbon_control.rb +143 -0
  280. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +229 -0
  281. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +55 -0
  282. data/lib/wx/doc/gen/rbn/ribbon_page.rb +174 -0
  283. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +270 -0
  284. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +45 -0
  285. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +360 -0
  286. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +42 -0
  287. data/lib/wx/doc/gen/rearrange_ctrl.rb +78 -0
  288. data/lib/wx/doc/gen/rearrange_list.rb +123 -0
  289. data/lib/wx/doc/gen/region.rb +380 -0
  290. data/lib/wx/doc/gen/region_iterator.rb +76 -0
  291. data/lib/wx/doc/gen/rich_tool_tip.rb +154 -0
  292. data/lib/wx/doc/gen/rtc/event_list.rb +125 -0
  293. data/lib/wx/doc/gen/rtc/rich_text_box.rb +445 -0
  294. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1188 -0
  295. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +41 -0
  296. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +538 -0
  297. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2103 -0
  298. data/lib/wx/doc/gen/rtc/rich_text_event.rb +173 -0
  299. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +181 -0
  300. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +319 -0
  301. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +193 -0
  302. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +102 -0
  303. data/lib/wx/doc/gen/rtc/rich_text_image.rb +337 -0
  304. data/lib/wx/doc/gen/rtc/rich_text_object.rb +2922 -0
  305. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1240 -0
  306. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +258 -0
  307. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +344 -0
  308. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +227 -0
  309. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +59 -0
  310. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +169 -0
  311. data/lib/wx/doc/gen/sash_event.rb +147 -0
  312. data/lib/wx/doc/gen/sash_layout_window.rb +232 -0
  313. data/lib/wx/doc/gen/sash_window.rb +171 -0
  314. data/lib/wx/doc/gen/scaled_dc.rb +10 -0
  315. data/lib/wx/doc/gen/screen_dc.rb +30 -0
  316. data/lib/wx/doc/gen/scroll_bar.rb +204 -0
  317. data/lib/wx/doc/gen/scrolled_canvas.rb +410 -0
  318. data/lib/wx/doc/gen/scrolled_control.rb +410 -0
  319. data/lib/wx/doc/gen/scrolled_window.rb +430 -0
  320. data/lib/wx/doc/gen/search_ctrl.rb +159 -0
  321. data/lib/wx/doc/gen/secret_store.rb +116 -0
  322. data/lib/wx/doc/gen/simplebook.rb +110 -0
  323. data/lib/wx/doc/gen/single_choice_dialog.rb +89 -0
  324. data/lib/wx/doc/gen/sizer.rb +945 -0
  325. data/lib/wx/doc/gen/sizer_item.rb +244 -0
  326. data/lib/wx/doc/gen/slider.rb +342 -0
  327. data/lib/wx/doc/gen/spin_button.rb +157 -0
  328. data/lib/wx/doc/gen/spin_ctrl.rb +231 -0
  329. data/lib/wx/doc/gen/spin_ctrl_double.rb +192 -0
  330. data/lib/wx/doc/gen/spin_double_event.rb +55 -0
  331. data/lib/wx/doc/gen/spin_event.rb +51 -0
  332. data/lib/wx/doc/gen/splash_screen.rb +113 -0
  333. data/lib/wx/doc/gen/splitter_event.rb +99 -0
  334. data/lib/wx/doc/gen/splitter_window.rb +498 -0
  335. data/lib/wx/doc/gen/static_bitmap.rb +256 -0
  336. data/lib/wx/doc/gen/static_box.rb +180 -0
  337. data/lib/wx/doc/gen/static_box_sizer.rb +85 -0
  338. data/lib/wx/doc/gen/static_line.rb +83 -0
  339. data/lib/wx/doc/gen/static_text.rb +127 -0
  340. data/lib/wx/doc/gen/status_bar.rb +290 -0
  341. data/lib/wx/doc/gen/stc/event_list.rb +221 -0
  342. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4474 -0
  343. data/lib/wx/doc/gen/stc/styled_text_event.rb +8762 -0
  344. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +129 -0
  345. data/lib/wx/doc/gen/svg_file_dc.rb +164 -0
  346. data/lib/wx/doc/gen/system_options.rb +129 -0
  347. data/lib/wx/doc/gen/system_settings.rb +507 -0
  348. data/lib/wx/doc/gen/task_bar_icon.rb +127 -0
  349. data/lib/wx/doc/gen/task_bar_icon_event.rb +88 -0
  350. data/lib/wx/doc/gen/text_attr.rb +756 -0
  351. data/lib/wx/doc/gen/text_ctrl.rb +1033 -0
  352. data/lib/wx/doc/gen/text_entry.rb +441 -0
  353. data/lib/wx/doc/gen/text_entry_dialog.rb +220 -0
  354. data/lib/wx/doc/gen/text_validator.rb +245 -0
  355. data/lib/wx/doc/gen/time_picker_ctrl.rb +128 -0
  356. data/lib/wx/doc/gen/timer.rb +119 -0
  357. data/lib/wx/doc/gen/timer_event.rb +68 -0
  358. data/lib/wx/doc/gen/tip_provider.rb +63 -0
  359. data/lib/wx/doc/gen/tip_window.rb +51 -0
  360. data/lib/wx/doc/gen/toggle_button.rb +182 -0
  361. data/lib/wx/doc/gen/tool_bar.rb +890 -0
  362. data/lib/wx/doc/gen/tool_tip.rb +86 -0
  363. data/lib/wx/doc/gen/toolbook.rb +118 -0
  364. data/lib/wx/doc/gen/top_level_window.rb +497 -0
  365. data/lib/wx/doc/gen/tree_ctrl.rb +1052 -0
  366. data/lib/wx/doc/gen/tree_event.rb +127 -0
  367. data/lib/wx/doc/gen/treebook.rb +180 -0
  368. data/lib/wx/doc/gen/ui_action_simulator.rb +109 -0
  369. data/lib/wx/doc/gen/utils.rb +273 -0
  370. data/lib/wx/doc/gen/v_list_box.rb +272 -0
  371. data/lib/wx/doc/gen/v_scrolled_canvas.rb +195 -0
  372. data/lib/wx/doc/gen/v_scrolled_window.rb +191 -0
  373. data/lib/wx/doc/gen/validator.rb +68 -0
  374. data/lib/wx/doc/gen/variant.rb +294 -0
  375. data/lib/wx/doc/gen/window.rb +2917 -0
  376. data/lib/wx/doc/gen/window_dc.rb +38 -0
  377. data/lib/wx/doc/gen/window_disabler.rb +30 -0
  378. data/lib/wx/doc/gen/with_images.rb +84 -0
  379. data/lib/wx/doc/gen/wizard.rb +257 -0
  380. data/lib/wx/doc/gen/wizard_event.rb +113 -0
  381. data/lib/wx/doc/gen/wizard_page.rb +65 -0
  382. data/lib/wx/doc/gen/wizard_page_simple.rb +88 -0
  383. data/lib/wx/doc/gen/wrap_sizer.rb +79 -0
  384. data/lib/wx/doc/gen/xml_node.rb +316 -0
  385. data/lib/wx/doc/gen/xml_resource.rb +320 -0
  386. data/lib/wx/doc/generic_validator.rb +5 -0
  387. data/lib/wx/doc/pg/pg_property.rb +5 -0
  388. data/lib/wx/doc/tip_window.rb +18 -6
  389. data/lib/wx/doc/variant.rb +30 -0
  390. data/lib/wx/grid/events/evt_list.rb +166 -0
  391. data/lib/wx/html/events/evt_list.rb +27 -0
  392. data/lib/wx/html/simple_html_listbox.rb +46 -33
  393. data/lib/wx/keyword_defs.rb +9 -0
  394. data/lib/wx/pg/events/evt_list.rb +73 -0
  395. data/lib/wx/pg/pg_property.rb +85 -52
  396. data/lib/wx/pg/property_grid_interface.rb +12 -2
  397. data/lib/wx/rbn/events/evt_list.rb +102 -0
  398. data/lib/wx/rtc/events/evt_list.rb +98 -0
  399. data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -0
  400. data/lib/wx/stc/events/evt_list.rb +178 -0
  401. data/lib/wx/version.rb +1 -1
  402. data/lib/wx/wxruby/cmd/setup.rb +6 -0
  403. data/rakelib/configure.rb +9 -0
  404. data/rakelib/gem.rake +84 -66
  405. data/rakelib/gem.rb +4 -20
  406. data/rakelib/lib/config/linux.rb +1 -1
  407. data/rakelib/lib/config/macosx.rb +15 -1
  408. data/rakelib/lib/config/pkgman/linux.rb +7 -2
  409. data/rakelib/lib/config/unixish.rb +3 -3
  410. data/rakelib/lib/config.rb +19 -8
  411. data/rakelib/lib/core/include/swigdirector.inc +3 -3
  412. data/rakelib/lib/core/include/swigrubyerrors.inc +4 -8
  413. data/rakelib/lib/core/include/swigrubyrun.inc +20 -4
  414. data/rakelib/lib/core/include/swigrun.inc +189 -0
  415. data/rakelib/lib/core/package.rb +3 -1
  416. data/rakelib/lib/core/spec.rb +1 -1
  417. data/rakelib/lib/director/accelerator.rb +1 -1
  418. data/rakelib/lib/director/animation.rb +1 -0
  419. data/rakelib/lib/director/app_traits.rb +1 -1
  420. data/rakelib/lib/director/aui_manager.rb +21 -14
  421. data/rakelib/lib/director/aui_mdi_child_frame.rb +2 -0
  422. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -0
  423. data/rakelib/lib/director/aui_notebook.rb +20 -3
  424. data/rakelib/lib/director/aui_tab_ctrl.rb +64 -106
  425. data/rakelib/lib/director/bitmap_combobox.rb +4 -2
  426. data/rakelib/lib/director/calendar_ctrl.rb +72 -14
  427. data/rakelib/lib/director/clipboard.rb +2 -0
  428. data/rakelib/lib/director/data_object.rb +15 -7
  429. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  430. data/rakelib/lib/director/display.rb +81 -0
  431. data/rakelib/lib/director/event.rb +33 -16
  432. data/rakelib/lib/director/event_handler.rb +27 -2
  433. data/rakelib/lib/director/functions.rb +9 -0
  434. data/rakelib/lib/director/geometry.rb +5 -0
  435. data/rakelib/lib/director/grid_ctrl.rb +123 -28
  436. data/rakelib/lib/director/help_provider.rb +1 -1
  437. data/rakelib/lib/director/html_listbox.rb +30 -4
  438. data/rakelib/lib/director/hvscrolled.rb +154 -0
  439. data/rakelib/lib/director/image_list.rb +1 -0
  440. data/rakelib/lib/director/mdi_frame.rb +4 -0
  441. data/rakelib/lib/director/menu.rb +56 -15
  442. data/rakelib/lib/director/menu_bar.rb +62 -0
  443. data/rakelib/lib/director/menu_item.rb +7 -1
  444. data/rakelib/lib/director/num_validator.rb +27 -0
  445. data/rakelib/lib/director/numeric_property_validator.rb +9 -0
  446. data/rakelib/lib/director/persistent_window.rb +16 -0
  447. data/rakelib/lib/director/pgproperty.rb +3 -2
  448. data/rakelib/lib/director/popup_window.rb +2 -0
  449. data/rakelib/lib/director/preview_frame.rb +29 -6
  450. data/rakelib/lib/director/printer.rb +59 -5
  451. data/rakelib/lib/director/property_grid.rb +37 -18
  452. data/rakelib/lib/director/property_grid_interface.rb +10 -8
  453. data/rakelib/lib/director/property_grid_manager.rb +99 -39
  454. data/rakelib/lib/director/property_grid_page.rb +60 -0
  455. data/rakelib/lib/director/rich_tooltip.rb +22 -0
  456. data/rakelib/lib/director/richtext_ctrl.rb +5 -0
  457. data/rakelib/lib/director/richtext_object.rb +13 -4
  458. data/rakelib/lib/director/richtext_style_listbox.rb +11 -2
  459. data/rakelib/lib/director/scrolled_t.rb +3 -0
  460. data/rakelib/lib/director/searchctrl.rb +1 -0
  461. data/rakelib/lib/director/task_bar_icon.rb +14 -8
  462. data/rakelib/lib/director/text_validator.rb +9 -0
  463. data/rakelib/lib/director/tip_window.rb +117 -6
  464. data/rakelib/lib/director/tool_bar.rb +6 -0
  465. data/rakelib/lib/director/top_level_window.rb +0 -1
  466. data/rakelib/lib/director/utils.rb +3 -1
  467. data/rakelib/lib/director/validator.rb +12 -0
  468. data/rakelib/lib/director/variant.rb +64 -20
  469. data/rakelib/lib/director/vlistbox.rb +29 -22
  470. data/rakelib/lib/director/window.rb +12 -2
  471. data/rakelib/lib/director/xml_resource.rb +6 -0
  472. data/rakelib/lib/generate/doc/aui_manager.yaml +1 -1
  473. data/rakelib/lib/generate/doc/rich_tool_tip.yaml +26 -0
  474. data/rakelib/lib/generate/doc.rb +12 -7
  475. data/rakelib/lib/generate/interface.rb +16 -1
  476. data/rakelib/lib/specs/interfaces.rb +6 -2
  477. data/rakelib/lib/swig_runner.rb +12 -12
  478. data/rakelib/lib/typemap/aui_tabctrl.rb +46 -0
  479. data/rakelib/lib/typemap/common.rb +3 -3
  480. data/rakelib/lib/typemap/print_page_range.rb +32 -8
  481. data/samples/art/wxruby-512x512.png +0 -0
  482. data/samples/calendar/calendar.rb +64 -1
  483. data/samples/dialogs/dialogs.rb +172 -0
  484. data/samples/dialogs/tip.xpm +157 -0
  485. data/samples/drawing/maths_images.rb +1 -1
  486. data/samples/event/event.rb +1 -1
  487. data/samples/printing/printing2.rb +1 -1
  488. data/samples/sampler.rb +26 -8
  489. data/samples/text/textctrl.rb +2 -2
  490. data/samples/treectrl/treectrl.rb +2 -2
  491. data/tests/lib/leaked_process_event_exception_test.rb +1 -1
  492. data/tests/lib/leaked_queued_event_exception_test.rb +1 -1
  493. data/tests/lib/wxapp_runner.rb +31 -41
  494. data/tests/lib/wxframe_runner.rb +23 -11
  495. data/tests/lib/wxrb_test.rb +58 -0
  496. data/tests/test_app_event_filter.rb +1 -1
  497. data/tests/test_app_exit_exception.rb +3 -3
  498. data/tests/test_app_init_exception.rb +3 -3
  499. data/tests/test_app_traits.rb +24 -21
  500. data/tests/test_art.rb +7 -7
  501. data/tests/test_art_provider.rb +1 -1
  502. data/tests/test_basic.rb +2 -2
  503. data/tests/test_book_controls.rb +1 -1
  504. data/tests/test_box_sizer.rb +1 -1
  505. data/tests/test_clipboard.rb +5 -5
  506. data/tests/test_combo_ctrl.rb +2 -2
  507. data/tests/test_config.rb +11 -1
  508. data/tests/test_dc.rb +1 -1
  509. data/tests/test_dialog.rb +1 -1
  510. data/tests/test_event_handling.rb +1 -1
  511. data/tests/test_events.rb +1 -1
  512. data/tests/test_exceptions.rb +2 -2
  513. data/tests/test_ext_controls.rb +10 -10
  514. data/tests/test_file_dialog.rb +1 -1
  515. data/tests/test_font.rb +1 -1
  516. data/tests/test_gdi_object.rb +1 -1
  517. data/tests/test_geometry.rb +2 -2
  518. data/tests/test_grid_sizer.rb +2 -2
  519. data/tests/test_intl.rb +1 -1
  520. data/tests/test_item_data.rb +12 -12
  521. data/tests/test_list_ctrl.rb +1 -1
  522. data/tests/test_log.rb +2 -2
  523. data/tests/test_media_ctrl.rb +1 -1
  524. data/tests/test_menu.rb +114 -43
  525. data/tests/test_proof_check.rb +1 -1
  526. data/tests/test_propgrid.rb +857 -0
  527. data/tests/test_richtext.rb +10 -24
  528. data/tests/test_secret_store.rb +1 -1
  529. data/tests/test_sizer.rb +1 -1
  530. data/tests/test_std_controls.rb +8 -8
  531. data/tests/test_styled_text_ctrl.rb +1 -1
  532. data/tests/test_timer.rb +1 -1
  533. data/tests/test_tree_ctrl.rb +1 -1
  534. data/tests/test_validators.rb +79 -36
  535. data/tests/test_variant.rb +1 -1
  536. data/tests/test_window.rb +11 -11
  537. data/tests/testapp.rb +2 -2
  538. data/tests/testapp_noframe.rb +2 -2
  539. metadata +402 -12
  540. data/lib/wx/aui/aui_tab_ctrl.rb +0 -18
  541. data/rakelib/lib/director/hvscrolled_window.rb +0 -140
@@ -114,6 +114,16 @@ module WXRuby3
114
114
  }
115
115
  return wxVariant(arrs);
116
116
  }
117
+ if ((RARRAY_LEN(rbval) > 0 && TYPE(rb_ary_entry(rbval, 0)) == T_FIXNUM))
118
+ {
119
+ wxArrayInt arri;
120
+ for (int i = 0; i < RARRAY_LEN(rbval); i++)
121
+ {
122
+ VALUE num = rb_ary_entry(rbval, i);
123
+ arri.Add(NUM2INT(num));
124
+ }
125
+ return WXVARIANT(arri);
126
+ }
117
127
  if (RARRAY_LEN(rbval) == 0 ||
118
128
  rb_obj_is_kind_of(rb_ary_entry(rbval, 0), rb_const_get(mWxCore, var_Variant_id())))
119
129
  {
@@ -170,6 +180,12 @@ module WXRuby3
170
180
  }
171
181
  __HEREDOC
172
182
  spec.add_extend_code 'wxVariant', <<~__HEREDOC
183
+ wxVariant(const wxArrayInt& val, const wxString &name=wxEmptyString)
184
+ {
185
+ wxVariant var(0L, name);
186
+ var << val;
187
+ return new wxVariant(var);
188
+ }
173
189
  wxVariant(const wxFont& val, const wxString &name=wxEmptyString)
174
190
  {
175
191
  wxVariant var(0L, name);
@@ -188,6 +204,10 @@ module WXRuby3
188
204
  var << val;
189
205
  return new wxVariant(var);
190
206
  }
207
+ wxArrayInt GetArrayInt()
208
+ {
209
+ wxArrayInt arri; arri << *self; return arri;
210
+ }
191
211
  wxFont GetFont()
192
212
  {
193
213
  wxFont font; font << *self; return font;
@@ -292,6 +312,12 @@ module WXRuby3
292
312
  $1 = (TYPE($input) == T_TRUE) || (TYPE($input) == T_FALSE);
293
313
  __CODE
294
314
  end
315
+ # override typecheck for wxArrayInt as we also have to consider
316
+ # wxVariantList and wxArrayString
317
+ spec.map 'const wxArrayInt&' do
318
+ map_typecheck precedence: 'INT32_ARRAY',
319
+ code: '$1 = ((TYPE($input) == T_ARRAY) && (RARRAY_LEN($input) > 0) && (TYPE(rb_ary_entry($input, 0)) == T_FIXNUM));'
320
+ end
295
321
  # override typecheck for wxArrayString as we also have to consider
296
322
  # wxVariantList
297
323
  spec.map 'const wxArrayString&' do
@@ -358,48 +384,64 @@ module WXRuby3
358
384
  # provide a custom wxVariantData implementation for Ruby VALUE
359
385
  # and some interface extensions to use that from Ruby
360
386
  spec.add_header_code <<~__HEREDOC
387
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkVariant, "GC_MARK_VARIANT")
388
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCTrackVariant, "GC_TRACK_VARIANT")
389
+
361
390
  class WXRBValueVariantData;
362
391
  // Mapping of WXRBValueVariantData* to Ruby VALUE
363
392
  WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
364
393
  WXRBVariantDataToRbValueHash);
365
394
  static WXRBVariantDataToRbValueHash Variant_Value_Map;
366
395
 
367
- static void wxRuby_markRbValueVariants()
396
+ static void GC_mark_RbValueVariants()
368
397
  {
398
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
399
+ WXRUBY_TRACE("> GC_mark_RbValueVariants")
400
+ WXRUBY_TRACE_END
401
+
369
402
  WXRBVariantDataToRbValueHash::iterator it;
370
403
  for( it = Variant_Value_Map.begin(); it != Variant_Value_Map.end(); ++it )
371
404
  {
372
405
  VALUE obj = it->second;
373
- #ifdef __WXRB_DEBUG__
374
- if (wxRuby_TraceLevel()>1)
375
- {
376
- void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0);
377
- std::wcout << "**** wxRuby_markRbValueVariants : " << it->first << "|" << (void*)c_ptr << std::endl;
378
- }
379
- #endif
406
+
407
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
408
+ WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0))
409
+ WXRUBY_TRACE("| GC_mark_RbValueVariants : " << it->first << "|" << (void*)c_ptr)
410
+ WXRUBY_TRACE_END
411
+
380
412
  rb_gc_mark(obj);
381
413
  }
414
+
415
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
416
+ WXRUBY_TRACE("< GC_mark_RbValueVariants")
417
+ WXRUBY_TRACE_END
382
418
  }
383
419
 
384
420
  static void wxRuby_RegisterValueVariantData(void* ptr, VALUE rbval)
385
421
  {
386
- #ifdef __WXRB_DEBUG__
387
- if (wxRuby_TraceLevel()>1)
388
- {
389
- void *c_ptr = (TYPE(rbval) == T_DATA ? DATA_PTR(rbval) : 0);
390
- std::wcout << "**** wxRuby_RegisterValueVariantData : " << ptr << "|" << (void*)c_ptr << std::endl;
391
- }
392
- #endif
422
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackVariant, 2)
423
+ WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(rbval) == T_DATA ? DATA_PTR(rbval) : 0))
424
+ WXRUBY_TRACE("> wxRuby_RegisterValueVariantData : " << ptr << "|" << (void*)c_ptr)
425
+ WXRUBY_TRACE_END
426
+
393
427
  Variant_Value_Map[ptr] = rbval;
428
+
429
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
430
+ WXRUBY_TRACE("< wxRuby_RegisterValueVariantData")
431
+ WXRUBY_TRACE_END
394
432
  }
395
433
 
396
434
  static void wxRuby_UnregisterValueVariantData(void* ptr)
397
435
  {
398
- #ifdef __WXRB_DEBUG__
399
- if (wxRuby_TraceLevel()>1)
400
- std::wcout << "**** wxRuby_UnregisterValueVariantData : " << ptr << std::endl;
401
- #endif
436
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackVariant, 2)
437
+ WXRUBY_TRACE("> wxRuby_UnregisterValueVariantData : " << ptr)
438
+ WXRUBY_TRACE_END
439
+
402
440
  Variant_Value_Map.erase(ptr);
441
+
442
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
443
+ WXRUBY_TRACE("< wxRuby_UnregisterValueVariantData")
444
+ WXRUBY_TRACE_END
403
445
  }
404
446
 
405
447
  class WXRUBY_EXPORT WXRBValueVariantData : public wxVariantData
@@ -460,7 +502,7 @@ module WXRuby3
460
502
  return variant;
461
503
  }
462
504
  __HEREDOC
463
- spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markRbValueVariants);'
505
+ spec.add_init_code 'wxRuby_AppendMarker(GC_mark_RbValueVariants);'
464
506
  # ignore GetType (not doc)
465
507
  spec.ignore 'wxVariant::GetType', ignore_doc: false
466
508
  # replace with custom implementation
@@ -506,6 +548,8 @@ module WXRuby3
506
548
  { (*self) = v; }
507
549
  void assign(const wxArrayString& v)
508
550
  { (*self) = v; }
551
+ void assign(const wxArrayInt& v)
552
+ { (*self) << v; }
509
553
 
510
554
  VALUE to_i()
511
555
  {
@@ -16,30 +16,37 @@ module WXRuby3
16
16
 
17
17
  def setup
18
18
  super
19
- spec.override_inheritance_chain('wxVListBox', [{ 'wxVScrolledWindow' => 'wxHVScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
19
+ spec.gc_as_window
20
+ if Config.instance.wx_version_check('3.3.1') > 0
21
+ spec.override_inheritance_chain('wxVListBox', [{ 'wxVScrolledCanvas' => 'wxVScrolledCanvas' }, 'wxWindow', 'wxEvtHandler', 'wxObject'])
22
+ elsif Config.instance.wx_version_check('3.3.0') > 0
23
+ spec.override_inheritance_chain('wxVListBox', [{ 'wxVScrolledWindow' => 'wxVScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
24
+ else
25
+ spec.override_inheritance_chain('wxVListBox', [{ 'wxVScrolledWindow' => 'wxHScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
26
+ end
20
27
  spec.make_abstract 'wxVListBox'
21
28
  # provide base implementations for OnDrawItem and OnMeasureItem
22
- spec.add_header_code <<~__HEREDOC
23
- // Custom subclass implementation.
24
- class wxRubyVListBox : public wxVListBox
25
- {
26
- public:
27
- wxRubyVListBox()
28
- : wxVListBox () {}
29
- wxRubyVListBox(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxVListBoxNameStr)
30
- : wxVListBox(parent, id, pos, size, style, name) {}
31
- protected:
32
- virtual void OnDrawItem(wxDC&, const wxRect&, size_t) const
33
- {
34
- }
35
- virtual wxCoord OnMeasureItem(size_t) const
36
- {
37
- return {};
38
- }
39
- };
40
- __HEREDOC
41
- # make Ruby director and wrappers use custom implementation
42
- spec.use_class_implementation('wxVListBox', 'wxRubyVListBox')
29
+ # spec.add_header_code <<~__HEREDOC
30
+ # // Custom subclass implementation.
31
+ # class wxRubyVListBox : public wxVListBox
32
+ # {
33
+ # public:
34
+ # wxRubyVListBox()
35
+ # : wxVListBox () {}
36
+ # wxRubyVListBox(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxVListBoxNameStr)
37
+ # : wxVListBox(parent, id, pos, size, style, name) {}
38
+ # protected:
39
+ # virtual void OnDrawItem(wxDC&, const wxRect&, size_t) const
40
+ # {
41
+ # }
42
+ # virtual wxCoord OnMeasureItem(size_t) const
43
+ # {
44
+ # return {};
45
+ # }
46
+ # };
47
+ # __HEREDOC
48
+ # # make Ruby director and wrappers use custom implementation
49
+ # spec.use_class_implementation('wxVListBox', 'wxRubyVListBox')
43
50
  # make sure protected methods are included
44
51
  spec.regard 'wxVListBox::OnDrawItem',
45
52
  'wxVListBox::OnMeasureItem',
@@ -127,7 +127,7 @@ module WXRuby3
127
127
  spec.ignore 'wxWindow::EnableTouchEvents'
128
128
  end
129
129
  if Config.instance.wx_version_check('3.3.0') >= 0
130
- spec.ignore_unless('WXMSW', 'wxWindow::MSWDisableComposited')
130
+ spec.ignore_unless('WXMSW', 'wxWindow::MSWDisableComposited') if Config.instance.wx_version_check('3.3.1') <= 0
131
131
  spec.ignore('wxWindow::GTKGetWin32Handle')
132
132
  end
133
133
  if Config.instance.features_set?('USE_ACCESSIBILITY')
@@ -236,6 +236,10 @@ module WXRuby3
236
236
  spec.override_events 'wxWindow', 'EVT_ACTIVATE' => ['EVT_ACTIVATE', 0, 'wxActivateEvent']
237
237
  when 'wxNonOwnedWindow'
238
238
  spec.no_proxy('wxNonOwnedWindow')
239
+ if Config.instance.features_set?('WXOSX')
240
+ spec.extend_interface('wxNonOwnedWindow',
241
+ 'virtual bool Destroy() override')
242
+ end
239
243
  when 'wxControl'
240
244
  # add these to the generated interface to be parsed by SWIG
241
245
  # the wxWidgets docs are flawed in this respect that several reimplemented
@@ -288,6 +292,7 @@ module WXRuby3
288
292
  "#{spec.class_name(citem)}::GetScrollRange",
289
293
  "#{spec.class_name(citem)}::GetScrollThumb",
290
294
  "#{spec.class_name(citem)}::GetTextExtent",
295
+ "#{spec.class_name(citem)}::GetDPI",
291
296
  "#{spec.class_name(citem)}::HasCapture",
292
297
  "#{spec.class_name(citem)}::HasMultiplePages",
293
298
  "#{spec.class_name(citem)}::IsDoubleBuffered",
@@ -305,6 +310,9 @@ module WXRuby3
305
310
  "#{spec.class_name(citem)}::SetBackgroundColour",
306
311
  "#{spec.class_name(citem)}::SetBackgroundStyle",
307
312
  "#{spec.class_name(citem)}::HasTransparentBackground",
313
+ "#{spec.class_name(citem)}::CanSetTransparent",
314
+ "#{spec.class_name(citem)}::SetTransparent",
315
+ "#{spec.class_name(citem)}::GetThemeEnabled",
308
316
  "#{spec.class_name(citem)}::SetCursor",
309
317
  "#{spec.class_name(citem)}::SetFocus",
310
318
  "#{spec.class_name(citem)}::SetFocusFromKbd",
@@ -329,12 +337,14 @@ module WXRuby3
329
337
  "#{spec.class_name(citem)}::GetDefaultAttributes",
330
338
  "#{spec.class_name(citem)}::GetWindowStyleFlag",
331
339
  "#{spec.class_name(citem)}::GetDropTarget",
340
+ "#{spec.class_name(citem)}::SetDropTarget",
332
341
  "#{spec.class_name(citem)}::GetValidator",
333
342
  "#{spec.class_name(citem)}::IsTopLevel",
334
343
  "#{spec.class_name(citem)}::EnableTouchEvents",
335
344
  "#{spec.class_name(citem)}::WarpPointer",
336
345
  "#{spec.class_name(citem)}::AdjustForLayoutDirection",
337
- "#{spec.class_name(citem)}::IsTransparentBackgroundSupported")
346
+ "#{spec.class_name(citem)}::IsTransparentBackgroundSupported",
347
+ "#{spec.class_name(citem)}::Reparent")
338
348
  if Config.instance.features_set?('USE_ACCESSIBILITY')
339
349
  if Config.instance.wx_version_check('3.2.4') > 0
340
350
  spec.no_proxy "#{spec.class_name(citem)}::CreateAccessible"
@@ -18,6 +18,12 @@ module WXRuby3
18
18
  spec.ignore %w[wxXmlResource::AddHandler wxXmlResource::ClearHandlers wxXmlResource::InsertHandler]
19
19
  # not really added value; will add alternative allowing more flexibility (see below)
20
20
  spec.ignore 'wxXmlResource::LoadDocument(wxXmlDocument *, const wxString &)'
21
+ # unwanted in Ruby
22
+ spec.ignore 'wxXmlResource::LoadObject',
23
+ 'wxXmlResource::LoadObjectRecursively'
24
+ # unattached loaders return owned objects
25
+ spec.new_object 'wxXmlResource::LoadMenu(const wxString &)',
26
+ 'wxXmlResource::LoadMenuBar(const wxString &)'
21
27
  # For these three methods, there are two variants in wxWidgets. One loads an
22
28
  # XRC from scratch and returns an instance of a core Wx class
23
29
  # (Wx::Dialog, Wx::Frame, or Wx::Panel). The other loads a layout into
@@ -25,4 +25,4 @@
25
25
  :para:
26
26
  - :pattern: !ruby/regexp /The overridden version may return true but modify.*appending them./
27
27
  :replace: |
28
- The overridden version may return a 2-element array with an AuiTabCtrl and tab index instead to change where the page should be inserted, e.g. by returning a tab index of 0 to insert the new pages at the beginning instead of appending them.
28
+ The overridden version may return a 2-element array with an {Wx::AUI::AuiTabCtrl} and tab index instead to change where the page should be inserted, e.g. by returning a tab index of 0 to insert the new pages at the beginning instead of appending them.
@@ -0,0 +1,26 @@
1
+ ---
2
+ :wxRichToolTip:
3
+ :detail:
4
+ :pre:
5
+ :para:
6
+ - :pattern: !ruby/regexp /The images below show some examples.*/
7
+ :replace: |
8
+
9
+ :programlisting:
10
+ - :pattern: !ruby/regexp /.*/
11
+ :replace: |
12
+
13
+ ```ruby
14
+ password = Wx::TextCtrl.new(..., style: Wx::TE_PASSWORD)
15
+ # ...
16
+ tip = Wx::RichToolTip.new("Caps Lock is on",
17
+ "You might have made an error in your password\n" +
18
+ "entry because Caps Lock is turned on.\n" +
19
+ "\n" +
20
+ "Press Caps Lock key to turn it off.")
21
+ tip.set_icon(Wx::ICON_WARNING)
22
+ tip.show_for(password)
23
+ ```
24
+ :post:
25
+ - :pattern: !ruby/regexp /<div class='appearance'>.*</table></div>/m
26
+ :subst: ''
@@ -49,7 +49,7 @@ module WXRuby3
49
49
  end
50
50
  table = { 'Wx' => {}}
51
51
  handle_module(Wx, table['Wx'])
52
- STDOUT.puts JSON.dump(table)
52
+ File.open(ARGV[0], 'w+') { |f| f << JSON.dump(table) }
53
53
  __SCRIPT
54
54
  STDERR.puts "* executing constants collection script:\n#{script}" if Director.trace?
55
55
  begin
@@ -57,22 +57,27 @@ module WXRuby3
57
57
  ftmp_name = tmpfile.path.dup
58
58
  tmpfile << script
59
59
  tmpfile.close(false)
60
- result = if Director.trace?
61
- Config.instance.run(ftmp_name, capture: :out, verbose: false)
62
- else
63
- Config.instance.run(ftmp_name, capture: :no_err, verbose: false)
64
- end
60
+ tmpconsts = Tempfile.new('constants')
61
+ fconsts_name = tmpconsts.path.dup
62
+ tmpconsts.close(false)
63
+ if Director.trace?
64
+ Config.instance.run(ftmp_name, fconsts_name, capture: :out, verbose: false)
65
+ else
66
+ Config.instance.run(ftmp_name, fconsts_name, capture: :no_err, verbose: false)
67
+ end
68
+ result = File.read(fconsts_name)
65
69
  STDERR.puts "* got constants collection output:\n#{result}" if Director.trace?
66
70
  begin
67
71
  db = JSON.load(result)
68
72
  rescue Exception
69
- File.open('constants_raw.json', "w") { |f| f << result } if Director.verbose?
73
+ # File.open('constants_raw.json', "w") { |f| f << result } if Director.verbose?
70
74
  ::Kernel.raise RuntimeError, "Exception loading constants collection result: #{$!.message.slice(0, 512)}", cause: nil
71
75
  end
72
76
  File.open('constants.json', "w") { |f| f << JSON.pretty_generate(db) } if Director.verbose?
73
77
  return db
74
78
  ensure
75
79
  File.unlink(ftmp_name)
80
+ File.unlink(fconsts_name)
76
81
  end
77
82
  end
78
83
 
@@ -262,6 +262,16 @@ module WXRuby3
262
262
  fout.puts extension
263
263
  fout.puts '};'
264
264
  end
265
+ item.innerclasses.each do |inner|
266
+ if inner.protection == 'public' && !inner.ignored && !inner.deprecated
267
+ extension = extend_code("#{class_name(item)}::#{class_name(inner)}")
268
+ unless extension.empty?
269
+ fout.puts "\n%extend #{class_name(item)}::#{class_name(inner)} {"
270
+ fout.puts extension
271
+ fout.puts '};'
272
+ end
273
+ end
274
+ end
265
275
  end
266
276
  end
267
277
  end
@@ -523,7 +533,12 @@ module WXRuby3
523
533
  typedefs = def_items.select {|item| Extractor::TypedefDef === item && !item.ignored }
524
534
  typedefs.each do |item|
525
535
  fout.puts
526
- fout.puts "#{item.definition};"
536
+ # work around problems with older doxygen and wxw < 3.3
537
+ if item.definition.start_with?('typedef')
538
+ fout.puts "#{item.definition};"
539
+ else # with older doxygen 'definition' is often not complete statement so we form it here
540
+ fout.puts "typedef #{item.type} #{item.name};"
541
+ end
527
542
  end
528
543
  fout.puts '' unless typedefs.empty?
529
544
  end
@@ -32,6 +32,7 @@ module WXRuby3
32
32
  Director.Spec(pkg, 'wxApp')
33
33
  Director.Spec(pkg, 'wxAppTraits')
34
34
  Director.Spec(pkg, 'wxConfigBase')
35
+ Director.Spec(pkg, 'wxDisplay')
35
36
  Director.Spec(pkg, 'wxDC')
36
37
  Director.Spec(pkg, 'wxWindowDC', director: Director::DerivedDC)
37
38
  Director.Spec(pkg, 'wxClientDC', director: Director::DerivedDC)
@@ -122,6 +123,7 @@ module WXRuby3
122
123
  Director.Spec(pkg, 'wxCursor')
123
124
  Director.Spec(pkg, 'wxRadioButton', director: Director::Window, requirements: %w[USE_RADIOBTN])
124
125
  Director.Spec(pkg, 'wxToolTip', requirements: %w[USE_TOOLTIPS])
126
+ Director.Spec(pkg, 'wxRichToolTip', requirements: %w[USE_RICHTOOLTIP])
125
127
  Director.Spec(pkg, 'wxLog', requirements: %w[USE_LOG])
126
128
  Director.Spec(pkg, 'wxToolBar', requirements: %w[USE_TOOLBAR])
127
129
  Director.Spec(pkg, 'wxImage', requirements: %w[USE_IMAGE])
@@ -139,7 +141,9 @@ module WXRuby3
139
141
  Director.Spec(pkg, 'wxScrolledWindow', director: Director::ScrolledT)
140
142
  Director.Spec(pkg, 'wxScrolledCanvas', director: Director::ScrolledT)
141
143
  Director.Spec(pkg, 'wxScrolledControl', director: Director::ScrolledT)
142
- Director.Spec(pkg, 'wxHVScrolledWindow')
144
+ Director.Spec(pkg, 'wxHScrolledWindow', director: Director::HVScrolled)
145
+ Director.Spec(pkg, 'wxVScrolledWindow', director: Director::HVScrolled)
146
+ Director.Spec(pkg, 'wxVScrolledCanvas', director: Director::HVScrolled)
143
147
  Director.Spec(pkg, 'wxVListBox')
144
148
  Director.Spec(pkg, 'wxFindReplaceData', requirements: %w[USE_FINDREPLDLG])
145
149
  Director.Spec(pkg, 'wxFindReplaceDialog', director: Director::Dialog, requirements: %w[USE_FINDREPLDLG])
@@ -209,7 +213,7 @@ module WXRuby3
209
213
  Director.Spec(pkg, 'wxDragDrop', requirements: %w[USE_DRAG_AND_DROP])
210
214
  Director.Spec(pkg, 'wxContextHelpButton', requirements: %w[USE_HELP])
211
215
  Director.Spec(pkg, 'wxHelpProvider', requirements: %w[USE_HELP])
212
- Director.Spec(pkg, 'wxTipWindow', requirements: %w[USE_HELP])
216
+ Director.Spec(pkg, 'wxTipWindow', requirements: %w[USE_TIPWINDOW])
213
217
  Director.Spec(pkg, 'wxHelpController', requirements: %w[USE_HELP])
214
218
  Director.Spec(pkg, 'wxExtHelpController', director: Director::HelpController, requirements: %w[USE_HELP])
215
219
  Director.Spec(pkg, 'wxTaskBarIconEvent', director: Director::Event, requirements: %w[USE_TASKBARICON])
@@ -24,8 +24,12 @@ module WXRuby3
24
24
  include Util::StringUtil
25
25
 
26
26
  def swig_major
27
+ swig_version.first
28
+ end
29
+
30
+ def swig_version
27
31
  check_swig unless swig_state
28
- (@swig_version || '').split('.').first.to_i
32
+ @swig_version
29
33
  end
30
34
 
31
35
  private
@@ -38,32 +42,28 @@ module WXRuby3
38
42
  !!@swig_state
39
43
  end
40
44
 
41
- def swig_version
42
- check_swig unless swig_state
43
- @swig_version
44
- end
45
-
46
45
  def check_swig
47
46
  begin
48
- @swig_version = `#{WXRuby3::Config.get_config('swig')} -version`[/\d+\.\d+\.\d+/]
47
+ swig_version_ = `#{WXRuby3::Config.get_config('swig')} -version`[/\d+\.\d+\.\d+/]
49
48
  rescue Exception
50
49
  $stderr.puts "ERROR: Could not run SWIG (#{WXRuby3::Config.get_config('swig')})"
51
50
  exit(1)
52
51
  end
53
52
 
54
53
  # Very old versions put --version on $stderr, not $stdout
55
- unless @swig_version
54
+ unless swig_version_
56
55
  $stderr.puts "Could not get version info from SWIG; " +
57
56
  "is a very old version installed?.\n"
58
57
  exit(1)
59
58
  end
60
59
 
61
- if @swig_version < SWIG_MINIMUM_VERSION
62
- $stderr.puts "SWIG version #{@swig_version} is installed, " +
60
+ if swig_version_ < SWIG_MINIMUM_VERSION
61
+ $stderr.puts "SWIG version #{swig_version_} is installed, " +
63
62
  "minimum version required is #{SWIG_MINIMUM_VERSION}.\n"
64
63
  exit(1)
65
64
  end
66
65
 
66
+ @swig_version = swig_version_.split('.').map(&:to_i)
67
67
  @swig_state = true
68
68
  end
69
69
 
@@ -418,14 +418,14 @@ module WXRuby3
418
418
  # get the generated (class) items for which an alternate implementation has been registered
419
419
  class_list = def_items.select { |itm| Extractor::ClassDef === itm && itm.name != class_implementation(itm.name) }
420
420
  # create re match list for class names
421
- cls_re_txt = class_list.collect { |clsdef| clsdef.name }.join('|')
421
+ cls_re_txt = class_list.collect { |clsdef| class_name(clsdef.name) }.join('|')
422
422
  # updating any matching alloc functions in generated SWIG sourcecode
423
423
  # create regexp for 'initialize' wrappers (due to overloads this could be more than one per class)
424
424
  new_re = /_wrap_new_(#{cls_re_txt})\w*\(.*\)/
425
425
  # check if any of the selected classes have a Director proxy enabled
426
426
  if proxies_enabled = class_list.any? { |clsdef| has_proxy?(clsdef) }
427
427
  # create re match list for classes with director proxy enabled
428
- dir_cls_re_txt = class_list.select { |clsdef| has_proxy?(clsdef) }.collect { |cd| cd.name }.join('|')
428
+ dir_cls_re_txt = class_list.select { |clsdef| has_proxy?(clsdef) }.collect { |cd| class_name(cd.name) }.join('|')
429
429
  # create regexp for Director constructors (may not exist if no proxies are enabled)
430
430
  dir_ctor_re = /SwigDirector_\w+::SwigDirector_\w+\(.*\)\s*:\s*(#{dir_cls_re_txt})\(.*\)\s*,\s*Swig::Director.*{/
431
431
  # create regexp for method wrappers other than 'initialize' wrappers
@@ -0,0 +1,46 @@
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
+ # These typemaps are used by AUI classes to convert wxAuiTabCtrl pointers
16
+ # into lightweight wrapper objects
17
+ module AuiTabCtrl
18
+
19
+ include Typemap::Module
20
+
21
+ define do
22
+
23
+ map 'wxAuiTabCtrl*' => 'Wx::AUI::AuiTabCtrl' do
24
+
25
+ add_header_code <<~__CODE
26
+ // implemented in TreeEvent.cpp
27
+ extern VALUE _wxRuby_Wrap_wxAuiTabCtrl(wxAuiTabCtrl* wxATC);
28
+ extern wxAuiTabCtrl* _wxRuby_Unwrap_wxAuiTabCtrl(VALUE rbATC);
29
+ extern bool _wxRuby_Is_wxAuiTabCtrl(VALUE rbATC);
30
+ __CODE
31
+
32
+ map_in temp: 'wxAuiTabCtrl *tmpATC', code: <<~__CODE
33
+ if ($input != Qnil) tmpATC = _wxRuby_Unwrap_wxAuiTabCtrl($input);
34
+ $1 = tmpATC;
35
+ __CODE
36
+
37
+ map_out code: '$result = _wxRuby_Wrap_wxAuiTabCtrl($1);'
38
+ end
39
+
40
+ end # define
41
+
42
+ end # AuiTabCtrl
43
+
44
+ end # Typemap
45
+
46
+ end # WXRuby3
@@ -565,7 +565,7 @@ module WXRuby3
565
565
  map 'wxUpdateUIEvent &' => 'Wx::UpdateUIEvent' do
566
566
  map_directorin code: <<~__CODE
567
567
  #ifdef __WXRB_DEBUG__
568
- $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
568
+ $input = wxRuby_WrapWxEventInRuby(const_cast<void*>((const void*)this), static_cast<wxEvent*> (&$1));
569
569
  #else
570
570
  $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
571
571
  #endif
@@ -577,7 +577,7 @@ module WXRuby3
577
577
  map 'wxCommandEvent &' => 'Wx::CommandEvent' do
578
578
  map_directorin code: <<~__CODE
579
579
  #ifdef __WXRB_DEBUG__
580
- $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
580
+ $input = wxRuby_WrapWxEventInRuby(const_cast<void*>((const void*)this), static_cast<wxEvent*> (&$1));
581
581
  #else
582
582
  $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
583
583
  #endif
@@ -598,7 +598,7 @@ module WXRuby3
598
598
  map 'wxKeyEvent &' => 'Wx::KeyEvent' do
599
599
  map_directorin code: <<~__CODE
600
600
  #ifdef __WXRB_DEBUG__
601
- $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
601
+ $input = wxRuby_WrapWxEventInRuby(const_cast<void*>((const void*)this), static_cast<wxEvent*> (&$1));
602
602
  #else
603
603
  $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
604
604
  #endif
@@ -54,17 +54,45 @@ module WXRuby3
54
54
 
55
55
  map 'std::vector<wxPrintPageRange> &' => 'Array<Wx::PRT::PrintPageRange>' do
56
56
 
57
- map_in temp: 'std::vector<wxPrintPageRange> tmp_vector', code: '$1 = &tmp_vector;'
57
+ map_in temp: 'std::vector<wxPrintPageRange> tmp', code: <<~__CODE
58
+ if (TYPE($input) == T_ARRAY)
59
+ {
60
+ $1 = &tmp;
61
+ for (int i = 0; i < RARRAY_LEN($input); i++)
62
+ {
63
+ void *ptr;
64
+ VALUE r_range = rb_ary_entry($input, i);
65
+ int res = SWIG_ConvertPtr(r_range, &ptr, SWIGTYPE_p_wxPrintPageRange, 0);
66
+ if (!SWIG_IsOK(res) || !ptr) {
67
+ rb_raise(rb_eTypeError, "Expected Array of Wx::PRT::PrintPageRange for 1");
68
+ }
69
+ wxPrintPageRange *range = reinterpret_cast< wxPrintPageRange * >(ptr);
70
+ $1->push_back(*range);
71
+ }
72
+ }
73
+ else {
74
+ rb_raise(rb_eArgError, "Expected Array of Wx::PRT::PrintPageRange for 1");
75
+ }
76
+ __CODE
58
77
 
59
78
  map_argout code: <<~__CODE
79
+ VALUE rb_ranges = rb_ary_new();
60
80
  for (const wxPrintPageRange& range : *$1)
61
81
  {
62
- VALUE r_range = SWIG_NewPointerObj(new wxPrintPageRange(range), SWIGTYPE_p_wxPrintPageRange, SWIG_POINTER_OWN);
63
- rb_ary_push($input, r_range);
82
+ VALUE rb_range = SWIG_NewPointerObj(new wxPrintPageRange(range), SWIGTYPE_p_wxPrintPageRange, SWIG_POINTER_OWN);
83
+ rb_ary_push(rb_ranges, rb_range);
64
84
  }
85
+ $result = SWIG_AppendOutput($result, rb_ranges);
65
86
  __CODE
66
87
 
67
- map_directorin code: '$input = rb_ary_new();'
88
+ map_directorin code: <<~__CODE
89
+ $input = rb_ary_new();
90
+ for (const wxPrintPageRange& range : $1)
91
+ {
92
+ VALUE rb_range = SWIG_NewPointerObj(new wxPrintPageRange(range), SWIGTYPE_p_wxPrintPageRange, SWIG_POINTER_OWN);
93
+ rb_ary_push($input, rb_range);
94
+ }
95
+ __CODE
68
96
 
69
97
  map_directorargout code: <<~__CODE
70
98
  for (int i = 0; i < RARRAY_LEN($result); i++)
@@ -83,10 +111,6 @@ module WXRuby3
83
111
 
84
112
  end
85
113
  end
86
- # Doc only mapping def
87
- map 'std::vector<wxPrintPageRange> &' => 'Array<Wx::PRT::PrintPageRange>', swig: false do
88
- map_in
89
- end
90
114
 
91
115
  end
92
116
 
Binary file