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
|
@@ -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,11 @@ 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
|
-
if Config.instance.wx_version_check('3.3.
|
|
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
|
|
23
26
|
spec.override_inheritance_chain('wxHtmlListBox', ['wxVListBox', 'wxVScrolledWindow', 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
24
27
|
else
|
|
25
28
|
spec.override_inheritance_chain('wxHtmlListBox', ['wxVListBox', { 'wxVScrolledWindow' => 'wxHScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
@@ -59,6 +62,13 @@ module WXRuby3
|
|
|
59
62
|
'wxHtmlListBox::GetSelectedTextColour',
|
|
60
63
|
'wxHtmlListBox::GetSelectedTextBgColour',
|
|
61
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)')
|
|
62
72
|
# add missing protected overloads
|
|
63
73
|
spec.extend_interface 'wxHtmlListBox',
|
|
64
74
|
'virtual void OnDrawItem(wxDC &dc, const wxRect &rect, size_t n) const',
|
|
@@ -71,7 +81,9 @@ module WXRuby3
|
|
|
71
81
|
'wxHtmlListBox::OnGetRowsHeightHint'
|
|
72
82
|
|
|
73
83
|
# override inheritance chain
|
|
74
|
-
if Config.instance.wx_version_check('3.3.
|
|
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
|
|
75
87
|
spec.override_inheritance_chain('wxSimpleHtmlListBox', ['wxHtmlListBox', 'wxVListBox', 'wxVScrolledWindow', 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
76
88
|
else
|
|
77
89
|
spec.override_inheritance_chain('wxSimpleHtmlListBox', ['wxHtmlListBox', 'wxVListBox', { 'wxVScrolledWindow' => 'wxHScrolledWindow' }, 'wxPanel', 'wxWindow', 'wxEvtHandler', 'wxObject'])
|
|
@@ -84,7 +96,8 @@ module WXRuby3
|
|
|
84
96
|
# add missing overloads
|
|
85
97
|
spec.extend_interface 'wxSimpleHtmlListBox',
|
|
86
98
|
'virtual wxString GetString(unsigned int n) const',
|
|
87
|
-
'virtual void SetString(unsigned int n, const wxString &string)'
|
|
99
|
+
'virtual void SetString(unsigned int n, const wxString &string)',
|
|
100
|
+
'wxArrayString GetStrings() const'
|
|
88
101
|
spec.ignore([ 'wxItemContainer::Append(const wxString &, void *)',
|
|
89
102
|
'wxItemContainer::Append(const std::vector< wxString > &)',
|
|
90
103
|
'wxItemContainer::Append(const wxArrayString &, void **)',
|
|
@@ -22,50 +22,10 @@ module WXRuby3
|
|
|
22
22
|
spec.override_inheritance_chain('wxHScrolledWindow', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
23
23
|
spec.fold_bases('wxHScrolledWindow' => %w[wxVarHScrollHelper wxVarScrollHelperBase])
|
|
24
24
|
spec.make_abstract 'wxHScrolledWindow'
|
|
25
|
-
spec.force_proxy 'wxHScrolledWindow'
|
|
25
|
+
# spec.force_proxy 'wxHScrolledWindow'
|
|
26
26
|
spec.override_inheritance_chain('wxHVScrolledWindow', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
27
27
|
spec.fold_bases('wxHVScrolledWindow' => %w[wxVarHVScrollHelper wxVarHScrollHelper wxVarVScrollHelper wxVarScrollHelperBase])
|
|
28
28
|
spec.make_abstract 'wxHVScrolledWindow'
|
|
29
|
-
spec.force_proxy 'wxHVScrolledWindow'
|
|
30
|
-
# provide base implementations for pure virtuals
|
|
31
|
-
spec.add_header_code <<~__HEREDOC
|
|
32
|
-
// Custom subclass implementation.
|
|
33
|
-
class wxRubyHScrolledWindow : public wxHScrolledWindow
|
|
34
|
-
{
|
|
35
|
-
public:
|
|
36
|
-
wxRubyHScrolledWindow()
|
|
37
|
-
: wxHScrolledWindow () {}
|
|
38
|
-
wxRubyHScrolledWindow(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)
|
|
39
|
-
: wxHScrolledWindow(parent, id, pos, size, style, name) {}
|
|
40
|
-
protected:
|
|
41
|
-
virtual wxCoord OnGetColumnWidth(size_t) const
|
|
42
|
-
{
|
|
43
|
-
return {};
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
// Custom subclass implementation.
|
|
48
|
-
class wxRubyHVScrolledWindow : public wxHVScrolledWindow
|
|
49
|
-
{
|
|
50
|
-
public:
|
|
51
|
-
wxRubyHVScrolledWindow()
|
|
52
|
-
: wxHVScrolledWindow () {}
|
|
53
|
-
wxRubyHVScrolledWindow(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)
|
|
54
|
-
: wxHVScrolledWindow(parent, id, pos, size, style, name) {}
|
|
55
|
-
protected:
|
|
56
|
-
virtual wxCoord OnGetRowHeight(size_t) const
|
|
57
|
-
{
|
|
58
|
-
return {};
|
|
59
|
-
}
|
|
60
|
-
virtual wxCoord OnGetColumnWidth(size_t) const
|
|
61
|
-
{
|
|
62
|
-
return {};
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
__HEREDOC
|
|
66
|
-
# make Ruby director and wrappers use custom implementation
|
|
67
|
-
spec.use_class_implementation('wxHScrolledWindow', 'wxRubyHScrolledWindow')
|
|
68
|
-
spec.use_class_implementation('wxHVScrolledWindow', 'wxRubyHVScrolledWindow')
|
|
69
29
|
# regard protected methods
|
|
70
30
|
spec.regard 'wxVarVScrollHelper::OnGetRowHeight',
|
|
71
31
|
'wxVarVScrollHelper::OnGetRowsHeightHint'
|
|
@@ -116,26 +76,6 @@ module WXRuby3
|
|
|
116
76
|
spec.override_inheritance_chain('wxVScrolledWindow', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
117
77
|
spec.fold_bases('wxVScrolledWindow' => %w[wxVarVScrollHelper wxVarScrollHelperBase])
|
|
118
78
|
spec.make_abstract 'wxVScrolledWindow'
|
|
119
|
-
spec.force_proxy 'wxVScrolledWindow'
|
|
120
|
-
# provide base implementations for pure virtuals
|
|
121
|
-
spec.add_header_code <<~__HEREDOC
|
|
122
|
-
// Custom subclass implementation.
|
|
123
|
-
class wxRubyVScrolledWindow : public wxVScrolledWindow
|
|
124
|
-
{
|
|
125
|
-
public:
|
|
126
|
-
wxRubyVScrolledWindow()
|
|
127
|
-
: wxVScrolledWindow () {}
|
|
128
|
-
wxRubyVScrolledWindow(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)
|
|
129
|
-
: wxVScrolledWindow(parent, id, pos, size, style, name) {}
|
|
130
|
-
protected:
|
|
131
|
-
virtual wxCoord OnGetRowHeight(size_t) const
|
|
132
|
-
{
|
|
133
|
-
return {};
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
__HEREDOC
|
|
137
|
-
# make Ruby director and wrappers use custom implementation
|
|
138
|
-
spec.use_class_implementation('wxVScrolledWindow', 'wxRubyVScrolledWindow')
|
|
139
79
|
end
|
|
140
80
|
spec.do_not_generate(:typedefs)
|
|
141
81
|
when 'wxVScrolledWindow'
|
|
@@ -145,8 +85,8 @@ module WXRuby3
|
|
|
145
85
|
spec.use_template_as_class('wxVScrolled', 'wxVScrolledWindow')
|
|
146
86
|
spec.override_inheritance_chain('wxVScrolled', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
147
87
|
spec.fold_bases('wxVScrolled' => %w[wxVarVScrollHelper wxVarScrollHelperBase])
|
|
148
|
-
spec.make_abstract '
|
|
149
|
-
spec.force_proxy 'wxVScrolled'
|
|
88
|
+
spec.make_abstract 'wxVScrolledWindow'
|
|
89
|
+
# spec.force_proxy 'wxVScrolled'
|
|
150
90
|
spec.swig_import %w[
|
|
151
91
|
swig/classes/include/wxObject.h
|
|
152
92
|
swig/classes/include/wxEvtHandler.h
|
|
@@ -154,25 +94,6 @@ module WXRuby3
|
|
|
154
94
|
swig/classes/include/wxPanel.h
|
|
155
95
|
swig/classes/include/wxHScrolledWindow.h
|
|
156
96
|
]
|
|
157
|
-
# provide base implementations for pure virtuals
|
|
158
|
-
spec.add_header_code <<~__HEREDOC
|
|
159
|
-
// Custom subclass implementation.
|
|
160
|
-
class wxRubyVScrolledWindow : public wxVScrolledWindow
|
|
161
|
-
{
|
|
162
|
-
public:
|
|
163
|
-
wxRubyVScrolledWindow()
|
|
164
|
-
: wxVScrolledWindow () {}
|
|
165
|
-
wxRubyVScrolledWindow(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)
|
|
166
|
-
: wxVScrolledWindow(parent, id, pos, size, style, name) {}
|
|
167
|
-
protected:
|
|
168
|
-
virtual wxCoord OnGetRowHeight(size_t) const
|
|
169
|
-
{
|
|
170
|
-
return {};
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
__HEREDOC
|
|
174
|
-
# make Ruby director and wrappers use custom implementation
|
|
175
|
-
spec.use_class_implementation('wxVScrolled', 'wxRubyVScrolledWindow')
|
|
176
97
|
# regard protected methods
|
|
177
98
|
spec.regard 'wxVarVScrollHelper::OnGetRowHeight',
|
|
178
99
|
'wxVarVScrollHelper::OnGetRowsHeightHint'
|
|
@@ -196,10 +117,10 @@ module WXRuby3
|
|
|
196
117
|
spec.items.replace %w[wxVScrolled wxVarScrollHelperBase wxVarVScrollHelper]
|
|
197
118
|
spec.gc_as_window
|
|
198
119
|
spec.use_template_as_class('wxVScrolled', 'wxVScrolledCanvas')
|
|
199
|
-
spec.override_inheritance_chain('wxVScrolled', %w[
|
|
120
|
+
spec.override_inheritance_chain('wxVScrolled', %w[wxWindow wxEvtHandler wxObject])
|
|
200
121
|
spec.fold_bases('wxVScrolled' => %w[wxVarVScrollHelper wxVarScrollHelperBase])
|
|
201
|
-
spec.make_abstract '
|
|
202
|
-
spec.force_proxy 'wxVScrolled'
|
|
122
|
+
spec.make_abstract 'wxVScrolledCanvas'
|
|
123
|
+
# spec.force_proxy 'wxVScrolled'
|
|
203
124
|
spec.swig_import %w[
|
|
204
125
|
swig/classes/include/wxObject.h
|
|
205
126
|
swig/classes/include/wxEvtHandler.h
|
|
@@ -207,25 +128,6 @@ module WXRuby3
|
|
|
207
128
|
swig/classes/include/wxPanel.h
|
|
208
129
|
swig/classes/include/wxHScrolledWindow.h
|
|
209
130
|
]
|
|
210
|
-
# provide base implementations for pure virtuals
|
|
211
|
-
spec.add_header_code <<~__HEREDOC
|
|
212
|
-
// Custom subclass implementation.
|
|
213
|
-
class wxRubyVScrolledCanvas : public wxVScrolledCanvas
|
|
214
|
-
{
|
|
215
|
-
public:
|
|
216
|
-
wxRubyVScrolledCanvas()
|
|
217
|
-
: wxVScrolledCanvas () {}
|
|
218
|
-
wxRubyVScrolledCanvas(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)
|
|
219
|
-
: wxVScrolledCanvas(parent, id, pos, size, style, name) {}
|
|
220
|
-
protected:
|
|
221
|
-
virtual wxCoord OnGetRowHeight(size_t) const
|
|
222
|
-
{
|
|
223
|
-
return {};
|
|
224
|
-
}
|
|
225
|
-
};
|
|
226
|
-
__HEREDOC
|
|
227
|
-
# make Ruby director and wrappers use custom implementation
|
|
228
|
-
spec.use_class_implementation('wxVScrolled', 'wxRubyVScrolledCanvas')
|
|
229
131
|
# regard protected methods
|
|
230
132
|
spec.regard 'wxVarVScrollHelper::OnGetRowHeight',
|
|
231
133
|
'wxVarVScrollHelper::OnGetRowsHeightHint'
|
|
@@ -238,8 +140,7 @@ module WXRuby3
|
|
|
238
140
|
'wxVarScrollHelperBase::CalcUnscrolledPosition',
|
|
239
141
|
'wxVarScrollHelperBase::GetTargetWindow',
|
|
240
142
|
'wxVarScrollHelperBase::SetTargetWindow',
|
|
241
|
-
'wxVarScrollHelperBase::UpdateScrollbar'
|
|
242
|
-
'wxVarScrollHelperBase::RefreshAll'
|
|
143
|
+
'wxVarScrollHelperBase::UpdateScrollbar'
|
|
243
144
|
spec.do_not_generate(:typedefs, :functions, :defines, :variables)
|
|
244
145
|
else
|
|
245
146
|
spec.items.clear
|
|
@@ -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'
|