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
@@ -156,6 +156,9 @@ static VALUE swig_runtime_data_type_pointer = Qnil;
156
156
  /* Global IDs used to keep some internal SWIG stuff */
157
157
  static ID swig_arity_id = 0;
158
158
  static ID swig_call_id = 0;
159
+ #if SWIG_VERSION >= 0x040400
160
+ WXRB_EXPORT_FLAG ID swig_lowerthan_id = 0;
161
+ #endif
159
162
 
160
163
  /*
161
164
  If your swig extension is to be run within an embedded ruby and has
@@ -190,11 +193,9 @@ static ID swig_call_id = 0;
190
193
  SWIGRUNTIME VALUE
191
194
  getExceptionClass(void)
192
195
  {
193
- static int init = 0;
194
- static VALUE rubyExceptionClass ;
195
- if (!init)
196
+ static VALUE rubyExceptionClass = Qnil;
197
+ if (rubyExceptionClass == Qnil)
196
198
  {
197
- init = 1;
198
199
  rubyExceptionClass = rb_const_get(_mSWIG, rb_intern("Exception"));
199
200
  }
200
201
  return rubyExceptionClass;
@@ -227,6 +228,9 @@ SWIG_Ruby_InitRuntime(void)
227
228
  _mSWIG = rb_define_module("SWIG");
228
229
  swig_call_id = rb_intern("call");
229
230
  swig_arity_id = rb_intern("arity");
231
+ #if SWIG_VERSION >= 0x040400
232
+ swig_lowerthan_id = rb_intern("<");
233
+ #endif
230
234
  }
231
235
  }
232
236
 
@@ -234,8 +238,14 @@ SWIG_Ruby_InitRuntime(void)
234
238
  WXRB_EXPORT_FLAG void
235
239
  SWIG_Ruby_define_class(swig_type_info *type)
236
240
  {
241
+ #if SWIG_VERSION < 0x040400
237
242
  char *klass_name = (char *) malloc(4 + strlen(type->name) + 1);
238
243
  sprintf(klass_name, "TYPE%s", type->name);
244
+ #else
245
+ size_t klass_len = 4 + strlen(type->name) + 1;
246
+ char *klass_name = (char *) malloc(klass_len);
247
+ SWIG_snprintf(klass_name, klass_len, "TYPE%s", type->name);
248
+ #endif
239
249
  if (NIL_P(_cSWIG_Pointer))
240
250
  {
241
251
  _cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject);
@@ -412,6 +422,12 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
412
422
  }
413
423
  }
414
424
 
425
+ #if SWIG_VERSION >= 0x040400
426
+ if (flags & SWIG_POINTER_CLEAR) {
427
+ DATA_PTR(obj) = 0;
428
+ }
429
+ #endif
430
+
415
431
  /* Do type-checking if type info was provided */
416
432
  if (ty)
417
433
  {
@@ -2,8 +2,32 @@
2
2
  //
3
3
  // This software is released under the MIT license.
4
4
 
5
+ #if defined(__cplusplus) && __cplusplus >=201103L
6
+ # define SWIG_NOEXCEPT noexcept
7
+ #else
8
+ # define SWIG_NOEXCEPT throw()
9
+ #endif
10
+
5
11
  // SWIG runtime
6
12
 
13
+ /* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
14
+ * if you're missing it.
15
+ */
16
+ #if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
17
+ (defined __cplusplus && __cplusplus >= 201103L) || \
18
+ defined SWIG_HAVE_SNPRINTF) && \
19
+ !defined SWIG_NO_SNPRINTF
20
+ # define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
21
+ # define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
22
+ #else
23
+ /* Fallback versions ignore the buffer size, but most of our uses either have a
24
+ * fixed maximum possible size or dynamically allocate a buffer that's large
25
+ * enough.
26
+ */
27
+ # define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
28
+ # define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
29
+ #endif
30
+
7
31
  /* inline attribute */
8
32
  #ifndef SWIGINLINE
9
33
  # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
@@ -49,7 +73,11 @@
49
73
 
50
74
  /* This should only be incremented when either the layout of swig_type_info changes,
51
75
  or for whatever reason, the runtime changes incompatibly */
76
+ #if SWIG_VERSION < 0x040400
52
77
  #define SWIG_RUNTIME_VERSION "4"
78
+ #else
79
+ #define SWIG_RUNTIME_VERSION "5"
80
+ #endif
53
81
 
54
82
  /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
55
83
  #ifdef SWIG_TYPE_TABLE
@@ -248,7 +276,11 @@ typedef struct WXRB_EXPORT_FLAG swig_cast_info {
248
276
  swig_type_info *type; /* pointer to type that is equivalent to this type */
249
277
  swig_converter_func converter; /* function to cast the void pointers */
250
278
  struct swig_cast_info *next; /* pointer to next cast in linked list */
279
+ #if SWIG_VERSION < 0x040400
251
280
  struct swig_cast_info *prev; /* pointer to the previous cast */
281
+ #else
282
+ unsigned int value; /* index of the last valid element in the array | typename hash value */
283
+ #endif
252
284
  } swig_cast_info;
253
285
 
254
286
  /* Structure used to store module information
@@ -314,12 +346,55 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
314
346
  return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
315
347
  }
316
348
 
349
+ #if SWIG_VERSION >= 0x040400
350
+ /*
351
+ * Hash function for type name strings, based on maRushPrime1Hash (http://amsoftware.narod.ru/algo2.html)
352
+ */
353
+ WXRB_EXPORT_FLAG unsigned int SWIG_Hash(const char *str, unsigned int len) {
354
+ const unsigned char *data = (const unsigned char *)str;
355
+ unsigned int hash = len, i = 0, k;
356
+ int rem = (int)len;
357
+
358
+ while (rem >= (int)sizeof(unsigned int)) {
359
+ k = *(unsigned int *)data;
360
+ k += i++;
361
+ hash ^= k;
362
+ hash *= 171717;
363
+ data += sizeof(unsigned int);
364
+ rem -= sizeof(unsigned int);
365
+ }
366
+
367
+ switch (rem) {
368
+ case 3: k = (unsigned int)(data[2]) << 16;
369
+ k |= (unsigned int)(data[1]) << 8;
370
+ k |= (unsigned int)(data[0]);
371
+ k += i++;
372
+ hash ^= k;
373
+ hash *= 171717;
374
+ break;
375
+ case 2: k = (unsigned int)(data[1]) << 8;
376
+ k |= (unsigned int)(data[0]);
377
+ k += i++;
378
+ hash ^= k;
379
+ hash *= 171717;
380
+ break;
381
+ case 1: k = (unsigned int)(data[0]);
382
+ k += i++;
383
+ hash ^= k;
384
+ hash *= 171717;
385
+ break;
386
+ }
387
+ return hash;
388
+ }
389
+ #endif
390
+
317
391
  /*
318
392
  Check the typename
319
393
  */
320
394
  WXRB_EXPORT_FLAG swig_cast_info *
321
395
  SWIG_TypeCheck(const char *c, swig_type_info *ty)
322
396
  {
397
+ #if SWIG_VERSION < 0x040400
323
398
  if (ty)
324
399
  {
325
400
  swig_cast_info *iter = ty->cast;
@@ -342,6 +417,72 @@ SWIG_TypeCheck(const char *c, swig_type_info *ty)
342
417
  iter = iter->next;
343
418
  }
344
419
  }
420
+ #else
421
+ static const unsigned int scan_threshold = 4;
422
+ if (ty) {
423
+ swig_cast_info *head = ty->cast;
424
+ unsigned int hash_value = 0;
425
+ int hashed = 0;
426
+
427
+ while (head) {
428
+
429
+ if (strcmp(head->type->name, c) == 0) {
430
+ return head;
431
+ }
432
+
433
+ if (head->value) {
434
+ swig_cast_info *iter;
435
+ swig_cast_info *last = head + head->value;
436
+ swig_cast_info *first = head + 1;
437
+ int search = 1;
438
+
439
+ if (!hashed) {
440
+ if (head->value < scan_threshold) {
441
+ for (iter = first; iter <= last; iter++) {
442
+ if (strcmp(iter->type->name, c) == 0) {
443
+ return iter;
444
+ }
445
+ }
446
+ search = 0;
447
+ } else {
448
+ hashed = 1;
449
+ hash_value = SWIG_Hash(c, (unsigned int)strlen(c));
450
+ }
451
+ }
452
+
453
+ if (search) {
454
+ /* Binary search over sorted <'next'|'value'> pairs */
455
+ do {
456
+ iter = first + ((last - first) >> 1);
457
+ if (iter->value < hash_value) {
458
+ first = iter + 1;
459
+ } else if (iter->value == hash_value) {
460
+
461
+ if (strcmp(iter->next->type->name, c) == 0) {
462
+ return iter->next;
463
+ }
464
+
465
+ /* Hash collision check */
466
+ for (last = iter + 1; last->next && last->value == hash_value; last++) {
467
+ if (strcmp(last->next->type->name, c) == 0) {
468
+ return last->next;
469
+ }
470
+ }
471
+ for (first = iter - 1; first != head && first->value == hash_value; first--) {
472
+ if (strcmp(first->next->type->name, c) == 0) {
473
+ return first->next;
474
+ }
475
+ }
476
+ break;
477
+ } else
478
+ last = iter - 1;
479
+ } while (first <= last);
480
+ }
481
+ }
482
+ head = head->next;
483
+ }
484
+ }
485
+ #endif
345
486
  return 0;
346
487
  }
347
488
 
@@ -351,6 +492,7 @@ SWIG_TypeCheck(const char *c, swig_type_info *ty)
351
492
  WXRB_EXPORT_FLAG swig_cast_info *
352
493
  SWIG_TypeCheckStruct(const swig_type_info *from, swig_type_info *ty)
353
494
  {
495
+ #if SWIG_VERSION < 0x040400
354
496
  if (ty)
355
497
  {
356
498
  swig_cast_info *iter = ty->cast;
@@ -373,6 +515,34 @@ SWIG_TypeCheckStruct(const swig_type_info *from, swig_type_info *ty)
373
515
  iter = iter->next;
374
516
  }
375
517
  }
518
+ #else
519
+ if (ty) {
520
+ swig_cast_info *head = ty->cast;
521
+ while (head) {
522
+ if (head->type == from) {
523
+ return head;
524
+ }
525
+
526
+ if (head->value) {
527
+ swig_cast_info *iter;
528
+ swig_cast_info *last = head + head->value;
529
+ swig_cast_info *first = head + 1;
530
+
531
+ /* Binary search over sorted array of casts */
532
+ do {
533
+ iter = first + ((last - first) >> 1);
534
+ if (iter->type < from) {
535
+ first = iter + 1;
536
+ } else if (iter->type == from) {
537
+ return iter;
538
+ } else
539
+ last = iter - 1;
540
+ } while (first <= last);
541
+ }
542
+ head = head->next;
543
+ }
544
+ }
545
+ #endif
376
546
  return 0;
377
547
  }
378
548
 
@@ -438,6 +608,7 @@ SWIG_TypePrettyName(const swig_type_info *type)
438
608
  WXRB_EXPORT_FLAG void
439
609
  SWIG_TypeClientData(swig_type_info *ti, void *clientdata)
440
610
  {
611
+ #if SWIG_VERSION < 0x040400
441
612
  swig_cast_info *cast = ti->cast;
442
613
  /* if (ti->clientdata == clientdata) return; */
443
614
  ti->clientdata = clientdata;
@@ -454,6 +625,24 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata)
454
625
  }
455
626
  cast = cast->next;
456
627
  }
628
+ #else
629
+ swig_cast_info *head = ti->cast;
630
+ /* if (ti->clientdata == clientdata) return; */
631
+ ti->clientdata = clientdata;
632
+
633
+ while (head) {
634
+ swig_cast_info *cast;
635
+ for (cast = head; (cast - head) <= head->value; cast++) {
636
+ if (!cast->converter) {
637
+ swig_type_info *tc = cast->type;
638
+ if (!tc->clientdata) {
639
+ SWIG_TypeClientData(tc, clientdata);
640
+ }
641
+ }
642
+ }
643
+ head = head->next;
644
+ }
645
+ #endif
457
646
  }
458
647
  WXRB_EXPORT_FLAG void
459
648
  SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata)
@@ -203,7 +203,7 @@ module WXRuby3
203
203
  end
204
204
 
205
205
  def cpp_flags
206
- is_core? ? '-DBUILD_WXRUBY_CORE' : ''
206
+ @cpp_flags ||= "#{is_core? ? '-DBUILD_WXRUBY_CORE' : ''}"
207
207
  end
208
208
 
209
209
  def initializer_src
@@ -364,6 +364,8 @@ module WXRuby3
364
364
  # endif
365
365
  # endif
366
366
  #endif
367
+
368
+ #define SWIG_VERSION 0x#{'%.2X%.2X%.2X' % SwigRunner.swig_version}
367
369
  __HEREDOC
368
370
  fsrc.puts
369
371
  fsrc.puts "VALUE #{module_variable} = 0;"
@@ -102,7 +102,7 @@ module WXRuby3
102
102
  end
103
103
 
104
104
  def class_implementation(cls)
105
- @class_implementations[cls] || cls
105
+ @class_implementations[classdef_name(cls)] || cls
106
106
  end
107
107
 
108
108
  def use_template_as_class(tpl, cls)
@@ -16,7 +16,7 @@ module WXRuby3
16
16
  spec.items.replace(%w[wxAcceleratorEntry wxAcceleratorTable])
17
17
  spec.disable_proxies
18
18
 
19
- spec.gc_as_object('wxAcceleratorEntry')
19
+ spec.gc_as_untracked('wxAcceleratorTable', 'wxAcceleratorEntry')
20
20
  spec.ignore 'wxAcceleratorEntry::operator!='
21
21
  spec.add_header_code <<~__HEREDOC
22
22
  // Allow integer keycodes to be specified with a single-ASCII-character
@@ -17,6 +17,7 @@ module WXRuby3
17
17
  def setup
18
18
  super
19
19
  spec.items << 'wxAnimationDecoder'
20
+ spec.gc_as_untracked('wxAnimation')
20
21
  spec.ignore 'wxAnimation::IsCompatibleWith' # no wxClassInfo in wxRuby
21
22
  spec.gc_as_refcounted 'wxAnimationDecoder'
22
23
  # make Ruby director and wrappers use custom implementation
@@ -15,7 +15,7 @@ module WXRuby3
15
15
  def setup
16
16
  super
17
17
  spec.items << 'wxStandardPaths'
18
- spec.gc_as_object 'wxAppTraits'
18
+ spec.gc_as_untracked 'wxAppTraits'
19
19
  # stack based global; tracking unwanted
20
20
  spec.gc_as_untracked 'wxStandardPaths'
21
21
  spec.no_proxy 'wxAppTraits', 'wxStandardPaths'
@@ -14,6 +14,8 @@ module WXRuby3
14
14
 
15
15
  class AuiManager < EvtHandler
16
16
 
17
+ include Typemap::AuiTabCtrl
18
+
17
19
  def setup
18
20
  super
19
21
  spec.gc_as_object 'wxAuiManager'
@@ -123,10 +125,6 @@ module WXRuby3
123
125
  # or false if the orphaned page should be removed.
124
126
  spec.map 'int page, wxAuiTabCtrl **tabCtrl, int * tabIndex' do
125
127
 
126
- add_header_code <<~__CODE
127
- static WxRuby_ID s_AuiTabCtrl_id("AuiTabCtrl");
128
- __CODE
129
-
130
128
  map_in from: {type: 'Integer', index: 0}, temp: 'wxAuiTabCtrl *tab_ctrl, int tab_ix', code: <<~__CODE
131
129
  $1 = NUM2INT($input);
132
130
  tab_ctrl = nullptr; tab_ix = 0;
@@ -142,10 +140,8 @@ module WXRuby3
142
140
  {
143
141
  if (tab_ctrl$argnum)
144
142
  {
145
- VALUE rb_klass = rb_const_get(mWxAuiManager, s_AuiTabCtrl_id());
146
- swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(rb_klass);
147
143
  $result = rb_ary_new();
148
- rb_ary_push($result, SWIG_NewPointerObj(SWIG_as_voidptr(tab_ctrl$argnum), swig_type, 0));
144
+ rb_ary_push($result, _wxRuby_Wrap_wxAuiTabCtrl(tab_ctrl$argnum));
149
145
  rb_ary_push($result, INT2NUM(tab_ix$argnum));
150
146
  }
151
147
  else
@@ -169,16 +165,14 @@ module WXRuby3
169
165
  }
170
166
  else if (TYPE(result) == T_ARRAY && RARRAY_LEN(result) == 2)
171
167
  {
172
- VALUE rb_klass = rb_const_get(mWxAuiManager, s_AuiTabCtrl_id());
173
- swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(rb_klass);
174
- void *tab_ctrl;
175
- int res = SWIG_ConvertPtr(rb_ary_entry(result, 0), &tab_ctrl, swig_type, 0);
176
- if (!SWIG_IsOK(res))
168
+ VALUE rbATC = rb_ary_entry(result, 0);
169
+ VALUE rbIx = rb_ary_entry(result, 1);
170
+ if (!_wxRuby_Is_wxAuiTabCtrl(rbATC) || TYPE(rbIx) != T_FIXNUM)
177
171
  {
178
172
  Swig::DirectorTypeMismatchException::raise(swig_get_self(), "$symname", rb_eTypeError,
179
173
  "HandleOrphanedPage should return false, true or Array(Wx::AUI::AuiTabCtrl, Integer)");
180
174
  }
181
- *tabCtrl = reinterpret_cast<wxAuiTabCtrl*>(tab_ctrl);
175
+ *tabCtrl = _wxRuby_Unwrap_wxAuiTabCtrl(rbATC);
182
176
  *tabIndex = NUM2INT(rb_ary_entry(result, 1));
183
177
  c_result = true;
184
178
  }
@@ -210,6 +204,9 @@ module WXRuby3
210
204
  virtual ~WXRubyAuiManager()
211
205
  {
212
206
  wxRuby_ReleaseEvtHandlerProcs(this);
207
+ wxAuiDockArt* art_prov = GetArtProvider();
208
+ SWIG_RubyUnlinkObjects(art_prov);
209
+ SWIG_RubyRemoveTracking(art_prov);
213
210
  }
214
211
 
215
212
  void OnManagedWindowClose(wxCloseEvent& event)
@@ -263,7 +260,7 @@ module WXRuby3
263
260
  spec.add_swig_code '%markfunc wxAuiManager "GC_mark_wxAuiManager";'
264
261
  # provide pure Ruby implementation based on use custom alternative provided below
265
262
  spec.ignore('wxAuiManager::GetAllPanes')
266
- spec.ignore('wxAuiManager::SetManagedWindow', ignore_doc: false)
263
+ spec.ignore('wxAuiManager::SetManagedWindow', 'wxAuiManager::SetArtProvider', ignore_doc: false)
267
264
  spec.add_extend_code 'wxAuiManager', <<~__HEREDOC
268
265
  VALUE each_pane()
269
266
  {
@@ -289,6 +286,16 @@ module WXRuby3
289
286
  WXRubyAuiManager* aui_mng = dynamic_cast<WXRubyAuiManager*> (self);
290
287
  managedWnd->Bind(wxEVT_CLOSE_WINDOW, &WXRubyAuiManager::OnManagedWindowClose, aui_mng);
291
288
  }
289
+
290
+ void SetArtProvider (wxAuiDockArt *art_provider)
291
+ {
292
+ // AUI manager will delete current art provider
293
+ // so cleanup any existing tracking
294
+ wxAuiDockArt* art_prov = self->GetArtProvider();
295
+ SWIG_RubyUnlinkObjects(art_prov);
296
+ SWIG_RubyRemoveTracking(art_prov);
297
+ self->SetArtProvider(art_provider);
298
+ }
292
299
  __HEREDOC
293
300
  spec.suppress_warning(473, 'wxAuiManager::CreateFloatingFrame')
294
301
  spec.do_not_generate(:variables, :defines, :enums, :functions) # with AuiPaneInfo
@@ -45,6 +45,8 @@ module WXRuby3
45
45
  spec.suppress_warning(473,
46
46
  'wxAuiMDIChildFrame::CreateStatusBar',
47
47
  'wxAuiMDIChildFrame::CreateToolBar')
48
+ # for SetMenuBar
49
+ spec.disown 'wxMenuBar *'
48
50
  # for SetStatusWidths
49
51
  spec.map 'int n, int widths_field[]' do
50
52
  map_in from: {type: 'Array<Integer>', index: 1},
@@ -21,6 +21,10 @@ module WXRuby3
21
21
  wxAuiMDIParentFrame::Cascade
22
22
  wxAuiMDIParentFrame::ArrangeIcons]
23
23
  spec.suppress_warning(473, 'wxAuiMDIParentFrame::OnCreateClient')
24
+ # for SetWindowMenu
25
+ spec.disown 'wxMenu *'
26
+ # for SetMenuBar
27
+ spec.disown 'wxMenuBar *'
24
28
  end
25
29
  end # class AuiParentMDIFrame
26
30
 
@@ -14,6 +14,8 @@ module WXRuby3
14
14
 
15
15
  class AuiNotebook < BookCtrls
16
16
 
17
+ include Typemap::AuiTabCtrl
18
+
17
19
  def setup
18
20
  super
19
21
  spec.override_inheritance_chain(spec.module_name, %w[wxBookCtrlBase wxControl wxWindow wxEvtHandler wxObject])
@@ -31,13 +33,13 @@ module WXRuby3
31
33
  spec.make_readonly 'wxAuiNotebookPosition::tabCtrl',
32
34
  'wxAuiNotebookPosition::tabIdx'
33
35
 
34
- spec.map 'std::vector<wxAuiTabCtrl*>' => 'Array<Wx::AuiTabCtrl>' do
36
+ spec.map 'std::vector<wxAuiTabCtrl*>' => 'Array<Wx::AUI::AuiTabCtrl>' do
35
37
  map_out code: <<~__CODE
36
38
  $result = rb_ary_new();
37
39
  std::vector<wxAuiTabCtrl*>* tabctrls = (std::vector<wxAuiTabCtrl*>*)&$1;
38
40
  for (wxAuiTabCtrl* tabctrl : *tabctrls)
39
41
  {
40
- VALUE r_tabctrl = SWIG_NewPointerObj(SWIG_as_voidptr(tabctrl), SWIGTYPE_p_wxAuiTabCtrl, 0);
42
+ VALUE r_tabctrl = _wxRuby_Wrap_wxAuiTabCtrl(tabctrl);
41
43
  rb_ary_push($result, r_tabctrl);
42
44
  }
43
45
  __CODE
@@ -51,8 +53,14 @@ module WXRuby3
51
53
  # Any set AuiTabArt ruby object must be protected from GC once set,
52
54
  # even if it is no longer referenced anywhere else.
53
55
  spec.add_header_code <<~__HEREDOC
56
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkAuiNotebook, "GC_MARK_AUI_NOTEBOOK")
57
+
54
58
  extern void GC_mark_wxAuiNotebook(void *ptr)
55
59
  {
60
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkAuiNotebook, 2)
61
+ WXRUBY_TRACE("> GC_mark_wxAuiNotebook : " << ptr)
62
+ WXRUBY_TRACE_END
63
+
56
64
  if ( GC_IsWindowDeleted(ptr) )
57
65
  {
58
66
  return;
@@ -63,7 +71,16 @@ module WXRuby3
63
71
  wxAuiNotebook* nbk = (wxAuiNotebook*)ptr;
64
72
  wxAuiTabArt* art_prov = nbk->GetArtProvider();
65
73
  VALUE rb_art_prov = SWIG_RubyInstanceFor( (void *)art_prov );
74
+
75
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkAuiNotebook, 2)
76
+ WXRUBY_TRACE("| GC_mark_wxAuiNotebook : marking AUI TabArt provider " << art_prov << " -> " << rb_art_prov);
77
+ WXRUBY_TRACE_END
78
+
66
79
  rb_gc_mark( rb_art_prov );
80
+
81
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkAuiNotebook, 2)
82
+ WXRUBY_TRACE("< GC_mark_wxAuiNotebook : " << ptr)
83
+ WXRUBY_TRACE_END
67
84
  }
68
85
  __HEREDOC
69
86
  # add some convenience methods
@@ -85,7 +102,7 @@ module WXRuby3
85
102
  if ($self->FindTab(page, &ctrl, &idx))
86
103
  {
87
104
  rc = rb_ary_new();
88
- rb_ary_push(rc, SWIG_NewPointerObj(SWIG_as_voidptr(ctrl), SWIGTYPE_p_wxAuiTabCtrl, 0));
105
+ rb_ary_push(rc, _wxRuby_Wrap_wxAuiTabCtrl(ctrl));
89
106
  rb_ary_push(rc, INT2NUM(idx));
90
107
  }
91
108
  return rc;