wxruby3 1.6.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. checksums.yaml +4 -4
  2. data/CREDITS.md +32 -25
  3. data/INSTALL.md +19 -4
  4. data/README.md +5 -5
  5. data/assets/repo-social-preview.odg +0 -0
  6. data/assets/repo-social-preview.xcf +0 -0
  7. data/ext/wxruby3/include/wxRubyApp.h +58 -45
  8. data/ext/wxruby3/include/wxruby-runtime.h +78 -1
  9. data/ext/wxruby3/swig/common.i +2 -2
  10. data/ext/wxruby3/swig/custom/director.swg +2 -2
  11. data/ext/wxruby3/swig/custom/rubyprimtypes.swg +59 -15
  12. data/ext/wxruby3/swig/custom/rubyrun.swg +4 -0
  13. data/ext/wxruby3/swig/custom/rubytracking.swg +4 -0
  14. data/ext/wxruby3/swig/custom/swiglabels.swg +129 -0
  15. data/ext/wxruby3/swig/custom/swigrun.swg +15 -0
  16. data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +20 -0
  17. data/ext/wxruby3/swig/mark_free_impl.i +152 -88
  18. data/ext/wxruby3/swig/memory_management.i +1 -0
  19. data/ext/wxruby3/swig/wx.i +73 -44
  20. data/lib/wx/aui/events/evt_list.rb +148 -0
  21. data/lib/wx/aui/require.rb +0 -1
  22. data/lib/wx/core/calendar_ctrl.rb +15 -0
  23. data/lib/wx/core/clipboard.rb +9 -13
  24. data/lib/wx/core/config.rb +1 -1
  25. data/lib/wx/core/events/evt_list.rb +1458 -0
  26. data/lib/wx/core/font/encoding.rb +113 -0
  27. data/lib/wx/core/generic_validator.rb +83 -31
  28. data/lib/wx/core/tipwindow.rb +16 -0
  29. data/lib/wx/doc/aui/auitabctrl.rb +35 -0
  30. data/lib/wx/doc/config.rb +2 -2
  31. data/lib/wx/doc/functions.rb +1 -1
  32. data/lib/wx/doc/gen/about_dialog_info.rb +330 -0
  33. data/lib/wx/doc/gen/accelerator.rb +178 -0
  34. data/lib/wx/doc/gen/activity_indicator.rb +83 -0
  35. data/lib/wx/doc/gen/affine_matrix2d.rb +284 -0
  36. data/lib/wx/doc/gen/animation.rb +275 -0
  37. data/lib/wx/doc/gen/animation_ctrl.rb +300 -0
  38. data/lib/wx/doc/gen/any_button.rb +191 -0
  39. data/lib/wx/doc/gen/app.rb +463 -0
  40. data/lib/wx/doc/gen/app_traits.rb +396 -0
  41. data/lib/wx/doc/gen/art_provider.rb +605 -0
  42. data/lib/wx/doc/gen/aui/aui_dock_art.rb +455 -0
  43. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +54 -0
  44. data/lib/wx/doc/gen/aui/aui_manager.rb +847 -0
  45. data/lib/wx/doc/gen/aui/aui_manager_event.rb +131 -0
  46. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +180 -0
  47. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +59 -0
  48. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +130 -0
  49. data/lib/wx/doc/gen/aui/aui_notebook.rb +631 -0
  50. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +233 -0
  51. data/lib/wx/doc/gen/aui/aui_pane_info.rb +769 -0
  52. data/lib/wx/doc/gen/aui/aui_tab_art.rb +352 -0
  53. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +14 -0
  54. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +510 -0
  55. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +340 -0
  56. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +244 -0
  57. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +257 -0
  58. data/lib/wx/doc/gen/aui/event_list.rb +179 -0
  59. data/lib/wx/doc/gen/banner_window.rb +124 -0
  60. data/lib/wx/doc/gen/bitmap.rb +731 -0
  61. data/lib/wx/doc/gen/bitmap_button.rb +123 -0
  62. data/lib/wx/doc/gen/bitmap_combo_box.rb +221 -0
  63. data/lib/wx/doc/gen/book_ctrl_base.rb +273 -0
  64. data/lib/wx/doc/gen/book_ctrl_event.rb +66 -0
  65. data/lib/wx/doc/gen/box_sizer.rb +85 -0
  66. data/lib/wx/doc/gen/brush.rb +251 -0
  67. data/lib/wx/doc/gen/busy_info.rb +157 -0
  68. data/lib/wx/doc/gen/button.rb +182 -0
  69. data/lib/wx/doc/gen/calculate_layout_event.rb +62 -0
  70. data/lib/wx/doc/gen/calendar_ctrl.rb +505 -0
  71. data/lib/wx/doc/gen/calendar_date_attr.rb +138 -0
  72. data/lib/wx/doc/gen/calendar_event.rb +147 -0
  73. data/lib/wx/doc/gen/caret.rb +97 -0
  74. data/lib/wx/doc/gen/check_box.rb +175 -0
  75. data/lib/wx/doc/gen/check_list_box.rb +121 -0
  76. data/lib/wx/doc/gen/choice.rb +175 -0
  77. data/lib/wx/doc/gen/choicebook.rb +116 -0
  78. data/lib/wx/doc/gen/client_dc.rb +43 -0
  79. data/lib/wx/doc/gen/clipboard.rb +144 -0
  80. data/lib/wx/doc/gen/collapsible_pane.rb +138 -0
  81. data/lib/wx/doc/gen/collapsible_pane_event.rb +46 -0
  82. data/lib/wx/doc/gen/colour.rb +333 -0
  83. data/lib/wx/doc/gen/colour_dialog.rb +190 -0
  84. data/lib/wx/doc/gen/colour_picker_ctrl.rb +110 -0
  85. data/lib/wx/doc/gen/colour_picker_event.rb +77 -0
  86. data/lib/wx/doc/gen/combo_box.rb +292 -0
  87. data/lib/wx/doc/gen/combo_ctrl.rb +662 -0
  88. data/lib/wx/doc/gen/command_link_button.rb +134 -0
  89. data/lib/wx/doc/gen/config_base.rb +10 -0
  90. data/lib/wx/doc/gen/context_help_button.rb +109 -0
  91. data/lib/wx/doc/gen/control.rb +277 -0
  92. data/lib/wx/doc/gen/control_with_items.rb +253 -0
  93. data/lib/wx/doc/gen/core.rb +45 -0
  94. data/lib/wx/doc/gen/credential_entry_dialog.rb +137 -0
  95. data/lib/wx/doc/gen/cursor.rb +193 -0
  96. data/lib/wx/doc/gen/data_format.rb +85 -0
  97. data/lib/wx/doc/gen/data_object.rb +436 -0
  98. data/lib/wx/doc/gen/data_object_simple_base.rb +10 -0
  99. data/lib/wx/doc/gen/date_event.rb +49 -0
  100. data/lib/wx/doc/gen/date_picker_ctrl.rb +161 -0
  101. data/lib/wx/doc/gen/dc.rb +1631 -0
  102. data/lib/wx/doc/gen/dc_overlay.rb +102 -0
  103. data/lib/wx/doc/gen/defs.rb +2802 -0
  104. data/lib/wx/doc/gen/dial_up_event.rb +45 -0
  105. data/lib/wx/doc/gen/dial_up_manager.rb +149 -0
  106. data/lib/wx/doc/gen/dialog.rb +541 -0
  107. data/lib/wx/doc/gen/dir_dialog.rb +164 -0
  108. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +90 -0
  109. data/lib/wx/doc/gen/dir_picker_ctrl.rb +125 -0
  110. data/lib/wx/doc/gen/display.rb +238 -0
  111. data/lib/wx/doc/gen/drag_drop.rb +299 -0
  112. data/lib/wx/doc/gen/drag_image.rb +116 -0
  113. data/lib/wx/doc/gen/editable_list_box.rb +109 -0
  114. data/lib/wx/doc/gen/event.rb +990 -0
  115. data/lib/wx/doc/gen/event_blocker.rb +50 -0
  116. data/lib/wx/doc/gen/event_filter.rb +92 -0
  117. data/lib/wx/doc/gen/event_list.rb +1644 -0
  118. data/lib/wx/doc/gen/events.rb +2809 -0
  119. data/lib/wx/doc/gen/evt_handler.rb +229 -0
  120. data/lib/wx/doc/gen/ext_help_controller.rb +109 -0
  121. data/lib/wx/doc/gen/file_ctrl.rb +231 -0
  122. data/lib/wx/doc/gen/file_ctrl_event.rb +83 -0
  123. data/lib/wx/doc/gen/file_dialog.rb +353 -0
  124. data/lib/wx/doc/gen/file_dialog_custom_control.rb +165 -0
  125. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +158 -0
  126. data/lib/wx/doc/gen/file_dir_picker_event.rb +100 -0
  127. data/lib/wx/doc/gen/file_picker_ctrl.rb +132 -0
  128. data/lib/wx/doc/gen/file_system.rb +232 -0
  129. data/lib/wx/doc/gen/find_dialog_event.rb +126 -0
  130. data/lib/wx/doc/gen/find_replace_data.rb +60 -0
  131. data/lib/wx/doc/gen/find_replace_dialog.rb +58 -0
  132. data/lib/wx/doc/gen/flex_grid_sizer.rb +199 -0
  133. data/lib/wx/doc/gen/font.rb +1379 -0
  134. data/lib/wx/doc/gen/font_data.rb +151 -0
  135. data/lib/wx/doc/gen/font_dialog.rb +88 -0
  136. data/lib/wx/doc/gen/font_picker_ctrl.rb +143 -0
  137. data/lib/wx/doc/gen/font_picker_event.rb +65 -0
  138. data/lib/wx/doc/gen/frame.rb +352 -0
  139. data/lib/wx/doc/gen/fs_file.rb +337 -0
  140. data/lib/wx/doc/gen/functions.rb +10 -0
  141. data/lib/wx/doc/gen/gauge.rb +157 -0
  142. data/lib/wx/doc/gen/gb_sizer_item.rb +68 -0
  143. data/lib/wx/doc/gen/gcdc.rb +46 -0
  144. data/lib/wx/doc/gen/gdi_common.rb +1271 -0
  145. data/lib/wx/doc/gen/gdi_object.rb +31 -0
  146. data/lib/wx/doc/gen/generic_about_dialog.rb +140 -0
  147. data/lib/wx/doc/gen/generic_dir_ctrl.rb +223 -0
  148. data/lib/wx/doc/gen/geometry.rb +661 -0
  149. data/lib/wx/doc/gen/graphics_context.rb +1184 -0
  150. data/lib/wx/doc/gen/graphics_object.rb +750 -0
  151. data/lib/wx/doc/gen/grid/event_list.rb +191 -0
  152. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +40 -0
  153. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +280 -0
  154. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +35 -0
  155. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +37 -0
  156. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +49 -0
  157. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +35 -0
  158. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +46 -0
  159. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +38 -0
  160. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +45 -0
  161. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +40 -0
  162. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +197 -0
  163. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +39 -0
  164. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +44 -0
  165. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +45 -0
  166. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +79 -0
  167. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +46 -0
  168. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +35 -0
  169. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +108 -0
  170. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +35 -0
  171. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +49 -0
  172. data/lib/wx/doc/gen/grid/grid_ctrl.rb +3002 -0
  173. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +95 -0
  174. data/lib/wx/doc/gen/grid/grid_event.rb +129 -0
  175. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +104 -0
  176. data/lib/wx/doc/gen/grid/grid_size_event.rb +85 -0
  177. data/lib/wx/doc/gen/grid/grid_string_table.rb +142 -0
  178. data/lib/wx/doc/gen/grid/grid_table_base.rb +317 -0
  179. data/lib/wx/doc/gen/grid/grid_table_message.rb +81 -0
  180. data/lib/wx/doc/gen/grid_bag_sizer.rb +323 -0
  181. data/lib/wx/doc/gen/grid_sizer.rb +195 -0
  182. data/lib/wx/doc/gen/gui_event_loop.rb +159 -0
  183. data/lib/wx/doc/gen/h_scrolled_window.rb +562 -0
  184. data/lib/wx/doc/gen/header_ctrl.rb +880 -0
  185. data/lib/wx/doc/gen/header_ctrl_event.rb +133 -0
  186. data/lib/wx/doc/gen/help_controller.rb +195 -0
  187. data/lib/wx/doc/gen/help_provider.rb +98 -0
  188. data/lib/wx/doc/gen/html/event_list.rb +38 -0
  189. data/lib/wx/doc/gen/html/html_cell.rb +536 -0
  190. data/lib/wx/doc/gen/html/html_cell_event.rb +69 -0
  191. data/lib/wx/doc/gen/html/html_data_object.rb +42 -0
  192. data/lib/wx/doc/gen/html/html_easy_printing.rb +203 -0
  193. data/lib/wx/doc/gen/html/html_help_controller.rb +340 -0
  194. data/lib/wx/doc/gen/html/html_help_data.rb +159 -0
  195. data/lib/wx/doc/gen/html/html_help_window.rb +258 -0
  196. data/lib/wx/doc/gen/html/html_link_event.rb +41 -0
  197. data/lib/wx/doc/gen/html/html_list_box.rb +346 -0
  198. data/lib/wx/doc/gen/html/html_printout.rb +109 -0
  199. data/lib/wx/doc/gen/html/html_window.rb +461 -0
  200. data/lib/wx/doc/gen/hyperlink_ctrl.rb +311 -0
  201. data/lib/wx/doc/gen/hyperlink_event.rb +44 -0
  202. data/lib/wx/doc/gen/icon.rb +267 -0
  203. data/lib/wx/doc/gen/icon_location.rb +40 -0
  204. data/lib/wx/doc/gen/image.rb +1371 -0
  205. data/lib/wx/doc/gen/image_list.rb +168 -0
  206. data/lib/wx/doc/gen/info_bar.rb +195 -0
  207. data/lib/wx/doc/gen/keyboard_state.rb +140 -0
  208. data/lib/wx/doc/gen/list_box.rb +304 -0
  209. data/lib/wx/doc/gen/list_ctrl.rb +1774 -0
  210. data/lib/wx/doc/gen/list_event.rb +208 -0
  211. data/lib/wx/doc/gen/listbook.rb +116 -0
  212. data/lib/wx/doc/gen/locale.rb +4293 -0
  213. data/lib/wx/doc/gen/log.rb +603 -0
  214. data/lib/wx/doc/gen/mdi_client_window.rb +47 -0
  215. data/lib/wx/doc/gen/mdi_frame.rb +324 -0
  216. data/lib/wx/doc/gen/media_ctrl.rb +269 -0
  217. data/lib/wx/doc/gen/media_event.rb +117 -0
  218. data/lib/wx/doc/gen/memory_dc.rb +174 -0
  219. data/lib/wx/doc/gen/menu.rb +509 -0
  220. data/lib/wx/doc/gen/menu_bar.rb +287 -0
  221. data/lib/wx/doc/gen/menu_item.rb +362 -0
  222. data/lib/wx/doc/gen/message_dialog.rb +238 -0
  223. data/lib/wx/doc/gen/mini_frame.rb +108 -0
  224. data/lib/wx/doc/gen/mirror_dc.rb +22 -0
  225. data/lib/wx/doc/gen/mouse_state.rb +150 -0
  226. data/lib/wx/doc/gen/multi_choice_dialog.rb +80 -0
  227. data/lib/wx/doc/gen/non_owned_window.rb +49 -0
  228. data/lib/wx/doc/gen/notebook.rb +278 -0
  229. data/lib/wx/doc/gen/num_validator.rb +37 -0
  230. data/lib/wx/doc/gen/number_entry_dialog.rb +93 -0
  231. data/lib/wx/doc/gen/object.rb +59 -0
  232. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +395 -0
  233. data/lib/wx/doc/gen/paint_dc.rb +27 -0
  234. data/lib/wx/doc/gen/palette.rb +92 -0
  235. data/lib/wx/doc/gen/panel.rb +127 -0
  236. data/lib/wx/doc/gen/pen.rb +511 -0
  237. data/lib/wx/doc/gen/persistence_manager.rb +135 -0
  238. data/lib/wx/doc/gen/persistent_object.rb +52 -0
  239. data/lib/wx/doc/gen/persistent_window.rb +241 -0
  240. data/lib/wx/doc/gen/pg/event_list.rb +106 -0
  241. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +54 -0
  242. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +292 -0
  243. data/lib/wx/doc/gen/pg/pg_cell.rb +177 -0
  244. data/lib/wx/doc/gen/pg/pg_editor.rb +721 -0
  245. data/lib/wx/doc/gen/pg/pg_multi_button.rb +152 -0
  246. data/lib/wx/doc/gen/pg/pg_properties.rb +2829 -0
  247. data/lib/wx/doc/gen/pg/pg_property.rb +2078 -0
  248. data/lib/wx/doc/gen/pg/pg_validation_info.rb +344 -0
  249. data/lib/wx/doc/gen/pg/property_grid.rb +740 -0
  250. data/lib/wx/doc/gen/pg/property_grid_event.rb +184 -0
  251. data/lib/wx/doc/gen/pg/property_grid_interface.rb +1098 -0
  252. data/lib/wx/doc/gen/pg/property_grid_manager.rb +415 -0
  253. data/lib/wx/doc/gen/pg/property_grid_page.rb +354 -0
  254. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +165 -0
  255. data/lib/wx/doc/gen/picker_base.rb +152 -0
  256. data/lib/wx/doc/gen/platform_info.rb +622 -0
  257. data/lib/wx/doc/gen/popup_window.rb +107 -0
  258. data/lib/wx/doc/gen/progress_dialog.rb +100 -0
  259. data/lib/wx/doc/gen/property_sheet_dialog.rb +216 -0
  260. data/lib/wx/doc/gen/prt/event_list.rb +17 -0
  261. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +44 -0
  262. data/lib/wx/doc/gen/prt/post_script_dc.rb +30 -0
  263. data/lib/wx/doc/gen/prt/preview_frame.rb +78 -0
  264. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +151 -0
  265. data/lib/wx/doc/gen/prt/print_data.rb +804 -0
  266. data/lib/wx/doc/gen/prt/print_dialog.rb +55 -0
  267. data/lib/wx/doc/gen/prt/printer.rb +518 -0
  268. data/lib/wx/doc/gen/prt/printer_dc.rb +37 -0
  269. data/lib/wx/doc/gen/query_layout_info_event.rb +106 -0
  270. data/lib/wx/doc/gen/radio_box.rb +306 -0
  271. data/lib/wx/doc/gen/radio_button.rb +159 -0
  272. data/lib/wx/doc/gen/rbn/event_list.rb +136 -0
  273. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1132 -0
  274. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +308 -0
  275. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +45 -0
  276. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +458 -0
  277. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +63 -0
  278. data/lib/wx/doc/gen/rbn/ribbon_control.rb +143 -0
  279. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +229 -0
  280. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +55 -0
  281. data/lib/wx/doc/gen/rbn/ribbon_page.rb +174 -0
  282. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +270 -0
  283. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +45 -0
  284. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +360 -0
  285. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +42 -0
  286. data/lib/wx/doc/gen/rearrange_ctrl.rb +78 -0
  287. data/lib/wx/doc/gen/rearrange_list.rb +123 -0
  288. data/lib/wx/doc/gen/region.rb +380 -0
  289. data/lib/wx/doc/gen/region_iterator.rb +76 -0
  290. data/lib/wx/doc/gen/rich_tool_tip.rb +154 -0
  291. data/lib/wx/doc/gen/rtc/event_list.rb +125 -0
  292. data/lib/wx/doc/gen/rtc/rich_text_box.rb +445 -0
  293. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1188 -0
  294. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +41 -0
  295. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +538 -0
  296. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2103 -0
  297. data/lib/wx/doc/gen/rtc/rich_text_event.rb +173 -0
  298. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +181 -0
  299. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +319 -0
  300. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +193 -0
  301. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +102 -0
  302. data/lib/wx/doc/gen/rtc/rich_text_image.rb +337 -0
  303. data/lib/wx/doc/gen/rtc/rich_text_object.rb +2922 -0
  304. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1240 -0
  305. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +258 -0
  306. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +344 -0
  307. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +227 -0
  308. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +59 -0
  309. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +169 -0
  310. data/lib/wx/doc/gen/sash_event.rb +147 -0
  311. data/lib/wx/doc/gen/sash_layout_window.rb +232 -0
  312. data/lib/wx/doc/gen/sash_window.rb +171 -0
  313. data/lib/wx/doc/gen/scaled_dc.rb +10 -0
  314. data/lib/wx/doc/gen/screen_dc.rb +30 -0
  315. data/lib/wx/doc/gen/scroll_bar.rb +204 -0
  316. data/lib/wx/doc/gen/scrolled_canvas.rb +410 -0
  317. data/lib/wx/doc/gen/scrolled_control.rb +410 -0
  318. data/lib/wx/doc/gen/scrolled_window.rb +430 -0
  319. data/lib/wx/doc/gen/search_ctrl.rb +159 -0
  320. data/lib/wx/doc/gen/secret_store.rb +116 -0
  321. data/lib/wx/doc/gen/simplebook.rb +110 -0
  322. data/lib/wx/doc/gen/single_choice_dialog.rb +89 -0
  323. data/lib/wx/doc/gen/sizer.rb +945 -0
  324. data/lib/wx/doc/gen/sizer_item.rb +244 -0
  325. data/lib/wx/doc/gen/slider.rb +342 -0
  326. data/lib/wx/doc/gen/spin_button.rb +157 -0
  327. data/lib/wx/doc/gen/spin_ctrl.rb +231 -0
  328. data/lib/wx/doc/gen/spin_ctrl_double.rb +192 -0
  329. data/lib/wx/doc/gen/spin_double_event.rb +55 -0
  330. data/lib/wx/doc/gen/spin_event.rb +51 -0
  331. data/lib/wx/doc/gen/splash_screen.rb +113 -0
  332. data/lib/wx/doc/gen/splitter_event.rb +99 -0
  333. data/lib/wx/doc/gen/splitter_window.rb +498 -0
  334. data/lib/wx/doc/gen/static_bitmap.rb +256 -0
  335. data/lib/wx/doc/gen/static_box.rb +180 -0
  336. data/lib/wx/doc/gen/static_box_sizer.rb +85 -0
  337. data/lib/wx/doc/gen/static_line.rb +83 -0
  338. data/lib/wx/doc/gen/static_text.rb +127 -0
  339. data/lib/wx/doc/gen/status_bar.rb +290 -0
  340. data/lib/wx/doc/gen/stc/event_list.rb +221 -0
  341. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4474 -0
  342. data/lib/wx/doc/gen/stc/styled_text_event.rb +8762 -0
  343. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +129 -0
  344. data/lib/wx/doc/gen/svg_file_dc.rb +164 -0
  345. data/lib/wx/doc/gen/system_options.rb +129 -0
  346. data/lib/wx/doc/gen/system_settings.rb +507 -0
  347. data/lib/wx/doc/gen/task_bar_icon.rb +127 -0
  348. data/lib/wx/doc/gen/task_bar_icon_event.rb +88 -0
  349. data/lib/wx/doc/gen/text_attr.rb +756 -0
  350. data/lib/wx/doc/gen/text_ctrl.rb +1033 -0
  351. data/lib/wx/doc/gen/text_entry.rb +441 -0
  352. data/lib/wx/doc/gen/text_entry_dialog.rb +220 -0
  353. data/lib/wx/doc/gen/text_validator.rb +245 -0
  354. data/lib/wx/doc/gen/time_picker_ctrl.rb +128 -0
  355. data/lib/wx/doc/gen/timer.rb +119 -0
  356. data/lib/wx/doc/gen/timer_event.rb +68 -0
  357. data/lib/wx/doc/gen/tip_provider.rb +63 -0
  358. data/lib/wx/doc/gen/tip_window.rb +51 -0
  359. data/lib/wx/doc/gen/toggle_button.rb +182 -0
  360. data/lib/wx/doc/gen/tool_bar.rb +890 -0
  361. data/lib/wx/doc/gen/tool_tip.rb +86 -0
  362. data/lib/wx/doc/gen/toolbook.rb +118 -0
  363. data/lib/wx/doc/gen/top_level_window.rb +497 -0
  364. data/lib/wx/doc/gen/tree_ctrl.rb +1052 -0
  365. data/lib/wx/doc/gen/tree_event.rb +127 -0
  366. data/lib/wx/doc/gen/treebook.rb +180 -0
  367. data/lib/wx/doc/gen/ui_action_simulator.rb +109 -0
  368. data/lib/wx/doc/gen/utils.rb +273 -0
  369. data/lib/wx/doc/gen/v_list_box.rb +272 -0
  370. data/lib/wx/doc/gen/v_scrolled_canvas.rb +195 -0
  371. data/lib/wx/doc/gen/v_scrolled_window.rb +191 -0
  372. data/lib/wx/doc/gen/validator.rb +68 -0
  373. data/lib/wx/doc/gen/variant.rb +294 -0
  374. data/lib/wx/doc/gen/window.rb +2917 -0
  375. data/lib/wx/doc/gen/window_dc.rb +38 -0
  376. data/lib/wx/doc/gen/window_disabler.rb +30 -0
  377. data/lib/wx/doc/gen/with_images.rb +84 -0
  378. data/lib/wx/doc/gen/wizard.rb +257 -0
  379. data/lib/wx/doc/gen/wizard_event.rb +113 -0
  380. data/lib/wx/doc/gen/wizard_page.rb +65 -0
  381. data/lib/wx/doc/gen/wizard_page_simple.rb +88 -0
  382. data/lib/wx/doc/gen/wrap_sizer.rb +79 -0
  383. data/lib/wx/doc/gen/xml_node.rb +316 -0
  384. data/lib/wx/doc/gen/xml_resource.rb +320 -0
  385. data/lib/wx/doc/generic_validator.rb +5 -0
  386. data/lib/wx/doc/tip_window.rb +18 -6
  387. data/lib/wx/grid/events/evt_list.rb +166 -0
  388. data/lib/wx/html/events/evt_list.rb +27 -0
  389. data/lib/wx/html/simple_html_listbox.rb +46 -33
  390. data/lib/wx/keyword_defs.rb +9 -0
  391. data/lib/wx/pg/events/evt_list.rb +73 -0
  392. data/lib/wx/pg/pg_property.rb +26 -0
  393. data/lib/wx/pg/property_grid_interface.rb +2 -2
  394. data/lib/wx/rbn/events/evt_list.rb +102 -0
  395. data/lib/wx/rtc/events/evt_list.rb +98 -0
  396. data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -0
  397. data/lib/wx/stc/events/evt_list.rb +178 -0
  398. data/lib/wx/version.rb +1 -1
  399. data/lib/wx/wxruby/cmd/setup.rb +6 -0
  400. data/rakelib/configure.rb +9 -0
  401. data/rakelib/gem.rake +3 -2
  402. data/rakelib/lib/config/linux.rb +1 -1
  403. data/rakelib/lib/config/macosx.rb +15 -1
  404. data/rakelib/lib/config/pkgman/linux.rb +7 -2
  405. data/rakelib/lib/config/unixish.rb +3 -3
  406. data/rakelib/lib/config.rb +16 -5
  407. data/rakelib/lib/core/include/swigdirector.inc +3 -3
  408. data/rakelib/lib/core/include/swigrubyerrors.inc +4 -8
  409. data/rakelib/lib/core/include/swigrubyrun.inc +20 -4
  410. data/rakelib/lib/core/include/swigrun.inc +189 -0
  411. data/rakelib/lib/core/package.rb +3 -1
  412. data/rakelib/lib/director/accelerator.rb +1 -1
  413. data/rakelib/lib/director/animation.rb +1 -0
  414. data/rakelib/lib/director/app_traits.rb +1 -1
  415. data/rakelib/lib/director/aui_manager.rb +21 -14
  416. data/rakelib/lib/director/aui_mdi_child_frame.rb +2 -0
  417. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -0
  418. data/rakelib/lib/director/aui_notebook.rb +20 -3
  419. data/rakelib/lib/director/aui_tab_ctrl.rb +64 -106
  420. data/rakelib/lib/director/calendar_ctrl.rb +72 -14
  421. data/rakelib/lib/director/clipboard.rb +2 -0
  422. data/rakelib/lib/director/data_object.rb +15 -7
  423. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  424. data/rakelib/lib/director/display.rb +81 -0
  425. data/rakelib/lib/director/event.rb +33 -16
  426. data/rakelib/lib/director/event_handler.rb +27 -2
  427. data/rakelib/lib/director/functions.rb +9 -0
  428. data/rakelib/lib/director/geometry.rb +5 -0
  429. data/rakelib/lib/director/grid_ctrl.rb +123 -28
  430. data/rakelib/lib/director/help_provider.rb +1 -1
  431. data/rakelib/lib/director/html_listbox.rb +16 -3
  432. data/rakelib/lib/director/hvscrolled.rb +7 -106
  433. data/rakelib/lib/director/image_list.rb +1 -0
  434. data/rakelib/lib/director/mdi_frame.rb +4 -0
  435. data/rakelib/lib/director/menu.rb +56 -15
  436. data/rakelib/lib/director/menu_bar.rb +62 -0
  437. data/rakelib/lib/director/menu_item.rb +7 -1
  438. data/rakelib/lib/director/num_validator.rb +27 -0
  439. data/rakelib/lib/director/numeric_property_validator.rb +9 -0
  440. data/rakelib/lib/director/popup_window.rb +2 -0
  441. data/rakelib/lib/director/preview_frame.rb +29 -6
  442. data/rakelib/lib/director/printer.rb +59 -5
  443. data/rakelib/lib/director/property_grid.rb +37 -18
  444. data/rakelib/lib/director/property_grid_interface.rb +10 -8
  445. data/rakelib/lib/director/property_grid_manager.rb +99 -39
  446. data/rakelib/lib/director/property_grid_page.rb +60 -0
  447. data/rakelib/lib/director/rich_tooltip.rb +22 -0
  448. data/rakelib/lib/director/richtext_ctrl.rb +5 -0
  449. data/rakelib/lib/director/richtext_object.rb +13 -4
  450. data/rakelib/lib/director/richtext_style_listbox.rb +4 -1
  451. data/rakelib/lib/director/scrolled_t.rb +3 -0
  452. data/rakelib/lib/director/searchctrl.rb +1 -0
  453. data/rakelib/lib/director/task_bar_icon.rb +14 -8
  454. data/rakelib/lib/director/text_validator.rb +9 -0
  455. data/rakelib/lib/director/tip_window.rb +117 -6
  456. data/rakelib/lib/director/tool_bar.rb +6 -0
  457. data/rakelib/lib/director/validator.rb +12 -0
  458. data/rakelib/lib/director/variant.rb +36 -20
  459. data/rakelib/lib/director/vlistbox.rb +25 -22
  460. data/rakelib/lib/director/window.rb +10 -1
  461. data/rakelib/lib/director/xml_resource.rb +6 -0
  462. data/rakelib/lib/generate/doc/aui_manager.yaml +1 -1
  463. data/rakelib/lib/generate/doc/rich_tool_tip.yaml +26 -0
  464. data/rakelib/lib/generate/doc.rb +12 -7
  465. data/rakelib/lib/generate/interface.rb +16 -1
  466. data/rakelib/lib/specs/interfaces.rb +3 -1
  467. data/rakelib/lib/swig_runner.rb +10 -10
  468. data/rakelib/lib/typemap/aui_tabctrl.rb +46 -0
  469. data/rakelib/lib/typemap/common.rb +3 -3
  470. data/rakelib/lib/typemap/print_page_range.rb +32 -8
  471. data/samples/art/wxruby-512x512.png +0 -0
  472. data/samples/calendar/calendar.rb +64 -1
  473. data/samples/dialogs/dialogs.rb +172 -0
  474. data/samples/dialogs/tip.xpm +157 -0
  475. data/samples/drawing/maths_images.rb +1 -1
  476. data/samples/event/event.rb +1 -1
  477. data/samples/printing/printing2.rb +1 -1
  478. data/samples/sampler.rb +26 -8
  479. data/samples/text/textctrl.rb +2 -2
  480. data/samples/treectrl/treectrl.rb +2 -2
  481. data/tests/lib/leaked_process_event_exception_test.rb +1 -1
  482. data/tests/lib/leaked_queued_event_exception_test.rb +1 -1
  483. data/tests/lib/wxapp_runner.rb +31 -41
  484. data/tests/lib/wxframe_runner.rb +23 -11
  485. data/tests/lib/wxrb_test.rb +58 -0
  486. data/tests/test_app_event_filter.rb +1 -1
  487. data/tests/test_app_exit_exception.rb +3 -3
  488. data/tests/test_app_init_exception.rb +3 -3
  489. data/tests/test_app_traits.rb +24 -21
  490. data/tests/test_art.rb +7 -7
  491. data/tests/test_art_provider.rb +1 -1
  492. data/tests/test_basic.rb +2 -2
  493. data/tests/test_book_controls.rb +1 -1
  494. data/tests/test_box_sizer.rb +1 -1
  495. data/tests/test_clipboard.rb +5 -5
  496. data/tests/test_combo_ctrl.rb +2 -2
  497. data/tests/test_config.rb +11 -1
  498. data/tests/test_dc.rb +1 -1
  499. data/tests/test_dialog.rb +1 -1
  500. data/tests/test_event_handling.rb +1 -1
  501. data/tests/test_events.rb +1 -1
  502. data/tests/test_exceptions.rb +2 -2
  503. data/tests/test_ext_controls.rb +10 -10
  504. data/tests/test_file_dialog.rb +1 -1
  505. data/tests/test_font.rb +1 -1
  506. data/tests/test_gdi_object.rb +1 -1
  507. data/tests/test_geometry.rb +2 -2
  508. data/tests/test_grid_sizer.rb +2 -2
  509. data/tests/test_intl.rb +1 -1
  510. data/tests/test_item_data.rb +12 -12
  511. data/tests/test_list_ctrl.rb +1 -1
  512. data/tests/test_log.rb +2 -2
  513. data/tests/test_media_ctrl.rb +1 -1
  514. data/tests/test_menu.rb +114 -43
  515. data/tests/test_proof_check.rb +1 -1
  516. data/tests/test_propgrid.rb +31 -31
  517. data/tests/test_richtext.rb +10 -24
  518. data/tests/test_secret_store.rb +1 -1
  519. data/tests/test_sizer.rb +1 -1
  520. data/tests/test_std_controls.rb +8 -8
  521. data/tests/test_styled_text_ctrl.rb +1 -1
  522. data/tests/test_timer.rb +1 -1
  523. data/tests/test_tree_ctrl.rb +1 -1
  524. data/tests/test_validators.rb +79 -36
  525. data/tests/test_variant.rb +1 -1
  526. data/tests/test_window.rb +11 -11
  527. data/tests/testapp.rb +2 -2
  528. data/tests/testapp_noframe.rb +2 -2
  529. metadata +400 -11
  530. data/lib/wx/aui/aui_tab_ctrl.rb +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25ead08d281891ae9ad295a8181908c163677a4b9e0686249185941866118d49
4
- data.tar.gz: 552bef0440f00907f30b273411dbfed19b8430bfbf49538efac2cd6104e6021b
3
+ metadata.gz: 29b2e3949b365c4778d3b537d91f6b227361bcc3f978fa2c92bdea5e2c81390c
4
+ data.tar.gz: 58e28a379655680b2c7b5ac147436f154102bc551d356b8bd2d4f7a57249fa2f
5
5
  SHA512:
6
- metadata.gz: 598918c1e5d613797115ede72de7cc8024bf6468ee81a51b567297c153df12da11390740fca827b67c15dae9e2e874b38969088bf27e808b644fc810abb1a6c0
7
- data.tar.gz: bf26ee5eebeef682e88831df0a0bb7b260138e4cae2c6f41425a327133c7f60fce0b5897bb722b5eb05acbdbefa92fb6e860235d2942cd0e35ef42919ca2354d
6
+ metadata.gz: fa954320cb8c4a44872a78fe5c5da098d5b15667b93b3d9b6f24839fb17a04e42b2d4ccd8eed502407a0eed348cba08da19abdeaab99d8121c5e49674b931227
7
+ data.tar.gz: 7dd47c4496313f52a56ac7387ac195ad4a54ce5758b9015bb92eb5a6a7d8a98b27d8d9b96f06aa12850d613e74e51147fe82a7bdfe5541466c179f73dd7c964d
data/CREDITS.md CHANGED
@@ -9,6 +9,13 @@ Martin Corino established the wxRuby3 project in 2022.
9
9
 
10
10
  Martin Corino: mcorino at m2c-software dot nl
11
11
 
12
+ ### Contributors
13
+
14
+ Andy Maleh \
15
+ Brandon Zylstra \
16
+ Johnny Willemsen \
17
+ Jacob Miner
18
+
12
19
  ## wxRuby 2
13
20
 
14
21
  In 2005 Kevin Smith established the wxRuby 2.0 project of which parts are still
@@ -19,31 +26,31 @@ feature requests.
19
26
  The alphabetic list shows (some of) those who've contributed code to
20
27
  wxRuby 2.0.
21
28
 
22
- Albin Holmgren
23
- Alex Fenton
24
- Artur Kuptel
25
- Cezar Espinola
26
- Chauk-Mean Proum
27
- Christophe Bludau
28
- Curt Hibbs
29
- Dale Edmons
30
- Daniel Savarese
31
- David Whetstone
32
- Dirk Traulsen
33
- Hawley Waldman
34
- Jani Monoses
35
- Joe Seeley
36
- Jonathan Maasland
37
- Kevin Smith
38
- Mario Steele
39
- Nic
40
- Pascal Hurni
41
- Robert Carlin
42
- Roy Sutton
43
- Ryuichi Sakamoto
44
- Sean Lindsay
45
- Sean Long
46
- Tobias Gruetzmacher
29
+ Albin Holmgren \
30
+ Alex Fenton \
31
+ Artur Kuptel \
32
+ Cezar Espinola \
33
+ Chauk-Mean Proum \
34
+ Christophe Bludau \
35
+ Curt Hibbs \
36
+ Dale Edmons \
37
+ Daniel Savarese \
38
+ David Whetstone \
39
+ Dirk Traulsen \
40
+ Hawley Waldman \
41
+ Jani Monoses \
42
+ Joe Seeley \
43
+ Jonathan Maasland \
44
+ Kevin Smith \
45
+ Mario Steele \
46
+ Nic \
47
+ Pascal Hurni \
48
+ Robert Carlin \
49
+ Roy Sutton \
50
+ Ryuichi Sakamoto \
51
+ Sean Lindsay \
52
+ Sean Long \
53
+ Tobias Gruetzmacher \
47
54
  Zach Dennis
48
55
 
49
56
  ## wxWidgets
data/INSTALL.md CHANGED
@@ -27,7 +27,7 @@ should always result in a successfully installed wxRuby3 version.
27
27
  > The user is therefor required to install a Ruby interpreter using either [MacPorts](https://www.macports.org/) (both
28
28
  > privileged and user installations are supported) or [Homebrew](https://brew.sh/) or Ruby installers/version managers
29
29
  > like [ruby-install](https://github.com/postmodern/ruby-install) or [RVM](https://rvm.io) (only user installations
30
- > supported) .
30
+ > supported) or [rbenv](https://rbenv.org).
31
31
 
32
32
  [Below](INSTALL.md#installing-software-requirements) more details regarding the software requirements for wxRuby3, the
33
33
  setup procedure and various options to tweak and customize the installation (including platform specific details for
@@ -78,8 +78,9 @@ The following tables lists the packages provided by the current wxRuby3 release
78
78
  | Linux | Debian (at least latest stable) | x86_64 <b>and</b> ARM64 | Distro provided Ruby <b>and</b> Latest stable Ruby |
79
79
  | Linux | Ubuntu (at least latest stable) | x86_64 <b>and</b> ARM64 | Distro provided Ruby <b>and</b> Latest stable Ruby |
80
80
  | Windows | NA | x86_64 | Latest stable Ruby |
81
- | OSX | MacOSX 13 | x86_64 <b>and</b> ARM64 | Latest stable Ruby |
82
- | OSX | MacOSX 14 | ARM64 | Latest stable Ruby |
81
+ | OSX | MacOS 14 | ARM64 | Latest stable Ruby |
82
+ | OSX | MacOS 15 | x86_64 <b>and</b> ARM64 | Latest stable Ruby |
83
+ | OSX | MacOS 26 | x86_64 <b>and</b> ARM64 | Latest stable Ruby |
83
84
 
84
85
  ### User created packages
85
86
 
@@ -336,7 +337,19 @@ the `--with-wxwin` option like this:
336
337
  wxruby setup --with-wxwin
337
338
  ```
338
339
 
339
- This will force the setup procedure to build and install an embedded wxWidgets version for wxRuby3.
340
+ This will force the setup procedure to build and install an embedded wxWidgets version for wxRuby3. By default the
341
+ latest stable wxWidgets release will be embedded.
342
+
343
+ #### Specify specific embedded wxWidgets release
344
+
345
+ When using `--with-wxwin` a specific wxWidgets release version can be specified like this:
346
+
347
+ ```shell
348
+ wxruby setup --with-wxwin --wxversion=3.2.9
349
+ ```
350
+
351
+ Note that both `--with-wxwin` and `--wxversion` are required. Also note that the release version must be specified
352
+ as '<major version nr>.<minor version number>.<release number>' without any 'v' (or other) prefix.
340
353
 
341
354
  #### Force embedded wxWidgets head installation
342
355
 
@@ -347,6 +360,8 @@ be started with the `--with-wxhead` option like this:
347
360
  wxruby setup --with-wxhead
348
361
  ```
349
362
 
363
+ Note that in this case `--with-wxwin` is implied.
364
+
350
365
  > **NOTE**<br>
351
366
  > Although wxRuby3 endeavors to keep up to date with the wxWidgets master branch your mileage may vary depending on
352
367
  > the development state of the wxWidgets master branch. You can check the latest results of the wxRuby3 CI master build
data/README.md CHANGED
@@ -99,11 +99,11 @@ of these products.
99
99
 
100
100
  Currently the following are fully supported:
101
101
 
102
- | Platform | Ruby version(s) | wxWidgets version(s) |
103
- |------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|----------------------|
104
- | Windows >= 10 | Ruby >= 2.7<br>(RubyInstaller MSYS2-DevKit) | wxWidgets >= 3.2 |
105
- | Linux (tested; all major AMD64 and ARM64 distributions: Ubuntu, Debian, Fedora, OpenSuSE and ArchLinux)<br>(most likely also i686) | Ruby >= 2.7 | wxWidgets >= 3.2 |
106
- | MacOS >= 10.10 using Cocoa (tested on AMD64 and ARM64 M1/M2 Chip) | Ruby >= 2.7 (MacPorts, Homebrew, ruby-install, RVM) | wxWidgets >= 3.2 |
102
+ | Platform | Ruby version(s) | wxWidgets version(s) |
103
+ |--------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|----------------------|
104
+ | Windows >= 10 | Ruby >= 2.7<br>(RubyInstaller MSYS2-DevKit) | wxWidgets >= 3.2 |
105
+ | Linux (tested; all major AMD64 and ARM64 distributions: Ubuntu, Debian, Fedora, OpenSuSE, LinuxMint, Manjaro and ArchLinux)<br>(most likely also i686) | Ruby >= 2.7 | wxWidgets >= 3.2 |
106
+ | MacOS >= 14 (MacOS 13 most likely also works) using Cocoa (tested on AMD64 and ARM64 M1/M2 Chip) | Ruby >= 2.7 (MacPorts, Homebrew, ruby-install, RVM, Rbenv) | wxWidgets >= 3.2 |
107
107
 
108
108
  Support for other platforms is not being actively developed at present,
109
109
  but patches are welcome. It is likely to be much simpler to get wxRuby
Binary file
Binary file
@@ -2,6 +2,10 @@
2
2
  //
3
3
  // This software is released under the MIT license.
4
4
 
5
+ WXRUBY_TRACE_GUARD(WxRubyTraceWinDestroy, "WINDOW_DESTROY")
6
+ WXRUBY_TRACE_GUARD(WxRubyTraceMarkApp, "GC_MARK_APP")
7
+ WXRUBY_TRACE_GUARD(WxRubyTraceAppRun, "APP_RUN")
8
+
5
9
  #include <memory>
6
10
 
7
11
  /*
@@ -35,16 +39,17 @@ public:
35
39
  void OnWindowDestroy(wxWindowDestroyEvent &event)
36
40
  {
37
41
  wxObject* wx_obj = event.GetEventObject();
38
- #ifdef __WXRB_DEBUG__
39
- if (wxRuby_TraceLevel()>0)
40
- std::wcout << "<= OnWindowDestroy [" << wx_obj << "]" << std::endl;
41
- #endif
42
+
43
+ WXRUBY_TRACE_IF(WxRubyTraceWinDestroy, 1)
44
+ WXRUBY_TRACE("< OnWindowDestroy [" << wx_obj << "]")
45
+ WXRUBY_TRACE_END
46
+
42
47
  GC_SetWindowDeleted((void *)wx_obj);
43
48
  event.Skip();
44
- #ifdef __WXRB_DEBUG__
45
- if (wxRuby_TraceLevel()>0)
46
- std::wcout << "=> OnWindowDestroy [" << wx_obj << "]" << std::endl;
47
- #endif
49
+
50
+ WXRUBY_TRACE_IF(WxRubyTraceWinDestroy, 1)
51
+ WXRUBY_TRACE("> OnWindowDestroy [" << wx_obj << "]")
52
+ WXRUBY_TRACE_END
48
53
  }
49
54
 
50
55
  bool IsRunning() const { return this->is_running_; }
@@ -83,11 +88,9 @@ public:
83
88
  // Wx::THE_APP is a constant so always checked in GC mark phase.
84
89
  static void mark_wxRubyApp(void *ptr)
85
90
  {
86
-
87
- #ifdef __WXRB_DEBUG__
88
- if (wxRuby_TraceLevel()>0)
89
- std::wcout << "=== Starting App GC mark phase" << std::endl;
90
- #endif
91
+ WXRUBY_TRACE_IF(WxRubyTraceMarkApp, 1)
92
+ WXRUBY_TRACE(">=== Starting App GC mark phase")
93
+ WXRUBY_TRACE_END
91
94
 
92
95
  // If the App has ended, the ruby object will have been unlinked from
93
96
  // the C++ one; this implies that all Windows have already been destroyed
@@ -95,10 +98,9 @@ public:
95
98
  // errors.
96
99
  if ( !wxRubyApp::GetInstance() || !wxRubyApp::GetInstance()->IsRunning() )
97
100
  {
98
- #ifdef __WXRB_DEBUG__
99
- if (wxRuby_TraceLevel()>0)
100
- std::wcout << "=== App not started yet or has ended, skipping mark phase" << std::endl;
101
- #endif
101
+ WXRUBY_TRACE_IF(WxRubyTraceMarkApp, 1)
102
+ WXRUBY_TRACE("<=== App not started yet or has ended, skipping mark phase")
103
+ WXRUBY_TRACE_END
102
104
  return;
103
105
  }
104
106
 
@@ -125,10 +127,9 @@ public:
125
127
  // list of tracked objects
126
128
  wxRuby_IterateTracking(&wxRubyApp::markIterate);
127
129
 
128
- #ifdef __WXRB_DEBUG__
129
- if (wxRuby_TraceLevel()>0)
130
- std::wcout << "=== App GC mark phase completed" << std::endl;
131
- #endif
130
+ WXRUBY_TRACE_IF(WxRubyTraceMarkApp, 1)
131
+ WXRUBY_TRACE("<=== App GC mark phase completed")
132
+ WXRUBY_TRACE_END
132
133
  }
133
134
 
134
135
  // This is the method run when main_loop is called in Ruby
@@ -155,10 +156,9 @@ public:
155
156
  this->Connect(wxEVT_DESTROY,
156
157
  wxWindowDestroyEventHandler(wxRubyApp::OnWindowDestroy));
157
158
 
158
- #ifdef __WXRB_DEBUG__
159
- if (wxRuby_TraceLevel()>0)
160
- std::wcout << "Calling wxEntry, this=" << this << std::endl;
161
- #endif
159
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
160
+ WXRUBY_TRACE("> main_loop : Calling wxEntry, this=" << this)
161
+ WXRUBY_TRACE_END
162
162
 
163
163
  // collect ruby app name and arguments array
164
164
  VALUE rb_args = rb_get_argv();
@@ -184,15 +184,13 @@ public:
184
184
  it or any of it's members anymore but only unroll the callstack.
185
185
  */
186
186
 
187
- #ifdef __WXRB_DEBUG__
188
- if (wxRuby_TraceLevel()>0)
189
- std::wcout << "returned from wxEntry..." << std::endl;
190
- #endif
187
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
188
+ WXRUBY_TRACE("| main_loop : returned from wxEntry...")
189
+ WXRUBY_TRACE_END
191
190
  rb_gc_start();
192
- #ifdef __WXRB_DEBUG__
193
- if (wxRuby_TraceLevel()>0)
194
- std::wcout << "survived gc" << std::endl;
195
- #endif
191
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
192
+ WXRUBY_TRACE("| main_loop : survived gc")
193
+ WXRUBY_TRACE_END
196
194
 
197
195
  rb_const_remove(mWxCore, rb_intern("THE_APP"));
198
196
 
@@ -201,6 +199,11 @@ public:
201
199
  {
202
200
  rb_exc_raise(exc);
203
201
  }
202
+
203
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
204
+ WXRUBY_TRACE("< main_loop")
205
+ WXRUBY_TRACE_END
206
+
204
207
  return rc;
205
208
  }
206
209
 
@@ -210,10 +213,9 @@ public:
210
213
  // be initialized any earlier than this without crashing
211
214
  bool OnInit() override
212
215
  {
213
- #ifdef __WXRB_DEBUG__
214
- if (wxRuby_TraceLevel()>0)
215
- std::wcout << "OnInit..." << std::endl;
216
- #endif
216
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
217
+ WXRUBY_TRACE("> OnInit")
218
+ WXRUBY_TRACE_END
217
219
 
218
220
  if (!wxApp::OnInit())
219
221
  return false;
@@ -236,6 +238,10 @@ public:
236
238
  result = Qfalse; // exit app
237
239
  }
238
240
 
241
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
242
+ WXRUBY_TRACE("< OnInit -> " << ((result == Qfalse || result == Qnil) ? "false" : "true"))
243
+ WXRUBY_TRACE_END
244
+
239
245
  // If on_init return any (ruby) true value, signal to wxWidgets to
240
246
  // enter the main event loop by returning true, else return false
241
247
  // which will make wxWidgets exit.
@@ -252,10 +258,9 @@ public:
252
258
 
253
259
  int OnExit() override
254
260
  {
255
- #ifdef __WXRB_DEBUG__
256
- if (wxRuby_TraceLevel()>0)
257
- std::wcout << "OnExit..." << std::endl;
258
- #endif
261
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
262
+ WXRUBY_TRACE("> OnExit")
263
+ WXRUBY_TRACE_END
259
264
 
260
265
  // Get the ruby representation of the App object, and call the
261
266
  // ruby on_exit method (if any) for application level cleanup
@@ -276,6 +281,10 @@ public:
276
281
  // perform wxRuby cleanup
277
282
  _wxRuby_Cleanup();
278
283
 
284
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 1)
285
+ WXRUBY_TRACE("< OnExit")
286
+ WXRUBY_TRACE_END
287
+
279
288
  // execute base wxWidgets functionality
280
289
  return this->wxApp::OnExit();
281
290
  }
@@ -308,10 +317,10 @@ public:
308
317
 
309
318
  void _wxRuby_Cleanup()
310
319
  {
311
- #ifdef __WXRB_DEBUG__
312
- if (wxRuby_TraceLevel()>0)
313
- std::wcout << "wxRuby_Cleanup..." << std::endl;
314
- #endif
320
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 2)
321
+ WXRUBY_TRACE("> _wxRuby_Cleanup")
322
+ WXRUBY_TRACE_END
323
+
315
324
  // Note in a global variable that the App has ended, so that we
316
325
  // can skip any GC marking later
317
326
  this->is_running_ = false;
@@ -334,5 +343,9 @@ public:
334
343
  SWIG_RubyRemoveTracking(oldlog);
335
344
  delete oldlog;
336
345
  }
346
+
347
+ WXRUBY_TRACE_IF(WxRubyTraceAppRun, 2)
348
+ WXRUBY_TRACE("< _wxRuby_Cleanup")
349
+ WXRUBY_TRACE_END
337
350
  }
338
351
  };
@@ -39,8 +39,85 @@ private:
39
39
 
40
40
  // Exported runtime helper methods
41
41
 
42
+ // Debug tracing support
42
43
  #ifdef __WXRB_DEBUG__
43
- WXRUBY_EXPORT int wxRuby_TraceLevel();
44
+ #include <cstdlib>
45
+ #include <string>
46
+ #include <algorithm>
47
+ #include <ctype.h>
48
+
49
+ class WxRubyTraceGuard
50
+ {
51
+ public:
52
+ WxRubyTraceGuard(const std::string& trace_id)
53
+ {
54
+ std::string trace_env_id = to_uppercase(trace_id);
55
+ while (!trace_env_id.empty())
56
+ {
57
+ // see if we can find a trace setting which starts with 'WXRUBY_TRACE_'
58
+ // followed by the trace id
59
+ std::string trace_env_var = std::string("WXRUBY_TRACE_") + trace_env_id;
60
+ char* env_val = std::getenv(trace_env_var.c_str());
61
+ if (env_val)
62
+ {
63
+ // trace setting found
64
+ this->_trace_lvl = std::atoi(env_val);
65
+ break; // done
66
+ }
67
+ // see if there is a parent trace category we can check
68
+ std::string::size_type offs = trace_env_id.find_last_of('_');
69
+ if (offs != std::string::npos )
70
+ {
71
+ // reduce the id to possible parent category
72
+ trace_env_id = trace_env_id.substr(0, offs);
73
+ }
74
+
75
+ if (offs == std::string::npos || trace_env_id.empty())
76
+ {
77
+ // check for global tracing
78
+ env_val = std::getenv("WXRUBY_TRACE");
79
+ if (env_val)
80
+ {
81
+ // trace setting found
82
+ this->_trace_lvl = std::atoi(env_val);
83
+ }
84
+ break; // done
85
+ }
86
+ }
87
+ }
88
+
89
+ int trace_level() { return this->_trace_lvl; }
90
+
91
+ private:
92
+ std::string to_uppercase(std::string s)
93
+ {
94
+ std::transform(s.begin(), s.end(), s.begin(), [](unsigned char c){ return std::toupper(c); });
95
+ return s;
96
+ }
97
+
98
+ int _trace_lvl {};
99
+ };
100
+
101
+ #define WXRUBY_TRACE_GUARD(name, trace_id) static WxRubyTraceGuard name (trace_id);
102
+
103
+ #define WXRUBY_TRACE_IF(__trace_guard__, __level__) \
104
+ if (__trace_guard__.trace_level() >= __level__) {
105
+
106
+ #define WXRUBY_TRACE_WITH(__stmt__) __stmt__ ;
107
+
108
+ #define WXRUBY_TRACE(__stmt__) \
109
+ std::wcout << __stmt__ << std::endl;
110
+
111
+ #define WXRUBY_TRACE_END }
112
+
113
+ #else
114
+
115
+ #define WXRUBY_TRACE_GUARD(name, trace_id)
116
+ #define WXRUBY_TRACE_IF(__trace_guard__, __level__)
117
+ #define WXRUBY_TRACE_WITH(__stmt__)
118
+ #define WXRUBY_TRACE(__stmt__)
119
+ #define WXRUBY_TRACE_END
120
+
44
121
  #endif
45
122
 
46
123
  WXRUBY_EXPORT VALUE wxRuby_Funcall(VALUE rcvr, ID func, int argc, ...);
@@ -134,8 +134,8 @@
134
134
  #include <wx/variant.h>
135
135
  #endif
136
136
 
137
- #if ! wxCHECK_VERSION(3,1,5)
138
- #error "This version of wxRuby requires WxWidgets 3.1.5 or greater"
137
+ #if ! wxCHECK_VERSION(3,2,0)
138
+ #error "This version of wxRuby requires WxWidgets 3.2.0 or greater"
139
139
  #endif
140
140
 
141
141
  #include "wxruby-runtime.h"
@@ -109,7 +109,7 @@ namespace Swig {
109
109
  void setup_error(VALUE error);
110
110
 
111
111
  public:
112
- virtual ~DirectorException() throw();
112
+ virtual ~DirectorException() SWIG_NOEXCEPT;
113
113
 
114
114
  VALUE getType() const
115
115
  {
@@ -127,7 +127,7 @@ namespace Swig {
127
127
  return swig_msg;
128
128
  }
129
129
 
130
- const char *what() const throw()
130
+ const char *what() const SWIG_NOEXCEPT
131
131
  {
132
132
  return swig_msg.c_str();
133
133
  }
@@ -7,6 +7,8 @@
7
7
 
8
8
  /* auxiliary ruby fail method */
9
9
 
10
+ // SWIG < 4.4.0
11
+ #if SWIG_VERSION < 0x040400
10
12
  %fragment("SWIG_ruby_failed","header")
11
13
  {
12
14
  SWIGINTERN VALUE
@@ -15,18 +17,16 @@ SWIG_ruby_failed(void)
15
17
  return Qnil;
16
18
  }
17
19
  }
18
-
19
- %define %ruby_aux_method(Type, Method, Action)
20
- SWIGINTERN VALUE SWIG_AUX_##Method##(VALUE *args)
20
+ #else
21
+ %fragment("SWIG_ruby_failed","header")
21
22
  {
22
- VALUE obj = args[0];
23
- VALUE type = TYPE(obj);
24
- Type *res = (Type *)(args[1]);
25
- *res = Action;
26
- return obj;
23
+ SWIGINTERN VALUE
24
+ SWIG_ruby_failed(VALUE SWIGUNUSEDPARM(arg1), VALUE SWIGUNUSEDPARM(arg2))
25
+ {
26
+ return Qnil;
27
27
  }
28
- %enddef
29
-
28
+ }
29
+ #endif
30
30
 
31
31
  /* boolean */
32
32
 
@@ -68,7 +68,14 @@ SWIG_AsVal_dec(bool)(VALUE obj, bool *val)
68
68
  }
69
69
 
70
70
  %fragment(SWIG_AsVal_frag(long),"header",fragment="SWIG_ruby_failed") {
71
- %ruby_aux_method(long, NUM2LONG, (type != T_BIGNUM) ? NUM2LONG(obj) : rb_big2long(obj))
71
+ SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE* args)
72
+ {
73
+ VALUE obj = args[0];
74
+ VALUE type = TYPE(obj);
75
+ long *res = (long *)(args[1]);
76
+ *res = (type != T_BIGNUM) ? NUM2LONG(obj) : rb_big2long(obj);
77
+ return obj;
78
+ }
72
79
 
73
80
  SWIGINTERN int
74
81
  SWIG_AsVal_dec(long)(VALUE obj, long* val)
@@ -100,7 +107,14 @@ SWIG_From_dec(unsigned long)(unsigned long value)
100
107
  }
101
108
 
102
109
  %fragment(SWIG_AsVal_frag(unsigned long),"header",fragment="SWIG_ruby_failed") {
103
- %ruby_aux_method(unsigned long, NUM2ULONG, (type != T_BIGNUM) ? NUM2ULONG(obj) : rb_big2ulong(obj))
110
+ SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE* args)
111
+ {
112
+ VALUE obj = args[0];
113
+ VALUE type = TYPE(obj);
114
+ unsigned long *res = (unsigned long *)(args[1]);
115
+ *res = (type != T_BIGNUM) ? NUM2ULONG(obj) : rb_big2ulong(obj);
116
+ return obj;
117
+ }
104
118
 
105
119
  SWIGINTERN int
106
120
  SWIG_AsVal_dec(unsigned long)(VALUE obj, unsigned long *val)
@@ -112,6 +126,10 @@ SWIG_AsVal_dec(unsigned long)(VALUE obj, unsigned long *val)
112
126
  a[0] = obj;
113
127
  a[1] = (VALUE)(&v);
114
128
  if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2ULONG), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) {
129
+ #if SWIG_VERSION >= 0x040400
130
+ if (rb_funcall(obj, swig_lowerthan_id, 1, INT2FIX(0)) != Qfalse)
131
+ return SWIG_OverflowError;
132
+ #endif
115
133
  if (val) *val = v;
116
134
  return SWIG_OK;
117
135
  }
@@ -138,7 +156,14 @@ SWIG_From_dec(long long)(long long value)
138
156
  fragment="SWIG_ruby_failed",
139
157
  fragment="SWIG_LongLongAvailable") {
140
158
  %#ifdef SWIG_LONG_LONG_AVAILABLE
141
- %ruby_aux_method(long long, NUM2LL, (type != T_BIGNUM) ? NUM2LL(obj) : rb_big2ll(obj))
159
+ SWIGINTERN VALUE SWIG_AUX_NUM2LL(VALUE* args)
160
+ {
161
+ VALUE obj = args[0];
162
+ VALUE type = TYPE(obj);
163
+ long long *res = (long long *)(args[1]);
164
+ *res = (type != T_BIGNUM) ? NUM2LL(obj) : rb_big2ll(obj);
165
+ return obj;
166
+ }
142
167
 
143
168
  SWIGINTERN int
144
169
  SWIG_AsVal_dec(long long)(VALUE obj, long long *val)
@@ -176,7 +201,14 @@ SWIG_From_dec(unsigned long long)(unsigned long long value)
176
201
  fragment="SWIG_ruby_failed",
177
202
  fragment="SWIG_LongLongAvailable") {
178
203
  %#ifdef SWIG_LONG_LONG_AVAILABLE
179
- %ruby_aux_method(long long, NUM2ULL, (type != T_BIGNUM) ? NUM2ULL(obj) : rb_big2ull(obj))
204
+ SWIGINTERN VALUE SWIG_AUX_NUM2ULL(VALUE* args)
205
+ {
206
+ VALUE obj = args[0];
207
+ VALUE type = TYPE(obj);
208
+ long long *res = (long long *)(args[1]);
209
+ *res = (type != T_BIGNUM) ? NUM2ULL(obj) : rb_big2ull(obj);
210
+ return obj;
211
+ }
180
212
 
181
213
  SWIGINTERN int
182
214
  SWIG_AsVal_dec(unsigned long long)(VALUE obj, unsigned long long *val)
@@ -188,6 +220,10 @@ SWIG_AsVal_dec(unsigned long long)(VALUE obj, unsigned long long *val)
188
220
  a[0] = obj;
189
221
  a[1] = (VALUE)(&v);
190
222
  if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2ULL), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) {
223
+ #if SWIG_VERSION >= 0x040400
224
+ if (rb_funcall(obj, swig_lowerthan_id, 1, INT2FIX(0)) != Qfalse)
225
+ return SWIG_OverflowError;
226
+ #endif
191
227
  if (val) *val = v;
192
228
  return SWIG_OK;
193
229
  }
@@ -204,7 +240,15 @@ SWIG_AsVal_dec(unsigned long long)(VALUE obj, unsigned long long *val)
204
240
  }
205
241
 
206
242
  %fragment(SWIG_AsVal_frag(double),"header",fragment="SWIG_ruby_failed") {
207
- %ruby_aux_method(double, NUM2DBL, NUM2DBL(obj); (void)type)
243
+ SWIGINTERN VALUE SWIG_AUX_NUM2DBL(VALUE* args)
244
+ {
245
+ //VALUE *args = (VALUE *)arg;
246
+ VALUE obj = args[0];
247
+ VALUE type = TYPE(obj);
248
+ double *res = (double *)(args[1]);
249
+ *res = NUM2DBL(obj); (void)type;
250
+ return obj;
251
+ }
208
252
 
209
253
  SWIGINTERN int
210
254
  SWIG_AsVal_dec(double)(VALUE obj, double *val)
@@ -77,6 +77,10 @@ typedef struct WXRUBY_EXPORT swig_class {
77
77
  int trackObjects;
78
78
  } swig_class;
79
79
 
80
+ #if SWIG_VERSION >= 0x040400
81
+ extern ID swig_lowerthan_id;
82
+ #endif
83
+
80
84
  /*
81
85
  If your swig extension is to be run within an embedded ruby and has
82
86
  director callbacks, you should set -DRUBY_EMBEDDED during compilation.
@@ -54,6 +54,10 @@ SWIGRUNTIMEINLINE void SWIG_RubyUnlinkObjects(void* ptr) {
54
54
  }
55
55
  }
56
56
 
57
+ SWIGRUNTIMEINLINE void SWIG_RubyIterateTrackings( void(*meth)(void* ptr, VALUE obj) ) {
58
+ wxRuby_IterateTracking(meth);
59
+ }
60
+
57
61
 
58
62
  #ifdef __cplusplus
59
63
  }