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.
- checksums.yaml +4 -4
- data/CREDITS.md +32 -25
- data/INSTALL.md +21 -6
- data/README.md +5 -5
- data/assets/repo-social-preview.odg +0 -0
- data/assets/repo-social-preview.xcf +0 -0
- data/ext/wxruby3/include/wxRubyApp.h +58 -45
- data/ext/wxruby3/include/wxruby-runtime.h +78 -1
- data/ext/wxruby3/swig/common.i +2 -2
- data/ext/wxruby3/swig/custom/director.swg +2 -2
- data/ext/wxruby3/swig/custom/rubyprimtypes.swg +59 -15
- data/ext/wxruby3/swig/custom/rubyrun.swg +4 -0
- data/ext/wxruby3/swig/custom/rubytracking.swg +4 -0
- data/ext/wxruby3/swig/custom/swiglabels.swg +129 -0
- data/ext/wxruby3/swig/custom/swigrun.swg +15 -0
- data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +20 -0
- data/ext/wxruby3/swig/mark_free_impl.i +154 -88
- data/ext/wxruby3/swig/memory_management.i +1 -0
- data/ext/wxruby3/swig/wx.i +73 -44
- data/lib/wx/aui/events/evt_list.rb +148 -0
- data/lib/wx/aui/require.rb +0 -1
- data/lib/wx/core/calendar_ctrl.rb +15 -0
- data/lib/wx/core/clipboard.rb +9 -13
- data/lib/wx/core/config.rb +1 -1
- data/lib/wx/core/events/evt_list.rb +1458 -0
- data/lib/wx/core/font/encoding.rb +113 -0
- data/lib/wx/core/generic_validator.rb +83 -31
- data/lib/wx/core/tipwindow.rb +16 -0
- data/lib/wx/core/variant.rb +6 -0
- data/lib/wx/doc/aui/auitabctrl.rb +35 -0
- data/lib/wx/doc/config.rb +2 -2
- data/lib/wx/doc/functions.rb +1 -1
- data/lib/wx/doc/gen/about_dialog_info.rb +330 -0
- data/lib/wx/doc/gen/accelerator.rb +178 -0
- data/lib/wx/doc/gen/activity_indicator.rb +83 -0
- data/lib/wx/doc/gen/affine_matrix2d.rb +284 -0
- data/lib/wx/doc/gen/animation.rb +275 -0
- data/lib/wx/doc/gen/animation_ctrl.rb +300 -0
- data/lib/wx/doc/gen/any_button.rb +191 -0
- data/lib/wx/doc/gen/app.rb +463 -0
- data/lib/wx/doc/gen/app_traits.rb +396 -0
- data/lib/wx/doc/gen/art_provider.rb +605 -0
- data/lib/wx/doc/gen/aui/aui_dock_art.rb +455 -0
- data/lib/wx/doc/gen/aui/aui_floating_frame.rb +54 -0
- data/lib/wx/doc/gen/aui/aui_manager.rb +847 -0
- data/lib/wx/doc/gen/aui/aui_manager_event.rb +131 -0
- data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +180 -0
- data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +59 -0
- data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +130 -0
- data/lib/wx/doc/gen/aui/aui_notebook.rb +631 -0
- data/lib/wx/doc/gen/aui/aui_notebook_event.rb +233 -0
- data/lib/wx/doc/gen/aui/aui_pane_info.rb +769 -0
- data/lib/wx/doc/gen/aui/aui_tab_art.rb +352 -0
- data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +14 -0
- data/lib/wx/doc/gen/aui/aui_tool_bar.rb +510 -0
- data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +340 -0
- data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +244 -0
- data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +257 -0
- data/lib/wx/doc/gen/aui/event_list.rb +179 -0
- data/lib/wx/doc/gen/banner_window.rb +124 -0
- data/lib/wx/doc/gen/bitmap.rb +731 -0
- data/lib/wx/doc/gen/bitmap_button.rb +123 -0
- data/lib/wx/doc/gen/bitmap_combo_box.rb +221 -0
- data/lib/wx/doc/gen/book_ctrl_base.rb +273 -0
- data/lib/wx/doc/gen/book_ctrl_event.rb +66 -0
- data/lib/wx/doc/gen/box_sizer.rb +85 -0
- data/lib/wx/doc/gen/brush.rb +251 -0
- data/lib/wx/doc/gen/busy_info.rb +157 -0
- data/lib/wx/doc/gen/button.rb +182 -0
- data/lib/wx/doc/gen/calculate_layout_event.rb +62 -0
- data/lib/wx/doc/gen/calendar_ctrl.rb +505 -0
- data/lib/wx/doc/gen/calendar_date_attr.rb +138 -0
- data/lib/wx/doc/gen/calendar_event.rb +147 -0
- data/lib/wx/doc/gen/caret.rb +97 -0
- data/lib/wx/doc/gen/check_box.rb +175 -0
- data/lib/wx/doc/gen/check_list_box.rb +121 -0
- data/lib/wx/doc/gen/choice.rb +175 -0
- data/lib/wx/doc/gen/choicebook.rb +116 -0
- data/lib/wx/doc/gen/client_dc.rb +43 -0
- data/lib/wx/doc/gen/clipboard.rb +144 -0
- data/lib/wx/doc/gen/collapsible_pane.rb +138 -0
- data/lib/wx/doc/gen/collapsible_pane_event.rb +46 -0
- data/lib/wx/doc/gen/colour.rb +333 -0
- data/lib/wx/doc/gen/colour_dialog.rb +190 -0
- data/lib/wx/doc/gen/colour_picker_ctrl.rb +110 -0
- data/lib/wx/doc/gen/colour_picker_event.rb +77 -0
- data/lib/wx/doc/gen/combo_box.rb +292 -0
- data/lib/wx/doc/gen/combo_ctrl.rb +662 -0
- data/lib/wx/doc/gen/command_link_button.rb +134 -0
- data/lib/wx/doc/gen/config_base.rb +10 -0
- data/lib/wx/doc/gen/context_help_button.rb +109 -0
- data/lib/wx/doc/gen/control.rb +277 -0
- data/lib/wx/doc/gen/control_with_items.rb +253 -0
- data/lib/wx/doc/gen/core.rb +45 -0
- data/lib/wx/doc/gen/credential_entry_dialog.rb +137 -0
- data/lib/wx/doc/gen/cursor.rb +193 -0
- data/lib/wx/doc/gen/data_format.rb +85 -0
- data/lib/wx/doc/gen/data_object.rb +436 -0
- data/lib/wx/doc/gen/data_object_simple_base.rb +10 -0
- data/lib/wx/doc/gen/date_event.rb +49 -0
- data/lib/wx/doc/gen/date_picker_ctrl.rb +161 -0
- data/lib/wx/doc/gen/dc.rb +1631 -0
- data/lib/wx/doc/gen/dc_overlay.rb +102 -0
- data/lib/wx/doc/gen/defs.rb +2802 -0
- data/lib/wx/doc/gen/dial_up_event.rb +45 -0
- data/lib/wx/doc/gen/dial_up_manager.rb +149 -0
- data/lib/wx/doc/gen/dialog.rb +541 -0
- data/lib/wx/doc/gen/dir_dialog.rb +164 -0
- data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +90 -0
- data/lib/wx/doc/gen/dir_picker_ctrl.rb +125 -0
- data/lib/wx/doc/gen/display.rb +238 -0
- data/lib/wx/doc/gen/drag_drop.rb +299 -0
- data/lib/wx/doc/gen/drag_image.rb +116 -0
- data/lib/wx/doc/gen/editable_list_box.rb +109 -0
- data/lib/wx/doc/gen/event.rb +990 -0
- data/lib/wx/doc/gen/event_blocker.rb +50 -0
- data/lib/wx/doc/gen/event_filter.rb +92 -0
- data/lib/wx/doc/gen/event_list.rb +1644 -0
- data/lib/wx/doc/gen/events.rb +2809 -0
- data/lib/wx/doc/gen/evt_handler.rb +229 -0
- data/lib/wx/doc/gen/ext_help_controller.rb +109 -0
- data/lib/wx/doc/gen/file_ctrl.rb +231 -0
- data/lib/wx/doc/gen/file_ctrl_event.rb +83 -0
- data/lib/wx/doc/gen/file_dialog.rb +353 -0
- data/lib/wx/doc/gen/file_dialog_custom_control.rb +165 -0
- data/lib/wx/doc/gen/file_dialog_customize_hook.rb +158 -0
- data/lib/wx/doc/gen/file_dir_picker_event.rb +100 -0
- data/lib/wx/doc/gen/file_picker_ctrl.rb +132 -0
- data/lib/wx/doc/gen/file_system.rb +232 -0
- data/lib/wx/doc/gen/find_dialog_event.rb +126 -0
- data/lib/wx/doc/gen/find_replace_data.rb +60 -0
- data/lib/wx/doc/gen/find_replace_dialog.rb +58 -0
- data/lib/wx/doc/gen/flex_grid_sizer.rb +199 -0
- data/lib/wx/doc/gen/font.rb +1379 -0
- data/lib/wx/doc/gen/font_data.rb +151 -0
- data/lib/wx/doc/gen/font_dialog.rb +88 -0
- data/lib/wx/doc/gen/font_picker_ctrl.rb +143 -0
- data/lib/wx/doc/gen/font_picker_event.rb +65 -0
- data/lib/wx/doc/gen/frame.rb +352 -0
- data/lib/wx/doc/gen/fs_file.rb +337 -0
- data/lib/wx/doc/gen/functions.rb +10 -0
- data/lib/wx/doc/gen/gauge.rb +157 -0
- data/lib/wx/doc/gen/gb_sizer_item.rb +68 -0
- data/lib/wx/doc/gen/gcdc.rb +46 -0
- data/lib/wx/doc/gen/gdi_common.rb +1271 -0
- data/lib/wx/doc/gen/gdi_object.rb +31 -0
- data/lib/wx/doc/gen/generic_about_dialog.rb +140 -0
- data/lib/wx/doc/gen/generic_dir_ctrl.rb +223 -0
- data/lib/wx/doc/gen/geometry.rb +661 -0
- data/lib/wx/doc/gen/graphics_context.rb +1184 -0
- data/lib/wx/doc/gen/graphics_object.rb +750 -0
- data/lib/wx/doc/gen/grid/event_list.rb +191 -0
- data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +40 -0
- data/lib/wx/doc/gen/grid/grid_cell_attr.rb +280 -0
- data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +35 -0
- data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +37 -0
- data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +49 -0
- data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +35 -0
- data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +46 -0
- data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +38 -0
- data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +45 -0
- data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +40 -0
- data/lib/wx/doc/gen/grid/grid_cell_editor.rb +197 -0
- data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +39 -0
- data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +44 -0
- data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +45 -0
- data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +79 -0
- data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +46 -0
- data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +35 -0
- data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +108 -0
- data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +35 -0
- data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +49 -0
- data/lib/wx/doc/gen/grid/grid_ctrl.rb +3002 -0
- data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +95 -0
- data/lib/wx/doc/gen/grid/grid_event.rb +129 -0
- data/lib/wx/doc/gen/grid/grid_range_select_event.rb +104 -0
- data/lib/wx/doc/gen/grid/grid_size_event.rb +85 -0
- data/lib/wx/doc/gen/grid/grid_string_table.rb +142 -0
- data/lib/wx/doc/gen/grid/grid_table_base.rb +317 -0
- data/lib/wx/doc/gen/grid/grid_table_message.rb +81 -0
- data/lib/wx/doc/gen/grid_bag_sizer.rb +323 -0
- data/lib/wx/doc/gen/grid_sizer.rb +195 -0
- data/lib/wx/doc/gen/gui_event_loop.rb +159 -0
- data/lib/wx/doc/gen/h_scrolled_window.rb +562 -0
- data/lib/wx/doc/gen/header_ctrl.rb +880 -0
- data/lib/wx/doc/gen/header_ctrl_event.rb +133 -0
- data/lib/wx/doc/gen/help_controller.rb +195 -0
- data/lib/wx/doc/gen/help_provider.rb +98 -0
- data/lib/wx/doc/gen/html/event_list.rb +38 -0
- data/lib/wx/doc/gen/html/html_cell.rb +536 -0
- data/lib/wx/doc/gen/html/html_cell_event.rb +69 -0
- data/lib/wx/doc/gen/html/html_data_object.rb +42 -0
- data/lib/wx/doc/gen/html/html_easy_printing.rb +203 -0
- data/lib/wx/doc/gen/html/html_help_controller.rb +340 -0
- data/lib/wx/doc/gen/html/html_help_data.rb +159 -0
- data/lib/wx/doc/gen/html/html_help_window.rb +258 -0
- data/lib/wx/doc/gen/html/html_link_event.rb +41 -0
- data/lib/wx/doc/gen/html/html_list_box.rb +346 -0
- data/lib/wx/doc/gen/html/html_printout.rb +109 -0
- data/lib/wx/doc/gen/html/html_window.rb +461 -0
- data/lib/wx/doc/gen/hyperlink_ctrl.rb +311 -0
- data/lib/wx/doc/gen/hyperlink_event.rb +44 -0
- data/lib/wx/doc/gen/icon.rb +267 -0
- data/lib/wx/doc/gen/icon_location.rb +40 -0
- data/lib/wx/doc/gen/image.rb +1371 -0
- data/lib/wx/doc/gen/image_list.rb +168 -0
- data/lib/wx/doc/gen/info_bar.rb +195 -0
- data/lib/wx/doc/gen/keyboard_state.rb +140 -0
- data/lib/wx/doc/gen/list_box.rb +304 -0
- data/lib/wx/doc/gen/list_ctrl.rb +1774 -0
- data/lib/wx/doc/gen/list_event.rb +208 -0
- data/lib/wx/doc/gen/listbook.rb +116 -0
- data/lib/wx/doc/gen/locale.rb +4293 -0
- data/lib/wx/doc/gen/log.rb +603 -0
- data/lib/wx/doc/gen/mdi_client_window.rb +47 -0
- data/lib/wx/doc/gen/mdi_frame.rb +324 -0
- data/lib/wx/doc/gen/media_ctrl.rb +269 -0
- data/lib/wx/doc/gen/media_event.rb +117 -0
- data/lib/wx/doc/gen/memory_dc.rb +174 -0
- data/lib/wx/doc/gen/menu.rb +509 -0
- data/lib/wx/doc/gen/menu_bar.rb +287 -0
- data/lib/wx/doc/gen/menu_item.rb +362 -0
- data/lib/wx/doc/gen/message_dialog.rb +238 -0
- data/lib/wx/doc/gen/mini_frame.rb +108 -0
- data/lib/wx/doc/gen/mirror_dc.rb +22 -0
- data/lib/wx/doc/gen/mouse_state.rb +150 -0
- data/lib/wx/doc/gen/multi_choice_dialog.rb +80 -0
- data/lib/wx/doc/gen/non_owned_window.rb +49 -0
- data/lib/wx/doc/gen/notebook.rb +278 -0
- data/lib/wx/doc/gen/num_validator.rb +37 -0
- data/lib/wx/doc/gen/number_entry_dialog.rb +93 -0
- data/lib/wx/doc/gen/object.rb +59 -0
- data/lib/wx/doc/gen/owner_drawn_combo_box.rb +395 -0
- data/lib/wx/doc/gen/paint_dc.rb +27 -0
- data/lib/wx/doc/gen/palette.rb +92 -0
- data/lib/wx/doc/gen/panel.rb +127 -0
- data/lib/wx/doc/gen/pen.rb +511 -0
- data/lib/wx/doc/gen/persistence_manager.rb +135 -0
- data/lib/wx/doc/gen/persistent_object.rb +52 -0
- data/lib/wx/doc/gen/persistent_window.rb +241 -0
- data/lib/wx/doc/gen/pg/event_list.rb +106 -0
- data/lib/wx/doc/gen/pg/numeric_property_validator.rb +54 -0
- data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +292 -0
- data/lib/wx/doc/gen/pg/pg_cell.rb +177 -0
- data/lib/wx/doc/gen/pg/pg_editor.rb +721 -0
- data/lib/wx/doc/gen/pg/pg_multi_button.rb +152 -0
- data/lib/wx/doc/gen/pg/pg_properties.rb +2829 -0
- data/lib/wx/doc/gen/pg/pg_property.rb +2078 -0
- data/lib/wx/doc/gen/pg/pg_validation_info.rb +344 -0
- data/lib/wx/doc/gen/pg/property_grid.rb +740 -0
- data/lib/wx/doc/gen/pg/property_grid_event.rb +184 -0
- data/lib/wx/doc/gen/pg/property_grid_interface.rb +1098 -0
- data/lib/wx/doc/gen/pg/property_grid_manager.rb +415 -0
- data/lib/wx/doc/gen/pg/property_grid_page.rb +354 -0
- data/lib/wx/doc/gen/pg/property_grid_page_state.rb +165 -0
- data/lib/wx/doc/gen/picker_base.rb +152 -0
- data/lib/wx/doc/gen/platform_info.rb +622 -0
- data/lib/wx/doc/gen/popup_window.rb +107 -0
- data/lib/wx/doc/gen/progress_dialog.rb +100 -0
- data/lib/wx/doc/gen/property_sheet_dialog.rb +216 -0
- data/lib/wx/doc/gen/prt/event_list.rb +17 -0
- data/lib/wx/doc/gen/prt/page_setup_dialog.rb +44 -0
- data/lib/wx/doc/gen/prt/post_script_dc.rb +30 -0
- data/lib/wx/doc/gen/prt/preview_frame.rb +78 -0
- data/lib/wx/doc/gen/prt/print_abort_dialog.rb +151 -0
- data/lib/wx/doc/gen/prt/print_data.rb +804 -0
- data/lib/wx/doc/gen/prt/print_dialog.rb +55 -0
- data/lib/wx/doc/gen/prt/printer.rb +518 -0
- data/lib/wx/doc/gen/prt/printer_dc.rb +37 -0
- data/lib/wx/doc/gen/query_layout_info_event.rb +106 -0
- data/lib/wx/doc/gen/radio_box.rb +306 -0
- data/lib/wx/doc/gen/radio_button.rb +159 -0
- data/lib/wx/doc/gen/rbn/event_list.rb +136 -0
- data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1132 -0
- data/lib/wx/doc/gen/rbn/ribbon_bar.rb +308 -0
- data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +45 -0
- data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +458 -0
- data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +63 -0
- data/lib/wx/doc/gen/rbn/ribbon_control.rb +143 -0
- data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +229 -0
- data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +55 -0
- data/lib/wx/doc/gen/rbn/ribbon_page.rb +174 -0
- data/lib/wx/doc/gen/rbn/ribbon_panel.rb +270 -0
- data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +45 -0
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +360 -0
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +42 -0
- data/lib/wx/doc/gen/rearrange_ctrl.rb +78 -0
- data/lib/wx/doc/gen/rearrange_list.rb +123 -0
- data/lib/wx/doc/gen/region.rb +380 -0
- data/lib/wx/doc/gen/region_iterator.rb +76 -0
- data/lib/wx/doc/gen/rich_tool_tip.rb +154 -0
- data/lib/wx/doc/gen/rtc/event_list.rb +125 -0
- data/lib/wx/doc/gen/rtc/rich_text_box.rb +445 -0
- data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1188 -0
- data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +41 -0
- data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +538 -0
- data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2103 -0
- data/lib/wx/doc/gen/rtc/rich_text_event.rb +173 -0
- data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +181 -0
- data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +319 -0
- data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +193 -0
- data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +102 -0
- data/lib/wx/doc/gen/rtc/rich_text_image.rb +337 -0
- data/lib/wx/doc/gen/rtc/rich_text_object.rb +2922 -0
- data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1240 -0
- data/lib/wx/doc/gen/rtc/rich_text_printing.rb +258 -0
- data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +344 -0
- data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +227 -0
- data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +59 -0
- data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +169 -0
- data/lib/wx/doc/gen/sash_event.rb +147 -0
- data/lib/wx/doc/gen/sash_layout_window.rb +232 -0
- data/lib/wx/doc/gen/sash_window.rb +171 -0
- data/lib/wx/doc/gen/scaled_dc.rb +10 -0
- data/lib/wx/doc/gen/screen_dc.rb +30 -0
- data/lib/wx/doc/gen/scroll_bar.rb +204 -0
- data/lib/wx/doc/gen/scrolled_canvas.rb +410 -0
- data/lib/wx/doc/gen/scrolled_control.rb +410 -0
- data/lib/wx/doc/gen/scrolled_window.rb +430 -0
- data/lib/wx/doc/gen/search_ctrl.rb +159 -0
- data/lib/wx/doc/gen/secret_store.rb +116 -0
- data/lib/wx/doc/gen/simplebook.rb +110 -0
- data/lib/wx/doc/gen/single_choice_dialog.rb +89 -0
- data/lib/wx/doc/gen/sizer.rb +945 -0
- data/lib/wx/doc/gen/sizer_item.rb +244 -0
- data/lib/wx/doc/gen/slider.rb +342 -0
- data/lib/wx/doc/gen/spin_button.rb +157 -0
- data/lib/wx/doc/gen/spin_ctrl.rb +231 -0
- data/lib/wx/doc/gen/spin_ctrl_double.rb +192 -0
- data/lib/wx/doc/gen/spin_double_event.rb +55 -0
- data/lib/wx/doc/gen/spin_event.rb +51 -0
- data/lib/wx/doc/gen/splash_screen.rb +113 -0
- data/lib/wx/doc/gen/splitter_event.rb +99 -0
- data/lib/wx/doc/gen/splitter_window.rb +498 -0
- data/lib/wx/doc/gen/static_bitmap.rb +256 -0
- data/lib/wx/doc/gen/static_box.rb +180 -0
- data/lib/wx/doc/gen/static_box_sizer.rb +85 -0
- data/lib/wx/doc/gen/static_line.rb +83 -0
- data/lib/wx/doc/gen/static_text.rb +127 -0
- data/lib/wx/doc/gen/status_bar.rb +290 -0
- data/lib/wx/doc/gen/stc/event_list.rb +221 -0
- data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4474 -0
- data/lib/wx/doc/gen/stc/styled_text_event.rb +8762 -0
- data/lib/wx/doc/gen/std_dialog_button_sizer.rb +129 -0
- data/lib/wx/doc/gen/svg_file_dc.rb +164 -0
- data/lib/wx/doc/gen/system_options.rb +129 -0
- data/lib/wx/doc/gen/system_settings.rb +507 -0
- data/lib/wx/doc/gen/task_bar_icon.rb +127 -0
- data/lib/wx/doc/gen/task_bar_icon_event.rb +88 -0
- data/lib/wx/doc/gen/text_attr.rb +756 -0
- data/lib/wx/doc/gen/text_ctrl.rb +1033 -0
- data/lib/wx/doc/gen/text_entry.rb +441 -0
- data/lib/wx/doc/gen/text_entry_dialog.rb +220 -0
- data/lib/wx/doc/gen/text_validator.rb +245 -0
- data/lib/wx/doc/gen/time_picker_ctrl.rb +128 -0
- data/lib/wx/doc/gen/timer.rb +119 -0
- data/lib/wx/doc/gen/timer_event.rb +68 -0
- data/lib/wx/doc/gen/tip_provider.rb +63 -0
- data/lib/wx/doc/gen/tip_window.rb +51 -0
- data/lib/wx/doc/gen/toggle_button.rb +182 -0
- data/lib/wx/doc/gen/tool_bar.rb +890 -0
- data/lib/wx/doc/gen/tool_tip.rb +86 -0
- data/lib/wx/doc/gen/toolbook.rb +118 -0
- data/lib/wx/doc/gen/top_level_window.rb +497 -0
- data/lib/wx/doc/gen/tree_ctrl.rb +1052 -0
- data/lib/wx/doc/gen/tree_event.rb +127 -0
- data/lib/wx/doc/gen/treebook.rb +180 -0
- data/lib/wx/doc/gen/ui_action_simulator.rb +109 -0
- data/lib/wx/doc/gen/utils.rb +273 -0
- data/lib/wx/doc/gen/v_list_box.rb +272 -0
- data/lib/wx/doc/gen/v_scrolled_canvas.rb +195 -0
- data/lib/wx/doc/gen/v_scrolled_window.rb +191 -0
- data/lib/wx/doc/gen/validator.rb +68 -0
- data/lib/wx/doc/gen/variant.rb +294 -0
- data/lib/wx/doc/gen/window.rb +2917 -0
- data/lib/wx/doc/gen/window_dc.rb +38 -0
- data/lib/wx/doc/gen/window_disabler.rb +30 -0
- data/lib/wx/doc/gen/with_images.rb +84 -0
- data/lib/wx/doc/gen/wizard.rb +257 -0
- data/lib/wx/doc/gen/wizard_event.rb +113 -0
- data/lib/wx/doc/gen/wizard_page.rb +65 -0
- data/lib/wx/doc/gen/wizard_page_simple.rb +88 -0
- data/lib/wx/doc/gen/wrap_sizer.rb +79 -0
- data/lib/wx/doc/gen/xml_node.rb +316 -0
- data/lib/wx/doc/gen/xml_resource.rb +320 -0
- data/lib/wx/doc/generic_validator.rb +5 -0
- data/lib/wx/doc/pg/pg_property.rb +5 -0
- data/lib/wx/doc/tip_window.rb +18 -6
- data/lib/wx/doc/variant.rb +30 -0
- data/lib/wx/grid/events/evt_list.rb +166 -0
- data/lib/wx/html/events/evt_list.rb +27 -0
- data/lib/wx/html/simple_html_listbox.rb +46 -33
- data/lib/wx/keyword_defs.rb +9 -0
- data/lib/wx/pg/events/evt_list.rb +73 -0
- data/lib/wx/pg/pg_property.rb +85 -52
- data/lib/wx/pg/property_grid_interface.rb +12 -2
- data/lib/wx/rbn/events/evt_list.rb +102 -0
- data/lib/wx/rtc/events/evt_list.rb +98 -0
- data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -0
- data/lib/wx/stc/events/evt_list.rb +178 -0
- data/lib/wx/version.rb +1 -1
- data/lib/wx/wxruby/cmd/setup.rb +6 -0
- data/rakelib/configure.rb +9 -0
- data/rakelib/gem.rake +84 -66
- data/rakelib/gem.rb +4 -20
- data/rakelib/lib/config/linux.rb +1 -1
- data/rakelib/lib/config/macosx.rb +15 -1
- data/rakelib/lib/config/pkgman/linux.rb +7 -2
- data/rakelib/lib/config/unixish.rb +3 -3
- data/rakelib/lib/config.rb +19 -8
- data/rakelib/lib/core/include/swigdirector.inc +3 -3
- data/rakelib/lib/core/include/swigrubyerrors.inc +4 -8
- data/rakelib/lib/core/include/swigrubyrun.inc +20 -4
- data/rakelib/lib/core/include/swigrun.inc +189 -0
- data/rakelib/lib/core/package.rb +3 -1
- data/rakelib/lib/core/spec.rb +1 -1
- data/rakelib/lib/director/accelerator.rb +1 -1
- data/rakelib/lib/director/animation.rb +1 -0
- data/rakelib/lib/director/app_traits.rb +1 -1
- data/rakelib/lib/director/aui_manager.rb +21 -14
- data/rakelib/lib/director/aui_mdi_child_frame.rb +2 -0
- data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -0
- data/rakelib/lib/director/aui_notebook.rb +20 -3
- data/rakelib/lib/director/aui_tab_ctrl.rb +64 -106
- data/rakelib/lib/director/bitmap_combobox.rb +4 -2
- data/rakelib/lib/director/calendar_ctrl.rb +72 -14
- data/rakelib/lib/director/clipboard.rb +2 -0
- data/rakelib/lib/director/data_object.rb +15 -7
- data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
- data/rakelib/lib/director/display.rb +81 -0
- data/rakelib/lib/director/event.rb +33 -16
- data/rakelib/lib/director/event_handler.rb +27 -2
- data/rakelib/lib/director/functions.rb +9 -0
- data/rakelib/lib/director/geometry.rb +5 -0
- data/rakelib/lib/director/grid_ctrl.rb +123 -28
- data/rakelib/lib/director/help_provider.rb +1 -1
- data/rakelib/lib/director/html_listbox.rb +30 -4
- data/rakelib/lib/director/hvscrolled.rb +154 -0
- data/rakelib/lib/director/image_list.rb +1 -0
- data/rakelib/lib/director/mdi_frame.rb +4 -0
- data/rakelib/lib/director/menu.rb +56 -15
- data/rakelib/lib/director/menu_bar.rb +62 -0
- data/rakelib/lib/director/menu_item.rb +7 -1
- data/rakelib/lib/director/num_validator.rb +27 -0
- data/rakelib/lib/director/numeric_property_validator.rb +9 -0
- data/rakelib/lib/director/persistent_window.rb +16 -0
- data/rakelib/lib/director/pgproperty.rb +3 -2
- data/rakelib/lib/director/popup_window.rb +2 -0
- data/rakelib/lib/director/preview_frame.rb +29 -6
- data/rakelib/lib/director/printer.rb +59 -5
- data/rakelib/lib/director/property_grid.rb +37 -18
- data/rakelib/lib/director/property_grid_interface.rb +10 -8
- data/rakelib/lib/director/property_grid_manager.rb +99 -39
- data/rakelib/lib/director/property_grid_page.rb +60 -0
- data/rakelib/lib/director/rich_tooltip.rb +22 -0
- data/rakelib/lib/director/richtext_ctrl.rb +5 -0
- data/rakelib/lib/director/richtext_object.rb +13 -4
- data/rakelib/lib/director/richtext_style_listbox.rb +11 -2
- data/rakelib/lib/director/scrolled_t.rb +3 -0
- data/rakelib/lib/director/searchctrl.rb +1 -0
- data/rakelib/lib/director/task_bar_icon.rb +14 -8
- data/rakelib/lib/director/text_validator.rb +9 -0
- data/rakelib/lib/director/tip_window.rb +117 -6
- data/rakelib/lib/director/tool_bar.rb +6 -0
- data/rakelib/lib/director/top_level_window.rb +0 -1
- data/rakelib/lib/director/utils.rb +3 -1
- data/rakelib/lib/director/validator.rb +12 -0
- data/rakelib/lib/director/variant.rb +64 -20
- data/rakelib/lib/director/vlistbox.rb +29 -22
- data/rakelib/lib/director/window.rb +12 -2
- data/rakelib/lib/director/xml_resource.rb +6 -0
- data/rakelib/lib/generate/doc/aui_manager.yaml +1 -1
- data/rakelib/lib/generate/doc/rich_tool_tip.yaml +26 -0
- data/rakelib/lib/generate/doc.rb +12 -7
- data/rakelib/lib/generate/interface.rb +16 -1
- data/rakelib/lib/specs/interfaces.rb +6 -2
- data/rakelib/lib/swig_runner.rb +12 -12
- data/rakelib/lib/typemap/aui_tabctrl.rb +46 -0
- data/rakelib/lib/typemap/common.rb +3 -3
- data/rakelib/lib/typemap/print_page_range.rb +32 -8
- data/samples/art/wxruby-512x512.png +0 -0
- data/samples/calendar/calendar.rb +64 -1
- data/samples/dialogs/dialogs.rb +172 -0
- data/samples/dialogs/tip.xpm +157 -0
- data/samples/drawing/maths_images.rb +1 -1
- data/samples/event/event.rb +1 -1
- data/samples/printing/printing2.rb +1 -1
- data/samples/sampler.rb +26 -8
- data/samples/text/textctrl.rb +2 -2
- data/samples/treectrl/treectrl.rb +2 -2
- data/tests/lib/leaked_process_event_exception_test.rb +1 -1
- data/tests/lib/leaked_queued_event_exception_test.rb +1 -1
- data/tests/lib/wxapp_runner.rb +31 -41
- data/tests/lib/wxframe_runner.rb +23 -11
- data/tests/lib/wxrb_test.rb +58 -0
- data/tests/test_app_event_filter.rb +1 -1
- data/tests/test_app_exit_exception.rb +3 -3
- data/tests/test_app_init_exception.rb +3 -3
- data/tests/test_app_traits.rb +24 -21
- data/tests/test_art.rb +7 -7
- data/tests/test_art_provider.rb +1 -1
- data/tests/test_basic.rb +2 -2
- data/tests/test_book_controls.rb +1 -1
- data/tests/test_box_sizer.rb +1 -1
- data/tests/test_clipboard.rb +5 -5
- data/tests/test_combo_ctrl.rb +2 -2
- data/tests/test_config.rb +11 -1
- data/tests/test_dc.rb +1 -1
- data/tests/test_dialog.rb +1 -1
- data/tests/test_event_handling.rb +1 -1
- data/tests/test_events.rb +1 -1
- data/tests/test_exceptions.rb +2 -2
- data/tests/test_ext_controls.rb +10 -10
- data/tests/test_file_dialog.rb +1 -1
- data/tests/test_font.rb +1 -1
- data/tests/test_gdi_object.rb +1 -1
- data/tests/test_geometry.rb +2 -2
- data/tests/test_grid_sizer.rb +2 -2
- data/tests/test_intl.rb +1 -1
- data/tests/test_item_data.rb +12 -12
- data/tests/test_list_ctrl.rb +1 -1
- data/tests/test_log.rb +2 -2
- data/tests/test_media_ctrl.rb +1 -1
- data/tests/test_menu.rb +114 -43
- data/tests/test_proof_check.rb +1 -1
- data/tests/test_propgrid.rb +857 -0
- data/tests/test_richtext.rb +10 -24
- data/tests/test_secret_store.rb +1 -1
- data/tests/test_sizer.rb +1 -1
- data/tests/test_std_controls.rb +8 -8
- data/tests/test_styled_text_ctrl.rb +1 -1
- data/tests/test_timer.rb +1 -1
- data/tests/test_tree_ctrl.rb +1 -1
- data/tests/test_validators.rb +79 -36
- data/tests/test_variant.rb +1 -1
- data/tests/test_window.rb +11 -11
- data/tests/testapp.rb +2 -2
- data/tests/testapp_noframe.rb +2 -2
- metadata +402 -12
- data/lib/wx/aui/aui_tab_ctrl.rb +0 -18
- data/rakelib/lib/director/hvscrolled_window.rb +0 -140
|
@@ -175,12 +175,14 @@ module WXRuby3
|
|
|
175
175
|
spec.disown('wxGridTableBase* table')
|
|
176
176
|
# customize mark function to handle safeguarding any customized Grid tables installed
|
|
177
177
|
spec.add_header_code <<~__HEREDOC
|
|
178
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkGrid, "GC_MARK_GRID")
|
|
179
|
+
|
|
178
180
|
static void GC_mark_wxGridCtrl(void* ptr)
|
|
179
181
|
{
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
182
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkGrid, 2)
|
|
183
|
+
WXRUBY_TRACE("> GC_mark_wxGridCtrl : " << ptr)
|
|
184
|
+
WXRUBY_TRACE_END
|
|
185
|
+
|
|
184
186
|
if ( GC_IsWindowDeleted(ptr) )
|
|
185
187
|
{
|
|
186
188
|
return;
|
|
@@ -194,8 +196,16 @@ module WXRuby3
|
|
|
194
196
|
VALUE rb_gtbl = SWIG_RubyInstanceFor(wx_gtbl);
|
|
195
197
|
if (!NIL_P(rb_gtbl))
|
|
196
198
|
{
|
|
199
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkGrid, 3)
|
|
200
|
+
WXRUBY_TRACE("| GC_mark_wxGridCtrl : marking gridtable " << wx_gtbl << " -> " << rb_gtbl);
|
|
201
|
+
WXRUBY_TRACE_END
|
|
202
|
+
|
|
197
203
|
rb_gc_mark(rb_gtbl);
|
|
198
204
|
}
|
|
205
|
+
|
|
206
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkGrid, 2)
|
|
207
|
+
WXRUBY_TRACE("< GC_mark_wxGridCtrl : " << ptr)
|
|
208
|
+
WXRUBY_TRACE_END
|
|
199
209
|
}
|
|
200
210
|
__HEREDOC
|
|
201
211
|
spec.add_swig_code '%markfunc wxGrid "GC_mark_wxGridCtrl";'
|
|
@@ -298,12 +308,19 @@ module WXRuby3
|
|
|
298
308
|
WXRBGridCellAttrValueHash);
|
|
299
309
|
static WXRBGridCellAttrValueHash Grid_Cell_Attr_Value_Map;
|
|
300
310
|
|
|
311
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkGridCellAttr, "GC_MARK_GRID_CELL_ATTR")
|
|
312
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCTrackGridCellAttr, "GC_TRACK_GRID_CELL_ATTR")
|
|
313
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkGridCellEditor, "GC_MARK_GRID_CELL_EDITOR")
|
|
314
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCTrackGridCellEditor, "GC_TRACK_GRID_CELL_EDITOR")
|
|
315
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkGridCellRenderer, "GC_MARK_GRID_CELL_RENDERER")
|
|
316
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCTrackGridCellRenderer, "GC_TRACK_GRID_CELL_RENDERER")
|
|
317
|
+
|
|
301
318
|
static void wxRuby_UnregisterGridCellAttr(wxGridCellAttr* wx_attr)
|
|
302
319
|
{
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
320
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
|
|
321
|
+
WXRUBY_TRACE("> wxRuby_UnregisterGridCellAttr : " << wx_attr << " -> " << Grid_Cell_Attr_Value_Map[wx_attr])
|
|
322
|
+
WXRUBY_TRACE_END
|
|
323
|
+
|
|
307
324
|
if (Grid_Cell_Attr_Value_Map.count(wx_attr) != 0)
|
|
308
325
|
{
|
|
309
326
|
VALUE object = Grid_Cell_Attr_Value_Map[wx_attr];
|
|
@@ -313,6 +330,10 @@ module WXRuby3
|
|
|
313
330
|
}
|
|
314
331
|
Grid_Cell_Attr_Value_Map.erase(wx_attr);
|
|
315
332
|
}
|
|
333
|
+
|
|
334
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
|
|
335
|
+
WXRUBY_TRACE("< wxRuby_UnregisterGridCellAttr : " << wx_attr)
|
|
336
|
+
WXRUBY_TRACE_END
|
|
316
337
|
}
|
|
317
338
|
|
|
318
339
|
extern VALUE wxRuby_GridCellAttrInstance(wxGridCellAttr* wx_attr)
|
|
@@ -340,30 +361,52 @@ module WXRuby3
|
|
|
340
361
|
// and it's associated registration/de-registration functions
|
|
341
362
|
extern void wxRuby_RegisterGridCellAttr(wxGridCellAttr* wx_attr, VALUE rb_attr)
|
|
342
363
|
{
|
|
364
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
|
|
365
|
+
WXRUBY_TRACE("> wxRuby_RegisterGridCellAttr : " << wx_attr << " -> " << rb_attr)
|
|
366
|
+
WXRUBY_TRACE_END
|
|
367
|
+
|
|
343
368
|
if (wx_attr && !NIL_P(rb_attr))
|
|
344
369
|
{
|
|
345
370
|
// always (keep) disown(ed); wxWidgets takes over ownership
|
|
346
371
|
RDATA(rb_attr)->dfree = 0;
|
|
347
372
|
if (Grid_Cell_Attr_Value_Map.count(wx_attr) == 0)
|
|
348
373
|
{
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
374
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
|
|
375
|
+
WXRUBY_TRACE("| wxRuby_RegisterGridCellAttr : installing monitor")
|
|
376
|
+
WXRUBY_TRACE_END
|
|
377
|
+
|
|
353
378
|
wx_attr->SetClientObject(new WXRBGridCellAttrMonitor(wx_attr, rb_attr));
|
|
354
379
|
}
|
|
355
380
|
}
|
|
381
|
+
|
|
382
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellAttr, 2)
|
|
383
|
+
WXRUBY_TRACE("< wxRuby_RegisterGridCellAttr : " << wx_attr)
|
|
384
|
+
WXRUBY_TRACE_END
|
|
356
385
|
}
|
|
357
386
|
|
|
358
387
|
// define the grid cell attribute marker
|
|
359
388
|
static void wxRuby_markGridCellAttr()
|
|
360
389
|
{
|
|
390
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkGridCellAttr, 2)
|
|
391
|
+
WXRUBY_TRACE("> wxRuby_markGridCellAttr")
|
|
392
|
+
WXRUBY_TRACE_END
|
|
393
|
+
|
|
361
394
|
WXRBGridCellAttrValueHash::iterator it;
|
|
362
395
|
for( it = Grid_Cell_Attr_Value_Map.begin(); it != Grid_Cell_Attr_Value_Map.end(); ++it )
|
|
363
396
|
{
|
|
364
397
|
VALUE obj = it->second;
|
|
398
|
+
|
|
399
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkGridCellAttr, 2)
|
|
400
|
+
WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0))
|
|
401
|
+
WXRUBY_TRACE("| wxRuby_markGridCellAttr : " << it->first << "|" << (void*)c_ptr)
|
|
402
|
+
WXRUBY_TRACE_END
|
|
403
|
+
|
|
365
404
|
rb_gc_mark(obj);
|
|
366
405
|
}
|
|
406
|
+
|
|
407
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkGridCellAttr, 2)
|
|
408
|
+
WXRUBY_TRACE("< wxRuby_markGridCellAttr")
|
|
409
|
+
WXRUBY_TRACE_END
|
|
367
410
|
}
|
|
368
411
|
|
|
369
412
|
// declare the global table for grid cell editors
|
|
@@ -373,10 +416,10 @@ module WXRuby3
|
|
|
373
416
|
|
|
374
417
|
static void wxRuby_UnregisterGridCellEditor(wxGridCellEditor* wx_edt)
|
|
375
418
|
{
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
419
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
|
|
420
|
+
WXRUBY_TRACE("> wxRuby_UnregisterGridCellEditor : " << wx_edt << " -> " << Grid_Cell_Editor_Value_Map[wx_edt])
|
|
421
|
+
WXRUBY_TRACE_END
|
|
422
|
+
|
|
380
423
|
if (Grid_Cell_Editor_Value_Map.count(wx_edt) != 0)
|
|
381
424
|
{
|
|
382
425
|
VALUE object = Grid_Cell_Editor_Value_Map[wx_edt];
|
|
@@ -386,6 +429,10 @@ module WXRuby3
|
|
|
386
429
|
}
|
|
387
430
|
Grid_Cell_Editor_Value_Map.erase(wx_edt);
|
|
388
431
|
}
|
|
432
|
+
|
|
433
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
|
|
434
|
+
WXRUBY_TRACE("< wxRuby_UnregisterGridCellEditor : " << wx_edt)
|
|
435
|
+
WXRUBY_TRACE_END
|
|
389
436
|
}
|
|
390
437
|
|
|
391
438
|
extern VALUE wxRuby_GridCellEditorInstance(wxGridCellEditor* wx_edt)
|
|
@@ -413,30 +460,52 @@ module WXRuby3
|
|
|
413
460
|
// and it's associated registration function
|
|
414
461
|
extern void wxRuby_RegisterGridCellEditor(wxGridCellEditor* wx_edt, VALUE rb_edt)
|
|
415
462
|
{
|
|
463
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
|
|
464
|
+
WXRUBY_TRACE("> wxRuby_RegisterGridCellEditor : " << wx_edt << " -> " << rb_edt)
|
|
465
|
+
WXRUBY_TRACE_END
|
|
466
|
+
|
|
416
467
|
if (wx_edt && !NIL_P(rb_edt))
|
|
417
468
|
{
|
|
418
469
|
// always (keep) disown(ed); wxWidgets takes over ownership
|
|
419
470
|
RDATA(rb_edt)->dfree = 0;
|
|
420
471
|
if (Grid_Cell_Editor_Value_Map.count(wx_edt) == 0)
|
|
421
472
|
{
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
473
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
|
|
474
|
+
WXRUBY_TRACE("| wxRuby_RegisterGridCellEditor : installing monitor")
|
|
475
|
+
WXRUBY_TRACE_END
|
|
476
|
+
|
|
426
477
|
wx_edt->SetClientObject(new WXRBGridCellEditorMonitor(wx_edt, rb_edt));
|
|
427
478
|
}
|
|
428
479
|
}
|
|
480
|
+
|
|
481
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
|
|
482
|
+
WXRUBY_TRACE("< wxRuby_RegisterGridCellEditor : " << wx_edt)
|
|
483
|
+
WXRUBY_TRACE_END
|
|
429
484
|
}
|
|
430
485
|
|
|
431
486
|
// define the grid cell editor marker
|
|
432
487
|
static void wxRuby_markGridCellEditor()
|
|
433
488
|
{
|
|
489
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
|
|
490
|
+
WXRUBY_TRACE("> wxRuby_markGridCellEditor")
|
|
491
|
+
WXRUBY_TRACE_END
|
|
492
|
+
|
|
434
493
|
WXRBGridCellEditorValueHash::iterator it;
|
|
435
494
|
for( it = Grid_Cell_Editor_Value_Map.begin(); it != Grid_Cell_Editor_Value_Map.end(); ++it )
|
|
436
495
|
{
|
|
437
496
|
VALUE obj = it->second;
|
|
497
|
+
|
|
498
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
|
|
499
|
+
WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0))
|
|
500
|
+
WXRUBY_TRACE("| wxRuby_markGridCellEditor : " << it->first << "|" << (void*)c_ptr)
|
|
501
|
+
WXRUBY_TRACE_END
|
|
502
|
+
|
|
438
503
|
rb_gc_mark(obj);
|
|
439
504
|
}
|
|
505
|
+
|
|
506
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellEditor, 2)
|
|
507
|
+
WXRUBY_TRACE("< wxRuby_markGridCellEditor")
|
|
508
|
+
WXRUBY_TRACE_END
|
|
440
509
|
}
|
|
441
510
|
|
|
442
511
|
// declare the global table for grid cell renderer
|
|
@@ -446,10 +515,10 @@ module WXRuby3
|
|
|
446
515
|
|
|
447
516
|
static void wxRuby_UnregisterGridCellRenderer(wxGridCellRenderer* wx_rnd)
|
|
448
517
|
{
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
518
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
|
|
519
|
+
WXRUBY_TRACE("> wxRuby_UnregisterGridCellRenderer : " << wx_rnd << " -> " << Grid_Cell_Renderer_Value_Map[wx_rnd])
|
|
520
|
+
WXRUBY_TRACE_END
|
|
521
|
+
|
|
453
522
|
if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) != 0)
|
|
454
523
|
{
|
|
455
524
|
VALUE object = Grid_Cell_Renderer_Value_Map[wx_rnd];
|
|
@@ -459,6 +528,10 @@ module WXRuby3
|
|
|
459
528
|
}
|
|
460
529
|
Grid_Cell_Renderer_Value_Map.erase(wx_rnd);
|
|
461
530
|
}
|
|
531
|
+
|
|
532
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
|
|
533
|
+
WXRUBY_TRACE("< wxRuby_UnregisterGridCellRenderer : " << wx_rnd)
|
|
534
|
+
WXRUBY_TRACE_END
|
|
462
535
|
}
|
|
463
536
|
|
|
464
537
|
extern VALUE wxRuby_GridCellRendererInstance(wxGridCellRenderer* wx_rnd)
|
|
@@ -485,30 +558,52 @@ module WXRuby3
|
|
|
485
558
|
// and it's associated registration/de-registration functions
|
|
486
559
|
extern void wxRuby_RegisterGridCellRenderer(wxGridCellRenderer* wx_rnd, VALUE rb_rnd)
|
|
487
560
|
{
|
|
561
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
|
|
562
|
+
WXRUBY_TRACE("> wxRuby_RegisterGridCellRenderer : " << wx_rnd << " -> " << rb_rnd)
|
|
563
|
+
WXRUBY_TRACE_END
|
|
564
|
+
|
|
488
565
|
if (wx_rnd && !NIL_P(rb_rnd))
|
|
489
566
|
{
|
|
490
567
|
// always (keep) disowned(ed); wxWidgets takes over ownership
|
|
491
568
|
RDATA(rb_rnd)->dfree = 0;
|
|
492
569
|
if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) == 0)
|
|
493
570
|
{
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
571
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
|
|
572
|
+
WXRUBY_TRACE("| wxRuby_RegisterGridCellRenderer : installing monitor")
|
|
573
|
+
WXRUBY_TRACE_END
|
|
574
|
+
|
|
498
575
|
wx_rnd->SetClientObject(new WXRBGridCellRendererMonitor(wx_rnd, rb_rnd));
|
|
499
576
|
}
|
|
500
577
|
}
|
|
578
|
+
|
|
579
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
|
|
580
|
+
WXRUBY_TRACE("< wxRuby_RegisterGridCellRenderer : " << wx_rnd)
|
|
581
|
+
WXRUBY_TRACE_END
|
|
501
582
|
}
|
|
502
583
|
|
|
503
584
|
// define the grid cell renderer marker
|
|
504
585
|
static void wxRuby_markGridCellRenderer()
|
|
505
586
|
{
|
|
587
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
|
|
588
|
+
WXRUBY_TRACE("> wxRuby_markGridCellRenderer")
|
|
589
|
+
WXRUBY_TRACE_END
|
|
590
|
+
|
|
506
591
|
WXRBGridCellRendererValueHash::iterator it;
|
|
507
592
|
for( it = Grid_Cell_Renderer_Value_Map.begin(); it != Grid_Cell_Renderer_Value_Map.end(); ++it )
|
|
508
593
|
{
|
|
509
594
|
VALUE obj = it->second;
|
|
595
|
+
|
|
596
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
|
|
597
|
+
WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0))
|
|
598
|
+
WXRUBY_TRACE("| wxRuby_markGridCellRenderer : " << it->first << "|" << (void*)c_ptr)
|
|
599
|
+
WXRUBY_TRACE_END
|
|
600
|
+
|
|
510
601
|
rb_gc_mark(obj);
|
|
511
602
|
}
|
|
603
|
+
|
|
604
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCTrackGridCellRenderer, 2)
|
|
605
|
+
WXRUBY_TRACE("< wxRuby_markGridCellRenderer")
|
|
606
|
+
WXRUBY_TRACE_END
|
|
512
607
|
}
|
|
513
608
|
|
|
514
609
|
__HEREDOC
|
|
@@ -92,7 +92,7 @@ module WXRuby3
|
|
|
92
92
|
// virtual wxString GetHelp(const wxWindowBase* window);
|
|
93
93
|
void RemoveHelp(wxWindowBase* window); // no virtual as we have fixed director impl above
|
|
94
94
|
virtual bool ShowHelp(wxWindowBase* window);
|
|
95
|
-
virtual bool ShowHelpAtPoint(wxWindowBase* window, const wxPoint point,
|
|
95
|
+
virtual bool ShowHelpAtPoint(wxWindowBase* window, const wxPoint& point,
|
|
96
96
|
wxHelpEvent::Origin origin);
|
|
97
97
|
};
|
|
98
98
|
__HEREDOC
|
|
@@ -18,8 +18,15 @@ module WXRuby3
|
|
|
18
18
|
|
|
19
19
|
def setup
|
|
20
20
|
spec.items << 'wxSimpleHtmlListBox' << 'wxItemContainer'
|
|
21
|
+
spec.gc_as_window('wxHtmlListBox', 'wxSimpleHtmlListBox')
|
|
21
22
|
super
|
|
22
|
-
|
|
23
|
+
if Config.instance.wx_version_check('3.3.1') > 0
|
|
24
|
+
spec.override_inheritance_chain('wxHtmlListBox', ['wxVListBox', 'wxVScrolledCanvas', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
25
|
+
elsif Config.instance.wx_version_check('3.3.0') > 0
|
|
26
|
+
spec.override_inheritance_chain('wxHtmlListBox', ['wxVListBox', 'wxVScrolledWindow', 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
27
|
+
else
|
|
28
|
+
spec.override_inheritance_chain('wxHtmlListBox', ['wxVListBox', { 'wxVScrolledWindow' => 'wxHScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
29
|
+
end
|
|
23
30
|
spec.make_abstract 'wxHtmlListBox'
|
|
24
31
|
# provide base implementation for OnGetItem
|
|
25
32
|
spec.add_header_code <<~__HEREDOC
|
|
@@ -55,6 +62,13 @@ module WXRuby3
|
|
|
55
62
|
'wxHtmlListBox::GetSelectedTextColour',
|
|
56
63
|
'wxHtmlListBox::GetSelectedTextBgColour',
|
|
57
64
|
'wxHtmlListBox::OnLinkClicked'
|
|
65
|
+
# missing from the XML docs
|
|
66
|
+
spec.extend_interface('wxHtmlListBox',
|
|
67
|
+
'virtual void OnInternalIdle()',
|
|
68
|
+
'virtual void RefreshRow(size_t line)',
|
|
69
|
+
'virtual void RefreshRows(size_t from, size_t to)',
|
|
70
|
+
'virtual void RefreshAll()',
|
|
71
|
+
'virtual void SetItemCount(size_t count)')
|
|
58
72
|
# add missing protected overloads
|
|
59
73
|
spec.extend_interface 'wxHtmlListBox',
|
|
60
74
|
'virtual void OnDrawItem(wxDC &dc, const wxRect &rect, size_t n) const',
|
|
@@ -62,10 +76,18 @@ module WXRuby3
|
|
|
62
76
|
'virtual void OnDrawBackground(wxDC &dc, const wxRect &rect, size_t n) const',
|
|
63
77
|
'virtual void OnDrawSeparator(wxDC& dc, wxRect& rect, size_t n) const',
|
|
64
78
|
visibility: 'protected'
|
|
65
|
-
|
|
79
|
+
# optimize; no need for these virtuals here
|
|
80
|
+
spec.no_proxy 'wxHtmlListBox::OnGetRowHeight',
|
|
81
|
+
'wxHtmlListBox::OnGetRowsHeightHint'
|
|
66
82
|
|
|
67
83
|
# override inheritance chain
|
|
68
|
-
|
|
84
|
+
if Config.instance.wx_version_check('3.3.1') > 0
|
|
85
|
+
spec.override_inheritance_chain('wxSimpleHtmlListBox', ['wxHtmlListBox', 'wxVListBox', 'wxVScrolledCanvas', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
86
|
+
elsif Config.instance.wx_version_check('3.3.0') > 0
|
|
87
|
+
spec.override_inheritance_chain('wxSimpleHtmlListBox', ['wxHtmlListBox', 'wxVListBox', 'wxVScrolledWindow', 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
88
|
+
else
|
|
89
|
+
spec.override_inheritance_chain('wxSimpleHtmlListBox', ['wxHtmlListBox', 'wxVListBox', { 'wxVScrolledWindow' => 'wxHScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
90
|
+
end
|
|
69
91
|
spec.fold_bases('wxSimpleHtmlListBox' => %w[wxItemContainer])
|
|
70
92
|
# override SWIG's confusion
|
|
71
93
|
spec.make_concrete 'wxSimpleHtmlListBox'
|
|
@@ -74,7 +96,8 @@ module WXRuby3
|
|
|
74
96
|
# add missing overloads
|
|
75
97
|
spec.extend_interface 'wxSimpleHtmlListBox',
|
|
76
98
|
'virtual wxString GetString(unsigned int n) const',
|
|
77
|
-
'virtual void SetString(unsigned int n, const wxString &string)'
|
|
99
|
+
'virtual void SetString(unsigned int n, const wxString &string)',
|
|
100
|
+
'wxArrayString GetStrings() const'
|
|
78
101
|
spec.ignore([ 'wxItemContainer::Append(const wxString &, void *)',
|
|
79
102
|
'wxItemContainer::Append(const std::vector< wxString > &)',
|
|
80
103
|
'wxItemContainer::Append(const wxArrayString &, void **)',
|
|
@@ -100,6 +123,9 @@ module WXRuby3
|
|
|
100
123
|
'wxItemContainer::Append(const wxArrayString &, wxClientData **)',
|
|
101
124
|
'wxItemContainer::Insert(const wxArrayString &, unsigned int, wxClientData **)',
|
|
102
125
|
'wxItemContainer::Set(const wxArrayString &, wxClientData **)'], ignore_doc: false)
|
|
126
|
+
# optimize; no need for these virtuals here
|
|
127
|
+
spec.no_proxy 'wxSimpleHtmlListBox::OnGetRowHeight',
|
|
128
|
+
'wxSimpleHtmlListBox::OnGetRowsHeightHint'
|
|
103
129
|
# for doc only
|
|
104
130
|
spec.map 'void** clientData' => 'Array', swig: false do
|
|
105
131
|
map_in code: ''
|
|
@@ -0,0 +1,154 @@
|
|
|
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
|
+
require_relative './window'
|
|
10
|
+
|
|
11
|
+
module WXRuby3
|
|
12
|
+
|
|
13
|
+
class Director
|
|
14
|
+
|
|
15
|
+
class HVScrolled < Window
|
|
16
|
+
|
|
17
|
+
def setup
|
|
18
|
+
super
|
|
19
|
+
case spec.module_name
|
|
20
|
+
when 'wxHScrolledWindow'
|
|
21
|
+
spec.items.replace %w[wxVarScrollHelperBase wxVarVScrollHelper wxVarHVScrollHelper wxVarHScrollHelper wxHScrolledWindow wxHVScrolledWindow wxPosition]
|
|
22
|
+
spec.override_inheritance_chain('wxHScrolledWindow', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
23
|
+
spec.fold_bases('wxHScrolledWindow' => %w[wxVarHScrollHelper wxVarScrollHelperBase])
|
|
24
|
+
spec.make_abstract 'wxHScrolledWindow'
|
|
25
|
+
# spec.force_proxy 'wxHScrolledWindow'
|
|
26
|
+
spec.override_inheritance_chain('wxHVScrolledWindow', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
27
|
+
spec.fold_bases('wxHVScrolledWindow' => %w[wxVarHVScrollHelper wxVarHScrollHelper wxVarVScrollHelper wxVarScrollHelperBase])
|
|
28
|
+
spec.make_abstract 'wxHVScrolledWindow'
|
|
29
|
+
# regard protected methods
|
|
30
|
+
spec.regard 'wxVarVScrollHelper::OnGetRowHeight',
|
|
31
|
+
'wxVarVScrollHelper::OnGetRowsHeightHint'
|
|
32
|
+
spec.regard 'wxVarHScrollHelper::OnGetColumnWidth',
|
|
33
|
+
'wxVarHScrollHelper::OnGetColumnsWidthHint'
|
|
34
|
+
# ignore internal implementation methods
|
|
35
|
+
spec.ignore 'wxVarScrollHelperBase::GetNonOrientationTargetSize',
|
|
36
|
+
'wxVarScrollHelperBase::GetOrientation',
|
|
37
|
+
'wxVarScrollHelperBase::GetOrientationTargetSize',
|
|
38
|
+
'wxVarScrollHelperBase::OnGetUnitSize',
|
|
39
|
+
'wxVarScrollHelperBase::CalcScrolledPosition',
|
|
40
|
+
'wxVarScrollHelperBase::CalcUnscrolledPosition',
|
|
41
|
+
'wxVarScrollHelperBase::GetTargetWindow',
|
|
42
|
+
'wxVarScrollHelperBase::SetTargetWindow',
|
|
43
|
+
'wxVarScrollHelperBase::UpdateScrollbar',
|
|
44
|
+
'wxVarScrollHelperBase::RefreshAll'
|
|
45
|
+
spec.map 'const wxPosition&' => 'Array(Integer, Integer), Wx::Position' do
|
|
46
|
+
add_header_code '#include <memory>'
|
|
47
|
+
map_in temp: 'std::unique_ptr<$1_basetype> tmp', code: <<~__CODE
|
|
48
|
+
if ( TYPE($input) == T_DATA )
|
|
49
|
+
{
|
|
50
|
+
void* argp$argnum;
|
|
51
|
+
SWIG_ConvertPtr($input, &argp$argnum, $1_descriptor, 0);
|
|
52
|
+
$1 = reinterpret_cast< $1_basetype * >(argp$argnum);
|
|
53
|
+
}
|
|
54
|
+
else if ( TYPE($input) == T_ARRAY )
|
|
55
|
+
{
|
|
56
|
+
$1 = new $1_basetype( NUM2INT( rb_ary_entry($input, 0) ),
|
|
57
|
+
NUM2INT( rb_ary_entry($input, 1) ) );
|
|
58
|
+
tmp.reset($1); // auto destruct when method scope ends
|
|
59
|
+
}
|
|
60
|
+
else
|
|
61
|
+
{
|
|
62
|
+
rb_raise(rb_eTypeError, "Wrong type for $1_basetype parameter");
|
|
63
|
+
}
|
|
64
|
+
__CODE
|
|
65
|
+
map_typecheck precedence: 'POINTER', code: <<~__CODE
|
|
66
|
+
void *vptr = 0;
|
|
67
|
+
$1 = 0;
|
|
68
|
+
if (TYPE($input) == T_ARRAY && RARRAY_LEN($input) == 2)
|
|
69
|
+
$1 = 1;
|
|
70
|
+
else if (TYPE($input) == T_DATA && SWIG_CheckState (SWIG_ConvertPtr ($input, &vptr, $1_descriptor, 0)))
|
|
71
|
+
$1 = 1;
|
|
72
|
+
__CODE
|
|
73
|
+
end
|
|
74
|
+
if Config.instance.wx_version_check('3.3.0') <= 0
|
|
75
|
+
spec.items << 'wxVScrolledWindow'
|
|
76
|
+
spec.override_inheritance_chain('wxVScrolledWindow', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
77
|
+
spec.fold_bases('wxVScrolledWindow' => %w[wxVarVScrollHelper wxVarScrollHelperBase])
|
|
78
|
+
spec.make_abstract 'wxVScrolledWindow'
|
|
79
|
+
end
|
|
80
|
+
spec.do_not_generate(:typedefs)
|
|
81
|
+
when 'wxVScrolledWindow'
|
|
82
|
+
if Config.instance.wx_version_check('3.3.0') > 0
|
|
83
|
+
spec.items.replace %w[wxVScrolled wxVarScrollHelperBase wxVarVScrollHelper]
|
|
84
|
+
spec.gc_as_window
|
|
85
|
+
spec.use_template_as_class('wxVScrolled', 'wxVScrolledWindow')
|
|
86
|
+
spec.override_inheritance_chain('wxVScrolled', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
87
|
+
spec.fold_bases('wxVScrolled' => %w[wxVarVScrollHelper wxVarScrollHelperBase])
|
|
88
|
+
spec.make_abstract 'wxVScrolledWindow'
|
|
89
|
+
# spec.force_proxy 'wxVScrolled'
|
|
90
|
+
spec.swig_import %w[
|
|
91
|
+
swig/classes/include/wxObject.h
|
|
92
|
+
swig/classes/include/wxEvtHandler.h
|
|
93
|
+
swig/classes/include/wxWindow.h
|
|
94
|
+
swig/classes/include/wxPanel.h
|
|
95
|
+
swig/classes/include/wxHScrolledWindow.h
|
|
96
|
+
]
|
|
97
|
+
# regard protected methods
|
|
98
|
+
spec.regard 'wxVarVScrollHelper::OnGetRowHeight',
|
|
99
|
+
'wxVarVScrollHelper::OnGetRowsHeightHint'
|
|
100
|
+
# ignore internal implementation methods
|
|
101
|
+
spec.ignore 'wxVarScrollHelperBase::GetNonOrientationTargetSize',
|
|
102
|
+
'wxVarScrollHelperBase::GetOrientation',
|
|
103
|
+
'wxVarScrollHelperBase::GetOrientationTargetSize',
|
|
104
|
+
'wxVarScrollHelperBase::OnGetUnitSize',
|
|
105
|
+
'wxVarScrollHelperBase::CalcScrolledPosition',
|
|
106
|
+
'wxVarScrollHelperBase::CalcUnscrolledPosition',
|
|
107
|
+
'wxVarScrollHelperBase::GetTargetWindow',
|
|
108
|
+
'wxVarScrollHelperBase::SetTargetWindow',
|
|
109
|
+
'wxVarScrollHelperBase::UpdateScrollbar',
|
|
110
|
+
'wxVarScrollHelperBase::RefreshAll'
|
|
111
|
+
spec.do_not_generate(:typedefs, :functions, :defines, :variables)
|
|
112
|
+
else
|
|
113
|
+
spec.items.clear
|
|
114
|
+
end
|
|
115
|
+
when 'wxVScrolledCanvas'
|
|
116
|
+
if Config.instance.wx_version_check('3.3.0') > 0
|
|
117
|
+
spec.items.replace %w[wxVScrolled wxVarScrollHelperBase wxVarVScrollHelper]
|
|
118
|
+
spec.gc_as_window
|
|
119
|
+
spec.use_template_as_class('wxVScrolled', 'wxVScrolledCanvas')
|
|
120
|
+
spec.override_inheritance_chain('wxVScrolled', %w[wxWindow wxEvtHandler wxObject])
|
|
121
|
+
spec.fold_bases('wxVScrolled' => %w[wxVarVScrollHelper wxVarScrollHelperBase])
|
|
122
|
+
spec.make_abstract 'wxVScrolledCanvas'
|
|
123
|
+
# spec.force_proxy 'wxVScrolled'
|
|
124
|
+
spec.swig_import %w[
|
|
125
|
+
swig/classes/include/wxObject.h
|
|
126
|
+
swig/classes/include/wxEvtHandler.h
|
|
127
|
+
swig/classes/include/wxWindow.h
|
|
128
|
+
swig/classes/include/wxPanel.h
|
|
129
|
+
swig/classes/include/wxHScrolledWindow.h
|
|
130
|
+
]
|
|
131
|
+
# regard protected methods
|
|
132
|
+
spec.regard 'wxVarVScrollHelper::OnGetRowHeight',
|
|
133
|
+
'wxVarVScrollHelper::OnGetRowsHeightHint'
|
|
134
|
+
# ignore internal implementation methods
|
|
135
|
+
spec.ignore 'wxVarScrollHelperBase::GetNonOrientationTargetSize',
|
|
136
|
+
'wxVarScrollHelperBase::GetOrientation',
|
|
137
|
+
'wxVarScrollHelperBase::GetOrientationTargetSize',
|
|
138
|
+
'wxVarScrollHelperBase::OnGetUnitSize',
|
|
139
|
+
'wxVarScrollHelperBase::CalcScrolledPosition',
|
|
140
|
+
'wxVarScrollHelperBase::CalcUnscrolledPosition',
|
|
141
|
+
'wxVarScrollHelperBase::GetTargetWindow',
|
|
142
|
+
'wxVarScrollHelperBase::SetTargetWindow',
|
|
143
|
+
'wxVarScrollHelperBase::UpdateScrollbar'
|
|
144
|
+
spec.do_not_generate(:typedefs, :functions, :defines, :variables)
|
|
145
|
+
else
|
|
146
|
+
spec.items.clear
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end # class HVScrolledWindow
|
|
151
|
+
|
|
152
|
+
end # class Director
|
|
153
|
+
|
|
154
|
+
end # module WXRuby3
|
|
@@ -22,6 +22,10 @@ module WXRuby3
|
|
|
22
22
|
wxMDIParentFrame::SetWindowMenu
|
|
23
23
|
wxMDIParentFrame::Tile
|
|
24
24
|
wxMDIParentFrame::Cascade]
|
|
25
|
+
# for SetWindowMenu
|
|
26
|
+
spec.disown 'wxMenu *'
|
|
27
|
+
spec.extend_interface('wxMDIChildFrame',
|
|
28
|
+
'virtual bool Destroy() override')
|
|
25
29
|
# for GetClientWindow
|
|
26
30
|
spec.map 'wxMDIClientWindowBase *' => 'wxMDIClientWindow *' do
|
|
27
31
|
map_out code: <<~__HEREDOC
|
|
@@ -13,7 +13,7 @@ module WXRuby3
|
|
|
13
13
|
class Menu < Director
|
|
14
14
|
|
|
15
15
|
def setup
|
|
16
|
-
spec.
|
|
16
|
+
spec.gc_as_object
|
|
17
17
|
spec.ignore 'wxMenu::wxMenu(long)'
|
|
18
18
|
spec.no_proxy 'wxMenu' # do not support derived wxMenu classes
|
|
19
19
|
spec.add_header_code <<~__HEREDOC
|
|
@@ -33,6 +33,16 @@ module WXRuby3
|
|
|
33
33
|
__HEREDOC
|
|
34
34
|
# make Ruby director and wrappers use custom implementation
|
|
35
35
|
spec.use_class_implementation('wxMenu', 'wxRubyMenu')
|
|
36
|
+
# GC handling
|
|
37
|
+
spec.disown 'wxMenu *submenu'
|
|
38
|
+
# not wanted
|
|
39
|
+
spec.ignore 'wxMenu::SetParent',
|
|
40
|
+
'wxMenu::Attach',
|
|
41
|
+
'wxMenu::Detach',
|
|
42
|
+
'wxMenu::SetInvokingWindow',
|
|
43
|
+
'wxMenu::GetInvokingWindow',
|
|
44
|
+
'wxMenu::GetWindow',
|
|
45
|
+
'wxMenu::UpdateUI'
|
|
36
46
|
# ignore non-const version as that has no benefits in Ruby
|
|
37
47
|
spec.ignore 'wxMenu::GetMenuItems()'
|
|
38
48
|
# Fix for GetMenuItems - converts list of MenuItems to Array
|
|
@@ -60,30 +70,61 @@ module WXRuby3
|
|
|
60
70
|
# for FindChildItem
|
|
61
71
|
spec.map_apply 'size_t * OUTPUT' => 'size_t * pos'
|
|
62
72
|
spec.add_header_code <<~__HEREDOC
|
|
73
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceMarkMenu, "GC_MARK_MENU")
|
|
74
|
+
|
|
75
|
+
// forward decl
|
|
76
|
+
SWIGINTERN void free_wxMenu(void *self);
|
|
77
|
+
|
|
63
78
|
// Mark Function
|
|
64
79
|
// Need to protect MenuItems which are included in the Menu, including
|
|
65
80
|
// their associated sub-menus, recursively.
|
|
66
|
-
static void
|
|
81
|
+
static void GC_mark_wxMenu(void *ptr)
|
|
67
82
|
{
|
|
68
|
-
|
|
69
|
-
|
|
83
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenu, 2)
|
|
84
|
+
WXRUBY_TRACE("> GC_mark_wxMenu : " << ptr)
|
|
85
|
+
WXRUBY_TRACE_END
|
|
70
86
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
87
|
+
VALUE rb_menu = SWIG_RubyInstanceFor(ptr);
|
|
88
|
+
if (!RB_NIL_P(rb_menu))
|
|
89
|
+
{
|
|
90
|
+
// as long as the dfree function is still the managed free function the menu has not been attached to a menu bar
|
|
91
|
+
// but it may hay have already had submenus and/or menuitems added which need to be marked
|
|
92
|
+
if (RDATA(rb_menu)->dfree == free_wxMenu)
|
|
75
93
|
{
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
94
|
+
wxMenu* wx_menu = static_cast<wxMenu*> (ptr);
|
|
95
|
+
|
|
96
|
+
wxMenuItemList wx_menu_items = wx_menu->GetMenuItems();
|
|
97
|
+
wxMenuItemList::iterator iter;
|
|
98
|
+
for (iter = wx_menu_items.begin(); iter != wx_menu_items.end(); ++iter)
|
|
99
|
+
{
|
|
100
|
+
wxMenuItem *wx_item = *iter;
|
|
101
|
+
rb_gc_mark( SWIG_RubyInstanceFor(wx_item) );
|
|
102
|
+
wxMenu* wx_sub_menu = wx_item->GetSubMenu();
|
|
103
|
+
if (wx_sub_menu)
|
|
104
|
+
GC_mark_attached_wxMenu(wx_sub_menu);
|
|
105
|
+
}
|
|
81
106
|
}
|
|
82
|
-
|
|
107
|
+
else // otherwise the menu has been attached to a menu bar and may already have been deleted (or not)
|
|
108
|
+
{ // marking in this case will be left to the menu bar
|
|
109
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenu, 3)
|
|
110
|
+
WXRUBY_TRACE("< GC_mark_wxMenu : skipping attached menu")
|
|
111
|
+
WXRUBY_TRACE_END
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else
|
|
115
|
+
{
|
|
116
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenu, 3)
|
|
117
|
+
WXRUBY_TRACE("< GC_mark_wxMenu : skipping untracked menu (should not have happened)")
|
|
118
|
+
WXRUBY_TRACE_END
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenu, 2)
|
|
122
|
+
WXRUBY_TRACE("< GC_mark_wxMenu : " << ptr)
|
|
123
|
+
WXRUBY_TRACE_END
|
|
83
124
|
}
|
|
84
125
|
__HEREDOC
|
|
85
126
|
spec.add_swig_code <<~__HEREDOC
|
|
86
|
-
%markfunc wxMenu "
|
|
127
|
+
%markfunc wxMenu "GC_mark_wxMenu";
|
|
87
128
|
__HEREDOC
|
|
88
129
|
# ignore MSW specific method
|
|
89
130
|
spec.ignore 'wxMenu::MSWCommand'
|