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,390 @@
|
|
|
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 GridCtrl < Window
|
|
13
|
+
|
|
14
|
+
include Typemap::GridCoords
|
|
15
|
+
|
|
16
|
+
def setup
|
|
17
|
+
# replace before calling super
|
|
18
|
+
spec.items.replace %w[wxGrid]
|
|
19
|
+
super
|
|
20
|
+
spec.gc_as_window
|
|
21
|
+
spec.override_inheritance_chain('wxGrid', %w[wxScrolledCanvas wxWindow wxEvtHandler wxObject])
|
|
22
|
+
spec.no_proxy 'wxGrid::SendAutoScrollEvents'
|
|
23
|
+
# All of the methods have alternate versions that accept row, col pair
|
|
24
|
+
# of integers, so these are redundant
|
|
25
|
+
spec.ignore 'wxGrid::CellToRect(const wxGridCellCoords &)'
|
|
26
|
+
spec.ignore 'wxGrid::GetCellValue(const wxGridCellCoords &)'
|
|
27
|
+
spec.ignore 'wxGrid::GetDefaultEditorForCell(const wxGridCellCoords &) const'
|
|
28
|
+
spec.ignore 'wxGrid::IsInSelection(const wxGridCellCoords &) const'
|
|
29
|
+
spec.ignore 'wxGrid::IsVisible(const wxGridCellCoords &,bool)'
|
|
30
|
+
spec.ignore 'wxGrid::MakeCellVisible(const wxGridCellCoords &)'
|
|
31
|
+
spec.ignore 'wxGrid::SelectBlock(const wxGridCellCoords &,const wxGridCellCoords &,bool)'
|
|
32
|
+
spec.ignore 'wxGrid::SetCellValue(const wxGridCellCoords &,const wxString &)'
|
|
33
|
+
# these have overloads that have more useful returns
|
|
34
|
+
spec.ignore 'wxGrid::CalcGridWindowUnscrolledPosition(int,int,int *,int *,const wxGridWindow *) const',
|
|
35
|
+
'wxGrid::CalcGridWindowScrolledPosition(int,int,int *,int *,const wxGridWindow *) const'
|
|
36
|
+
# deprecated
|
|
37
|
+
spec.ignore 'wxGrid::SetCellAlignment(int,int,int)'
|
|
38
|
+
spec.ignore 'wxGrid::SetCellTextColour(const wxColour &)'
|
|
39
|
+
spec.ignore 'wxGrid::SetCellTextColour(const wxColour &,int,int)'
|
|
40
|
+
spec.ignore 'wxGrid::SetCellValue(const wxString &,int,int)'
|
|
41
|
+
spec.ignore 'wxGrid::SetTable' # there is wxGrid::AssignTable now that always takes ownership
|
|
42
|
+
|
|
43
|
+
spec.ignore 'wxGrid::GetSelectedBlocks' # for now (flawed interface)
|
|
44
|
+
|
|
45
|
+
spec.add_header_code <<~__HEREDOC
|
|
46
|
+
typedef wxGrid::wxGridSelectionModes wxGridSelectionModes;
|
|
47
|
+
typedef wxGrid::CellSpan CellSpan;
|
|
48
|
+
typedef wxGrid::TabBehaviour TabBehaviour;
|
|
49
|
+
__HEREDOC
|
|
50
|
+
# Needed for methods that return cell and label alignments and other argout type mappings
|
|
51
|
+
spec.map_apply 'int *OUTPUT' => [ 'int *horiz', 'int *vert' ,
|
|
52
|
+
'int *num_rows', 'int *num_cols' ]
|
|
53
|
+
# If invalid grid-cell co-ordinates are passed into wxWidgets,
|
|
54
|
+
# segfaults may result, so check to avoid this.
|
|
55
|
+
spec.map 'int row', 'int col' do
|
|
56
|
+
map_check code: <<~__CODE
|
|
57
|
+
if ( $1 < 0 )
|
|
58
|
+
rb_raise(rb_eIndexError, "Negative grid cell co-ordinate is not valid");
|
|
59
|
+
__CODE
|
|
60
|
+
end
|
|
61
|
+
spec.add_swig_code <<~__HEREDOC
|
|
62
|
+
enum wxGridSelectionModes;
|
|
63
|
+
enum CellSpan;
|
|
64
|
+
enum TabBehaviour;
|
|
65
|
+
__HEREDOC
|
|
66
|
+
spec.ignore 'wxGrid::GetOrCreateCellAttrPtr' # ignore this variant
|
|
67
|
+
# wxWidgets takes over managing the ref count
|
|
68
|
+
spec.disown('wxGridTableBase* table')
|
|
69
|
+
# customize mark function to handle safeguarding any customized Grid tables installed
|
|
70
|
+
spec.add_header_code <<~__HEREDOC
|
|
71
|
+
static void GC_mark_wxGridCtrl(void* ptr)
|
|
72
|
+
{
|
|
73
|
+
#ifdef __WXRB_DEBUG__
|
|
74
|
+
if (wxRuby_TraceLevel()>1)
|
|
75
|
+
std::wcout << "> GC_mark_wxGridCtrl : " << ptr << std::endl;
|
|
76
|
+
#endif
|
|
77
|
+
if ( GC_IsWindowDeleted(ptr) )
|
|
78
|
+
{
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
// Do standard marking routines as for all wxWindows
|
|
82
|
+
GC_mark_wxWindow(ptr);
|
|
83
|
+
|
|
84
|
+
// check grid table base marking need
|
|
85
|
+
wxGrid* wx_gc = (wxGrid*) ptr;
|
|
86
|
+
wxGridTableBase* wx_gtbl = wx_gc->GetTable();
|
|
87
|
+
VALUE rb_gtbl = SWIG_RubyInstanceFor(wx_gtbl);
|
|
88
|
+
if (!NIL_P(rb_gtbl))
|
|
89
|
+
{
|
|
90
|
+
rb_gc_mark(rb_gtbl);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
__HEREDOC
|
|
94
|
+
spec.add_swig_code '%markfunc wxGrid "GC_mark_wxGridCtrl";'
|
|
95
|
+
# these require wxRuby to take ownership (ref counted)
|
|
96
|
+
spec.new_object('wxGrid::GetOrCreateCellAttr',
|
|
97
|
+
'wxGrid::GetCellEditor',
|
|
98
|
+
'wxGrid::GetDefaultEditor',
|
|
99
|
+
'wxGrid::GetDefaultEditorForCell',
|
|
100
|
+
'wxGrid::GetDefaultEditorForType',
|
|
101
|
+
'wxGrid::GetCellRenderer',
|
|
102
|
+
'wxGrid::GetDefaultRenderer',
|
|
103
|
+
'wxGrid::GetDefaultRendererForCell',
|
|
104
|
+
'wxGrid::GetDefaultRendererForType')
|
|
105
|
+
# handled; can be suppressed
|
|
106
|
+
spec.suppress_warning(473,
|
|
107
|
+
'wxGrid::GetDefaultEditorForCell',
|
|
108
|
+
'wxGrid::GetDefaultEditorForType',
|
|
109
|
+
'wxGrid::GetDefaultRendererForCell',
|
|
110
|
+
'wxGrid::GetDefaultRendererForType')
|
|
111
|
+
# Add custom code to handle GC marking for Grid cell attributes, editors and renderers.
|
|
112
|
+
# Ruby created instances of these are registered in global tables whenever they are assigned to
|
|
113
|
+
# a Grid (for a cell, default or named type). The global tables will be scanned during the GC marking stage
|
|
114
|
+
# and any registered instances marked.
|
|
115
|
+
# We define specialized wxClientData derivatives for the three types of classes we need to
|
|
116
|
+
# manage GC for which are associated with an attribute/editor/renderer instance through SetClientObject()
|
|
117
|
+
# at the moment of registration (which is actually performed on creation of the client data object).
|
|
118
|
+
# Whenever an attribute/editor/renderer is deleted (bc it's ref count reached zero) it will also delete
|
|
119
|
+
# the associated client data object which will at that moment deregister the associated attribute/editor
|
|
120
|
+
# or renderer instance from the global table thus freeing it for GC collection.
|
|
121
|
+
spec.add_header_code <<~__HEREDOC
|
|
122
|
+
#include <wx/clntdata.h>
|
|
123
|
+
|
|
124
|
+
// declare the global table for grid cell attributes
|
|
125
|
+
WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
|
|
126
|
+
WXRBGridCellAttrValueHash);
|
|
127
|
+
static WXRBGridCellAttrValueHash Grid_Cell_Attr_Value_Map;
|
|
128
|
+
|
|
129
|
+
static void wxRuby_UnregisterGridCellAttr(wxGridCellAttr* wx_attr)
|
|
130
|
+
{
|
|
131
|
+
#ifdef __WXRB_DEBUG__
|
|
132
|
+
if (wxRuby_TraceLevel()>1)
|
|
133
|
+
std::wcout << "** wxRuby_UnregisterGridCellAttr : " << wx_attr << ":" << (void*)Grid_Cell_Attr_Value_Map[wx_attr] << std::endl;
|
|
134
|
+
#endif
|
|
135
|
+
if (Grid_Cell_Attr_Value_Map.count(wx_attr) != 0)
|
|
136
|
+
{
|
|
137
|
+
VALUE object = Grid_Cell_Attr_Value_Map[wx_attr];
|
|
138
|
+
if (object && !NIL_P(object))
|
|
139
|
+
{
|
|
140
|
+
DATA_PTR(object) = 0; // unlink
|
|
141
|
+
}
|
|
142
|
+
Grid_Cell_Attr_Value_Map.erase(wx_attr);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
extern VALUE wxRuby_GridCellAttrInstance(wxGridCellAttr* wx_attr)
|
|
147
|
+
{
|
|
148
|
+
if (Grid_Cell_Attr_Value_Map.count(wx_attr) == 0)
|
|
149
|
+
return Qnil;
|
|
150
|
+
else
|
|
151
|
+
return Grid_Cell_Attr_Value_Map[wx_attr];
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// specialized client data class
|
|
155
|
+
class WXRBGridCellAttrMonitor : public wxClientData
|
|
156
|
+
{
|
|
157
|
+
public:
|
|
158
|
+
WXRBGridCellAttrMonitor() : wx_attr(0), rb_attr(Qnil) {}
|
|
159
|
+
WXRBGridCellAttrMonitor(wxGridCellAttr* a, VALUE v) : wx_attr(a), rb_attr(v)
|
|
160
|
+
{ Grid_Cell_Attr_Value_Map[wx_attr] = rb_attr; }
|
|
161
|
+
virtual ~WXRBGridCellAttrMonitor()
|
|
162
|
+
{ wxRuby_UnregisterGridCellAttr(wx_attr); }
|
|
163
|
+
private:
|
|
164
|
+
wxGridCellAttr* wx_attr;
|
|
165
|
+
VALUE rb_attr;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// and it's associated registration/de-registration functions
|
|
169
|
+
extern void wxRuby_RegisterGridCellAttr(wxGridCellAttr* wx_attr, VALUE rb_attr)
|
|
170
|
+
{
|
|
171
|
+
if (wx_attr && !NIL_P(rb_attr))
|
|
172
|
+
{
|
|
173
|
+
// always (keep) disown(ed); wxWidgets takes over ownership
|
|
174
|
+
RDATA(rb_attr)->dfree = 0;
|
|
175
|
+
if (Grid_Cell_Attr_Value_Map.count(wx_attr) == 0)
|
|
176
|
+
{
|
|
177
|
+
#ifdef __WXRB_DEBUG__
|
|
178
|
+
if (wxRuby_TraceLevel()>1)
|
|
179
|
+
std::wcout << "** wxRuby_RegisterGridCellAttr : " << wx_attr << ":" << (void*)rb_attr << std::endl;
|
|
180
|
+
#endif
|
|
181
|
+
wx_attr->SetClientObject(new WXRBGridCellAttrMonitor(wx_attr, rb_attr));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// define the grid cell attribute marker
|
|
187
|
+
static void wxRuby_markGridCellAttr()
|
|
188
|
+
{
|
|
189
|
+
WXRBGridCellAttrValueHash::iterator it;
|
|
190
|
+
for( it = Grid_Cell_Attr_Value_Map.begin(); it != Grid_Cell_Attr_Value_Map.end(); ++it )
|
|
191
|
+
{
|
|
192
|
+
VALUE obj = it->second;
|
|
193
|
+
rb_gc_mark(obj);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// declare the global table for grid cell editors
|
|
198
|
+
WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
|
|
199
|
+
WXRBGridCellEditorValueHash);
|
|
200
|
+
static WXRBGridCellEditorValueHash Grid_Cell_Editor_Value_Map;
|
|
201
|
+
|
|
202
|
+
static void wxRuby_UnregisterGridCellEditor(wxGridCellEditor* wx_edt)
|
|
203
|
+
{
|
|
204
|
+
#ifdef __WXRB_DEBUG__
|
|
205
|
+
if (wxRuby_TraceLevel()>1)
|
|
206
|
+
std::wcout << "** wxRuby_UnregisterGridCellEditor : " << wx_edt << ":" << (void*)Grid_Cell_Editor_Value_Map[wx_edt] << std::endl;
|
|
207
|
+
#endif
|
|
208
|
+
if (Grid_Cell_Editor_Value_Map.count(wx_edt) != 0)
|
|
209
|
+
{
|
|
210
|
+
VALUE object = Grid_Cell_Editor_Value_Map[wx_edt];
|
|
211
|
+
if (object && !NIL_P(object))
|
|
212
|
+
{
|
|
213
|
+
DATA_PTR(object) = 0; // unlink
|
|
214
|
+
}
|
|
215
|
+
Grid_Cell_Editor_Value_Map.erase(wx_edt);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
extern VALUE wxRuby_GridCellEditorInstance(wxGridCellEditor* wx_edt)
|
|
220
|
+
{
|
|
221
|
+
if (Grid_Cell_Editor_Value_Map.count(wx_edt) == 0)
|
|
222
|
+
return Qnil;
|
|
223
|
+
else
|
|
224
|
+
return Grid_Cell_Editor_Value_Map[wx_edt];
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// specialized client data class
|
|
228
|
+
class WXRBGridCellEditorMonitor : public wxClientData
|
|
229
|
+
{
|
|
230
|
+
public:
|
|
231
|
+
WXRBGridCellEditorMonitor() : wx_edt(0), rb_edt(Qnil) {}
|
|
232
|
+
WXRBGridCellEditorMonitor(wxGridCellEditor* a, VALUE v) : wx_edt(a), rb_edt(v)
|
|
233
|
+
{ Grid_Cell_Editor_Value_Map[wx_edt] = rb_edt; }
|
|
234
|
+
virtual ~WXRBGridCellEditorMonitor()
|
|
235
|
+
{ wxRuby_UnregisterGridCellEditor(wx_edt); }
|
|
236
|
+
private:
|
|
237
|
+
wxGridCellEditor* wx_edt;
|
|
238
|
+
VALUE rb_edt;
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
// and it's associated registration function
|
|
242
|
+
extern void wxRuby_RegisterGridCellEditor(wxGridCellEditor* wx_edt, VALUE rb_edt)
|
|
243
|
+
{
|
|
244
|
+
if (wx_edt && !NIL_P(rb_edt))
|
|
245
|
+
{
|
|
246
|
+
// always (keep) disown(ed); wxWidgets takes over ownership
|
|
247
|
+
RDATA(rb_edt)->dfree = 0;
|
|
248
|
+
if (Grid_Cell_Editor_Value_Map.count(wx_edt) == 0)
|
|
249
|
+
{
|
|
250
|
+
#ifdef __WXRB_DEBUG__
|
|
251
|
+
if (wxRuby_TraceLevel()>1)
|
|
252
|
+
std::wcout << "** wxRuby_RegisterGridCellEditor : " << wx_edt << ":" << (void*)rb_edt << std::endl;
|
|
253
|
+
#endif
|
|
254
|
+
wx_edt->SetClientObject(new WXRBGridCellEditorMonitor(wx_edt, rb_edt));
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// define the grid cell editor marker
|
|
260
|
+
static void wxRuby_markGridCellEditor()
|
|
261
|
+
{
|
|
262
|
+
WXRBGridCellEditorValueHash::iterator it;
|
|
263
|
+
for( it = Grid_Cell_Editor_Value_Map.begin(); it != Grid_Cell_Editor_Value_Map.end(); ++it )
|
|
264
|
+
{
|
|
265
|
+
VALUE obj = it->second;
|
|
266
|
+
rb_gc_mark(obj);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// declare the global table for grid cell renderer
|
|
271
|
+
WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
|
|
272
|
+
WXRBGridCellRendererValueHash);
|
|
273
|
+
static WXRBGridCellRendererValueHash Grid_Cell_Renderer_Value_Map;
|
|
274
|
+
|
|
275
|
+
static void wxRuby_UnregisterGridCellRenderer(wxGridCellRenderer* wx_rnd)
|
|
276
|
+
{
|
|
277
|
+
#ifdef __WXRB_DEBUG__
|
|
278
|
+
if (wxRuby_TraceLevel()>1)
|
|
279
|
+
std::wcout << "** wxRuby_UnregisterGridCellRenderer : " << wx_rnd << ":" << (void*)Grid_Cell_Renderer_Value_Map[wx_rnd] << std::endl;
|
|
280
|
+
#endif
|
|
281
|
+
if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) != 0)
|
|
282
|
+
{
|
|
283
|
+
VALUE object = Grid_Cell_Renderer_Value_Map[wx_rnd];
|
|
284
|
+
if (object && !NIL_P(object))
|
|
285
|
+
{
|
|
286
|
+
DATA_PTR(object) = 0; // unlink
|
|
287
|
+
}
|
|
288
|
+
Grid_Cell_Renderer_Value_Map.erase(wx_rnd);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
extern VALUE wxRuby_GridCellRendererInstance(wxGridCellRenderer* wx_rnd)
|
|
293
|
+
{
|
|
294
|
+
if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) == 0)
|
|
295
|
+
return Qnil;
|
|
296
|
+
return Grid_Cell_Renderer_Value_Map[wx_rnd];
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// specialized client data class
|
|
300
|
+
class WXRBGridCellRendererMonitor : public wxClientData
|
|
301
|
+
{
|
|
302
|
+
public:
|
|
303
|
+
WXRBGridCellRendererMonitor() : wx_rnd(0), rb_rnd(Qnil) {}
|
|
304
|
+
WXRBGridCellRendererMonitor(wxGridCellRenderer* a, VALUE v) : wx_rnd(a), rb_rnd(v)
|
|
305
|
+
{ Grid_Cell_Renderer_Value_Map[wx_rnd] = rb_rnd; }
|
|
306
|
+
virtual ~WXRBGridCellRendererMonitor()
|
|
307
|
+
{ wxRuby_UnregisterGridCellRenderer(wx_rnd); }
|
|
308
|
+
private:
|
|
309
|
+
wxGridCellRenderer* wx_rnd;
|
|
310
|
+
VALUE rb_rnd;
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
// and it's associated registration/de-registration functions
|
|
314
|
+
extern void wxRuby_RegisterGridCellRenderer(wxGridCellRenderer* wx_rnd, VALUE rb_rnd)
|
|
315
|
+
{
|
|
316
|
+
if (wx_rnd && !NIL_P(rb_rnd))
|
|
317
|
+
{
|
|
318
|
+
// always (keep) disowned(ed); wxWidgets takes over ownership
|
|
319
|
+
RDATA(rb_rnd)->dfree = 0;
|
|
320
|
+
if (Grid_Cell_Renderer_Value_Map.count(wx_rnd) == 0)
|
|
321
|
+
{
|
|
322
|
+
#ifdef __WXRB_DEBUG__
|
|
323
|
+
if (wxRuby_TraceLevel()>1)
|
|
324
|
+
std::wcout << "** wxRuby_RegisterGridCellRenderer : registering " << wx_rnd << ":" << (void*)rb_rnd << std::endl;
|
|
325
|
+
#endif
|
|
326
|
+
wx_rnd->SetClientObject(new WXRBGridCellRendererMonitor(wx_rnd, rb_rnd));
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
// define the grid cell renderer marker
|
|
332
|
+
static void wxRuby_markGridCellRenderer()
|
|
333
|
+
{
|
|
334
|
+
WXRBGridCellRendererValueHash::iterator it;
|
|
335
|
+
for( it = Grid_Cell_Renderer_Value_Map.begin(); it != Grid_Cell_Renderer_Value_Map.end(); ++it )
|
|
336
|
+
{
|
|
337
|
+
VALUE obj = it->second;
|
|
338
|
+
rb_gc_mark(obj);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
__HEREDOC
|
|
343
|
+
# register the markers at module initialization
|
|
344
|
+
spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markGridCellAttr);',
|
|
345
|
+
'wxRuby_AppendMarker(wxRuby_markGridCellEditor);',
|
|
346
|
+
'wxRuby_AppendMarker(wxRuby_markGridCellRenderer);'
|
|
347
|
+
# add type mappings to handle registration
|
|
348
|
+
# first declare 'normal' type mapping for const pointer (for DrawCellHighlight)
|
|
349
|
+
spec.map 'const wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
|
|
350
|
+
map_check code: 'wxRuby_RegisterGridCellAttr($1, argv[$argnum-2]);'
|
|
351
|
+
end
|
|
352
|
+
# next handle registering mappings
|
|
353
|
+
spec.map 'wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
|
|
354
|
+
map_out code: <<~__CODE
|
|
355
|
+
$result = wxRuby_GridCellAttrInstance($1); // check for already registered instance
|
|
356
|
+
if (NIL_P($result))
|
|
357
|
+
{
|
|
358
|
+
// created by wxWidgets itself
|
|
359
|
+
// convert and register
|
|
360
|
+
$result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxGridCellAttr, 0);
|
|
361
|
+
wxRuby_RegisterGridCellAttr($1, $result);
|
|
362
|
+
}
|
|
363
|
+
__CODE
|
|
364
|
+
map_check code: 'wxRuby_RegisterGridCellAttr($1, argv[$argnum-2]);'
|
|
365
|
+
end
|
|
366
|
+
spec.map 'wxGridCellEditor *' => 'Wx::GRID::GridCellEditor' do
|
|
367
|
+
add_header_code 'extern VALUE wxRuby_WrapWxGridCellEditorInRuby(const wxGridCellEditor *wx_gce);'
|
|
368
|
+
map_out code: '$result = wxRuby_WrapWxGridCellEditorInRuby($1);'
|
|
369
|
+
map_check code: 'wxRuby_RegisterGridCellEditor($1, argv[$argnum-2]);'
|
|
370
|
+
end
|
|
371
|
+
spec.map 'wxGridCellRenderer *' => 'Wx::GRID::GridCellRenderer' do
|
|
372
|
+
add_header_code 'extern VALUE wxRuby_WrapWxGridCellRendererInRuby(const wxGridCellRenderer *wx_gcr);'
|
|
373
|
+
map_out code: '$result = wxRuby_WrapWxGridCellRendererInRuby($1);'
|
|
374
|
+
map_check code: 'wxRuby_RegisterGridCellRenderer($1, argv[$argnum-2]);'
|
|
375
|
+
end
|
|
376
|
+
# add constants missing from documentation
|
|
377
|
+
spec.add_swig_code '%constant char* wxGRID_VALUE_STRING = "string";',
|
|
378
|
+
'%constant char* wxGRID_VALUE_BOOL = "bool";',
|
|
379
|
+
'%constant char* wxGRID_VALUE_NUMBER = "long";',
|
|
380
|
+
'%constant char* wxGRID_VALUE_FLOAT = "double";',
|
|
381
|
+
'%constant char* wxGRID_VALUE_CHOICE = "choice";',
|
|
382
|
+
'%constant char* wxGRID_VALUE_DATE = "date";',
|
|
383
|
+
'%constant char* wxGRID_VALUE_TEXT = "string";',
|
|
384
|
+
'%constant char* wxGRID_VALUE_LONG = "long";'
|
|
385
|
+
end
|
|
386
|
+
end # class GridCtrl
|
|
387
|
+
|
|
388
|
+
end # class Director
|
|
389
|
+
|
|
390
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,23 @@
|
|
|
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 GridRangeSelectEvent < Event
|
|
13
|
+
|
|
14
|
+
include Typemap::GridCoords
|
|
15
|
+
|
|
16
|
+
def setup
|
|
17
|
+
super
|
|
18
|
+
end
|
|
19
|
+
end # class GridRangeSelectEvent
|
|
20
|
+
|
|
21
|
+
end # class Director
|
|
22
|
+
|
|
23
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,63 @@
|
|
|
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 GridTableBase < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
super
|
|
14
|
+
spec.ignore %w[
|
|
15
|
+
wxGridTableBase::CanHaveAttributes
|
|
16
|
+
wxGridTableBase::GetAttrProvider
|
|
17
|
+
wxGridTableBase::SetAttrProvider
|
|
18
|
+
wxGridTableBase::GetAttrPtr
|
|
19
|
+
wxGridTableBase::GetValueAsCustom
|
|
20
|
+
wxGridTableBase::SetValueAsCustom]
|
|
21
|
+
spec.map 'wxGridCellAttr::wxAttrKind' do
|
|
22
|
+
map_directorin code: '$input = INT2NUM($1);'
|
|
23
|
+
end
|
|
24
|
+
# wxWidgets takes over managing the ref count
|
|
25
|
+
spec.disown('wxGridCellAttr* attr')
|
|
26
|
+
# handle registering mapping
|
|
27
|
+
spec.map 'wxGridCellAttr *' => 'Wx::GRID::GridCellAttr' do
|
|
28
|
+
add_header_code 'extern void wxRuby_RegisterGridCellAttr(wxGridCellAttr* wx_attr, VALUE rb_attr);',
|
|
29
|
+
'extern VALUE wxRuby_GridCellAttrInstance(wxGridCellAttr* wx_attr);'
|
|
30
|
+
map_out code: <<~__CODE
|
|
31
|
+
$result = wxRuby_GridCellAttrInstance($1); // check for already registered instance
|
|
32
|
+
if (NIL_P($result))
|
|
33
|
+
{
|
|
34
|
+
// created by wxWidgets itself
|
|
35
|
+
// convert and register
|
|
36
|
+
$result = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxGridCellAttr, 0);
|
|
37
|
+
wxRuby_RegisterGridCellAttr($1, $result);
|
|
38
|
+
}
|
|
39
|
+
__CODE
|
|
40
|
+
map_directorin code: <<~__CODE
|
|
41
|
+
$input = wxRuby_GridCellAttrInstance($1); // check for already registered instance
|
|
42
|
+
if (NIL_P($input))
|
|
43
|
+
{
|
|
44
|
+
// created by wxWidgets itself
|
|
45
|
+
// convert and register
|
|
46
|
+
$input = SWIG_NewPointerObj(SWIG_as_voidptr($1), SWIGTYPE_p_wxGridCellAttr, 0);
|
|
47
|
+
wxRuby_RegisterGridCellAttr($1, $input);
|
|
48
|
+
}
|
|
49
|
+
__CODE
|
|
50
|
+
map_check code: 'wxRuby_RegisterGridCellAttr($1, argv[$argnum-2]);'
|
|
51
|
+
end
|
|
52
|
+
# this requires wxRuby to take ownership (ref counted)
|
|
53
|
+
spec.new_object 'wxGridTableBase::GetAttr'
|
|
54
|
+
# these warnings are handled and can be suppressed
|
|
55
|
+
spec.suppress_warning(473,
|
|
56
|
+
'wxGridTableBase::GetAttr',
|
|
57
|
+
'wxGridTableBase::GetView')
|
|
58
|
+
end
|
|
59
|
+
end # class GridTableBase
|
|
60
|
+
|
|
61
|
+
end # class Director
|
|
62
|
+
|
|
63
|
+
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 GridTableMessage < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
super
|
|
14
|
+
spec.gc_as_temporary
|
|
15
|
+
end
|
|
16
|
+
end # class GridTableMessage
|
|
17
|
+
|
|
18
|
+
end # class Director
|
|
19
|
+
|
|
20
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,75 @@
|
|
|
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 HelpController < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
super
|
|
14
|
+
spec.items << 'wxHelpControllerBase'
|
|
15
|
+
spec.fold_bases(spec.module_name => 'wxHelpControllerBase')
|
|
16
|
+
spec.rename_for_ruby('Init' => "#{spec.module_name}::Initialize")
|
|
17
|
+
# ignore these (pure virtual) decls
|
|
18
|
+
spec.ignore %w[
|
|
19
|
+
wxHelpControllerBase::DisplayBlock
|
|
20
|
+
wxHelpControllerBase::DisplaySection
|
|
21
|
+
wxHelpControllerBase::LoadFile
|
|
22
|
+
wxHelpControllerBase::Quit
|
|
23
|
+
]
|
|
24
|
+
# and add them as the implemented overrides they are
|
|
25
|
+
spec.extend_interface spec.module_name,
|
|
26
|
+
'virtual bool DisplayBlock(long blockNo)',
|
|
27
|
+
'virtual bool DisplaySection(int sectionNo)',
|
|
28
|
+
'virtual bool LoadFile(const wxString &file=wxEmptyString)',
|
|
29
|
+
'virtual bool Quit()'
|
|
30
|
+
# ignore this problematic method
|
|
31
|
+
spec.ignore 'wxHelpControllerBase::GetFrameParameters'
|
|
32
|
+
# and add a customized version
|
|
33
|
+
spec.add_extend_code spec.module_name, <<~__HEREDOC
|
|
34
|
+
VALUE GetFrameParameters()
|
|
35
|
+
{
|
|
36
|
+
wxFrame *result = 0;
|
|
37
|
+
wxSize size;
|
|
38
|
+
wxPoint pos;
|
|
39
|
+
bool newFrameEachTime;
|
|
40
|
+
result = $self->GetFrameParameters(&size, &pos, &newFrameEachTime);
|
|
41
|
+
VALUE rc = Qnil;
|
|
42
|
+
if (result)
|
|
43
|
+
{
|
|
44
|
+
rc = rb_ary_new();
|
|
45
|
+
rb_ary_push(rc, wxRuby_WrapWxObjectInRuby(result));
|
|
46
|
+
rb_ary_push(rc, SWIG_NewPointerObj(SWIG_as_voidptr(&size), SWIGTYPE_p_wxSize, 0));
|
|
47
|
+
rb_ary_push(rc, SWIG_NewPointerObj(SWIG_as_voidptr(&pos), SWIGTYPE_p_wxPoint, 0));
|
|
48
|
+
rb_ary_push(rc, newFrameEachTime ? Qtrue : Qfalse);
|
|
49
|
+
}
|
|
50
|
+
return rc;
|
|
51
|
+
}
|
|
52
|
+
__HEREDOC
|
|
53
|
+
if spec.module_name == 'wxHtmlHelpController'
|
|
54
|
+
spec.ignore 'wxHtmlHelpController::CreateHelpFrame'
|
|
55
|
+
spec.suppress_warning(473,
|
|
56
|
+
'wxHtmlHelpController::GetParentWindow')
|
|
57
|
+
elsif spec.module_name == 'wxExtHelpController'
|
|
58
|
+
spec.ignore %w[
|
|
59
|
+
wxExtHelpController::DisplayBlock
|
|
60
|
+
wxExtHelpController::DisplaySection
|
|
61
|
+
wxExtHelpController::LoadFile
|
|
62
|
+
wxExtHelpController::Quit
|
|
63
|
+
wxExtHelpController::GetFrameParameters
|
|
64
|
+
]
|
|
65
|
+
spec.suppress_warning(473,
|
|
66
|
+
'wxExtHelpController::GetParentWindow')
|
|
67
|
+
# already generated with HelpController
|
|
68
|
+
spec.do_not_generate :variables, :enums, :defines, :functions
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end # class HelpController
|
|
72
|
+
|
|
73
|
+
end # class Director
|
|
74
|
+
|
|
75
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,103 @@
|
|
|
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 HelpProvider < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
super
|
|
14
|
+
spec.gc_as_object 'wxHelpProvider'
|
|
15
|
+
# We need to create a C++ subclass b/c the base class is pure
|
|
16
|
+
# virtual. To be used, a class must be inherited in Ruby which
|
|
17
|
+
# implements the relevant virtual methods eg AddHelp, ShowHelp,
|
|
18
|
+
# GetHelp. wxWidgets provides some pre-made classes (eg
|
|
19
|
+
# wxSimpleHelpProvider) but these are so trivial in implementation that
|
|
20
|
+
# it's not worth porting them - easier to write as pure-ruby classes.
|
|
21
|
+
spec.rename_for_ruby('wxHelpProvider' => 'wxRubyHelpProvider')
|
|
22
|
+
spec.disown 'wxRubyHelpProvider *'
|
|
23
|
+
spec.include 'wx/cshelp.h'
|
|
24
|
+
spec.add_header_code <<~__HEREDOC
|
|
25
|
+
class wxRubyHelpProvider : public wxHelpProvider
|
|
26
|
+
{
|
|
27
|
+
public:
|
|
28
|
+
// This is pure virtual in base Wx class, so won't compile unless an
|
|
29
|
+
// implementation is provided
|
|
30
|
+
wxString GetHelp(const wxWindowBase* window)
|
|
31
|
+
{
|
|
32
|
+
static WxRuby_ID get_help_id("get_help");
|
|
33
|
+
|
|
34
|
+
VALUE rb_win = wxRuby_WrapWxObjectInRuby( (wxWindow*)window );
|
|
35
|
+
VALUE self = SWIG_RubyInstanceFor(this);
|
|
36
|
+
|
|
37
|
+
VALUE rb_help_str = rb_funcall(self, get_help_id(), 1, rb_win);
|
|
38
|
+
|
|
39
|
+
wxString result;
|
|
40
|
+
if ( TYPE(rb_help_str) == T_STRING )
|
|
41
|
+
result = wxString( StringValuePtr(rb_help_str), wxConvUTF8);
|
|
42
|
+
else
|
|
43
|
+
{
|
|
44
|
+
rb_warn("HelpProvider#get_help must return a String");
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// RemoveHelp is called by Wx after the window deletion event has been
|
|
51
|
+
// handled. A standard director here re-wraps the already destroyed
|
|
52
|
+
// object, which will cause rapid segfaults when it is later marked.
|
|
53
|
+
void RemoveHelp(wxWindowBase* window)
|
|
54
|
+
{
|
|
55
|
+
static WxRuby_ID remove_help_id("remove_help");
|
|
56
|
+
|
|
57
|
+
VALUE rb_win = SWIG_RubyInstanceFor( (void *)window );
|
|
58
|
+
if ( ! NIL_P(rb_win) )
|
|
59
|
+
{
|
|
60
|
+
VALUE self = SWIG_RubyInstanceFor(this);
|
|
61
|
+
rb_funcall(self, remove_help_id(), 1, rb_win);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
__HEREDOC
|
|
66
|
+
spec.add_swig_code <<~__HEREDOC
|
|
67
|
+
typedef wxWindow wxWindowBase;
|
|
68
|
+
|
|
69
|
+
%ignore wxHelpProvider::GetHelp; // Must be supplied in Ruby
|
|
70
|
+
|
|
71
|
+
// Need to avoid standard director as it will call with destroyed
|
|
72
|
+
// objects
|
|
73
|
+
%feature("nodirector") wxHelpProvider::RemoveHelp;
|
|
74
|
+
__HEREDOC
|
|
75
|
+
spec.map 'wxWindowBase' => 'Wx::Window', swig: false do
|
|
76
|
+
map_in
|
|
77
|
+
map_out
|
|
78
|
+
end
|
|
79
|
+
# this is just the SWIG interface description so we do not need
|
|
80
|
+
# to mention the inheritance relation here as it is not important
|
|
81
|
+
# for the Ruby implementation
|
|
82
|
+
spec.add_interface_code <<~__HEREDOC
|
|
83
|
+
class wxRubyHelpProvider
|
|
84
|
+
{
|
|
85
|
+
public:
|
|
86
|
+
virtual ~wxRubyHelpProvider();
|
|
87
|
+
static wxRubyHelpProvider* Set(wxRubyHelpProvider* helpProvider);
|
|
88
|
+
static wxRubyHelpProvider* Get();
|
|
89
|
+
virtual void AddHelp(wxWindowBase* window, const wxString& text);
|
|
90
|
+
virtual void AddHelp(wxWindowID id, const wxString& text);
|
|
91
|
+
virtual wxString GetHelp(const wxWindowBase* window);
|
|
92
|
+
virtual void RemoveHelp(wxWindowBase* window);
|
|
93
|
+
virtual bool ShowHelp(wxWindowBase* window);
|
|
94
|
+
virtual bool ShowHelpAtPoint(wxWindowBase* window, const wxPoint point,
|
|
95
|
+
wxHelpEvent::Origin origin);
|
|
96
|
+
};
|
|
97
|
+
__HEREDOC
|
|
98
|
+
end
|
|
99
|
+
end # class HelpProvider
|
|
100
|
+
|
|
101
|
+
end # class Director
|
|
102
|
+
|
|
103
|
+
end # module WXRuby3
|