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,61 @@
|
|
|
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 Printer < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
super
|
|
14
|
+
spec.items << 'wxPrintout' << 'wxPrintPreview'
|
|
15
|
+
spec.no_proxy 'wxPrinter', 'wxPrintPreview' # do not see the point in allowing overrides for the standard methods
|
|
16
|
+
spec.new_object 'wxPrinter::CreateAbortWindow'
|
|
17
|
+
spec.new_object 'wxPrinter::PrintDialog'
|
|
18
|
+
# make wxPrinter GC-safe
|
|
19
|
+
spec.ignore 'wxPrinter::GetPrintDialogData'
|
|
20
|
+
spec.add_extend_code 'wxPrinter', <<~__HEREDOC
|
|
21
|
+
wxPrintDialogData* GetPrintDialogData()
|
|
22
|
+
{ return new wxPrintDialogData(self->GetPrintDialogData()); }
|
|
23
|
+
void SetPrintDialogData(const wxPrintDialogData& pd)
|
|
24
|
+
{ self->GetPrintDialogData() = pd; }
|
|
25
|
+
__HEREDOC
|
|
26
|
+
spec.new_object 'wxPrinter::GetPrintDialogData'
|
|
27
|
+
spec.disown 'wxPrintout *' # Printout-s passed to PrintPreview will be managed by wxWidgets
|
|
28
|
+
spec.add_header_code <<~__HEREDOC
|
|
29
|
+
static void GC_mark_wxPrintPreview(void *ptr)
|
|
30
|
+
{
|
|
31
|
+
wxPrintPreview* print_preview = (wxPrintPreview*)ptr;
|
|
32
|
+
wxPrintout* printout = print_preview->GetPrintout();
|
|
33
|
+
rb_gc_mark( SWIG_RubyInstanceFor(printout) );
|
|
34
|
+
wxPrintout* printout_for_printing = print_preview->GetPrintoutForPrinting();
|
|
35
|
+
rb_gc_mark( SWIG_RubyInstanceFor(printout_for_printing) );
|
|
36
|
+
}
|
|
37
|
+
__HEREDOC
|
|
38
|
+
spec.add_swig_code '%markfunc wxPrintPreview "GC_mark_wxPrintPreview";'
|
|
39
|
+
# for GetCanvas
|
|
40
|
+
spec.ignore('wxPrintPreview::GetCanvas', ignore_doc: false)
|
|
41
|
+
spec.extend_interface('wxPrintPreview',
|
|
42
|
+
'virtual wxScrolledWindow* GetCanvas() const')
|
|
43
|
+
# docs only mapping
|
|
44
|
+
spec.map 'wxPreviewCanvas *' => 'wxScrolledWindow', swig: false do
|
|
45
|
+
map_out
|
|
46
|
+
end
|
|
47
|
+
spec.suppress_warning(473,
|
|
48
|
+
'wxPrintPreview::GetCanvas',
|
|
49
|
+
'wxPrintPreview::GetFrame',
|
|
50
|
+
'wxPrintPreview::GetPrintout',
|
|
51
|
+
'wxPrintPreview::GetPrintoutForPrinting')
|
|
52
|
+
# for various Printout getters
|
|
53
|
+
spec.add_swig_code '%feature("new", "0") wxPrintout::GetDC;'
|
|
54
|
+
spec.map_apply 'int * OUTPUT' => 'int *'
|
|
55
|
+
spec.do_not_generate(:variables, :defines, :enums, :functions) # with PrintAbortDialog
|
|
56
|
+
end
|
|
57
|
+
end # class Printer
|
|
58
|
+
|
|
59
|
+
end # class Director
|
|
60
|
+
|
|
61
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,174 @@
|
|
|
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 PropertyGrid < Window
|
|
13
|
+
|
|
14
|
+
include Typemap::PGProperty
|
|
15
|
+
|
|
16
|
+
include Typemap::PGCell
|
|
17
|
+
|
|
18
|
+
include Typemap::PGPropArg
|
|
19
|
+
|
|
20
|
+
def setup
|
|
21
|
+
super
|
|
22
|
+
spec.gc_as_window 'wxPropertyGrid'
|
|
23
|
+
spec.override_inheritance_chain('wxPropertyGrid', %w[wxScrolledControl wxControl wxWindow wxEvtHandler wxObject])
|
|
24
|
+
spec.add_header_code 'typedef wxScrolled<wxControl> wxScrolledControl;'
|
|
25
|
+
spec.no_proxy 'wxPropertyGrid::SendAutoScrollEvents',
|
|
26
|
+
'wxPropertyGrid::RefreshProperty',
|
|
27
|
+
'wxPropertyGrid::GetStatusBar'
|
|
28
|
+
# not usable in wxRuby
|
|
29
|
+
spec.ignore 'wxPropertyGrid::SetSortFunction',
|
|
30
|
+
'wxPropertyGrid::GetSortFunction'
|
|
31
|
+
spec.ignore 'wxPropertyGrid::RegisterEditorClass' # defined in pure Ruby
|
|
32
|
+
spec.disown 'wxPGEditor *editor' # for DoRegisterEditorClass
|
|
33
|
+
# special doc-only mapping to remove this arg from docs as wxRuby always passes false here
|
|
34
|
+
spec.map 'bool noDefCheck', swig: false do
|
|
35
|
+
map_in ignore: true
|
|
36
|
+
end
|
|
37
|
+
# replace by custom extension
|
|
38
|
+
spec.add_header_code <<~__HEREDOC
|
|
39
|
+
static int wxRuby_PropertyGridSortFunction(wxPropertyGrid* pg, wxPGProperty* pp1, wxPGProperty* pp2)
|
|
40
|
+
{
|
|
41
|
+
static WxRuby_ID call_id("call");
|
|
42
|
+
|
|
43
|
+
VALUE rb_pg = SWIG_RubyInstanceFor(pg);
|
|
44
|
+
VALUE rb_pp1 = SWIG_NewPointerObj(SWIG_as_voidptr(pp1), SWIGTYPE_p_wxPGProperty, 0);
|
|
45
|
+
VALUE rb_pp2 = SWIG_NewPointerObj(SWIG_as_voidptr(pp2), SWIGTYPE_p_wxPGProperty, 0);
|
|
46
|
+
VALUE rb_sorter = rb_iv_get(rb_pg, "@__sorter");
|
|
47
|
+
if (NIL_P(rb_sorter))
|
|
48
|
+
{
|
|
49
|
+
VALUE msg = rb_inspect(rb_pg);
|
|
50
|
+
rb_raise(rb_eRuntimeError, "Nil @__sorter for %s",
|
|
51
|
+
StringValuePtr(msg));
|
|
52
|
+
}
|
|
53
|
+
return INT2NUM(rb_funcall(rb_sorter, call_id(), 3, rb_pg, rb_pp1, rb_pp2));
|
|
54
|
+
}
|
|
55
|
+
__HEREDOC
|
|
56
|
+
spec.add_extend_code 'wxPropertyGrid', <<~__HEREDOC
|
|
57
|
+
void SetSorter(VALUE proc)
|
|
58
|
+
{
|
|
59
|
+
VALUE rb_self = SWIG_RubyInstanceFor(self);
|
|
60
|
+
rb_iv_set(rb_self, "@__sorter", proc);
|
|
61
|
+
self->SetSortFunction(wxRuby_PropertyGridSortFunction);
|
|
62
|
+
}
|
|
63
|
+
VALUE GetSorter()
|
|
64
|
+
{
|
|
65
|
+
VALUE rb_self = SWIG_RubyInstanceFor(self);
|
|
66
|
+
return rb_iv_get(rb_self, "@__sorter");
|
|
67
|
+
}
|
|
68
|
+
__HEREDOC
|
|
69
|
+
spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
|
|
70
|
+
# mixin PropertyGridInterface
|
|
71
|
+
spec.include_mixin 'wxPropertyGrid', 'Wx::PG::PropertyGridInterface'
|
|
72
|
+
# customize mark function
|
|
73
|
+
spec.add_header_code <<~__HEREDOC
|
|
74
|
+
static void GC_mark_wxPropertyGrid(void* ptr)
|
|
75
|
+
{
|
|
76
|
+
#ifdef __WXRB_DEBUG__
|
|
77
|
+
if (wxRuby_TraceLevel()>1)
|
|
78
|
+
std::wcout << "> GC_mark_wxPropertyGrid : " << ptr << std::endl;
|
|
79
|
+
#endif
|
|
80
|
+
if ( GC_IsWindowDeleted(ptr) )
|
|
81
|
+
{
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// Do standard marking routines as for all wxWindows
|
|
85
|
+
GC_mark_wxWindow(ptr);
|
|
86
|
+
|
|
87
|
+
wxPropertyGrid* wx_pg = (wxPropertyGrid*) ptr;
|
|
88
|
+
|
|
89
|
+
// mark all properties
|
|
90
|
+
wxPGVIterator it =
|
|
91
|
+
wx_pg->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
|
|
92
|
+
// iterate all
|
|
93
|
+
for ( ; !it.AtEnd(); it.Next() )
|
|
94
|
+
{
|
|
95
|
+
wxPGProperty* p = it.GetProperty();
|
|
96
|
+
VALUE rb_p = SWIG_RubyInstanceFor(p);
|
|
97
|
+
if (NIL_P(rb_p))
|
|
98
|
+
{
|
|
99
|
+
VALUE object = (VALUE) p->GetClientData();
|
|
100
|
+
if ( object && !NIL_P(object))
|
|
101
|
+
{
|
|
102
|
+
#ifdef __WXRB_DEBUG__
|
|
103
|
+
if (wxRuby_TraceLevel()>2)
|
|
104
|
+
std::wcout << "*** marking property data " << p << ":" << p->GetName() << std::endl;
|
|
105
|
+
#endif
|
|
106
|
+
rb_gc_mark(object);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else
|
|
110
|
+
{
|
|
111
|
+
rb_gc_mark(rb_p);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
__HEREDOC
|
|
116
|
+
spec.add_swig_code '%markfunc wxPropertyGrid "GC_mark_wxPropertyGrid";'
|
|
117
|
+
# missing from XML docs
|
|
118
|
+
spec.extend_interface 'wxPropertyGrid',
|
|
119
|
+
'wxPoint GetGoodEditorDialogPosition(wxPGProperty* p, const wxSize& sz)',
|
|
120
|
+
'wxWindow* GetPrimaryEditor() const',
|
|
121
|
+
'wxWindow* GetEditorControlSecondary() const',
|
|
122
|
+
'wxRect GetPropertyRect(const wxPGProperty* p1, const wxPGProperty* p2) const'
|
|
123
|
+
# add extension code to retrieve the internal standard editors
|
|
124
|
+
# can't use the global variables directly to create constants as these will
|
|
125
|
+
# only be initialized after the app has started so we add a module method
|
|
126
|
+
# to retrieve the variables and use that to initialize the constants using
|
|
127
|
+
# delayed init
|
|
128
|
+
spec.include 'wx/propgrid/advprops.h'
|
|
129
|
+
spec.add_extend_code 'wxPropertyGrid', <<~__HEREDOC
|
|
130
|
+
static wxPGEditor* get_standard_editor_class(const wxString& editor_name)
|
|
131
|
+
{
|
|
132
|
+
// will trigger registration of all property editors
|
|
133
|
+
wxPropertyGridInterface::RegisterAdditionalEditors();
|
|
134
|
+
if (editor_name == wxS("TextCtrl"))
|
|
135
|
+
{
|
|
136
|
+
return wxPGEditor_TextCtrl;
|
|
137
|
+
}
|
|
138
|
+
if (editor_name == wxS("TextCtrlAndButton"))
|
|
139
|
+
{
|
|
140
|
+
return wxPGEditor_TextCtrlAndButton;
|
|
141
|
+
}
|
|
142
|
+
if (editor_name == wxS("Choice"))
|
|
143
|
+
{
|
|
144
|
+
return wxPGEditor_Choice;
|
|
145
|
+
}
|
|
146
|
+
if (editor_name == wxS("ComboBox"))
|
|
147
|
+
{
|
|
148
|
+
return wxPGEditor_ComboBox;
|
|
149
|
+
}
|
|
150
|
+
if (editor_name == wxS("CheckBox"))
|
|
151
|
+
{
|
|
152
|
+
return wxPGEditor_CheckBox;
|
|
153
|
+
}
|
|
154
|
+
if (editor_name == wxS("ChoiceAndButton"))
|
|
155
|
+
{
|
|
156
|
+
return wxPGEditor_ChoiceAndButton;
|
|
157
|
+
}
|
|
158
|
+
if (editor_name == wxS("SpinCtrl"))
|
|
159
|
+
{
|
|
160
|
+
return wxPGEditor_SpinCtrl;
|
|
161
|
+
}
|
|
162
|
+
if (editor_name == wxS("DatePickerCtrl"))
|
|
163
|
+
{
|
|
164
|
+
return wxPGEditor_DatePickerCtrl;
|
|
165
|
+
}
|
|
166
|
+
return 0;
|
|
167
|
+
}
|
|
168
|
+
__HEREDOC
|
|
169
|
+
end
|
|
170
|
+
end # class PropertyGrid
|
|
171
|
+
|
|
172
|
+
end # class Director
|
|
173
|
+
|
|
174
|
+
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
|
+
include Typemap::PGProperty
|
|
13
|
+
|
|
14
|
+
class PropertyGridEvent < Event
|
|
15
|
+
|
|
16
|
+
def setup
|
|
17
|
+
super
|
|
18
|
+
end
|
|
19
|
+
end # class PropertyGridEvent
|
|
20
|
+
|
|
21
|
+
end # class Director
|
|
22
|
+
|
|
23
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,227 @@
|
|
|
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 PropertyGridInterface < Director
|
|
11
|
+
|
|
12
|
+
include Typemap::DateTime
|
|
13
|
+
|
|
14
|
+
include Typemap::PGProperty
|
|
15
|
+
|
|
16
|
+
include Typemap::PGEditor
|
|
17
|
+
|
|
18
|
+
include Typemap::PGPropArg
|
|
19
|
+
|
|
20
|
+
def setup
|
|
21
|
+
super
|
|
22
|
+
spec.gc_as_temporary 'wxPropertyGridInterface' # actually no GC control necessary as this is a mixin only
|
|
23
|
+
# turn wxPropertyGridInterface into a mixin module
|
|
24
|
+
spec.make_mixin 'wxPropertyGridInterface'
|
|
25
|
+
# add typedef to work around flaky define in wxWidgets
|
|
26
|
+
spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
|
|
27
|
+
# for Append, AppendIn, Insert, ReplaceProperty
|
|
28
|
+
spec.disown 'wxPGProperty *property', 'wxPGProperty *newProperty'
|
|
29
|
+
spec.ignore 'wxPropertyGridInterface::RemoveProperty' # too problematic bc of GC issues
|
|
30
|
+
# ignore ALL but the Wx::Variant overload
|
|
31
|
+
spec.ignore 'wxPropertyGridInterface::SetPropertyValue', ignore_doc: false
|
|
32
|
+
spec.regard 'wxPropertyGridInterface::SetPropertyValue(wxPGPropArg, wxVariant)'
|
|
33
|
+
# SWIG chokes on the specified 'defaultCategory' default arg
|
|
34
|
+
spec.ignore 'wxPropertyGridInterface::SetPropertyValues', ignore_doc: false
|
|
35
|
+
# so redeclare in way SWIG can process (type map takes care of the defaults; no need for wxVariantList overload)
|
|
36
|
+
spec.extend_interface 'wxPropertyGridInterface',
|
|
37
|
+
'void SetPropertyValues(const wxVariant &list, const wxPGPropArgCls& defaultCategory = 0)'
|
|
38
|
+
# optionals
|
|
39
|
+
if Config.instance.features_set?('wxUSE_LONGLONG')
|
|
40
|
+
spec.set_only_for 'wxLongLong_t',
|
|
41
|
+
'wxPropertyGridInterface::GetPropertyValueAsLongLong',
|
|
42
|
+
'wxPropertyGridInterface::GetPropertyValueAsULongLong'
|
|
43
|
+
else
|
|
44
|
+
spec.ignore 'wxPropertyGridInterface::GetPropertyValueAsLongLong',
|
|
45
|
+
'wxPropertyGridInterface::GetPropertyValueAsULongLong'
|
|
46
|
+
end
|
|
47
|
+
unless Config.instance.features_set?('wxUSE_DATETIME')
|
|
48
|
+
spec.ignore 'wxPropertyGridInterface::GetPropertyValueAsDateTime'
|
|
49
|
+
end
|
|
50
|
+
unless Config.instance.features_set?('wxUSE_VALIDATORS')
|
|
51
|
+
spec.ignore 'wxPropertyGridInterface::GetPropertyValidator'
|
|
52
|
+
end
|
|
53
|
+
# fix incorrect XML documentation
|
|
54
|
+
spec.ignore 'wxPropertyGridInterface::SetPropertyImage', ignore_doc: false # ignore non-const BitmapBundle arg decl
|
|
55
|
+
# and add correct decl
|
|
56
|
+
spec.extend_interface 'wxPropertyGridInterface', 'void SetPropertyImage(wxPGPropArg id, const wxBitmapBundle &bmp)'
|
|
57
|
+
# don't expose property grid iterators; add a more Ruby-like extension
|
|
58
|
+
spec.ignore 'wxPropertyGridInterface::GetIterator', 'wxPropertyGridInterface::GetVIterator'
|
|
59
|
+
# add basic property enumerator; will wrap this in pure Ruby still for improved argument handling
|
|
60
|
+
spec.add_extend_code 'wxPropertyGridInterface', <<~__HEREDOC
|
|
61
|
+
VALUE each_property(int flags, VALUE start, bool reverse)
|
|
62
|
+
{
|
|
63
|
+
VALUE rc = Qnil;
|
|
64
|
+
if (NIL_P(start) && !reverse)
|
|
65
|
+
{
|
|
66
|
+
// use faster forward-only iterating over all containers
|
|
67
|
+
wxPGVIterator prop_it = self->GetVIterator(flags);
|
|
68
|
+
while (!prop_it.AtEnd())
|
|
69
|
+
{
|
|
70
|
+
wxPGProperty* pp = prop_it.GetProperty();
|
|
71
|
+
VALUE rb_prop = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
|
|
72
|
+
rc = rb_yield(rb_prop);
|
|
73
|
+
prop_it.Next();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else
|
|
77
|
+
{
|
|
78
|
+
wxPropertyGridIterator prop_it;
|
|
79
|
+
if (NIL_P(start))
|
|
80
|
+
{
|
|
81
|
+
prop_it = self->GetIterator(flags, wxBOTTOM); // reverse -> start at end
|
|
82
|
+
}
|
|
83
|
+
else if (TYPE(start) == T_DATA)
|
|
84
|
+
{
|
|
85
|
+
void* ptr;
|
|
86
|
+
int res = SWIG_ConvertPtr(start, &ptr,SWIGTYPE_p_wxPGProperty, 0);
|
|
87
|
+
if (!SWIG_IsOK(res))
|
|
88
|
+
{
|
|
89
|
+
VALUE msg = rb_inspect(start);
|
|
90
|
+
rb_raise(rb_eArgError, "Expected Integer or PGProperty for 2 but got %s",
|
|
91
|
+
StringValuePtr(msg));
|
|
92
|
+
}
|
|
93
|
+
wxPGProperty* pp = static_cast<wxPGProperty*> (ptr);
|
|
94
|
+
prop_it = self->GetIterator(flags, pp);
|
|
95
|
+
}
|
|
96
|
+
else if (TYPE(start) == T_FIXNUM || wxRuby_IsAnEnum(start))
|
|
97
|
+
{
|
|
98
|
+
prop_it = self->GetIterator(flags, (int)NUM2INT(start));
|
|
99
|
+
}
|
|
100
|
+
else
|
|
101
|
+
{
|
|
102
|
+
VALUE msg = rb_inspect(start);
|
|
103
|
+
rb_raise(rb_eArgError, "Expected Integer or PGProperty for 2 but got %s",
|
|
104
|
+
StringValuePtr(msg));
|
|
105
|
+
}
|
|
106
|
+
while (!prop_it.AtEnd())
|
|
107
|
+
{
|
|
108
|
+
wxPGProperty* pp = prop_it.GetProperty();
|
|
109
|
+
VALUE rb_prop = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
|
|
110
|
+
rc = rb_yield(rb_prop);
|
|
111
|
+
reverse ? prop_it.Prev() : prop_it.Next();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return rc;
|
|
115
|
+
}
|
|
116
|
+
__HEREDOC
|
|
117
|
+
# don't expose wxPGAttributeStorage; add a more Ruby-like extension
|
|
118
|
+
spec.ignore 'wxPropertyGridInterface::GetPropertyAttributes'
|
|
119
|
+
spec.add_extend_code 'wxPropertyGridInterface', <<~__HEREDOC
|
|
120
|
+
VALUE each_property_attribute(const wxPGPropArgCls& proparg)
|
|
121
|
+
{
|
|
122
|
+
const wxPGAttributeStorage& att_store = self->GetPropertyAttributes(proparg);
|
|
123
|
+
wxPGAttributeStorage::const_iterator it = att_store.StartIteration();
|
|
124
|
+
wxVariant att_var;
|
|
125
|
+
VALUE rc = Qnil;
|
|
126
|
+
while (att_store.GetNext(it, att_var))
|
|
127
|
+
{
|
|
128
|
+
VALUE rb_att_var = SWIG_NewPointerObj(new wxVariant(att_var), SWIGTYPE_p_wxVariant, SWIG_POINTER_OWN);
|
|
129
|
+
rc = rb_yield(rb_att_var);
|
|
130
|
+
}
|
|
131
|
+
return rc;
|
|
132
|
+
}
|
|
133
|
+
__HEREDOC
|
|
134
|
+
# type mapping for 'wxArrayPGProperty *targetArr' (GetPropertiesWithFlag)
|
|
135
|
+
spec.map 'wxArrayPGProperty *targetArr' => 'Array<Wx::PG::PGProperty>' do
|
|
136
|
+
map_in ignore: true, temp: 'wxArrayPGProperty tmp', code: '$1 = &tmp;'
|
|
137
|
+
map_argout code: <<~__CODE
|
|
138
|
+
$result = rb_ary_new();
|
|
139
|
+
for (size_t i = 0; i < $1->GetCount(); i++)
|
|
140
|
+
{
|
|
141
|
+
wxPGProperty* pp = $1->Item(i);
|
|
142
|
+
VALUE rb_pp = SWIG_NewPointerObj(SWIG_as_voidptr(pp), SWIGTYPE_p_wxPGProperty, 0);
|
|
143
|
+
rb_ary_push($result, rb_pp);
|
|
144
|
+
}
|
|
145
|
+
__CODE
|
|
146
|
+
end
|
|
147
|
+
# GetState is missing from the XML docs but we want to add a customized version anyway
|
|
148
|
+
# to be able to return either a PropertyGridPage (for PropertyGridManager) or a PropertyGridPageState
|
|
149
|
+
# (for PropertyGrid).
|
|
150
|
+
spec.include 'wx/propgrid/manager.h'
|
|
151
|
+
spec.add_header_code <<~__CODE
|
|
152
|
+
extern VALUE mWxPG; // declare external module reference
|
|
153
|
+
|
|
154
|
+
static WxRuby_ID pgi_PropertyGridPageState_id("PropertyGridPageState");
|
|
155
|
+
static WxRuby_ID pgi_PropertyGridPage_id("PropertyGridPage");
|
|
156
|
+
__CODE
|
|
157
|
+
spec.add_extend_code 'wxPropertyGridInterface', <<~__HEREDOC
|
|
158
|
+
VALUE get_state()
|
|
159
|
+
{
|
|
160
|
+
// attempt cast
|
|
161
|
+
wxPropertyGridManager* wx_pgm = dynamic_cast<wxPropertyGridManager*> (self);
|
|
162
|
+
if (wx_pgm)
|
|
163
|
+
{
|
|
164
|
+
return wxRuby_WrapWxObjectInRuby(wx_pgm->GetCurrentPage());
|
|
165
|
+
}
|
|
166
|
+
else
|
|
167
|
+
{
|
|
168
|
+
wxPropertyGridPageState* wx_pgps = self->GetState();
|
|
169
|
+
VALUE klass = rb_const_get(mWxPG, pgi_PropertyGridPageState_id());
|
|
170
|
+
swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
|
|
171
|
+
return SWIG_NewPointerObj(SWIG_as_voidptr(wx_pgps), swig_type, 0);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
__HEREDOC
|
|
175
|
+
# In wxRuby PropertyGridPageState is folded into PropertyGridPage so it is not actually
|
|
176
|
+
# derived from PropertyGridPageState but is one in the sense of Ruby's duck typing so we have
|
|
177
|
+
# some tinkering to do to make RefreshGrid accept either a PropertyGridPageState (returned from
|
|
178
|
+
# PropertyGridInterface#GetSate for a PropertyGrid) or a PropertyGridPage (returned either by
|
|
179
|
+
# PropertyGridInterface#GetState for a PropertyGridManager or any of the PropertyGridManager#GetXXXPage
|
|
180
|
+
# methods).
|
|
181
|
+
spec.ignore 'wxPropertyGridInterface::RefreshGrid', ignore_doc: false
|
|
182
|
+
spec.add_extend_code 'wxPropertyGridInterface', <<~__HEREDOC
|
|
183
|
+
void RefreshGrid(VALUE rb_state)
|
|
184
|
+
{
|
|
185
|
+
wxPropertyGridPageState *state = 0;
|
|
186
|
+
if (!NIL_P(rb_state))
|
|
187
|
+
{
|
|
188
|
+
VALUE klass = rb_const_get(mWxPG, pgi_PropertyGridPageState_id());
|
|
189
|
+
if (rb_obj_is_kind_of(rb_state, klass))
|
|
190
|
+
{
|
|
191
|
+
swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
|
|
192
|
+
int res = SWIG_ConvertPtr(rb_state, SWIG_as_voidptrptr(&state), swig_type, 0);
|
|
193
|
+
if (!SWIG_IsOK(res)) {
|
|
194
|
+
VALUE msg = rb_inspect(rb_state);
|
|
195
|
+
rb_raise(rb_eArgError, "Expected PropertyGridPage or PropertyGridPageState for 1 but got %s",
|
|
196
|
+
StringValuePtr(msg));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else
|
|
200
|
+
{
|
|
201
|
+
wxPropertyGridPage *wx_pg = 0;
|
|
202
|
+
VALUE klass = rb_const_get(mWxPG, pgi_PropertyGridPage_id());
|
|
203
|
+
swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
|
|
204
|
+
int res = SWIG_ConvertPtr(rb_state, SWIG_as_voidptrptr(&wx_pg), swig_type, 0);
|
|
205
|
+
if (!SWIG_IsOK(res)) {
|
|
206
|
+
VALUE msg = rb_inspect(rb_state);
|
|
207
|
+
rb_raise(rb_eArgError, "Expected PropertyGridPage or PropertyGridPageState for 1 but got %s",
|
|
208
|
+
StringValuePtr(msg));
|
|
209
|
+
}
|
|
210
|
+
state = wx_pg;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
self->RefreshGrid(state);
|
|
214
|
+
}
|
|
215
|
+
__HEREDOC
|
|
216
|
+
spec.map 'wxPropertyGridPageState *state' => 'Wx::PG::PropertyGridPage,Wx::PG::PropertyGridPageState', swig: false do
|
|
217
|
+
map_in
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
spec.do_not_generate :variables, :defines, :enums, :functions # with pgproperty
|
|
221
|
+
end
|
|
222
|
+
end # class PropertyGridInterface
|
|
223
|
+
|
|
224
|
+
end # class Director
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,90 @@
|
|
|
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 PropertyGridManager < Window
|
|
13
|
+
|
|
14
|
+
include Typemap::PGPropArg
|
|
15
|
+
|
|
16
|
+
def setup
|
|
17
|
+
super
|
|
18
|
+
spec.override_inheritance_chain('wxPropertyGridManager', %w[wxPanel wxWindow wxEvtHandler wxObject])
|
|
19
|
+
spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
|
|
20
|
+
# mixin PropertyGridInterface
|
|
21
|
+
spec.include_mixin 'wxPropertyGridManager', 'Wx::PG::PropertyGridInterface'
|
|
22
|
+
# for AddPage and InsertPage
|
|
23
|
+
spec.disown 'wxPropertyGridPage *pageObj'
|
|
24
|
+
spec.suppress_warning(473, 'wxPropertyGridManager::InsertPage')
|
|
25
|
+
# do not expose iterator class; #each_property provided by PropertyGridInterface mixin
|
|
26
|
+
spec.ignore 'wxPropertyGridManager::GetVIterator'
|
|
27
|
+
# customize mark function
|
|
28
|
+
spec.add_header_code <<~__HEREDOC
|
|
29
|
+
static void GC_mark_wxPropertyGridManager(void* ptr)
|
|
30
|
+
{
|
|
31
|
+
#ifdef __WXRB_DEBUG__
|
|
32
|
+
if (wxRuby_TraceLevel()>1)
|
|
33
|
+
std::wcout << "> GC_mark_wxPropertyGridManager : " << ptr << std::endl;
|
|
34
|
+
#endif
|
|
35
|
+
if ( GC_IsWindowDeleted(ptr) )
|
|
36
|
+
{
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// Do standard marking routines as for all wxWindows
|
|
40
|
+
GC_mark_wxWindow(ptr);
|
|
41
|
+
|
|
42
|
+
wxPropertyGridManager* wx_pg = (wxPropertyGridManager*) ptr;
|
|
43
|
+
|
|
44
|
+
// mark all properties of all pages
|
|
45
|
+
#ifdef __WXRB_DEBUG__
|
|
46
|
+
long l = 0;
|
|
47
|
+
#endif
|
|
48
|
+
for (size_t i=0; i < wx_pg->GetPageCount() ;++i)
|
|
49
|
+
{
|
|
50
|
+
wxPGVIterator it =
|
|
51
|
+
wx_pg->GetPage(i)->GetVIterator(wxPG_ITERATOR_FLAGS_ALL | wxPG_IT_CHILDREN(wxPG_ITERATOR_FLAGS_ALL));
|
|
52
|
+
// iterate all
|
|
53
|
+
for ( ; !it.AtEnd(); it.Next() )
|
|
54
|
+
{
|
|
55
|
+
#ifdef __WXRB_DEBUG__
|
|
56
|
+
++l;
|
|
57
|
+
#endif
|
|
58
|
+
wxPGProperty* p = it.GetProperty();
|
|
59
|
+
VALUE rb_p = SWIG_RubyInstanceFor(p);
|
|
60
|
+
if (NIL_P(rb_p))
|
|
61
|
+
{
|
|
62
|
+
VALUE object = (VALUE) p->GetClientData();
|
|
63
|
+
if ( object && !NIL_P(object))
|
|
64
|
+
{
|
|
65
|
+
#ifdef __WXRB_DEBUG__
|
|
66
|
+
if (wxRuby_TraceLevel()>2)
|
|
67
|
+
std::wcout << "*** marking property data " << p << ":" << p->GetName() << std::endl;
|
|
68
|
+
#endif
|
|
69
|
+
rb_gc_mark(object);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else
|
|
73
|
+
{
|
|
74
|
+
rb_gc_mark(rb_p);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
#ifdef __WXRB_DEBUG__
|
|
79
|
+
if (wxRuby_TraceLevel()>1)
|
|
80
|
+
std::wcout << "*** iterated " << l << " properties" << std::endl;
|
|
81
|
+
#endif
|
|
82
|
+
}
|
|
83
|
+
__HEREDOC
|
|
84
|
+
spec.add_swig_code '%markfunc wxPropertyGridManager "GC_mark_wxPropertyGridManager";'
|
|
85
|
+
end
|
|
86
|
+
end # class PropertyGridManager
|
|
87
|
+
|
|
88
|
+
end # class Director
|
|
89
|
+
|
|
90
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
###
|
|
2
|
+
# wxRuby3 wxWidgets interface director
|
|
3
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
|
+
###
|
|
5
|
+
|
|
6
|
+
require_relative './event_handler'
|
|
7
|
+
|
|
8
|
+
module WXRuby3
|
|
9
|
+
|
|
10
|
+
class Director
|
|
11
|
+
|
|
12
|
+
class PropertyGridPage < EvtHandler
|
|
13
|
+
|
|
14
|
+
include Typemap::PGProperty
|
|
15
|
+
|
|
16
|
+
include Typemap::PGPropArg
|
|
17
|
+
|
|
18
|
+
def setup
|
|
19
|
+
super
|
|
20
|
+
spec.items << 'wxPropertyGridPageState'
|
|
21
|
+
spec.override_inheritance_chain('wxPropertyGridPage', %w[wxEvtHandler wxObject])
|
|
22
|
+
# no real use in exposing wxPropertyGridPageState currently
|
|
23
|
+
spec.fold_bases 'wxPropertyGridPage' => 'wxPropertyGridPageState'
|
|
24
|
+
# need a custom implementation to handle event handler proc cleanup
|
|
25
|
+
spec.add_header_code <<~__HEREDOC
|
|
26
|
+
class WXRubyPropertyGridPage : public wxPropertyGridPage
|
|
27
|
+
{
|
|
28
|
+
public:
|
|
29
|
+
WXRubyPropertyGridPage() : wxPropertyGridPage() {}
|
|
30
|
+
virtual ~WXRubyPropertyGridPage()
|
|
31
|
+
{
|
|
32
|
+
wxRuby_ReleaseEvtHandlerProcs(this);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
__HEREDOC
|
|
36
|
+
spec.use_class_implementation 'wxPropertyGridPage', 'WXRubyPropertyGridPage'
|
|
37
|
+
spec.ignore 'wxPropertyGridPage::GetStatePtr'
|
|
38
|
+
if Config.instance.wx_version >= '3.3.0'
|
|
39
|
+
spec.ignore 'wxPropertyGridPageState::DoSetSplitter'
|
|
40
|
+
else
|
|
41
|
+
spec.ignore 'wxPropertyGridPageState::DoSetSplitterPosition'
|
|
42
|
+
end
|
|
43
|
+
# mixin PropertyGridInterface
|
|
44
|
+
spec.include_mixin 'wxPropertyGridPage', 'Wx::PG::PropertyGridInterface'
|
|
45
|
+
# these are ambiguous bc inherited from both PropertyGridInterface and wxPropertyGridPageState
|
|
46
|
+
spec.ignore 'wxPropertyGridPageState::GetSelection',
|
|
47
|
+
'wxPropertyGridPageState::GetPropertyCategory',
|
|
48
|
+
ignore_doc: false
|
|
49
|
+
# so we create custom extensions to circumvent that
|
|
50
|
+
spec.add_extend_code 'wxPropertyGridPage', <<~__HEREDOC
|
|
51
|
+
wxPGProperty* GetSelection () const
|
|
52
|
+
{
|
|
53
|
+
return self->wxPropertyGridPageState::GetSelection();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
wxPropertyCategory* GetPropertyCategory( wxPGPropArg id ) const
|
|
57
|
+
{
|
|
58
|
+
return self->wxPropertyGridInterface::GetPropertyCategory(id);
|
|
59
|
+
}
|
|
60
|
+
__HEREDOC
|
|
61
|
+
spec.add_swig_code 'typedef const wxPGPropArgCls& wxPGPropArg;'
|
|
62
|
+
# for DoInsert
|
|
63
|
+
spec.disown 'wxPGProperty *property'
|
|
64
|
+
# the 'doDelete' argument is troublesome for GC handling in wxRuby so we remove it in the wxRuby interface
|
|
65
|
+
# and force it to be always 'true' (called with 'false' only from wxPropertyGridInterface::RemoveProperty
|
|
66
|
+
# which we do not support in wxRuby either)
|
|
67
|
+
spec.map 'bool doDelete' do
|
|
68
|
+
map_in ignore: true, code: '$1= true;'
|
|
69
|
+
end
|
|
70
|
+
spec.suppress_warning(473, 'wxPropertyGridPage::DoInsert')
|
|
71
|
+
end
|
|
72
|
+
end # class PropertyGridPage
|
|
73
|
+
|
|
74
|
+
end # class Director
|
|
75
|
+
|
|
76
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,32 @@
|
|
|
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 PropertyGridPageState < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
super
|
|
14
|
+
spec.items << 'wxPropertyGridHitTestResult'
|
|
15
|
+
spec.gc_never 'wxPropertyGridPageState'
|
|
16
|
+
spec.gc_as_temporary 'wxPropertyGridHitTestResult'
|
|
17
|
+
spec.make_abstract 'wxPropertyGridPageState'
|
|
18
|
+
spec.disable_proxies
|
|
19
|
+
spec.ignore 'wxPropertyGridPageState::DoDelete',
|
|
20
|
+
'wxPropertyGridPageState::DoInsert'
|
|
21
|
+
if Config.instance.wx_version >= '3.3.0'
|
|
22
|
+
spec.ignore 'wxPropertyGridPageState::DoSetSplitter'
|
|
23
|
+
else
|
|
24
|
+
spec.ignore 'wxPropertyGridPageState::DoSetSplitterPosition'
|
|
25
|
+
end
|
|
26
|
+
spec.do_not_generate :variables, :enums, :defines, :functions
|
|
27
|
+
end
|
|
28
|
+
end # class PropertyGridPageState
|
|
29
|
+
|
|
30
|
+
end # class Director
|
|
31
|
+
|
|
32
|
+
end # module WXRuby3
|