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
@@ -0,0 +1,26 @@
1
+ ---
2
+ :wxRichToolTip:
3
+ :detail:
4
+ :pre:
5
+ :para:
6
+ - :pattern: !ruby/regexp /The images below show some examples.*/
7
+ :replace: |
8
+
9
+ :programlisting:
10
+ - :pattern: !ruby/regexp /.*/
11
+ :replace: |
12
+
13
+ ```ruby
14
+ password = Wx::TextCtrl.new(..., style: Wx::TE_PASSWORD)
15
+ # ...
16
+ tip = Wx::RichToolTip.new("Caps Lock is on",
17
+ "You might have made an error in your password\n" +
18
+ "entry because Caps Lock is turned on.\n" +
19
+ "\n" +
20
+ "Press Caps Lock key to turn it off.")
21
+ tip.set_icon(Wx::ICON_WARNING)
22
+ tip.show_for(password)
23
+ ```
24
+ :post:
25
+ - :pattern: !ruby/regexp /<div class='appearance'>.*</table></div>/m
26
+ :subst: ''
@@ -49,7 +49,7 @@ module WXRuby3
49
49
  end
50
50
  table = { 'Wx' => {}}
51
51
  handle_module(Wx, table['Wx'])
52
- STDOUT.puts JSON.dump(table)
52
+ File.open(ARGV[0], 'w+') { |f| f << JSON.dump(table) }
53
53
  __SCRIPT
54
54
  STDERR.puts "* executing constants collection script:\n#{script}" if Director.trace?
55
55
  begin
@@ -57,22 +57,27 @@ module WXRuby3
57
57
  ftmp_name = tmpfile.path.dup
58
58
  tmpfile << script
59
59
  tmpfile.close(false)
60
- result = if Director.trace?
61
- Config.instance.run(ftmp_name, capture: :out, verbose: false)
62
- else
63
- Config.instance.run(ftmp_name, capture: :no_err, verbose: false)
64
- end
60
+ tmpconsts = Tempfile.new('constants')
61
+ fconsts_name = tmpconsts.path.dup
62
+ tmpconsts.close(false)
63
+ if Director.trace?
64
+ Config.instance.run(ftmp_name, fconsts_name, capture: :out, verbose: false)
65
+ else
66
+ Config.instance.run(ftmp_name, fconsts_name, capture: :no_err, verbose: false)
67
+ end
68
+ result = File.read(fconsts_name)
65
69
  STDERR.puts "* got constants collection output:\n#{result}" if Director.trace?
66
70
  begin
67
71
  db = JSON.load(result)
68
72
  rescue Exception
69
- File.open('constants_raw.json', "w") { |f| f << result } if Director.verbose?
73
+ # File.open('constants_raw.json', "w") { |f| f << result } if Director.verbose?
70
74
  ::Kernel.raise RuntimeError, "Exception loading constants collection result: #{$!.message.slice(0, 512)}", cause: nil
71
75
  end
72
76
  File.open('constants.json', "w") { |f| f << JSON.pretty_generate(db) } if Director.verbose?
73
77
  return db
74
78
  ensure
75
79
  File.unlink(ftmp_name)
80
+ File.unlink(fconsts_name)
76
81
  end
77
82
  end
78
83
 
@@ -262,6 +262,16 @@ module WXRuby3
262
262
  fout.puts extension
263
263
  fout.puts '};'
264
264
  end
265
+ item.innerclasses.each do |inner|
266
+ if inner.protection == 'public' && !inner.ignored && !inner.deprecated
267
+ extension = extend_code("#{class_name(item)}::#{class_name(inner)}")
268
+ unless extension.empty?
269
+ fout.puts "\n%extend #{class_name(item)}::#{class_name(inner)} {"
270
+ fout.puts extension
271
+ fout.puts '};'
272
+ end
273
+ end
274
+ end
265
275
  end
266
276
  end
267
277
  end
@@ -523,7 +533,12 @@ module WXRuby3
523
533
  typedefs = def_items.select {|item| Extractor::TypedefDef === item && !item.ignored }
524
534
  typedefs.each do |item|
525
535
  fout.puts
526
- fout.puts "#{item.definition};"
536
+ # work around problems with older doxygen and wxw < 3.3
537
+ if item.definition.start_with?('typedef')
538
+ fout.puts "#{item.definition};"
539
+ else # with older doxygen 'definition' is often not complete statement so we form it here
540
+ fout.puts "typedef #{item.type} #{item.name};"
541
+ end
527
542
  end
528
543
  fout.puts '' unless typedefs.empty?
529
544
  end
@@ -32,6 +32,7 @@ module WXRuby3
32
32
  Director.Spec(pkg, 'wxApp')
33
33
  Director.Spec(pkg, 'wxAppTraits')
34
34
  Director.Spec(pkg, 'wxConfigBase')
35
+ Director.Spec(pkg, 'wxDisplay')
35
36
  Director.Spec(pkg, 'wxDC')
36
37
  Director.Spec(pkg, 'wxWindowDC', director: Director::DerivedDC)
37
38
  Director.Spec(pkg, 'wxClientDC', director: Director::DerivedDC)
@@ -122,6 +123,7 @@ module WXRuby3
122
123
  Director.Spec(pkg, 'wxCursor')
123
124
  Director.Spec(pkg, 'wxRadioButton', director: Director::Window, requirements: %w[USE_RADIOBTN])
124
125
  Director.Spec(pkg, 'wxToolTip', requirements: %w[USE_TOOLTIPS])
126
+ Director.Spec(pkg, 'wxRichToolTip', requirements: %w[USE_RICHTOOLTIP])
125
127
  Director.Spec(pkg, 'wxLog', requirements: %w[USE_LOG])
126
128
  Director.Spec(pkg, 'wxToolBar', requirements: %w[USE_TOOLBAR])
127
129
  Director.Spec(pkg, 'wxImage', requirements: %w[USE_IMAGE])
@@ -211,7 +213,7 @@ module WXRuby3
211
213
  Director.Spec(pkg, 'wxDragDrop', requirements: %w[USE_DRAG_AND_DROP])
212
214
  Director.Spec(pkg, 'wxContextHelpButton', requirements: %w[USE_HELP])
213
215
  Director.Spec(pkg, 'wxHelpProvider', requirements: %w[USE_HELP])
214
- Director.Spec(pkg, 'wxTipWindow', requirements: %w[USE_HELP])
216
+ Director.Spec(pkg, 'wxTipWindow', requirements: %w[USE_TIPWINDOW])
215
217
  Director.Spec(pkg, 'wxHelpController', requirements: %w[USE_HELP])
216
218
  Director.Spec(pkg, 'wxExtHelpController', director: Director::HelpController, requirements: %w[USE_HELP])
217
219
  Director.Spec(pkg, 'wxTaskBarIconEvent', director: Director::Event, requirements: %w[USE_TASKBARICON])
@@ -24,8 +24,12 @@ module WXRuby3
24
24
  include Util::StringUtil
25
25
 
26
26
  def swig_major
27
+ swig_version.first
28
+ end
29
+
30
+ def swig_version
27
31
  check_swig unless swig_state
28
- (@swig_version || '').split('.').first.to_i
32
+ @swig_version
29
33
  end
30
34
 
31
35
  private
@@ -38,32 +42,28 @@ module WXRuby3
38
42
  !!@swig_state
39
43
  end
40
44
 
41
- def swig_version
42
- check_swig unless swig_state
43
- @swig_version
44
- end
45
-
46
45
  def check_swig
47
46
  begin
48
- @swig_version = `#{WXRuby3::Config.get_config('swig')} -version`[/\d+\.\d+\.\d+/]
47
+ swig_version_ = `#{WXRuby3::Config.get_config('swig')} -version`[/\d+\.\d+\.\d+/]
49
48
  rescue Exception
50
49
  $stderr.puts "ERROR: Could not run SWIG (#{WXRuby3::Config.get_config('swig')})"
51
50
  exit(1)
52
51
  end
53
52
 
54
53
  # Very old versions put --version on $stderr, not $stdout
55
- unless @swig_version
54
+ unless swig_version_
56
55
  $stderr.puts "Could not get version info from SWIG; " +
57
56
  "is a very old version installed?.\n"
58
57
  exit(1)
59
58
  end
60
59
 
61
- if @swig_version < SWIG_MINIMUM_VERSION
62
- $stderr.puts "SWIG version #{@swig_version} is installed, " +
60
+ if swig_version_ < SWIG_MINIMUM_VERSION
61
+ $stderr.puts "SWIG version #{swig_version_} is installed, " +
63
62
  "minimum version required is #{SWIG_MINIMUM_VERSION}.\n"
64
63
  exit(1)
65
64
  end
66
65
 
66
+ @swig_version = swig_version_.split('.').map(&:to_i)
67
67
  @swig_state = true
68
68
  end
69
69
 
@@ -0,0 +1,46 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 Common typemap definitions
7
+ ###
8
+
9
+ require_relative '../core/mapping'
10
+
11
+ module WXRuby3
12
+
13
+ module Typemap
14
+
15
+ # These typemaps are used by AUI classes to convert wxAuiTabCtrl pointers
16
+ # into lightweight wrapper objects
17
+ module AuiTabCtrl
18
+
19
+ include Typemap::Module
20
+
21
+ define do
22
+
23
+ map 'wxAuiTabCtrl*' => 'Wx::AUI::AuiTabCtrl' do
24
+
25
+ add_header_code <<~__CODE
26
+ // implemented in TreeEvent.cpp
27
+ extern VALUE _wxRuby_Wrap_wxAuiTabCtrl(wxAuiTabCtrl* wxATC);
28
+ extern wxAuiTabCtrl* _wxRuby_Unwrap_wxAuiTabCtrl(VALUE rbATC);
29
+ extern bool _wxRuby_Is_wxAuiTabCtrl(VALUE rbATC);
30
+ __CODE
31
+
32
+ map_in temp: 'wxAuiTabCtrl *tmpATC', code: <<~__CODE
33
+ if ($input != Qnil) tmpATC = _wxRuby_Unwrap_wxAuiTabCtrl($input);
34
+ $1 = tmpATC;
35
+ __CODE
36
+
37
+ map_out code: '$result = _wxRuby_Wrap_wxAuiTabCtrl($1);'
38
+ end
39
+
40
+ end # define
41
+
42
+ end # AuiTabCtrl
43
+
44
+ end # Typemap
45
+
46
+ end # WXRuby3
@@ -565,7 +565,7 @@ module WXRuby3
565
565
  map 'wxUpdateUIEvent &' => 'Wx::UpdateUIEvent' do
566
566
  map_directorin code: <<~__CODE
567
567
  #ifdef __WXRB_DEBUG__
568
- $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
568
+ $input = wxRuby_WrapWxEventInRuby(const_cast<void*>((const void*)this), static_cast<wxEvent*> (&$1));
569
569
  #else
570
570
  $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
571
571
  #endif
@@ -577,7 +577,7 @@ module WXRuby3
577
577
  map 'wxCommandEvent &' => 'Wx::CommandEvent' do
578
578
  map_directorin code: <<~__CODE
579
579
  #ifdef __WXRB_DEBUG__
580
- $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
580
+ $input = wxRuby_WrapWxEventInRuby(const_cast<void*>((const void*)this), static_cast<wxEvent*> (&$1));
581
581
  #else
582
582
  $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
583
583
  #endif
@@ -598,7 +598,7 @@ module WXRuby3
598
598
  map 'wxKeyEvent &' => 'Wx::KeyEvent' do
599
599
  map_directorin code: <<~__CODE
600
600
  #ifdef __WXRB_DEBUG__
601
- $input = wxRuby_WrapWxEventInRuby(this, static_cast<wxEvent*> (&$1));
601
+ $input = wxRuby_WrapWxEventInRuby(const_cast<void*>((const void*)this), static_cast<wxEvent*> (&$1));
602
602
  #else
603
603
  $input = wxRuby_WrapWxEventInRuby(static_cast<wxEvent*> (&$1));
604
604
  #endif
@@ -54,17 +54,45 @@ module WXRuby3
54
54
 
55
55
  map 'std::vector<wxPrintPageRange> &' => 'Array<Wx::PRT::PrintPageRange>' do
56
56
 
57
- map_in temp: 'std::vector<wxPrintPageRange> tmp_vector', code: '$1 = &tmp_vector;'
57
+ map_in temp: 'std::vector<wxPrintPageRange> tmp', code: <<~__CODE
58
+ if (TYPE($input) == T_ARRAY)
59
+ {
60
+ $1 = &tmp;
61
+ for (int i = 0; i < RARRAY_LEN($input); i++)
62
+ {
63
+ void *ptr;
64
+ VALUE r_range = rb_ary_entry($input, i);
65
+ int res = SWIG_ConvertPtr(r_range, &ptr, SWIGTYPE_p_wxPrintPageRange, 0);
66
+ if (!SWIG_IsOK(res) || !ptr) {
67
+ rb_raise(rb_eTypeError, "Expected Array of Wx::PRT::PrintPageRange for 1");
68
+ }
69
+ wxPrintPageRange *range = reinterpret_cast< wxPrintPageRange * >(ptr);
70
+ $1->push_back(*range);
71
+ }
72
+ }
73
+ else {
74
+ rb_raise(rb_eArgError, "Expected Array of Wx::PRT::PrintPageRange for 1");
75
+ }
76
+ __CODE
58
77
 
59
78
  map_argout code: <<~__CODE
79
+ VALUE rb_ranges = rb_ary_new();
60
80
  for (const wxPrintPageRange& range : *$1)
61
81
  {
62
- VALUE r_range = SWIG_NewPointerObj(new wxPrintPageRange(range), SWIGTYPE_p_wxPrintPageRange, SWIG_POINTER_OWN);
63
- rb_ary_push($input, r_range);
82
+ VALUE rb_range = SWIG_NewPointerObj(new wxPrintPageRange(range), SWIGTYPE_p_wxPrintPageRange, SWIG_POINTER_OWN);
83
+ rb_ary_push(rb_ranges, rb_range);
64
84
  }
85
+ $result = SWIG_AppendOutput($result, rb_ranges);
65
86
  __CODE
66
87
 
67
- map_directorin code: '$input = rb_ary_new();'
88
+ map_directorin code: <<~__CODE
89
+ $input = rb_ary_new();
90
+ for (const wxPrintPageRange& range : $1)
91
+ {
92
+ VALUE rb_range = SWIG_NewPointerObj(new wxPrintPageRange(range), SWIGTYPE_p_wxPrintPageRange, SWIG_POINTER_OWN);
93
+ rb_ary_push($input, rb_range);
94
+ }
95
+ __CODE
68
96
 
69
97
  map_directorargout code: <<~__CODE
70
98
  for (int i = 0; i < RARRAY_LEN($result); i++)
@@ -83,10 +111,6 @@ module WXRuby3
83
111
 
84
112
  end
85
113
  end
86
- # Doc only mapping def
87
- map 'std::vector<wxPrintPageRange> &' => 'Array<Wx::PRT::PrintPageRange>', swig: false do
88
- map_in
89
- end
90
114
 
91
115
  end
92
116
 
Binary file
@@ -23,6 +23,7 @@ module CalendarTest
23
23
  Calendar_Cal_Year = 204
24
24
  Calendar_Cal_SeqMonth = 205
25
25
  Calendar_Cal_SurroundWeeks = 206
26
+ Calendar_Cal_Generic = 207
26
27
 
27
28
  Calendar_DatePicker_AskDate = 300
28
29
  Calendar_DatePicker_ShowCentury = 301
@@ -75,6 +76,51 @@ module CalendarTest
75
76
  end
76
77
  end
77
78
 
79
+ class MyGenericCalendar < GenericCalendarCtrl
80
+ attr_reader :date
81
+
82
+ def initialize(parent, display_frame, initial_date, calendar_flags)
83
+ super( parent,
84
+ :date => initial_date,
85
+ :style => calendar_flags | Wx::RAISED_BORDER)
86
+
87
+ @display = display_frame
88
+ @date = initial_date
89
+ @weekday_names = %w|Sun Mon Tue Wed Thu Fri Sat|
90
+
91
+ evt_calendar self, :on_calendar
92
+ evt_calendar_sel_changed self, :on_calendar_change
93
+ evt_calendar_weekday_clicked self, :on_calendar_weekday_click
94
+ evt_right_down :on_hit_test
95
+ end
96
+
97
+ def on_calendar(event)
98
+ @display.date = event.date
99
+ end
100
+
101
+ def on_calendar_change(event)
102
+ @date = event.date
103
+ Wx.log_status("Selected date: #{@date.strftime('%A %d %B %Y')}")
104
+ end
105
+
106
+ def on_calendar_weekday_click(event)
107
+ wday = event.week_day
108
+ Wx.log_status("Clicked on #{@weekday_names[wday]}")
109
+ end
110
+
111
+ def on_hit_test(event)
112
+ hit = hit_test(event.position)
113
+ case hit
114
+ when Time, DateTime
115
+ Wx.log_status("Hit-test: date #{hit}")
116
+ when Fixnum
117
+ Wx.log_status("Hit-test: weekday header #{hit}")
118
+ when NilClass
119
+ Wx.log_status("Hit-test: Nothing")
120
+ end
121
+ end
122
+ end
123
+
78
124
  class MyFrame < Frame
79
125
  def initialize(title)
80
126
  super(nil, -1, title)
@@ -102,12 +148,18 @@ module CalendarTest
102
148
  evt_menu Calendar_Cal_Month, :on_cal_allow_month
103
149
  evt_menu Calendar_Cal_Year, :on_cal_allow_year if Wx::PLATFORM == 'WXOSX'
104
150
 
151
+ evt_menu Calendar_Cal_Generic, :on_cal_use_generic
152
+
105
153
  evt_menu Calendar_Cal_SeqMonth, :on_cal_seq_month
106
154
  evt_menu Calendar_Cal_SurroundWeeks, :on_cal_show_surrounding_weeks
107
155
 
108
156
  evt_update_ui Calendar_Cal_Year, :on_allow_year_update
109
157
  end
110
158
 
159
+ protected def calendar_klass
160
+ get_menu_bar.is_checked(Calendar_Cal_Generic) ? MyGenericCalendar : MyCalendar
161
+ end
162
+
111
163
  def add_menu_bar
112
164
  # create a menu bar
113
165
  menu_file = Wx::Menu.new
@@ -142,6 +194,10 @@ module CalendarTest
142
194
  menu_cal.append(Calendar_Cal_Year, "&Year can be changed\tCtrl-Y",
143
195
  "Allow changing the year in the calendar",
144
196
  Wx::ITEM_CHECK) if Wx::PLATFORM == 'WXOSX'
197
+ menu_cal.append_separator
198
+ menu_cal.append(Calendar_Cal_Generic, "Use generic control",
199
+ "Use Generic Calendar control",
200
+ Wx::ITEM_CHECK)
145
201
 
146
202
  menu_date = Wx::Menu.new
147
203
  menu_date.append_check_item(Calendar_DatePicker_ShowCentury, "Al&ways show century")
@@ -216,6 +272,13 @@ module CalendarTest
216
272
  @calendar.enable_year_change(allow)
217
273
  end
218
274
 
275
+ def on_cal_use_generic(_event)
276
+ calendar = calendar_klass.new(@panel, self, Wx::DEFAULT_DATE_TIME, @calendar_flags)
277
+ @sizer.replace(@calendar, calendar)
278
+ @calendar.destroy
279
+ @calendar = calendar
280
+ end
281
+
219
282
  def on_cal_seq_month(event)
220
283
  allow = get_menu_bar.is_checked(event.get_id)
221
284
  toggle_cal_style(allow, Wx::CAL_SEQUENTIAL_MONTH_SELECTION)
@@ -271,7 +334,7 @@ module CalendarTest
271
334
  else
272
335
  style &= ~flag
273
336
  end
274
- @calendar = MyCalendar.new(@panel, self, date, style)
337
+ @calendar = calendar_klass.new(@panel, self, date, style)
275
338
  @sizer.add(@calendar, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
276
339
  @panel.layout
277
340
  end
@@ -42,6 +42,8 @@ module Dialogs
42
42
  DIALOGS_REPLACE = 27
43
43
  DIALOGS_PREFS = 28
44
44
  DIALOGS_PREFS_TOOLBOOK = 29
45
+ DIALOGS_SHOW_TIP = 30
46
+ DIALOGS_RICHTIP_DIALOG = 31
45
47
 
46
48
  class MyTipProvider < Wx::TipProvider
47
49
  TIPS = [
@@ -251,6 +253,8 @@ module Dialogs
251
253
 
252
254
  @find_data = Wx::FindReplaceData.new
253
255
 
256
+ @tipRef = nil
257
+
254
258
  @ext_def = ""
255
259
  @index = -1
256
260
  @index_2 = -1
@@ -289,6 +293,9 @@ module Dialogs
289
293
  evt_find_replace(-1, :on_find_dialog)
290
294
  evt_find_replace_all(-1, :on_find_dialog)
291
295
  evt_find_close(-1, :on_find_dialog)
296
+ evt_menu(DIALOGS_SHOW_TIP, :on_show_tip_window)
297
+ evt_menu(DIALOGS_RICHTIP_DIALOG, :on_show_rich_tip)
298
+ evt_update_ui(DIALOGS_SHOW_TIP, :on_update_show_tip_ui)
292
299
  evt_menu(Wx::ID_EXIT, :on_exit)
293
300
 
294
301
  end
@@ -613,6 +620,169 @@ module Dialogs
613
620
 
614
621
  end
615
622
 
623
+ class RichTipDialog < Wx::Dialog
624
+
625
+ Icon_None = 0
626
+ Icon_Info = 1
627
+ Icon_Warning = 2
628
+ Icon_Error = 3
629
+ Icon_Custom = 4
630
+ Icon_Max = 5
631
+
632
+ Bg_Default = 0
633
+ Bg_Solid = 0
634
+ Bg_Gradient = 0
635
+ Bg_Max = 0
636
+
637
+ Timeout_None = 0
638
+ Timeout_Default = 1
639
+ Timeout_3sec = 2
640
+ Timeout_Max = 3
641
+
642
+ def initialize(parent)
643
+ super(parent, Wx::ID_ANY, "wxRichToolTip Test",
644
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
645
+ Wx::DEFAULT_DIALOG_STYLE | Wx::RESIZE_BORDER)
646
+ # Create the controls.
647
+ @textTitle = Wx::TextCtrl.new(self, Wx::ID_ANY, "Tooltip title")
648
+ @textBody = Wx::TextCtrl.new(self, Wx::ID_ANY, "Main tooltip text\n" \
649
+ "possibly on several\n" \
650
+ "lines.",
651
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
652
+ Wx::TE_MULTILINE)
653
+ btnShowText = Wx::Button.new(self, Wx::ID_ANY, "Show for &text")
654
+ btnShowBtn = Wx::Button.new(self, Wx::ID_ANY, "Show for &button")
655
+
656
+ icon_names = %w[&None &Information &Warning &Error &Custom]
657
+ @icons = Wx::RadioBox.new(self, Wx::ID_ANY, "&Icon choice:",
658
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
659
+ icon_names,
660
+ 1, Wx::RA_SPECIFY_ROWS)
661
+ @icons.set_selection(Icon_Info)
662
+
663
+ tip_kinds = [ "&None", "Top left", "Top", "Top right",
664
+ "Bottom left", "Bottom", "Bottom right", "&Auto" ]
665
+ @tipKinds = Wx::RadioBox.new(self, Wx::ID_ANY, "Tip &kind:",
666
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
667
+ tip_kinds,
668
+ 4, Wx::RA_SPECIFY_COLS)
669
+ @tipKinds.set_selection(Wx::TipKind_Auto)
670
+
671
+ bg_styles = %w[&Default &Solid &Gradient]
672
+ @bgStyles = Wx::RadioBox.new(self, Wx::ID_ANY, "Background style:",
673
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
674
+ bg_styles,
675
+ 1, Wx::RA_SPECIFY_ROWS)
676
+
677
+ timeout_nms = [ "&None", "&Default (no delay)", "&3 seconds" ]
678
+ @timeouts = Wx::RadioBox.new(self, Wx::ID_ANY, "Timeout:",
679
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
680
+ timeout_nms,
681
+ 1, Wx::RA_SPECIFY_ROWS)
682
+ @timeouts.set_selection(Timeout_Default)
683
+ @timeDelay = Wx::CheckBox.new(self, Wx::ID_ANY, "Delay show" )
684
+
685
+ # Lay them out.
686
+ @textBody.set_min_size([300, 200])
687
+
688
+ sizer = Wx::VBoxSizer.new
689
+ sizer.add(@textTitle, Wx::SizerFlags.new.expand.border)
690
+ sizer.add(@textBody, Wx::SizerFlags.new(1).expand.border)
691
+ sizer.add(@icons, Wx::SizerFlags.new.expand.border)
692
+ sizer.add(@tipKinds, Wx::SizerFlags.new.centre.border)
693
+ sizer.add(@bgStyles, Wx::SizerFlags.new.centre.border)
694
+ sizer.add(@timeouts, Wx::SizerFlags.new.centre.border)
695
+ sizer.add(@timeDelay, Wx::SizerFlags.new.centre.border)
696
+ sizerBtns = Wx::HBoxSizer.new
697
+ sizerBtns.add(btnShowText, Wx::SizerFlags.new.border(Wx::RIGHT))
698
+ sizerBtns.add(btnShowBtn, Wx::SizerFlags.new.border(Wx::LEFT))
699
+ sizer.add(sizerBtns, Wx::SizerFlags.new.centre.border)
700
+ sizer.add(create_std_dialog_button_sizer(Wx::OK),
701
+ Wx::SizerFlags.new.expand.border)
702
+ set_sizer_and_fit(sizer)
703
+
704
+
705
+ # And connect the event handlers.
706
+ evt_button(btnShowText, :on_show_tip_for_text)
707
+ evt_button(btnShowBtn, :on_show_tip_for_btn)
708
+ end
709
+
710
+ private
711
+
712
+ def on_show_tip_for_text(_event)
713
+ do_show_tip(@textTitle)
714
+ end
715
+
716
+ def on_show_tip_for_btn(_event)
717
+ do_show_tip(find_window_by_id(Wx::ID_OK))
718
+ end
719
+
720
+ def do_show_tip(win)
721
+ tip = Wx::RichToolTip.new(@textTitle.value, @textBody.value)
722
+ iconSel = @icons.get_selection
723
+ if iconSel == Icon_Custom
724
+ tip.set_icon(Wx.Icon(:tip, art_path: __dir__))
725
+ else # Use a standard icon.
726
+ stdIcons =[
727
+ Wx::ICON_NONE,
728
+ Wx::ICON_INFORMATION,
729
+ Wx::ICON_WARNING,
730
+ Wx::ICON_ERROR
731
+ ]
732
+
733
+ tip.set_icon(stdIcons[iconSel])
734
+ end
735
+
736
+ case @bgStyles.get_selection
737
+ when Bg_Solid
738
+ tip.set_background_colour(Wx::LIGHT_GREY)
739
+ when Bg_Gradient
740
+ tip.set_background_colour(Wx::WHITE, Wx::Colour.new(0xe4, 0xe5, 0xf0))
741
+ else
742
+ #
743
+ end
744
+
745
+ delay = @timeDelay.is_checked ? 500 : 0
746
+
747
+ case @timeouts.get_selection
748
+ when Timeout_None
749
+ # Don't call SetTimeout unnecessarily
750
+ # or msw will show generic impl
751
+ tip.set_timeout(0, delay) if delay > 0
752
+ when Timeout_3sec
753
+ tip.set_timeout(3000, delay)
754
+ else
755
+ #
756
+ end
757
+
758
+ tip.set_tip_kind(Wx::TipKind.new(@tipKinds.get_selection))
759
+
760
+ tip.show_for(win)
761
+ end
762
+
763
+ end
764
+
765
+ def on_show_rich_tip(_event)
766
+ MyFrame.RichTipDialog(self)
767
+ end
768
+
769
+ def on_show_tip_window(_event)
770
+ if @tipRef&.ok?
771
+ @tipRef.tip_window.close
772
+ else
773
+ @tipRef = Wx::TipWindow::new_tip(
774
+ self,
775
+ "This is just some text to be shown in the tip " \
776
+ "window, broken into multiple lines, each less " \
777
+ "than 60 logical pixels wide.",
778
+ from_dip(60))
779
+ end
780
+ end
781
+
782
+ def on_update_show_tip_ui(event)
783
+ event.check(!!@tipRef&.ok?)
784
+ end
785
+
616
786
  def on_exit(_event)
617
787
  close(true)
618
788
  end
@@ -832,6 +1002,8 @@ module Dialogs
832
1002
  file_menu.append_separator
833
1003
  file_menu.append(DIALOGS_TIP, "&Tip of the day\tCtrl-T")
834
1004
  file_menu.append(DIALOGS_CUSTOM_TIP, "Custom tip of the day")
1005
+ file_menu.append_check_item(DIALOGS_SHOW_TIP, "Show &tip window\tShift-Ctrl-H")
1006
+ file_menu.append(DIALOGS_RICHTIP_DIALOG, "Rich &tooltip dialog...\tCtrl-H")
835
1007
  file_menu.append_separator
836
1008
  file_menu.append(DIALOGS_FILE_OPEN, "&Open file\tCtrl-O")
837
1009
  file_menu.append(DIALOGS_FILE_OPEN2, "&Second open file\tCtrl-2")