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.
- checksums.yaml +4 -4
- data/CREDITS.md +32 -25
- data/INSTALL.md +19 -4
- 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 +152 -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/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/tip_window.rb +18 -6
- 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 +26 -0
- data/lib/wx/pg/property_grid_interface.rb +2 -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 +3 -2
- 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 +16 -5
- 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/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/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 +16 -3
- data/rakelib/lib/director/hvscrolled.rb +7 -106
- 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/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 +4 -1
- 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/validator.rb +12 -0
- data/rakelib/lib/director/variant.rb +36 -20
- data/rakelib/lib/director/vlistbox.rb +25 -22
- data/rakelib/lib/director/window.rb +10 -1
- 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 +3 -1
- data/rakelib/lib/swig_runner.rb +10 -10
- 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 +31 -31
- 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 +400 -11
- data/lib/wx/aui/aui_tab_ctrl.rb +0 -18
|
@@ -16,6 +16,7 @@ module WXRuby3
|
|
|
16
16
|
|
|
17
17
|
def setup
|
|
18
18
|
super
|
|
19
|
+
spec.gc_as_object # not a typical window
|
|
19
20
|
spec.no_proxy('wxMenuBar::FindItem',
|
|
20
21
|
'wxMenuBar::Remove',
|
|
21
22
|
'wxMenuBar::Replace')
|
|
@@ -23,6 +24,8 @@ module WXRuby3
|
|
|
23
24
|
'wxMenuBar::GetLabelTop',
|
|
24
25
|
'wxMenuBar::SetLabelTop',
|
|
25
26
|
'wxMenuBar::Refresh')
|
|
27
|
+
spec.disown 'wxMenu *'
|
|
28
|
+
spec.new_object 'wxMenuBar::Remove', 'wxMenuBar::Replace'
|
|
26
29
|
# for FindItem
|
|
27
30
|
spec.map 'wxMenu **' => 'Wx::Menu' do
|
|
28
31
|
map_in ignore: true, temp: 'wxMenu *tmp', code: '$1 = &tmp;'
|
|
@@ -31,6 +34,65 @@ module WXRuby3
|
|
|
31
34
|
$result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(ptr, SWIGTYPE_p_wxMenu, 0));
|
|
32
35
|
__CODE
|
|
33
36
|
end
|
|
37
|
+
spec.add_header_code <<~__HEREDOC
|
|
38
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceMarkMenubar, "GC_MARK_MENUBAR")
|
|
39
|
+
|
|
40
|
+
// forward decl
|
|
41
|
+
SWIGINTERN void free_wxMenuBar(void *self);
|
|
42
|
+
|
|
43
|
+
// Mark Function for unattached menu bars
|
|
44
|
+
// Need to protect Menu and MenuItems which are included in the MenuBar
|
|
45
|
+
static void GC_mark_wxMenuBar(void *ptr)
|
|
46
|
+
{
|
|
47
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenubar, 2)
|
|
48
|
+
WXRUBY_TRACE("> GC_mark_wxMenuBar : " << ptr)
|
|
49
|
+
WXRUBY_TRACE_END
|
|
50
|
+
|
|
51
|
+
VALUE rb_menu_bar = SWIG_RubyInstanceFor(ptr);
|
|
52
|
+
if (!RB_NIL_P(rb_menu_bar))
|
|
53
|
+
{
|
|
54
|
+
// as long as the dfree function is still the managed free function the menubar has not been attached to a window
|
|
55
|
+
// but it may hay have already had menus and/or menuitems added which need to be marked
|
|
56
|
+
if (RDATA(rb_menu_bar)->dfree == free_wxMenuBar)
|
|
57
|
+
{
|
|
58
|
+
// Menu bars are also a subclass of wxWindow, so must do all the marking
|
|
59
|
+
// of sizers and carets associated with that class
|
|
60
|
+
GC_mark_wxWindow(ptr);
|
|
61
|
+
|
|
62
|
+
wxMenuBar* wx_menu_bar = static_cast<wxMenuBar*> (ptr);
|
|
63
|
+
|
|
64
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenubar, 3)
|
|
65
|
+
WXRUBY_TRACE("< GC_mark_wxMenuBar : marking " << wx_menu_bar->GetMenuCount() << " menus")
|
|
66
|
+
WXRUBY_TRACE_END
|
|
67
|
+
|
|
68
|
+
// Mark each menu in the menubar in turn
|
|
69
|
+
for ( size_t i = 0; i < wx_menu_bar->GetMenuCount(); i++ )
|
|
70
|
+
{
|
|
71
|
+
GC_mark_attached_wxMenu(wx_menu_bar->GetMenu(i));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else // otherwise the menu bar has been attached to a frame and may already have been deleted (or not)
|
|
75
|
+
{ // marking in this case will be left to the frame
|
|
76
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenubar, 3)
|
|
77
|
+
WXRUBY_TRACE("< GC_mark_wxMenuBar : skipping attached menu bar")
|
|
78
|
+
WXRUBY_TRACE_END
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else
|
|
82
|
+
{
|
|
83
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenubar, 3)
|
|
84
|
+
WXRUBY_TRACE("< GC_mark_wxMenuBar : skipping untracked menu bar (should not have happened)")
|
|
85
|
+
WXRUBY_TRACE_END
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkMenubar, 2)
|
|
89
|
+
WXRUBY_TRACE("< GC_mark_wxMenuBar : " << ptr)
|
|
90
|
+
WXRUBY_TRACE_END
|
|
91
|
+
}
|
|
92
|
+
__HEREDOC
|
|
93
|
+
spec.add_swig_code <<~__HEREDOC
|
|
94
|
+
%markfunc wxMenu "GC_mark_wxMenuBar";
|
|
95
|
+
__HEREDOC
|
|
34
96
|
end
|
|
35
97
|
end # class MenuBar
|
|
36
98
|
|
|
@@ -17,12 +17,18 @@ module WXRuby3
|
|
|
17
17
|
# (which seems acceptable as there is no use for menu items otherwise)
|
|
18
18
|
# if not the C++ item will never be deleted before the process terminates
|
|
19
19
|
# (but this goes for all object marked for GC_NEVER).
|
|
20
|
+
# this keeps things MUCH simpler while adding a (slight?) risk of minor
|
|
21
|
+
# (non-destructive) memory leaks
|
|
20
22
|
spec.gc_never
|
|
23
|
+
spec.disable_proxies # no reason to derive
|
|
21
24
|
spec.ignore(%w[wxMenuItem::GetLabel wxMenuItem::GetName wxMenuItem::GetText wxMenuItem::SetText wxMenuItem::GetLabelFromText])
|
|
25
|
+
# Replace for more specific param naming
|
|
26
|
+
spec.ignore 'wxMenuItem::SetSubMenu(wxMenu *)', ignore_doc: false
|
|
27
|
+
spec.extend_interface 'wxMenuItem', 'void SetSubMenu(wxMenu *sub_menu)'
|
|
28
|
+
spec.disown 'wxMenu *sub_menu'
|
|
22
29
|
# ignore this as there is no implementation anymore
|
|
23
30
|
spec.ignore 'wxMenuItem::GetAccelFromString'
|
|
24
31
|
spec.ignore_unless('USE_ACCEL', 'wxMenuItem::GetAccel')
|
|
25
|
-
spec.no_proxy 'wxMenuItem::GetAccel'
|
|
26
32
|
spec.ignore 'wxMenuItem::GetBitmap(bool)' # not portable
|
|
27
33
|
if Config.instance.wx_version_check('3.2.4') > 0
|
|
28
34
|
spec.ignore_unless('WXMSW', 'wxMenuItem::SetBackgroundColour','wxMenuItem::SetFont','wxMenuItem::SetTextColour')
|
|
@@ -54,7 +54,16 @@ module WXRuby3
|
|
|
54
54
|
{}
|
|
55
55
|
virtual ~WXIntegerValidator()
|
|
56
56
|
{
|
|
57
|
+
// All Validators are EvtHandlers, so prevent any pending events being
|
|
58
|
+
// sent after destruction (otherwise ObjectPreviouslyDeleted errors result)
|
|
59
|
+
this->SetEvtHandlerEnabled(false);
|
|
57
60
|
wxRuby_ReleaseEvtHandlerProcs(this);
|
|
61
|
+
// Disassociate the C++ and Ruby objects if not done by Ruby free method
|
|
62
|
+
if (!NIL_P(SWIG_RubyInstanceFor(this)))
|
|
63
|
+
{
|
|
64
|
+
SWIG_RubyUnlinkObjects(this);
|
|
65
|
+
SWIG_RubyRemoveTracking(this);
|
|
66
|
+
}
|
|
58
67
|
}
|
|
59
68
|
|
|
60
69
|
virtual wxObject* Clone() const override
|
|
@@ -163,7 +172,16 @@ module WXRuby3
|
|
|
163
172
|
{}
|
|
164
173
|
virtual ~WXUnsignedValidator()
|
|
165
174
|
{
|
|
175
|
+
// All Validators are EvtHandlers, so prevent any pending events being
|
|
176
|
+
// sent after destruction (otherwise ObjectPreviouslyDeleted errors result)
|
|
177
|
+
this->SetEvtHandlerEnabled(false);
|
|
166
178
|
wxRuby_ReleaseEvtHandlerProcs(this);
|
|
179
|
+
// Disassociate the C++ and Ruby objects if not done by Ruby free method
|
|
180
|
+
if (!NIL_P(SWIG_RubyInstanceFor(this)))
|
|
181
|
+
{
|
|
182
|
+
SWIG_RubyUnlinkObjects(this);
|
|
183
|
+
SWIG_RubyRemoveTracking(this);
|
|
184
|
+
}
|
|
167
185
|
}
|
|
168
186
|
|
|
169
187
|
virtual wxObject* Clone() const override
|
|
@@ -272,7 +290,16 @@ module WXRuby3
|
|
|
272
290
|
{}
|
|
273
291
|
virtual ~WXFloatValidator()
|
|
274
292
|
{
|
|
293
|
+
// All Validators are EvtHandlers, so prevent any pending events being
|
|
294
|
+
// sent after destruction (otherwise ObjectPreviouslyDeleted errors result)
|
|
295
|
+
this->SetEvtHandlerEnabled(false);
|
|
275
296
|
wxRuby_ReleaseEvtHandlerProcs(this);
|
|
297
|
+
// Disassociate the C++ and Ruby objects if not done by Ruby free method
|
|
298
|
+
if (!NIL_P(SWIG_RubyInstanceFor(this)))
|
|
299
|
+
{
|
|
300
|
+
SWIG_RubyUnlinkObjects(this);
|
|
301
|
+
SWIG_RubyRemoveTracking(this);
|
|
302
|
+
}
|
|
276
303
|
}
|
|
277
304
|
|
|
278
305
|
virtual wxObject* Clone() const override
|
|
@@ -34,7 +34,16 @@ module WXRuby3
|
|
|
34
34
|
}
|
|
35
35
|
virtual ~WXRubyNumericPropertyValidator()
|
|
36
36
|
{
|
|
37
|
+
// All Validators are EvtHandlers, so prevent any pending events being
|
|
38
|
+
// sent after destruction (otherwise ObjectPreviouslyDeleted errors result)
|
|
39
|
+
this->SetEvtHandlerEnabled(false);
|
|
37
40
|
wxRuby_ReleaseEvtHandlerProcs(this);
|
|
41
|
+
// Disassociate the C++ and Ruby objects if not done by Ruby free method
|
|
42
|
+
if (!NIL_P(SWIG_RubyInstanceFor(this)))
|
|
43
|
+
{
|
|
44
|
+
SWIG_RubyUnlinkObjects(this);
|
|
45
|
+
SWIG_RubyRemoveTracking(this);
|
|
46
|
+
}
|
|
38
47
|
}
|
|
39
48
|
|
|
40
49
|
virtual wxObject* Clone() const override
|
|
@@ -35,6 +35,8 @@ module WXRuby3
|
|
|
35
35
|
# for upcalls
|
|
36
36
|
spec.extend_interface('wxPopupWindow',
|
|
37
37
|
'virtual bool Show(bool show = true) override')
|
|
38
|
+
spec.extend_interface('wxPopupTransientWindow',
|
|
39
|
+
'virtual bool Destroy() override')
|
|
38
40
|
# For ProcessLeftDown
|
|
39
41
|
spec.map 'wxMouseEvent &' => 'Wx::MouseEvent' do
|
|
40
42
|
map_directorin code: <<~__CODE
|
|
@@ -31,7 +31,8 @@ module WXRuby3
|
|
|
31
31
|
const wxString& name = wxASCII_STR(wxFrameNameStr))
|
|
32
32
|
: wxPreviewFrame(preview, parent, title, pos, size, style, name)
|
|
33
33
|
{}
|
|
34
|
-
virtual ~WxRubyPreviewFrame()
|
|
34
|
+
virtual ~WxRubyPreviewFrame()
|
|
35
|
+
{}
|
|
35
36
|
|
|
36
37
|
const wxPrintPreview* get_print_preview() const
|
|
37
38
|
{
|
|
@@ -39,20 +40,42 @@ module WXRuby3
|
|
|
39
40
|
}
|
|
40
41
|
};
|
|
41
42
|
|
|
43
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkPreviewFrame, "GC_MARK_PRINT_PREVIEW_FRAME")
|
|
44
|
+
|
|
45
|
+
void WxRuby_mark_wxPrintPreview(void* ptr);
|
|
46
|
+
|
|
42
47
|
static void GC_mark_wxPreviewFrame(void *ptr)
|
|
43
48
|
{
|
|
49
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPreviewFrame, 2)
|
|
50
|
+
WXRUBY_TRACE("> GC_mark_wxPreviewFrame : " << ptr)
|
|
51
|
+
WXRUBY_TRACE_END
|
|
52
|
+
|
|
44
53
|
if ( GC_IsWindowDeleted(ptr) )
|
|
45
54
|
return;
|
|
46
55
|
|
|
47
|
-
// Do standard marking routines as for all
|
|
48
|
-
|
|
56
|
+
// Do standard marking routines as for all wxFrames
|
|
57
|
+
GC_mark_wxFrame(ptr);
|
|
49
58
|
|
|
50
59
|
WxRubyPreviewFrame* preview_frame = dynamic_cast<WxRubyPreviewFrame*>((wxPreviewFrame*)ptr);
|
|
51
60
|
if (preview_frame)
|
|
52
61
|
{
|
|
53
|
-
const
|
|
54
|
-
|
|
62
|
+
const wxPrintPreview* wx_prtprev = preview_frame->get_print_preview();
|
|
63
|
+
VALUE rb_prtprev = SWIG_RubyInstanceFor(const_cast<void*> ((const void*)wx_prtprev));
|
|
64
|
+
|
|
65
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPreviewFrame, 3)
|
|
66
|
+
WXRUBY_TRACE("| GC_mark_wxPreviewFrame : marking print preview " << wx_prtprev << " -> " << rb_prtprev);
|
|
67
|
+
WXRUBY_TRACE_END
|
|
68
|
+
|
|
69
|
+
// mark the Ruby wrapper instance
|
|
70
|
+
// this will skip marking the members as any preview attached to a preview frame is disowned
|
|
71
|
+
rb_gc_mark(rb_prtprev);
|
|
72
|
+
// so, force marking the preview members
|
|
73
|
+
WxRuby_mark_wxPrintPreview(const_cast<void*> ((const void*)wx_prtprev));
|
|
55
74
|
}
|
|
75
|
+
|
|
76
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPreviewFrame, 2)
|
|
77
|
+
WXRUBY_TRACE("< GC_mark_wxPreviewFrame : " << ptr)
|
|
78
|
+
WXRUBY_TRACE_END
|
|
56
79
|
}
|
|
57
80
|
__HEREDOC
|
|
58
81
|
spec.use_class_implementation 'wxPreviewFrame', 'WxRubyPreviewFrame'
|
|
@@ -62,7 +85,7 @@ module WXRuby3
|
|
|
62
85
|
# in all cases will be the actual base being used.
|
|
63
86
|
spec.ignore 'wxPreviewFrame::wxPreviewFrame(wxPrintPreviewBase *, wxWindow *,const wxString &,const wxPoint &,const wxSize &,long,const wxString &)', ignore_doc: false
|
|
64
87
|
spec.extend_interface('wxPreviewFrame',
|
|
65
|
-
'wxPreviewFrame(wxPrintPreview *preview, wxWindow *parent, const wxString &title="Print Preview", const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)')
|
|
88
|
+
'wxPreviewFrame(wxPrintPreview *preview, wxWindow *parent, const wxString &title="Print Preview", const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE | wxFRAME_FLOAT_ON_PARENT, const wxString &name=wxFrameNameStr)')
|
|
66
89
|
# non-functional map for doc gen
|
|
67
90
|
spec.map 'wxPrintPreviewBase *' => 'Wx::PrintPreview', swig: false do
|
|
68
91
|
map_in
|
|
@@ -31,16 +31,70 @@ module WXRuby3
|
|
|
31
31
|
spec.new_object 'wxPrinter::GetPrintDialogData'
|
|
32
32
|
spec.disown 'wxPrintout *' # Printout-s passed to PrintPreview will be managed by wxWidgets
|
|
33
33
|
spec.add_header_code <<~__HEREDOC
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceGCMarkPrintPreview, "GC_MARK_PRINT_PREVIEW")
|
|
35
|
+
|
|
36
|
+
// forward decl
|
|
37
|
+
SWIGINTERN void free_wxPrintPreview(void *self);
|
|
38
|
+
|
|
39
|
+
// this is the actual print preview marker which is called for Ruby owned instances from the
|
|
40
|
+
// Ruby standard marker and by the container preview frame for disowned instances
|
|
41
|
+
void WxRuby_mark_wxPrintPreview(void* ptr)
|
|
42
|
+
{
|
|
43
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 2)
|
|
44
|
+
WXRUBY_TRACE("> WxRuby_mark_wxPrintPreview : " << ptr)
|
|
45
|
+
WXRUBY_TRACE_END
|
|
46
|
+
|
|
36
47
|
if (ptr)
|
|
37
48
|
{
|
|
38
49
|
wxPrintPreview* print_preview = (wxPrintPreview*)ptr;
|
|
39
50
|
wxPrintout* printout = print_preview->GetPrintout();
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
51
|
+
VALUE rb_prtout = SWIG_RubyInstanceFor(printout);
|
|
52
|
+
|
|
53
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 3)
|
|
54
|
+
WXRUBY_TRACE("| WxRuby_mark_wxPrintPreview : marking preview printout " << printout << " -> " << rb_prtout);
|
|
55
|
+
WXRUBY_TRACE_END
|
|
56
|
+
|
|
57
|
+
rb_gc_mark(rb_prtout);
|
|
58
|
+
|
|
59
|
+
printout = print_preview->GetPrintoutForPrinting();
|
|
60
|
+
rb_prtout = SWIG_RubyInstanceFor(printout);
|
|
61
|
+
|
|
62
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 3)
|
|
63
|
+
WXRUBY_TRACE("| WxRuby_mark_wxPrintPreview : marking printing printout " << printout << " -> " << rb_prtout);
|
|
64
|
+
WXRUBY_TRACE_END
|
|
65
|
+
|
|
66
|
+
rb_gc_mark(rb_prtout);
|
|
43
67
|
}
|
|
68
|
+
|
|
69
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 2)
|
|
70
|
+
WXRUBY_TRACE("< WxRuby_mark_wxPrintPreview : " << ptr)
|
|
71
|
+
WXRUBY_TRACE_END
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// this is the Ruby standard marker called by the Ruby GC mark phase
|
|
75
|
+
// for Ruby instances visible to Ruby
|
|
76
|
+
static void GC_mark_wxPrintPreview(void *ptr)
|
|
77
|
+
{
|
|
78
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 2)
|
|
79
|
+
WXRUBY_TRACE("> GC_mark_wxPrintPreview : " << ptr)
|
|
80
|
+
WXRUBY_TRACE_END
|
|
81
|
+
|
|
82
|
+
VALUE rb_pp = SWIG_RubyInstanceFor(ptr);
|
|
83
|
+
// if this is still an instance 'owned' by Ruby
|
|
84
|
+
if (!RB_NIL_P(rb_pp) && RDATA(rb_pp)->dfree==free_wxPrintPreview)
|
|
85
|
+
{
|
|
86
|
+
WxRuby_mark_wxPrintPreview(ptr);
|
|
87
|
+
}
|
|
88
|
+
else
|
|
89
|
+
{
|
|
90
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 3)
|
|
91
|
+
WXRUBY_TRACE("| GC_mark_wxPrintPreview : skip marking disowned instance")
|
|
92
|
+
WXRUBY_TRACE_END
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
WXRUBY_TRACE_IF(WxRubyTraceGCMarkPrintPreview, 2)
|
|
96
|
+
WXRUBY_TRACE("< GC_mark_wxPrintPreview : " << ptr)
|
|
97
|
+
WXRUBY_TRACE_END
|
|
44
98
|
}
|
|
45
99
|
__HEREDOC
|
|
46
100
|
spec.add_swig_code '%markfunc wxPrintPreview "GC_mark_wxPrintPreview";'
|
|
@@ -74,12 +74,16 @@ module WXRuby3
|
|
|
74
74
|
spec.include_mixin 'wxPropertyGrid', 'Wx::PG::PropertyGridInterface'
|
|
75
75
|
# customize mark function
|
|
76
76
|
spec.add_header_code <<~__HEREDOC
|
|
77
|
+
extern bool WXRuby_Is_In_GC_mark_wxPropertyGridManager();
|
|
78
|
+
|
|
79
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceMarkPropGrid, "GC_MARK_PROPGRID_GRID")
|
|
80
|
+
|
|
77
81
|
static void GC_mark_wxPropertyGrid(void* ptr)
|
|
78
82
|
{
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkPropGrid, 2)
|
|
84
|
+
WXRUBY_TRACE("> GC_mark_wxPropertyGrid : " << ptr)
|
|
85
|
+
WXRUBY_TRACE_END
|
|
86
|
+
|
|
83
87
|
if ( GC_IsWindowDeleted(ptr) )
|
|
84
88
|
{
|
|
85
89
|
return;
|
|
@@ -87,38 +91,53 @@ module WXRuby3
|
|
|
87
91
|
// Do standard marking routines as for all wxWindows
|
|
88
92
|
GC_mark_wxWindow(ptr);
|
|
89
93
|
|
|
94
|
+
// no need to mark properties if called from GC_mark_wxPropertyGridManager
|
|
95
|
+
// as that will mark properties through the property grid pages
|
|
96
|
+
if (WXRuby_Is_In_GC_mark_wxPropertyGridManager())
|
|
97
|
+
return;
|
|
98
|
+
|
|
99
|
+
#ifdef __WXRB_DEBUG__
|
|
100
|
+
long l = 0, n = 0;
|
|
101
|
+
#endif
|
|
90
102
|
wxPropertyGrid* wx_pg = (wxPropertyGrid*) ptr;
|
|
91
103
|
|
|
104
|
+
VALUE rb_root_prop = SWIG_RubyInstanceFor(wx_pg->GetRoot());
|
|
105
|
+
if (!NIL_P(rb_root_prop))
|
|
106
|
+
{
|
|
107
|
+
rb_gc_mark(rb_root_prop);
|
|
108
|
+
#ifdef __WXRB_DEBUG__
|
|
109
|
+
++n;
|
|
110
|
+
#endif
|
|
111
|
+
}
|
|
92
112
|
// mark all properties
|
|
93
113
|
wxPGVIterator it =
|
|
94
114
|
wx_pg->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
|
|
95
115
|
// iterate all
|
|
96
116
|
for ( ; !it.AtEnd(); it.Next() )
|
|
97
117
|
{
|
|
98
|
-
wxPGProperty* p = it.GetProperty();
|
|
99
|
-
VALUE rb_p = SWIG_RubyInstanceFor(p);
|
|
100
|
-
if (NIL_P(rb_p))
|
|
101
|
-
{
|
|
102
|
-
VALUE object = (VALUE) p->GetClientData();
|
|
103
|
-
if ( object && !NIL_P(object))
|
|
104
|
-
{
|
|
105
118
|
#ifdef __WXRB_DEBUG__
|
|
106
|
-
|
|
107
|
-
std::wcout << "*** marking property data " << p << ":" << p->GetName() << std::endl;
|
|
119
|
+
++l;
|
|
108
120
|
#endif
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
else
|
|
121
|
+
wxPGProperty* wx_p = it.GetProperty();
|
|
122
|
+
VALUE rb_prop = SWIG_RubyInstanceFor(wx_p);
|
|
123
|
+
if (!RB_NIL_P(rb_prop))
|
|
113
124
|
{
|
|
114
|
-
rb_gc_mark(
|
|
125
|
+
rb_gc_mark(rb_prop);
|
|
126
|
+
#ifdef __WXRB_DEBUG__
|
|
127
|
+
++n;
|
|
128
|
+
#endif
|
|
115
129
|
}
|
|
116
130
|
}
|
|
131
|
+
|
|
132
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkPropGrid, 2)
|
|
133
|
+
WXRUBY_TRACE("< GC_mark_wxPropertyGrid : iterated " << l << " properties; marked " << n )
|
|
134
|
+
WXRUBY_TRACE_END
|
|
117
135
|
}
|
|
118
136
|
__HEREDOC
|
|
119
137
|
spec.add_swig_code '%markfunc wxPropertyGrid "GC_mark_wxPropertyGrid";'
|
|
120
138
|
# missing from XML docs
|
|
121
139
|
spec.extend_interface 'wxPropertyGrid',
|
|
140
|
+
'virtual bool Destroy()',
|
|
122
141
|
'wxPoint GetGoodEditorDialogPosition(wxPGProperty* p, const wxSize& sz)',
|
|
123
142
|
'wxWindow* GetPrimaryEditor() const',
|
|
124
143
|
'wxWindow* GetEditorControlSecondary() const',
|
|
@@ -45,10 +45,12 @@ module WXRuby3
|
|
|
45
45
|
end
|
|
46
46
|
spec.ignore_unless 'USE_DATETIME', 'wxPropertyGridInterface::GetPropertyValueAsDateTime'
|
|
47
47
|
spec.ignore_unless 'USE_VALIDATORS', 'wxPropertyGridInterface::GetPropertyValidator'
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
if Config.instance.wx_version_check('3.3.1') <= 0
|
|
49
|
+
# fix incorrect XML documentation
|
|
50
|
+
spec.ignore 'wxPropertyGridInterface::SetPropertyImage', ignore_doc: false # ignore non-const BitmapBundle arg decl
|
|
51
|
+
# and add correct decl
|
|
52
|
+
spec.extend_interface 'wxPropertyGridInterface', 'void SetPropertyImage(wxPGPropArg id, const wxBitmapBundle &bmp)'
|
|
53
|
+
end
|
|
52
54
|
# don't expose property grid iterators; add a more Ruby-like extension
|
|
53
55
|
spec.ignore 'wxPropertyGridInterface::GetIterator', 'wxPropertyGridInterface::GetVIterator'
|
|
54
56
|
# add basic property enumerator; will wrap this in pure Ruby still for improved argument handling
|
|
@@ -63,7 +65,7 @@ module WXRuby3
|
|
|
63
65
|
while (!prop_it.AtEnd())
|
|
64
66
|
{
|
|
65
67
|
wxPGProperty* pp = prop_it.GetProperty();
|
|
66
|
-
VALUE rb_prop =
|
|
68
|
+
VALUE rb_prop = wxRuby_WrapWxPGPropertyInRuby(pp);
|
|
67
69
|
rc = rb_yield(rb_prop);
|
|
68
70
|
prop_it.Next();
|
|
69
71
|
}
|
|
@@ -101,7 +103,7 @@ module WXRuby3
|
|
|
101
103
|
while (!prop_it.AtEnd())
|
|
102
104
|
{
|
|
103
105
|
wxPGProperty* pp = prop_it.GetProperty();
|
|
104
|
-
VALUE rb_prop =
|
|
106
|
+
VALUE rb_prop = wxRuby_WrapWxPGPropertyInRuby(pp);
|
|
105
107
|
rc = rb_yield(rb_prop);
|
|
106
108
|
reverse ? prop_it.Prev() : prop_it.Next();
|
|
107
109
|
}
|
|
@@ -137,7 +139,7 @@ module WXRuby3
|
|
|
137
139
|
for (size_t i = 0; i < $1->GetCount(); i++)
|
|
138
140
|
{
|
|
139
141
|
wxPGProperty* pp = $1->Item(i);
|
|
140
|
-
VALUE rb_pp =
|
|
142
|
+
VALUE rb_pp = wxRuby_WrapWxPGPropertyInRuby(pp);
|
|
141
143
|
rb_ary_push($result, rb_pp);
|
|
142
144
|
}
|
|
143
145
|
__CODE
|
|
@@ -149,7 +151,7 @@ module WXRuby3
|
|
|
149
151
|
for (size_t i = 0; i < $1->GetCount(); i++)
|
|
150
152
|
{
|
|
151
153
|
wxPGProperty* pp = $1->Item(i);
|
|
152
|
-
VALUE rb_pp =
|
|
154
|
+
VALUE rb_pp = wxRuby_WrapWxPGPropertyInRuby(pp);
|
|
153
155
|
rb_ary_push($result, rb_pp);
|
|
154
156
|
}
|
|
155
157
|
__CODE
|
|
@@ -19,6 +19,57 @@ module WXRuby3
|
|
|
19
19
|
def setup
|
|
20
20
|
super
|
|
21
21
|
spec.override_inheritance_chain('wxPropertyGridManager', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
22
|
+
# need a custom implementation to handle cleaning up tracked objects
|
|
23
|
+
spec.add_header_code <<~__HEREDOC
|
|
24
|
+
WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr);
|
|
25
|
+
|
|
26
|
+
class WXRubyPropertyGridManager : public wxPropertyGridManager
|
|
27
|
+
{
|
|
28
|
+
public:
|
|
29
|
+
WXRubyPropertyGridManager() : wxPropertyGridManager() {}
|
|
30
|
+
WXRubyPropertyGridManager( wxWindow *parent, wxWindowID id = wxID_ANY,
|
|
31
|
+
const wxPoint& pos = wxDefaultPosition,
|
|
32
|
+
const wxSize& size = wxDefaultSize,
|
|
33
|
+
long style = wxPGMAN_DEFAULT_STYLE,
|
|
34
|
+
const wxString& name = wxASCII_STR(wxPropertyGridManagerNameStr) )
|
|
35
|
+
: wxPropertyGridManager(parent, id, pos, size, style, name) {}
|
|
36
|
+
|
|
37
|
+
virtual ~WXRubyPropertyGridManager()
|
|
38
|
+
{
|
|
39
|
+
// as the grid will not be deleted by calling Destroy() but
|
|
40
|
+
// rather by deleting directly handle GC cleanup here
|
|
41
|
+
GC_SetWindowDeleted(m_pPropGrid);
|
|
42
|
+
// also cleanup all page and property instances that will
|
|
43
|
+
// be deleted by wxPropertyGridManager
|
|
44
|
+
for( wxPropertyGridPage* page : m_arrPages )
|
|
45
|
+
{
|
|
46
|
+
// clean up tracking of all tracked properties
|
|
47
|
+
wxPGProperty* wx_p = page->GetRoot();
|
|
48
|
+
if (!NIL_P(SWIG_RubyInstanceFor(wx_p)))
|
|
49
|
+
{
|
|
50
|
+
SWIG_RubyUnlinkObjects(wx_p);
|
|
51
|
+
SWIG_RubyRemoveTracking(wx_p);
|
|
52
|
+
}
|
|
53
|
+
wxPGVIterator it =
|
|
54
|
+
page->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
|
|
55
|
+
// iterate all
|
|
56
|
+
for ( ; !it.AtEnd(); it.Next() )
|
|
57
|
+
{
|
|
58
|
+
wx_p = it.GetProperty();
|
|
59
|
+
if (!RB_NIL_P(SWIG_RubyInstanceFor(wx_p)))
|
|
60
|
+
{
|
|
61
|
+
SWIG_RubyUnlinkObjects(wx_p);
|
|
62
|
+
SWIG_RubyRemoveTracking(wx_p);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Disassociate the C++ and Ruby pages (if any association)
|
|
66
|
+
SWIG_RubyUnlinkObjects(page);
|
|
67
|
+
SWIG_RubyRemoveTracking(page);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
__HEREDOC
|
|
72
|
+
spec.use_class_implementation 'wxPropertyGridManager', 'WXRubyPropertyGridManager'
|
|
22
73
|
spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
|
|
23
74
|
# mixin PropertyGridInterface
|
|
24
75
|
spec.include_mixin 'wxPropertyGridManager', 'Wx::PG::PropertyGridInterface'
|
|
@@ -29,12 +80,28 @@ module WXRuby3
|
|
|
29
80
|
spec.ignore 'wxPropertyGridManager::GetVIterator'
|
|
30
81
|
# customize mark function
|
|
31
82
|
spec.add_header_code <<~__HEREDOC
|
|
83
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceMarkPropGridMgr, "GC_MARK_PROPGRID_MGR")
|
|
84
|
+
|
|
85
|
+
static bool __wxr_In_GC_mark_wxPropertyGridManager = false;
|
|
86
|
+
|
|
87
|
+
extern void WXRuby_Set_In_GC_mark_wxPropertyGridManager(bool f)
|
|
88
|
+
{
|
|
89
|
+
__wxr_In_GC_mark_wxPropertyGridManager = f;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
extern bool WXRuby_Is_In_GC_mark_wxPropertyGridManager()
|
|
93
|
+
{
|
|
94
|
+
return __wxr_In_GC_mark_wxPropertyGridManager;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
extern void WXRuby_GC_mark_wxPropertyGridPage(wxPropertyGridPage* wx_pgp);
|
|
98
|
+
|
|
32
99
|
static void GC_mark_wxPropertyGridManager(void* ptr)
|
|
33
100
|
{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
101
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkPropGridMgr, 2)
|
|
102
|
+
WXRUBY_TRACE("> GC_mark_wxPropertyGridManager : " << ptr)
|
|
103
|
+
WXRUBY_TRACE_END
|
|
104
|
+
|
|
38
105
|
if ( GC_IsWindowDeleted(ptr) )
|
|
39
106
|
{
|
|
40
107
|
return;
|
|
@@ -42,46 +109,39 @@ module WXRuby3
|
|
|
42
109
|
// Do standard marking routines as for all wxWindows
|
|
43
110
|
GC_mark_wxWindow(ptr);
|
|
44
111
|
|
|
45
|
-
|
|
112
|
+
WXRuby_Set_In_GC_mark_wxPropertyGridManager(true);
|
|
113
|
+
|
|
114
|
+
wxPropertyGridManager* wx_pgm = (wxPropertyGridManager*) ptr;
|
|
46
115
|
|
|
47
|
-
// mark
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
for (size_t i=0; i < wx_pg->GetPageCount() ;++i)
|
|
116
|
+
// mark the property grid
|
|
117
|
+
wxPropertyGrid* wx_pg = wx_pgm->GetGrid();
|
|
118
|
+
VALUE rb_pg = SWIG_RubyInstanceFor(wx_pg);
|
|
119
|
+
if (!NIL_P(rb_pg))
|
|
52
120
|
{
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
121
|
+
rb_gc_mark(rb_pg);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// mark all properties of all pages
|
|
125
|
+
for (size_t i=0; i < wx_pgm->GetPageCount() ;++i)
|
|
126
|
+
{
|
|
127
|
+
wxPropertyGridPage* wx_pgp = wx_pgm->GetPage(i);
|
|
128
|
+
// check if this page is wrapped in Ruby
|
|
129
|
+
VALUE rb_pgp = SWIG_RubyInstanceFor(wx_pgp);
|
|
130
|
+
if (NIL_P(rb_pgp)) // if not just iterate and mark it's properties
|
|
57
131
|
{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (NIL_P(rb_p))
|
|
64
|
-
{
|
|
65
|
-
VALUE object = (VALUE) p->GetClientData();
|
|
66
|
-
if ( object && !NIL_P(object))
|
|
67
|
-
{
|
|
68
|
-
#ifdef __WXRB_DEBUG__
|
|
69
|
-
if (wxRuby_TraceLevel()>2)
|
|
70
|
-
std::wcout << "*** marking property data " << p << ":" << p->GetName() << std::endl;
|
|
71
|
-
#endif
|
|
72
|
-
rb_gc_mark(object);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else
|
|
76
|
-
{
|
|
77
|
-
rb_gc_mark(rb_p);
|
|
78
|
-
}
|
|
132
|
+
WXRuby_GC_mark_wxPropertyGridPage(wx_pgp);
|
|
133
|
+
}
|
|
134
|
+
else // but a tracked Ruby page instance we can simply mark and it will mark it's properties itself
|
|
135
|
+
{
|
|
136
|
+
rb_gc_mark(rb_pgp);
|
|
79
137
|
}
|
|
80
138
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
139
|
+
|
|
140
|
+
WXRuby_Set_In_GC_mark_wxPropertyGridManager(false);
|
|
141
|
+
|
|
142
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkPropGridMgr, 2)
|
|
143
|
+
WXRUBY_TRACE(" GC_mark_wxPropertyGridManager : " << ptr)
|
|
144
|
+
WXRUBY_TRACE_END
|
|
85
145
|
}
|
|
86
146
|
__HEREDOC
|
|
87
147
|
spec.add_swig_code '%markfunc wxPropertyGridManager "GC_mark_wxPropertyGridManager";'
|