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
@@ -44,6 +44,12 @@ module WXRuby3
44
44
  spec.ignore 'wxGrid::SetCellValue(const wxString &,int,int)'
45
45
  spec.ignore 'wxGrid::SetTable' # there is wxGrid::AssignTable now that always takes ownership
46
46
 
47
+ spec.regard 'wxGrid::CanHaveAttributes',
48
+ 'wxGrid::GetColMinimalWidth',
49
+ 'wxGrid::GetColRight',
50
+ 'wxGrid::GetColLeft',
51
+ 'wxGrid::GetRowMinimalHeight'
52
+
47
53
  spec.regard 'wxGridSizesInfo::m_sizeDefault',
48
54
  'wxGridSizesInfo::m_customSizes'
49
55
  spec.rename_for_ruby 'size_default' => 'wxGridSizesInfo::m_sizeDefault',
@@ -175,12 +181,14 @@ module WXRuby3
175
181
  spec.disown('wxGridTableBase* table')
176
182
  # customize mark function to handle safeguarding any customized Grid tables installed
177
183
  spec.add_header_code <<~__HEREDOC
184
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkGrid, "GC_MARK_GRID")
185
+
178
186
  static void GC_mark_wxGridCtrl(void* ptr)
179
187
  {
180
- #ifdef __WXRB_DEBUG__
181
- if (wxRuby_TraceLevel()>1)
182
- std::wcout << "> GC_mark_wxGridCtrl : " << ptr << std::endl;
183
- #endif
188
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkGrid, 2)
189
+ WXRUBY_TRACE("> GC_mark_wxGridCtrl : " << ptr)
190
+ WXRUBY_TRACE_END
191
+
184
192
  if ( GC_IsWindowDeleted(ptr) )
185
193
  {
186
194
  return;
@@ -194,8 +202,16 @@ module WXRuby3
194
202
  VALUE rb_gtbl = SWIG_RubyInstanceFor(wx_gtbl);
195
203
  if (!NIL_P(rb_gtbl))
196
204
  {
205
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkGrid, 3)
206
+ WXRUBY_TRACE("| GC_mark_wxGridCtrl : marking gridtable " << wx_gtbl << " -> " << rb_gtbl);
207
+ WXRUBY_TRACE_END
208
+
197
209
  rb_gc_mark(rb_gtbl);
198
210
  }
211
+
212
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkGrid, 2)
213
+ WXRUBY_TRACE("< GC_mark_wxGridCtrl : " << ptr)
214
+ WXRUBY_TRACE_END
199
215
  }
200
216
  __HEREDOC
201
217
  spec.add_swig_code '%markfunc wxGrid "GC_mark_wxGridCtrl";'
@@ -293,34 +309,56 @@ module WXRuby3
293
309
  spec.add_header_code <<~__HEREDOC
294
310
  #include <wx/clntdata.h>
295
311
 
296
- // declare the global table for grid cell attributes
297
- WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
298
- WXRBGridCellAttrValueHash);
299
- static WXRBGridCellAttrValueHash Grid_Cell_Attr_Value_Map;
312
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkGridCellAttr, "GC_MARK_GRID_CELL_ATTR")
313
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCTrackGridCellAttr, "GC_TRACK_GRID_CELL_ATTR")
314
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkGridCellEditor, "GC_MARK_GRID_CELL_EDITOR")
315
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCTrackGridCellEditor, "GC_TRACK_GRID_CELL_EDITOR")
316
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkGridCellRenderer, "GC_MARK_GRID_CELL_RENDERER")
317
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCTrackGridCellRenderer, "GC_TRACK_GRID_CELL_RENDERER")
300
318
 
301
- static void wxRuby_UnregisterGridCellAttr(wxGridCellAttr* wx_attr)
319
+ static const std::string WXRUBY_GRID_CELL_ATTR = { "WXRUBY_GRID_CELL_ATTR" };
320
+
321
+ // define the grid cell attribute marker
322
+ static void wxRuby_markGridCellAttr(const TGCTrackingValueMap& values)
302
323
  {
303
- #ifdef __WXRB_DEBUG__
304
- if (wxRuby_TraceLevel()>1)
305
- std::wcout << "** wxRuby_UnregisterGridCellAttr : " << wx_attr << ":" << (void*)Grid_Cell_Attr_Value_Map[wx_attr] << std::endl;
306
- #endif
307
- if (Grid_Cell_Attr_Value_Map.count(wx_attr) != 0)
324
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkGridCellAttr, 2)
325
+ WXRUBY_TRACE("> wxRuby_markGridCellAttr")
326
+ WXRUBY_TRACE_END
327
+
328
+ for(const auto& ti : values)
308
329
  {
309
- VALUE object = Grid_Cell_Attr_Value_Map[wx_attr];
310
- if (object && !NIL_P(object))
311
- {
312
- DATA_PTR(object) = 0; // unlink
313
- }
314
- Grid_Cell_Attr_Value_Map.erase(wx_attr);
330
+ VALUE obj = ti.second;
331
+
332
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkGridCellAttr, 2)
333
+ WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0))
334
+ WXRUBY_TRACE("| wxRuby_markGridCellAttr : " << ti.first << "|" << (void*)c_ptr)
335
+ WXRUBY_TRACE_END
336
+
337
+ rb_gc_mark(obj);
315
338
  }
339
+
340
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkGridCellAttr, 2)
341
+ WXRUBY_TRACE("< wxRuby_markGridCellAttr")
342
+ WXRUBY_TRACE_END
343
+ }
344
+
345
+ static void wxRuby_UnregisterGridCellAttr(wxGridCellAttr* wx_attr)
346
+ {
347
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
348
+ WXRUBY_TRACE("> wxRuby_UnregisterGridCellAttr : " << wx_attr << " -> " << wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_ATTR, wx_attr))
349
+ WXRUBY_TRACE_END
350
+
351
+ wxRuby_UnlinkCategoryValue(WXRUBY_GRID_CELL_ATTR, wx_attr);
352
+ wxRuby_UnregisterCategoryValue(WXRUBY_GRID_CELL_ATTR, wx_attr);
353
+
354
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
355
+ WXRUBY_TRACE("< wxRuby_UnregisterGridCellAttr : " << wx_attr)
356
+ WXRUBY_TRACE_END
316
357
  }
317
358
 
318
359
  extern VALUE wxRuby_GridCellAttrInstance(wxGridCellAttr* wx_attr)
319
360
  {
320
- if (Grid_Cell_Attr_Value_Map.count(wx_attr) == 0)
321
- return Qnil;
322
- else
323
- return Grid_Cell_Attr_Value_Map[wx_attr];
361
+ return wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_ATTR, wx_attr);
324
362
  }
325
363
 
326
364
  // specialized client data class
@@ -329,7 +367,7 @@ module WXRuby3
329
367
  public:
330
368
  WXRBGridCellAttrMonitor() : wx_attr(0), rb_attr(Qnil) {}
331
369
  WXRBGridCellAttrMonitor(wxGridCellAttr* a, VALUE v) : wx_attr(a), rb_attr(v)
332
- { Grid_Cell_Attr_Value_Map[wx_attr] = rb_attr; }
370
+ { wxRuby_RegisterCategoryValue(WXRUBY_GRID_CELL_ATTR, wx_attr, rb_attr); }
333
371
  virtual ~WXRBGridCellAttrMonitor()
334
372
  { wxRuby_UnregisterGridCellAttr(wx_attr); }
335
373
  private:
@@ -340,60 +378,88 @@ module WXRuby3
340
378
  // and it's associated registration/de-registration functions
341
379
  extern void wxRuby_RegisterGridCellAttr(wxGridCellAttr* wx_attr, VALUE rb_attr)
342
380
  {
381
+ static bool is_marker_registered = false;
382
+
383
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
384
+ WXRUBY_TRACE("> wxRuby_RegisterGridCellAttr : " << wx_attr << " -> " << rb_attr)
385
+ WXRUBY_TRACE_END
386
+
343
387
  if (wx_attr && !NIL_P(rb_attr))
344
388
  {
345
- // always (keep) disown(ed); wxWidgets takes over ownership
346
- RDATA(rb_attr)->dfree = 0;
347
- if (Grid_Cell_Attr_Value_Map.count(wx_attr) == 0)
389
+ if (!is_marker_registered)
390
+ {
391
+ wxRuby_RegisterTrackingCategory(WXRUBY_GRID_CELL_ATTR, wxRuby_markGridCellAttr, true);
392
+ is_marker_registered = true;
393
+ }
394
+
395
+ // see if this attr is already tracked
396
+ if (wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_ATTR, wx_attr) == Qnil)
348
397
  {
349
- #ifdef __WXRB_DEBUG__
350
- if (wxRuby_TraceLevel()>1)
351
- std::wcout << "** wxRuby_RegisterGridCellAttr : " << wx_attr << ":" << (void*)rb_attr << std::endl;
352
- #endif
398
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
399
+ WXRUBY_TRACE("| wxRuby_RegisterGridCellAttr : installing monitor")
400
+ WXRUBY_TRACE_END
401
+
402
+ // either a new Ruby created instance or an unwrapped C++ created instance
403
+ // always disown; wxWidgets takes over or keeps ownership of reference count
404
+ RDATA(rb_attr)->dfree = 0;
405
+
353
406
  wx_attr->SetClientObject(new WXRBGridCellAttrMonitor(wx_attr, rb_attr));
354
407
  }
408
+ else // already registered; will be disowned already
409
+ {
410
+ // increase the reference count for C++ to take over
411
+ wx_attr->IncRef();
412
+ }
355
413
  }
414
+
415
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
416
+ WXRUBY_TRACE("< wxRuby_RegisterGridCellAttr : " << wx_attr)
417
+ WXRUBY_TRACE_END
356
418
  }
357
419
 
358
- // define the grid cell attribute marker
359
- static void wxRuby_markGridCellAttr()
420
+ static const std::string WXRUBY_GRID_CELL_EDITOR = { "WXRUBY_GRID_CELL_EDITOR" };
421
+
422
+ // define the grid cell editor marker
423
+ static void wxRuby_markGridCellEditor(const TGCTrackingValueMap& values)
360
424
  {
361
- WXRBGridCellAttrValueHash::iterator it;
362
- for( it = Grid_Cell_Attr_Value_Map.begin(); it != Grid_Cell_Attr_Value_Map.end(); ++it )
425
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
426
+ WXRUBY_TRACE("> wxRuby_markGridCellEditor")
427
+ WXRUBY_TRACE_END
428
+
429
+ for(const auto& ti : values)
363
430
  {
364
- VALUE obj = it->second;
431
+ VALUE obj = ti.second;
432
+
433
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
434
+ WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0))
435
+ WXRUBY_TRACE("| wxRuby_markGridCellEditor : " << ti.first << "|" << (void*)c_ptr)
436
+ WXRUBY_TRACE_END
437
+
365
438
  rb_gc_mark(obj);
366
439
  }
367
- }
368
440
 
369
- // declare the global table for grid cell editors
370
- WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
371
- WXRBGridCellEditorValueHash);
372
- static WXRBGridCellEditorValueHash Grid_Cell_Editor_Value_Map;
441
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
442
+ WXRUBY_TRACE("< wxRuby_markGridCellEditor")
443
+ WXRUBY_TRACE_END
444
+ }
373
445
 
374
446
  static void wxRuby_UnregisterGridCellEditor(wxGridCellEditor* wx_edt)
375
447
  {
376
- #ifdef __WXRB_DEBUG__
377
- if (wxRuby_TraceLevel()>1)
378
- std::wcout << "** wxRuby_UnregisterGridCellEditor : " << wx_edt << ":" << (void*)Grid_Cell_Editor_Value_Map[wx_edt] << std::endl;
379
- #endif
380
- if (Grid_Cell_Editor_Value_Map.count(wx_edt) != 0)
381
- {
382
- VALUE object = Grid_Cell_Editor_Value_Map[wx_edt];
383
- if (object && !NIL_P(object))
384
- {
385
- DATA_PTR(object) = 0; // unlink
386
- }
387
- Grid_Cell_Editor_Value_Map.erase(wx_edt);
388
- }
448
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
449
+ WXRUBY_TRACE("> wxRuby_UnregisterGridCellEditor : " << wx_edt << " -> " << wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_EDITOR, wx_edt))
450
+ WXRUBY_TRACE_END
451
+
452
+ wxRuby_UnlinkCategoryValue(WXRUBY_GRID_CELL_EDITOR, wx_edt);
453
+ wxRuby_UnregisterCategoryValue(WXRUBY_GRID_CELL_EDITOR, wx_edt);
454
+
455
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
456
+ WXRUBY_TRACE("< wxRuby_UnregisterGridCellEditor : " << wx_edt)
457
+ WXRUBY_TRACE_END
389
458
  }
390
459
 
391
460
  extern VALUE wxRuby_GridCellEditorInstance(wxGridCellEditor* wx_edt)
392
461
  {
393
- if (Grid_Cell_Editor_Value_Map.count(wx_edt) == 0)
394
- return Qnil;
395
- else
396
- return Grid_Cell_Editor_Value_Map[wx_edt];
462
+ return wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_EDITOR, wx_edt);
397
463
  }
398
464
 
399
465
  // specialized client data class
@@ -402,7 +468,7 @@ module WXRuby3
402
468
  public:
403
469
  WXRBGridCellEditorMonitor() : wx_edt(0), rb_edt(Qnil) {}
404
470
  WXRBGridCellEditorMonitor(wxGridCellEditor* a, VALUE v) : wx_edt(a), rb_edt(v)
405
- { Grid_Cell_Editor_Value_Map[wx_edt] = rb_edt; }
471
+ { wxRuby_RegisterCategoryValue(WXRUBY_GRID_CELL_EDITOR, wx_edt, rb_edt); }
406
472
  virtual ~WXRBGridCellEditorMonitor()
407
473
  { wxRuby_UnregisterGridCellEditor(wx_edt); }
408
474
  private:
@@ -413,59 +479,88 @@ module WXRuby3
413
479
  // and it's associated registration function
414
480
  extern void wxRuby_RegisterGridCellEditor(wxGridCellEditor* wx_edt, VALUE rb_edt)
415
481
  {
482
+ static bool is_marker_registered = false;
483
+
484
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
485
+ WXRUBY_TRACE("> wxRuby_RegisterGridCellEditor : " << wx_edt << " -> " << rb_edt)
486
+ WXRUBY_TRACE_END
487
+
416
488
  if (wx_edt && !NIL_P(rb_edt))
417
489
  {
418
- // always (keep) disown(ed); wxWidgets takes over ownership
419
- RDATA(rb_edt)->dfree = 0;
420
- if (Grid_Cell_Editor_Value_Map.count(wx_edt) == 0)
490
+ if (!is_marker_registered)
421
491
  {
422
- #ifdef __WXRB_DEBUG__
423
- if (wxRuby_TraceLevel()>1)
424
- std::wcout << "** wxRuby_RegisterGridCellEditor : " << wx_edt << ":" << (void*)rb_edt << std::endl;
425
- #endif
492
+ wxRuby_RegisterTrackingCategory(WXRUBY_GRID_CELL_EDITOR, wxRuby_markGridCellEditor, true);
493
+ is_marker_registered = true;
494
+ }
495
+
496
+ // see if this renderer is already tracked
497
+ if (wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_EDITOR, wx_edt) == Qnil)
498
+ {
499
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
500
+ WXRUBY_TRACE("| wxRuby_RegisterGridCellEditor : installing monitor")
501
+ WXRUBY_TRACE_END
502
+
503
+ // either a new Ruby created instance or an unwrapped C++ created instance
504
+ // always disown; wxWidgets takes over or keeps ownership of reference count
505
+ RDATA(rb_edt)->dfree = 0;
506
+
426
507
  wx_edt->SetClientObject(new WXRBGridCellEditorMonitor(wx_edt, rb_edt));
427
508
  }
509
+ else // already registered; will be disowned already
510
+ {
511
+ // increase the reference count for C++ to take over
512
+ wx_edt->IncRef();
513
+ }
428
514
  }
515
+
516
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
517
+ WXRUBY_TRACE("< wxRuby_RegisterGridCellEditor : " << wx_edt)
518
+ WXRUBY_TRACE_END
429
519
  }
430
520
 
431
- // define the grid cell editor marker
432
- static void wxRuby_markGridCellEditor()
521
+ static const std::string WXRUBY_GRID_CELL_RENDERER = { "WXRUBY_GRID_CELL_RENDERER" };
522
+
523
+ // define the grid cell renderer marker
524
+ static void wxRuby_markGridCellRenderer(const TGCTrackingValueMap& values)
433
525
  {
434
- WXRBGridCellEditorValueHash::iterator it;
435
- for( it = Grid_Cell_Editor_Value_Map.begin(); it != Grid_Cell_Editor_Value_Map.end(); ++it )
526
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
527
+ WXRUBY_TRACE("> wxRuby_markGridCellRenderer")
528
+ WXRUBY_TRACE_END
529
+
530
+ for(const auto& ti : values)
436
531
  {
437
- VALUE obj = it->second;
532
+ VALUE obj = ti.second;
533
+
534
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
535
+ WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0))
536
+ WXRUBY_TRACE("| wxRuby_markGridCellRenderer : " << ti.first << "|" << (void*)c_ptr)
537
+ WXRUBY_TRACE_END
538
+
438
539
  rb_gc_mark(obj);
439
540
  }
440
- }
441
541
 
442
- // declare the global table for grid cell renderer
443
- WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
444
- WXRBGridCellRendererValueHash);
445
- static WXRBGridCellRendererValueHash Grid_Cell_Renderer_Value_Map;
542
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
543
+ WXRUBY_TRACE("< wxRuby_markGridCellRenderer")
544
+ WXRUBY_TRACE_END
545
+ }
446
546
 
447
547
  static void wxRuby_UnregisterGridCellRenderer(wxGridCellRenderer* wx_rnd)
448
548
  {
449
- #ifdef __WXRB_DEBUG__
450
- if (wxRuby_TraceLevel()>1)
451
- std::wcout << "** wxRuby_UnregisterGridCellRenderer : " << wx_rnd << ":" << (void*)Grid_Cell_Renderer_Value_Map[wx_rnd] << std::endl;
452
- #endif
453
- if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) != 0)
454
- {
455
- VALUE object = Grid_Cell_Renderer_Value_Map[wx_rnd];
456
- if (object && !NIL_P(object))
457
- {
458
- DATA_PTR(object) = 0; // unlink
459
- }
460
- Grid_Cell_Renderer_Value_Map.erase(wx_rnd);
461
- }
549
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
550
+ WXRUBY_TRACE("> wxRuby_UnregisterGridCellRenderer : " << wx_rnd << " -> " << wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_RENDERER, wx_rnd))
551
+ WXRUBY_TRACE_END
552
+
553
+ wxRuby_UnlinkCategoryValue(WXRUBY_GRID_CELL_RENDERER, wx_rnd);
554
+ wxRuby_UnregisterCategoryValue(WXRUBY_GRID_CELL_RENDERER, wx_rnd);
555
+
556
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
557
+ WXRUBY_TRACE("< wxRuby_UnregisterGridCellRenderer : " << wx_rnd)
558
+ WXRUBY_TRACE_END
462
559
  }
463
560
 
464
561
  extern VALUE wxRuby_GridCellRendererInstance(wxGridCellRenderer* wx_rnd)
465
562
  {
466
- if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) == 0)
467
- return Qnil;
468
- return Grid_Cell_Renderer_Value_Map[wx_rnd];
563
+ return wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_RENDERER, wx_rnd);
469
564
  }
470
565
 
471
566
  // specialized client data class
@@ -474,7 +569,7 @@ module WXRuby3
474
569
  public:
475
570
  WXRBGridCellRendererMonitor() : wx_rnd(0), rb_rnd(Qnil) {}
476
571
  WXRBGridCellRendererMonitor(wxGridCellRenderer* a, VALUE v) : wx_rnd(a), rb_rnd(v)
477
- { Grid_Cell_Renderer_Value_Map[wx_rnd] = rb_rnd; }
572
+ { wxRuby_RegisterCategoryValue(WXRUBY_GRID_CELL_RENDERER, wx_rnd, rb_rnd); }
478
573
  virtual ~WXRBGridCellRendererMonitor()
479
574
  { wxRuby_UnregisterGridCellRenderer(wx_rnd); }
480
575
  private:
@@ -485,37 +580,46 @@ module WXRuby3
485
580
  // and it's associated registration/de-registration functions
486
581
  extern void wxRuby_RegisterGridCellRenderer(wxGridCellRenderer* wx_rnd, VALUE rb_rnd)
487
582
  {
583
+ static bool is_marker_registered = false;
584
+
585
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
586
+ WXRUBY_TRACE("> wxRuby_RegisterGridCellRenderer : " << wx_rnd << " -> " << rb_rnd)
587
+ WXRUBY_TRACE_END
588
+
488
589
  if (wx_rnd && !NIL_P(rb_rnd))
489
590
  {
490
- // always (keep) disowned(ed); wxWidgets takes over ownership
491
- RDATA(rb_rnd)->dfree = 0;
492
- if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) == 0)
591
+ if (!is_marker_registered)
592
+ {
593
+ wxRuby_RegisterTrackingCategory(WXRUBY_GRID_CELL_RENDERER, wxRuby_markGridCellRenderer, true);
594
+ is_marker_registered = true;
595
+ }
596
+
597
+ // see if this renderer is already tracked
598
+ if (wxRuby_FindCategoryValue(WXRUBY_GRID_CELL_RENDERER, wx_rnd) == Qnil)
493
599
  {
494
- #ifdef __WXRB_DEBUG__
495
- if (wxRuby_TraceLevel()>1)
496
- std::wcout << "** wxRuby_RegisterGridCellRenderer : registering " << wx_rnd << ":" << (void*)rb_rnd << std::endl;
497
- #endif
600
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
601
+ WXRUBY_TRACE("| wxRuby_RegisterGridCellRenderer : installing monitor")
602
+ WXRUBY_TRACE_END
603
+
604
+ // either a new Ruby created instance or an unwrapped C++ created instance
605
+ // always disown; wxWidgets takes over or keeps ownership of reference count
606
+ RDATA(rb_rnd)->dfree = 0;
607
+
498
608
  wx_rnd->SetClientObject(new WXRBGridCellRendererMonitor(wx_rnd, rb_rnd));
499
609
  }
610
+ else // already registered; will be disowned already
611
+ {
612
+ // increase the reference count for C++ to take over
613
+ wx_rnd->IncRef();
614
+ }
500
615
  }
501
- }
502
616
 
503
- // define the grid cell renderer marker
504
- static void wxRuby_markGridCellRenderer()
505
- {
506
- WXRBGridCellRendererValueHash::iterator it;
507
- for( it = Grid_Cell_Renderer_Value_Map.begin(); it != Grid_Cell_Renderer_Value_Map.end(); ++it )
508
- {
509
- VALUE obj = it->second;
510
- rb_gc_mark(obj);
511
- }
617
+ WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
618
+ WXRUBY_TRACE("< wxRuby_RegisterGridCellRenderer : " << wx_rnd)
619
+ WXRUBY_TRACE_END
512
620
  }
513
621
 
514
622
  __HEREDOC
515
- # register the markers at module initialization
516
- spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markGridCellAttr);',
517
- 'wxRuby_AppendMarker(wxRuby_markGridCellEditor);',
518
- 'wxRuby_AppendMarker(wxRuby_markGridCellRenderer);'
519
623
  # add type mappings to handle registration
520
624
  # first declare 'normal' type mapping for const pointer (for DrawCellHighlight)
521
625
  spec.map 'const wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
@@ -527,10 +631,20 @@ module WXRuby3
527
631
  $result = wxRuby_GridCellAttrInstance($1); // check for already registered instance
528
632
  if (NIL_P($result))
529
633
  {
530
- // created by wxWidgets itself
531
- // convert and register
634
+ // As this editor was created in C++ it seems we have no registration yet
635
+ // but the reference counter will be at least 2 now (1 for C++ owner and 1
636
+ // increment for returning to us).
637
+ // We will now register a new Ruby object, keep it disowned and decrement
638
+ // for now. If passing to C++ again we will increment there.
532
639
  $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxGridCellAttr, 0);
533
640
  wxRuby_RegisterGridCellAttr($1, $result);
641
+ $1->DecRef();
642
+ }
643
+ else
644
+ {
645
+ // as this cell attr got passed from C++ it wll have incremented it's reference counter
646
+ // decrease that here; if we pass it back to C++ we will increase there
647
+ $1->DecRef();
534
648
  }
535
649
  __CODE
536
650
  map_check code: 'wxRuby_RegisterGridCellAttr($1, argv[$argnum-2]);'
@@ -21,15 +21,20 @@ module WXRuby3
21
21
  spec.rename_for_ruby('Init' => "#{spec.module_name}::Initialize")
22
22
  # ignore these (pure virtual) decls
23
23
  spec.ignore %w[
24
+ wxHelpControllerBase::DisplayContents
24
25
  wxHelpControllerBase::DisplayBlock
25
26
  wxHelpControllerBase::DisplaySection
27
+ wxHelpControllerBase::KeywordSearch
26
28
  wxHelpControllerBase::LoadFile
27
29
  wxHelpControllerBase::Quit
28
- ]
30
+ ], ignore_doc: false
29
31
  # and add them as the implemented overrides they are
30
32
  spec.extend_interface spec.module_name,
33
+ 'virtual bool DisplayContents()',
31
34
  'virtual bool DisplayBlock(long blockNo)',
32
35
  'virtual bool DisplaySection(int sectionNo)',
36
+ 'virtual bool DisplaySection(const wxString &section)',
37
+ 'virtual bool KeywordSearch(const wxString &keyWord, wxHelpSearchMode mode=wxHELP_SEARCH_ALL)',
33
38
  'virtual bool LoadFile(const wxString &file=wxEmptyString)',
34
39
  'virtual bool Quit()'
35
40
  # ignore this problematic method
@@ -62,11 +67,74 @@ module WXRuby3
62
67
  spec.ignore 'wxHtmlHelpController::CreateHelpFrame',
63
68
  'wxHtmlHelpController::CreateHelpDialog',
64
69
  'wxHtmlHelpController::GetFrame',
65
- 'wxHtmlHelpController::GetDialog'
70
+ 'wxHtmlHelpController::GetDialog',
71
+ 'wxHtmlHelpController::DisplayContents',
72
+ 'wxHtmlHelpController::KeywordSearch'
73
+ # add custom implementation of HtmlModalHelp as module function (not a class)
74
+ spec.add_header_code <<~__CODE
75
+ static VALUE wxruby_HtmlModalHelp(int argc, VALUE *argv, VALUE self)
76
+ {
77
+ if (argc < 2 || argc > 4)
78
+ {
79
+ rb_raise(rb_eArgError, "wrong # of arguments %d for 2 (max 4)", argc);
80
+ return Qnil;
81
+ }
82
+
83
+ void *ptr = nullptr;
84
+ wxWindow *parent = nullptr;
85
+ wxString help_file;
86
+ wxString topic = wxEmptyString;
87
+ int style = wxHF_DEFAULT_STYLE;
88
+ int res = 0;
89
+
90
+ res = SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_wxWindow, 0);
91
+ if (!SWIG_IsOK(res))
92
+ {
93
+ VALUE msg = rb_inspect(argv[0]);
94
+ rb_raise(rb_eTypeError, "expected wxWindow* for 1 but got %s", StringValuePtr(msg));
95
+ return Qnil;
96
+ }
97
+ parent = reinterpret_cast< wxWindow * >(ptr);
98
+ if (TYPE(argv[1]) != T_STRING)
99
+ {
100
+ VALUE msg = rb_inspect(argv[1]);
101
+ rb_raise(rb_eTypeError, "expected String for 2 but got %s", StringValuePtr(msg));
102
+ return Qnil;
103
+ }
104
+ help_file = RSTR_TO_WXSTR(argv[1]);
105
+ if (argc > 2)
106
+ {
107
+ if (TYPE(argv[2]) != T_STRING)
108
+ {
109
+ VALUE msg = rb_inspect(argv[2]);
110
+ rb_raise(rb_eTypeError, "expected String for 3 but got %s", StringValuePtr(msg));
111
+ return Qnil;
112
+ }
113
+ topic = RSTR_TO_WXSTR(argv[2]);
114
+ }
115
+ if (argc > 3)
116
+ {
117
+ if (TYPE(argv[3]) != T_FIXNUM)
118
+ {
119
+ VALUE msg = rb_inspect(argv[3]);
120
+ rb_raise(rb_eTypeError, "expected Integer for 4 but got %s", StringValuePtr(msg));
121
+ return Qnil;
122
+ }
123
+ style = NUM2INT(argv[3]);
124
+ }
125
+ wxHtmlModalHelp(parent, help_file, topic, style);
126
+ return Qnil;
127
+ }
128
+ __CODE
129
+ spec.add_init_code <<~__CODE__
130
+ rb_define_module_function(mWxHtmlHelpController, "HtmlModalHelp", VALUEFUNC(wxruby_HtmlModalHelp), -1);
131
+ __CODE__
66
132
  elsif spec.module_name == 'wxExtHelpController'
67
133
  spec.ignore %w[
134
+ wxExtHelpController::DisplayContents
68
135
  wxExtHelpController::DisplayBlock
69
136
  wxExtHelpController::DisplaySection
137
+ wxExtHelpController::KeywordSearch
70
138
  wxExtHelpController::LoadFile
71
139
  wxExtHelpController::Quit
72
140
  wxExtHelpController::GetFrameParameters
@@ -92,7 +92,7 @@ module WXRuby3
92
92
  // virtual wxString GetHelp(const wxWindowBase* window);
93
93
  void RemoveHelp(wxWindowBase* window); // no virtual as we have fixed director impl above
94
94
  virtual bool ShowHelp(wxWindowBase* window);
95
- virtual bool ShowHelpAtPoint(wxWindowBase* window, const wxPoint point,
95
+ virtual bool ShowHelpAtPoint(wxWindowBase* window, const wxPoint& point,
96
96
  wxHelpEvent::Origin origin);
97
97
  };
98
98
  __HEREDOC
@@ -18,8 +18,11 @@ module WXRuby3
18
18
 
19
19
  def setup
20
20
  spec.items << 'wxSimpleHtmlListBox' << 'wxItemContainer'
21
+ spec.gc_as_window('wxHtmlListBox', 'wxSimpleHtmlListBox')
21
22
  super
22
- if Config.instance.wx_version_check('3.3.0') > 0
23
+ if Config.instance.wx_version_check('3.3.1') > 0
24
+ spec.override_inheritance_chain('wxHtmlListBox', ['wxVListBox', 'wxVScrolledCanvas', 'wxWindow', 'wxEvtHandler', 'wxObject'])
25
+ elsif Config.instance.wx_version_check('3.3.0') > 0
23
26
  spec.override_inheritance_chain('wxHtmlListBox', ['wxVListBox', 'wxVScrolledWindow', 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
24
27
  else
25
28
  spec.override_inheritance_chain('wxHtmlListBox', ['wxVListBox', { 'wxVScrolledWindow' => 'wxHScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
@@ -59,6 +62,13 @@ module WXRuby3
59
62
  'wxHtmlListBox::GetSelectedTextColour',
60
63
  'wxHtmlListBox::GetSelectedTextBgColour',
61
64
  'wxHtmlListBox::OnLinkClicked'
65
+ # missing from the XML docs
66
+ spec.extend_interface('wxHtmlListBox',
67
+ 'virtual void OnInternalIdle()',
68
+ 'virtual void RefreshRow(size_t line)',
69
+ 'virtual void RefreshRows(size_t from, size_t to)',
70
+ 'virtual void RefreshAll()',
71
+ 'virtual void SetItemCount(size_t count)')
62
72
  # add missing protected overloads
63
73
  spec.extend_interface 'wxHtmlListBox',
64
74
  'virtual void OnDrawItem(wxDC &dc, const wxRect &rect, size_t n) const',
@@ -71,7 +81,9 @@ module WXRuby3
71
81
  'wxHtmlListBox::OnGetRowsHeightHint'
72
82
 
73
83
  # override inheritance chain
74
- if Config.instance.wx_version_check('3.3.0') > 0
84
+ if Config.instance.wx_version_check('3.3.1') > 0
85
+ spec.override_inheritance_chain('wxSimpleHtmlListBox', ['wxHtmlListBox', 'wxVListBox', 'wxVScrolledCanvas', 'wxWindow', 'wxEvtHandler', 'wxObject'])
86
+ elsif Config.instance.wx_version_check('3.3.0') > 0
75
87
  spec.override_inheritance_chain('wxSimpleHtmlListBox', ['wxHtmlListBox', 'wxVListBox', 'wxVScrolledWindow', 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
76
88
  else
77
89
  spec.override_inheritance_chain('wxSimpleHtmlListBox', ['wxHtmlListBox', 'wxVListBox', { 'wxVScrolledWindow' => 'wxHScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
@@ -84,7 +96,8 @@ module WXRuby3
84
96
  # add missing overloads
85
97
  spec.extend_interface 'wxSimpleHtmlListBox',
86
98
  'virtual wxString GetString(unsigned int n) const',
87
- 'virtual void SetString(unsigned int n, const wxString &string)'
99
+ 'virtual void SetString(unsigned int n, const wxString &string)',
100
+ 'wxArrayString GetStrings() const'
88
101
  spec.ignore([ 'wxItemContainer::Append(const wxString &, void *)',
89
102
  'wxItemContainer::Append(const std::vector< wxString > &)',
90
103
  'wxItemContainer::Append(const wxArrayString &, void **)',