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,55 @@
|
|
|
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 Utils < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
spec.items.replace %w[utils.h]
|
|
14
|
+
spec.ignore %w[
|
|
15
|
+
wxGetenv
|
|
16
|
+
wxGetEnv
|
|
17
|
+
wxSetEnv
|
|
18
|
+
wxUnsetEnv
|
|
19
|
+
wxGetEnvMap
|
|
20
|
+
wxSecureZeroMemory
|
|
21
|
+
wxGetBatteryState
|
|
22
|
+
wxGetPowerType
|
|
23
|
+
wxGetDisplayName
|
|
24
|
+
wxSetDisplayName
|
|
25
|
+
wxGetDiskSpace
|
|
26
|
+
wxLoadUserResource
|
|
27
|
+
wxQsort
|
|
28
|
+
wxGetOsVersion
|
|
29
|
+
wxGetLinuxDistributionInfo
|
|
30
|
+
wxExecute
|
|
31
|
+
wxGetProcessId
|
|
32
|
+
wxKill
|
|
33
|
+
wxShell
|
|
34
|
+
wxMicroSleep
|
|
35
|
+
wxMilliSleep
|
|
36
|
+
wxSleep
|
|
37
|
+
wxUsleep
|
|
38
|
+
wxNow
|
|
39
|
+
wxDecToHex
|
|
40
|
+
wxHexToDec
|
|
41
|
+
wxStripMenuCodes
|
|
42
|
+
]
|
|
43
|
+
spec.ignore 'wxPostDelete' unless Config.instance.wx_version >= '3.3.0'
|
|
44
|
+
spec.ignore 'wxGetEmailAddress(char *,int)',
|
|
45
|
+
'wxGetUserId(char *,int)',
|
|
46
|
+
'wxGetUserName(char *,int)'
|
|
47
|
+
# we want only the functions that are not ignored
|
|
48
|
+
spec.do_not_generate(:classes, :typedefs, :variables, :enums, :defines)
|
|
49
|
+
super
|
|
50
|
+
end
|
|
51
|
+
end # class Utils
|
|
52
|
+
|
|
53
|
+
end # class Director
|
|
54
|
+
|
|
55
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,44 @@
|
|
|
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 Validator < EvtHandler
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
super
|
|
16
|
+
# make Ruby director and wrappers use custom implementation
|
|
17
|
+
spec.use_class_implementation('wxValidator', 'wxRubyValidator')
|
|
18
|
+
# provide custom wxRuby derivative of validator
|
|
19
|
+
spec.add_header_code <<~__HEREDOC
|
|
20
|
+
class wxRubyValidator : public wxValidator
|
|
21
|
+
{
|
|
22
|
+
public:
|
|
23
|
+
wxRubyValidator () : wxValidator () {}
|
|
24
|
+
virtual ~wxRubyValidator ()
|
|
25
|
+
{
|
|
26
|
+
wxRuby_ReleaseEvtHandlerProcs(this);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// these two methods are noops in wxRuby (since we do not support C++ data transfer there)
|
|
30
|
+
// but we want them to always return true to prevent wxWidgets from complaining
|
|
31
|
+
bool TransferFromWindow () override { return true; }
|
|
32
|
+
bool TransferToWindow () override { return true; }
|
|
33
|
+
};
|
|
34
|
+
__HEREDOC
|
|
35
|
+
# will be provided as a pure Ruby method
|
|
36
|
+
spec.ignore 'wxValidator::Clone'
|
|
37
|
+
# not provided in Ruby
|
|
38
|
+
spec.ignore %w[wxValidator::TransferFromWindow wxValidator::TransferToWindow]
|
|
39
|
+
end
|
|
40
|
+
end # class Validator
|
|
41
|
+
|
|
42
|
+
end # class Director
|
|
43
|
+
|
|
44
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,549 @@
|
|
|
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 Variant < Director
|
|
11
|
+
|
|
12
|
+
include Typemap::DateTime
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
super
|
|
16
|
+
# variants are (almost) always returned by value and never transfer ownership
|
|
17
|
+
# so we do not need tracking or special free function
|
|
18
|
+
spec.gc_as_temporary 'wxVariant'
|
|
19
|
+
spec.disable_proxies
|
|
20
|
+
# add custom wxVariant extensions so to be
|
|
21
|
+
# able to handle all PGProperty specific value types
|
|
22
|
+
spec.add_header_code <<~__HEREDOC
|
|
23
|
+
#include <wx/font.h>
|
|
24
|
+
#ifdef wxUSE_PROPGRID
|
|
25
|
+
# include <wx/propgrid/advprops.h>
|
|
26
|
+
#endif
|
|
27
|
+
#ifndef __WXRB_DATETIME_HELPERS__
|
|
28
|
+
#include <wx/datetime.h>
|
|
29
|
+
WXRB_EXPORT_FLAG wxDateTime* wxRuby_wxDateTimeFromRuby(VALUE ruby_value);
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
static WxRuby_ID var_to_time_id("to_time");
|
|
33
|
+
static WxRuby_ID var_Variant_id("Variant");
|
|
34
|
+
static WxRuby_ID var_Font_id("Font");
|
|
35
|
+
static WxRuby_ID var_Colour_id("Colour");
|
|
36
|
+
static WxRuby_ID var_ColourPropertyValue_id("ColourPropertyValue");
|
|
37
|
+
static WxRuby_ID var_PG_id("PG");
|
|
38
|
+
|
|
39
|
+
__HEREDOC
|
|
40
|
+
# add Ruby to Variant auto converter
|
|
41
|
+
spec.add_wrapper_code <<~__HEREDOC
|
|
42
|
+
|
|
43
|
+
WXRUBY_EXPORT wxVariant wxRuby_ConvertRbValue2Variant(VALUE rbval)
|
|
44
|
+
{
|
|
45
|
+
if (!NIL_P(rbval))
|
|
46
|
+
{
|
|
47
|
+
long lval;
|
|
48
|
+
double dval;
|
|
49
|
+
if (rb_obj_is_kind_of(rbval, rb_cTime) || rb_respond_to(rbval, var_to_time_id()))
|
|
50
|
+
{
|
|
51
|
+
wxDateTime* wxdt = wxRuby_wxDateTimeFromRuby(rbval);
|
|
52
|
+
wxVariant var(*wxdt);
|
|
53
|
+
delete wxdt;
|
|
54
|
+
return var;
|
|
55
|
+
}
|
|
56
|
+
if (TYPE(rbval) == T_DATA)
|
|
57
|
+
{
|
|
58
|
+
void *ptr;
|
|
59
|
+
VALUE klass;
|
|
60
|
+
if (rb_obj_is_kind_of(rbval, klass = rb_const_get(mWxCore, var_Variant_id())))
|
|
61
|
+
{
|
|
62
|
+
int res = SWIG_ConvertPtr(rbval, &ptr, SWIGTYPE_p_wxVariant, 0);
|
|
63
|
+
if (!SWIG_IsOK(res)) {
|
|
64
|
+
rb_raise(rb_eTypeError, "Unexpected failure to convert to wxVariant");
|
|
65
|
+
}
|
|
66
|
+
return wxVariant(*static_cast<wxVariant*> (ptr));
|
|
67
|
+
}
|
|
68
|
+
if (rb_obj_is_kind_of(rbval, klass = rb_const_get(mWxCore, var_Font_id())))
|
|
69
|
+
{
|
|
70
|
+
swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
|
|
71
|
+
int res = SWIG_ConvertPtr(rbval, &ptr, swig_type, 0);
|
|
72
|
+
if (!SWIG_IsOK(res)) {
|
|
73
|
+
rb_raise(rb_eTypeError, "Unexpected failure to convert to wxFont");
|
|
74
|
+
}
|
|
75
|
+
wxVariant var; var << *static_cast<wxFont*> (ptr);
|
|
76
|
+
return var;
|
|
77
|
+
}
|
|
78
|
+
if (rb_obj_is_kind_of(rbval, klass = rb_const_get(mWxCore, var_Colour_id())))
|
|
79
|
+
{
|
|
80
|
+
swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
|
|
81
|
+
int res = SWIG_ConvertPtr(rbval, &ptr, swig_type, 0);
|
|
82
|
+
if (!SWIG_IsOK(res)) {
|
|
83
|
+
rb_raise(rb_eTypeError, "Unexpected failure to convert to wxColour");
|
|
84
|
+
}
|
|
85
|
+
wxVariant var; var << *static_cast<wxColour*> (ptr);
|
|
86
|
+
return var;
|
|
87
|
+
}
|
|
88
|
+
#ifdef wxUSE_PROPGRID
|
|
89
|
+
if (rb_obj_is_kind_of(rbval, klass = rb_const_get(mWxCore, var_ColourPropertyValue_id())))
|
|
90
|
+
{
|
|
91
|
+
swig_type_info* swig_type = wxRuby_GetSwigTypeForClass(klass);
|
|
92
|
+
int res = SWIG_ConvertPtr(rbval, &ptr, swig_type, 0);
|
|
93
|
+
if (!SWIG_IsOK(res)) {
|
|
94
|
+
rb_raise(rb_eTypeError, "Unexpected failure to convert to wxColourPropertyValue");
|
|
95
|
+
}
|
|
96
|
+
wxVariant var; var << *static_cast<wxColourPropertyValue*> (ptr);
|
|
97
|
+
return var;
|
|
98
|
+
}
|
|
99
|
+
#endif
|
|
100
|
+
}
|
|
101
|
+
else if (TYPE(rbval) == T_ARRAY)
|
|
102
|
+
{
|
|
103
|
+
if ((RARRAY_LEN(rbval) > 0 && TYPE(rb_ary_entry(rbval, 0)) == T_STRING))
|
|
104
|
+
{
|
|
105
|
+
wxArrayString arrs;
|
|
106
|
+
for (int i = 0; i < RARRAY_LEN(rbval); i++)
|
|
107
|
+
{
|
|
108
|
+
VALUE str = rb_ary_entry(rbval, i);
|
|
109
|
+
wxString item(StringValuePtr(str), wxConvUTF8);
|
|
110
|
+
arrs.Add(item);
|
|
111
|
+
}
|
|
112
|
+
return wxVariant(arrs);
|
|
113
|
+
}
|
|
114
|
+
if (RARRAY_LEN(rbval) == 0 ||
|
|
115
|
+
rb_obj_is_kind_of(rb_ary_entry(rbval, 0), rb_const_get(mWxCore, var_Variant_id())))
|
|
116
|
+
{
|
|
117
|
+
wxVariantList vlist;
|
|
118
|
+
for (int i = 0; i < RARRAY_LEN(rbval); i++)
|
|
119
|
+
{
|
|
120
|
+
void *ptr;
|
|
121
|
+
VALUE var = rb_ary_entry(rbval, i);
|
|
122
|
+
int res = SWIG_ConvertPtr(var, &ptr, SWIGTYPE_p_wxVariant, 0);
|
|
123
|
+
if (!SWIG_IsOK(res)) {
|
|
124
|
+
rb_raise(rb_eTypeError, "Array of Variant should contain nothing else but Variants");
|
|
125
|
+
}
|
|
126
|
+
// the default constructed wxVariantList will not delete it's contents so no need to copy variant
|
|
127
|
+
vlist.Append(static_cast<wxVariant*>(ptr));
|
|
128
|
+
}
|
|
129
|
+
return wxVariant(vlist);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else
|
|
133
|
+
{
|
|
134
|
+
if (TYPE(rbval) == T_STRING)
|
|
135
|
+
{
|
|
136
|
+
return wxVariant(RSTR_TO_WXSTR(rbval));
|
|
137
|
+
}
|
|
138
|
+
if ((TYPE(rbval) == T_TRUE) || (TYPE(rbval) == T_FALSE))
|
|
139
|
+
{
|
|
140
|
+
return wxVariant(TYPE(rbval) == T_TRUE);
|
|
141
|
+
}
|
|
142
|
+
#ifdef wxUSE_LONGLONG
|
|
143
|
+
if ((sizeof(long) < 8) && (TYPE(rbval) == T_BIGNUM) && (rb_big_sign(rbval) == 0))
|
|
144
|
+
{
|
|
145
|
+
wxLongLong_t ll = rb_big2ll(rbval);
|
|
146
|
+
return wxVariant(wxLongLong(ll));
|
|
147
|
+
}
|
|
148
|
+
#endif
|
|
149
|
+
if (SWIG_CheckState(SWIG_AsVal_long(rbval, &lval)))
|
|
150
|
+
{
|
|
151
|
+
return wxVariant(lval);
|
|
152
|
+
}
|
|
153
|
+
if ((TYPE(rbval) == T_FIXNUM || TYPE(rbval) == T_BIGNUM))
|
|
154
|
+
{
|
|
155
|
+
wxULongLong_t ull = TYPE(rbval) == T_FIXNUM ? NUM2ULL(rbval) : rb_big2ull(rbval);
|
|
156
|
+
return wxVariant(wxULongLong(ull));
|
|
157
|
+
}
|
|
158
|
+
if (SWIG_CheckState(SWIG_AsVal_double(rbval, &dval)))
|
|
159
|
+
{
|
|
160
|
+
return wxVariant(dval);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// if nothing else; wrap as Ruby value
|
|
164
|
+
return wxVariant(new WXRBValueVariantData(rbval));
|
|
165
|
+
}
|
|
166
|
+
return wxVariant();
|
|
167
|
+
}
|
|
168
|
+
__HEREDOC
|
|
169
|
+
spec.add_extend_code 'wxVariant', <<~__HEREDOC
|
|
170
|
+
wxVariant(const wxFont& val, const wxString &name=wxEmptyString)
|
|
171
|
+
{
|
|
172
|
+
wxVariant var(0L, name);
|
|
173
|
+
var << val;
|
|
174
|
+
return new wxVariant(var);
|
|
175
|
+
}
|
|
176
|
+
wxVariant(const wxColour& val, const wxString &name=wxEmptyString)
|
|
177
|
+
{
|
|
178
|
+
wxVariant var(0L, name);
|
|
179
|
+
var << val;
|
|
180
|
+
return new wxVariant(var);
|
|
181
|
+
}
|
|
182
|
+
wxVariant(const wxColourPropertyValue& val, const wxString &name=wxEmptyString)
|
|
183
|
+
{
|
|
184
|
+
wxVariant var(0L, name);
|
|
185
|
+
var << val;
|
|
186
|
+
return new wxVariant(var);
|
|
187
|
+
}
|
|
188
|
+
wxFont GetFont()
|
|
189
|
+
{
|
|
190
|
+
wxFont font; font << *self; return font;
|
|
191
|
+
}
|
|
192
|
+
wxColour GetColour()
|
|
193
|
+
{
|
|
194
|
+
wxColour clr; clr << *self; return clr;
|
|
195
|
+
}
|
|
196
|
+
wxColourPropertyValue GetColourPropertyValue()
|
|
197
|
+
{
|
|
198
|
+
wxColourPropertyValue cpv; cpv << *self; return cpv;
|
|
199
|
+
}
|
|
200
|
+
__HEREDOC
|
|
201
|
+
# ignore all operator== variants but the operator==(const wxVariant&) version
|
|
202
|
+
spec.ignore 'wxVariant::operator==', ignore_doc: false
|
|
203
|
+
spec.regard 'wxVariant::operator==(const wxVariant &) const' # this should work as ignores are processed before regards
|
|
204
|
+
spec.ignore 'wxVariant::Convert' # troublesome overloads in Ruby
|
|
205
|
+
# need type checks to prevent clashing with Time
|
|
206
|
+
spec.map 'const wxVariant&' do
|
|
207
|
+
map_typecheck precedence: 1, code: <<~__CODE
|
|
208
|
+
$1 = rb_obj_is_kind_of($input, rb_const_get(mWxCore, var_Variant_id()));
|
|
209
|
+
__CODE
|
|
210
|
+
end
|
|
211
|
+
spec.map 'const wxFont&' do
|
|
212
|
+
map_typecheck precedence: 2, code: <<~__CODE
|
|
213
|
+
$1 = rb_obj_is_kind_of($input, rb_const_get(mWxCore, var_Font_id()));
|
|
214
|
+
__CODE
|
|
215
|
+
end
|
|
216
|
+
spec.map 'const wxColour&' do
|
|
217
|
+
map_typecheck precedence: 3, code: <<~__CODE
|
|
218
|
+
$1 = rb_obj_is_kind_of($input, rb_const_get(mWxCore, var_Colour_id()));
|
|
219
|
+
__CODE
|
|
220
|
+
end
|
|
221
|
+
spec.map 'const wxColourPropertyValue&' do
|
|
222
|
+
map_typecheck precedence: 4, code: <<~__CODE
|
|
223
|
+
VALUE mWxPG = rb_const_get(mWxCore, var_PG_id());
|
|
224
|
+
$1 = rb_obj_is_kind_of($input, rb_const_get(mWxPG, var_ColourPropertyValue_id()));
|
|
225
|
+
__CODE
|
|
226
|
+
end
|
|
227
|
+
if Config.instance.features_set?('wxUSE_LONGLONG')
|
|
228
|
+
# wxLongLong mapping to be considered before considering 'long' (see typecheck precedence)
|
|
229
|
+
spec.map 'wxLongLong' => 'Integer' do
|
|
230
|
+
map_in code: <<~__CODE
|
|
231
|
+
wxLongLong_t ll = rb_big2ll($input);
|
|
232
|
+
$1 = ll;
|
|
233
|
+
__CODE
|
|
234
|
+
map_out code: <<~__CODE
|
|
235
|
+
$result = LL2NUM($1.GetValue());
|
|
236
|
+
__CODE
|
|
237
|
+
# only map to wxLongLong if size of long is less than 64bit and a bignum given otherwise leave it to long mapping
|
|
238
|
+
map_typecheck precedence: 10, code: '$1 = (sizeof(long) < 8) && (TYPE($input) == T_BIGNUM) && (rb_big_sign($input) == 0);'
|
|
239
|
+
end
|
|
240
|
+
# wxULongLong mapping to be considered after considering wxLongLong and 'long' (see typecheck precedence)
|
|
241
|
+
spec.map 'wxULongLong' => 'Integer' do
|
|
242
|
+
map_in code: <<~__CODE
|
|
243
|
+
wxULongLong_t ull = TYPE($input) == T_FIXNUM ? NUM2ULL($input) : rb_big2ull($input);
|
|
244
|
+
$1 = ull;
|
|
245
|
+
__CODE
|
|
246
|
+
map_out code: <<~__CODE
|
|
247
|
+
$result = ULL2NUM($1.GetValue());
|
|
248
|
+
__CODE
|
|
249
|
+
# only map to wxULongLong if integer specified
|
|
250
|
+
map_typecheck precedence: 69, code: '$1 = (TYPE($input) == T_FIXNUM || TYPE($input) == T_BIGNUM);'
|
|
251
|
+
end
|
|
252
|
+
else
|
|
253
|
+
spec.ignore 'wxVariant::wxVariant(wxLongLong, const wxString &)',
|
|
254
|
+
'wxVariant::wxVariant(wxULongLong, const wxString &)'
|
|
255
|
+
end
|
|
256
|
+
# wxRuby does not support wxAny or generic wxObject
|
|
257
|
+
spec.ignore 'wxVariant::wxVariant(const wxAny&)',
|
|
258
|
+
'wxVariant::GetAny',
|
|
259
|
+
'wxVariant::wxVariant(wxObject*, const wxString&)',
|
|
260
|
+
'wxVariant::GetWxObjectPtr',
|
|
261
|
+
'wxVariant::IsValueKindOf'
|
|
262
|
+
# ignore shadowing methods
|
|
263
|
+
spec.ignore 'wxVariant::wxVariant(const wxChar *, const wxString &)',
|
|
264
|
+
'wxVariant::wxVariant(wxChar, const wxString &)'
|
|
265
|
+
# not really handy in Ruby; replace by pure Ruby #each
|
|
266
|
+
spec.ignore 'wxVariant::GetList'
|
|
267
|
+
# replace with custom extensions
|
|
268
|
+
spec.ignore 'wxVariant::operator[]'
|
|
269
|
+
# the index operators are the only methods returning
|
|
270
|
+
# by reference, but they still do not transfer ownership
|
|
271
|
+
spec.add_extend_code 'wxVariant', <<~__HEREDOC
|
|
272
|
+
// def [](idx) end
|
|
273
|
+
wxVariant& __getitem__(size_t idx)
|
|
274
|
+
{
|
|
275
|
+
return (*self)[idx];
|
|
276
|
+
}
|
|
277
|
+
// def []=(idx, variant) end
|
|
278
|
+
wxVariant& __setitem__(size_t idx, const wxVariant& var)
|
|
279
|
+
{
|
|
280
|
+
(*self)[idx] = var;
|
|
281
|
+
return (*self)[idx];
|
|
282
|
+
}
|
|
283
|
+
__HEREDOC
|
|
284
|
+
spec.rename_for_ruby 'GetWxObject' => 'wxVariant::GetWxObjectPtr'
|
|
285
|
+
# override typecheck for bool to make it strict
|
|
286
|
+
spec.map 'bool' do
|
|
287
|
+
# strict bool checking here
|
|
288
|
+
map_typecheck precedence: 10000, code: <<~__CODE
|
|
289
|
+
$1 = (TYPE($input) == T_TRUE) || (TYPE($input) == T_FALSE);
|
|
290
|
+
__CODE
|
|
291
|
+
end
|
|
292
|
+
# override typecheck for wxArrayString as we also have to consider
|
|
293
|
+
# wxVariantList
|
|
294
|
+
spec.map 'const wxArrayString&' do
|
|
295
|
+
map_typecheck precedence: 'STRING_ARRAY',
|
|
296
|
+
code: '$1 = ((TYPE($input) == T_ARRAY) && (RARRAY_LEN($input) > 0) && (TYPE(rb_ary_entry($input, 0)) == T_STRING));'
|
|
297
|
+
end
|
|
298
|
+
# type map for wxVariantList
|
|
299
|
+
spec.map 'const wxVariantList&' => 'Array<Wx::Variant>' do
|
|
300
|
+
map_in temp: 'wxVariantList tmp', code: <<~__CODE
|
|
301
|
+
if (($input == Qnil) || (TYPE($input) != T_ARRAY))
|
|
302
|
+
{
|
|
303
|
+
$1 = &tmp;
|
|
304
|
+
}
|
|
305
|
+
else
|
|
306
|
+
{
|
|
307
|
+
for (int i = 0; i < RARRAY_LEN($input); i++)
|
|
308
|
+
{
|
|
309
|
+
void *ptr;
|
|
310
|
+
VALUE var = rb_ary_entry($input, i);
|
|
311
|
+
int res = SWIG_ConvertPtr(var, &ptr, SWIGTYPE_p_wxVariant, 0 );
|
|
312
|
+
if (!SWIG_IsOK(res)) {
|
|
313
|
+
SWIG_exception_fail(SWIG_ArgError(res), Ruby_Format_TypeError( "", "wxVariantList","wxVariant", 1, var ));
|
|
314
|
+
}
|
|
315
|
+
// the default constructed wxVariantList tmp will not delete it's contents so no need to copy variant
|
|
316
|
+
tmp.Append(static_cast<wxVariant*>(ptr));
|
|
317
|
+
}
|
|
318
|
+
$1 = &tmp;
|
|
319
|
+
}
|
|
320
|
+
__CODE
|
|
321
|
+
map_out code: <<~__CODE
|
|
322
|
+
$result = rb_ary_new();
|
|
323
|
+
for (size_t i = 0; i < $1->GetCount(); i++)
|
|
324
|
+
{
|
|
325
|
+
rb_ary_push($result, SWIG_NewPointerObj(SWIG_as_voidptr((*$1)[i]), SWIGTYPE_p_wxVariant, 0));
|
|
326
|
+
}
|
|
327
|
+
__CODE
|
|
328
|
+
map_typecheck precedence: 'OBJECT_ARRAY',
|
|
329
|
+
code: <<~__CODE
|
|
330
|
+
$1 = ((TYPE($input) == T_ARRAY) &&
|
|
331
|
+
((RARRAY_LEN($input) == 0) || rb_obj_is_kind_of(rb_ary_entry($input, 0), rb_const_get(mWxCore, var_Variant_id()))));
|
|
332
|
+
__CODE
|
|
333
|
+
end
|
|
334
|
+
# ignore void* support
|
|
335
|
+
spec.ignore 'wxVariant::wxVariant(void*, const wxString &)',
|
|
336
|
+
'wxVariant::GetVoidPtr'
|
|
337
|
+
# do not expose (not really useful in Ruby) but map to any Ruby Object-s not matching any other types
|
|
338
|
+
spec.map 'wxVariantData*' => 'Object' do
|
|
339
|
+
map_in code: '$1 = new WXRBValueVariantData($input);'
|
|
340
|
+
map_out code: <<~__CODE
|
|
341
|
+
if ($1 && $1->GetType() == WXRBValueVariantData::type_name_)
|
|
342
|
+
{
|
|
343
|
+
$result = ((WXRBValueVariantData*)$1)->GetValue();
|
|
344
|
+
}
|
|
345
|
+
else
|
|
346
|
+
{
|
|
347
|
+
$result = Qnil;
|
|
348
|
+
}
|
|
349
|
+
__CODE
|
|
350
|
+
# set precedence to be considered as very last option (like void*)
|
|
351
|
+
map_typecheck precedence: 20000, code: '$1 = TRUE;'
|
|
352
|
+
end
|
|
353
|
+
spec.rename_for_ruby 'GetObject' => 'wxVariant::GetData'
|
|
354
|
+
spec.ignore 'wxVariant::SetData'
|
|
355
|
+
# provide a custom wxVariantData implementation for Ruby VALUE
|
|
356
|
+
# and some interface extensions to use that from Ruby
|
|
357
|
+
spec.add_header_code <<~__HEREDOC
|
|
358
|
+
class WXRBValueVariantData;
|
|
359
|
+
// Mapping of WXRBValueVariantData* to Ruby VALUE
|
|
360
|
+
WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
|
|
361
|
+
WXRBVariantDataToRbValueHash);
|
|
362
|
+
static WXRBVariantDataToRbValueHash Variant_Value_Map;
|
|
363
|
+
|
|
364
|
+
static void wxRuby_markRbValueVariants()
|
|
365
|
+
{
|
|
366
|
+
WXRBVariantDataToRbValueHash::iterator it;
|
|
367
|
+
for( it = Variant_Value_Map.begin(); it != Variant_Value_Map.end(); ++it )
|
|
368
|
+
{
|
|
369
|
+
VALUE obj = it->second;
|
|
370
|
+
#ifdef __WXRB_DEBUG__
|
|
371
|
+
if (wxRuby_TraceLevel()>1)
|
|
372
|
+
{
|
|
373
|
+
void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0);
|
|
374
|
+
std::wcout << "**** wxRuby_markRbValueVariants : " << it->first << "|" << (void*)c_ptr << std::endl;
|
|
375
|
+
}
|
|
376
|
+
#endif
|
|
377
|
+
rb_gc_mark(obj);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
static void wxRuby_RegisterValueVariantData(void* ptr, VALUE rbval)
|
|
382
|
+
{
|
|
383
|
+
#ifdef __WXRB_DEBUG__
|
|
384
|
+
if (wxRuby_TraceLevel()>1)
|
|
385
|
+
{
|
|
386
|
+
void *c_ptr = (TYPE(rbval) == T_DATA ? DATA_PTR(rbval) : 0);
|
|
387
|
+
std::wcout << "**** wxRuby_RegisterValueVariantData : " << ptr << "|" << (void*)c_ptr << std::endl;
|
|
388
|
+
}
|
|
389
|
+
#endif
|
|
390
|
+
Variant_Value_Map[ptr] = rbval;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
static void wxRuby_UnregisterValueVariantData(void* ptr)
|
|
394
|
+
{
|
|
395
|
+
#ifdef __WXRB_DEBUG__
|
|
396
|
+
if (wxRuby_TraceLevel()>1)
|
|
397
|
+
std::wcout << "**** wxRuby_UnregisterValueVariantData : " << ptr << std::endl;
|
|
398
|
+
#endif
|
|
399
|
+
Variant_Value_Map.erase(ptr);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
class WXRUBY_EXPORT WXRBValueVariantData : public wxVariantData
|
|
403
|
+
{
|
|
404
|
+
public:
|
|
405
|
+
static wxString type_name_;
|
|
406
|
+
|
|
407
|
+
WXRBValueVariantData() : m_value(Qnil) { }
|
|
408
|
+
WXRBValueVariantData(VALUE rbval) : m_value(rbval) { wxRuby_RegisterValueVariantData(this, rbval); }
|
|
409
|
+
virtual ~WXRBValueVariantData() { wxRuby_UnregisterValueVariantData(this); }
|
|
410
|
+
|
|
411
|
+
VALUE GetValue() { return m_value; }
|
|
412
|
+
|
|
413
|
+
// Override these to provide common functionality
|
|
414
|
+
virtual bool Eq(wxVariantData& data) const wxOVERRIDE
|
|
415
|
+
{
|
|
416
|
+
wxASSERT( GetType() == data.GetType() );
|
|
417
|
+
WXRBValueVariantData & otherData = (WXRBValueVariantData &) data;
|
|
418
|
+
return otherData.m_value == m_value;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
virtual wxString GetType() const wxOVERRIDE
|
|
422
|
+
{
|
|
423
|
+
return type_name_;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
virtual wxVariantData* Clone() const wxOVERRIDE
|
|
427
|
+
{
|
|
428
|
+
return new WXRBValueVariantData(m_value);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
virtual bool Write(wxString& str) const wxOVERRIDE
|
|
432
|
+
{
|
|
433
|
+
static WxRuby_ID to_s_id("to_s");
|
|
434
|
+
|
|
435
|
+
VALUE s = rb_funcall(m_value, to_s_id(), 0);
|
|
436
|
+
str = RSTR_TO_WXSTR(s);
|
|
437
|
+
return true;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
//#if wxUSE_ANY
|
|
441
|
+
// // Converts value to wxAny, if possible. Return true if successful.
|
|
442
|
+
// virtual bool GetAsAny(wxAny* WXUNUSED(any)) const { return false; }
|
|
443
|
+
//#endif
|
|
444
|
+
protected:
|
|
445
|
+
VALUE m_value;
|
|
446
|
+
};
|
|
447
|
+
wxString WXRBValueVariantData::type_name_ = wxS("WXRB_VALUE");
|
|
448
|
+
|
|
449
|
+
WXRUBY_EXPORT VALUE& operator << (VALUE &value, const wxVariant &variant)
|
|
450
|
+
{
|
|
451
|
+
wxASSERT( variant.GetType() == WXRBValueVariantData::type_name_);
|
|
452
|
+
WXRBValueVariantData *data = (WXRBValueVariantData*) variant.GetData();
|
|
453
|
+
value = data->GetValue();
|
|
454
|
+
return value;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
WXRUBY_EXPORT wxVariant& operator << (wxVariant &variant, const VALUE &value)
|
|
458
|
+
{
|
|
459
|
+
WXRBValueVariantData *data = new WXRBValueVariantData(value);
|
|
460
|
+
variant.SetData(data);
|
|
461
|
+
return variant;
|
|
462
|
+
}
|
|
463
|
+
__HEREDOC
|
|
464
|
+
spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markRbValueVariants);'
|
|
465
|
+
# add custom extension methods 'assign' as replacement for operator=
|
|
466
|
+
spec.add_extend_code 'wxVariant', <<~__HEREDOC
|
|
467
|
+
void assign(const wxVariant& v)
|
|
468
|
+
{ (*self) = v; }
|
|
469
|
+
void assign(const wxFont& v)
|
|
470
|
+
{ (*self) << v; }
|
|
471
|
+
void assign(const wxColour& v)
|
|
472
|
+
{ (*self) << v; }
|
|
473
|
+
void assign(const wxColourPropertyValue& v)
|
|
474
|
+
{ (*self) << v; }
|
|
475
|
+
void assign(wxVariantData* v)
|
|
476
|
+
{ self->SetData(v); }
|
|
477
|
+
void assign(const wxString& v)
|
|
478
|
+
{ (*self) = v; }
|
|
479
|
+
void assign(long v)
|
|
480
|
+
{ (*self) = v; }
|
|
481
|
+
void assign(bool v)
|
|
482
|
+
{ (*self) = v; }
|
|
483
|
+
void assign(double v)
|
|
484
|
+
{ (*self) = v; }
|
|
485
|
+
void assign(wxLongLong v)
|
|
486
|
+
{ (*self) = v; }
|
|
487
|
+
void assign(wxULongLong v)
|
|
488
|
+
{ (*self) = v; }
|
|
489
|
+
void assign(const wxVariantList& v)
|
|
490
|
+
{ (*self) = v; }
|
|
491
|
+
void assign(const wxDateTime& v)
|
|
492
|
+
{ (*self) = v; }
|
|
493
|
+
void assign(const wxArrayString& v)
|
|
494
|
+
{ (*self) = v; }
|
|
495
|
+
|
|
496
|
+
VALUE to_i()
|
|
497
|
+
{
|
|
498
|
+
static WxRuby_ID to_i_id("to_i");
|
|
499
|
+
|
|
500
|
+
if (self->IsNull()) return INT2NUM(0);
|
|
501
|
+
wxString ts = self->GetType();
|
|
502
|
+
if (ts == wxS("long")) return SWIG_From_long(self->GetLong());
|
|
503
|
+
if (ts == wxS("longlong")) return LL2NUM(self->GetLongLong().GetValue());
|
|
504
|
+
if (ts == wxS("ulonglong")) return ULL2NUM(self->GetULongLong().GetValue());
|
|
505
|
+
if (ts == wxS("double")) return rb_funcall(SWIG_From_double(self->GetDouble()), to_i_id(), 0);
|
|
506
|
+
if (ts == wxS("datetime")) return rb_funcall(wxRuby_wxDateTimeToRuby(self->GetDateTime()), to_i_id(), 0);
|
|
507
|
+
rb_raise(rb_eTypeError, "Cannot convert Variant<%s> to Integer", (const char*)ts.ToAscii());
|
|
508
|
+
return Qnil;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
VALUE to_f()
|
|
512
|
+
{
|
|
513
|
+
static WxRuby_ID to_f_id("to_f");
|
|
514
|
+
|
|
515
|
+
if (self->IsNull()) return SWIG_From_double(0.0);
|
|
516
|
+
wxString ts = self->GetType();
|
|
517
|
+
if (ts == wxS("long")) return rb_funcall(SWIG_From_long(self->GetLong()), to_f_id(), 0);
|
|
518
|
+
if (ts == wxS("longlong")) return rb_funcall(LL2NUM(self->GetLongLong().GetValue()), to_f_id(), 0);
|
|
519
|
+
if (ts == wxS("ulonglong")) return rb_funcall(ULL2NUM(self->GetULongLong().GetValue()), to_f_id(), 0);
|
|
520
|
+
if (ts == wxS("double")) return SWIG_From_double(self->GetDouble());
|
|
521
|
+
if (ts == wxS("datetime")) return rb_funcall(wxRuby_wxDateTimeToRuby(self->GetDateTime()), to_f_id(), 0);
|
|
522
|
+
rb_raise(rb_eTypeError, "Cannot convert Variant<%s> to Integer", (const char*)ts.ToAscii());
|
|
523
|
+
return Qnil;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
VALUE to_s()
|
|
527
|
+
{
|
|
528
|
+
static WxRuby_ID to_s_id("to_s");
|
|
529
|
+
|
|
530
|
+
if (self->IsNull()) return rb_str_new2("");
|
|
531
|
+
wxString ts = self->GetType();
|
|
532
|
+
if (ts == wxS("string")) return WXSTR_TO_RSTR(self->GetString());
|
|
533
|
+
if (ts == wxS("bool")) return rb_funcall(SWIG_From_bool(self->GetBool()), to_s_id(), 0);
|
|
534
|
+
if (ts == wxS("long")) return rb_funcall(SWIG_From_long(self->GetLong()), to_s_id(), 0);
|
|
535
|
+
if (ts == wxS("longlong")) return rb_funcall(LL2NUM(self->GetLongLong().GetValue()), to_s_id(), 0);
|
|
536
|
+
if (ts == wxS("ulonglong")) return rb_funcall(ULL2NUM(self->GetULongLong().GetValue()), to_s_id(), 0);
|
|
537
|
+
if (ts == wxS("double")) return rb_funcall(SWIG_From_double(self->GetDouble()), to_s_id(), 0);
|
|
538
|
+
if (ts == wxS("datetime")) return rb_funcall(wxRuby_wxDateTimeToRuby(self->GetDateTime()), to_s_id(), 0);
|
|
539
|
+
if (ts == WXRBValueVariantData::type_name_) return rb_funcall(((WXRBValueVariantData*)self->GetData())->GetValue(), to_s_id(), 0);
|
|
540
|
+
rb_raise(rb_eTypeError, "Cannot convert Variant<%s> to String", (const char*)ts.ToAscii());
|
|
541
|
+
return Qnil;
|
|
542
|
+
}
|
|
543
|
+
__HEREDOC
|
|
544
|
+
end
|
|
545
|
+
end # class Variant
|
|
546
|
+
|
|
547
|
+
end # class Director
|
|
548
|
+
|
|
549
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,46 @@
|
|
|
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 VListBox < Window
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
super
|
|
16
|
+
spec.override_inheritance_chain('wxVListBox', %w[wxVScrolledWindow wxPanel wxWindow wxEvtHandler wxObject])
|
|
17
|
+
spec.make_abstract 'wxVListBox'
|
|
18
|
+
# provide base implementations for OnDrawItem and OnMeasureItem
|
|
19
|
+
spec.add_header_code <<~__HEREDOC
|
|
20
|
+
// Custom subclass implementation.
|
|
21
|
+
class wxRubyVListBox : public wxVListBox
|
|
22
|
+
{
|
|
23
|
+
public:
|
|
24
|
+
wxRubyVListBox()
|
|
25
|
+
: wxVListBox () {}
|
|
26
|
+
wxRubyVListBox(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxVListBoxNameStr)
|
|
27
|
+
: wxVListBox(parent, id, pos, size, style, name) {}
|
|
28
|
+
protected:
|
|
29
|
+
virtual void OnDrawItem(wxDC&, const wxRect&, size_t) const
|
|
30
|
+
{
|
|
31
|
+
rb_raise(rb_eNoMethodError, "Not implemented");
|
|
32
|
+
}
|
|
33
|
+
virtual wxCoord OnMeasureItem(size_t) const
|
|
34
|
+
{
|
|
35
|
+
rb_raise(rb_eNoMethodError, "Not implemented");
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
__HEREDOC
|
|
39
|
+
# make Ruby director and wrappers use custom implementation
|
|
40
|
+
spec.use_class_implementation('wxVListBox', 'wxRubyVListBox')
|
|
41
|
+
end
|
|
42
|
+
end # class VListBox
|
|
43
|
+
|
|
44
|
+
end # class Director
|
|
45
|
+
|
|
46
|
+
end # module WXRuby3
|