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
@@ -0,0 +1,129 @@
1
+ /* -----------------------------------------------------------------------------
2
+ * This section contains generic SWIG labels for method/variable
3
+ * declarations/attributes, and other compiler dependent labels.
4
+ * ----------------------------------------------------------------------------- */
5
+
6
+ /* template workaround for compilers that cannot correctly implement the C++ standard */
7
+ #ifndef SWIGTEMPLATEDISAMBIGUATOR
8
+ # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
9
+ # define SWIGTEMPLATEDISAMBIGUATOR template
10
+ # elif defined(__HP_aCC)
11
+ /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
12
+ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
13
+ # define SWIGTEMPLATEDISAMBIGUATOR template
14
+ # else
15
+ # define SWIGTEMPLATEDISAMBIGUATOR
16
+ # endif
17
+ #endif
18
+
19
+ /* inline attribute */
20
+ #ifndef SWIGINLINE
21
+ # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
22
+ # define SWIGINLINE inline
23
+ # else
24
+ # define SWIGINLINE
25
+ # endif
26
+ #endif
27
+
28
+ /* attribute recognised by some compilers to avoid 'unused' warnings */
29
+ #ifndef SWIGUNUSED
30
+ # if defined(__GNUC__)
31
+ # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
32
+ # define SWIGUNUSED __attribute__ ((__unused__))
33
+ # else
34
+ # define SWIGUNUSED
35
+ # endif
36
+ # elif defined(__ICC)
37
+ # define SWIGUNUSED __attribute__ ((__unused__))
38
+ # else
39
+ # define SWIGUNUSED
40
+ # endif
41
+ #endif
42
+
43
+ #ifndef SWIG_MSC_UNSUPPRESS_4505
44
+ # if defined(_MSC_VER)
45
+ # pragma warning(disable : 4505) /* unreferenced local function has been removed */
46
+ # endif
47
+ #endif
48
+
49
+ #ifndef SWIGUNUSEDPARM
50
+ # ifdef __cplusplus
51
+ # define SWIGUNUSEDPARM(p)
52
+ # else
53
+ # define SWIGUNUSEDPARM(p) p SWIGUNUSED
54
+ # endif
55
+ #endif
56
+
57
+ /* internal SWIG method */
58
+ #ifndef SWIGINTERN
59
+ # define SWIGINTERN static SWIGUNUSED
60
+ #endif
61
+
62
+ /* internal inline SWIG method */
63
+ #ifndef SWIGINTERNINLINE
64
+ # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
65
+ #endif
66
+
67
+ /* exporting methods */
68
+ #if defined(__GNUC__)
69
+ # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
70
+ # ifndef GCC_HASCLASSVISIBILITY
71
+ # define GCC_HASCLASSVISIBILITY
72
+ # endif
73
+ # endif
74
+ #endif
75
+
76
+ #ifndef SWIGEXPORT
77
+ # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
78
+ # if defined(STATIC_LINKED)
79
+ # define SWIGEXPORT
80
+ # else
81
+ # define SWIGEXPORT __declspec(dllexport)
82
+ # endif
83
+ # else
84
+ # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
85
+ # define SWIGEXPORT __attribute__ ((visibility("default")))
86
+ # else
87
+ # define SWIGEXPORT
88
+ # endif
89
+ # endif
90
+ #endif
91
+
92
+ /* calling conventions for Windows */
93
+ #ifndef SWIGSTDCALL
94
+ # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
95
+ # define SWIGSTDCALL __stdcall
96
+ # else
97
+ # define SWIGSTDCALL
98
+ # endif
99
+ #endif
100
+
101
+ /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
102
+ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
103
+ # define _CRT_SECURE_NO_DEPRECATE
104
+ #endif
105
+
106
+ /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
107
+ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
108
+ # define _SCL_SECURE_NO_DEPRECATE
109
+ #endif
110
+
111
+ /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
112
+ #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
113
+ # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
114
+ #endif
115
+
116
+ /* Intel's compiler complains if a variable which was never initialised is
117
+ * cast to void, which is a common idiom which we use to indicate that we
118
+ * are aware a variable isn't used. So we just silence that warning.
119
+ * See: https://github.com/swig/swig/issues/192 for more discussion.
120
+ */
121
+ #ifdef __INTEL_COMPILER
122
+ # pragma warning disable 592
123
+ #endif
124
+
125
+ #if defined(__cplusplus) && __cplusplus >=201103L
126
+ # define SWIG_NOEXCEPT noexcept
127
+ #else
128
+ # define SWIG_NOEXCEPT throw()
129
+ #endif
@@ -12,7 +12,11 @@
12
12
 
13
13
  /* This should only be incremented when either the layout of swig_type_info changes,
14
14
  or for whatever reason, the runtime changes incompatibly */
15
+ #if SWIG_VERSION < 0x040400
15
16
  #define SWIG_RUNTIME_VERSION "4"
17
+ #else
18
+ #define SWIG_RUNTIME_VERSION "5"
19
+ #endif
16
20
 
17
21
  /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
18
22
  #ifdef SWIG_TYPE_TABLE
@@ -213,7 +217,11 @@ typedef struct WXRUBY_EXPORT swig_cast_info
213
217
  swig_type_info *type; /* pointer to type that is equivalent to this type */
214
218
  swig_converter_func converter; /* function to cast the void pointers */
215
219
  struct swig_cast_info *next; /* pointer to next cast in linked list */
220
+ #if SWIG_VERSION < 0x040400
216
221
  struct swig_cast_info *prev; /* pointer to the previous cast */
222
+ #else
223
+ unsigned int value; /* index of the last valid element in the array | typename hash value */
224
+ #endif
217
225
  } swig_cast_info;
218
226
 
219
227
  /* Structure used to store module information
@@ -256,6 +264,13 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
256
264
  return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
257
265
  }
258
266
 
267
+ #if SWIG_VERSION >= 0x040400
268
+ /*
269
+ * Hash function for type name strings, based on maRushPrime1Hash (http://amsoftware.narod.ru/algo2.html)
270
+ */
271
+ WXRUBY_EXPORT unsigned int SWIG_Hash(const char *str, unsigned int len);
272
+ #endif
273
+
259
274
  /*
260
275
  Check the typename
261
276
  */
@@ -126,6 +126,14 @@
126
126
  #endif
127
127
  #endif
128
128
 
129
+ #if SWIG_VERSION >= 0x040400
130
+ /*==== clear errors ====*/
131
+
132
+ #ifndef %error_clear
133
+ #define %error_clear
134
+ #endif
135
+ #endif
136
+
129
137
  /*==== director output exception ====*/
130
138
 
131
139
  /* wxRuby : make sure to pass the object and method that caused the failure */
@@ -143,15 +151,27 @@
143
151
  #define %error_block(Block...) %block(Block)
144
152
  #define %default_code(code) SWIG_ArgError(code)
145
153
  #define %argument_fail(code, type, name, argn) SWIG_exception_fail(%default_code(code), %argfail_fmt(type, name, argn))
154
+ #if SWIG_VERSION < 0x040400
146
155
  #define %argument_nullref(type, name, argn) SWIG_exception_fail(SWIG_ValueError, %argnullref_fmt(type, name, argn))
156
+ #else
157
+ #define %argument_nullref(type, name, argn) SWIG_exception_fail(SWIG_NullReferenceError, %argnullref_fmt(type, name, argn))
158
+ #endif
147
159
  #define %variable_fail(code, type, name) SWIG_exception_fail(%default_code(code), %varfail_fmt(type, name))
160
+ #if SWIG_VERSION < 0x040400
148
161
  #define %variable_nullref(type, name) SWIG_exception_fail(SWIG_ValueError, %varnullref_fmt(type, name))
162
+ #else
163
+ #define %variable_nullref(type, name) SWIG_exception_fail(SWIG_NullReferenceError, %varnullref_fmt(type, name))
164
+ #endif
149
165
  #define %releasenotowned_fail(code, type, name, argn) SWIG_exception_fail(%default_code(code), %releasenotownedfail_fmt(type, name, argn))
150
166
 
151
167
  /* wxRuby : make sure to pass the object and method that caused the failure */
152
168
  #if defined(SWIG_DIRECTOR_TYPEMAPS)
153
169
  #define %dirout_fail(code, type) SWIG_DirOutFail(swig_get_self(), "$symname", %default_code(code), %outfail_fmt(type))
170
+ #if SWIG_VERSION < 0x040400
154
171
  #define %dirout_nullref(type) SWIG_DirOutFail(swig_get_self(), "$symname", SWIG_ValueError, %outnullref_fmt(type))
172
+ #else
173
+ #define %dirout_nullref(type) SWIG_DirOutFail(swig_get_self(), "$symname", SWIG_NullReferenceError, %outnullref_fmt(type))
174
+ #endif
155
175
  #endif
156
176
 
157
177
  /* -----------------------------------------------------------------------------
@@ -16,12 +16,31 @@
16
16
  %}
17
17
 
18
18
  %{
19
+ WXRUBY_TRACE_GUARD(WxRubyTraceMarkSizer, "GC_MARK_SIZER")
20
+ WXRUBY_TRACE_GUARD(WxRubyTraceFreeSizer, "GC_FREE_SIZER")
21
+ WXRUBY_TRACE_GUARD(WxRubyTraceMarkMenubar, "GC_MARK_MENUBAR")
22
+ WXRUBY_TRACE_GUARD(WxRubyTraceMarkMenu, "GC_MARK_MENU")
23
+ WXRUBY_TRACE_GUARD(WxRubyTraceMarkWindow, "GC_MARK_WINDOW")
24
+ WXRUBY_TRACE_GUARD(WxRubyTraceFreeWindow, "GC_FREE_WINDOW")
25
+ WXRUBY_TRACE_GUARD(WxRubyTraceMarkFrame, "GC_MARK_FRAME")
26
+ WXRUBY_TRACE_GUARD(WxRubyTraceFreeNull, "GC_FREE_NULL")
27
+ WXRUBY_TRACE_GUARD(WxRubyTraceFreeRefcounted, "GC_FREE_REFCOUNT")
28
+
29
+
19
30
  // Code to be run when the ruby object is swept by GC - this only
20
31
  // unlinks the C++ object from the ruby VALUE but doesn't delete
21
32
  // it because it is still needed and will be managed by WxWidgets.
22
33
  WXRUBY_EXPORT void GcNullFreeFunc(void *ptr)
23
34
  {
35
+ WXRUBY_TRACE_IF(WxRubyTraceFreeNull, 2)
36
+ WXRUBY_TRACE("> GcNullFreeFunc : " << ptr)
37
+ WXRUBY_TRACE_END
38
+
24
39
  SWIG_RubyRemoveTracking(ptr);
40
+
41
+ WXRUBY_TRACE_IF(WxRubyTraceFreeNull, 2)
42
+ WXRUBY_TRACE("< GcNullFreeFunc")
43
+ WXRUBY_TRACE_END
25
44
  }
26
45
 
27
46
  // Tests if the window has been signalled as destroyed by a
@@ -41,6 +60,10 @@ WXRUBY_EXPORT bool GC_IsWindowDeleted(void *ptr)
41
60
  // WindowDestroyEvent, handled by wxRubyApp (see swig/classes/App.i).
42
61
  WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr)
43
62
  {
63
+ WXRUBY_TRACE_IF(WxRubyTraceFreeWindow, 2)
64
+ WXRUBY_TRACE("> GC_SetWindowDeleted : " << ptr)
65
+ WXRUBY_TRACE_END
66
+
44
67
  // All Windows are EvtHandlers, so prevent any pending events being
45
68
  // sent after destruction (otherwise ObjectPreviouslyDeleted errors result)
46
69
  wxEvtHandler* evt_handler = (wxEvtHandler*)ptr;
@@ -57,6 +80,8 @@ WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr)
57
80
  while (wxevh && wxevh != wxwin)
58
81
  {
59
82
  wxEvtHandler* wxevh_next = wxevh->GetNextHandler();
83
+ // disable these too
84
+ wxevh->SetEvtHandlerEnabled(false);
60
85
  VALUE rb_evh = SWIG_RubyInstanceFor(wxevh);
61
86
  // only remove tracked Ruby instantiated handlers since others are
62
87
  // handlers internally set by wxWidgets C++ code and will be removed there
@@ -75,6 +100,10 @@ WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr)
75
100
  // Disassociate the C++ and Ruby objects
76
101
  SWIG_RubyUnlinkObjects(ptr);
77
102
  SWIG_RubyRemoveTracking(ptr);
103
+
104
+ WXRUBY_TRACE_IF(WxRubyTraceFreeWindow, 2)
105
+ WXRUBY_TRACE("< GC_SetWindowDeleted : " << ptr)
106
+ WXRUBY_TRACE_END
78
107
  }
79
108
 
80
109
  // Code to be run when the ruby object is swept by GC - this only
@@ -82,9 +111,17 @@ WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr)
82
111
  // reference counter.
83
112
  WXRUBY_EXPORT void GcRefCountedFreeFunc(void *ptr)
84
113
  {
114
+ WXRUBY_TRACE_IF(WxRubyTraceFreeRefcounted, 2)
115
+ WXRUBY_TRACE("> GcRefCountedFreeFunc : " << ptr)
116
+ WXRUBY_TRACE_END
117
+
85
118
  SWIG_RubyRemoveTracking(ptr);
86
119
  if (ptr)
87
120
  ((wxRefCounter*)ptr)->DecRef();
121
+
122
+ WXRUBY_TRACE_IF(WxRubyTraceFreeRefcounted, 2)
123
+ WXRUBY_TRACE("< GcRefCountedFreeFunc")
124
+ WXRUBY_TRACE_END
88
125
  }
89
126
 
90
127
  // Code to be run when the ruby object is swept by GC - this checks
@@ -92,26 +129,38 @@ WXRUBY_EXPORT void GcRefCountedFreeFunc(void *ptr)
92
129
  // as these will be managed by WxWidgets.
93
130
  WXRUBY_EXPORT void GcSizerFreeFunc(void *ptr)
94
131
  {
132
+ WXRUBY_TRACE_IF(WxRubyTraceFreeSizer, 2)
133
+ WXRUBY_TRACE("> GcSizerFreeFunc : " << ptr)
134
+ WXRUBY_TRACE_END
135
+
95
136
  wxSizer* wx_szr = (wxSizer*)ptr;
96
137
  // unlink in all cases
97
138
  SWIG_RubyRemoveTracking(ptr);
98
139
  delete wx_szr; // delete unattached sizers
140
+
141
+ WXRUBY_TRACE_IF(WxRubyTraceFreeSizer, 2)
142
+ WXRUBY_TRACE("< GcSizerFreeFunc")
143
+ WXRUBY_TRACE_END
99
144
  }
100
145
 
101
146
  void GC_mark_SizerBelongingToWindow(wxSizer *wx_sizer, VALUE rb_sizer);
102
147
 
103
148
  WXRUBY_EXPORT void GC_mark_wxSizer(void* ptr)
104
149
  {
150
+ WXRUBY_TRACE_IF(WxRubyTraceMarkSizer, 2)
151
+ WXRUBY_TRACE("> GC_mark_wxSizer : " << ptr)
152
+ WXRUBY_TRACE_END
153
+
105
154
  VALUE rb_szr = SWIG_RubyInstanceFor(ptr);
106
- if (rb_szr && rb_szr != Qnil)
155
+ if (!RB_NIL_P(rb_szr))
107
156
  {
108
- wxSizer* wx_szr = (wxSizer*)ptr;
109
-
110
157
  // as long as the dfree function is still the GCSizeFreeFunc the sizer has not been attached to a window
111
158
  // or added to a parent sizer (as that would 'disown' and replace the free function by the tracking removal function)
112
159
  // but it may hay have already had child sizers added which need to be marked
113
160
  if (RDATA(rb_szr)->dfree == (void (*)(void *))GcSizerFreeFunc)
114
161
  {
162
+ wxSizer* wx_szr = (wxSizer*)ptr;
163
+
115
164
  // Then loop over the sizer's content and mark each sub-sizer
116
165
  wxSizerItemList& children = wx_szr->GetChildren();
117
166
  for ( wxSizerItemList::compatibility_iterator node = children.GetFirst();
@@ -132,6 +181,10 @@ WXRUBY_EXPORT void GC_mark_wxSizer(void* ptr)
132
181
  }
133
182
  }
134
183
  }
184
+
185
+ WXRUBY_TRACE_IF(WxRubyTraceMarkSizer, 2)
186
+ WXRUBY_TRACE("< GC_mark_wxSizer : " << ptr)
187
+ WXRUBY_TRACE_END
135
188
  }
136
189
 
137
190
  // Carries out marking of Sizer objects belonging to a Wx::Window. Note
@@ -142,10 +195,9 @@ WXRUBY_EXPORT void GC_mark_wxSizer(void* ptr)
142
195
  // directors, they must be preserved from GC.
143
196
  void GC_mark_SizerBelongingToWindow(wxSizer *wx_sizer, VALUE rb_sizer)
144
197
  {
145
- #ifdef __WXRB_DEBUG__
146
- if (wxRuby_TraceLevel()>1)
147
- std::wcout << "> GC_mark_SizerBelongingToWindow : " << wx_sizer << std::endl;
148
- #endif
198
+ WXRUBY_TRACE_IF(WxRubyTraceMarkSizer, 2)
199
+ WXRUBY_TRACE("> GC_mark_SizerBelongingToWindow : " << wx_sizer)
200
+ WXRUBY_TRACE_END
149
201
 
150
202
  // First, mark this sizer
151
203
  rb_gc_mark( rb_sizer );
@@ -168,10 +220,35 @@ void GC_mark_SizerBelongingToWindow(wxSizer *wx_sizer, VALUE rb_sizer)
168
220
  }
169
221
  }
170
222
 
171
- #ifdef __WXRB_DEBUG__
172
- if (wxRuby_TraceLevel()>1)
173
- std::wcout << "< GC_mark_SizerBelongingToWindow : " << wx_sizer << std::endl;
174
- #endif
223
+ WXRUBY_TRACE_IF(WxRubyTraceMarkSizer, 2)
224
+ WXRUBY_TRACE("< GC_mark_SizerBelongingToWindow : " << wx_sizer)
225
+ WXRUBY_TRACE_END
226
+ }
227
+
228
+ WXRUBY_EXPORT void GC_mark_attached_wxMenu(void *ptr)
229
+ {
230
+ WXRUBY_TRACE_IF(WxRubyTraceMarkMenu, 2)
231
+ WXRUBY_TRACE("> GC_mark_attached_wxMenu : " << ptr)
232
+ WXRUBY_TRACE_END
233
+
234
+ rb_gc_mark(SWIG_RubyInstanceFor(ptr));
235
+
236
+ wxMenu *wx_menu = static_cast<wxMenu*> (ptr);
237
+
238
+ wxMenuItemList wx_menu_items = wx_menu->GetMenuItems();
239
+ wxMenuItemList::iterator iter;
240
+ for (iter = wx_menu_items.begin(); iter != wx_menu_items.end(); ++iter)
241
+ {
242
+ wxMenuItem *wx_item = *iter;
243
+ rb_gc_mark(SWIG_RubyInstanceFor(wx_item) );
244
+ wxMenu* wx_sub_menu = wx_item->GetSubMenu();
245
+ if (wx_sub_menu)
246
+ GC_mark_attached_wxMenu(wx_sub_menu);
247
+ }
248
+
249
+ WXRUBY_TRACE_IF(WxRubyTraceMarkMenu, 2)
250
+ WXRUBY_TRACE("< GC_mark_attached_wxMenu : " << ptr)
251
+ WXRUBY_TRACE_END
175
252
  }
176
253
 
177
254
  // Similar to Sizers, MenuBar requires a special mark routine. This is
@@ -182,90 +259,84 @@ void GC_mark_SizerBelongingToWindow(wxSizer *wx_sizer, VALUE rb_sizer)
182
259
  // which can catch destroyed MenuBars linked to an in-scope ruby
183
260
  // variable and cause segfaults, MenuBars are always marked via the
184
261
  // containing Frame.
185
- void GC_mark_MenuBarBelongingToFrame(wxMenuBar *menu_bar)
262
+ void GC_mark_MenuBarBelongingToFrame(wxMenuBar *wx_menu_bar)
186
263
  {
187
- #ifdef __WXRB_DEBUG__
188
- if (wxRuby_TraceLevel()>1)
189
- std::wcout << "> GC_mark_MenuBarBelongingToFrame : " << menu_bar << std::endl;
190
- #endif
264
+ WXRUBY_TRACE_IF(WxRubyTraceMarkMenubar, 2)
265
+ WXRUBY_TRACE("> GC_mark_MenuBarBelongingToFrame : " << wx_menu_bar)
266
+ WXRUBY_TRACE_END
267
+
268
+ rb_gc_mark( SWIG_RubyInstanceFor(wx_menu_bar) );
269
+
270
+ WXRUBY_TRACE_IF(WxRubyTraceMarkMenubar, 3)
271
+ WXRUBY_TRACE("< GC_mark_MenuBarBelongingToFrame : marking " << wx_menu_bar->GetMenuCount() << " menus")
272
+ WXRUBY_TRACE_END
191
273
 
192
- rb_gc_mark( SWIG_RubyInstanceFor(menu_bar) );
193
274
  // Mark each menu in the menubar in turn
194
- for ( size_t i = 0; i < menu_bar->GetMenuCount(); i++ )
275
+ for ( size_t i = 0; i < wx_menu_bar->GetMenuCount(); i++ )
195
276
  {
196
- wxMenu* menu = menu_bar->GetMenu(i);
197
- rb_gc_mark( SWIG_RubyInstanceFor(menu) );
277
+ GC_mark_attached_wxMenu(wx_menu_bar->GetMenu(i));
198
278
  }
199
279
 
200
- #ifdef __WXRB_DEBUG__
201
- if (wxRuby_TraceLevel()>1)
202
- std::wcout << "< GC_mark_MenuBarBelongingToFrame : " << menu_bar << std::endl;
203
- #endif
280
+ WXRUBY_TRACE_IF(WxRubyTraceMarkMenubar, 2)
281
+ WXRUBY_TRACE("< GC_mark_MenuBarBelongingToFrame : " << wx_menu_bar)
282
+ WXRUBY_TRACE_END
204
283
  }
205
284
 
206
285
  // Default mark routine for Windows - preserve the main sizer and caret
207
286
  // belong to this window
208
287
  WXRUBY_EXPORT void GC_mark_wxWindow(void *ptr)
209
288
  {
210
- #ifdef __WXRB_DEBUG__
211
- if (wxRuby_TraceLevel()>1)
212
- std::wcout << "> GC_mark_wxWindow : " << ptr << std::endl;
213
- #endif
289
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 2)
290
+ WXRUBY_TRACE("> GC_mark_wxWindow : " << ptr)
291
+ WXRUBY_TRACE_END
214
292
 
215
293
  if ( GC_IsWindowDeleted(ptr) )
216
294
  {
217
- #ifdef __WXRB_DEBUG__
218
- if (wxRuby_TraceLevel()>1)
219
- std::wcout << "< GC_mark_wxWindow : deleted" << std::endl;
220
- #endif
295
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 2)
296
+ WXRUBY_TRACE("< GC_mark_wxWindow : deleted")
297
+ WXRUBY_TRACE_END
221
298
  return;
222
299
  }
223
300
 
224
301
  wxWindow* wx_win = (wxWindow*)ptr;
225
- #ifdef __WXRB_DEBUG__
226
- if (wxRuby_TraceLevel()>2)
227
- std::wcout << "* GC_mark_wxWindow - getting sizer" << std::endl;
228
- #endif
302
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
303
+ WXRUBY_TRACE("| GC_mark_wxWindow : getting sizer")
304
+ WXRUBY_TRACE_END
229
305
  wxSizer* wx_sizer = wx_win->GetSizer();
230
306
  if ( wx_sizer )
231
307
  {
232
- #ifdef __WXRB_DEBUG__
233
- if (wxRuby_TraceLevel()>2)
234
- std::wcout << "* GC_mark_wxWindow - found sizer" << std::endl;
235
- #endif
308
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
309
+ WXRUBY_TRACE("| GC_mark_wxWindow : found sizer " << wx_sizer)
310
+ WXRUBY_TRACE_END
236
311
  VALUE rb_sizer = SWIG_RubyInstanceFor(wx_sizer);
237
312
  if ( rb_sizer != Qnil )
238
313
  GC_mark_SizerBelongingToWindow(wx_sizer, rb_sizer);
239
314
  }
240
315
 
241
316
  // mark any pushed event handlers
242
- #ifdef __WXRB_DEBUG__
243
- if (wxRuby_TraceLevel()>2)
244
- std::wcout << "* GC_mark_wxWindow - getting event handler" << std::endl;
245
- #endif
317
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
318
+ WXRUBY_TRACE("| GC_mark_wxWindow : getting event handler")
319
+ WXRUBY_TRACE_END
246
320
  wxEvtHandler* evh = wx_win->GetEventHandler();
247
321
  while (evh && evh != wx_win)
248
322
  {
249
- #ifdef __WXRB_DEBUG__
250
- if (wxRuby_TraceLevel()>2)
251
- std::wcout << "* GC_mark_wxWindow - marking event handler" << std::endl;
252
- #endif
323
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
324
+ WXRUBY_TRACE("| GC_mark_wxWindow : found event handler " << evh)
325
+ WXRUBY_TRACE_END
253
326
  VALUE rb_evh = SWIG_RubyInstanceFor(evh);
254
327
  rb_gc_mark(rb_evh);
255
328
  evh = evh->GetNextHandler();
256
329
  }
257
330
 
258
- #ifdef __WXRB_DEBUG__
259
- if (wxRuby_TraceLevel()>2)
260
- std::wcout << "* GC_mark_wxWindow - getting caret" << std::endl;
261
- #endif
331
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
332
+ WXRUBY_TRACE("| GC_mark_wxWindow : getting caret")
333
+ WXRUBY_TRACE_END
262
334
  wxCaret* wx_caret = wx_win->GetCaret();
263
335
  if ( wx_caret )
264
336
  {
265
- #ifdef __WXRB_DEBUG__
266
- if (wxRuby_TraceLevel()>2)
267
- std::wcout << "* GC_mark_wxWindow - found caret" << std::endl;
268
- #endif
337
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
338
+ WXRUBY_TRACE("| GC_mark_wxWindow : found caret " << wx_caret)
339
+ WXRUBY_TRACE_END
269
340
  VALUE rb_caret = SWIG_RubyInstanceFor(wx_caret);
270
341
  rb_gc_mark(rb_caret);
271
342
  }
@@ -273,57 +344,50 @@ WXRUBY_EXPORT void GC_mark_wxWindow(void *ptr)
273
344
  // be careful; getting drop target may require fully created window (default ctors do not call Create())
274
345
  if (wx_win->GetId() != wxID_ANY) // any fully created window has an Id != wxID_ANY
275
346
  {
276
- #ifdef __WXRB_DEBUG__
277
- if (wxRuby_TraceLevel()>2)
278
- std::wcout << "* GC_mark_wxWindow - getting droptarget" << std::endl;
279
- #endif
347
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
348
+ WXRUBY_TRACE("| GC_mark_wxWindow : getting droptarget")
349
+ WXRUBY_TRACE_END
280
350
  wxDropTarget* wx_droptarget = wx_win->GetDropTarget();
281
351
  if ( wx_droptarget )
282
352
  {
283
- #ifdef __WXRB_DEBUG__
284
- if (wxRuby_TraceLevel()>2)
285
- std::wcout << "* GC_mark_wxWindow - found droptarget" << std::endl;
286
- #endif
353
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
354
+ WXRUBY_TRACE("| GC_mark_wxWindow : found drop target " << wx_droptarget)
355
+ WXRUBY_TRACE_END
287
356
  VALUE rb_droptarget = SWIG_RubyInstanceFor(wx_droptarget);
288
357
  rb_gc_mark(rb_droptarget);
289
358
  }
290
359
  }
291
360
 
292
- #ifdef __WXRB_DEBUG__
293
- if (wxRuby_TraceLevel()>2)
294
- std::wcout << "* GC_mark_wxWindow - getting validator" << std::endl;
295
- #endif
361
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
362
+ WXRUBY_TRACE("| GC_mark_wxWindow : getting validator")
363
+ WXRUBY_TRACE_END
296
364
  wxValidator* wx_validator = wx_win->GetValidator();
297
365
  if ( wx_validator )
298
366
  {
299
- #ifdef __WXRB_DEBUG__
300
- if (wxRuby_TraceLevel()>2)
301
- std::wcout << "* GC_mark_wxWindow - found validator" << std::endl;
302
- #endif
367
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
368
+ WXRUBY_TRACE("| GC_mark_wxWindow : found validator " << wx_validator)
369
+ WXRUBY_TRACE_END
303
370
  VALUE rb_validator = SWIG_RubyInstanceFor(wx_validator);
304
371
  rb_gc_mark(rb_validator);
305
372
  }
306
373
 
307
- #ifdef __WXRB_DEBUG__
308
- if (wxRuby_TraceLevel()>1)
309
- std::wcout << "< GC_mark_wxWindow : " << ptr << std::endl;
310
- #endif
374
+ WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 2)
375
+ WXRUBY_TRACE("< GC_mark_wxWindow : " << ptr)
376
+ WXRUBY_TRACE_END
311
377
  }
312
378
 
313
379
 
314
380
  WXRUBY_EXPORT void GC_mark_wxFrame(void *ptr)
315
381
  {
316
- #ifdef __WXRB_DEBUG__
317
- if (wxRuby_TraceLevel()>1)
318
- std::wcout << "> GC_mark_wxFrame : " << ptr << std::endl;
319
- #endif
382
+ WXRUBY_TRACE_IF(WxRubyTraceMarkFrame, 2)
383
+ WXRUBY_TRACE("> GC_mark_wxFrame : " << ptr)
384
+ WXRUBY_TRACE_END
320
385
 
321
386
  if ( GC_IsWindowDeleted(ptr) )
322
387
  {
323
- #ifdef __WXRB_DEBUG__
324
- if (wxRuby_TraceLevel()>1)
325
- std::wcout << "> GC_mark_wxFrame : deleted" << std::endl;
326
- #endif
388
+ WXRUBY_TRACE_IF(WxRubyTraceMarkFrame, 2)
389
+ WXRUBY_TRACE("< GC_mark_wxFrame : deleted")
390
+ WXRUBY_TRACE_END
327
391
  return;
328
392
  }
329
393
 
@@ -337,12 +401,14 @@ WXRUBY_EXPORT void GC_mark_wxFrame(void *ptr)
337
401
  wxMenuBar* menu_bar = wx_frame->GetMenuBar();
338
402
  if ( menu_bar )
339
403
  {
404
+ // as this is an attached menu bar the regular marker will not mark
405
+ // any menu content as it can't tell if the c++ object has been deleted or not
406
+ // so we do that here now we know it is still alive
340
407
  GC_mark_MenuBarBelongingToFrame(menu_bar);
341
408
  }
342
409
 
343
- #ifdef __WXRB_DEBUG__
344
- if (wxRuby_TraceLevel()>1)
345
- std::wcout << "> GC_mark_wxFrame : " << ptr << std::endl;
346
- #endif
410
+ WXRUBY_TRACE_IF(WxRubyTraceMarkFrame, 2)
411
+ WXRUBY_TRACE("< GC_mark_wxFrame : " << ptr)
412
+ WXRUBY_TRACE_END
347
413
  }
348
414
  %}
@@ -31,6 +31,7 @@ WXRUBY_EXPORT void GcSizerFreeFunc(void *);
31
31
  WXRUBY_EXPORT void GcDialogFreeFunc(void *);
32
32
  WXRUBY_EXPORT void GcRefCountedFreeFunc(void *);
33
33
  WXRUBY_EXPORT void GC_mark_wxSizer(void *);
34
+ WXRUBY_EXPORT void GC_mark_attached_wxMenu(void *);
34
35
  WXRUBY_EXPORT void GC_mark_wxWindow(void *);
35
36
  WXRUBY_EXPORT void GC_mark_wxFrame(void *);
36
37
  WXRUBY_EXPORT void GC_mark_wxEvent(void *);