wxruby3 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. checksums.yaml +4 -4
  2. data/CREDITS.md +32 -25
  3. data/INSTALL.md +21 -6
  4. data/README.md +5 -5
  5. data/assets/repo-social-preview.odg +0 -0
  6. data/assets/repo-social-preview.xcf +0 -0
  7. data/ext/wxruby3/include/wxRubyApp.h +58 -45
  8. data/ext/wxruby3/include/wxruby-runtime.h +78 -1
  9. data/ext/wxruby3/swig/common.i +2 -2
  10. data/ext/wxruby3/swig/custom/director.swg +2 -2
  11. data/ext/wxruby3/swig/custom/rubyprimtypes.swg +59 -15
  12. data/ext/wxruby3/swig/custom/rubyrun.swg +4 -0
  13. data/ext/wxruby3/swig/custom/rubytracking.swg +4 -0
  14. data/ext/wxruby3/swig/custom/swiglabels.swg +129 -0
  15. data/ext/wxruby3/swig/custom/swigrun.swg +15 -0
  16. data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +20 -0
  17. data/ext/wxruby3/swig/mark_free_impl.i +154 -88
  18. data/ext/wxruby3/swig/memory_management.i +1 -0
  19. data/ext/wxruby3/swig/wx.i +73 -44
  20. data/lib/wx/aui/events/evt_list.rb +148 -0
  21. data/lib/wx/aui/require.rb +0 -1
  22. data/lib/wx/core/calendar_ctrl.rb +15 -0
  23. data/lib/wx/core/clipboard.rb +9 -13
  24. data/lib/wx/core/config.rb +1 -1
  25. data/lib/wx/core/events/evt_list.rb +1458 -0
  26. data/lib/wx/core/font/encoding.rb +113 -0
  27. data/lib/wx/core/generic_validator.rb +83 -31
  28. data/lib/wx/core/tipwindow.rb +16 -0
  29. data/lib/wx/core/variant.rb +6 -0
  30. data/lib/wx/doc/aui/auitabctrl.rb +35 -0
  31. data/lib/wx/doc/config.rb +2 -2
  32. data/lib/wx/doc/functions.rb +1 -1
  33. data/lib/wx/doc/gen/about_dialog_info.rb +330 -0
  34. data/lib/wx/doc/gen/accelerator.rb +178 -0
  35. data/lib/wx/doc/gen/activity_indicator.rb +83 -0
  36. data/lib/wx/doc/gen/affine_matrix2d.rb +284 -0
  37. data/lib/wx/doc/gen/animation.rb +275 -0
  38. data/lib/wx/doc/gen/animation_ctrl.rb +300 -0
  39. data/lib/wx/doc/gen/any_button.rb +191 -0
  40. data/lib/wx/doc/gen/app.rb +463 -0
  41. data/lib/wx/doc/gen/app_traits.rb +396 -0
  42. data/lib/wx/doc/gen/art_provider.rb +605 -0
  43. data/lib/wx/doc/gen/aui/aui_dock_art.rb +455 -0
  44. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +54 -0
  45. data/lib/wx/doc/gen/aui/aui_manager.rb +847 -0
  46. data/lib/wx/doc/gen/aui/aui_manager_event.rb +131 -0
  47. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +180 -0
  48. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +59 -0
  49. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +130 -0
  50. data/lib/wx/doc/gen/aui/aui_notebook.rb +631 -0
  51. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +233 -0
  52. data/lib/wx/doc/gen/aui/aui_pane_info.rb +769 -0
  53. data/lib/wx/doc/gen/aui/aui_tab_art.rb +352 -0
  54. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +14 -0
  55. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +510 -0
  56. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +340 -0
  57. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +244 -0
  58. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +257 -0
  59. data/lib/wx/doc/gen/aui/event_list.rb +179 -0
  60. data/lib/wx/doc/gen/banner_window.rb +124 -0
  61. data/lib/wx/doc/gen/bitmap.rb +731 -0
  62. data/lib/wx/doc/gen/bitmap_button.rb +123 -0
  63. data/lib/wx/doc/gen/bitmap_combo_box.rb +221 -0
  64. data/lib/wx/doc/gen/book_ctrl_base.rb +273 -0
  65. data/lib/wx/doc/gen/book_ctrl_event.rb +66 -0
  66. data/lib/wx/doc/gen/box_sizer.rb +85 -0
  67. data/lib/wx/doc/gen/brush.rb +251 -0
  68. data/lib/wx/doc/gen/busy_info.rb +157 -0
  69. data/lib/wx/doc/gen/button.rb +182 -0
  70. data/lib/wx/doc/gen/calculate_layout_event.rb +62 -0
  71. data/lib/wx/doc/gen/calendar_ctrl.rb +505 -0
  72. data/lib/wx/doc/gen/calendar_date_attr.rb +138 -0
  73. data/lib/wx/doc/gen/calendar_event.rb +147 -0
  74. data/lib/wx/doc/gen/caret.rb +97 -0
  75. data/lib/wx/doc/gen/check_box.rb +175 -0
  76. data/lib/wx/doc/gen/check_list_box.rb +121 -0
  77. data/lib/wx/doc/gen/choice.rb +175 -0
  78. data/lib/wx/doc/gen/choicebook.rb +116 -0
  79. data/lib/wx/doc/gen/client_dc.rb +43 -0
  80. data/lib/wx/doc/gen/clipboard.rb +144 -0
  81. data/lib/wx/doc/gen/collapsible_pane.rb +138 -0
  82. data/lib/wx/doc/gen/collapsible_pane_event.rb +46 -0
  83. data/lib/wx/doc/gen/colour.rb +333 -0
  84. data/lib/wx/doc/gen/colour_dialog.rb +190 -0
  85. data/lib/wx/doc/gen/colour_picker_ctrl.rb +110 -0
  86. data/lib/wx/doc/gen/colour_picker_event.rb +77 -0
  87. data/lib/wx/doc/gen/combo_box.rb +292 -0
  88. data/lib/wx/doc/gen/combo_ctrl.rb +662 -0
  89. data/lib/wx/doc/gen/command_link_button.rb +134 -0
  90. data/lib/wx/doc/gen/config_base.rb +10 -0
  91. data/lib/wx/doc/gen/context_help_button.rb +109 -0
  92. data/lib/wx/doc/gen/control.rb +277 -0
  93. data/lib/wx/doc/gen/control_with_items.rb +253 -0
  94. data/lib/wx/doc/gen/core.rb +45 -0
  95. data/lib/wx/doc/gen/credential_entry_dialog.rb +137 -0
  96. data/lib/wx/doc/gen/cursor.rb +193 -0
  97. data/lib/wx/doc/gen/data_format.rb +85 -0
  98. data/lib/wx/doc/gen/data_object.rb +436 -0
  99. data/lib/wx/doc/gen/data_object_simple_base.rb +10 -0
  100. data/lib/wx/doc/gen/date_event.rb +49 -0
  101. data/lib/wx/doc/gen/date_picker_ctrl.rb +161 -0
  102. data/lib/wx/doc/gen/dc.rb +1631 -0
  103. data/lib/wx/doc/gen/dc_overlay.rb +102 -0
  104. data/lib/wx/doc/gen/defs.rb +2802 -0
  105. data/lib/wx/doc/gen/dial_up_event.rb +45 -0
  106. data/lib/wx/doc/gen/dial_up_manager.rb +149 -0
  107. data/lib/wx/doc/gen/dialog.rb +541 -0
  108. data/lib/wx/doc/gen/dir_dialog.rb +164 -0
  109. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +90 -0
  110. data/lib/wx/doc/gen/dir_picker_ctrl.rb +125 -0
  111. data/lib/wx/doc/gen/display.rb +238 -0
  112. data/lib/wx/doc/gen/drag_drop.rb +299 -0
  113. data/lib/wx/doc/gen/drag_image.rb +116 -0
  114. data/lib/wx/doc/gen/editable_list_box.rb +109 -0
  115. data/lib/wx/doc/gen/event.rb +990 -0
  116. data/lib/wx/doc/gen/event_blocker.rb +50 -0
  117. data/lib/wx/doc/gen/event_filter.rb +92 -0
  118. data/lib/wx/doc/gen/event_list.rb +1644 -0
  119. data/lib/wx/doc/gen/events.rb +2809 -0
  120. data/lib/wx/doc/gen/evt_handler.rb +229 -0
  121. data/lib/wx/doc/gen/ext_help_controller.rb +109 -0
  122. data/lib/wx/doc/gen/file_ctrl.rb +231 -0
  123. data/lib/wx/doc/gen/file_ctrl_event.rb +83 -0
  124. data/lib/wx/doc/gen/file_dialog.rb +353 -0
  125. data/lib/wx/doc/gen/file_dialog_custom_control.rb +165 -0
  126. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +158 -0
  127. data/lib/wx/doc/gen/file_dir_picker_event.rb +100 -0
  128. data/lib/wx/doc/gen/file_picker_ctrl.rb +132 -0
  129. data/lib/wx/doc/gen/file_system.rb +232 -0
  130. data/lib/wx/doc/gen/find_dialog_event.rb +126 -0
  131. data/lib/wx/doc/gen/find_replace_data.rb +60 -0
  132. data/lib/wx/doc/gen/find_replace_dialog.rb +58 -0
  133. data/lib/wx/doc/gen/flex_grid_sizer.rb +199 -0
  134. data/lib/wx/doc/gen/font.rb +1379 -0
  135. data/lib/wx/doc/gen/font_data.rb +151 -0
  136. data/lib/wx/doc/gen/font_dialog.rb +88 -0
  137. data/lib/wx/doc/gen/font_picker_ctrl.rb +143 -0
  138. data/lib/wx/doc/gen/font_picker_event.rb +65 -0
  139. data/lib/wx/doc/gen/frame.rb +352 -0
  140. data/lib/wx/doc/gen/fs_file.rb +337 -0
  141. data/lib/wx/doc/gen/functions.rb +10 -0
  142. data/lib/wx/doc/gen/gauge.rb +157 -0
  143. data/lib/wx/doc/gen/gb_sizer_item.rb +68 -0
  144. data/lib/wx/doc/gen/gcdc.rb +46 -0
  145. data/lib/wx/doc/gen/gdi_common.rb +1271 -0
  146. data/lib/wx/doc/gen/gdi_object.rb +31 -0
  147. data/lib/wx/doc/gen/generic_about_dialog.rb +140 -0
  148. data/lib/wx/doc/gen/generic_dir_ctrl.rb +223 -0
  149. data/lib/wx/doc/gen/geometry.rb +661 -0
  150. data/lib/wx/doc/gen/graphics_context.rb +1184 -0
  151. data/lib/wx/doc/gen/graphics_object.rb +750 -0
  152. data/lib/wx/doc/gen/grid/event_list.rb +191 -0
  153. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +40 -0
  154. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +280 -0
  155. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +35 -0
  156. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +37 -0
  157. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +49 -0
  158. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +35 -0
  159. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +46 -0
  160. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +38 -0
  161. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +45 -0
  162. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +40 -0
  163. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +197 -0
  164. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +39 -0
  165. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +44 -0
  166. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +45 -0
  167. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +79 -0
  168. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +46 -0
  169. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +35 -0
  170. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +108 -0
  171. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +35 -0
  172. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +49 -0
  173. data/lib/wx/doc/gen/grid/grid_ctrl.rb +3002 -0
  174. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +95 -0
  175. data/lib/wx/doc/gen/grid/grid_event.rb +129 -0
  176. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +104 -0
  177. data/lib/wx/doc/gen/grid/grid_size_event.rb +85 -0
  178. data/lib/wx/doc/gen/grid/grid_string_table.rb +142 -0
  179. data/lib/wx/doc/gen/grid/grid_table_base.rb +317 -0
  180. data/lib/wx/doc/gen/grid/grid_table_message.rb +81 -0
  181. data/lib/wx/doc/gen/grid_bag_sizer.rb +323 -0
  182. data/lib/wx/doc/gen/grid_sizer.rb +195 -0
  183. data/lib/wx/doc/gen/gui_event_loop.rb +159 -0
  184. data/lib/wx/doc/gen/h_scrolled_window.rb +562 -0
  185. data/lib/wx/doc/gen/header_ctrl.rb +880 -0
  186. data/lib/wx/doc/gen/header_ctrl_event.rb +133 -0
  187. data/lib/wx/doc/gen/help_controller.rb +195 -0
  188. data/lib/wx/doc/gen/help_provider.rb +98 -0
  189. data/lib/wx/doc/gen/html/event_list.rb +38 -0
  190. data/lib/wx/doc/gen/html/html_cell.rb +536 -0
  191. data/lib/wx/doc/gen/html/html_cell_event.rb +69 -0
  192. data/lib/wx/doc/gen/html/html_data_object.rb +42 -0
  193. data/lib/wx/doc/gen/html/html_easy_printing.rb +203 -0
  194. data/lib/wx/doc/gen/html/html_help_controller.rb +340 -0
  195. data/lib/wx/doc/gen/html/html_help_data.rb +159 -0
  196. data/lib/wx/doc/gen/html/html_help_window.rb +258 -0
  197. data/lib/wx/doc/gen/html/html_link_event.rb +41 -0
  198. data/lib/wx/doc/gen/html/html_list_box.rb +346 -0
  199. data/lib/wx/doc/gen/html/html_printout.rb +109 -0
  200. data/lib/wx/doc/gen/html/html_window.rb +461 -0
  201. data/lib/wx/doc/gen/hyperlink_ctrl.rb +311 -0
  202. data/lib/wx/doc/gen/hyperlink_event.rb +44 -0
  203. data/lib/wx/doc/gen/icon.rb +267 -0
  204. data/lib/wx/doc/gen/icon_location.rb +40 -0
  205. data/lib/wx/doc/gen/image.rb +1371 -0
  206. data/lib/wx/doc/gen/image_list.rb +168 -0
  207. data/lib/wx/doc/gen/info_bar.rb +195 -0
  208. data/lib/wx/doc/gen/keyboard_state.rb +140 -0
  209. data/lib/wx/doc/gen/list_box.rb +304 -0
  210. data/lib/wx/doc/gen/list_ctrl.rb +1774 -0
  211. data/lib/wx/doc/gen/list_event.rb +208 -0
  212. data/lib/wx/doc/gen/listbook.rb +116 -0
  213. data/lib/wx/doc/gen/locale.rb +4293 -0
  214. data/lib/wx/doc/gen/log.rb +603 -0
  215. data/lib/wx/doc/gen/mdi_client_window.rb +47 -0
  216. data/lib/wx/doc/gen/mdi_frame.rb +324 -0
  217. data/lib/wx/doc/gen/media_ctrl.rb +269 -0
  218. data/lib/wx/doc/gen/media_event.rb +117 -0
  219. data/lib/wx/doc/gen/memory_dc.rb +174 -0
  220. data/lib/wx/doc/gen/menu.rb +509 -0
  221. data/lib/wx/doc/gen/menu_bar.rb +287 -0
  222. data/lib/wx/doc/gen/menu_item.rb +362 -0
  223. data/lib/wx/doc/gen/message_dialog.rb +238 -0
  224. data/lib/wx/doc/gen/mini_frame.rb +108 -0
  225. data/lib/wx/doc/gen/mirror_dc.rb +22 -0
  226. data/lib/wx/doc/gen/mouse_state.rb +150 -0
  227. data/lib/wx/doc/gen/multi_choice_dialog.rb +80 -0
  228. data/lib/wx/doc/gen/non_owned_window.rb +49 -0
  229. data/lib/wx/doc/gen/notebook.rb +278 -0
  230. data/lib/wx/doc/gen/num_validator.rb +37 -0
  231. data/lib/wx/doc/gen/number_entry_dialog.rb +93 -0
  232. data/lib/wx/doc/gen/object.rb +59 -0
  233. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +395 -0
  234. data/lib/wx/doc/gen/paint_dc.rb +27 -0
  235. data/lib/wx/doc/gen/palette.rb +92 -0
  236. data/lib/wx/doc/gen/panel.rb +127 -0
  237. data/lib/wx/doc/gen/pen.rb +511 -0
  238. data/lib/wx/doc/gen/persistence_manager.rb +135 -0
  239. data/lib/wx/doc/gen/persistent_object.rb +52 -0
  240. data/lib/wx/doc/gen/persistent_window.rb +241 -0
  241. data/lib/wx/doc/gen/pg/event_list.rb +106 -0
  242. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +54 -0
  243. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +292 -0
  244. data/lib/wx/doc/gen/pg/pg_cell.rb +177 -0
  245. data/lib/wx/doc/gen/pg/pg_editor.rb +721 -0
  246. data/lib/wx/doc/gen/pg/pg_multi_button.rb +152 -0
  247. data/lib/wx/doc/gen/pg/pg_properties.rb +2829 -0
  248. data/lib/wx/doc/gen/pg/pg_property.rb +2078 -0
  249. data/lib/wx/doc/gen/pg/pg_validation_info.rb +344 -0
  250. data/lib/wx/doc/gen/pg/property_grid.rb +740 -0
  251. data/lib/wx/doc/gen/pg/property_grid_event.rb +184 -0
  252. data/lib/wx/doc/gen/pg/property_grid_interface.rb +1098 -0
  253. data/lib/wx/doc/gen/pg/property_grid_manager.rb +415 -0
  254. data/lib/wx/doc/gen/pg/property_grid_page.rb +354 -0
  255. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +165 -0
  256. data/lib/wx/doc/gen/picker_base.rb +152 -0
  257. data/lib/wx/doc/gen/platform_info.rb +622 -0
  258. data/lib/wx/doc/gen/popup_window.rb +107 -0
  259. data/lib/wx/doc/gen/progress_dialog.rb +100 -0
  260. data/lib/wx/doc/gen/property_sheet_dialog.rb +216 -0
  261. data/lib/wx/doc/gen/prt/event_list.rb +17 -0
  262. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +44 -0
  263. data/lib/wx/doc/gen/prt/post_script_dc.rb +30 -0
  264. data/lib/wx/doc/gen/prt/preview_frame.rb +78 -0
  265. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +151 -0
  266. data/lib/wx/doc/gen/prt/print_data.rb +804 -0
  267. data/lib/wx/doc/gen/prt/print_dialog.rb +55 -0
  268. data/lib/wx/doc/gen/prt/printer.rb +518 -0
  269. data/lib/wx/doc/gen/prt/printer_dc.rb +37 -0
  270. data/lib/wx/doc/gen/query_layout_info_event.rb +106 -0
  271. data/lib/wx/doc/gen/radio_box.rb +306 -0
  272. data/lib/wx/doc/gen/radio_button.rb +159 -0
  273. data/lib/wx/doc/gen/rbn/event_list.rb +136 -0
  274. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1132 -0
  275. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +308 -0
  276. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +45 -0
  277. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +458 -0
  278. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +63 -0
  279. data/lib/wx/doc/gen/rbn/ribbon_control.rb +143 -0
  280. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +229 -0
  281. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +55 -0
  282. data/lib/wx/doc/gen/rbn/ribbon_page.rb +174 -0
  283. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +270 -0
  284. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +45 -0
  285. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +360 -0
  286. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +42 -0
  287. data/lib/wx/doc/gen/rearrange_ctrl.rb +78 -0
  288. data/lib/wx/doc/gen/rearrange_list.rb +123 -0
  289. data/lib/wx/doc/gen/region.rb +380 -0
  290. data/lib/wx/doc/gen/region_iterator.rb +76 -0
  291. data/lib/wx/doc/gen/rich_tool_tip.rb +154 -0
  292. data/lib/wx/doc/gen/rtc/event_list.rb +125 -0
  293. data/lib/wx/doc/gen/rtc/rich_text_box.rb +445 -0
  294. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1188 -0
  295. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +41 -0
  296. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +538 -0
  297. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2103 -0
  298. data/lib/wx/doc/gen/rtc/rich_text_event.rb +173 -0
  299. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +181 -0
  300. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +319 -0
  301. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +193 -0
  302. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +102 -0
  303. data/lib/wx/doc/gen/rtc/rich_text_image.rb +337 -0
  304. data/lib/wx/doc/gen/rtc/rich_text_object.rb +2922 -0
  305. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1240 -0
  306. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +258 -0
  307. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +344 -0
  308. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +227 -0
  309. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +59 -0
  310. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +169 -0
  311. data/lib/wx/doc/gen/sash_event.rb +147 -0
  312. data/lib/wx/doc/gen/sash_layout_window.rb +232 -0
  313. data/lib/wx/doc/gen/sash_window.rb +171 -0
  314. data/lib/wx/doc/gen/scaled_dc.rb +10 -0
  315. data/lib/wx/doc/gen/screen_dc.rb +30 -0
  316. data/lib/wx/doc/gen/scroll_bar.rb +204 -0
  317. data/lib/wx/doc/gen/scrolled_canvas.rb +410 -0
  318. data/lib/wx/doc/gen/scrolled_control.rb +410 -0
  319. data/lib/wx/doc/gen/scrolled_window.rb +430 -0
  320. data/lib/wx/doc/gen/search_ctrl.rb +159 -0
  321. data/lib/wx/doc/gen/secret_store.rb +116 -0
  322. data/lib/wx/doc/gen/simplebook.rb +110 -0
  323. data/lib/wx/doc/gen/single_choice_dialog.rb +89 -0
  324. data/lib/wx/doc/gen/sizer.rb +945 -0
  325. data/lib/wx/doc/gen/sizer_item.rb +244 -0
  326. data/lib/wx/doc/gen/slider.rb +342 -0
  327. data/lib/wx/doc/gen/spin_button.rb +157 -0
  328. data/lib/wx/doc/gen/spin_ctrl.rb +231 -0
  329. data/lib/wx/doc/gen/spin_ctrl_double.rb +192 -0
  330. data/lib/wx/doc/gen/spin_double_event.rb +55 -0
  331. data/lib/wx/doc/gen/spin_event.rb +51 -0
  332. data/lib/wx/doc/gen/splash_screen.rb +113 -0
  333. data/lib/wx/doc/gen/splitter_event.rb +99 -0
  334. data/lib/wx/doc/gen/splitter_window.rb +498 -0
  335. data/lib/wx/doc/gen/static_bitmap.rb +256 -0
  336. data/lib/wx/doc/gen/static_box.rb +180 -0
  337. data/lib/wx/doc/gen/static_box_sizer.rb +85 -0
  338. data/lib/wx/doc/gen/static_line.rb +83 -0
  339. data/lib/wx/doc/gen/static_text.rb +127 -0
  340. data/lib/wx/doc/gen/status_bar.rb +290 -0
  341. data/lib/wx/doc/gen/stc/event_list.rb +221 -0
  342. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4474 -0
  343. data/lib/wx/doc/gen/stc/styled_text_event.rb +8762 -0
  344. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +129 -0
  345. data/lib/wx/doc/gen/svg_file_dc.rb +164 -0
  346. data/lib/wx/doc/gen/system_options.rb +129 -0
  347. data/lib/wx/doc/gen/system_settings.rb +507 -0
  348. data/lib/wx/doc/gen/task_bar_icon.rb +127 -0
  349. data/lib/wx/doc/gen/task_bar_icon_event.rb +88 -0
  350. data/lib/wx/doc/gen/text_attr.rb +756 -0
  351. data/lib/wx/doc/gen/text_ctrl.rb +1033 -0
  352. data/lib/wx/doc/gen/text_entry.rb +441 -0
  353. data/lib/wx/doc/gen/text_entry_dialog.rb +220 -0
  354. data/lib/wx/doc/gen/text_validator.rb +245 -0
  355. data/lib/wx/doc/gen/time_picker_ctrl.rb +128 -0
  356. data/lib/wx/doc/gen/timer.rb +119 -0
  357. data/lib/wx/doc/gen/timer_event.rb +68 -0
  358. data/lib/wx/doc/gen/tip_provider.rb +63 -0
  359. data/lib/wx/doc/gen/tip_window.rb +51 -0
  360. data/lib/wx/doc/gen/toggle_button.rb +182 -0
  361. data/lib/wx/doc/gen/tool_bar.rb +890 -0
  362. data/lib/wx/doc/gen/tool_tip.rb +86 -0
  363. data/lib/wx/doc/gen/toolbook.rb +118 -0
  364. data/lib/wx/doc/gen/top_level_window.rb +497 -0
  365. data/lib/wx/doc/gen/tree_ctrl.rb +1052 -0
  366. data/lib/wx/doc/gen/tree_event.rb +127 -0
  367. data/lib/wx/doc/gen/treebook.rb +180 -0
  368. data/lib/wx/doc/gen/ui_action_simulator.rb +109 -0
  369. data/lib/wx/doc/gen/utils.rb +273 -0
  370. data/lib/wx/doc/gen/v_list_box.rb +272 -0
  371. data/lib/wx/doc/gen/v_scrolled_canvas.rb +195 -0
  372. data/lib/wx/doc/gen/v_scrolled_window.rb +191 -0
  373. data/lib/wx/doc/gen/validator.rb +68 -0
  374. data/lib/wx/doc/gen/variant.rb +294 -0
  375. data/lib/wx/doc/gen/window.rb +2917 -0
  376. data/lib/wx/doc/gen/window_dc.rb +38 -0
  377. data/lib/wx/doc/gen/window_disabler.rb +30 -0
  378. data/lib/wx/doc/gen/with_images.rb +84 -0
  379. data/lib/wx/doc/gen/wizard.rb +257 -0
  380. data/lib/wx/doc/gen/wizard_event.rb +113 -0
  381. data/lib/wx/doc/gen/wizard_page.rb +65 -0
  382. data/lib/wx/doc/gen/wizard_page_simple.rb +88 -0
  383. data/lib/wx/doc/gen/wrap_sizer.rb +79 -0
  384. data/lib/wx/doc/gen/xml_node.rb +316 -0
  385. data/lib/wx/doc/gen/xml_resource.rb +320 -0
  386. data/lib/wx/doc/generic_validator.rb +5 -0
  387. data/lib/wx/doc/pg/pg_property.rb +5 -0
  388. data/lib/wx/doc/tip_window.rb +18 -6
  389. data/lib/wx/doc/variant.rb +30 -0
  390. data/lib/wx/grid/events/evt_list.rb +166 -0
  391. data/lib/wx/html/events/evt_list.rb +27 -0
  392. data/lib/wx/html/simple_html_listbox.rb +46 -33
  393. data/lib/wx/keyword_defs.rb +9 -0
  394. data/lib/wx/pg/events/evt_list.rb +73 -0
  395. data/lib/wx/pg/pg_property.rb +85 -52
  396. data/lib/wx/pg/property_grid_interface.rb +12 -2
  397. data/lib/wx/rbn/events/evt_list.rb +102 -0
  398. data/lib/wx/rtc/events/evt_list.rb +98 -0
  399. data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -0
  400. data/lib/wx/stc/events/evt_list.rb +178 -0
  401. data/lib/wx/version.rb +1 -1
  402. data/lib/wx/wxruby/cmd/setup.rb +6 -0
  403. data/rakelib/configure.rb +9 -0
  404. data/rakelib/gem.rake +84 -66
  405. data/rakelib/gem.rb +4 -20
  406. data/rakelib/lib/config/linux.rb +1 -1
  407. data/rakelib/lib/config/macosx.rb +15 -1
  408. data/rakelib/lib/config/pkgman/linux.rb +7 -2
  409. data/rakelib/lib/config/unixish.rb +3 -3
  410. data/rakelib/lib/config.rb +19 -8
  411. data/rakelib/lib/core/include/swigdirector.inc +3 -3
  412. data/rakelib/lib/core/include/swigrubyerrors.inc +4 -8
  413. data/rakelib/lib/core/include/swigrubyrun.inc +20 -4
  414. data/rakelib/lib/core/include/swigrun.inc +189 -0
  415. data/rakelib/lib/core/package.rb +3 -1
  416. data/rakelib/lib/core/spec.rb +1 -1
  417. data/rakelib/lib/director/accelerator.rb +1 -1
  418. data/rakelib/lib/director/animation.rb +1 -0
  419. data/rakelib/lib/director/app_traits.rb +1 -1
  420. data/rakelib/lib/director/aui_manager.rb +21 -14
  421. data/rakelib/lib/director/aui_mdi_child_frame.rb +2 -0
  422. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -0
  423. data/rakelib/lib/director/aui_notebook.rb +20 -3
  424. data/rakelib/lib/director/aui_tab_ctrl.rb +64 -106
  425. data/rakelib/lib/director/bitmap_combobox.rb +4 -2
  426. data/rakelib/lib/director/calendar_ctrl.rb +72 -14
  427. data/rakelib/lib/director/clipboard.rb +2 -0
  428. data/rakelib/lib/director/data_object.rb +15 -7
  429. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  430. data/rakelib/lib/director/display.rb +81 -0
  431. data/rakelib/lib/director/event.rb +33 -16
  432. data/rakelib/lib/director/event_handler.rb +27 -2
  433. data/rakelib/lib/director/functions.rb +9 -0
  434. data/rakelib/lib/director/geometry.rb +5 -0
  435. data/rakelib/lib/director/grid_ctrl.rb +123 -28
  436. data/rakelib/lib/director/help_provider.rb +1 -1
  437. data/rakelib/lib/director/html_listbox.rb +30 -4
  438. data/rakelib/lib/director/hvscrolled.rb +154 -0
  439. data/rakelib/lib/director/image_list.rb +1 -0
  440. data/rakelib/lib/director/mdi_frame.rb +4 -0
  441. data/rakelib/lib/director/menu.rb +56 -15
  442. data/rakelib/lib/director/menu_bar.rb +62 -0
  443. data/rakelib/lib/director/menu_item.rb +7 -1
  444. data/rakelib/lib/director/num_validator.rb +27 -0
  445. data/rakelib/lib/director/numeric_property_validator.rb +9 -0
  446. data/rakelib/lib/director/persistent_window.rb +16 -0
  447. data/rakelib/lib/director/pgproperty.rb +3 -2
  448. data/rakelib/lib/director/popup_window.rb +2 -0
  449. data/rakelib/lib/director/preview_frame.rb +29 -6
  450. data/rakelib/lib/director/printer.rb +59 -5
  451. data/rakelib/lib/director/property_grid.rb +37 -18
  452. data/rakelib/lib/director/property_grid_interface.rb +10 -8
  453. data/rakelib/lib/director/property_grid_manager.rb +99 -39
  454. data/rakelib/lib/director/property_grid_page.rb +60 -0
  455. data/rakelib/lib/director/rich_tooltip.rb +22 -0
  456. data/rakelib/lib/director/richtext_ctrl.rb +5 -0
  457. data/rakelib/lib/director/richtext_object.rb +13 -4
  458. data/rakelib/lib/director/richtext_style_listbox.rb +11 -2
  459. data/rakelib/lib/director/scrolled_t.rb +3 -0
  460. data/rakelib/lib/director/searchctrl.rb +1 -0
  461. data/rakelib/lib/director/task_bar_icon.rb +14 -8
  462. data/rakelib/lib/director/text_validator.rb +9 -0
  463. data/rakelib/lib/director/tip_window.rb +117 -6
  464. data/rakelib/lib/director/tool_bar.rb +6 -0
  465. data/rakelib/lib/director/top_level_window.rb +0 -1
  466. data/rakelib/lib/director/utils.rb +3 -1
  467. data/rakelib/lib/director/validator.rb +12 -0
  468. data/rakelib/lib/director/variant.rb +64 -20
  469. data/rakelib/lib/director/vlistbox.rb +29 -22
  470. data/rakelib/lib/director/window.rb +12 -2
  471. data/rakelib/lib/director/xml_resource.rb +6 -0
  472. data/rakelib/lib/generate/doc/aui_manager.yaml +1 -1
  473. data/rakelib/lib/generate/doc/rich_tool_tip.yaml +26 -0
  474. data/rakelib/lib/generate/doc.rb +12 -7
  475. data/rakelib/lib/generate/interface.rb +16 -1
  476. data/rakelib/lib/specs/interfaces.rb +6 -2
  477. data/rakelib/lib/swig_runner.rb +12 -12
  478. data/rakelib/lib/typemap/aui_tabctrl.rb +46 -0
  479. data/rakelib/lib/typemap/common.rb +3 -3
  480. data/rakelib/lib/typemap/print_page_range.rb +32 -8
  481. data/samples/art/wxruby-512x512.png +0 -0
  482. data/samples/calendar/calendar.rb +64 -1
  483. data/samples/dialogs/dialogs.rb +172 -0
  484. data/samples/dialogs/tip.xpm +157 -0
  485. data/samples/drawing/maths_images.rb +1 -1
  486. data/samples/event/event.rb +1 -1
  487. data/samples/printing/printing2.rb +1 -1
  488. data/samples/sampler.rb +26 -8
  489. data/samples/text/textctrl.rb +2 -2
  490. data/samples/treectrl/treectrl.rb +2 -2
  491. data/tests/lib/leaked_process_event_exception_test.rb +1 -1
  492. data/tests/lib/leaked_queued_event_exception_test.rb +1 -1
  493. data/tests/lib/wxapp_runner.rb +31 -41
  494. data/tests/lib/wxframe_runner.rb +23 -11
  495. data/tests/lib/wxrb_test.rb +58 -0
  496. data/tests/test_app_event_filter.rb +1 -1
  497. data/tests/test_app_exit_exception.rb +3 -3
  498. data/tests/test_app_init_exception.rb +3 -3
  499. data/tests/test_app_traits.rb +24 -21
  500. data/tests/test_art.rb +7 -7
  501. data/tests/test_art_provider.rb +1 -1
  502. data/tests/test_basic.rb +2 -2
  503. data/tests/test_book_controls.rb +1 -1
  504. data/tests/test_box_sizer.rb +1 -1
  505. data/tests/test_clipboard.rb +5 -5
  506. data/tests/test_combo_ctrl.rb +2 -2
  507. data/tests/test_config.rb +11 -1
  508. data/tests/test_dc.rb +1 -1
  509. data/tests/test_dialog.rb +1 -1
  510. data/tests/test_event_handling.rb +1 -1
  511. data/tests/test_events.rb +1 -1
  512. data/tests/test_exceptions.rb +2 -2
  513. data/tests/test_ext_controls.rb +10 -10
  514. data/tests/test_file_dialog.rb +1 -1
  515. data/tests/test_font.rb +1 -1
  516. data/tests/test_gdi_object.rb +1 -1
  517. data/tests/test_geometry.rb +2 -2
  518. data/tests/test_grid_sizer.rb +2 -2
  519. data/tests/test_intl.rb +1 -1
  520. data/tests/test_item_data.rb +12 -12
  521. data/tests/test_list_ctrl.rb +1 -1
  522. data/tests/test_log.rb +2 -2
  523. data/tests/test_media_ctrl.rb +1 -1
  524. data/tests/test_menu.rb +114 -43
  525. data/tests/test_proof_check.rb +1 -1
  526. data/tests/test_propgrid.rb +857 -0
  527. data/tests/test_richtext.rb +10 -24
  528. data/tests/test_secret_store.rb +1 -1
  529. data/tests/test_sizer.rb +1 -1
  530. data/tests/test_std_controls.rb +8 -8
  531. data/tests/test_styled_text_ctrl.rb +1 -1
  532. data/tests/test_timer.rb +1 -1
  533. data/tests/test_tree_ctrl.rb +1 -1
  534. data/tests/test_validators.rb +79 -36
  535. data/tests/test_variant.rb +1 -1
  536. data/tests/test_window.rb +11 -11
  537. data/tests/testapp.rb +2 -2
  538. data/tests/testapp_noframe.rb +2 -2
  539. metadata +402 -12
  540. data/lib/wx/aui/aui_tab_ctrl.rb +0 -18
  541. data/rakelib/lib/director/hvscrolled_window.rb +0 -140
@@ -12,120 +12,78 @@ module WXRuby3
12
12
 
13
13
  class Director
14
14
 
15
- class AuiTabCtrl < Window
15
+ class AuiTabCtrl < Director
16
16
 
17
17
  def setup
18
- # first let Director::Window do it's stuff
19
18
  super
20
- # now replace items because wxAuiTabCtrl is actually not documented (!!!)
21
- spec.items.replace %w[wxAuiTabContainerButton]
22
- spec.gc_as_untracked 'wxAuiTabContainerButton'
23
- spec.no_proxy %w[wxAuiTabCtrl wxAuiTabContainerButton]
24
- spec.swig_import %w[swig/classes/include/wxObject.h swig/classes/include/wxEvtHandler.h swig/classes/include/wxWindow.h swig/classes/include/wxControl.h]
25
- # cannot use #add_extend_code because we do not have an actual parsed XML item
26
- spec.add_swig_code <<~__CODE
27
- GC_MANAGE_AS_WINDOW(wxAuiTabCtrl);
28
-
29
- %extend wxAuiTabCtrl {
30
- VALUE TabHitTest(int x, int y)
31
- {
32
- wxWindow* hit = 0;
33
- if (self->TabHitTest(x, y, &hit))
34
- {
35
- return wxRuby_WrapWxObjectInRuby(hit);
36
- }
37
- else
38
- {
39
- return Qnil;
40
- }
41
- }
42
- VALUE ButtonHitTest(int x, int y)
43
- {
44
- wxAuiTabContainerButton* hit = 0;
45
- if (self->ButtonHitTest(x, y, &hit))
46
- {
47
- wxAuiTabContainerButton* rc_hit = new wxAuiTabContainerButton(*hit);
48
- // return owned copy
49
- return SWIG_NewPointerObj(SWIG_as_voidptr(rc_hit), SWIGTYPE_p_wxAuiTabContainerButton, 1);
50
- }
51
- else
52
- {
53
- return Qnil;
54
- }
55
- }
56
- };
57
- __CODE
58
- # add the missing interface spec (with the wxAuiTabContainer interface folded in minus replaced/shadowed methods)
59
- # also add wxAuiTabContainerButton manually here
60
- spec.add_interface_code <<~__HEREDOC
61
- class wxAuiTabContainerButton
19
+ spec.items.clear
20
+ # create a lightweight, but typesafe, wrapper for AuiTabCtrl
21
+ spec.add_init_code <<~__HEREDOC
22
+ // define AuiTabCtrl wrapper class
23
+ VALUE cWxAuiTabCtrl = rb_define_class_under(mWxAUI, "AuiTabCtrl", rb_cObject);
24
+ rb_undef_alloc_func(cWxAuiTabCtrl);
25
+ rb_define_method(cWxAuiTabCtrl, "is_ok", VALUEFUNC(_wxRuby_wxAuiTabCtrl_IsOk), 0);
26
+ rb_define_method(cWxAuiTabCtrl, "ok?", VALUEFUNC(_wxRuby_wxAuiTabCtrl_IsOk), 0);
27
+ rb_define_method(cWxAuiTabCtrl, "==", VALUEFUNC(_wxRuby_wxAuiTabCtrl_IsEqual), 1);
28
+ rb_define_alias(cWxAuiTabCtrl, "eql?", "==");
29
+ __HEREDOC
30
+
31
+ spec.add_header_code <<~__HEREDOC
32
+ #include <wx/aui/auibook.h>
33
+
34
+ VALUE _wxRuby_Wrap_wxAuiTabCtrl(const wxAuiTabCtrl& rbATC);
35
+ wxAuiTabCtrl* _wxRuby_Unwrap_wxAuiTabCtrl(VALUE rbATC);
36
+ __HEREDOC
37
+
38
+ spec.add_wrapper_code <<~__HEREDOC
39
+ // wxAuiTabCtrl wrapper class definition and helper functions
40
+ static size_t __wxAuiTabCtrl_size(const void* data)
62
41
  {
63
- public:
64
- int id;
65
- int curState;
66
- int location;
67
- wxBitmapBundle bitmap;
68
- wxBitmapBundle disBitmap;
69
- wxRect rect;
42
+ return 0;
43
+ }
44
+
45
+ #include <ruby/version.h>
46
+
47
+ static const rb_data_type_t __wxAuiTabCtrl_type = {
48
+ "AuiTabCtrl",
49
+ #if RUBY_API_VERSION_MAJOR >= 3
50
+ { NULL, NULL, __wxAuiTabCtrl_size, 0, {}},
51
+ #else
52
+ { NULL, NULL, __wxAuiTabCtrl_size, {}},
53
+ #endif
54
+ NULL, NULL, RUBY_TYPED_FREE_IMMEDIATELY
70
55
  };
71
56
 
72
- class wxAuiTabCtrl : public wxControl
57
+ VALUE _wxRuby_Wrap_wxAuiTabCtrl(wxAuiTabCtrl* wxATC)
73
58
  {
74
- public:
75
- wxAuiTabCtrl(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0);
76
- ~wxAuiTabCtrl();
77
-
78
- bool IsDragging() const;
79
- void SetRect(const wxRect& rect);
80
-
81
- void SetArtProvider(wxAuiTabArt* art);
82
- wxAuiTabArt* GetArtProvider() const;
83
-
84
- void SetFlags(unsigned int flags);
85
- unsigned int GetFlags() const;
86
-
87
- bool AddPage(wxWindow* page, const wxAuiNotebookPage& info);
88
- bool InsertPage(wxWindow* page, const wxAuiNotebookPage& info, size_t idx);
89
- bool MovePage(wxWindow* page, size_t newIdx);
90
- bool RemovePage(wxWindow* page);
91
- bool SetActivePage(wxWindow* page);
92
- bool SetActivePage(size_t page);
93
- void SetNoneActive();
94
- int GetActivePage() const;
95
- wxWindow* GetWindowFromIdx(size_t idx) const;
96
- int GetIdxFromWindow(const wxWindow* page) const;
97
- size_t GetPageCount() const;
98
- wxAuiNotebookPage& GetPage(size_t idx);
99
- const wxAuiNotebookPage& GetPage(size_t idx) const;
100
- wxAuiNotebookPageArray& GetPages();
101
- void SetNormalFont(const wxFont& normalFont);
102
- void SetSelectedFont(const wxFont& selectedFont);
103
- void SetMeasuringFont(const wxFont& measuringFont);
104
- void SetColour(const wxColour& colour);
105
- void SetActiveColour(const wxColour& colour);
106
- void DoShowHide();
107
-
108
- void RemoveButton(int id);
109
- void AddButton(int id, int location, const wxBitmapBundle& normalBitmap = wxBitmapBundle(), const wxBitmapBundle& disabledBitmap = wxBitmapBundle());
110
-
111
- size_t GetTabOffset() const;
112
- void SetTabOffset(size_t offset);
113
-
114
- bool IsTabVisible(int tabPage, int tabOffset, wxDC* dc, wxWindow* wnd);
115
-
116
- void MakeTabVisible(int tabPage, wxWindow* win);
117
- };
59
+ VALUE ret = TypedData_Wrap_Struct(mWxAuiTabCtrl, &__wxAuiTabCtrl_type, wxATC);
60
+ return ret;
61
+ }
62
+
63
+ wxAuiTabCtrl* _wxRuby_Unwrap_wxAuiTabCtrl(VALUE rbATC)
64
+ {
65
+ wxAuiTabCtrl* wxATC = nullptr;
66
+ TypedData_Get_Struct(rbATC, wxAuiTabCtrl, &__wxAuiTabCtrl_type, wxATC);
67
+ return wxATC;
68
+ }
69
+
70
+ bool _wxRuby_Is_wxAuiTabCtrl(VALUE rbATC)
71
+ {
72
+ return rb_typeddata_is_kind_of(rbATC, &__wxAuiTabCtrl_type) == 1;
73
+ }
74
+
75
+ VALUE _wxRuby_wxAuiTabCtrl_IsOk(VALUE self)
76
+ {
77
+ wxAuiTabCtrl* wxATC = _wxRuby_Unwrap_wxAuiTabCtrl(self);
78
+ return wxATC ? Qtrue : Qfalse;
79
+ }
80
+
81
+ VALUE _wxRuby_wxAuiTabCtrl_IsEqual(VALUE self, VALUE other)
82
+ {
83
+ return rb_typeddata_is_kind_of(other, &__wxAuiTabCtrl_type) == 1 &&
84
+ _wxRuby_Unwrap_wxAuiTabCtrl(self) == _wxRuby_Unwrap_wxAuiTabCtrl(other);
85
+ }
118
86
  __HEREDOC
119
- spec.map 'wxAuiNotebookPageArray&' => 'Array<Wx::AUI::AuiNotebookPage>' do
120
- map_out code: <<~__CODE
121
- $result = rb_ary_new();
122
- for (size_t i = 0; i < $1->GetCount(); i++)
123
- {
124
- wxAuiNotebookPage* np = new wxAuiNotebookPage($1->Item(i));
125
- rb_ary_push($result, SWIG_NewPointerObj(SWIG_as_voidptr(&np), SWIGTYPE_p_wxAuiNotebookPage, SWIG_POINTER_OWN));
126
- }
127
- __CODE
128
- end
129
87
  end
130
88
  end # class AuiTabCtrl
131
89
 
@@ -24,8 +24,10 @@ module WXRuby3
24
24
  wxWindow
25
25
  wxEvtHandler
26
26
  wxObject])
27
- spec.ignore 'wxBitmapComboBox::Insert(const wxString &, const wxBitmap &, unsigned int, void *)',
28
- 'wxBitmapComboBox::Append(const wxString &, const wxBitmap &, void *)'
27
+ if Config.instance.wx_version_check('3.3.0') <= 0
28
+ spec.ignore 'wxBitmapComboBox::Insert(const wxString &, const wxBitmap &, unsigned int, void *)',
29
+ 'wxBitmapComboBox::Append(const wxString &, const wxBitmap &, void *)'
30
+ end
29
31
  spec.map_apply 'long * OUTPUT' => [ 'long *from', 'long *to' ]
30
32
  end
31
33
 
@@ -77,23 +77,81 @@ module WXRuby3
77
77
  spec.disown 'wxCalendarDateAttr* attr'
78
78
 
79
79
  spec.add_extend_code 'wxCalendarCtrl', <<~__HEREDOC
80
- VALUE hit_test(wxPoint& pos)
81
- {
82
- wxDateTime hit_date;
83
- wxDateTime::WeekDay hit_wkday;
84
- wxCalendarHitTestResult hit = $self->HitTest(pos, &hit_date, &hit_wkday);
85
- if ( hit == wxCAL_HITTEST_HEADER ) {
86
- return(INT2NUM(hit_wkday));
87
- }
88
- else if ( hit == wxCAL_HITTEST_DAY ) {
89
- return(wxRuby_wxDateTimeToRuby(hit_date));
80
+ VALUE hit_test(wxPoint& pos)
81
+ {
82
+ wxDateTime hit_date;
83
+ wxDateTime::WeekDay hit_wkday;
84
+ wxCalendarHitTestResult hit = $self->HitTest(pos, &hit_date, &hit_wkday);
85
+ if ( hit == wxCAL_HITTEST_HEADER ) {
86
+ return(INT2NUM(hit_wkday));
87
+ }
88
+ else if ( hit == wxCAL_HITTEST_DAY ) {
89
+ return(wxRuby_wxDateTimeToRuby(hit_date));
90
+ }
91
+ // Assume that hit == wxCAL_HITTEST_NOWHERE
92
+ return Qnil;
90
93
  }
91
- // Assume that hit == wxCAL_HITTEST_NOWHERE
92
- return Qnil;
93
- }
94
- __HEREDOC
94
+ __HEREDOC
95
95
  spec.do_not_generate(:variables, :enums, :defines, :functions)
96
96
  end
97
+
98
+ def process(gendoc: false)
99
+ defmod = super
100
+ # create definition for wxGenericCalendarCtrl except for WXOSX where
101
+ # wxCalendarCtrl is simply an alias for that
102
+ unless Config.instance.features_set?('WXOSX')
103
+ spec.include 'wx/generic/calctrlg.h'
104
+ def_calctrl = defmod.find_item('wxCalendarCtrl')
105
+ # create a definition for 'wxGenericStaticBitmap' which is not documented
106
+ def_gencalctrl = def_calctrl.dup
107
+ def_gencalctrl.name = 'wxGenericCalendarCtrl'
108
+ def_gencalctrl.brief_doc = nil
109
+ def_gencalctrl.detailed_doc = nil
110
+ def_gencalctrl.items = def_gencalctrl.items.collect { |itm| itm.dup }
111
+ def_gencalctrl.items.each do |itm|
112
+ if itm.is_a?(Extractor::MethodDef)
113
+ itm.overloads = itm.overloads.collect { |ovl| ovl.dup }
114
+ itm.all.each do |ovl|
115
+ ovl.name = 'wxGenericCalendarCtrl' if ovl.is_ctor
116
+ ovl.class_name = 'wxGenericCalendarCtrl'
117
+ ovl.update_attributes(klass: def_gencalctrl)
118
+ end
119
+ end
120
+ end
121
+ defmod.items << def_gencalctrl
122
+ # as we already called super before adding wxGenericCalendarCtrl the no_proxy settings from the
123
+ # base Window director are missing; just copy all those set for wxStaticBitmap
124
+ list = spec.no_proxies.select { |name| name.start_with?('wxCalendarCtrl::') }
125
+ spec.no_proxy(*list.collect { |name| name.sub(/\AwxCalendarCtrl::/, 'wxGenericCalendarCtrl::')})
126
+ # other specs as for wxCalendarCtrl
127
+ # handled; can be suppressed
128
+ spec.suppress_warning(473,
129
+ 'wxGenericCalendarCtrl::GetAttr',
130
+ 'wxGenericCalendarCtrl::GetHeaderColourBg',
131
+ 'wxGenericCalendarCtrl::GetHeaderColourFg',
132
+ 'wxGenericCalendarCtrl::GetHighlightColourBg',
133
+ 'wxGenericCalendarCtrl::GetHighlightColourFg',
134
+ 'wxGenericCalendarCtrl::GetHolidayColourBg',
135
+ 'wxGenericCalendarCtrl::GetHolidayColourFg')
136
+ spec.add_extend_code 'wxGenericCalendarCtrl', <<~__HEREDOC
137
+ VALUE hit_test(wxPoint& pos)
138
+ {
139
+ wxDateTime hit_date;
140
+ wxDateTime::WeekDay hit_wkday;
141
+ wxCalendarHitTestResult hit = $self->HitTest(pos, &hit_date, &hit_wkday);
142
+ if ( hit == wxCAL_HITTEST_HEADER ) {
143
+ return(INT2NUM(hit_wkday));
144
+ }
145
+ else if ( hit == wxCAL_HITTEST_DAY ) {
146
+ return(wxRuby_wxDateTimeToRuby(hit_date));
147
+ }
148
+ // Assume that hit == wxCAL_HITTEST_NOWHERE
149
+ return Qnil;
150
+ }
151
+ __HEREDOC
152
+ end
153
+ defmod
154
+ end
97
155
  end # class CalendarCtrl
98
156
 
99
157
  end # class Director
@@ -32,6 +32,8 @@ module WXRuby3
32
32
  return SWIG_NewPointerObj(wxTheClipboard, SWIGTYPE_p_wxClipboard, 0);
33
33
  }
34
34
  __HEREDOC
35
+ # obsolete alias for SetData; simply create alias in Ruby
36
+ spec.ignore 'wxClipboard::AddData', ignore_doc: false
35
37
  end
36
38
  end # class Clipboard
37
39
 
@@ -67,24 +67,32 @@ module WXRuby3
67
67
  typedef std::map<wxDataObjectComposite*, data_object_list_t> composite_data_object_map_t;
68
68
  static composite_data_object_map_t CompositeDataObject_Map;
69
69
 
70
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCCompositeDataObject, "GC_MARK_DATAOBJECT_COMPOSITE")
71
+
70
72
  static void GC_mark_wxCompositeDataObject(void* ptr)
71
73
  {
74
+ WXRUBY_TRACE_IF(WxRubyTraceGCCompositeDataObject, 2)
75
+ WXRUBY_TRACE("> GC_mark_wxCompositeDataObject : " << ptr)
76
+ WXRUBY_TRACE_END
77
+
72
78
  composite_data_object_map_t::iterator it = CompositeDataObject_Map.find(static_cast<wxDataObjectComposite*> (ptr));
73
79
  if (it != CompositeDataObject_Map.end())
74
80
  {
75
81
  data_object_list_t &do_list = it->second;
76
82
  for (VALUE data_obj : do_list)
77
83
  {
78
- #ifdef __WXRB_DEBUG__
79
- if (wxRuby_TraceLevel()>1)
80
- {
81
- void *c_ptr = (TYPE(data_obj) == T_DATA ? DATA_PTR(data_obj) : 0);
82
- std::wcout << "**** wxRuby_markCompositeDataObjects : " << it->first << "|" << (void*)c_ptr << std::endl;
83
- }
84
- #endif
84
+ WXRUBY_TRACE_IF(WxRubyTraceGCCompositeDataObject, 2)
85
+ WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(data_obj) == T_DATA ? DATA_PTR(data_obj) : 0))
86
+ WXRUBY_TRACE("| GC_mark_wxCompositeDataObject : " << it->first << "|" << (void*)c_ptr)
87
+ WXRUBY_TRACE_END
88
+
85
89
  rb_gc_mark(data_obj);
86
90
  }
87
91
  }
92
+
93
+ WXRUBY_TRACE_IF(WxRubyTraceGCCompositeDataObject, 2)
94
+ WXRUBY_TRACE("< GC_mark_wxCompositeDataObject : " << ptr)
95
+ WXRUBY_TRACE_END
88
96
  }
89
97
 
90
98
  // custom implementation for wxRuby so we can handle de-registering composites
@@ -20,7 +20,10 @@ module WXRuby3
20
20
  super
21
21
  # Custom implementation for Ruby
22
22
  spec.ignore 'wxDatePickerCtrl::GetRange'
23
-
23
+ if Config.instance.features_set?('WXGTK')
24
+ spec.extend_interface('wxDatePickerCtrl',
25
+ 'virtual bool Destroy() override')
26
+ end
24
27
  spec.add_extend_code 'wxDatePickerCtrl', <<~__HEREDOC
25
28
  VALUE get_range()
26
29
  {
@@ -0,0 +1,81 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 wxWidgets interface director
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ class Director
12
+
13
+ class Display < Director
14
+
15
+ def setup
16
+ super
17
+ spec.items << 'wxVideoMode'
18
+ # type mapping for 'wxArrayVideoModes'
19
+ if Config.instance.wx_version_check('3.3.0') >= 0
20
+ spec.map 'wxArrayVideoModes' => 'Array<Wx::VideoMode>' do
21
+ map_out code: <<~__CODE
22
+ $result = rb_ary_new();
23
+ std::vector<wxVideoMode>* vmarr = &$1;
24
+ for (const wxVideoMode& vm : *vmarr)
25
+ {
26
+ wxVideoMode* pvm = new wxVideoMode(vm);
27
+ VALUE rb_vm = SWIG_NewPointerObj(SWIG_as_voidptr(pvm), SWIGTYPE_p_wxVideoMode, 1);
28
+ rb_ary_push($result, rb_vm);
29
+ }
30
+ __CODE
31
+ end
32
+ else
33
+ spec.map 'wxArrayVideoModes' => 'Array<Wx::VideoMode>' do
34
+ map_out code: <<~__CODE
35
+ $result = rb_ary_new();
36
+ wxArrayVideoModes* vmarr = &$1;
37
+ for (size_t ix=0; ix < vmarr->Count(); ++ix)
38
+ {
39
+ wxVideoMode* pvm = new wxVideoMode(vmarr->Item(ix));
40
+ VALUE rb_vm = SWIG_NewPointerObj(SWIG_as_voidptr(pvm), SWIGTYPE_p_wxVideoMode, 1);
41
+ rb_ary_push($result, rb_vm);
42
+ }
43
+ __CODE
44
+ end
45
+ end
46
+ # add Ruby-style accessors for public attr
47
+ spec.add_extend_code 'wxVideoMode', <<~__HEREDOC
48
+ VALUE get_w()
49
+ {
50
+ return INT2NUM($self->w);
51
+ }
52
+ VALUE get_h()
53
+ {
54
+ return INT2NUM($self->h);
55
+ }
56
+ VALUE get_bpp()
57
+ {
58
+ return INT2NUM($self->bpp);
59
+ }
60
+ VALUE get_refresh()
61
+ {
62
+ return INT2NUM($self->refresh);
63
+ }
64
+ __HEREDOC
65
+ spec.make_readonly 'wxVideoMode::w',
66
+ 'wxVideoMode::h',
67
+ 'wxVideoMode::bpp',
68
+ 'wxVideoMode::refresh'
69
+ # make sure to get docs for public attr
70
+ spec.ignore 'wxVideoMode::w',
71
+ 'wxVideoMode::h',
72
+ 'wxVideoMode::bpp',
73
+ 'wxVideoMode::refresh',
74
+ ignore_doc: false
75
+ end
76
+
77
+ end
78
+
79
+ end
80
+
81
+ end
@@ -40,12 +40,22 @@ module WXRuby3
40
40
  __CODE
41
41
  end
42
42
  spec.add_header_code <<~__HEREDOC
43
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCWrapEvents, "GC_WRAP_EVENTS")
44
+
43
45
  static VALUE Evt_Type_Map = NULL;
44
46
  static VALUE wxRuby_WrapClonedWxEvent(wxEvent* wx_evt)
45
47
  {
48
+ WXRUBY_TRACE_IF(WxRubyTraceGCWrapEvents, 2)
49
+ WXRUBY_TRACE("> wxRuby_WrapClonedWxEvent - " << wx_evt)
50
+ WXRUBY_TRACE_END
51
+
46
52
  wxString class_name( wx_evt->GetClassInfo()->GetClassName() );
47
53
  if (class_name == "wxEvent" || class_name == "wxCommandEvent")
48
54
  {
55
+ WXRUBY_TRACE_IF(WxRubyTraceGCWrapEvents, 2)
56
+ WXRUBY_TRACE("< wxRuby_WrapClonedWxEvent - returning managed Ruby derived event")
57
+ WXRUBY_TRACE_END
58
+
49
59
  // special clones for Ruby derived events are already managed and tracked
50
60
  // (this also covers Wx::AsyncProcCallEvent)
51
61
  return SWIG_RubyInstanceFor((void *)wx_evt);
@@ -82,10 +92,9 @@ module WXRuby3
82
92
  // do not forget to mark the instance with the mangled swig type name
83
93
  rb_iv_set(rb_evt, "@__swigtype__", rb_str_new2(type->name));
84
94
 
85
- #if __WXRB_DEBUG__
86
- if (wxRuby_TraceLevel()>1)
87
- std::wcout << "* wxRuby_WrapClonedWxEvent - wrapped cloned event " << wx_evt << "{" << type->name << "}" << std::endl;
88
- #endif
95
+ WXRUBY_TRACE_IF(WxRubyTraceGCWrapEvents, 2)
96
+ WXRUBY_TRACE("< wxRuby_WrapClonedWxEvent - wrapped cloned event " << wx_evt << "{" << type->name << "}")
97
+ WXRUBY_TRACE_END
89
98
 
90
99
  return rb_evt;
91
100
  }
@@ -202,6 +211,15 @@ module WXRuby3
202
211
  bool has_ruby_data_ {};
203
212
  };
204
213
 
214
+ // helper function for event handler QueueEvent
215
+ WXRUBY_EXPORT bool wxRuby_Is_RubyEvent(wxEvent* wx_event)
216
+ {
217
+ return (nullptr != dynamic_cast<wxRubyEvent*> (wx_event) ||
218
+ (wx_event->IsCommandEvent() &&
219
+ nullptr != dynamic_cast<wxRubyCommandEvent*> (wx_event)));
220
+ }
221
+
222
+ WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkEvents, "GC_MARK_EVENTS")
205
223
 
206
224
  // wxRuby must preserve ruby objects attached as the ClientData of
207
225
  // command events that have been user-defined in ruby. Some of the
@@ -210,17 +228,17 @@ module WXRuby3
210
228
  // not a ruby object, and will thus crash.
211
229
  WXRUBY_EXPORT void GC_mark_wxEvent(void *ptr)
212
230
  {
213
- #ifdef __WXRB_DEBUG__
214
- if (wxRuby_TraceLevel()>1)
215
- std::wcout << "> GC_mark_wxEvent : " << ptr << std::endl;
216
- #endif
231
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkEvents, 2)
232
+ WXRUBY_TRACE("> GC_mark_wxEvent : " << ptr)
233
+ WXRUBY_TRACE_END
217
234
 
218
235
  if ( ! ptr ) return;
219
236
  wxEvent* wx_event = (wxEvent*)ptr;
220
- #ifdef __WXRB_DEBUG__
221
- if (wxRuby_TraceLevel()>2)
222
- std::wcout << "* GC_mark_wxEvent(" << ptr << ":{" << wx_event->GetEventType() << "})" << std::endl;
223
- #endif
237
+
238
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkEvents, 3)
239
+ WXRUBY_TRACE("| GC_mark_wxEvent(" << ptr << ":{" << wx_event->GetEventType() << "})")
240
+ WXRUBY_TRACE_END
241
+
224
242
  if (wx_event->IsCommandEvent())
225
243
  {
226
244
  wxCommandEvent* wx_cm_event = (wxCommandEvent*)ptr;
@@ -235,10 +253,9 @@ module WXRuby3
235
253
  }
236
254
  }
237
255
 
238
- #ifdef __WXRB_DEBUG__
239
- if (wxRuby_TraceLevel()>1)
240
- std::wcout << "< GC_mark_wxEvent : " << ptr << std::endl;
241
- #endif
256
+ WXRUBY_TRACE_IF(WxRubyTraceGCMarkEvents, 2)
257
+ WXRUBY_TRACE("< GC_mark_wxEvent : " << ptr)
258
+ WXRUBY_TRACE_END
242
259
  }
243
260
  __HEREDOC
244
261
  # CommandEvent requires custom handling of client data.
@@ -43,6 +43,29 @@ module WXRuby3
43
43
  # We need to disown Ruby with respect to the C++ event object but remain tracking the pair to keep
44
44
  # the Ruby event object alive.
45
45
  spec.disown 'wxEvent *event'
46
+ spec.map 'wxEvent *event' => 'Wx::Event' do
47
+ add_header_code 'WXRUBY_EXPORT bool wxRuby_Is_RubyEvent(wxEvent* wx_event);'
48
+ # Due to the fact that QueueEvent takes ownership of the event object and the fact that wxRuby3
49
+ # tracks event objects we need some special handling.
50
+ # As WxW defined system events are not extensible in wxRuby3 need to have tracking removed and the
51
+ # Ruby object unlinked as WxW will take care of removing the C++ object later on and that will invalidate
52
+ # the tracking register.
53
+ # User defined events however need to maintain their tracking register as we need to keep
54
+ # the state of the linked Ruby objects. As WxW will clean up later we can however release ownership.
55
+ map_in code: <<~__CODE
56
+ $1 = (wxEvent*)DATA_PTR($input);
57
+ if (!wxRuby_Is_RubyEvent($1))
58
+ {
59
+ SWIG_RubyUnlinkObjects((void*)$1);
60
+ wxRuby_RemoveTracking((void*)$1);
61
+ }
62
+ else
63
+ {
64
+ // no need to do anything as c++ dtor will untrack/unlink
65
+ RDATA($input)->dfree = 0;
66
+ }
67
+ __CODE
68
+ end
46
69
 
47
70
  # add special mapping for event filters so we can accept the app instance as well
48
71
  # although Wx::App is not derived from Wx::EventFilter in wxRuby (no multiple inheritance)
@@ -71,6 +94,8 @@ module WXRuby3
71
94
  __CODE
72
95
  end
73
96
  spec.add_runtime_code <<~__HEREDOC
97
+ WXRUBY_TRACE_GUARD(WxRubyTraceEventHandlers, "EVENTS_HANDLER");
98
+
74
99
  static swig_class wxRuby_GetSwigClassWxEvtHandler();
75
100
  WXRUBY_EXPORT VALUE wxRuby_GetEventTypeClassMap();
76
101
 
@@ -110,7 +135,7 @@ module WXRuby3
110
135
  if (ex_caught)
111
136
  {
112
137
  #ifdef __WXRB_DEBUG__
113
- if (!rb_obj_is_kind_of(rc, rb_eSystemExit) && wxRuby_TraceLevel()>0)
138
+ if (!rb_obj_is_kind_of(rc, rb_eSystemExit) && WxRubyTraceEventHandlers.trace_level()>0)
114
139
  {
115
140
  wxRuby_PrintException(rc);
116
141
  }
@@ -264,7 +289,7 @@ module WXRuby3
264
289
  if (ex_caught)
265
290
  {
266
291
  #ifdef __WXRB_DEBUG__
267
- if (!rb_obj_is_kind_of(rc, rb_eSystemExit) && wxRuby_TraceLevel()>0)
292
+ if (!rb_obj_is_kind_of(rc, rb_eSystemExit) && WxRubyTraceEventHandlers.trace_level()>0)
268
293
  {
269
294
  wxRuby_PrintException(rc);
270
295
  }
@@ -17,6 +17,9 @@ module WXRuby3
17
17
  def setup
18
18
  super
19
19
  spec.items.clear
20
+ if Config.instance.wx_version_check('3.3.0') >= 0
21
+ spec.add_header_code '#include <wx/busycursor.h>'
22
+ end
20
23
  spec.add_header_code <<~__HEREDOC
21
24
  #include <wx/image.h>
22
25
  #include <wx/app.h>
@@ -201,7 +204,13 @@ module WXRuby3
201
204
  end
202
205
  spec.map_apply 'int *OUTPUT' => ['int *indexDefaultExtension']
203
206
  # hardcoded interface declarations
207
+ if Config.instance.wx_version_check('3.3.0') >= 0
208
+ spec.add_interface_code 'void wxBeginBusyCursor(const wxCursorBundle& cursors);'
209
+ end
204
210
  spec.add_interface_code <<~__HEREDOC
211
+ void wxBeginBusyCursor(const wxCursor* cursor = wxHOURGLASS_CURSOR);
212
+ void wxEndBusyCursor();
213
+
205
214
  bool wxSafeYield(wxWindow* win = NULL, bool onlyIfNeeded = false);
206
215
 
207
216
  // Dialog shortcuts
@@ -173,6 +173,11 @@ module WXRuby3
173
173
  (*$self) = rect;
174
174
  }
175
175
  __HEREDOC
176
+ if Config.instance.wx_version_check('3.3.0') >= 0
177
+ # unwanted overloads
178
+ spec.ignore 'wxRect2DDouble::Inflate(wxDouble,wxDouble) const',
179
+ 'wxRect2DDouble::Deflate(wxDouble,wxDouble) const'
180
+ end
176
181
  # implement in pure Ruby
177
182
  spec.ignore 'wxRect2DDouble::Intersect(const wxRect2DDouble &, const wxRect2DDouble &, wxRect2DDouble *)',
178
183
  'wxRect2DDouble::Union(const wxRect2DDouble &, const wxRect2DDouble &, wxRect2DDouble *)',