wxruby3 0.9.0.pre.beta.8
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 +7 -0
- data/.yardopts +13 -0
- data/CREDITS.md +52 -0
- data/LICENSE +21 -0
- data/README.md +139 -0
- data/bin/wxruby +9 -0
- data/ext/mkrf_conf_srcgem.rb +64 -0
- data/ext/wxruby3/include/wxruby-runtime.h +104 -0
- data/ext/wxruby3/swig/RubyStockObjects.i +62 -0
- data/ext/wxruby3/swig/common.i +110 -0
- data/ext/wxruby3/swig/custom/rubyprimtypes.swg +225 -0
- data/ext/wxruby3/swig/custom/rubytracking.swg +60 -0
- data/ext/wxruby3/swig/custom/swig3/rubyrun.swg +456 -0
- data/ext/wxruby3/swig/custom/swig4/rubyrun.swg +459 -0
- data/ext/wxruby3/swig/mark_free_impl.i +377 -0
- data/ext/wxruby3/swig/memory_management.i +142 -0
- data/ext/wxruby3/swig/typedefs.i +27 -0
- data/ext/wxruby3/swig/wx.i +282 -0
- data/ext/wxruby3/swig/wx.rc +19 -0
- data/ext/wxruby3/wxruby.ico +0 -0
- data/lib/wx/accessors.rb +63 -0
- data/lib/wx/aui/auimanager.rb +17 -0
- data/lib/wx/aui/auinotebook.rb +9 -0
- data/lib/wx/aui/require.rb +9 -0
- data/lib/wx/aui.rb +14 -0
- data/lib/wx/core/acceleratortable.rb +28 -0
- data/lib/wx/core/animation.rb +18 -0
- data/lib/wx/core/app.rb +89 -0
- data/lib/wx/core/artprovider.rb +31 -0
- data/lib/wx/core/bitmap.rb +59 -0
- data/lib/wx/core/busycursor.rb +12 -0
- data/lib/wx/core/choice.rb +4 -0
- data/lib/wx/core/choicedlg.rb +54 -0
- data/lib/wx/core/clientdc.rb +13 -0
- data/lib/wx/core/clipboard.rb +56 -0
- data/lib/wx/core/collapsible_pane.rb +12 -0
- data/lib/wx/core/colour.rb +34 -0
- data/lib/wx/core/combobox.rb +4 -0
- data/lib/wx/core/controlwithitems.rb +10 -0
- data/lib/wx/core/data_object.rb +10 -0
- data/lib/wx/core/dataformat.rb +26 -0
- data/lib/wx/core/dc.rb +68 -0
- data/lib/wx/core/dialog.rb +50 -0
- data/lib/wx/core/enum.rb +28 -0
- data/lib/wx/core/event.rb +16 -0
- data/lib/wx/core/evthandler.rb +253 -0
- data/lib/wx/core/ext.rb +58 -0
- data/lib/wx/core/font.rb +22 -0
- data/lib/wx/core/functions.rb +44 -0
- data/lib/wx/core/gauge.rb +12 -0
- data/lib/wx/core/genericdirctrl.rb +36 -0
- data/lib/wx/core/hboxsizer.rb +6 -0
- data/lib/wx/core/helpcontroller.rb +5 -0
- data/lib/wx/core/helpcontrollerhelpprovider.rb +24 -0
- data/lib/wx/core/helpprovider.rb +15 -0
- data/lib/wx/core/icon.rb +40 -0
- data/lib/wx/core/image.rb +68 -0
- data/lib/wx/core/imagelist.rb +3 -0
- data/lib/wx/core/listbox.rb +4 -0
- data/lib/wx/core/listctrl.rb +33 -0
- data/lib/wx/core/locale.rb +73 -0
- data/lib/wx/core/log.rb +20 -0
- data/lib/wx/core/menu.rb +78 -0
- data/lib/wx/core/menu_bar.rb +20 -0
- data/lib/wx/core/menuitem.rb +7 -0
- data/lib/wx/core/notebook.rb +9 -0
- data/lib/wx/core/object.rb +14 -0
- data/lib/wx/core/pen_info.rb +11 -0
- data/lib/wx/core/platform_info.rb +13 -0
- data/lib/wx/core/point.rb +92 -0
- data/lib/wx/core/real_point.rb +92 -0
- data/lib/wx/core/rect.rb +57 -0
- data/lib/wx/core/simplehelpprovider.rb +38 -0
- data/lib/wx/core/size.rb +86 -0
- data/lib/wx/core/sizer.rb +43 -0
- data/lib/wx/core/splash_screen.rb +44 -0
- data/lib/wx/core/textctrl.rb +8 -0
- data/lib/wx/core/timer.rb +104 -0
- data/lib/wx/core/toolbar.rb +37 -0
- data/lib/wx/core/toolbartool.rb +4 -0
- data/lib/wx/core/treectrl.rb +46 -0
- data/lib/wx/core/validator.rb +8 -0
- data/lib/wx/core/variant.rb +62 -0
- data/lib/wx/core/vboxsizer.rb +6 -0
- data/lib/wx/core/window.rb +95 -0
- data/lib/wx/core/window_update_locker.rb +12 -0
- data/lib/wx/core/xmlresource.rb +56 -0
- data/lib/wx/core.rb +61 -0
- data/lib/wx/doc/aui/auimanager.rb +12 -0
- data/lib/wx/doc/aui/auinotebook.rb +9 -0
- data/lib/wx/doc/colour_dialog.rb +15 -0
- data/lib/wx/doc/core.rb +11 -0
- data/lib/wx/doc/dc.rb +49 -0
- data/lib/wx/doc/enum.rb +88 -0
- data/lib/wx/doc/evthandler.rb +87 -0
- data/lib/wx/doc/extra/00_starting.md +154 -0
- data/lib/wx/doc/extra/01_packages.md +179 -0
- data/lib/wx/doc/extra/02_lifecycles.md +116 -0
- data/lib/wx/doc/extra/03_dialogs.md +57 -0
- data/lib/wx/doc/extra/04_enums.md +143 -0
- data/lib/wx/doc/extra/05_event-handling.md +166 -0
- data/lib/wx/doc/extra/06_geometry.md +56 -0
- data/lib/wx/doc/extra/07_colour_and_font.md +52 -0
- data/lib/wx/doc/extra/08_extensions.md +144 -0
- data/lib/wx/doc/extra/09_exceptions.md +54 -0
- data/lib/wx/doc/functions.rb +221 -0
- data/lib/wx/doc/gdi_common.rb +181 -0
- data/lib/wx/doc/grid/grid.rb +20 -0
- data/lib/wx/doc/help_controller.rb +14 -0
- data/lib/wx/doc/html/html_help_controller.rb +8 -0
- data/lib/wx/doc/pg/events.rb +15 -0
- data/lib/wx/doc/pg/pg_property.rb +8 -0
- data/lib/wx/doc/pg/pgeditor.rb +21 -0
- data/lib/wx/doc/pg/property_grid.rb +48 -0
- data/lib/wx/doc/pg/property_grid_interface.rb +64 -0
- data/lib/wx/doc/prt/page_setup_dialog.rb +15 -0
- data/lib/wx/doc/prt/print_data.rb +9 -0
- data/lib/wx/doc/prt/print_dialog.rb +26 -0
- data/lib/wx/doc/prt/printer.rb +15 -0
- data/lib/wx/doc/rbn/ribbon_bar.rb +9 -0
- data/lib/wx/doc/rbn/ribbon_button_bar.rb +9 -0
- data/lib/wx/doc/rbn/ribbon_gallery.rb +9 -0
- data/lib/wx/doc/rbn/ribbon_tool_bar.rb +9 -0
- data/lib/wx/doc/rtc/richtext_printing.rb +14 -0
- data/lib/wx/doc/screen_dc.rb +10 -0
- data/lib/wx/doc/stock_objects.rb +98 -0
- data/lib/wx/doc/stream.rb +38 -0
- data/lib/wx/doc/system_settings.rb +29 -0
- data/lib/wx/doc/treebook.rb +9 -0
- data/lib/wx/doc/variant.rb +163 -0
- data/lib/wx/doc/xml_resource.rb +19 -0
- data/lib/wx/global_const.rb +84 -0
- data/lib/wx/grid/grid.rb +7 -0
- data/lib/wx/grid/keyword_defs.rb +10 -0
- data/lib/wx/grid/require.rb +9 -0
- data/lib/wx/grid.rb +14 -0
- data/lib/wx/helpers.rb +65 -0
- data/lib/wx/html/htmlhelpcontroller.rb +6 -0
- data/lib/wx/html/htmlwindow.rb +19 -0
- data/lib/wx/html/keyword_defs.rb +22 -0
- data/lib/wx/html/require.rb +10 -0
- data/lib/wx/html.rb +15 -0
- data/lib/wx/keyword_ctors.rb +226 -0
- data/lib/wx/keyword_defs.rb +487 -0
- data/lib/wx/pg/events.rb +14 -0
- data/lib/wx/pg/keyword_defs.rb +15 -0
- data/lib/wx/pg/pg_editor.rb +13 -0
- data/lib/wx/pg/pg_properties.rb +24 -0
- data/lib/wx/pg/pg_property.rb +27 -0
- data/lib/wx/pg/property_grid.rb +71 -0
- data/lib/wx/pg/property_grid_interface.rb +46 -0
- data/lib/wx/pg/require.rb +12 -0
- data/lib/wx/pg.rb +14 -0
- data/lib/wx/prt/keyword_defs.rb +8 -0
- data/lib/wx/prt/page_setup_dialog.rb +15 -0
- data/lib/wx/prt/previewframe.rb +13 -0
- data/lib/wx/prt/require.rb +8 -0
- data/lib/wx/prt.rb +14 -0
- data/lib/wx/rbn/events.rb +4 -0
- data/lib/wx/rbn/keyword_defs.rb +43 -0
- data/lib/wx/rbn/require.rb +12 -0
- data/lib/wx/rbn/ribbon_art_provider.rb +10 -0
- data/lib/wx/rbn/ribbon_bar.rb +12 -0
- data/lib/wx/rbn/ribbon_button_bar.rb +26 -0
- data/lib/wx/rbn/ribbon_control.rb +25 -0
- data/lib/wx/rbn/ribbon_gallery.rb +26 -0
- data/lib/wx/rbn/ribbon_page.rb +15 -0
- data/lib/wx/rbn/ribbon_panel.rb +15 -0
- data/lib/wx/rbn/ribbon_tool_bar.rb +26 -0
- data/lib/wx/rbn.rb +14 -0
- data/lib/wx/rtc/ext.rb +15 -0
- data/lib/wx/rtc/keyword_defs.rb +17 -0
- data/lib/wx/rtc/require.rb +8 -0
- data/lib/wx/rtc.rb +15 -0
- data/lib/wx/stc/keyword_defs.rb +8 -0
- data/lib/wx/stc/require.rb +7 -0
- data/lib/wx/stc.rb +14 -0
- data/lib/wx/version.rb +3 -0
- data/lib/wx/wxruby/base.rb +87 -0
- data/lib/wx/wxruby/cmd/sampler.rb +68 -0
- data/lib/wx/wxruby/cmd/test.rb +27 -0
- data/lib/wx.rb +14 -0
- data/rakelib/build.rake +62 -0
- data/rakelib/build.rb +141 -0
- data/rakelib/config.rake +48 -0
- data/rakelib/configure.rb +131 -0
- data/rakelib/doc.rake +21 -0
- data/rakelib/doc.rb +35 -0
- data/rakelib/install.rake +30 -0
- data/rakelib/install.rb +220 -0
- data/rakelib/lib/config/cygwin.rb +6 -0
- data/rakelib/lib/config/linux.rb +78 -0
- data/rakelib/lib/config/macosx.rb +6 -0
- data/rakelib/lib/config/mingw.rb +133 -0
- data/rakelib/lib/config/netbsd.rb +6 -0
- data/rakelib/lib/config/unixish.rb +187 -0
- data/rakelib/lib/config.rb +673 -0
- data/rakelib/lib/core/include/enum.inc +306 -0
- data/rakelib/lib/core/include/funcall.inc +277 -0
- data/rakelib/lib/core/include/init.inc +95 -0
- data/rakelib/lib/core/mapping.rb +1116 -0
- data/rakelib/lib/core/package.rb +634 -0
- data/rakelib/lib/core/parameter.rb +222 -0
- data/rakelib/lib/core/spec.rb +468 -0
- data/rakelib/lib/core/spec_helper.rb +405 -0
- data/rakelib/lib/director/about_dialog_info.rb +24 -0
- data/rakelib/lib/director/accelerator.rb +88 -0
- data/rakelib/lib/director/animation.rb +84 -0
- data/rakelib/lib/director/animation_ctrl.rb +24 -0
- data/rakelib/lib/director/any_button.rb +34 -0
- data/rakelib/lib/director/app.rb +420 -0
- data/rakelib/lib/director/art_provider.rb +124 -0
- data/rakelib/lib/director/aui_dock_art.rb +23 -0
- data/rakelib/lib/director/aui_floating_frame.rb +26 -0
- data/rakelib/lib/director/aui_manager.rb +114 -0
- data/rakelib/lib/director/aui_manager_event.rb +22 -0
- data/rakelib/lib/director/aui_mdi_child_frame.rb +50 -0
- data/rakelib/lib/director/aui_mdi_client_window.rb +23 -0
- data/rakelib/lib/director/aui_mdi_parent_frame.rb +26 -0
- data/rakelib/lib/director/aui_notebook.rb +77 -0
- data/rakelib/lib/director/aui_notebook_event.rb +23 -0
- data/rakelib/lib/director/aui_pane_info.rb +102 -0
- data/rakelib/lib/director/aui_tab_art.rb +47 -0
- data/rakelib/lib/director/aui_tab_ctrl.rb +121 -0
- data/rakelib/lib/director/aui_toolbar.rb +22 -0
- data/rakelib/lib/director/aui_toolbar_art.rb +24 -0
- data/rakelib/lib/director/aui_toolbar_event.rb +23 -0
- data/rakelib/lib/director/aui_toolbar_item.rb +21 -0
- data/rakelib/lib/director/bitmap.rb +87 -0
- data/rakelib/lib/director/book_ctrls.rb +104 -0
- data/rakelib/lib/director/brush.rb +28 -0
- data/rakelib/lib/director/busy_info.rb +71 -0
- data/rakelib/lib/director/button.rb +22 -0
- data/rakelib/lib/director/calendar_ctrl.rb +98 -0
- data/rakelib/lib/director/calendar_date_attr.rb +22 -0
- data/rakelib/lib/director/caret.rb +31 -0
- data/rakelib/lib/director/check_listbox.rb +33 -0
- data/rakelib/lib/director/choice.rb +32 -0
- data/rakelib/lib/director/clipboard.rb +37 -0
- data/rakelib/lib/director/collapsible_pane.rb +22 -0
- data/rakelib/lib/director/collapsible_pane_event.rb +22 -0
- data/rakelib/lib/director/colour.rb +64 -0
- data/rakelib/lib/director/colour_picker_ctrl.rb +22 -0
- data/rakelib/lib/director/combobox.rb +37 -0
- data/rakelib/lib/director/control.rb +22 -0
- data/rakelib/lib/director/ctrl_with_items.rb +68 -0
- data/rakelib/lib/director/cursor.rb +28 -0
- data/rakelib/lib/director/data_format.rb +31 -0
- data/rakelib/lib/director/data_object.rb +64 -0
- data/rakelib/lib/director/date_event.rb +141 -0
- data/rakelib/lib/director/date_picker_ctrl.rb +39 -0
- data/rakelib/lib/director/dc.rb +52 -0
- data/rakelib/lib/director/defs.rb +139 -0
- data/rakelib/lib/director/derived_dc.rb +64 -0
- data/rakelib/lib/director/dialog.rb +214 -0
- data/rakelib/lib/director/dir_filterlist_ctrl.rb +29 -0
- data/rakelib/lib/director/dir_picker_ctrl.rb +22 -0
- data/rakelib/lib/director/drag_image.rb +20 -0
- data/rakelib/lib/director/dragdrop.rb +61 -0
- data/rakelib/lib/director/editable_listbox.rb +21 -0
- data/rakelib/lib/director/event.rb +171 -0
- data/rakelib/lib/director/event_handler.rb +410 -0
- data/rakelib/lib/director/events.rb +39 -0
- data/rakelib/lib/director/file_picker_ctrl.rb +22 -0
- data/rakelib/lib/director/find_dialog_event.rb +22 -0
- data/rakelib/lib/director/find_replace_data.rb +20 -0
- data/rakelib/lib/director/font.rb +138 -0
- data/rakelib/lib/director/font_data.rb +22 -0
- data/rakelib/lib/director/font_picker_ctrl.rb +22 -0
- data/rakelib/lib/director/frame.rb +74 -0
- data/rakelib/lib/director/fs_file.rb +353 -0
- data/rakelib/lib/director/functions.rb +284 -0
- data/rakelib/lib/director/gdi_object.rb +21 -0
- data/rakelib/lib/director/gdicommon.rb +94 -0
- data/rakelib/lib/director/generic_dirctrl.rb +24 -0
- data/rakelib/lib/director/graphics_context.rb +143 -0
- data/rakelib/lib/director/graphics_object.rb +69 -0
- data/rakelib/lib/director/grid_cell_attr.rb +53 -0
- data/rakelib/lib/director/grid_cell_editor.rb +434 -0
- data/rakelib/lib/director/grid_cell_renderer.rb +132 -0
- data/rakelib/lib/director/grid_ctrl.rb +390 -0
- data/rakelib/lib/director/grid_range_select_event.rb +23 -0
- data/rakelib/lib/director/grid_table_base.rb +63 -0
- data/rakelib/lib/director/grid_table_message.rb +20 -0
- data/rakelib/lib/director/help_controller.rb +75 -0
- data/rakelib/lib/director/help_provider.rb +103 -0
- data/rakelib/lib/director/html_cell.rb +36 -0
- data/rakelib/lib/director/html_easy_printing.rb +45 -0
- data/rakelib/lib/director/html_event.rb +24 -0
- data/rakelib/lib/director/html_help_data.rb +43 -0
- data/rakelib/lib/director/html_help_frame.rb +25 -0
- data/rakelib/lib/director/html_listbox.rb +54 -0
- data/rakelib/lib/director/html_printout.rb +47 -0
- data/rakelib/lib/director/html_window.rb +114 -0
- data/rakelib/lib/director/icon.rb +33 -0
- data/rakelib/lib/director/image.rb +111 -0
- data/rakelib/lib/director/image_list.rb +21 -0
- data/rakelib/lib/director/list_ctrl.rb +197 -0
- data/rakelib/lib/director/listbox.rb +32 -0
- data/rakelib/lib/director/locale.rb +35 -0
- data/rakelib/lib/director/log.rb +32 -0
- data/rakelib/lib/director/mdi_frame.rb +36 -0
- data/rakelib/lib/director/media_ctrl.rb +22 -0
- data/rakelib/lib/director/menu.rb +92 -0
- data/rakelib/lib/director/menu_bar.rb +28 -0
- data/rakelib/lib/director/menu_item.rb +36 -0
- data/rakelib/lib/director/mouse_state.rb +21 -0
- data/rakelib/lib/director/numeric_property_validator.rb +38 -0
- data/rakelib/lib/director/object.rb +32 -0
- data/rakelib/lib/director/page_setup_dialog.rb +30 -0
- data/rakelib/lib/director/palette.rb +25 -0
- data/rakelib/lib/director/panel.rb +22 -0
- data/rakelib/lib/director/pen.rb +174 -0
- data/rakelib/lib/director/pgarray_editor_dialog.rb +64 -0
- data/rakelib/lib/director/pgcell.rb +68 -0
- data/rakelib/lib/director/pgeditor.rb +154 -0
- data/rakelib/lib/director/pgmulti_button.rb +22 -0
- data/rakelib/lib/director/pgproperties.rb +216 -0
- data/rakelib/lib/director/pgproperty.rb +207 -0
- data/rakelib/lib/director/pgvalidation_info.rb +24 -0
- data/rakelib/lib/director/pickerbase.rb +22 -0
- data/rakelib/lib/director/platform_info.rb +49 -0
- data/rakelib/lib/director/popup_window.rb +23 -0
- data/rakelib/lib/director/preview_frame.rb +39 -0
- data/rakelib/lib/director/print_data.rb +33 -0
- data/rakelib/lib/director/print_dialog.rb +36 -0
- data/rakelib/lib/director/printer.rb +61 -0
- data/rakelib/lib/director/property_grid.rb +174 -0
- data/rakelib/lib/director/property_grid_event.rb +23 -0
- data/rakelib/lib/director/property_grid_interface.rb +227 -0
- data/rakelib/lib/director/property_grid_manager.rb +90 -0
- data/rakelib/lib/director/property_grid_page.rb +76 -0
- data/rakelib/lib/director/property_grid_page_state.rb +32 -0
- data/rakelib/lib/director/radio_box.rb +39 -0
- data/rakelib/lib/director/region.rb +25 -0
- data/rakelib/lib/director/ribbon_art_provider.rb +154 -0
- data/rakelib/lib/director/ribbon_bar.rb +24 -0
- data/rakelib/lib/director/ribbon_bar_event.rb +22 -0
- data/rakelib/lib/director/ribbon_button_bar.rb +37 -0
- data/rakelib/lib/director/ribbon_button_bar_event.rb +40 -0
- data/rakelib/lib/director/ribbon_ctrl.rb +28 -0
- data/rakelib/lib/director/ribbon_gallery.rb +33 -0
- data/rakelib/lib/director/ribbon_gallery_event.rb +27 -0
- data/rakelib/lib/director/ribbon_page.rb +21 -0
- data/rakelib/lib/director/ribbon_panel.rb +22 -0
- data/rakelib/lib/director/ribbon_panel_event.rb +22 -0
- data/rakelib/lib/director/ribbon_tool_bar.rb +146 -0
- data/rakelib/lib/director/ribbon_tool_bar_event.rb +22 -0
- data/rakelib/lib/director/richtext_buffer.rb +46 -0
- data/rakelib/lib/director/richtext_ctrl.rb +63 -0
- data/rakelib/lib/director/richtext_event.rb +25 -0
- data/rakelib/lib/director/richtext_file_handler.rb +42 -0
- data/rakelib/lib/director/richtext_header_footer_data.rb +21 -0
- data/rakelib/lib/director/richtext_printing.rb +44 -0
- data/rakelib/lib/director/sash_layout_event.rb +22 -0
- data/rakelib/lib/director/sash_layout_window.rb +23 -0
- data/rakelib/lib/director/sash_window.rb +23 -0
- data/rakelib/lib/director/scrolled_t.rb +67 -0
- data/rakelib/lib/director/sizer.rb +67 -0
- data/rakelib/lib/director/sizer_item.rb +35 -0
- data/rakelib/lib/director/splash_screen.rb +24 -0
- data/rakelib/lib/director/splitter_event.rb +28 -0
- data/rakelib/lib/director/splitter_window.rb +25 -0
- data/rakelib/lib/director/static_bitmap.rb +24 -0
- data/rakelib/lib/director/static_box.rb +26 -0
- data/rakelib/lib/director/status_bar.rb +86 -0
- data/rakelib/lib/director/styled_text_ctrl.rb +82 -0
- data/rakelib/lib/director/styled_text_event.rb +25 -0
- data/rakelib/lib/director/system_options.rb +22 -0
- data/rakelib/lib/director/system_settings.rb +47 -0
- data/rakelib/lib/director/task_bar_icon.rb +77 -0
- data/rakelib/lib/director/text_attr.rb +22 -0
- data/rakelib/lib/director/text_entry.rb +26 -0
- data/rakelib/lib/director/text_validator.rb +47 -0
- data/rakelib/lib/director/textctrl.rb +80 -0
- data/rakelib/lib/director/time_picker_ctrl.rb +24 -0
- data/rakelib/lib/director/timer.rb +37 -0
- data/rakelib/lib/director/tip_provider.rb +44 -0
- data/rakelib/lib/director/toggle_button.rb +22 -0
- data/rakelib/lib/director/tool_bar.rb +62 -0
- data/rakelib/lib/director/tool_tip.rb +20 -0
- data/rakelib/lib/director/top_level_window.rb +105 -0
- data/rakelib/lib/director/tree_ctrl.rb +411 -0
- data/rakelib/lib/director/tree_event.rb +78 -0
- data/rakelib/lib/director/utils.rb +55 -0
- data/rakelib/lib/director/validator.rb +44 -0
- data/rakelib/lib/director/variant.rb +549 -0
- data/rakelib/lib/director/vlistbox.rb +46 -0
- data/rakelib/lib/director/vscrolled_window.rb +59 -0
- data/rakelib/lib/director/window.rb +296 -0
- data/rakelib/lib/director/window_disabler.rb +44 -0
- data/rakelib/lib/director/with_images.rb +65 -0
- data/rakelib/lib/director/wizard_page.rb +35 -0
- data/rakelib/lib/director/xml_node.rb +48 -0
- data/rakelib/lib/director/xml_resource.rb +141 -0
- data/rakelib/lib/director.rb +487 -0
- data/rakelib/lib/ext/enum_chain.rb +22 -0
- data/rakelib/lib/extractor/class.rb +384 -0
- data/rakelib/lib/extractor/enum.rb +94 -0
- data/rakelib/lib/extractor/function.rb +377 -0
- data/rakelib/lib/extractor/module.rb +140 -0
- data/rakelib/lib/extractor/variable.rb +145 -0
- data/rakelib/lib/extractor.rb +438 -0
- data/rakelib/lib/generate/analyzer.rb +593 -0
- data/rakelib/lib/generate/base.rb +37 -0
- data/rakelib/lib/generate/doc.rb +833 -0
- data/rakelib/lib/generate/interface.rb +742 -0
- data/rakelib/lib/generate/rakedep.rb +130 -0
- data/rakelib/lib/specs/interfaces.rb +324 -0
- data/rakelib/lib/streams.rb +206 -0
- data/rakelib/lib/swig_runner.rb +682 -0
- data/rakelib/lib/typemap/array_int_selections.rb +57 -0
- data/rakelib/lib/typemap/common.rb +613 -0
- data/rakelib/lib/typemap/data_format.rb +76 -0
- data/rakelib/lib/typemap/data_object_data.rb +99 -0
- data/rakelib/lib/typemap/datetime.rb +64 -0
- data/rakelib/lib/typemap/grid_client_data.rb +55 -0
- data/rakelib/lib/typemap/grid_coords.rb +65 -0
- data/rakelib/lib/typemap/html_cell.rb +57 -0
- data/rakelib/lib/typemap/io_streams.rb +162 -0
- data/rakelib/lib/typemap/pgcell.rb +35 -0
- data/rakelib/lib/typemap/pgeditor.rb +35 -0
- data/rakelib/lib/typemap/pgprop_arg.rb +74 -0
- data/rakelib/lib/typemap/pgproperty.rb +35 -0
- data/rakelib/lib/typemap/points_list.rb +124 -0
- data/rakelib/lib/typemap/richtext.rb +67 -0
- data/rakelib/lib/typemap/tree_itemid.rb +49 -0
- data/rakelib/lib/util/string.rb +141 -0
- data/rakelib/prepost.rake +91 -0
- data/rakelib/prepost.rb +26 -0
- data/rakelib/run.rake +49 -0
- data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +7 -0
- data/rakelib/yard/templates/default/layout/html/setup.rb +5 -0
- data/rakelib/yard/yard/relative_markdown_links/version.rb +8 -0
- data/rakelib/yard/yard/relative_markdown_links.rb +39 -0
- data/rakelib/yard/yard-custom-templates.rb +2 -0
- data/rakelib/yard/yard-relative_markdown_links.rb +4 -0
- data/samples/art/wxruby-128x128.png +0 -0
- data/samples/art/wxruby-256x256.png +0 -0
- data/samples/art/wxruby-64x64.png +0 -0
- data/samples/art/wxruby.ico +0 -0
- data/samples/art/wxruby.png +0 -0
- data/samples/aui/aui.rb +1321 -0
- data/samples/aui/tn_aui.png +0 -0
- data/samples/bigdemo/About.rbw +39 -0
- data/samples/bigdemo/ColorPanel.rbw +23 -0
- data/samples/bigdemo/GridSimple.rbw +78 -0
- data/samples/bigdemo/MDIDemo.rbw +57 -0
- data/samples/bigdemo/PopupMenu.rbw +146 -0
- data/samples/bigdemo/ShapedWindow.rbw +128 -0
- data/samples/bigdemo/Sizers.rbw +541 -0
- data/samples/bigdemo/bigdemo.rb +810 -0
- data/samples/bigdemo/demoTemplate.rbw +33 -0
- data/samples/bigdemo/helpfile.htb +0 -0
- data/samples/bigdemo/icons/Test 015.jpg +0 -0
- data/samples/bigdemo/icons/Test 015.png +0 -0
- data/samples/bigdemo/icons/choice.bmp +0 -0
- data/samples/bigdemo/icons/choice.xpm +27 -0
- data/samples/bigdemo/icons/combo.bmp +0 -0
- data/samples/bigdemo/icons/combo.xpm +27 -0
- data/samples/bigdemo/icons/copy.xpm +25 -0
- data/samples/bigdemo/icons/cut.xpm +24 -0
- data/samples/bigdemo/icons/gauge.bmp +0 -0
- data/samples/bigdemo/icons/gauge.xpm +27 -0
- data/samples/bigdemo/icons/help.xpm +25 -0
- data/samples/bigdemo/icons/list.bmp +0 -0
- data/samples/bigdemo/icons/list.xpm +27 -0
- data/samples/bigdemo/icons/mondrian.ico +0 -0
- data/samples/bigdemo/icons/mondrian.xpm +44 -0
- data/samples/bigdemo/icons/new.xpm +24 -0
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -0
- data/samples/bigdemo/icons/open.xpm +26 -0
- data/samples/bigdemo/icons/paste.bmp +0 -0
- data/samples/bigdemo/icons/paste.xpm +38 -0
- data/samples/bigdemo/icons/pointy.png +0 -0
- data/samples/bigdemo/icons/preview.xpm +26 -0
- data/samples/bigdemo/icons/print.xpm +26 -0
- data/samples/bigdemo/icons/radio.bmp +0 -0
- data/samples/bigdemo/icons/radio.xpm +27 -0
- data/samples/bigdemo/icons/robert.xpm +415 -0
- data/samples/bigdemo/icons/sashtest.ico +0 -0
- data/samples/bigdemo/icons/save.xpm +25 -0
- data/samples/bigdemo/icons/smiles.bmp +0 -0
- data/samples/bigdemo/icons/smiles.xpm +39 -0
- data/samples/bigdemo/icons/smiley.ico +0 -0
- data/samples/bigdemo/icons/smiley.xpm +42 -0
- data/samples/bigdemo/icons/stattext.xpm +24 -0
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.png +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -0
- data/samples/bigdemo/icons/text.bmp +0 -0
- data/samples/bigdemo/icons/text.xpm +27 -0
- data/samples/bigdemo/icons/tog1.bmp +0 -0
- data/samples/bigdemo/icons/tog1.xpm +38 -0
- data/samples/bigdemo/icons/tog2.bmp +0 -0
- data/samples/bigdemo/icons/tog2.xpm +38 -0
- data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
- data/samples/bigdemo/icons/wxwin.ico +0 -0
- data/samples/bigdemo/icons/wxwin16x16.png +0 -0
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
- data/samples/bigdemo/icons/wxwin32x32.png +0 -0
- data/samples/bigdemo/icons/wxwin48x48.png +0 -0
- data/samples/bigdemo/run.rb +91 -0
- data/samples/bigdemo/tips.txt +7 -0
- data/samples/bigdemo/utils.rb +12 -0
- data/samples/bigdemo/wxArtProvider.rbw +281 -0
- data/samples/bigdemo/wxBitmapButton.rbw +65 -0
- data/samples/bigdemo/wxButton.rbw +64 -0
- data/samples/bigdemo/wxCalendarCtrl.rbw +59 -0
- data/samples/bigdemo/wxCheckBox.rbw +50 -0
- data/samples/bigdemo/wxCheckListBox.rbw +65 -0
- data/samples/bigdemo/wxChoice.rbw +47 -0
- data/samples/bigdemo/wxChoicebook.rbw +78 -0
- data/samples/bigdemo/wxColourDialog.rbw +33 -0
- data/samples/bigdemo/wxComboBox.rbw +77 -0
- data/samples/bigdemo/wxCursor.rbw +136 -0
- data/samples/bigdemo/wxDialog.rbw +74 -0
- data/samples/bigdemo/wxDirDialog.rbw +29 -0
- data/samples/bigdemo/wxDragImage.rbw +70 -0
- data/samples/bigdemo/wxFileDialog.rbw +37 -0
- data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
- data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
- data/samples/bigdemo/wxFontDialog.rbw +200 -0
- data/samples/bigdemo/wxFrame.rbw +53 -0
- data/samples/bigdemo/wxGauge.rbw +65 -0
- data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
- data/samples/bigdemo/wxGrid.rbw +66 -0
- data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
- data/samples/bigdemo/wxListBox.rbw +140 -0
- data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
- data/samples/bigdemo/wxMDIWindows.rbw +50 -0
- data/samples/bigdemo/wxMenu.rbw +247 -0
- data/samples/bigdemo/wxMessageDialog.rbw +27 -0
- data/samples/bigdemo/wxMiniFrame.rbw +70 -0
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +29 -0
- data/samples/bigdemo/wxNotebook.rbw +136 -0
- data/samples/bigdemo/wxProgressDialog.rbw +43 -0
- data/samples/bigdemo/wxRadioBox.rbw +72 -0
- data/samples/bigdemo/wxRadioButton.rbw +125 -0
- data/samples/bigdemo/wxSashWindow.rbw +141 -0
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
- data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
- data/samples/bigdemo/wxSlider.rbw +42 -0
- data/samples/bigdemo/wxSpinButton.rbw +50 -0
- data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
- data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
- data/samples/bigdemo/wxStaticBitmap.rbw +47 -0
- data/samples/bigdemo/wxStaticText.rbw +55 -0
- data/samples/bigdemo/wxStatusBar.rbw +126 -0
- data/samples/bigdemo/wxTextCtrl.rbw +149 -0
- data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
- data/samples/bigdemo/wxToggleButton.rbw +49 -0
- data/samples/bigdemo/wxToolBar.rbw +131 -0
- data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
- data/samples/calendar/calendar.rb +363 -0
- data/samples/calendar/tn_calendar.png +0 -0
- data/samples/caret/caret.rb +293 -0
- data/samples/caret/mondrian.xpm +44 -0
- data/samples/caret/tn_caret.png +0 -0
- data/samples/controls/books.rb +183 -0
- data/samples/controls/choice.xpm +27 -0
- data/samples/controls/combo.xpm +27 -0
- data/samples/controls/controls.rb +1143 -0
- data/samples/controls/gauge.xpm +27 -0
- data/samples/controls/get_item_sample.rb +117 -0
- data/samples/controls/list.xpm +27 -0
- data/samples/controls/mondrian.ico +0 -0
- data/samples/controls/mondrian.xpm +44 -0
- data/samples/controls/radio.xpm +27 -0
- data/samples/controls/stattext.xpm +24 -0
- data/samples/controls/test2.bmp +0 -0
- data/samples/controls/text.xpm +27 -0
- data/samples/controls/tn_books.png +0 -0
- data/samples/controls/tn_controls.png +0 -0
- data/samples/controls/tn_get_item_sample.png +0 -0
- data/samples/dialogs/dialogs.rb +879 -0
- data/samples/dialogs/tips.txt +18 -0
- data/samples/dialogs/tn_dialogs.png +0 -0
- data/samples/dialogs/tn_wizard.png +0 -0
- data/samples/dialogs/wizard.rb +89 -0
- data/samples/dragdrop/dragdrop.rb +200 -0
- data/samples/dragdrop/tn_dragdrop.png +0 -0
- data/samples/drawing/SVGlogo24.xpm +310 -0
- data/samples/drawing/bitmap.rb +76 -0
- data/samples/drawing/bitmap_image.rb +131 -0
- data/samples/drawing/graphics_drawing.rb +257 -0
- data/samples/drawing/maths_images.rb +327 -0
- data/samples/drawing/rmagic_bitmap_image.rb +139 -0
- data/samples/drawing/ruby-logo.jpg +0 -0
- data/samples/drawing/svgtest.rb +373 -0
- data/samples/drawing/tn_bitmap.png +0 -0
- data/samples/drawing/tn_bitmap_image.png +0 -0
- data/samples/drawing/tn_graphics_drawing.png +0 -0
- data/samples/drawing/tn_maths_images.png +0 -0
- data/samples/drawing/tn_rmagic_bitmap_image.png +0 -0
- data/samples/drawing/tn_svgtest.png +0 -0
- data/samples/etc/choice.rb +82 -0
- data/samples/etc/miniframe.rb +92 -0
- data/samples/etc/sash.rb +140 -0
- data/samples/etc/scrollwin.rb +120 -0
- data/samples/etc/system_settings.rb +263 -0
- data/samples/etc/tn_choice.png +0 -0
- data/samples/etc/tn_miniframe.png +0 -0
- data/samples/etc/tn_sash.png +0 -0
- data/samples/etc/tn_scrollwin.png +0 -0
- data/samples/etc/tn_system_settings.png +0 -0
- data/samples/event/activation.rb +129 -0
- data/samples/event/event.rb +220 -0
- data/samples/event/threaded.rb +141 -0
- data/samples/event/tn_activation.png +0 -0
- data/samples/event/tn_event.png +0 -0
- data/samples/event/tn_threaded.png +0 -0
- data/samples/event/tn_update_ui_event.png +0 -0
- data/samples/event/update_ui_event.rb +91 -0
- data/samples/grid/grid.rb +224 -0
- data/samples/grid/gridtablebase.rb +178 -0
- data/samples/grid/tn_grid.png +0 -0
- data/samples/grid/tn_gridtablebase.png +0 -0
- data/samples/html/8859_2.htm +14 -0
- data/samples/html/cp1250.htm +19 -0
- data/samples/html/foo.png +0 -0
- data/samples/html/html.rb +278 -0
- data/samples/html/i18n.gif +0 -0
- data/samples/html/imagemap.htm +20 -0
- data/samples/html/imagemap.png +0 -0
- data/samples/html/listtest.htm +28 -0
- data/samples/html/pic.png +0 -0
- data/samples/html/pic2.bmp +0 -0
- data/samples/html/regres.htm +20 -0
- data/samples/html/subsup.html +42 -0
- data/samples/html/tables.htm +255 -0
- data/samples/html/test.htm +375 -0
- data/samples/html/tn_html.png +0 -0
- data/samples/mdi/mdi.rb +118 -0
- data/samples/mdi/tn_mdi.png +0 -0
- data/samples/minimal/minimal.rb +95 -0
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.png +0 -0
- data/samples/minimal/nothing.rb +38 -0
- data/samples/minimal/tn_minimal.png +0 -0
- data/samples/minimal/tn_nothing.png +0 -0
- data/samples/printing/mondrian.ico +0 -0
- data/samples/printing/mondrian.xpm +44 -0
- data/samples/printing/printing.rb +499 -0
- data/samples/printing/printing2.rb +251 -0
- data/samples/printing/sample-text.txt +213 -0
- data/samples/printing/tn_printing.png +0 -0
- data/samples/printing/tn_printing2.png +0 -0
- data/samples/propgrid/propgrid.rb +2711 -0
- data/samples/propgrid/propgrid_minimal.rb +107 -0
- data/samples/propgrid/sample_props.rb +434 -0
- data/samples/propgrid/tn_propgrid.png +0 -0
- data/samples/propgrid/tn_propgrid_minimal.png +0 -0
- data/samples/ribbon/align_center.xpm +21 -0
- data/samples/ribbon/align_left.xpm +21 -0
- data/samples/ribbon/align_right.xpm +21 -0
- data/samples/ribbon/aui_style.xpm +53 -0
- data/samples/ribbon/auto_crop_selection.xpm +55 -0
- data/samples/ribbon/auto_crop_selection_small.xpm +33 -0
- data/samples/ribbon/circle.xpm +38 -0
- data/samples/ribbon/circle_small.xpm +22 -0
- data/samples/ribbon/colours.xpm +25 -0
- data/samples/ribbon/cross.xpm +38 -0
- data/samples/ribbon/empty.xpm +23 -0
- data/samples/ribbon/expand_selection_h.xpm +46 -0
- data/samples/ribbon/expand_selection_v.xpm +46 -0
- data/samples/ribbon/eye.xpm +26 -0
- data/samples/ribbon/hexagon.xpm +38 -0
- data/samples/ribbon/msw_style.xpm +65 -0
- data/samples/ribbon/position_left.xpm +22 -0
- data/samples/ribbon/position_top.xpm +22 -0
- data/samples/ribbon/ribbon.rb +900 -0
- data/samples/ribbon/ribbon.xpm +54 -0
- data/samples/ribbon/selection_panel.xpm +23 -0
- data/samples/ribbon/square.xpm +38 -0
- data/samples/ribbon/tn_ribbon.png +0 -0
- data/samples/ribbon/triangle.xpm +38 -0
- data/samples/sample.xpm +475 -0
- data/samples/sampler/back.xpm +21 -0
- data/samples/sampler/copy.xpm +44 -0
- data/samples/sampler/cut.xpm +46 -0
- data/samples/sampler/editor.rb +560 -0
- data/samples/sampler/ext.rb +51 -0
- data/samples/sampler/filesave.xpm +42 -0
- data/samples/sampler/find.xpm +62 -0
- data/samples/sampler/findrepl.xpm +63 -0
- data/samples/sampler/forward.xpm +21 -0
- data/samples/sampler/paste.xpm +46 -0
- data/samples/sampler/play.xpm +24 -0
- data/samples/sampler/redo.xpm +58 -0
- data/samples/sampler/sample.rb +347 -0
- data/samples/sampler/stc_editor.rb +321 -0
- data/samples/sampler/txt_editor.rb +130 -0
- data/samples/sampler/undo.xpm +58 -0
- data/samples/sampler.rb +394 -0
- data/samples/splash/mobile.xpm +1835 -0
- data/samples/splash/splash.png +0 -0
- data/samples/splash/splash.rb +164 -0
- data/samples/splash/tn_splash.png +0 -0
- data/samples/text/document-open.png +0 -0
- data/samples/text/document-save.png +0 -0
- data/samples/text/edit-copy.png +0 -0
- data/samples/text/edit-cut.png +0 -0
- data/samples/text/edit-paste.png +0 -0
- data/samples/text/edit-redo.png +0 -0
- data/samples/text/edit-undo.png +0 -0
- data/samples/text/format-text-bold.png +0 -0
- data/samples/text/format-text-italic.png +0 -0
- data/samples/text/format-text-underline.png +0 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +44 -0
- data/samples/text/preferences-desktop-font.png +0 -0
- data/samples/text/rich_textctrl.rb +326 -0
- data/samples/text/scintilla.rb +179 -0
- data/samples/text/textctrl.rb +124 -0
- data/samples/text/tn_rich_textctrl.png +0 -0
- data/samples/text/tn_scintilla.png +0 -0
- data/samples/text/tn_textctrl.png +0 -0
- data/samples/text/tn_unicode.png +0 -0
- data/samples/text/unicode.rb +238 -0
- data/samples/text/utf8.txt +15 -0
- data/samples/treectrl/checked.xpm +54 -0
- data/samples/treectrl/icon1.xpm +79 -0
- data/samples/treectrl/icon2.xpm +53 -0
- data/samples/treectrl/icon3.xpm +79 -0
- data/samples/treectrl/icon4.xpm +43 -0
- data/samples/treectrl/icon5.xpm +79 -0
- data/samples/treectrl/state1.xpm +145 -0
- data/samples/treectrl/state2.xpm +144 -0
- data/samples/treectrl/state3.xpm +142 -0
- data/samples/treectrl/state4.xpm +145 -0
- data/samples/treectrl/state5.xpm +85 -0
- data/samples/treectrl/tn_treectrl.png +0 -0
- data/samples/treectrl/treectrl.rb +1720 -0
- data/samples/treectrl/unchecked.xpm +30 -0
- data/samples/xrc/custom_dialog.xrc +46 -0
- data/samples/xrc/custom_xrc_sample.rb +84 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/tn_xrc_sample.png +0 -0
- data/samples/xrc/xrc_sample.rb +86 -0
- data/tests/test_basic.rb +20 -0
- data/tests/test_clipboard.rb +241 -0
- data/tests/test_dialog.rb +28 -0
- data/tests/test_event_handling.rb +103 -0
- data/tests/test_events.rb +45 -0
- data/tests/test_geometry.rb +141 -0
- data/tests/test_intl.rb +107 -0
- data/tests/test_item_data.rb +120 -0
- data/tests/test_variant.rb +151 -0
- data/tests/testapp.rb +40 -0
- data/tests/testapp_noframe.rb +28 -0
- metadata +874 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
###
|
|
2
|
+
# wxRuby3 wxWidgets interface director
|
|
3
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
|
+
###
|
|
5
|
+
|
|
6
|
+
require_relative './window'
|
|
7
|
+
|
|
8
|
+
module WXRuby3
|
|
9
|
+
|
|
10
|
+
class Director
|
|
11
|
+
|
|
12
|
+
class ToolBar < Window
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
spec.items << 'wxToolBarToolBase'
|
|
16
|
+
super
|
|
17
|
+
# This class is an 'opaque handle' so these methods don't actually
|
|
18
|
+
# work to change the state; therefore hide them.
|
|
19
|
+
spec.ignore %w[
|
|
20
|
+
wxToolBarToolBase::Enable
|
|
21
|
+
wxToolBarToolBase::Toggle
|
|
22
|
+
wxToolBarToolBase::SetToggle
|
|
23
|
+
wxToolBarToolBase::SetShortHelp
|
|
24
|
+
wxToolBarToolBase::SetLongHelp
|
|
25
|
+
wxToolBarToolBase::SetNormalBitmap
|
|
26
|
+
wxToolBarToolBase::SetDisabledBitmap
|
|
27
|
+
wxToolBarToolBase::SetLabel
|
|
28
|
+
wxToolBarToolBase::SetClientData
|
|
29
|
+
wxToolBarToolBase::Detach
|
|
30
|
+
wxToolBarToolBase::Attach
|
|
31
|
+
]
|
|
32
|
+
spec.no_proxy 'wxToolBarToolBase'
|
|
33
|
+
# more sensible name to use
|
|
34
|
+
spec.rename_for_ruby('ToolBarTool' => 'wxToolBarToolBase')
|
|
35
|
+
# Ensure that the C++ wxToolBar(Base) implementation of UpdateWindowUI
|
|
36
|
+
# is called internally, so that UpdateUIEvents are also sent to each
|
|
37
|
+
# button within the toolbar. This means update_window_ui can't be
|
|
38
|
+
# overridden for this class in Ruby, but unlikely a real problem.
|
|
39
|
+
spec.no_proxy 'wxToolBar::UpdateWindowUI'
|
|
40
|
+
# problematic (and probably not very useful to overload)
|
|
41
|
+
spec.no_proxy %w[
|
|
42
|
+
wxToolBar::AddControl
|
|
43
|
+
wxToolBar::AddSeparator
|
|
44
|
+
wxToolBar::FindControl
|
|
45
|
+
wxToolBar::FindToolForPosition
|
|
46
|
+
wxToolBar::GetToolClientData
|
|
47
|
+
wxToolBar::InsertControl
|
|
48
|
+
wxToolBar::InsertSeparator
|
|
49
|
+
wxToolBar::RemoveTool
|
|
50
|
+
wxToolBar::CreateTool
|
|
51
|
+
]
|
|
52
|
+
# These don't work as you would think...
|
|
53
|
+
spec.ignore [
|
|
54
|
+
'wxToolBar::AddTool(wxToolBarToolBase *)',
|
|
55
|
+
'wxToolBar::InsertTool(size_t,wxToolBarToolBase *)'
|
|
56
|
+
]
|
|
57
|
+
end
|
|
58
|
+
end # class Object
|
|
59
|
+
|
|
60
|
+
end # class Director
|
|
61
|
+
|
|
62
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
###
|
|
2
|
+
# wxRuby3 wxWidgets interface director
|
|
3
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
|
+
###
|
|
5
|
+
|
|
6
|
+
module WXRuby3
|
|
7
|
+
|
|
8
|
+
class Director
|
|
9
|
+
|
|
10
|
+
class ToolTip < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
spec.set_only_for('__WXMSW__', 'wxToolTip::SetMaxWidth')
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
end # class ToolTip
|
|
17
|
+
|
|
18
|
+
end # class Director
|
|
19
|
+
|
|
20
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
###
|
|
2
|
+
# wxRuby3 wxWidgets interface director
|
|
3
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
|
+
###
|
|
5
|
+
|
|
6
|
+
require_relative './window'
|
|
7
|
+
|
|
8
|
+
module WXRuby3
|
|
9
|
+
|
|
10
|
+
class Director
|
|
11
|
+
|
|
12
|
+
class TopLevelWindow < Window
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
super
|
|
16
|
+
# for all wxTopLevelWindow (derived) classes
|
|
17
|
+
spec.items.each do |itm|
|
|
18
|
+
spec.no_proxy("#{itm}::ClearBackground",
|
|
19
|
+
"#{itm}::Enable",
|
|
20
|
+
"#{itm}::EnableCloseButton",
|
|
21
|
+
"#{itm}::EndModal",
|
|
22
|
+
"#{itm}::GetHelpTextAtPoint",
|
|
23
|
+
"#{itm}::GetMaxSize",
|
|
24
|
+
"#{itm}::GetMinSize",
|
|
25
|
+
"#{itm}::GetTitle",
|
|
26
|
+
"#{itm}::Iconize",
|
|
27
|
+
"#{itm}::IsActive",
|
|
28
|
+
"#{itm}::IsFullScreen",
|
|
29
|
+
"#{itm}::IsMaximzed",
|
|
30
|
+
"#{itm}::IsAlwaysMaximzed",
|
|
31
|
+
"#{itm}::IsModal",
|
|
32
|
+
#"#{itm}::IsTopLevel",
|
|
33
|
+
"#{itm}::IsVisible",
|
|
34
|
+
"#{itm}::Maximize",
|
|
35
|
+
"#{itm}::Navigate",
|
|
36
|
+
"#{itm}::Refresh",
|
|
37
|
+
"#{itm}::Reparent",
|
|
38
|
+
"#{itm}::RequestUserAttention",
|
|
39
|
+
"#{itm}::Restore",
|
|
40
|
+
"#{itm}::SetIcon",
|
|
41
|
+
"#{itm}::SetIcons",
|
|
42
|
+
#"#{itm}::SetMaxSize",
|
|
43
|
+
#"#{itm}::SetMinSize",
|
|
44
|
+
"#{itm}::SetShape",
|
|
45
|
+
"#{itm}::SetSize",
|
|
46
|
+
"#{itm}::SetSize",
|
|
47
|
+
#"#{itm}::SetSizeHints",
|
|
48
|
+
#"#{itm}::SetSizeHints",
|
|
49
|
+
"#{itm}::SetTitle",
|
|
50
|
+
#"#{itm}::SetTransparent",
|
|
51
|
+
#"#{itm}::Show",
|
|
52
|
+
"#{itm}::ShowFullScreen",
|
|
53
|
+
"#{itm}::ShowModal",
|
|
54
|
+
"#{itm}::Update",
|
|
55
|
+
"#{itm}::UpdateWindow",
|
|
56
|
+
"#{itm}::Validate")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
if spec.module_name == 'wxTopLevelWindow'
|
|
60
|
+
# add these to the generated interface to be parsed by SWIG
|
|
61
|
+
# the wxWidgets docs are flawed in this respect that several reimplemented
|
|
62
|
+
# virtual methods are not documented at the reimplementing class as such
|
|
63
|
+
# that would cause them missing from the interface which would cause a problem
|
|
64
|
+
# for a SWIG director redirecting to the Ruby class as the SWIG wrappers
|
|
65
|
+
# redirect explicitly to the implementation at the same class level as the wrapper
|
|
66
|
+
# for upcalls
|
|
67
|
+
spec.extend_interface('wxTopLevelWindow',
|
|
68
|
+
'virtual bool Destroy() override',
|
|
69
|
+
#'virtual bool IsTopLevel() override',
|
|
70
|
+
'virtual void SetLayoutDirection(wxLayoutDirection dir) override',
|
|
71
|
+
'virtual bool Show(bool show = true) override',
|
|
72
|
+
'virtual void Raise() override',
|
|
73
|
+
'virtual void Refresh(bool eraseBackground = true, wxRect const *rect = NULL) override')
|
|
74
|
+
spec.add_wrapper_code <<~__HEREDOC
|
|
75
|
+
extern VALUE wxRuby_GetTopLevelWindowClass() {
|
|
76
|
+
return SwigClassWxTopLevelWindow.klass;
|
|
77
|
+
}
|
|
78
|
+
__HEREDOC
|
|
79
|
+
spec.ignore %w{
|
|
80
|
+
wxTopLevelWindow::SaveGeometry
|
|
81
|
+
wxTopLevelWindow::RestoreToGeometry
|
|
82
|
+
wxTopLevelWindow::GeometrySerializer
|
|
83
|
+
}
|
|
84
|
+
spec.set_only_for '__WXUNIVERSAL__', %w{
|
|
85
|
+
wxTopLevelWindow::IsUsingNativeDecorations
|
|
86
|
+
wxTopLevelWindow::UseNativeDecorations
|
|
87
|
+
wxTopLevelWindow::UseNativeDecorationsByDefault
|
|
88
|
+
}
|
|
89
|
+
spec.set_only_for '__WXMSW__',
|
|
90
|
+
'wxTopLevelWindow::MSWGetSystemMenu'
|
|
91
|
+
spec.set_only_for '__WXOSX__',
|
|
92
|
+
'wxTopLevelWindow::OSXSetModified',
|
|
93
|
+
'wxTopLevelWindow::OSXIsModified'
|
|
94
|
+
spec.swig_import 'swig/classes/include/wxDefs.h'
|
|
95
|
+
# incorrectly documented here
|
|
96
|
+
spec.override_events 'wxTopLevelWindow',
|
|
97
|
+
{ 'EVT_FULLSCREEN' => ['EVT_FULLSCREEN', 0, 'wxFullScreenEvent'],
|
|
98
|
+
'EVT_MAXIMIZE' => ['EVT_MAXIMIZE', 0, 'wxMaximizeEvent'] }
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end # class Frame
|
|
102
|
+
|
|
103
|
+
end # class Director
|
|
104
|
+
|
|
105
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
###
|
|
2
|
+
# wxRuby3 wxWidgets interface director
|
|
3
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
|
+
###
|
|
5
|
+
|
|
6
|
+
require_relative './window'
|
|
7
|
+
|
|
8
|
+
module WXRuby3
|
|
9
|
+
|
|
10
|
+
class Director
|
|
11
|
+
|
|
12
|
+
class TreeCtrl < Window
|
|
13
|
+
|
|
14
|
+
include Typemap::TreeItemId
|
|
15
|
+
|
|
16
|
+
def setup
|
|
17
|
+
spec.post_processors << :fixtreectrl
|
|
18
|
+
spec.items.replace %w[wxTreeCtrl treebase.h]
|
|
19
|
+
spec.override_inheritance_chain('wxTreeCtrl', %w[wxControl wxWindow wxEvtHandler wxObject])
|
|
20
|
+
# mixin WithImages
|
|
21
|
+
spec.include_mixin 'wxTreeCtrl', 'Wx::WithImages'
|
|
22
|
+
spec.ignore('operator!=', 'operator==')
|
|
23
|
+
spec.include 'wx/dirctrl.h'
|
|
24
|
+
# These only differ from SetXXXList in the way memory ownership is
|
|
25
|
+
# transferred. So only support the version that won't leak on wxRuby.
|
|
26
|
+
spec.ignore %w[
|
|
27
|
+
wxTreeCtrl::AssignButtonsImageList
|
|
28
|
+
wxTreeCtrl::AssignStateImageList
|
|
29
|
+
wxTreeCtrl::GetFirstChild
|
|
30
|
+
wxTreeCtrl::GetNextChild
|
|
31
|
+
]
|
|
32
|
+
# these are potentially involved in GC mark phase so
|
|
33
|
+
# we can't have them redirecting to Ruby calls
|
|
34
|
+
spec.no_proxy %w[
|
|
35
|
+
wxTreeCtrl::GetRootItem
|
|
36
|
+
wxTreeCtrl::ItemHasChildren
|
|
37
|
+
wxTreeCtrl::GetFirstVisibleItem
|
|
38
|
+
wxTreeCtrl::GetItemParent
|
|
39
|
+
wxTreeCtrl::GetPrevSibling
|
|
40
|
+
wxTreeCtrl::GetNextSibling
|
|
41
|
+
wxTreeCtrl::GetItemData
|
|
42
|
+
wxTreeCtrl::IsVisible
|
|
43
|
+
wxTreeCtrl::GetBoundingRect
|
|
44
|
+
]
|
|
45
|
+
# as the above can't be proxied it doesn not really make
|
|
46
|
+
# sense to allow these
|
|
47
|
+
spec.no_proxy %w[
|
|
48
|
+
wxTreeCtrl::SetItemData
|
|
49
|
+
wxTreeCtrl::GetNextVisible
|
|
50
|
+
wxTreeCtrl::GetPrevVisible
|
|
51
|
+
wxTreeCtrl::GetLastChild
|
|
52
|
+
wxTreeCtrl::SetItemHasChildren
|
|
53
|
+
wxTreeCtrl::AddRoot
|
|
54
|
+
wxTreeCtrl::GetFocusedItem
|
|
55
|
+
wxTreeCtrl::GetSelection
|
|
56
|
+
]
|
|
57
|
+
if Config.instance.features_set?('wxHAS_LAST_VISIBLE')
|
|
58
|
+
spec.no_proxy 'wxTreeCtrl::GetLastVisible'
|
|
59
|
+
end
|
|
60
|
+
# simply a nuisance to support
|
|
61
|
+
spec.no_proxy %w[
|
|
62
|
+
wxTreeCtrl::GetEditControl
|
|
63
|
+
wxTreeCtrl::EndEditLabel
|
|
64
|
+
]
|
|
65
|
+
# for now, ignore this version as the added customization features
|
|
66
|
+
# do not work as yet and may cause us more trouble than it's worth
|
|
67
|
+
spec.ignore 'wxTreeCtrl::EditLabel'
|
|
68
|
+
# add simplified non-virtual version
|
|
69
|
+
spec.add_extend_code 'wxTreeCtrl', <<~__HEREDOC
|
|
70
|
+
void EditLabel(const wxTreeItemId &item)
|
|
71
|
+
{
|
|
72
|
+
// route to original method
|
|
73
|
+
(void)self->EditLabel(item);
|
|
74
|
+
}
|
|
75
|
+
__HEREDOC
|
|
76
|
+
if [:wxMSW, :wxQT].include?(Config.instance.wx_port)
|
|
77
|
+
spec.ignore('wxTreeCtrl::SetButtonsImageList')
|
|
78
|
+
spec.ignore('wxTreeCtrl::GetButtonsImageList')
|
|
79
|
+
end
|
|
80
|
+
# these reimplemented window base methods need to be properly wrapped but
|
|
81
|
+
# are missing from the XML docs
|
|
82
|
+
spec.extend_interface('wxTreeCtrl',
|
|
83
|
+
'virtual bool SetBackgroundColour(const wxColour& colour)',
|
|
84
|
+
'virtual bool SetForegroundColour(const wxColour& colour)',
|
|
85
|
+
'virtual void Refresh(bool eraseBackground = true, const wxRect *rect = NULL)',
|
|
86
|
+
'virtual bool SetFont( const wxFont &font )',
|
|
87
|
+
'virtual void SetWindowStyleFlag(long styles)',
|
|
88
|
+
'virtual void OnInternalIdle()')
|
|
89
|
+
# see below
|
|
90
|
+
spec.ignore 'wxTreeCtrl::InsertItem(const wxTreeItemId &,size_t,const wxString &,int,int,wxTreeItemData *)'
|
|
91
|
+
# Dealt with below
|
|
92
|
+
spec.ignore 'wxTreeCtrl::GetSelections'
|
|
93
|
+
# Typemap to return the flags in hit_test
|
|
94
|
+
spec.map_apply 'int *OUTPUT' => 'int& flags'
|
|
95
|
+
|
|
96
|
+
# ITEM DATA fixes - This is done so the API user never sees a
|
|
97
|
+
# TreeItemData object - where in Wx C++ such an object
|
|
98
|
+
# would be passed or returned by a method, any Ruby object may be used.
|
|
99
|
+
spec.add_header_code <<~__HEREDOC
|
|
100
|
+
class wxRbTreeItemData : public wxTreeItemData {
|
|
101
|
+
public:
|
|
102
|
+
wxRbTreeItemData(VALUE obj = Qnil) { m_obj = obj; }
|
|
103
|
+
VALUE GetRubyObject() { return m_obj; }
|
|
104
|
+
void SetRubyObject(VALUE obj) { m_obj = obj; }
|
|
105
|
+
protected:
|
|
106
|
+
VALUE m_obj;
|
|
107
|
+
};
|
|
108
|
+
__HEREDOC
|
|
109
|
+
# typemaps for setting and getting ruby objects as itemdata.
|
|
110
|
+
spec.map 'wxTreeItemData*' => 'Object' do
|
|
111
|
+
map_in code: '$1 = new wxRbTreeItemData($input);'
|
|
112
|
+
map_directorin code: <<~__CODE
|
|
113
|
+
wxRbTreeItemData* ruby_item_data = (wxRbTreeItemData *)$1;
|
|
114
|
+
$input = ruby_item_data->GetRubyObject();
|
|
115
|
+
__CODE
|
|
116
|
+
map_out code: <<~__CODE
|
|
117
|
+
if ( $1 == NULL )
|
|
118
|
+
{
|
|
119
|
+
$result = Qnil;
|
|
120
|
+
}
|
|
121
|
+
else
|
|
122
|
+
{
|
|
123
|
+
wxRbTreeItemData* ruby_item_data = (wxRbTreeItemData *)$1;
|
|
124
|
+
$result = ruby_item_data->GetRubyObject();
|
|
125
|
+
}
|
|
126
|
+
__CODE
|
|
127
|
+
end
|
|
128
|
+
# End item data fixes
|
|
129
|
+
|
|
130
|
+
# GC handling for item data objects. These are static because it avoids
|
|
131
|
+
# having to wrap a complete subclass
|
|
132
|
+
spec.add_header_code <<~__HEREDOC
|
|
133
|
+
extern VALUE mWxTreeItemId;
|
|
134
|
+
extern VALUE _wxRuby_Wrap_wxTreeItemId(const wxTreeItemId& id);
|
|
135
|
+
extern wxTreeItemId _wxRuby_Unwrap_wxTreeItemId(VALUE id);
|
|
136
|
+
|
|
137
|
+
// general recursion over a treectrl, starting from a base_id
|
|
138
|
+
// the function rec_func will be called in turn for each tree item,
|
|
139
|
+
// rec_func should be a funtion that receives a treectrl pointer and an ItemId
|
|
140
|
+
static void RecurseOverTreeIds(wxTreeCtrl *tree_ctrl, const wxTreeItemId& base_id, void(*rec_func)(void *, const wxTreeItemId&) )
|
|
141
|
+
{
|
|
142
|
+
if (!base_id.IsOk())
|
|
143
|
+
return;
|
|
144
|
+
rec_func(tree_ctrl, base_id);
|
|
145
|
+
// recurse through children
|
|
146
|
+
if (tree_ctrl->ItemHasChildren(base_id))
|
|
147
|
+
{
|
|
148
|
+
wxTreeItemIdValue cookie;
|
|
149
|
+
wxTreeItemId child = tree_ctrl->GetFirstChild(base_id, cookie);
|
|
150
|
+
while (child.IsOk())
|
|
151
|
+
{
|
|
152
|
+
RecurseOverTreeIds(tree_ctrl, child, *rec_func);
|
|
153
|
+
child = tree_ctrl->GetNextChild(base_id, cookie);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Only really useful for HIDDEN_ROOT style; manually detect the first
|
|
159
|
+
// root-like item.
|
|
160
|
+
static wxTreeItemId FindFirstRoot(wxTreeCtrl *tree_ctrl) {
|
|
161
|
+
wxTreeItemId base_id = tree_ctrl->GetFirstVisibleItem();
|
|
162
|
+
if (base_id.IsOk())
|
|
163
|
+
{
|
|
164
|
+
wxTreeItemId prev_id = tree_ctrl->GetItemParent(base_id);
|
|
165
|
+
wxTreeItemId root_id = tree_ctrl->GetRootItem();
|
|
166
|
+
while ( prev_id.IsOk() && prev_id != root_id )
|
|
167
|
+
{
|
|
168
|
+
base_id = prev_id;
|
|
169
|
+
prev_id = tree_ctrl->GetItemParent(base_id);
|
|
170
|
+
}
|
|
171
|
+
prev_id = tree_ctrl->GetPrevSibling(base_id);
|
|
172
|
+
while ( prev_id.IsOk() )
|
|
173
|
+
{
|
|
174
|
+
base_id = prev_id;
|
|
175
|
+
prev_id = tree_ctrl->GetPrevSibling(base_id);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return base_id;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Safe version of recursion from base across all contained items that
|
|
182
|
+
// works whether or not the TreeCtrl has the TR_HIDE_ROOT
|
|
183
|
+
// style. Required to ensure that marking of item data is done
|
|
184
|
+
// correctly for hidden-root treectrls.
|
|
185
|
+
static void RecurseFromRoot(wxTreeCtrl *tree_ctrl,
|
|
186
|
+
void(*rec_func)(void *, const wxTreeItemId&) )
|
|
187
|
+
{
|
|
188
|
+
// straightforward
|
|
189
|
+
if ((tree_ctrl->GetWindowStyle() & wxTR_HIDE_ROOT) != wxTR_HIDE_ROOT)
|
|
190
|
+
{
|
|
191
|
+
RecurseOverTreeIds(tree_ctrl, tree_ctrl->GetRootItem(), *rec_func);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
else // Find the top-left most item, then recurse over it and siblings
|
|
195
|
+
{
|
|
196
|
+
wxTreeItemId base_id = FindFirstRoot(tree_ctrl);
|
|
197
|
+
// now do recursion
|
|
198
|
+
RecurseOverTreeIds(tree_ctrl, base_id, *rec_func);
|
|
199
|
+
while ((base_id = tree_ctrl->GetNextSibling(base_id)).IsOk())
|
|
200
|
+
RecurseOverTreeIds(tree_ctrl, base_id, *rec_func);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Recursively-called function to implement of TreeCtrl#traverse
|
|
206
|
+
static void DoTreeCtrlYielding(void *ptr, const wxTreeItemId& item_id)
|
|
207
|
+
{
|
|
208
|
+
// wrap and give to ruby
|
|
209
|
+
rb_yield(_wxRuby_Wrap_wxTreeItemId(item_id));
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Recursively-called function to do GC marking of itemdata for every
|
|
213
|
+
// tree item
|
|
214
|
+
static void DoGCMarkItemData(void *ptr, const wxTreeItemId& item_id)
|
|
215
|
+
{
|
|
216
|
+
wxTreeCtrl* tree_ctrl = (wxTreeCtrl*) ptr;
|
|
217
|
+
// check if there's item data, and mark it
|
|
218
|
+
wxRbTreeItemData* ruby_item_data = (wxRbTreeItemData *)tree_ctrl->GetItemData(item_id);
|
|
219
|
+
if (ruby_item_data != NULL)
|
|
220
|
+
{
|
|
221
|
+
VALUE ruby_obj = ruby_item_data->GetRubyObject();
|
|
222
|
+
rb_gc_mark(ruby_obj);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// SWIG's entry point function for GC mark
|
|
227
|
+
static void GC_mark_wxTreeCtrl(void *ptr)
|
|
228
|
+
{
|
|
229
|
+
if ( GC_IsWindowDeleted(ptr) )
|
|
230
|
+
return;
|
|
231
|
+
|
|
232
|
+
// Do standard marking routines as for all wxWindows
|
|
233
|
+
GC_mark_wxWindow(ptr);
|
|
234
|
+
|
|
235
|
+
wxTreeCtrl* tree_ctrl = (wxTreeCtrl*) ptr;
|
|
236
|
+
|
|
237
|
+
wxImageList* img_list;
|
|
238
|
+
// First check if there's ImageLists and mark if found
|
|
239
|
+
img_list = tree_ctrl->GetImageList();
|
|
240
|
+
if ( img_list ) rb_gc_mark(SWIG_RubyInstanceFor(img_list));
|
|
241
|
+
#if !defined(__WXMSW__) && !defined(__WXQT__)
|
|
242
|
+
img_list = tree_ctrl->GetButtonsImageList();
|
|
243
|
+
if ( img_list ) rb_gc_mark(SWIG_RubyInstanceFor(img_list));
|
|
244
|
+
#endif
|
|
245
|
+
img_list = tree_ctrl->GetStateImageList();
|
|
246
|
+
if ( img_list ) rb_gc_mark(SWIG_RubyInstanceFor(img_list));
|
|
247
|
+
|
|
248
|
+
// Stop here if it's a TreeCtrl belonging to a GenericDirCtrl, as
|
|
249
|
+
// the item data aren't ruby objects
|
|
250
|
+
wxWindow* parent = tree_ctrl->GetParent();
|
|
251
|
+
if ( parent->IsKindOf( CLASSINFO(wxGenericDirCtrl) ) )
|
|
252
|
+
return;
|
|
253
|
+
|
|
254
|
+
// Otherwise proceed and GC mark the item data objects associated
|
|
255
|
+
// with the TreeCtrl
|
|
256
|
+
RecurseFromRoot(tree_ctrl, &DoGCMarkItemData);
|
|
257
|
+
}
|
|
258
|
+
__HEREDOC
|
|
259
|
+
spec.add_swig_code '%markfunc wxTreeCtrl "GC_mark_wxTreeCtrl";'
|
|
260
|
+
|
|
261
|
+
spec.add_extend_code 'wxTreeCtrl', <<~__HEREDOC
|
|
262
|
+
// The C++ interface uses a "cookie" to enable iteration over the
|
|
263
|
+
// children. This is not very rubyish.
|
|
264
|
+
// Change signature so it only accepts a root TreeItemId and returns
|
|
265
|
+
// an array of the child TreeItemId and the cookie, as Ruby Fixnums.
|
|
266
|
+
VALUE get_first_child(const wxTreeItemId& item)
|
|
267
|
+
{
|
|
268
|
+
void* cookie = 0;
|
|
269
|
+
wxTreeItemId ret_item = self->GetFirstChild(item, cookie);
|
|
270
|
+
VALUE array = rb_ary_new();
|
|
271
|
+
|
|
272
|
+
rb_ary_push(array, _wxRuby_Wrap_wxTreeItemId(ret_item));
|
|
273
|
+
rb_ary_push(array,LL2NUM((int64_t)cookie));
|
|
274
|
+
|
|
275
|
+
return array;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
// Change signature so it accepts a TreeItemId and Ruby cookie value
|
|
279
|
+
// and returns an array of the next child TreeItemId and the cookie
|
|
280
|
+
// as Ruby Fixnums.
|
|
281
|
+
VALUE get_next_child(const wxTreeItemId& item, long long rbcookie)
|
|
282
|
+
{
|
|
283
|
+
void* cookie = (void*)rbcookie;
|
|
284
|
+
wxTreeItemId ret_item = self->GetNextChild(item, cookie);
|
|
285
|
+
|
|
286
|
+
VALUE array = rb_ary_new();
|
|
287
|
+
|
|
288
|
+
rb_ary_push(array, _wxRuby_Wrap_wxTreeItemId(ret_item));
|
|
289
|
+
rb_ary_push(array,LL2NUM((long long)cookie));
|
|
290
|
+
|
|
291
|
+
return array;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// Return an array of root items; mainly useful for TR_HIDE_ROOT
|
|
295
|
+
// style where there are multiple root-like items, and GetItemRoot
|
|
296
|
+
// doesn't work properly
|
|
297
|
+
VALUE get_root_items()
|
|
298
|
+
{
|
|
299
|
+
VALUE rb_tree_ids = rb_ary_new();
|
|
300
|
+
if ( self->GetWindowStyle() & wxTR_HIDE_ROOT )
|
|
301
|
+
{
|
|
302
|
+
wxTreeItemId base_id = FindFirstRoot(self);
|
|
303
|
+
|
|
304
|
+
// now do recursion
|
|
305
|
+
while (base_id.IsOk())
|
|
306
|
+
{
|
|
307
|
+
rb_ary_push(rb_tree_ids, _wxRuby_Wrap_wxTreeItemId(base_id));
|
|
308
|
+
base_id = self->GetNextSibling(base_id);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// Standard single-root TreeCtrl
|
|
312
|
+
else
|
|
313
|
+
{
|
|
314
|
+
rb_ary_push(rb_tree_ids, _wxRuby_Wrap_wxTreeItemId(self->GetRootItem()));
|
|
315
|
+
}
|
|
316
|
+
return rb_tree_ids;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
// Just return a simple array in ruby
|
|
320
|
+
VALUE get_selections()
|
|
321
|
+
{
|
|
322
|
+
VALUE rb_tree_ids = rb_ary_new();
|
|
323
|
+
wxArrayTreeItemIds tree_ids = wxArrayTreeItemIds();
|
|
324
|
+
size_t sel_count = self->GetSelections(tree_ids);
|
|
325
|
+
for ( size_t i = 0; i < sel_count; i++ )
|
|
326
|
+
{
|
|
327
|
+
rb_ary_push(rb_tree_ids, _wxRuby_Wrap_wxTreeItemId(tree_ids.Item(i)));
|
|
328
|
+
}
|
|
329
|
+
return rb_tree_ids;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
// Changed this version of insert_item to insert_item_before so SWIG
|
|
333
|
+
// does not get confused between the 2 method signatures
|
|
334
|
+
// This behaviour matches that used by wxPython.
|
|
335
|
+
wxTreeItemId insert_item_before(const wxTreeItemId& parent,
|
|
336
|
+
size_t index,
|
|
337
|
+
const wxString& text,
|
|
338
|
+
int image = -1, int selectedImage = -1,
|
|
339
|
+
wxTreeItemData *data = NULL)
|
|
340
|
+
{
|
|
341
|
+
return self->InsertItem(parent,index,text,image,selectedImage,data);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// Loop over the items in the TreeCtrl, starting from the item
|
|
345
|
+
// identified by start_id, passing the id of each item into the
|
|
346
|
+
// passed ruby block. Starts from root and covers all if no arg.
|
|
347
|
+
VALUE traverse( VALUE start_id = Qnil )
|
|
348
|
+
{
|
|
349
|
+
if ( start_id == Qnil )
|
|
350
|
+
RecurseFromRoot(self, &DoTreeCtrlYielding);
|
|
351
|
+
else
|
|
352
|
+
{
|
|
353
|
+
wxTreeItemId base_id = _wxRuby_Unwrap_wxTreeItemId(start_id);
|
|
354
|
+
if (!base_id.IsOk())
|
|
355
|
+
rb_raise(rb_eArgError, "Invalid tree identifier");
|
|
356
|
+
else
|
|
357
|
+
RecurseOverTreeIds(self, base_id, &DoTreeCtrlYielding);
|
|
358
|
+
}
|
|
359
|
+
return Qnil;
|
|
360
|
+
}
|
|
361
|
+
__HEREDOC
|
|
362
|
+
super
|
|
363
|
+
end
|
|
364
|
+
end # class TreeCtrl
|
|
365
|
+
|
|
366
|
+
end # class Director
|
|
367
|
+
|
|
368
|
+
module SwigRunner
|
|
369
|
+
class Processor
|
|
370
|
+
|
|
371
|
+
# special post-processor for TreeCtrl
|
|
372
|
+
class Fixtreectrl < Processor
|
|
373
|
+
|
|
374
|
+
def run
|
|
375
|
+
director_found = false
|
|
376
|
+
update_source do |line|
|
|
377
|
+
# Ugly: special fixes for TreeCtrl - these macros and extra funcs
|
|
378
|
+
# are needed to allow user-defined sorting to work
|
|
379
|
+
# default ctor needed for Swig::Director
|
|
380
|
+
if line["Director(VALUE self) : swig_self(self), swig_disown_flag(false)"]
|
|
381
|
+
line = " Director() { } // added by fixmodule.rb \n" + line
|
|
382
|
+
end
|
|
383
|
+
if line["SwigDirector_wxTreeCtrl::SwigDirector_wxTreeCtrl(VALUE self)"]
|
|
384
|
+
line = "IMPLEMENT_DYNAMIC_CLASS(SwigDirector_wxTreeCtrl, wxTreeCtrl);\n" + line
|
|
385
|
+
director_found = true
|
|
386
|
+
end
|
|
387
|
+
|
|
388
|
+
line
|
|
389
|
+
end
|
|
390
|
+
if director_found
|
|
391
|
+
# We also need to tweak the header file
|
|
392
|
+
update_header do |line|
|
|
393
|
+
if line.strip == 'public:'
|
|
394
|
+
line << "\nSwigDirector_wxTreeCtrl() {};"
|
|
395
|
+
elsif /\A};/ =~ line
|
|
396
|
+
line = <<~__HEREDOC
|
|
397
|
+
private:
|
|
398
|
+
DECLARE_DYNAMIC_CLASS(SwigDirector_wxTreeCtrl);
|
|
399
|
+
};
|
|
400
|
+
__HEREDOC
|
|
401
|
+
end
|
|
402
|
+
line
|
|
403
|
+
end
|
|
404
|
+
end
|
|
405
|
+
end
|
|
406
|
+
end # class Fixtreectrl
|
|
407
|
+
|
|
408
|
+
end
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
###
|
|
2
|
+
# wxRuby3 wxWidgets interface director
|
|
3
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
|
+
###
|
|
5
|
+
|
|
6
|
+
require_relative './event'
|
|
7
|
+
|
|
8
|
+
module WXRuby3
|
|
9
|
+
|
|
10
|
+
class Director
|
|
11
|
+
|
|
12
|
+
class TreeEvent < Event
|
|
13
|
+
|
|
14
|
+
include Typemap::TreeItemId
|
|
15
|
+
|
|
16
|
+
def setup
|
|
17
|
+
super
|
|
18
|
+
# create a lightweight, but typesafe, wrapper for wxEventId
|
|
19
|
+
spec.add_init_code <<~__HEREDOC
|
|
20
|
+
// define TreeItemId wrapper class
|
|
21
|
+
mWxTreeItemId = rb_define_class_under(mWxCore, "TreeItemId", rb_cObject);
|
|
22
|
+
rb_undef_alloc_func(mWxTreeItemId);
|
|
23
|
+
rb_define_method(mWxTreeItemId, "is_ok", VALUEFUNC(_wxRuby_wxTreeItemId_IsOk), 0);
|
|
24
|
+
rb_define_method(mWxTreeItemId, "ok?", VALUEFUNC(_wxRuby_wxTreeItemId_IsOk), 0);
|
|
25
|
+
__HEREDOC
|
|
26
|
+
|
|
27
|
+
spec.add_header_code <<~__HEREDOC
|
|
28
|
+
VALUE mWxTreeItemId;
|
|
29
|
+
VALUE _wxRuby_Wrap_wxTreeItemId(const wxTreeItemId& id);
|
|
30
|
+
wxTreeItemId _wxRuby_Unwrap_wxTreeItemId(VALUE id);
|
|
31
|
+
__HEREDOC
|
|
32
|
+
|
|
33
|
+
spec.add_wrapper_code <<~__HEREDOC
|
|
34
|
+
// wxTreeItemId wrapper class definition and helper functions
|
|
35
|
+
static size_t __wxTreeEventId_size(const void* data)
|
|
36
|
+
{
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
#include <ruby/version.h>
|
|
41
|
+
|
|
42
|
+
static const rb_data_type_t __wxTreeEventId_type = {
|
|
43
|
+
"TreeEventId",
|
|
44
|
+
#if RUBY_API_VERSION_MAJOR >= 3
|
|
45
|
+
{ NULL, NULL, __wxTreeEventId_size, 0, 0},
|
|
46
|
+
#else
|
|
47
|
+
{ NULL, NULL, __wxTreeEventId_size, 0},
|
|
48
|
+
#endif
|
|
49
|
+
NULL, NULL, RUBY_TYPED_FREE_IMMEDIATELY
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
VALUE _wxRuby_Wrap_wxTreeItemId(const wxTreeItemId& id)
|
|
53
|
+
{
|
|
54
|
+
void* data = id.GetID();
|
|
55
|
+
VALUE ret = TypedData_Wrap_Struct(mWxTreeItemId, &__wxTreeEventId_type, data);
|
|
56
|
+
return ret;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
wxTreeItemId _wxRuby_Unwrap_wxTreeItemId(VALUE id)
|
|
60
|
+
{
|
|
61
|
+
void *data = 0;
|
|
62
|
+
TypedData_Get_Struct(id, void, &__wxTreeEventId_type, data);
|
|
63
|
+
return wxTreeItemId(data);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
VALUE _wxRuby_wxTreeItemId_IsOk(VALUE self)
|
|
67
|
+
{
|
|
68
|
+
void *data = 0;
|
|
69
|
+
TypedData_Get_Struct(self, void, &__wxTreeEventId_type, data);
|
|
70
|
+
return wxTreeItemId(data).IsOk() ? Qtrue : Qfalse;
|
|
71
|
+
}
|
|
72
|
+
__HEREDOC
|
|
73
|
+
end
|
|
74
|
+
end # class TreeEvent
|
|
75
|
+
|
|
76
|
+
end # class Director
|
|
77
|
+
|
|
78
|
+
end # module WXRuby3
|