wxruby3 1.6.1 → 1.8.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 (642) hide show
  1. checksums.yaml +4 -4
  2. data/CREDITS.md +32 -25
  3. data/INSTALL.md +46 -6
  4. data/README.md +17 -17
  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 +203 -91
  8. data/ext/wxruby3/include/wxruby-ComboPopup.h +25 -8
  9. data/ext/wxruby3/include/wxruby-GCTracking.h +262 -0
  10. data/ext/wxruby3/include/wxruby-MBConv.h +190 -0
  11. data/ext/wxruby3/include/wxruby-SharedEventHandler.h +183 -0
  12. data/ext/wxruby3/include/wxruby-SharedPtr.h +104 -0
  13. data/ext/wxruby3/include/wxruby-runtime.h +107 -1
  14. data/ext/wxruby3/swig/common.i +2 -2
  15. data/ext/wxruby3/swig/custom/director.swg +2 -2
  16. data/ext/wxruby3/swig/custom/rubyprimtypes.swg +59 -15
  17. data/ext/wxruby3/swig/custom/rubyrun.swg +4 -0
  18. data/ext/wxruby3/swig/custom/rubytracking.swg +9 -19
  19. data/ext/wxruby3/swig/custom/swiglabels.swg +129 -0
  20. data/ext/wxruby3/swig/custom/swigrun.swg +15 -0
  21. data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +20 -0
  22. data/ext/wxruby3/swig/custom/wx_ruby_shared_ptr.i +434 -0
  23. data/ext/wxruby3/swig/custom/wx_shared_ptr.i +431 -0
  24. data/ext/wxruby3/swig/mark_free_impl.i +83 -144
  25. data/ext/wxruby3/swig/memory_management.i +8 -43
  26. data/ext/wxruby3/swig/wx.i +88 -86
  27. data/lib/wx/aui/events/evt_list.rb +148 -0
  28. data/lib/wx/aui/require.rb +0 -1
  29. data/lib/wx/core/calendar_ctrl.rb +15 -0
  30. data/lib/wx/core/clipboard.rb +9 -13
  31. data/lib/wx/core/config.rb +1 -1
  32. data/lib/wx/core/const.rb +0 -1
  33. data/lib/wx/core/context_help.rb +17 -0
  34. data/lib/wx/core/cursor.rb +1 -0
  35. data/lib/wx/core/events/evt_list.rb +1458 -0
  36. data/lib/wx/core/font/encoding.rb +113 -0
  37. data/lib/wx/core/generic_validator.rb +83 -31
  38. data/lib/wx/core/helpcontrollerhelpprovider.rb +10 -2
  39. data/lib/wx/core/mbconv.rb +11 -0
  40. data/lib/wx/core/media_ctrl.rb +31 -0
  41. data/lib/wx/core/tipwindow.rb +16 -0
  42. data/lib/wx/core/top_level_window.rb +7 -0
  43. data/lib/wx/core.rb +6 -0
  44. data/lib/wx/doc/art_provider.rb +17 -0
  45. data/lib/wx/doc/aui/auitabctrl.rb +35 -0
  46. data/lib/wx/doc/config.rb +2 -2
  47. data/lib/wx/doc/context_help.rb +42 -0
  48. data/lib/wx/doc/core.rb +0 -5
  49. data/lib/wx/doc/functions.rb +11 -1
  50. data/lib/wx/doc/gen/about_dialog_info.rb +330 -0
  51. data/lib/wx/doc/gen/accelerator.rb +178 -0
  52. data/lib/wx/doc/gen/activity_indicator.rb +83 -0
  53. data/lib/wx/doc/gen/affine_matrix2d.rb +286 -0
  54. data/lib/wx/doc/gen/animation.rb +275 -0
  55. data/lib/wx/doc/gen/animation_ctrl.rb +300 -0
  56. data/lib/wx/doc/gen/any_button.rb +191 -0
  57. data/lib/wx/doc/gen/app.rb +463 -0
  58. data/lib/wx/doc/gen/app_traits.rb +396 -0
  59. data/lib/wx/doc/gen/art_provider.rb +617 -0
  60. data/lib/wx/doc/gen/aui/aui_dock_art.rb +455 -0
  61. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +54 -0
  62. data/lib/wx/doc/gen/aui/aui_manager.rb +847 -0
  63. data/lib/wx/doc/gen/aui/aui_manager_event.rb +131 -0
  64. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +180 -0
  65. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +59 -0
  66. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +130 -0
  67. data/lib/wx/doc/gen/aui/aui_notebook.rb +631 -0
  68. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +233 -0
  69. data/lib/wx/doc/gen/aui/aui_pane_info.rb +769 -0
  70. data/lib/wx/doc/gen/aui/aui_tab_art.rb +352 -0
  71. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +14 -0
  72. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +510 -0
  73. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +340 -0
  74. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +244 -0
  75. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +257 -0
  76. data/lib/wx/doc/gen/aui/event_list.rb +179 -0
  77. data/lib/wx/doc/gen/banner_window.rb +124 -0
  78. data/lib/wx/doc/gen/bitmap.rb +731 -0
  79. data/lib/wx/doc/gen/bitmap_button.rb +123 -0
  80. data/lib/wx/doc/gen/bitmap_combo_box.rb +221 -0
  81. data/lib/wx/doc/gen/book_ctrl_base.rb +274 -0
  82. data/lib/wx/doc/gen/book_ctrl_event.rb +66 -0
  83. data/lib/wx/doc/gen/box_sizer.rb +85 -0
  84. data/lib/wx/doc/gen/brush.rb +251 -0
  85. data/lib/wx/doc/gen/busy_info.rb +157 -0
  86. data/lib/wx/doc/gen/button.rb +182 -0
  87. data/lib/wx/doc/gen/calculate_layout_event.rb +62 -0
  88. data/lib/wx/doc/gen/calendar_ctrl.rb +505 -0
  89. data/lib/wx/doc/gen/calendar_date_attr.rb +138 -0
  90. data/lib/wx/doc/gen/calendar_event.rb +147 -0
  91. data/lib/wx/doc/gen/caret.rb +97 -0
  92. data/lib/wx/doc/gen/check_box.rb +175 -0
  93. data/lib/wx/doc/gen/check_list_box.rb +121 -0
  94. data/lib/wx/doc/gen/choice.rb +175 -0
  95. data/lib/wx/doc/gen/choicebook.rb +116 -0
  96. data/lib/wx/doc/gen/client_dc.rb +43 -0
  97. data/lib/wx/doc/gen/clipboard.rb +144 -0
  98. data/lib/wx/doc/gen/collapsible_pane.rb +138 -0
  99. data/lib/wx/doc/gen/collapsible_pane_event.rb +46 -0
  100. data/lib/wx/doc/gen/colour.rb +333 -0
  101. data/lib/wx/doc/gen/colour_dialog.rb +190 -0
  102. data/lib/wx/doc/gen/colour_picker_ctrl.rb +110 -0
  103. data/lib/wx/doc/gen/colour_picker_event.rb +77 -0
  104. data/lib/wx/doc/gen/combo_box.rb +292 -0
  105. data/lib/wx/doc/gen/combo_ctrl.rb +662 -0
  106. data/lib/wx/doc/gen/command_link_button.rb +134 -0
  107. data/lib/wx/doc/gen/config_base.rb +10 -0
  108. data/lib/wx/doc/gen/context_help_button.rb +56 -0
  109. data/lib/wx/doc/gen/control.rb +277 -0
  110. data/lib/wx/doc/gen/control_with_items.rb +253 -0
  111. data/lib/wx/doc/gen/core.rb +45 -0
  112. data/lib/wx/doc/gen/credential_entry_dialog.rb +137 -0
  113. data/lib/wx/doc/gen/cursor.rb +193 -0
  114. data/lib/wx/doc/gen/data_format.rb +85 -0
  115. data/lib/wx/doc/gen/data_object.rb +436 -0
  116. data/lib/wx/doc/gen/data_object_simple_base.rb +10 -0
  117. data/lib/wx/doc/gen/date_event.rb +49 -0
  118. data/lib/wx/doc/gen/date_picker_ctrl.rb +161 -0
  119. data/lib/wx/doc/gen/dc.rb +1631 -0
  120. data/lib/wx/doc/gen/dc_overlay.rb +102 -0
  121. data/lib/wx/doc/gen/defs.rb +2802 -0
  122. data/lib/wx/doc/gen/dial_up_event.rb +45 -0
  123. data/lib/wx/doc/gen/dial_up_manager.rb +149 -0
  124. data/lib/wx/doc/gen/dialog.rb +541 -0
  125. data/lib/wx/doc/gen/dir_dialog.rb +164 -0
  126. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +90 -0
  127. data/lib/wx/doc/gen/dir_picker_ctrl.rb +125 -0
  128. data/lib/wx/doc/gen/display.rb +238 -0
  129. data/lib/wx/doc/gen/drag_drop.rb +299 -0
  130. data/lib/wx/doc/gen/drag_image.rb +116 -0
  131. data/lib/wx/doc/gen/editable_list_box.rb +109 -0
  132. data/lib/wx/doc/gen/event.rb +990 -0
  133. data/lib/wx/doc/gen/event_blocker.rb +50 -0
  134. data/lib/wx/doc/gen/event_filter.rb +92 -0
  135. data/lib/wx/doc/gen/event_list.rb +1644 -0
  136. data/lib/wx/doc/gen/events.rb +2809 -0
  137. data/lib/wx/doc/gen/evt_handler.rb +229 -0
  138. data/lib/wx/doc/gen/ext_help_controller.rb +155 -0
  139. data/lib/wx/doc/gen/file_ctrl.rb +231 -0
  140. data/lib/wx/doc/gen/file_ctrl_event.rb +83 -0
  141. data/lib/wx/doc/gen/file_dialog.rb +353 -0
  142. data/lib/wx/doc/gen/file_dialog_custom_control.rb +165 -0
  143. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +158 -0
  144. data/lib/wx/doc/gen/file_dir_picker_event.rb +100 -0
  145. data/lib/wx/doc/gen/file_picker_ctrl.rb +132 -0
  146. data/lib/wx/doc/gen/file_system.rb +232 -0
  147. data/lib/wx/doc/gen/find_dialog_event.rb +126 -0
  148. data/lib/wx/doc/gen/find_replace_data.rb +60 -0
  149. data/lib/wx/doc/gen/find_replace_dialog.rb +58 -0
  150. data/lib/wx/doc/gen/flex_grid_sizer.rb +199 -0
  151. data/lib/wx/doc/gen/font.rb +1379 -0
  152. data/lib/wx/doc/gen/font_data.rb +151 -0
  153. data/lib/wx/doc/gen/font_dialog.rb +88 -0
  154. data/lib/wx/doc/gen/font_picker_ctrl.rb +143 -0
  155. data/lib/wx/doc/gen/font_picker_event.rb +65 -0
  156. data/lib/wx/doc/gen/frame.rb +352 -0
  157. data/lib/wx/doc/gen/fs_file.rb +337 -0
  158. data/lib/wx/doc/gen/functions.rb +10 -0
  159. data/lib/wx/doc/gen/gauge.rb +157 -0
  160. data/lib/wx/doc/gen/gb_sizer_item.rb +68 -0
  161. data/lib/wx/doc/gen/gcdc.rb +46 -0
  162. data/lib/wx/doc/gen/gdi_common.rb +1271 -0
  163. data/lib/wx/doc/gen/gdi_object.rb +31 -0
  164. data/lib/wx/doc/gen/generic_about_dialog.rb +140 -0
  165. data/lib/wx/doc/gen/generic_dir_ctrl.rb +223 -0
  166. data/lib/wx/doc/gen/geometry.rb +661 -0
  167. data/lib/wx/doc/gen/graphics_context.rb +1184 -0
  168. data/lib/wx/doc/gen/graphics_object.rb +750 -0
  169. data/lib/wx/doc/gen/grid/event_list.rb +191 -0
  170. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +40 -0
  171. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +280 -0
  172. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +35 -0
  173. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +37 -0
  174. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +49 -0
  175. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +35 -0
  176. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +46 -0
  177. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +38 -0
  178. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +45 -0
  179. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +40 -0
  180. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +197 -0
  181. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +39 -0
  182. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +44 -0
  183. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +45 -0
  184. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +79 -0
  185. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +46 -0
  186. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +35 -0
  187. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +108 -0
  188. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +35 -0
  189. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +49 -0
  190. data/lib/wx/doc/gen/grid/grid_ctrl.rb +3037 -0
  191. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +95 -0
  192. data/lib/wx/doc/gen/grid/grid_event.rb +129 -0
  193. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +104 -0
  194. data/lib/wx/doc/gen/grid/grid_size_event.rb +85 -0
  195. data/lib/wx/doc/gen/grid/grid_string_table.rb +142 -0
  196. data/lib/wx/doc/gen/grid/grid_table_base.rb +317 -0
  197. data/lib/wx/doc/gen/grid/grid_table_message.rb +81 -0
  198. data/lib/wx/doc/gen/grid_bag_sizer.rb +323 -0
  199. data/lib/wx/doc/gen/grid_sizer.rb +195 -0
  200. data/lib/wx/doc/gen/gui_event_loop.rb +159 -0
  201. data/lib/wx/doc/gen/h_scrolled_window.rb +562 -0
  202. data/lib/wx/doc/gen/header_ctrl.rb +880 -0
  203. data/lib/wx/doc/gen/header_ctrl_event.rb +133 -0
  204. data/lib/wx/doc/gen/help_controller.rb +238 -0
  205. data/lib/wx/doc/gen/help_provider.rb +98 -0
  206. data/lib/wx/doc/gen/html/event_list.rb +38 -0
  207. data/lib/wx/doc/gen/html/html_cell.rb +536 -0
  208. data/lib/wx/doc/gen/html/html_cell_event.rb +69 -0
  209. data/lib/wx/doc/gen/html/html_data_object.rb +42 -0
  210. data/lib/wx/doc/gen/html/html_easy_printing.rb +203 -0
  211. data/lib/wx/doc/gen/html/html_help_controller.rb +382 -0
  212. data/lib/wx/doc/gen/html/html_help_data.rb +159 -0
  213. data/lib/wx/doc/gen/html/html_help_window.rb +258 -0
  214. data/lib/wx/doc/gen/html/html_link_event.rb +41 -0
  215. data/lib/wx/doc/gen/html/html_list_box.rb +346 -0
  216. data/lib/wx/doc/gen/html/html_printout.rb +109 -0
  217. data/lib/wx/doc/gen/html/html_window.rb +461 -0
  218. data/lib/wx/doc/gen/hyperlink_ctrl.rb +311 -0
  219. data/lib/wx/doc/gen/hyperlink_event.rb +44 -0
  220. data/lib/wx/doc/gen/icon.rb +267 -0
  221. data/lib/wx/doc/gen/icon_location.rb +40 -0
  222. data/lib/wx/doc/gen/image.rb +1371 -0
  223. data/lib/wx/doc/gen/image_list.rb +168 -0
  224. data/lib/wx/doc/gen/info_bar.rb +195 -0
  225. data/lib/wx/doc/gen/keyboard_state.rb +140 -0
  226. data/lib/wx/doc/gen/list_box.rb +304 -0
  227. data/lib/wx/doc/gen/list_ctrl.rb +1774 -0
  228. data/lib/wx/doc/gen/list_event.rb +208 -0
  229. data/lib/wx/doc/gen/listbook.rb +116 -0
  230. data/lib/wx/doc/gen/locale.rb +4293 -0
  231. data/lib/wx/doc/gen/log.rb +603 -0
  232. data/lib/wx/doc/gen/mb_conv.rb +10 -0
  233. data/lib/wx/doc/gen/mdi_client_window.rb +47 -0
  234. data/lib/wx/doc/gen/mdi_frame.rb +324 -0
  235. data/lib/wx/doc/gen/media_ctrl.rb +269 -0
  236. data/lib/wx/doc/gen/media_event.rb +117 -0
  237. data/lib/wx/doc/gen/memory_dc.rb +174 -0
  238. data/lib/wx/doc/gen/menu.rb +509 -0
  239. data/lib/wx/doc/gen/menu_bar.rb +287 -0
  240. data/lib/wx/doc/gen/menu_item.rb +362 -0
  241. data/lib/wx/doc/gen/message_dialog.rb +238 -0
  242. data/lib/wx/doc/gen/mini_frame.rb +108 -0
  243. data/lib/wx/doc/gen/mirror_dc.rb +22 -0
  244. data/lib/wx/doc/gen/mouse_state.rb +150 -0
  245. data/lib/wx/doc/gen/multi_choice_dialog.rb +80 -0
  246. data/lib/wx/doc/gen/non_owned_window.rb +49 -0
  247. data/lib/wx/doc/gen/notebook.rb +278 -0
  248. data/lib/wx/doc/gen/num_validator.rb +37 -0
  249. data/lib/wx/doc/gen/number_entry_dialog.rb +93 -0
  250. data/lib/wx/doc/gen/object.rb +59 -0
  251. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +395 -0
  252. data/lib/wx/doc/gen/paint_dc.rb +27 -0
  253. data/lib/wx/doc/gen/palette.rb +92 -0
  254. data/lib/wx/doc/gen/panel.rb +127 -0
  255. data/lib/wx/doc/gen/pen.rb +511 -0
  256. data/lib/wx/doc/gen/persistence_manager.rb +135 -0
  257. data/lib/wx/doc/gen/persistent_object.rb +52 -0
  258. data/lib/wx/doc/gen/persistent_window.rb +241 -0
  259. data/lib/wx/doc/gen/pg/event_list.rb +106 -0
  260. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +54 -0
  261. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +292 -0
  262. data/lib/wx/doc/gen/pg/pg_cell.rb +177 -0
  263. data/lib/wx/doc/gen/pg/pg_editor.rb +721 -0
  264. data/lib/wx/doc/gen/pg/pg_multi_button.rb +152 -0
  265. data/lib/wx/doc/gen/pg/pg_properties.rb +2829 -0
  266. data/lib/wx/doc/gen/pg/pg_property.rb +2078 -0
  267. data/lib/wx/doc/gen/pg/pg_validation_info.rb +344 -0
  268. data/lib/wx/doc/gen/pg/property_grid.rb +740 -0
  269. data/lib/wx/doc/gen/pg/property_grid_event.rb +184 -0
  270. data/lib/wx/doc/gen/pg/property_grid_interface.rb +1098 -0
  271. data/lib/wx/doc/gen/pg/property_grid_manager.rb +415 -0
  272. data/lib/wx/doc/gen/pg/property_grid_page.rb +354 -0
  273. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +165 -0
  274. data/lib/wx/doc/gen/picker_base.rb +152 -0
  275. data/lib/wx/doc/gen/platform_info.rb +622 -0
  276. data/lib/wx/doc/gen/popup_window.rb +107 -0
  277. data/lib/wx/doc/gen/progress_dialog.rb +100 -0
  278. data/lib/wx/doc/gen/property_sheet_dialog.rb +216 -0
  279. data/lib/wx/doc/gen/prt/event_list.rb +17 -0
  280. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +44 -0
  281. data/lib/wx/doc/gen/prt/post_script_dc.rb +30 -0
  282. data/lib/wx/doc/gen/prt/preview_frame.rb +78 -0
  283. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +151 -0
  284. data/lib/wx/doc/gen/prt/print_data.rb +804 -0
  285. data/lib/wx/doc/gen/prt/print_dialog.rb +55 -0
  286. data/lib/wx/doc/gen/prt/printer.rb +518 -0
  287. data/lib/wx/doc/gen/prt/printer_dc.rb +37 -0
  288. data/lib/wx/doc/gen/query_layout_info_event.rb +106 -0
  289. data/lib/wx/doc/gen/radio_box.rb +306 -0
  290. data/lib/wx/doc/gen/radio_button.rb +159 -0
  291. data/lib/wx/doc/gen/rbn/event_list.rb +136 -0
  292. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1142 -0
  293. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +308 -0
  294. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +45 -0
  295. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +458 -0
  296. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +63 -0
  297. data/lib/wx/doc/gen/rbn/ribbon_control.rb +143 -0
  298. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +229 -0
  299. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +55 -0
  300. data/lib/wx/doc/gen/rbn/ribbon_page.rb +174 -0
  301. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +270 -0
  302. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +45 -0
  303. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +360 -0
  304. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +42 -0
  305. data/lib/wx/doc/gen/rearrange_ctrl.rb +78 -0
  306. data/lib/wx/doc/gen/rearrange_list.rb +123 -0
  307. data/lib/wx/doc/gen/region.rb +380 -0
  308. data/lib/wx/doc/gen/region_iterator.rb +76 -0
  309. data/lib/wx/doc/gen/rich_tool_tip.rb +154 -0
  310. data/lib/wx/doc/gen/rt/event_list.rb +17 -0
  311. data/lib/wx/doc/gen/rt/shared_evt_handler.rb +14 -0
  312. data/lib/wx/doc/gen/rt/thread_event.rb +71 -0
  313. data/lib/wx/doc/gen/rtc/event_list.rb +125 -0
  314. data/lib/wx/doc/gen/rtc/rich_text_box.rb +445 -0
  315. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1188 -0
  316. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +41 -0
  317. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +538 -0
  318. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2103 -0
  319. data/lib/wx/doc/gen/rtc/rich_text_event.rb +173 -0
  320. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +181 -0
  321. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +319 -0
  322. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +193 -0
  323. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +102 -0
  324. data/lib/wx/doc/gen/rtc/rich_text_image.rb +337 -0
  325. data/lib/wx/doc/gen/rtc/rich_text_object.rb +2922 -0
  326. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1240 -0
  327. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +258 -0
  328. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +344 -0
  329. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +227 -0
  330. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +59 -0
  331. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +169 -0
  332. data/lib/wx/doc/gen/sash_event.rb +147 -0
  333. data/lib/wx/doc/gen/sash_layout_window.rb +232 -0
  334. data/lib/wx/doc/gen/sash_window.rb +171 -0
  335. data/lib/wx/doc/gen/scaled_dc.rb +10 -0
  336. data/lib/wx/doc/gen/screen_dc.rb +30 -0
  337. data/lib/wx/doc/gen/scroll_bar.rb +204 -0
  338. data/lib/wx/doc/gen/scrolled_canvas.rb +410 -0
  339. data/lib/wx/doc/gen/scrolled_control.rb +410 -0
  340. data/lib/wx/doc/gen/scrolled_window.rb +430 -0
  341. data/lib/wx/doc/gen/search_ctrl.rb +159 -0
  342. data/lib/wx/doc/gen/secret_store.rb +116 -0
  343. data/lib/wx/doc/gen/simplebook.rb +110 -0
  344. data/lib/wx/doc/gen/single_choice_dialog.rb +89 -0
  345. data/lib/wx/doc/gen/sizer.rb +945 -0
  346. data/lib/wx/doc/gen/sizer_item.rb +244 -0
  347. data/lib/wx/doc/gen/slider.rb +342 -0
  348. data/lib/wx/doc/gen/spin_button.rb +157 -0
  349. data/lib/wx/doc/gen/spin_ctrl.rb +231 -0
  350. data/lib/wx/doc/gen/spin_ctrl_double.rb +192 -0
  351. data/lib/wx/doc/gen/spin_double_event.rb +55 -0
  352. data/lib/wx/doc/gen/spin_event.rb +51 -0
  353. data/lib/wx/doc/gen/splash_screen.rb +113 -0
  354. data/lib/wx/doc/gen/splitter_event.rb +99 -0
  355. data/lib/wx/doc/gen/splitter_window.rb +498 -0
  356. data/lib/wx/doc/gen/static_bitmap.rb +256 -0
  357. data/lib/wx/doc/gen/static_box.rb +180 -0
  358. data/lib/wx/doc/gen/static_box_sizer.rb +85 -0
  359. data/lib/wx/doc/gen/static_line.rb +83 -0
  360. data/lib/wx/doc/gen/static_text.rb +127 -0
  361. data/lib/wx/doc/gen/status_bar.rb +290 -0
  362. data/lib/wx/doc/gen/stc/event_list.rb +221 -0
  363. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4474 -0
  364. data/lib/wx/doc/gen/stc/styled_text_event.rb +8762 -0
  365. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +129 -0
  366. data/lib/wx/doc/gen/svg_file_dc.rb +164 -0
  367. data/lib/wx/doc/gen/system_options.rb +129 -0
  368. data/lib/wx/doc/gen/system_settings.rb +507 -0
  369. data/lib/wx/doc/gen/task_bar_icon.rb +127 -0
  370. data/lib/wx/doc/gen/task_bar_icon_event.rb +88 -0
  371. data/lib/wx/doc/gen/text_attr.rb +756 -0
  372. data/lib/wx/doc/gen/text_ctrl.rb +1033 -0
  373. data/lib/wx/doc/gen/text_entry.rb +441 -0
  374. data/lib/wx/doc/gen/text_entry_dialog.rb +220 -0
  375. data/lib/wx/doc/gen/text_validator.rb +245 -0
  376. data/lib/wx/doc/gen/time_picker_ctrl.rb +128 -0
  377. data/lib/wx/doc/gen/timer.rb +119 -0
  378. data/lib/wx/doc/gen/timer_event.rb +68 -0
  379. data/lib/wx/doc/gen/tip_provider.rb +63 -0
  380. data/lib/wx/doc/gen/tip_window.rb +51 -0
  381. data/lib/wx/doc/gen/toggle_button.rb +182 -0
  382. data/lib/wx/doc/gen/tool_bar.rb +890 -0
  383. data/lib/wx/doc/gen/tool_tip.rb +86 -0
  384. data/lib/wx/doc/gen/toolbook.rb +118 -0
  385. data/lib/wx/doc/gen/top_level_window.rb +516 -0
  386. data/lib/wx/doc/gen/tree_ctrl.rb +1052 -0
  387. data/lib/wx/doc/gen/tree_event.rb +127 -0
  388. data/lib/wx/doc/gen/treebook.rb +180 -0
  389. data/lib/wx/doc/gen/ui_action_simulator.rb +109 -0
  390. data/lib/wx/doc/gen/utils.rb +273 -0
  391. data/lib/wx/doc/gen/v_list_box.rb +272 -0
  392. data/lib/wx/doc/gen/v_scrolled_canvas.rb +195 -0
  393. data/lib/wx/doc/gen/v_scrolled_window.rb +191 -0
  394. data/lib/wx/doc/gen/validator.rb +68 -0
  395. data/lib/wx/doc/gen/variant.rb +294 -0
  396. data/lib/wx/doc/gen/web/event_list.rb +95 -0
  397. data/lib/wx/doc/gen/web/web_view.rb +1136 -0
  398. data/lib/wx/doc/gen/web/web_view_event.rb +210 -0
  399. data/lib/wx/doc/gen/web/web_view_handler.rb +318 -0
  400. data/lib/wx/doc/gen/window.rb +2917 -0
  401. data/lib/wx/doc/gen/window_dc.rb +38 -0
  402. data/lib/wx/doc/gen/window_disabler.rb +30 -0
  403. data/lib/wx/doc/gen/with_images.rb +84 -0
  404. data/lib/wx/doc/gen/wizard.rb +257 -0
  405. data/lib/wx/doc/gen/wizard_event.rb +113 -0
  406. data/lib/wx/doc/gen/wizard_page.rb +65 -0
  407. data/lib/wx/doc/gen/wizard_page_simple.rb +88 -0
  408. data/lib/wx/doc/gen/wrap_sizer.rb +79 -0
  409. data/lib/wx/doc/gen/xml_node.rb +316 -0
  410. data/lib/wx/doc/gen/xml_resource.rb +320 -0
  411. data/lib/wx/doc/generic_validator.rb +5 -0
  412. data/lib/wx/doc/html/html_help_controller.rb +23 -1
  413. data/lib/wx/doc/mbconv.rb +108 -0
  414. data/lib/wx/doc/rt/shared_event_handler.rb +49 -0
  415. data/lib/wx/doc/rt/thread_event.rb +28 -0
  416. data/lib/wx/doc/tip_window.rb +18 -6
  417. data/lib/wx/doc/webview.rb +40 -0
  418. data/lib/wx/grid/events/evt_list.rb +166 -0
  419. data/lib/wx/helpers.rb +1 -1
  420. data/lib/wx/html/events/evt_list.rb +27 -0
  421. data/lib/wx/html/htmlhelpcontroller.rb +10 -0
  422. data/lib/wx/html/simple_html_listbox.rb +46 -33
  423. data/lib/wx/keyword_defs.rb +20 -0
  424. data/lib/wx/pg/events/evt_list.rb +73 -0
  425. data/lib/wx/pg/pg_property.rb +26 -0
  426. data/lib/wx/pg/property_grid_interface.rb +2 -2
  427. data/lib/wx/rbn/events/evt_list.rb +102 -0
  428. data/lib/wx/rt/events/evt_list.rb +8 -0
  429. data/lib/wx/rt/require.rb +8 -0
  430. data/lib/wx/rt/thread_event.rb +14 -0
  431. data/lib/wx/rt.rb +16 -0
  432. data/lib/wx/rtc/events/evt_list.rb +98 -0
  433. data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -0
  434. data/lib/wx/stc/events/evt_list.rb +178 -0
  435. data/lib/wx/version.rb +1 -1
  436. data/lib/wx/web/events/evt_list.rb +74 -0
  437. data/lib/wx/web/require.rb +8 -0
  438. data/lib/wx/web/webview.rb +106 -0
  439. data/lib/wx/web.rb +17 -0
  440. data/lib/wx/wxruby/cmd/setup.rb +21 -0
  441. data/lib/wx.rb +2 -0
  442. data/rakelib/configure.rb +33 -0
  443. data/rakelib/gem.rake +3 -2
  444. data/rakelib/gem.rb +3 -2
  445. data/rakelib/install.rb +54 -27
  446. data/rakelib/lib/config/linux.rb +1 -1
  447. data/rakelib/lib/config/macosx.rb +22 -6
  448. data/rakelib/lib/config/mingw.rb +66 -5
  449. data/rakelib/lib/config/pkgman/linux.rb +7 -2
  450. data/rakelib/lib/config/pkgman/mingw.rb +1 -1
  451. data/rakelib/lib/config/unixish.rb +7 -5
  452. data/rakelib/lib/config.rb +52 -7
  453. data/rakelib/lib/core/include/client_data.inc +38 -17
  454. data/rakelib/lib/core/include/funcall.inc +1 -1
  455. data/rakelib/lib/core/include/swigdirector.inc +6 -6
  456. data/rakelib/lib/core/include/swigrubyerrors.inc +4 -8
  457. data/rakelib/lib/core/include/swigrubyrun.inc +34 -30
  458. data/rakelib/lib/core/include/swigrun.inc +189 -0
  459. data/rakelib/lib/core/package.rb +3 -3
  460. data/rakelib/lib/director/accelerator.rb +1 -1
  461. data/rakelib/lib/director/animation.rb +1 -0
  462. data/rakelib/lib/director/app.rb +1 -8
  463. data/rakelib/lib/director/app_traits.rb +1 -1
  464. data/rakelib/lib/director/art_provider.rb +7 -3
  465. data/rakelib/lib/director/aui_manager.rb +21 -14
  466. data/rakelib/lib/director/aui_mdi_child_frame.rb +2 -0
  467. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -0
  468. data/rakelib/lib/director/aui_notebook.rb +20 -3
  469. data/rakelib/lib/director/aui_tab_ctrl.rb +64 -106
  470. data/rakelib/lib/director/calendar_ctrl.rb +72 -14
  471. data/rakelib/lib/director/clipboard.rb +2 -0
  472. data/rakelib/lib/director/comboctrl.rb +0 -7
  473. data/rakelib/lib/director/context_help_button.rb +35 -2
  474. data/rakelib/lib/director/data_object.rb +15 -7
  475. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  476. data/rakelib/lib/director/display.rb +81 -0
  477. data/rakelib/lib/director/event.rb +33 -16
  478. data/rakelib/lib/director/event_handler.rb +59 -30
  479. data/rakelib/lib/director/fs_file.rb +15 -10
  480. data/rakelib/lib/director/functions.rb +17 -0
  481. data/rakelib/lib/director/geometry.rb +5 -0
  482. data/rakelib/lib/director/grid_cell_attr.rb +1 -3
  483. data/rakelib/lib/director/grid_cell_editor.rb +14 -12
  484. data/rakelib/lib/director/grid_cell_renderer.rb +11 -8
  485. data/rakelib/lib/director/grid_ctrl.rb +231 -117
  486. data/rakelib/lib/director/help_controller.rb +70 -2
  487. data/rakelib/lib/director/help_provider.rb +1 -1
  488. data/rakelib/lib/director/html_listbox.rb +16 -3
  489. data/rakelib/lib/director/hvscrolled.rb +7 -106
  490. data/rakelib/lib/director/image_list.rb +1 -0
  491. data/rakelib/lib/director/mb_conv.rb +30 -0
  492. data/rakelib/lib/director/mdi_frame.rb +4 -0
  493. data/rakelib/lib/director/menu.rb +113 -22
  494. data/rakelib/lib/director/menu_bar.rb +103 -2
  495. data/rakelib/lib/director/menu_item.rb +7 -1
  496. data/rakelib/lib/director/num_validator.rb +27 -0
  497. data/rakelib/lib/director/numeric_property_validator.rb +9 -0
  498. data/rakelib/lib/director/persistence_manager.rb +3 -2
  499. data/rakelib/lib/director/popup_window.rb +2 -0
  500. data/rakelib/lib/director/preview_frame.rb +28 -5
  501. data/rakelib/lib/director/printer.rb +59 -5
  502. data/rakelib/lib/director/property_grid.rb +37 -18
  503. data/rakelib/lib/director/property_grid_interface.rb +10 -8
  504. data/rakelib/lib/director/property_grid_manager.rb +99 -39
  505. data/rakelib/lib/director/property_grid_page.rb +60 -0
  506. data/rakelib/lib/director/rich_tooltip.rb +22 -0
  507. data/rakelib/lib/director/richtext_buffer.rb +5 -2
  508. data/rakelib/lib/director/richtext_ctrl.rb +5 -0
  509. data/rakelib/lib/director/richtext_object.rb +13 -4
  510. data/rakelib/lib/director/richtext_style_listbox.rb +4 -1
  511. data/rakelib/lib/director/scrolled_t.rb +3 -0
  512. data/rakelib/lib/director/searchctrl.rb +1 -0
  513. data/rakelib/lib/director/shared_evt_handler.rb +30 -0
  514. data/rakelib/lib/director/sizer.rb +8 -17
  515. data/rakelib/lib/director/sizer_item.rb +3 -4
  516. data/rakelib/lib/director/task_bar_icon.rb +18 -12
  517. data/rakelib/lib/director/text_validator.rb +9 -0
  518. data/rakelib/lib/director/thread_event.rb +33 -0
  519. data/rakelib/lib/director/tip_window.rb +117 -6
  520. data/rakelib/lib/director/tool_bar.rb +6 -0
  521. data/rakelib/lib/director/validator.rb +15 -1
  522. data/rakelib/lib/director/variant.rb +48 -28
  523. data/rakelib/lib/director/vlistbox.rb +25 -22
  524. data/rakelib/lib/director/webview.rb +166 -0
  525. data/rakelib/lib/director/webview_event.rb +37 -0
  526. data/rakelib/lib/director/webview_handler.rb +63 -0
  527. data/rakelib/lib/director/window.rb +10 -1
  528. data/rakelib/lib/director/xml_resource.rb +6 -0
  529. data/rakelib/lib/generate/doc/aui_manager.yaml +1 -1
  530. data/rakelib/lib/generate/doc/rich_tool_tip.yaml +26 -0
  531. data/rakelib/lib/generate/doc/thread_event.yaml +20 -0
  532. data/rakelib/lib/generate/doc/web_view.yaml +135 -0
  533. data/rakelib/lib/generate/doc/web_view_event.yaml +38 -0
  534. data/rakelib/lib/generate/doc/web_view_handler.yaml +58 -0
  535. data/rakelib/lib/generate/doc.rb +12 -7
  536. data/rakelib/lib/generate/interface.rb +16 -1
  537. data/rakelib/lib/specs/interfaces.rb +15 -1
  538. data/rakelib/lib/swig_runner.rb +10 -10
  539. data/rakelib/lib/typemap/aui_tabctrl.rb +46 -0
  540. data/rakelib/lib/typemap/common.rb +37 -4
  541. data/rakelib/lib/typemap/mb_conv.rb +58 -0
  542. data/rakelib/lib/typemap/print_page_range.rb +32 -8
  543. data/rakelib/prepost.rake +23 -31
  544. data/rakelib/prepost.rb +20 -0
  545. data/samples/art/wxruby-512x512.png +0 -0
  546. data/samples/calendar/calendar.rb +64 -1
  547. data/samples/dialogs/dialogs.rb +172 -0
  548. data/samples/dialogs/tip.xpm +157 -0
  549. data/samples/drawing/maths_images.rb +1 -1
  550. data/samples/event/event.rb +1 -1
  551. data/samples/event/threaded.rb +295 -42
  552. data/samples/event/tn_threaded.png +0 -0
  553. data/samples/help/doc/back.gif +0 -0
  554. data/samples/help/doc/contents.gif +0 -0
  555. data/samples/help/doc/cshelp.txt +9 -0
  556. data/samples/help/doc/doc.chm +0 -0
  557. data/samples/help/doc/doc.cnt +8 -0
  558. data/samples/help/doc/doc.h +7 -0
  559. data/samples/help/doc/doc.hhc +40 -0
  560. data/samples/help/doc/doc.hhk +31 -0
  561. data/samples/help/doc/doc.hhp +33 -0
  562. data/samples/help/doc/doc.hpj +21 -0
  563. data/samples/help/doc/doc.htm +27 -0
  564. data/samples/help/doc/doc1.htm +24 -0
  565. data/samples/help/doc/doc2.htm +12 -0
  566. data/samples/help/doc/doc3.htm +12 -0
  567. data/samples/help/doc/doc4.htm +12 -0
  568. data/samples/help/doc/doc5.htm +14 -0
  569. data/samples/help/doc/forward.gif +0 -0
  570. data/samples/help/doc/up.gif +0 -0
  571. data/samples/help/doc.chm +0 -0
  572. data/samples/help/doc.chw +0 -0
  573. data/samples/help/doc.zip +0 -0
  574. data/samples/help/help.rb +352 -0
  575. data/samples/help/tn_help.png +0 -0
  576. data/samples/printing/printing2.rb +1 -1
  577. data/samples/sampler.rb +26 -8
  578. data/samples/text/textctrl.rb +2 -2
  579. data/samples/treectrl/treectrl.rb +2 -2
  580. data/samples/webview/handler_advanced.html +55 -0
  581. data/samples/webview/tn_webview.png +0 -0
  582. data/samples/webview/webview.rb +1264 -0
  583. data/tests/assets/handler_advanced.html +55 -0
  584. data/tests/assets/test.css +1 -0
  585. data/tests/assets/test.html +9 -0
  586. data/tests/assets/test.zip +0 -0
  587. data/tests/lib/leaked_process_event_exception_test.rb +1 -1
  588. data/tests/lib/leaked_queued_event_exception_test.rb +1 -1
  589. data/tests/lib/text_entry_tests.rb +2 -2
  590. data/tests/lib/wxapp_runner.rb +65 -35
  591. data/tests/lib/wxframe_runner.rb +40 -13
  592. data/tests/lib/wxrb_test.rb +58 -0
  593. data/tests/test_app_event_filter.rb +1 -1
  594. data/tests/test_app_exit_exception.rb +3 -3
  595. data/tests/test_app_init_exception.rb +3 -3
  596. data/tests/test_app_traits.rb +24 -21
  597. data/tests/test_art.rb +14 -14
  598. data/tests/test_art_provider.rb +1 -1
  599. data/tests/test_basic.rb +2 -2
  600. data/tests/test_book_controls.rb +1 -1
  601. data/tests/test_box_sizer.rb +1 -1
  602. data/tests/test_clipboard.rb +9 -9
  603. data/tests/test_combo_ctrl.rb +2 -2
  604. data/tests/test_config.rb +17 -7
  605. data/tests/test_dc.rb +1 -1
  606. data/tests/test_dialog.rb +1 -1
  607. data/tests/test_event_handling.rb +1 -1
  608. data/tests/test_events.rb +1 -1
  609. data/tests/test_exceptions.rb +10 -8
  610. data/tests/test_ext_controls.rb +13 -13
  611. data/tests/test_file_dialog.rb +6 -6
  612. data/tests/test_font.rb +8 -8
  613. data/tests/test_gdi_object.rb +1 -1
  614. data/tests/test_geometry.rb +2 -2
  615. data/tests/test_grid_ctrl.rb +133 -0
  616. data/tests/test_grid_sizer.rb +2 -2
  617. data/tests/test_help.rb +88 -0
  618. data/tests/test_intl.rb +2 -2
  619. data/tests/test_item_data.rb +12 -12
  620. data/tests/test_list_ctrl.rb +1 -1
  621. data/tests/test_log.rb +2 -2
  622. data/tests/test_media_ctrl.rb +15 -7
  623. data/tests/test_menu.rb +81 -2
  624. data/tests/test_persistence.rb +1 -1
  625. data/tests/test_proof_check.rb +6 -6
  626. data/tests/test_propgrid.rb +32 -32
  627. data/tests/test_richtext.rb +10 -24
  628. data/tests/test_secret_store.rb +1 -1
  629. data/tests/test_shared_event_handler.rb +141 -0
  630. data/tests/test_sizer.rb +1 -1
  631. data/tests/test_std_controls.rb +13 -13
  632. data/tests/test_styled_text_ctrl.rb +1 -1
  633. data/tests/test_timer.rb +1 -1
  634. data/tests/test_tree_ctrl.rb +1 -1
  635. data/tests/test_validators.rb +79 -36
  636. data/tests/test_variant.rb +1 -1
  637. data/tests/test_webview.rb +492 -0
  638. data/tests/test_window.rb +14 -14
  639. data/tests/testapp.rb +2 -2
  640. data/tests/testapp_noframe.rb +2 -2
  641. metadata +476 -11
  642. data/lib/wx/aui/aui_tab_ctrl.rb +0 -18
@@ -31,7 +31,8 @@ module WXRuby3
31
31
  const wxString& name = wxASCII_STR(wxFrameNameStr))
32
32
  : wxPreviewFrame(preview, parent, title, pos, size, style, name)
33
33
  {}
34
- virtual ~WxRubyPreviewFrame() {}
34
+ virtual ~WxRubyPreviewFrame()
35
+ {}
35
36
 
36
37
  const wxPrintPreview* get_print_preview() const
37
38
  {
@@ -39,20 +40,42 @@ module WXRuby3
39
40
  }
40
41
  };
41
42
 
43
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkPreviewFrame, "GC_MARK_PRINT_PREVIEW_FRAME")
44
+
45
+ void WxRuby_mark_wxPrintPreview(void* ptr);
46
+
42
47
  static void GC_mark_wxPreviewFrame(void *ptr)
43
48
  {
49
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPreviewFrame, 2)
50
+ WXRUBY_TRACE("> GC_mark_wxPreviewFrame : " << ptr)
51
+ WXRUBY_TRACE_END
52
+
44
53
  if ( GC_IsWindowDeleted(ptr) )
45
54
  return;
46
55
 
47
- // Do standard marking routines as for all wxWindows
56
+ // Do standard marking routines as for all windows
48
57
  GC_mark_wxWindow(ptr);
49
58
 
50
59
  WxRubyPreviewFrame* preview_frame = dynamic_cast<WxRubyPreviewFrame*>((wxPreviewFrame*)ptr);
51
60
  if (preview_frame)
52
61
  {
53
- const void* ptr = (const void*)preview_frame->get_print_preview();
54
- rb_gc_mark(SWIG_RubyInstanceFor(const_cast<void*> (ptr)));
62
+ const wxPrintPreview* wx_prtprev = preview_frame->get_print_preview();
63
+ VALUE rb_prtprev = SWIG_RubyInstanceFor(const_cast<void*> ((const void*)wx_prtprev));
64
+
65
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPreviewFrame, 3)
66
+ WXRUBY_TRACE("| GC_mark_wxPreviewFrame : marking print preview " << wx_prtprev << " -> " << rb_prtprev);
67
+ WXRUBY_TRACE_END
68
+
69
+ // mark the Ruby wrapper instance
70
+ // this will skip marking the members as any preview attached to a preview frame is disowned
71
+ rb_gc_mark(rb_prtprev);
72
+ // so, force marking the preview members
73
+ WxRuby_mark_wxPrintPreview(const_cast<void*> ((const void*)wx_prtprev));
55
74
  }
75
+
76
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPreviewFrame, 2)
77
+ WXRUBY_TRACE("< GC_mark_wxPreviewFrame : " << ptr)
78
+ WXRUBY_TRACE_END
56
79
  }
57
80
  __HEREDOC
58
81
  spec.use_class_implementation 'wxPreviewFrame', 'WxRubyPreviewFrame'
@@ -62,7 +85,7 @@ module WXRuby3
62
85
  # in all cases will be the actual base being used.
63
86
  spec.ignore 'wxPreviewFrame::wxPreviewFrame(wxPrintPreviewBase *, wxWindow *,const wxString &,const wxPoint &,const wxSize &,long,const wxString &)', ignore_doc: false
64
87
  spec.extend_interface('wxPreviewFrame',
65
- 'wxPreviewFrame(wxPrintPreview *preview, wxWindow *parent, const wxString &title="Print Preview", const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)')
88
+ 'wxPreviewFrame(wxPrintPreview *preview, wxWindow *parent, const wxString &title="Print Preview", const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE | wxFRAME_FLOAT_ON_PARENT, const wxString &name=wxFrameNameStr)')
66
89
  # non-functional map for doc gen
67
90
  spec.map 'wxPrintPreviewBase *' => 'Wx::PrintPreview', swig: false do
68
91
  map_in
@@ -31,16 +31,70 @@ module WXRuby3
31
31
  spec.new_object 'wxPrinter::GetPrintDialogData'
32
32
  spec.disown 'wxPrintout *' # Printout-s passed to PrintPreview will be managed by wxWidgets
33
33
  spec.add_header_code <<~__HEREDOC
34
- static void GC_mark_wxPrintPreview(void *ptr)
35
- {
34
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkPrintPreview, "GC_MARK_PRINT_PREVIEW")
35
+
36
+ // forward decl
37
+ SWIGINTERN void free_wxPrintPreview(void *self);
38
+
39
+ // this is the actual print preview marker which is called for Ruby owned instances from the
40
+ // Ruby standard marker and by the container preview frame for disowned instances
41
+ void WxRuby_mark_wxPrintPreview(void* ptr)
42
+ {
43
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 2)
44
+ WXRUBY_TRACE("> WxRuby_mark_wxPrintPreview : " << ptr)
45
+ WXRUBY_TRACE_END
46
+
36
47
  if (ptr)
37
48
  {
38
49
  wxPrintPreview* print_preview = (wxPrintPreview*)ptr;
39
50
  wxPrintout* printout = print_preview->GetPrintout();
40
- rb_gc_mark( SWIG_RubyInstanceFor(printout) );
41
- wxPrintout* printout_for_printing = print_preview->GetPrintoutForPrinting();
42
- rb_gc_mark( SWIG_RubyInstanceFor(printout_for_printing) );
51
+ VALUE rb_prtout = SWIG_RubyInstanceFor(printout);
52
+
53
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 3)
54
+ WXRUBY_TRACE("| WxRuby_mark_wxPrintPreview : marking preview printout " << printout << " -> " << rb_prtout);
55
+ WXRUBY_TRACE_END
56
+
57
+ rb_gc_mark(rb_prtout);
58
+
59
+ printout = print_preview->GetPrintoutForPrinting();
60
+ rb_prtout = SWIG_RubyInstanceFor(printout);
61
+
62
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 3)
63
+ WXRUBY_TRACE("| WxRuby_mark_wxPrintPreview : marking printing printout " << printout << " -> " << rb_prtout);
64
+ WXRUBY_TRACE_END
65
+
66
+ rb_gc_mark(rb_prtout);
43
67
  }
68
+
69
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 2)
70
+ WXRUBY_TRACE("< WxRuby_mark_wxPrintPreview : " << ptr)
71
+ WXRUBY_TRACE_END
72
+ }
73
+
74
+ // this is the Ruby standard marker called by the Ruby GC mark phase
75
+ // for Ruby instances visible to Ruby
76
+ static void GC_mark_wxPrintPreview(void *ptr)
77
+ {
78
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 2)
79
+ WXRUBY_TRACE("> GC_mark_wxPrintPreview : " << ptr)
80
+ WXRUBY_TRACE_END
81
+
82
+ VALUE rb_pp = SWIG_RubyInstanceFor(ptr);
83
+ // if this is still an instance 'owned' by Ruby
84
+ if (!RB_NIL_P(rb_pp) && RDATA(rb_pp)->dfree==free_wxPrintPreview)
85
+ {
86
+ WxRuby_mark_wxPrintPreview(ptr);
87
+ }
88
+ else
89
+ {
90
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 3)
91
+ WXRUBY_TRACE("| GC_mark_wxPrintPreview : skip marking disowned instance")
92
+ WXRUBY_TRACE_END
93
+ }
94
+
95
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 2)
96
+ WXRUBY_TRACE("< GC_mark_wxPrintPreview : " << ptr)
97
+ WXRUBY_TRACE_END
44
98
  }
45
99
  __HEREDOC
46
100
  spec.add_swig_code '%markfunc wxPrintPreview "GC_mark_wxPrintPreview";'
@@ -74,12 +74,16 @@ module WXRuby3
74
74
  spec.include_mixin 'wxPropertyGrid', 'Wx::PG::PropertyGridInterface'
75
75
  # customize mark function
76
76
  spec.add_header_code <<~__HEREDOC
77
+ extern bool WXRuby_Is_In_GC_mark_wxPropertyGridManager();
78
+
79
+ WXRUBY_TRACE_GUARD(WxRubyTraceMarkPropGrid, "GC_MARK_PROPGRID_GRID")
80
+
77
81
  static void GC_mark_wxPropertyGrid(void* ptr)
78
82
  {
79
- #ifdef __WXRB_DEBUG__
80
- if (wxRuby_TraceLevel()>1)
81
- std::wcout << "> GC_mark_wxPropertyGrid : " << ptr << std::endl;
82
- #endif
83
+ WXRUBY_TRACE_IF(WxRubyTraceMarkPropGrid, 2)
84
+ WXRUBY_TRACE("> GC_mark_wxPropertyGrid : " << ptr)
85
+ WXRUBY_TRACE_END
86
+
83
87
  if ( GC_IsWindowDeleted(ptr) )
84
88
  {
85
89
  return;
@@ -87,38 +91,53 @@ module WXRuby3
87
91
  // Do standard marking routines as for all wxWindows
88
92
  GC_mark_wxWindow(ptr);
89
93
 
94
+ // no need to mark properties if called from GC_mark_wxPropertyGridManager
95
+ // as that will mark properties through the property grid pages
96
+ if (WXRuby_Is_In_GC_mark_wxPropertyGridManager())
97
+ return;
98
+
99
+ #ifdef __WXRB_DEBUG__
100
+ long l = 0, n = 0;
101
+ #endif
90
102
  wxPropertyGrid* wx_pg = (wxPropertyGrid*) ptr;
91
103
 
104
+ VALUE rb_root_prop = SWIG_RubyInstanceFor(wx_pg->GetRoot());
105
+ if (!NIL_P(rb_root_prop))
106
+ {
107
+ rb_gc_mark(rb_root_prop);
108
+ #ifdef __WXRB_DEBUG__
109
+ ++n;
110
+ #endif
111
+ }
92
112
  // mark all properties
93
113
  wxPGVIterator it =
94
114
  wx_pg->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
95
115
  // iterate all
96
116
  for ( ; !it.AtEnd(); it.Next() )
97
117
  {
98
- wxPGProperty* p = it.GetProperty();
99
- VALUE rb_p = SWIG_RubyInstanceFor(p);
100
- if (NIL_P(rb_p))
101
- {
102
- VALUE object = (VALUE) p->GetClientData();
103
- if ( object && !NIL_P(object))
104
- {
105
118
  #ifdef __WXRB_DEBUG__
106
- if (wxRuby_TraceLevel()>2)
107
- std::wcout << "*** marking property data " << p << ":" << p->GetName() << std::endl;
119
+ ++l;
108
120
  #endif
109
- rb_gc_mark(object);
110
- }
111
- }
112
- else
121
+ wxPGProperty* wx_p = it.GetProperty();
122
+ VALUE rb_prop = SWIG_RubyInstanceFor(wx_p);
123
+ if (!RB_NIL_P(rb_prop))
113
124
  {
114
- rb_gc_mark(rb_p);
125
+ rb_gc_mark(rb_prop);
126
+ #ifdef __WXRB_DEBUG__
127
+ ++n;
128
+ #endif
115
129
  }
116
130
  }
131
+
132
+ WXRUBY_TRACE_IF(WxRubyTraceMarkPropGrid, 2)
133
+ WXRUBY_TRACE("< GC_mark_wxPropertyGrid : iterated " << l << " properties; marked " << n )
134
+ WXRUBY_TRACE_END
117
135
  }
118
136
  __HEREDOC
119
137
  spec.add_swig_code '%markfunc wxPropertyGrid "GC_mark_wxPropertyGrid";'
120
138
  # missing from XML docs
121
139
  spec.extend_interface 'wxPropertyGrid',
140
+ 'virtual bool Destroy()',
122
141
  'wxPoint GetGoodEditorDialogPosition(wxPGProperty* p, const wxSize& sz)',
123
142
  'wxWindow* GetPrimaryEditor() const',
124
143
  'wxWindow* GetEditorControlSecondary() const',
@@ -45,10 +45,12 @@ module WXRuby3
45
45
  end
46
46
  spec.ignore_unless 'USE_DATETIME', 'wxPropertyGridInterface::GetPropertyValueAsDateTime'
47
47
  spec.ignore_unless 'USE_VALIDATORS', 'wxPropertyGridInterface::GetPropertyValidator'
48
- # fix incorrect XML documentation
49
- spec.ignore 'wxPropertyGridInterface::SetPropertyImage', ignore_doc: false # ignore non-const BitmapBundle arg decl
50
- # and add correct decl
51
- spec.extend_interface 'wxPropertyGridInterface', 'void SetPropertyImage(wxPGPropArg id, const wxBitmapBundle &bmp)'
48
+ if Config.instance.wx_version_check('3.3.1') <= 0
49
+ # fix incorrect XML documentation
50
+ spec.ignore 'wxPropertyGridInterface::SetPropertyImage', ignore_doc: false # ignore non-const BitmapBundle arg decl
51
+ # and add correct decl
52
+ spec.extend_interface 'wxPropertyGridInterface', 'void SetPropertyImage(wxPGPropArg id, const wxBitmapBundle &bmp)'
53
+ end
52
54
  # don't expose property grid iterators; add a more Ruby-like extension
53
55
  spec.ignore 'wxPropertyGridInterface::GetIterator', 'wxPropertyGridInterface::GetVIterator'
54
56
  # add basic property enumerator; will wrap this in pure Ruby still for improved argument handling
@@ -63,7 +65,7 @@ module WXRuby3
63
65
  while (!prop_it.AtEnd())
64
66
  {
65
67
  wxPGProperty* pp = prop_it.GetProperty();
66
- VALUE rb_prop = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
68
+ VALUE rb_prop = wxRuby_WrapWxPGPropertyInRuby(pp);
67
69
  rc = rb_yield(rb_prop);
68
70
  prop_it.Next();
69
71
  }
@@ -101,7 +103,7 @@ module WXRuby3
101
103
  while (!prop_it.AtEnd())
102
104
  {
103
105
  wxPGProperty* pp = prop_it.GetProperty();
104
- VALUE rb_prop = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
106
+ VALUE rb_prop = wxRuby_WrapWxPGPropertyInRuby(pp);
105
107
  rc = rb_yield(rb_prop);
106
108
  reverse ? prop_it.Prev() : prop_it.Next();
107
109
  }
@@ -137,7 +139,7 @@ module WXRuby3
137
139
  for (size_t i = 0; i < $1->GetCount(); i++)
138
140
  {
139
141
  wxPGProperty* pp = $1->Item(i);
140
- VALUE rb_pp = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
142
+ VALUE rb_pp = wxRuby_WrapWxPGPropertyInRuby(pp);
141
143
  rb_ary_push($result, rb_pp);
142
144
  }
143
145
  __CODE
@@ -149,7 +151,7 @@ module WXRuby3
149
151
  for (size_t i = 0; i < $1->GetCount(); i++)
150
152
  {
151
153
  wxPGProperty* pp = $1->Item(i);
152
- VALUE rb_pp = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
154
+ VALUE rb_pp = wxRuby_WrapWxPGPropertyInRuby(pp);
153
155
  rb_ary_push($result, rb_pp);
154
156
  }
155
157
  __CODE
@@ -19,6 +19,57 @@ module WXRuby3
19
19
  def setup
20
20
  super
21
21
  spec.override_inheritance_chain('wxPropertyGridManager', %w[wxPanel wxWindow wxEvtHandler wxObject])
22
+ # need a custom implementation to handle cleaning up tracked objects
23
+ spec.add_header_code <<~__HEREDOC
24
+ WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr);
25
+
26
+ class WXRubyPropertyGridManager : public wxPropertyGridManager
27
+ {
28
+ public:
29
+ WXRubyPropertyGridManager() : wxPropertyGridManager() {}
30
+ WXRubyPropertyGridManager( wxWindow *parent, wxWindowID id = wxID_ANY,
31
+ const wxPoint& pos = wxDefaultPosition,
32
+ const wxSize& size = wxDefaultSize,
33
+ long style = wxPGMAN_DEFAULT_STYLE,
34
+ const wxString& name = wxASCII_STR(wxPropertyGridManagerNameStr) )
35
+ : wxPropertyGridManager(parent, id, pos, size, style, name) {}
36
+
37
+ virtual ~WXRubyPropertyGridManager()
38
+ {
39
+ // as the grid will not be deleted by calling Destroy() but
40
+ // rather by deleting directly handle GC cleanup here
41
+ GC_SetWindowDeleted(m_pPropGrid);
42
+ // also cleanup all page and property instances that will
43
+ // be deleted by wxPropertyGridManager
44
+ for( wxPropertyGridPage* page : m_arrPages )
45
+ {
46
+ // clean up tracking of all tracked properties
47
+ wxPGProperty* wx_p = page->GetRoot();
48
+ if (!NIL_P(SWIG_RubyInstanceFor(wx_p)))
49
+ {
50
+ SWIG_RubyUnlinkObjects(wx_p);
51
+ SWIG_RubyRemoveTracking(wx_p);
52
+ }
53
+ wxPGVIterator it =
54
+ page->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
55
+ // iterate all
56
+ for ( ; !it.AtEnd(); it.Next() )
57
+ {
58
+ wx_p = it.GetProperty();
59
+ if (!RB_NIL_P(SWIG_RubyInstanceFor(wx_p)))
60
+ {
61
+ SWIG_RubyUnlinkObjects(wx_p);
62
+ SWIG_RubyRemoveTracking(wx_p);
63
+ }
64
+ }
65
+ // Disassociate the C++ and Ruby pages (if any association)
66
+ SWIG_RubyUnlinkObjects(page);
67
+ SWIG_RubyRemoveTracking(page);
68
+ }
69
+ }
70
+ };
71
+ __HEREDOC
72
+ spec.use_class_implementation 'wxPropertyGridManager', 'WXRubyPropertyGridManager'
22
73
  spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
23
74
  # mixin PropertyGridInterface
24
75
  spec.include_mixin 'wxPropertyGridManager', 'Wx::PG::PropertyGridInterface'
@@ -29,12 +80,28 @@ module WXRuby3
29
80
  spec.ignore 'wxPropertyGridManager::GetVIterator'
30
81
  # customize mark function
31
82
  spec.add_header_code <<~__HEREDOC
83
+ WXRUBY_TRACE_GUARD(WxRubyTraceMarkPropGridMgr, "GC_MARK_PROPGRID_MGR")
84
+
85
+ static bool __wxr_In_GC_mark_wxPropertyGridManager = false;
86
+
87
+ extern void WXRuby_Set_In_GC_mark_wxPropertyGridManager(bool f)
88
+ {
89
+ __wxr_In_GC_mark_wxPropertyGridManager = f;
90
+ }
91
+
92
+ extern bool WXRuby_Is_In_GC_mark_wxPropertyGridManager()
93
+ {
94
+ return __wxr_In_GC_mark_wxPropertyGridManager;
95
+ }
96
+
97
+ extern void WXRuby_GC_mark_wxPropertyGridPage(wxPropertyGridPage* wx_pgp);
98
+
32
99
  static void GC_mark_wxPropertyGridManager(void* ptr)
33
100
  {
34
- #ifdef __WXRB_DEBUG__
35
- if (wxRuby_TraceLevel()>1)
36
- std::wcout << "> GC_mark_wxPropertyGridManager : " << ptr << std::endl;
37
- #endif
101
+ WXRUBY_TRACE_IF(WxRubyTraceMarkPropGridMgr, 2)
102
+ WXRUBY_TRACE("> GC_mark_wxPropertyGridManager : " << ptr)
103
+ WXRUBY_TRACE_END
104
+
38
105
  if ( GC_IsWindowDeleted(ptr) )
39
106
  {
40
107
  return;
@@ -42,46 +109,39 @@ module WXRuby3
42
109
  // Do standard marking routines as for all wxWindows
43
110
  GC_mark_wxWindow(ptr);
44
111
 
45
- wxPropertyGridManager* wx_pg = (wxPropertyGridManager*) ptr;
112
+ WXRuby_Set_In_GC_mark_wxPropertyGridManager(true);
113
+
114
+ wxPropertyGridManager* wx_pgm = (wxPropertyGridManager*) ptr;
46
115
 
47
- // mark all properties of all pages
48
- #ifdef __WXRB_DEBUG__
49
- long l = 0;
50
- #endif
51
- for (size_t i=0; i < wx_pg->GetPageCount() ;++i)
116
+ // mark the property grid
117
+ wxPropertyGrid* wx_pg = wx_pgm->GetGrid();
118
+ VALUE rb_pg = SWIG_RubyInstanceFor(wx_pg);
119
+ if (!NIL_P(rb_pg))
52
120
  {
53
- wxPGVIterator it =
54
- wx_pg->GetPage(i)->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
55
- // iterate all
56
- for ( ; !it.AtEnd(); it.Next() )
121
+ rb_gc_mark(rb_pg);
122
+ }
123
+
124
+ // mark all properties of all pages
125
+ for (size_t i=0; i < wx_pgm->GetPageCount() ;++i)
126
+ {
127
+ wxPropertyGridPage* wx_pgp = wx_pgm->GetPage(i);
128
+ // check if this page is wrapped in Ruby
129
+ VALUE rb_pgp = SWIG_RubyInstanceFor(wx_pgp);
130
+ if (NIL_P(rb_pgp)) // if not just iterate and mark it's properties
57
131
  {
58
- #ifdef __WXRB_DEBUG__
59
- ++l;
60
- #endif
61
- wxPGProperty* p = it.GetProperty();
62
- VALUE rb_p = SWIG_RubyInstanceFor(p);
63
- if (NIL_P(rb_p))
64
- {
65
- VALUE object = (VALUE) p->GetClientData();
66
- if ( object && !NIL_P(object))
67
- {
68
- #ifdef __WXRB_DEBUG__
69
- if (wxRuby_TraceLevel()>2)
70
- std::wcout << "*** marking property data " << p << ":" << p->GetName() << std::endl;
71
- #endif
72
- rb_gc_mark(object);
73
- }
74
- }
75
- else
76
- {
77
- rb_gc_mark(rb_p);
78
- }
132
+ WXRuby_GC_mark_wxPropertyGridPage(wx_pgp);
133
+ }
134
+ else // but a tracked Ruby page instance we can simply mark and it will mark it's properties itself
135
+ {
136
+ rb_gc_mark(rb_pgp);
79
137
  }
80
138
  }
81
- #ifdef __WXRB_DEBUG__
82
- if (wxRuby_TraceLevel()>1)
83
- std::wcout << "*** iterated " << l << " properties" << std::endl;
84
- #endif
139
+
140
+ WXRuby_Set_In_GC_mark_wxPropertyGridManager(false);
141
+
142
+ WXRUBY_TRACE_IF(WxRubyTraceMarkPropGridMgr, 2)
143
+ WXRUBY_TRACE(" GC_mark_wxPropertyGridManager : " << ptr)
144
+ WXRUBY_TRACE_END
85
145
  }
86
146
  __HEREDOC
87
147
  spec.add_swig_code '%markfunc wxPropertyGridManager "GC_mark_wxPropertyGridManager";'
@@ -71,6 +71,66 @@ module WXRuby3
71
71
  map_in ignore: true, code: '$1= true;'
72
72
  end
73
73
  spec.suppress_warning(473, 'wxPropertyGridPage::DoInsert')
74
+ # customize mark function
75
+ spec.add_header_code <<~__HEREDOC
76
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkPropGridPage, "GC_MARK_PROPGRID_PAGE")
77
+
78
+ extern void WXRuby_GC_mark_wxPropertyGridPage(wxPropertyGridPage* wx_pgp)
79
+ {
80
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPropGridPage, 2)
81
+ WXRUBY_TRACE("> WXRuby_GC_mark_wxPropertyGridPage : " << wx_pgp)
82
+ WXRUBY_TRACE_END
83
+
84
+ #ifdef __WXRB_DEBUG__
85
+ long l = 0, n = 0;
86
+ #endif
87
+ VALUE rb_root_prop = SWIG_RubyInstanceFor(wx_pgp->GetRoot());
88
+ if (!NIL_P(rb_root_prop))
89
+ {
90
+ rb_gc_mark(rb_root_prop);
91
+ #ifdef __WXRB_DEBUG__
92
+ ++n;
93
+ #endif
94
+ }
95
+ // mark all properties
96
+ wxPGVIterator it =
97
+ wx_pgp->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
98
+ // iterate all
99
+ for ( ; !it.AtEnd(); it.Next() )
100
+ {
101
+ #ifdef __WXRB_DEBUG__
102
+ ++l;
103
+ #endif
104
+ wxPGProperty* wx_p = it.GetProperty();
105
+ VALUE rb_prop = SWIG_RubyInstanceFor(wx_p);
106
+ if (!RB_NIL_P(rb_prop))
107
+ {
108
+ rb_gc_mark(rb_prop);
109
+ #ifdef __WXRB_DEBUG__
110
+ ++n;
111
+ #endif
112
+ }
113
+ }
114
+
115
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPropGridPage, 2)
116
+ WXRUBY_TRACE("< WXRuby_GC_mark_wxPropertyGridPage: iterated " << l << " properties; marked " << n)
117
+ WXRUBY_TRACE_END
118
+ }
119
+
120
+ static void GC_mark_wxPropertyGridPage(void* ptr)
121
+ {
122
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPropGridPage, 2)
123
+ WXRUBY_TRACE("> GC_mark_wxPropertyGridPage : " << ptr)
124
+ WXRUBY_TRACE_END
125
+
126
+ WXRuby_GC_mark_wxPropertyGridPage((wxPropertyGridPage*) ptr);
127
+
128
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkPropGridPage, 2)
129
+ WXRUBY_TRACE("< GC_mark_wxPropertyGridPage : " << ptr)
130
+ WXRUBY_TRACE_END
131
+ }
132
+ __HEREDOC
133
+ spec.add_swig_code '%markfunc wxPropertyGridPage "GC_mark_wxPropertyGridPage";'
74
134
  end
75
135
  end # class PropertyGridPage
76
136
 
@@ -0,0 +1,22 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 wxWidgets interface director
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ class Director
12
+
13
+ class RichToolTip < Director
14
+
15
+ def setup
16
+ super
17
+ end
18
+ end # class RichToolTip
19
+
20
+ end # class Director
21
+
22
+ end # module WXRuby3
@@ -102,7 +102,7 @@ module WXRuby3
102
102
  __HEREDOC
103
103
  spec.add_header_code <<~__HEREDOC
104
104
  // define the richtext buffer marker
105
- static void wxRuby_markRichTextBuffer()
105
+ static void wxRuby_markRichTextBuffer(const TGCTrackingValueMap& /*unused*/)
106
106
  {
107
107
  // mark any user installed drawing handlers
108
108
  wxList& handlers = wxRichTextBuffer::GetDrawingHandlers();
@@ -125,7 +125,10 @@ module WXRuby3
125
125
  }
126
126
  __HEREDOC
127
127
  # register the marker at module initialization
128
- spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markRichTextBuffer);'
128
+ spec.add_init_code <<~__HEREDOC
129
+ const std::string WXRUBY_RICHTEXT_BUFFER = {"WXRUBY_RICHTEXT_BUFFER"};
130
+ wxRuby_RegisterTrackingCategory(WXRUBY_RICHTEXT_BUFFER, wxRuby_markRichTextBuffer);
131
+ __HEREDOC
129
132
  # for GetExtWildcard
130
133
  spec.map 'wxArrayInt* types' => 'Array,nil' do
131
134
 
@@ -101,9 +101,14 @@ module WXRuby3
101
101
  wxRichTextCtrl::KeyboardNavigate
102
102
  wxRichTextCtrl::PositionToXY
103
103
  wxRichTextCtrl::XYToPosition
104
+ wxRichTextCtrl::PrepareContextMenu
104
105
  ]
105
106
  # this method contains worrisome code and is unclearly documented so I doubt it's usefulness
106
107
  spec.ignore 'wxRichTextCtrl::FindContainerAtPoint'
108
+ # redefine for GC specs
109
+ spec.ignore 'wxRichTextCtrl::SetContextMenu', ignore_doc: false
110
+ spec.extend_interface 'wxRichTextCtrl', 'void SetContextMenu(wxMenu *new_context_menu)'
111
+ spec.disown 'wxMenu *new_context_menu'
107
112
  # do not think having these proxied is going to bring much for wxRuby and suppressing them
108
113
  # prevents code bloat
109
114
  spec.no_proxy %w[
@@ -48,17 +48,26 @@ module WXRuby3
48
48
  'wxRichTextSelection',
49
49
  'wxRichTextProperties'
50
50
  spec.add_header_code <<~__HEREDOC
51
+ WXRUBY_TRACE_GUARD(WxRubyTraceFreeRichTextObject, "GC_FREE_RTOBJECT")
52
+
51
53
  extern void GC_RichTextObjectFreeFunc(void* ptr)
52
54
  {
55
+ WXRUBY_TRACE_IF(WxRubyTraceFreeRichTextObject, 2)
56
+ WXRUBY_TRACE("> GC_RichTextObjectFreeFunc : " << ptr)
57
+ WXRUBY_TRACE_END
58
+
53
59
  SWIG_RubyRemoveTracking(ptr);
54
60
  if (ptr)
55
61
  {
56
- #ifdef __WXRB_DEBUG__
57
- if (wxRuby_TraceLevel()>1)
58
- std::wcout << "GC_RichTextObjectFreeFunc(" << ptr << ")" << std::endl;
59
- #endif
62
+ WXRUBY_TRACE_IF(WxRubyTraceFreeRichTextObject, 3)
63
+ WXRUBY_TRACE("| GC_RichTextObjectFreeFunc : dereferencing")
64
+ WXRUBY_TRACE_END
60
65
  ((wxRichTextObject*)ptr)->Dereference();
61
66
  }
67
+
68
+ WXRUBY_TRACE_IF(WxRubyTraceFreeRichTextObject, 2)
69
+ WXRUBY_TRACE("< GC_RichTextObjectFreeFunc : " << ptr)
70
+ WXRUBY_TRACE_END
62
71
  }
63
72
  __HEREDOC
64
73
  spec.make_abstract 'wxRichTextObject'
@@ -20,9 +20,12 @@ module WXRuby3
20
20
  def setup
21
21
  super
22
22
  spec.items << 'wxRichTextStyleListCtrl' << 'wxRichTextStyleComboCtrl'
23
+ spec.gc_as_window('wxRichTextStyleListBox')
23
24
  spec.include 'wx/odcombo.h'
24
25
  spec.add_header_code 'extern VALUE wxRuby_RichTextStyleDefinition2Ruby(const wxRichTextStyleDefinition *wx_rtsd, int own);'
25
- if Config.instance.wx_version_check('3.3.0') > 0
26
+ if Config.instance.wx_version_check('3.3.1') > 0
27
+ spec.override_inheritance_chain('wxRichTextStyleListBox', ['wxHtmlListBox', 'wxVListBox', 'wxVScrolledCanvas', 'wxWindow', 'wxEvtHandler', 'wxObject'])
28
+ elsif Config.instance.wx_version_check('3.3.0') > 0
26
29
  spec.override_inheritance_chain('wxRichTextStyleListBox', ['wxHtmlListBox', 'wxVListBox', 'wxVScrolledWindow', 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
27
30
  else
28
31
  spec.override_inheritance_chain('wxRichTextStyleListBox', ['wxHtmlListBox', 'wxVListBox', { 'wxVScrolledWindow' => 'wxHScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
@@ -61,6 +61,9 @@ module WXRuby3
61
61
  end
62
62
  spec.ignore 'wxScrolled::OnDraw'
63
63
  spec.ignore 'wxScrolled::GetViewStart(int *,int *)'
64
+ if Config.instance.wx_version_check('3.3.2') >= 0
65
+ spec.ignore 'wxScrolled::GetViewStartPixels(int *,int *) const'
66
+ end
64
67
  spec.map_apply 'int * OUTPUT' => 'int *'
65
68
  end
66
69
 
@@ -20,6 +20,7 @@ module WXRuby3
20
20
  spec.include_mixin 'wxSearchCtrl', { 'Wx::TextEntry' => 'wxTextEntryBase' }
21
21
  spec.suppress_warning(473, 'wxSearchCtrl::GetMenu')
22
22
  spec.override_inheritance_chain('wxSearchCtrl', %w[wxControl wxWindow wxEvtHandler wxObject])
23
+ spec.disown 'wxMenu *'
23
24
  end
24
25
  end # class SearchCtrl
25
26