wxruby3 1.6.1 → 1.8.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 +46 -6
- data/README.md +17 -17
- data/assets/repo-social-preview.odg +0 -0
- data/assets/repo-social-preview.xcf +0 -0
- data/ext/wxruby3/include/wxRubyApp.h +203 -91
- data/ext/wxruby3/include/wxruby-ComboPopup.h +25 -8
- data/ext/wxruby3/include/wxruby-GCTracking.h +262 -0
- data/ext/wxruby3/include/wxruby-MBConv.h +190 -0
- data/ext/wxruby3/include/wxruby-SharedEventHandler.h +183 -0
- data/ext/wxruby3/include/wxruby-SharedPtr.h +104 -0
- data/ext/wxruby3/include/wxruby-runtime.h +107 -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 +9 -19
- 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/custom/wx_ruby_shared_ptr.i +434 -0
- data/ext/wxruby3/swig/custom/wx_shared_ptr.i +431 -0
- data/ext/wxruby3/swig/mark_free_impl.i +83 -144
- data/ext/wxruby3/swig/memory_management.i +8 -43
- data/ext/wxruby3/swig/wx.i +88 -86
- 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/const.rb +0 -1
- data/lib/wx/core/context_help.rb +17 -0
- data/lib/wx/core/cursor.rb +1 -0
- 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/helpcontrollerhelpprovider.rb +10 -2
- data/lib/wx/core/mbconv.rb +11 -0
- data/lib/wx/core/media_ctrl.rb +31 -0
- data/lib/wx/core/tipwindow.rb +16 -0
- data/lib/wx/core/top_level_window.rb +7 -0
- data/lib/wx/core.rb +6 -0
- data/lib/wx/doc/art_provider.rb +17 -0
- data/lib/wx/doc/aui/auitabctrl.rb +35 -0
- data/lib/wx/doc/config.rb +2 -2
- data/lib/wx/doc/context_help.rb +42 -0
- data/lib/wx/doc/core.rb +0 -5
- data/lib/wx/doc/functions.rb +11 -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 +286 -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 +617 -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 +274 -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 +56 -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 +155 -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 +3037 -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 +238 -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 +382 -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/mb_conv.rb +10 -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 +1142 -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/rt/event_list.rb +17 -0
- data/lib/wx/doc/gen/rt/shared_evt_handler.rb +14 -0
- data/lib/wx/doc/gen/rt/thread_event.rb +71 -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 +516 -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/web/event_list.rb +95 -0
- data/lib/wx/doc/gen/web/web_view.rb +1136 -0
- data/lib/wx/doc/gen/web/web_view_event.rb +210 -0
- data/lib/wx/doc/gen/web/web_view_handler.rb +318 -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/html/html_help_controller.rb +23 -1
- data/lib/wx/doc/mbconv.rb +108 -0
- data/lib/wx/doc/rt/shared_event_handler.rb +49 -0
- data/lib/wx/doc/rt/thread_event.rb +28 -0
- data/lib/wx/doc/tip_window.rb +18 -6
- data/lib/wx/doc/webview.rb +40 -0
- data/lib/wx/grid/events/evt_list.rb +166 -0
- data/lib/wx/helpers.rb +1 -1
- data/lib/wx/html/events/evt_list.rb +27 -0
- data/lib/wx/html/htmlhelpcontroller.rb +10 -0
- data/lib/wx/html/simple_html_listbox.rb +46 -33
- data/lib/wx/keyword_defs.rb +20 -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/rt/events/evt_list.rb +8 -0
- data/lib/wx/rt/require.rb +8 -0
- data/lib/wx/rt/thread_event.rb +14 -0
- data/lib/wx/rt.rb +16 -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/web/events/evt_list.rb +74 -0
- data/lib/wx/web/require.rb +8 -0
- data/lib/wx/web/webview.rb +106 -0
- data/lib/wx/web.rb +17 -0
- data/lib/wx/wxruby/cmd/setup.rb +21 -0
- data/lib/wx.rb +2 -0
- data/rakelib/configure.rb +33 -0
- data/rakelib/gem.rake +3 -2
- data/rakelib/gem.rb +3 -2
- data/rakelib/install.rb +54 -27
- data/rakelib/lib/config/linux.rb +1 -1
- data/rakelib/lib/config/macosx.rb +22 -6
- data/rakelib/lib/config/mingw.rb +66 -5
- data/rakelib/lib/config/pkgman/linux.rb +7 -2
- data/rakelib/lib/config/pkgman/mingw.rb +1 -1
- data/rakelib/lib/config/unixish.rb +7 -5
- data/rakelib/lib/config.rb +52 -7
- data/rakelib/lib/core/include/client_data.inc +38 -17
- data/rakelib/lib/core/include/funcall.inc +1 -1
- data/rakelib/lib/core/include/swigdirector.inc +6 -6
- data/rakelib/lib/core/include/swigrubyerrors.inc +4 -8
- data/rakelib/lib/core/include/swigrubyrun.inc +34 -30
- data/rakelib/lib/core/include/swigrun.inc +189 -0
- data/rakelib/lib/core/package.rb +3 -3
- data/rakelib/lib/director/accelerator.rb +1 -1
- data/rakelib/lib/director/animation.rb +1 -0
- data/rakelib/lib/director/app.rb +1 -8
- data/rakelib/lib/director/app_traits.rb +1 -1
- data/rakelib/lib/director/art_provider.rb +7 -3
- 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/comboctrl.rb +0 -7
- data/rakelib/lib/director/context_help_button.rb +35 -2
- 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 +59 -30
- data/rakelib/lib/director/fs_file.rb +15 -10
- data/rakelib/lib/director/functions.rb +17 -0
- data/rakelib/lib/director/geometry.rb +5 -0
- data/rakelib/lib/director/grid_cell_attr.rb +1 -3
- data/rakelib/lib/director/grid_cell_editor.rb +14 -12
- data/rakelib/lib/director/grid_cell_renderer.rb +11 -8
- data/rakelib/lib/director/grid_ctrl.rb +231 -117
- data/rakelib/lib/director/help_controller.rb +70 -2
- 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/mb_conv.rb +30 -0
- data/rakelib/lib/director/mdi_frame.rb +4 -0
- data/rakelib/lib/director/menu.rb +113 -22
- data/rakelib/lib/director/menu_bar.rb +103 -2
- 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/persistence_manager.rb +3 -2
- data/rakelib/lib/director/popup_window.rb +2 -0
- data/rakelib/lib/director/preview_frame.rb +28 -5
- 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_buffer.rb +5 -2
- 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/shared_evt_handler.rb +30 -0
- data/rakelib/lib/director/sizer.rb +8 -17
- data/rakelib/lib/director/sizer_item.rb +3 -4
- data/rakelib/lib/director/task_bar_icon.rb +18 -12
- data/rakelib/lib/director/text_validator.rb +9 -0
- data/rakelib/lib/director/thread_event.rb +33 -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 +15 -1
- data/rakelib/lib/director/variant.rb +48 -28
- data/rakelib/lib/director/vlistbox.rb +25 -22
- data/rakelib/lib/director/webview.rb +166 -0
- data/rakelib/lib/director/webview_event.rb +37 -0
- data/rakelib/lib/director/webview_handler.rb +63 -0
- 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/thread_event.yaml +20 -0
- data/rakelib/lib/generate/doc/web_view.yaml +135 -0
- data/rakelib/lib/generate/doc/web_view_event.yaml +38 -0
- data/rakelib/lib/generate/doc/web_view_handler.yaml +58 -0
- data/rakelib/lib/generate/doc.rb +12 -7
- data/rakelib/lib/generate/interface.rb +16 -1
- data/rakelib/lib/specs/interfaces.rb +15 -1
- data/rakelib/lib/swig_runner.rb +10 -10
- data/rakelib/lib/typemap/aui_tabctrl.rb +46 -0
- data/rakelib/lib/typemap/common.rb +37 -4
- data/rakelib/lib/typemap/mb_conv.rb +58 -0
- data/rakelib/lib/typemap/print_page_range.rb +32 -8
- data/rakelib/prepost.rake +23 -31
- data/rakelib/prepost.rb +20 -0
- 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/event/threaded.rb +295 -42
- data/samples/event/tn_threaded.png +0 -0
- data/samples/help/doc/back.gif +0 -0
- data/samples/help/doc/contents.gif +0 -0
- data/samples/help/doc/cshelp.txt +9 -0
- data/samples/help/doc/doc.chm +0 -0
- data/samples/help/doc/doc.cnt +8 -0
- data/samples/help/doc/doc.h +7 -0
- data/samples/help/doc/doc.hhc +40 -0
- data/samples/help/doc/doc.hhk +31 -0
- data/samples/help/doc/doc.hhp +33 -0
- data/samples/help/doc/doc.hpj +21 -0
- data/samples/help/doc/doc.htm +27 -0
- data/samples/help/doc/doc1.htm +24 -0
- data/samples/help/doc/doc2.htm +12 -0
- data/samples/help/doc/doc3.htm +12 -0
- data/samples/help/doc/doc4.htm +12 -0
- data/samples/help/doc/doc5.htm +14 -0
- data/samples/help/doc/forward.gif +0 -0
- data/samples/help/doc/up.gif +0 -0
- data/samples/help/doc.chm +0 -0
- data/samples/help/doc.chw +0 -0
- data/samples/help/doc.zip +0 -0
- data/samples/help/help.rb +352 -0
- data/samples/help/tn_help.png +0 -0
- 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/samples/webview/handler_advanced.html +55 -0
- data/samples/webview/tn_webview.png +0 -0
- data/samples/webview/webview.rb +1264 -0
- data/tests/assets/handler_advanced.html +55 -0
- data/tests/assets/test.css +1 -0
- data/tests/assets/test.html +9 -0
- data/tests/assets/test.zip +0 -0
- 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/text_entry_tests.rb +2 -2
- data/tests/lib/wxapp_runner.rb +65 -35
- data/tests/lib/wxframe_runner.rb +40 -13
- 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 +14 -14
- 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 +9 -9
- data/tests/test_combo_ctrl.rb +2 -2
- data/tests/test_config.rb +17 -7
- 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 +10 -8
- data/tests/test_ext_controls.rb +13 -13
- data/tests/test_file_dialog.rb +6 -6
- data/tests/test_font.rb +8 -8
- data/tests/test_gdi_object.rb +1 -1
- data/tests/test_geometry.rb +2 -2
- data/tests/test_grid_ctrl.rb +133 -0
- data/tests/test_grid_sizer.rb +2 -2
- data/tests/test_help.rb +88 -0
- data/tests/test_intl.rb +2 -2
- 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 +15 -7
- data/tests/test_menu.rb +81 -2
- data/tests/test_persistence.rb +1 -1
- data/tests/test_proof_check.rb +6 -6
- data/tests/test_propgrid.rb +32 -32
- data/tests/test_richtext.rb +10 -24
- data/tests/test_secret_store.rb +1 -1
- data/tests/test_shared_event_handler.rb +141 -0
- data/tests/test_sizer.rb +1 -1
- data/tests/test_std_controls.rb +13 -13
- 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_webview.rb +492 -0
- data/tests/test_window.rb +14 -14
- data/tests/testapp.rb +2 -2
- data/tests/testapp_noframe.rb +2 -2
- metadata +476 -11
- data/lib/wx/aui/aui_tab_ctrl.rb +0 -18
|
@@ -16,12 +16,17 @@
|
|
|
16
16
|
%}
|
|
17
17
|
|
|
18
18
|
%{
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceMarkSizer, "GC_MARK_SIZER")
|
|
20
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceMarkWindow, "GC_MARK_WINDOW")
|
|
21
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceFreeWindow, "GC_FREE_WINDOW")
|
|
22
|
+
WXRUBY_TRACE_GUARD(WxRubyTraceFreeRefcounted, "GC_FREE_REFCOUNT")
|
|
23
|
+
|
|
24
|
+
// Check if a Ruby object is (still) Ruby GC managed in which case it's
|
|
25
|
+
// 'dfree' function pointer should reference a specific free function
|
|
26
|
+
// and not be either 0 or a reference to the SWIG tracking removal function.
|
|
27
|
+
WXRUBY_EXPORT bool GC_IsObjectOwned(VALUE object)
|
|
23
28
|
{
|
|
24
|
-
SWIG_RubyRemoveTracking(
|
|
29
|
+
return RDATA(object)->dfree != SWIG_RubyRemoveTracking && RDATA(object)->dfree != 0;
|
|
25
30
|
}
|
|
26
31
|
|
|
27
32
|
// Tests if the window has been signalled as destroyed by a
|
|
@@ -41,6 +46,10 @@ WXRUBY_EXPORT bool GC_IsWindowDeleted(void *ptr)
|
|
|
41
46
|
// WindowDestroyEvent, handled by wxRubyApp (see swig/classes/App.i).
|
|
42
47
|
WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr)
|
|
43
48
|
{
|
|
49
|
+
WXRUBY_TRACE_IF(WxRubyTraceFreeWindow, 2)
|
|
50
|
+
WXRUBY_TRACE("> GC_SetWindowDeleted : " << ptr)
|
|
51
|
+
WXRUBY_TRACE_END
|
|
52
|
+
|
|
44
53
|
// All Windows are EvtHandlers, so prevent any pending events being
|
|
45
54
|
// sent after destruction (otherwise ObjectPreviouslyDeleted errors result)
|
|
46
55
|
wxEvtHandler* evt_handler = (wxEvtHandler*)ptr;
|
|
@@ -77,6 +86,10 @@ WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr)
|
|
|
77
86
|
// Disassociate the C++ and Ruby objects
|
|
78
87
|
SWIG_RubyUnlinkObjects(ptr);
|
|
79
88
|
SWIG_RubyRemoveTracking(ptr);
|
|
89
|
+
|
|
90
|
+
WXRUBY_TRACE_IF(WxRubyTraceFreeWindow, 2)
|
|
91
|
+
WXRUBY_TRACE("< GC_SetWindowDeleted : " << ptr)
|
|
92
|
+
WXRUBY_TRACE_END
|
|
80
93
|
}
|
|
81
94
|
|
|
82
95
|
// Code to be run when the ruby object is swept by GC - this only
|
|
@@ -84,36 +97,37 @@ WXRUBY_EXPORT void GC_SetWindowDeleted(void *ptr)
|
|
|
84
97
|
// reference counter.
|
|
85
98
|
WXRUBY_EXPORT void GcRefCountedFreeFunc(void *ptr)
|
|
86
99
|
{
|
|
100
|
+
WXRUBY_TRACE_IF(WxRubyTraceFreeRefcounted, 2)
|
|
101
|
+
WXRUBY_TRACE("> GcRefCountedFreeFunc : " << ptr)
|
|
102
|
+
WXRUBY_TRACE_END
|
|
103
|
+
|
|
87
104
|
SWIG_RubyRemoveTracking(ptr);
|
|
88
105
|
if (ptr)
|
|
89
106
|
((wxRefCounter*)ptr)->DecRef();
|
|
90
|
-
}
|
|
91
107
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
WXRUBY_EXPORT void GcSizerFreeFunc(void *ptr)
|
|
96
|
-
{
|
|
97
|
-
wxSizer* wx_szr = (wxSizer*)ptr;
|
|
98
|
-
// unlink in all cases
|
|
99
|
-
SWIG_RubyRemoveTracking(ptr);
|
|
100
|
-
delete wx_szr; // delete unattached sizers
|
|
108
|
+
WXRUBY_TRACE_IF(WxRubyTraceFreeRefcounted, 2)
|
|
109
|
+
WXRUBY_TRACE("< GcRefCountedFreeFunc")
|
|
110
|
+
WXRUBY_TRACE_END
|
|
101
111
|
}
|
|
102
112
|
|
|
103
113
|
void GC_mark_SizerBelongingToWindow(wxSizer *wx_sizer, VALUE rb_sizer);
|
|
104
114
|
|
|
105
115
|
WXRUBY_EXPORT void GC_mark_wxSizer(void* ptr)
|
|
106
116
|
{
|
|
117
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkSizer, 2)
|
|
118
|
+
WXRUBY_TRACE("> GC_mark_wxSizer : " << ptr)
|
|
119
|
+
WXRUBY_TRACE_END
|
|
120
|
+
|
|
107
121
|
VALUE rb_szr = SWIG_RubyInstanceFor(ptr);
|
|
108
|
-
if (rb_szr
|
|
122
|
+
if (!RB_NIL_P(rb_szr))
|
|
109
123
|
{
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
// as long as the dfree function is still the GCSizeFreeFunc the sizer has not been attached to a window
|
|
124
|
+
// as long as the dfree function is still the sizer's free function the sizer has not been attached to a window
|
|
113
125
|
// or added to a parent sizer (as that would 'disown' and replace the free function by the tracking removal function)
|
|
114
126
|
// but it may hay have already had child sizers added which need to be marked
|
|
115
|
-
if (RDATA(rb_szr)->dfree
|
|
127
|
+
if (RDATA(rb_szr)->dfree != (void (*)(void *))SWIG_RubyRemoveTracking)
|
|
116
128
|
{
|
|
129
|
+
wxSizer* wx_szr = (wxSizer*)ptr;
|
|
130
|
+
|
|
117
131
|
// Then loop over the sizer's content and mark each sub-sizer
|
|
118
132
|
wxSizerItemList& children = wx_szr->GetChildren();
|
|
119
133
|
for ( wxSizerItemList::compatibility_iterator node = children.GetFirst();
|
|
@@ -134,6 +148,10 @@ WXRUBY_EXPORT void GC_mark_wxSizer(void* ptr)
|
|
|
134
148
|
}
|
|
135
149
|
}
|
|
136
150
|
}
|
|
151
|
+
|
|
152
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkSizer, 2)
|
|
153
|
+
WXRUBY_TRACE("< GC_mark_wxSizer : " << ptr)
|
|
154
|
+
WXRUBY_TRACE_END
|
|
137
155
|
}
|
|
138
156
|
|
|
139
157
|
// Carries out marking of Sizer objects belonging to a Wx::Window. Note
|
|
@@ -144,10 +162,9 @@ WXRUBY_EXPORT void GC_mark_wxSizer(void* ptr)
|
|
|
144
162
|
// directors, they must be preserved from GC.
|
|
145
163
|
void GC_mark_SizerBelongingToWindow(wxSizer *wx_sizer, VALUE rb_sizer)
|
|
146
164
|
{
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
#endif
|
|
165
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkSizer, 2)
|
|
166
|
+
WXRUBY_TRACE("> GC_mark_SizerBelongingToWindow : " << wx_sizer)
|
|
167
|
+
WXRUBY_TRACE_END
|
|
151
168
|
|
|
152
169
|
// First, mark this sizer
|
|
153
170
|
rb_gc_mark( rb_sizer );
|
|
@@ -170,104 +187,66 @@ void GC_mark_SizerBelongingToWindow(wxSizer *wx_sizer, VALUE rb_sizer)
|
|
|
170
187
|
}
|
|
171
188
|
}
|
|
172
189
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
#endif
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// Similar to Sizers, MenuBar requires a special mark routine. This is
|
|
180
|
-
// because Wx::Menu is not a subclass of Window so isn't automatically
|
|
181
|
-
// protected in the mark phase by Wx::App. However, the ruby object
|
|
182
|
-
// still must not be destroyed while it is still accessible on screen,
|
|
183
|
-
// because it may still handle events. Rather than a SWIG %markfunc,
|
|
184
|
-
// which can catch destroyed MenuBars linked to an in-scope ruby
|
|
185
|
-
// variable and cause segfaults, MenuBars are always marked via the
|
|
186
|
-
// containing Frame.
|
|
187
|
-
void GC_mark_MenuBarBelongingToFrame(wxMenuBar *menu_bar)
|
|
188
|
-
{
|
|
189
|
-
#ifdef __WXRB_DEBUG__
|
|
190
|
-
if (wxRuby_TraceLevel()>1)
|
|
191
|
-
std::wcout << "> GC_mark_MenuBarBelongingToFrame : " << menu_bar << std::endl;
|
|
192
|
-
#endif
|
|
193
|
-
|
|
194
|
-
rb_gc_mark( SWIG_RubyInstanceFor(menu_bar) );
|
|
195
|
-
// Mark each menu in the menubar in turn
|
|
196
|
-
for ( size_t i = 0; i < menu_bar->GetMenuCount(); i++ )
|
|
197
|
-
{
|
|
198
|
-
wxMenu* menu = menu_bar->GetMenu(i);
|
|
199
|
-
rb_gc_mark( SWIG_RubyInstanceFor(menu) );
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
#ifdef __WXRB_DEBUG__
|
|
203
|
-
if (wxRuby_TraceLevel()>1)
|
|
204
|
-
std::wcout << "< GC_mark_MenuBarBelongingToFrame : " << menu_bar << std::endl;
|
|
205
|
-
#endif
|
|
190
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkSizer, 2)
|
|
191
|
+
WXRUBY_TRACE("< GC_mark_SizerBelongingToWindow : " << wx_sizer)
|
|
192
|
+
WXRUBY_TRACE_END
|
|
206
193
|
}
|
|
207
194
|
|
|
208
195
|
// Default mark routine for Windows - preserve the main sizer and caret
|
|
209
196
|
// belong to this window
|
|
210
197
|
WXRUBY_EXPORT void GC_mark_wxWindow(void *ptr)
|
|
211
198
|
{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
#endif
|
|
199
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 2)
|
|
200
|
+
WXRUBY_TRACE("> GC_mark_wxWindow : " << ptr)
|
|
201
|
+
WXRUBY_TRACE_END
|
|
216
202
|
|
|
217
203
|
if ( GC_IsWindowDeleted(ptr) )
|
|
218
204
|
{
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
#endif
|
|
205
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 2)
|
|
206
|
+
WXRUBY_TRACE("< GC_mark_wxWindow : deleted")
|
|
207
|
+
WXRUBY_TRACE_END
|
|
223
208
|
return;
|
|
224
209
|
}
|
|
225
210
|
|
|
226
211
|
wxWindow* wx_win = (wxWindow*)ptr;
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
#endif
|
|
212
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
213
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : getting sizer")
|
|
214
|
+
WXRUBY_TRACE_END
|
|
231
215
|
wxSizer* wx_sizer = wx_win->GetSizer();
|
|
232
216
|
if ( wx_sizer )
|
|
233
217
|
{
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
#endif
|
|
218
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
219
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : found sizer " << wx_sizer)
|
|
220
|
+
WXRUBY_TRACE_END
|
|
238
221
|
VALUE rb_sizer = SWIG_RubyInstanceFor(wx_sizer);
|
|
239
222
|
if ( rb_sizer != Qnil )
|
|
240
223
|
GC_mark_SizerBelongingToWindow(wx_sizer, rb_sizer);
|
|
241
224
|
}
|
|
242
225
|
|
|
243
226
|
// mark any pushed event handlers
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
#endif
|
|
227
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
228
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : getting event handler")
|
|
229
|
+
WXRUBY_TRACE_END
|
|
248
230
|
wxEvtHandler* evh = wx_win->GetEventHandler();
|
|
249
231
|
while (evh && evh != wx_win)
|
|
250
232
|
{
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
#endif
|
|
233
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
234
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : found event handler " << evh)
|
|
235
|
+
WXRUBY_TRACE_END
|
|
255
236
|
VALUE rb_evh = SWIG_RubyInstanceFor(evh);
|
|
256
237
|
rb_gc_mark(rb_evh);
|
|
257
238
|
evh = evh->GetNextHandler();
|
|
258
239
|
}
|
|
259
240
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
#endif
|
|
241
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
242
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : getting caret")
|
|
243
|
+
WXRUBY_TRACE_END
|
|
264
244
|
wxCaret* wx_caret = wx_win->GetCaret();
|
|
265
245
|
if ( wx_caret )
|
|
266
246
|
{
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
#endif
|
|
247
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
248
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : found caret " << wx_caret)
|
|
249
|
+
WXRUBY_TRACE_END
|
|
271
250
|
VALUE rb_caret = SWIG_RubyInstanceFor(wx_caret);
|
|
272
251
|
rb_gc_mark(rb_caret);
|
|
273
252
|
}
|
|
@@ -275,76 +254,36 @@ WXRUBY_EXPORT void GC_mark_wxWindow(void *ptr)
|
|
|
275
254
|
// be careful; getting drop target may require fully created window (default ctors do not call Create())
|
|
276
255
|
if (wx_win->GetId() != wxID_ANY) // any fully created window has an Id != wxID_ANY
|
|
277
256
|
{
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
#endif
|
|
257
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
258
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : getting droptarget")
|
|
259
|
+
WXRUBY_TRACE_END
|
|
282
260
|
wxDropTarget* wx_droptarget = wx_win->GetDropTarget();
|
|
283
261
|
if ( wx_droptarget )
|
|
284
262
|
{
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
#endif
|
|
263
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
264
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : found drop target " << wx_droptarget)
|
|
265
|
+
WXRUBY_TRACE_END
|
|
289
266
|
VALUE rb_droptarget = SWIG_RubyInstanceFor(wx_droptarget);
|
|
290
267
|
rb_gc_mark(rb_droptarget);
|
|
291
268
|
}
|
|
292
269
|
}
|
|
293
270
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
#endif
|
|
271
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
272
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : getting validator")
|
|
273
|
+
WXRUBY_TRACE_END
|
|
298
274
|
wxValidator* wx_validator = wx_win->GetValidator();
|
|
299
275
|
if ( wx_validator )
|
|
300
276
|
{
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
#endif
|
|
277
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 3)
|
|
278
|
+
WXRUBY_TRACE("| GC_mark_wxWindow : found validator " << wx_validator)
|
|
279
|
+
WXRUBY_TRACE_END
|
|
305
280
|
VALUE rb_validator = SWIG_RubyInstanceFor(wx_validator);
|
|
306
281
|
rb_gc_mark(rb_validator);
|
|
307
282
|
}
|
|
308
283
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
#endif
|
|
284
|
+
WXRUBY_TRACE_IF(WxRubyTraceMarkWindow, 2)
|
|
285
|
+
WXRUBY_TRACE("< GC_mark_wxWindow : " << ptr)
|
|
286
|
+
WXRUBY_TRACE_END
|
|
313
287
|
}
|
|
314
288
|
|
|
315
|
-
|
|
316
|
-
WXRUBY_EXPORT void GC_mark_wxFrame(void *ptr)
|
|
317
|
-
{
|
|
318
|
-
#ifdef __WXRB_DEBUG__
|
|
319
|
-
if (wxRuby_TraceLevel()>1)
|
|
320
|
-
std::wcout << "> GC_mark_wxFrame : " << ptr << std::endl;
|
|
321
|
-
#endif
|
|
322
|
-
|
|
323
|
-
if ( GC_IsWindowDeleted(ptr) )
|
|
324
|
-
{
|
|
325
|
-
#ifdef __WXRB_DEBUG__
|
|
326
|
-
if (wxRuby_TraceLevel()>1)
|
|
327
|
-
std::wcout << "> GC_mark_wxFrame : deleted" << std::endl;
|
|
328
|
-
#endif
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
// Frames are also a subclass of wxWindow, so must do all the marking
|
|
333
|
-
// of sizers and carets associated with that class
|
|
334
|
-
GC_mark_wxWindow(ptr);
|
|
335
|
-
|
|
336
|
-
wxFrame* wx_frame = (wxFrame*)ptr;
|
|
337
|
-
// Then mark the MenuBar, if one is associated with this Frame
|
|
338
|
-
|
|
339
|
-
wxMenuBar* menu_bar = wx_frame->GetMenuBar();
|
|
340
|
-
if ( menu_bar )
|
|
341
|
-
{
|
|
342
|
-
GC_mark_MenuBarBelongingToFrame(menu_bar);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
#ifdef __WXRB_DEBUG__
|
|
346
|
-
if (wxRuby_TraceLevel()>1)
|
|
347
|
-
std::wcout << "> GC_mark_wxFrame : " << ptr << std::endl;
|
|
348
|
-
#endif
|
|
349
|
-
}
|
|
350
289
|
%}
|
|
@@ -9,30 +9,11 @@
|
|
|
9
9
|
// This file, required by common.i defines a set of macros which are used
|
|
10
10
|
// to specify memory management strategies for individual Wx classes.
|
|
11
11
|
|
|
12
|
-
// Broadly speaking there are two different strategies:
|
|
13
|
-
//
|
|
14
|
-
// 1) For all classes which inherit from Wx::Window, including all Frames,
|
|
15
|
-
// Dialogs and Controls: the C++ objects are managed by WxWidgets; when=
|
|
16
|
-
// Frame is closed, it and all its contents are deleted. Therefore wxRuby
|
|
17
|
-
// doesn't try to delete these objects as part of GC until they are known
|
|
18
|
-
// to have been deleted. The instance of Wx::App watches for window
|
|
19
|
-
// destruction, and in the GC-mark phase marks all Windows that are still
|
|
20
|
-
// alive. [see App.i]
|
|
21
|
-
//
|
|
22
|
-
// 2) Almost all other classes are memory managed by wxRuby - that is, when
|
|
23
|
-
// they have fallen out of scope and GC is run, the underlying C++ object
|
|
24
|
-
// will be deleted too by the standard %freefunc.
|
|
25
|
-
|
|
26
|
-
|
|
27
12
|
// These are implemented in swig/wx.i, so they are shared among all classes
|
|
28
13
|
%{
|
|
29
|
-
WXRUBY_EXPORT void GcNullFreeFunc(void *);
|
|
30
|
-
WXRUBY_EXPORT void GcSizerFreeFunc(void *);
|
|
31
|
-
WXRUBY_EXPORT void GcDialogFreeFunc(void *);
|
|
32
14
|
WXRUBY_EXPORT void GcRefCountedFreeFunc(void *);
|
|
33
15
|
WXRUBY_EXPORT void GC_mark_wxSizer(void *);
|
|
34
16
|
WXRUBY_EXPORT void GC_mark_wxWindow(void *);
|
|
35
|
-
WXRUBY_EXPORT void GC_mark_wxFrame(void *);
|
|
36
17
|
WXRUBY_EXPORT void GC_mark_wxEvent(void *);
|
|
37
18
|
%}
|
|
38
19
|
|
|
@@ -42,7 +23,7 @@ WXRUBY_EXPORT void GC_mark_wxEvent(void *);
|
|
|
42
23
|
// all Windows, including Frames and Dialogs
|
|
43
24
|
%define GC_NEVER(kls)
|
|
44
25
|
%trackobjects kls;
|
|
45
|
-
%feature("freefunc") kls "
|
|
26
|
+
%feature("freefunc") kls "SWIG_RubyRemoveTracking";
|
|
46
27
|
%enddef
|
|
47
28
|
|
|
48
29
|
// Strategy for windows that aren't top-level windows. Here, the C++
|
|
@@ -60,26 +41,21 @@ GC_NEVER(kls);
|
|
|
60
41
|
%enddef
|
|
61
42
|
|
|
62
43
|
// Strategy for top-level frames - these are destroyed
|
|
63
|
-
// automatically. Marking is the same as for Windows
|
|
64
|
-
// of the associated MenuBar, if reuqired.
|
|
44
|
+
// automatically. Marking is the same as for Windows.
|
|
65
45
|
%define GC_MANAGE_AS_FRAME(kls)
|
|
66
|
-
|
|
67
|
-
// Mark any associated sizer
|
|
68
|
-
%feature("markfunc") kls "GC_mark_wxFrame";
|
|
46
|
+
GC_MANAGE_AS_WINDOW(kls);
|
|
69
47
|
%enddef
|
|
70
48
|
|
|
71
49
|
// Strategy for dialogs - these are NOT destroyed automatically
|
|
72
50
|
%define GC_MANAGE_AS_DIALOG(kls)
|
|
73
|
-
|
|
74
|
-
// Mark any associated sizer
|
|
75
|
-
%feature("markfunc") kls "GC_mark_wxWindow";
|
|
51
|
+
GC_MANAGE_AS_WINDOW(kls);
|
|
76
52
|
%enddef
|
|
77
53
|
|
|
78
54
|
// Events - most are created within wxWidgets C++ on the stack and thus
|
|
79
55
|
// do not need deletion. These are passed into ruby via EvtHandler or
|
|
80
56
|
// App methods, and are wrapped using wxRuby_WrapWxEventInRuby (see
|
|
81
|
-
// wx.i). This gives them a
|
|
82
|
-
//
|
|
57
|
+
// wx.i). This gives them a null freefunc and markfunc and provides no
|
|
58
|
+
// tracking - they are treated as one-shot short-lived objects.
|
|
83
59
|
//
|
|
84
60
|
// However, custom events created on the ruby side need to be deleted to
|
|
85
61
|
// avoid leakage as SWIG wrappers call C++ "new" to allocate the
|
|
@@ -112,15 +88,10 @@ GC_NEVER(kls);
|
|
|
112
88
|
%define GC_MANAGE_AS_MARKED(kls)
|
|
113
89
|
%enddef
|
|
114
90
|
|
|
115
|
-
//
|
|
116
|
-
// so they should not be deleted.
|
|
117
|
-
//
|
|
118
|
-
// TODO - orphaned/unattached sizers are not automatically destroyed -
|
|
119
|
-
// so the freefunc should check for this condition and do the delete if
|
|
120
|
-
// required to prevent a memory leak.
|
|
91
|
+
// Attached sizers should only be marked by the window they are attached to.
|
|
121
92
|
%define GC_MANAGE_AS_SIZER(kls)
|
|
122
93
|
%trackobjects kls;
|
|
123
|
-
|
|
94
|
+
//%feature("freefunc") kls "GcSizerFreeFunc";
|
|
124
95
|
%feature("markfunc") kls "GC_mark_wxSizer";
|
|
125
96
|
%enddef
|
|
126
97
|
|
|
@@ -132,12 +103,6 @@ GC_NEVER(kls);
|
|
|
132
103
|
%feature("freefunc") kls "GcRefCountedFreeFunc";
|
|
133
104
|
%enddef
|
|
134
105
|
|
|
135
|
-
// special refcounted for grid cell renderers/editors and attrs
|
|
136
|
-
%define GC_MANAGE_AS_UNTRACKED_REFCOUNTED(kls)
|
|
137
|
-
%feature("freefunc") kls "GcRefCountedFreeFunc";
|
|
138
|
-
%enddef
|
|
139
|
-
|
|
140
|
-
|
|
141
106
|
// All other classes - mainly helper classes (eg Sizer, GridCellxxx).
|
|
142
107
|
// These are tracked but sometimes later disowned once passed into a
|
|
143
108
|
// widget, and thenceforth managed by WxWidgets
|