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,284 @@
|
|
|
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 Functions < Director
|
|
11
|
+
|
|
12
|
+
include Typemap::ArrayIntSelections
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
super
|
|
16
|
+
spec.items.clear
|
|
17
|
+
spec.add_header_code <<~__HEREDOC
|
|
18
|
+
#include <wx/image.h>
|
|
19
|
+
#include <wx/app.h>
|
|
20
|
+
#include <wx/choicdlg.h>
|
|
21
|
+
#include <wx/numdlg.h>
|
|
22
|
+
#include <wx/xrc/xmlres.h>
|
|
23
|
+
#include <wx/utils.h>
|
|
24
|
+
#include <wx/stockitem.h>
|
|
25
|
+
#include <wx/aboutdlg.h>
|
|
26
|
+
|
|
27
|
+
// Logging functions - these don't directly wrap the corresponding wx
|
|
28
|
+
// LogXXX functions because those expect a literal format string and a
|
|
29
|
+
// list of arguments, rather than a dynamic string. Instead we do the
|
|
30
|
+
// sprintf in ruby, then pass the composed message directly to the
|
|
31
|
+
// log. This also avoids format string attacks.
|
|
32
|
+
|
|
33
|
+
// Log a Wx message with the given level to the current Wx log output
|
|
34
|
+
static VALUE log_generic(int argc, VALUE *argv, VALUE self)
|
|
35
|
+
{
|
|
36
|
+
if ( wxLog::IsEnabled() )
|
|
37
|
+
{
|
|
38
|
+
wxLogLevel lvl = static_cast<wxLogLevel> (NUM2INT(argv[0]));
|
|
39
|
+
VALUE log_msg = argc==2 ? argv[1] : rb_f_sprintf(argc-1, &argv[1]);
|
|
40
|
+
wxLog::OnLog( lvl,
|
|
41
|
+
wxString(StringValuePtr(log_msg), wxConvUTF8),
|
|
42
|
+
time(NULL) );
|
|
43
|
+
}
|
|
44
|
+
return Qnil;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Log a Wx low prio Message to the current Wx log output
|
|
48
|
+
static VALUE log_info(int argc, VALUE *argv, VALUE self)
|
|
49
|
+
{
|
|
50
|
+
if ( wxLog::IsEnabled() )
|
|
51
|
+
{
|
|
52
|
+
VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
|
|
53
|
+
wxLog::OnLog( wxLOG_Info,
|
|
54
|
+
wxString(StringValuePtr(log_msg), wxConvUTF8),
|
|
55
|
+
time(NULL) );
|
|
56
|
+
}
|
|
57
|
+
return Qnil;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Log a Wx verbose Message to the current Wx log output
|
|
61
|
+
static VALUE log_verbose(int argc, VALUE *argv, VALUE self)
|
|
62
|
+
{
|
|
63
|
+
if ( wxLog::IsEnabled() && wxLog::GetVerbose () )
|
|
64
|
+
{
|
|
65
|
+
VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
|
|
66
|
+
wxLog::OnLog( wxLOG_Info,
|
|
67
|
+
wxString(StringValuePtr(log_msg), wxConvUTF8),
|
|
68
|
+
time(NULL) );
|
|
69
|
+
}
|
|
70
|
+
return Qnil;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Log a Wx Message to the current Wx log output
|
|
74
|
+
static VALUE log_message(int argc, VALUE *argv, VALUE self)
|
|
75
|
+
{
|
|
76
|
+
if ( wxLog::IsEnabled() )
|
|
77
|
+
{
|
|
78
|
+
VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
|
|
79
|
+
wxLog::OnLog( wxLOG_Message,
|
|
80
|
+
wxString(StringValuePtr(log_msg), wxConvUTF8),
|
|
81
|
+
time(NULL) );
|
|
82
|
+
}
|
|
83
|
+
return Qnil;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Log a Wx Warning message to the current Wx log output
|
|
87
|
+
static VALUE log_warning(int argc, VALUE *argv, VALUE self)
|
|
88
|
+
{
|
|
89
|
+
if ( wxLog::IsEnabled() )
|
|
90
|
+
{
|
|
91
|
+
VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
|
|
92
|
+
wxLog::OnLog( wxLOG_Warning,
|
|
93
|
+
wxString(StringValuePtr(log_msg), wxConvUTF8),
|
|
94
|
+
time(NULL) );
|
|
95
|
+
}
|
|
96
|
+
return Qnil;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Log an error message to the current output
|
|
100
|
+
static VALUE log_error(int argc, VALUE *argv, VALUE self)
|
|
101
|
+
{
|
|
102
|
+
if ( wxLog::IsEnabled() )
|
|
103
|
+
{
|
|
104
|
+
VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
|
|
105
|
+
wxLog::OnLog( wxLOG_Error,
|
|
106
|
+
wxString(StringValuePtr(log_msg), wxConvUTF8),
|
|
107
|
+
time(NULL) );
|
|
108
|
+
}
|
|
109
|
+
return Qnil;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Log a debug message
|
|
113
|
+
static VALUE log_debug(int argc, VALUE *argv, VALUE self)
|
|
114
|
+
{
|
|
115
|
+
if (wxLog::IsLevelEnabled(wxLOG_Debug, wxASCII_STR(wxLOG_COMPONENT)))
|
|
116
|
+
{
|
|
117
|
+
VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
|
|
118
|
+
wxLogDebug(wxString(StringValuePtr(log_msg), wxConvUTF8));
|
|
119
|
+
}
|
|
120
|
+
return Qnil;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Log a Wx Status message - this is directed to the status bar of the
|
|
124
|
+
// specified window, or the application main window if not specified.
|
|
125
|
+
// Based on wxWidgets code in src/generic/logg.cpp, WxLogGui::DoLog
|
|
126
|
+
static VALUE log_status(int argc, VALUE *argv, VALUE self)
|
|
127
|
+
{
|
|
128
|
+
if ( ! wxLog::IsEnabled() )
|
|
129
|
+
return Qnil;
|
|
130
|
+
|
|
131
|
+
VALUE log_msg; // The message to be written
|
|
132
|
+
wxFrame* log_frame {}; // The frame whose status bar should display the logmsg
|
|
133
|
+
|
|
134
|
+
// To a specific window's status bar
|
|
135
|
+
if( TYPE(argv[0]) == T_DATA ) {
|
|
136
|
+
log_msg = rb_f_sprintf(argc-1, &argv[1]);
|
|
137
|
+
Data_Get_Struct(argv[0], wxFrame, log_frame);
|
|
138
|
+
}
|
|
139
|
+
// To the application main window's status bar
|
|
140
|
+
else {
|
|
141
|
+
log_msg = rb_f_sprintf(argc, argv);
|
|
142
|
+
wxWindow* win = wxTheApp->GetTopWindow();
|
|
143
|
+
// Check the top window is actually a frame, not a dialog
|
|
144
|
+
if ( win != NULL && win->IsKindOf( CLASSINFO(wxFrame) ) )
|
|
145
|
+
log_frame = (wxFrame*)win;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Finally, display in the status bar if it has one
|
|
149
|
+
if ( log_frame && log_frame->GetStatusBar() )
|
|
150
|
+
log_frame->SetStatusText(wxString( StringValuePtr(log_msg), wxConvUTF8));
|
|
151
|
+
|
|
152
|
+
return Qnil;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Returns the global app object
|
|
156
|
+
static VALUE get_app(VALUE self)
|
|
157
|
+
{
|
|
158
|
+
static WxRuby_ID THE_APP_id("THE_APP");
|
|
159
|
+
|
|
160
|
+
return rb_const_get(wxRuby_Core(), THE_APP_id());
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Converts a string XRC id into a Wx id
|
|
164
|
+
static VALUE
|
|
165
|
+
xrcid(VALUE self,VALUE str_id)
|
|
166
|
+
{
|
|
167
|
+
wxString temp(StringValuePtr(str_id), wxConvUTF8);
|
|
168
|
+
int ret = wxXmlResource::GetXRCID(temp);
|
|
169
|
+
return INT2NUM(ret);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
// Returns the pointer address of the underlying C++ object as a hex
|
|
174
|
+
// string - useful for debugging
|
|
175
|
+
static VALUE
|
|
176
|
+
cpp_ptr_addr(VALUE self, VALUE obj)
|
|
177
|
+
{
|
|
178
|
+
static WxRuby_ID sprintf_id("sprintf");
|
|
179
|
+
|
|
180
|
+
size_t ptr = (size_t)DATA_PTR(obj);
|
|
181
|
+
return rb_funcall( rb_mKernel, sprintf_id(), 2,
|
|
182
|
+
rb_str_new2("0x%x"), OFFT2NUM(ptr) );
|
|
183
|
+
}
|
|
184
|
+
__HEREDOC
|
|
185
|
+
|
|
186
|
+
# All the functions which take a parent argument in this file display
|
|
187
|
+
# dialogs, so the parent argument can be nil (which is not permitted in
|
|
188
|
+
# the normal typemap defined in common.rb). So override the standard
|
|
189
|
+
# typemap and just check that the App has been started.
|
|
190
|
+
spec.map 'wxWindow* parent' do
|
|
191
|
+
map_check code: <<~__CODE
|
|
192
|
+
if ( !wxRuby_IsAppRunning() )
|
|
193
|
+
{
|
|
194
|
+
rb_raise(rb_eRuntimeError,
|
|
195
|
+
"Cannot display dialog before App.main_loop has been called");
|
|
196
|
+
}
|
|
197
|
+
__CODE
|
|
198
|
+
end
|
|
199
|
+
# hardcoded interface declarations
|
|
200
|
+
spec.add_interface_code <<~__HEREDOC
|
|
201
|
+
bool wxSafeYield(wxWindow* win = NULL, bool onlyIfNeeded = false);
|
|
202
|
+
|
|
203
|
+
// Mouse / keyboard information
|
|
204
|
+
wxWindow * wxGetActiveWindow();
|
|
205
|
+
|
|
206
|
+
// Dialog shortcuts
|
|
207
|
+
VOID_INT wxGetSelectedChoices(wxArrayInt& selections,
|
|
208
|
+
const wxString& message,
|
|
209
|
+
const wxString& caption,
|
|
210
|
+
int n, const wxString *choices,
|
|
211
|
+
wxWindow *parent = NULL,
|
|
212
|
+
int x = wxDefaultCoord,
|
|
213
|
+
int y = wxDefaultCoord,
|
|
214
|
+
bool centre = true,
|
|
215
|
+
int width = wxCHOICE_WIDTH,
|
|
216
|
+
int height = wxCHOICE_HEIGHT);
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
wxString wxFileSelector (const wxString &message,
|
|
220
|
+
const wxString &default_path=wxEmptyString,
|
|
221
|
+
const wxString &default_filename=wxEmptyString,
|
|
222
|
+
const wxString &default_extension=wxEmptyString,
|
|
223
|
+
const wxString &wildcard=wxFileSelectorDefaultWildcardStr,
|
|
224
|
+
int flags=0, wxWindow *parent=NULL, int x=wxDefaultCoord, int y=wxDefaultCoord);
|
|
225
|
+
|
|
226
|
+
wxString wxFileSelectorEx (const wxString &message=wxFileSelectorPromptStr,
|
|
227
|
+
const wxString &default_path=wxEmptyString,
|
|
228
|
+
const wxString &default_filename=wxEmptyString,
|
|
229
|
+
int *indexDefaultExtension=NULL,
|
|
230
|
+
const wxString &wildcard=wxFileSelectorDefaultWildcardStr,
|
|
231
|
+
int flags=0, wxWindow *parent=NULL, int x=wxDefaultCoord, int y=wxDefaultCoord);
|
|
232
|
+
|
|
233
|
+
wxString wxLoadFileSelector (const wxString &what,
|
|
234
|
+
const wxString &extension,
|
|
235
|
+
const wxString &default_name=wxEmptyString,
|
|
236
|
+
wxWindow *parent=NULL);
|
|
237
|
+
|
|
238
|
+
wxString wxSaveFileSelector (const wxString &what,
|
|
239
|
+
const wxString &extension,
|
|
240
|
+
const wxString &default_name=wxEmptyString,
|
|
241
|
+
wxWindow *parent=NULL);
|
|
242
|
+
|
|
243
|
+
// Managing stock ids
|
|
244
|
+
enum wxStockLabelQueryFlag {
|
|
245
|
+
wxSTOCK_NOFLAGS = 0 ,
|
|
246
|
+
wxSTOCK_WITH_MNEMONIC = 1 ,
|
|
247
|
+
wxSTOCK_WITH_ACCELERATOR = 2 ,
|
|
248
|
+
wxSTOCK_WITHOUT_ELLIPSIS = 4 ,
|
|
249
|
+
wxSTOCK_FOR_BUTTON = wxSTOCK_WITHOUT_ELLIPSIS | wxSTOCK_WITH_MNEMONIC
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
bool wxIsStockID(wxWindowID id);
|
|
253
|
+
bool wxIsStockLabel(wxWindowID id, const wxString& label);
|
|
254
|
+
wxString wxGetStockLabel(wxWindowID id,
|
|
255
|
+
long flags = wxSTOCK_WITH_MNEMONIC);
|
|
256
|
+
wxAcceleratorEntry wxGetStockAccelerator(wxWindowID id);
|
|
257
|
+
|
|
258
|
+
enum wxStockHelpStringClient
|
|
259
|
+
{
|
|
260
|
+
wxSTOCK_MENU
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
wxString wxGetStockHelpString(wxWindowID id,
|
|
264
|
+
wxStockHelpStringClient client = wxSTOCK_MENU);
|
|
265
|
+
__HEREDOC
|
|
266
|
+
spec.add_init_code <<~__HEREDOC
|
|
267
|
+
rb_define_module_function(mWxFunctions, "log_generic", VALUEFUNC(log_generic), -1);
|
|
268
|
+
rb_define_module_function(mWxFunctions, "log_info", VALUEFUNC(log_info), -1);
|
|
269
|
+
rb_define_module_function(mWxFunctions, "log_verbose", VALUEFUNC(log_verbose), -1);
|
|
270
|
+
rb_define_module_function(mWxFunctions, "log_message", VALUEFUNC(log_message), -1);
|
|
271
|
+
rb_define_module_function(mWxFunctions, "log_warning", VALUEFUNC(log_warning), -1);
|
|
272
|
+
rb_define_module_function(mWxFunctions, "log_status", VALUEFUNC(log_status), -1);
|
|
273
|
+
rb_define_module_function(mWxFunctions, "log_error", VALUEFUNC(log_error), -1);
|
|
274
|
+
rb_define_module_function(mWxFunctions, "log_debug", VALUEFUNC(log_debug), -1);
|
|
275
|
+
rb_define_module_function(mWxFunctions, "get_app", VALUEFUNC(get_app), 0);
|
|
276
|
+
rb_define_module_function(mWxFunctions, "xrcid", VALUEFUNC(xrcid), 1);
|
|
277
|
+
rb_define_module_function(mWxFunctions, "ptr_addr", VALUEFUNC(cpp_ptr_addr), 1);
|
|
278
|
+
__HEREDOC
|
|
279
|
+
end
|
|
280
|
+
end # class Functions
|
|
281
|
+
|
|
282
|
+
end # class Director
|
|
283
|
+
|
|
284
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,21 @@
|
|
|
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 GDIObject < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
spec.make_abstract('wxGDIObject')
|
|
14
|
+
spec.no_proxy('wxGDIObject')
|
|
15
|
+
super
|
|
16
|
+
end
|
|
17
|
+
end # class GDIObject
|
|
18
|
+
|
|
19
|
+
end # class Director
|
|
20
|
+
|
|
21
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,94 @@
|
|
|
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 GDICommon < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
spec.items.replace %w{wxPoint wxSize wxRect wxRealPoint wxColourDatabase}
|
|
14
|
+
# all ctors
|
|
15
|
+
spec.require_app 'wxColourDatabase'
|
|
16
|
+
# global functions
|
|
17
|
+
spec.require_app %w[wxColourDisplay wxDisplayDepth wxSetCursor wxGetClientDisplayRect
|
|
18
|
+
wxGetDisplayPPI wxGetDisplaySize wxGetDisplaySizeMM]
|
|
19
|
+
spec.ignore %w{
|
|
20
|
+
wxTheColourDatabase
|
|
21
|
+
}
|
|
22
|
+
spec.ignore [
|
|
23
|
+
'wxClientDisplayRect(int *,int *,int *,int *)',
|
|
24
|
+
'wxDisplaySize(int *,int *)',
|
|
25
|
+
'wxDisplaySizeMM(int *,int *)',
|
|
26
|
+
'wxRect::Inflate(wxCoord,wxCoord)',
|
|
27
|
+
'wxRect::Inflate(wxCoord,wxCoord) const',
|
|
28
|
+
'wxRect::Deflate(wxCoord,wxCoord)',
|
|
29
|
+
'wxRect::Deflate(wxCoord,wxCoord) const',
|
|
30
|
+
'wxRect::Offset(wxCoord,wxCoord)',
|
|
31
|
+
'wxRect::Intersect(const wxRect &)',
|
|
32
|
+
'wxRect::Union(const wxRect &)'
|
|
33
|
+
]
|
|
34
|
+
# overrule common wxPoint mapping for wxRect ctor to fix ctor ambiguities here wrt wxSize
|
|
35
|
+
spec.map 'const wxPoint& topLeft', 'const wxPoint& bottomRight', as: 'Wx::Point' do
|
|
36
|
+
map_in code: <<~__CODE
|
|
37
|
+
if ( TYPE($input) == T_DATA )
|
|
38
|
+
{
|
|
39
|
+
void* argp$argnum;
|
|
40
|
+
SWIG_ConvertPtr($input, &argp$argnum, $1_descriptor, 1 );
|
|
41
|
+
$1 = reinterpret_cast< $1_basetype * >(argp$argnum);
|
|
42
|
+
}
|
|
43
|
+
else
|
|
44
|
+
{
|
|
45
|
+
rb_raise(rb_eTypeError, "Wrong type for $1_basetype parameter");
|
|
46
|
+
}
|
|
47
|
+
__CODE
|
|
48
|
+
map_typecheck precedence: 'POINTER', code: <<~__CODE
|
|
49
|
+
void *vptr = 0;
|
|
50
|
+
$1 = 0;
|
|
51
|
+
if (TYPE($input) == T_DATA && SWIG_CheckState (SWIG_ConvertPtr ($input, &vptr, $1_descriptor, 0)))
|
|
52
|
+
$1 = 1;
|
|
53
|
+
__CODE
|
|
54
|
+
end
|
|
55
|
+
spec.map 'wxRect&' => 'Wx::Rect', 'wxSize&' => 'Wx::Size' do
|
|
56
|
+
map_out code: '$result = self; wxUnusedVar(result);'
|
|
57
|
+
end
|
|
58
|
+
spec.regard %w[
|
|
59
|
+
wxPoint::x wxPoint::y
|
|
60
|
+
wxRealPoint::x wxRealPoint::y
|
|
61
|
+
]
|
|
62
|
+
spec.set_only_for '__WXGTK__', 'wxStockCursor.wxCURSOR_DEFAULT'
|
|
63
|
+
spec.set_only_for '__X__', %w{
|
|
64
|
+
wxStockCursor.wxCURSOR_CROSS_REVERSE
|
|
65
|
+
wxStockCursor.wxCURSOR_DOUBLE_ARROW
|
|
66
|
+
wxStockCursor.wxCURSOR_BASED_ARROW_UP
|
|
67
|
+
wxStockCursor.wxCURSOR_BASED_ARROW_DOWN
|
|
68
|
+
}
|
|
69
|
+
spec.set_only_for '__WXMAC__', 'wxStockCursor.wxCURSOR_COPY_ARROW'
|
|
70
|
+
spec.add_extend_code 'wxRect', <<~__HEREDOC
|
|
71
|
+
wxRect add(const wxRect &rect) const {
|
|
72
|
+
return (*(const wxRect*)$self) + rect;
|
|
73
|
+
}
|
|
74
|
+
wxRect mul(const wxRect &rect) const {
|
|
75
|
+
return (*(const wxRect*)$self) * rect;
|
|
76
|
+
}
|
|
77
|
+
__HEREDOC
|
|
78
|
+
spec.swig_import 'swig/classes/include/wxDefs.h'
|
|
79
|
+
super
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def process(gendoc: false)
|
|
83
|
+
defmod = super
|
|
84
|
+
e = defmod.find('wxBitmapType')
|
|
85
|
+
e.items.each do |item|
|
|
86
|
+
item.ignore if item.name.end_with?('_RESOURCE')
|
|
87
|
+
end
|
|
88
|
+
defmod
|
|
89
|
+
end
|
|
90
|
+
end # class GDICommon
|
|
91
|
+
|
|
92
|
+
end # class Director
|
|
93
|
+
|
|
94
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,24 @@
|
|
|
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 GenericDirCtrl < Window
|
|
11
|
+
|
|
12
|
+
include Typemap::TreeItemId
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
super
|
|
16
|
+
spec.no_proxy 'wxGenericDirCtrl'
|
|
17
|
+
spec.do_not_generate(:variables, :defines, :enums, :functions) # already with DirFilterListCtrl
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end # class GenericDirCtrl
|
|
21
|
+
|
|
22
|
+
end # class Director
|
|
23
|
+
|
|
24
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,143 @@
|
|
|
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 GraphicsContext < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
super
|
|
14
|
+
spec.disable_proxies
|
|
15
|
+
# these static creators require a running app
|
|
16
|
+
spec.require_app 'wxGraphicsContext::Create',
|
|
17
|
+
'wxGraphicsContext::CreateFromUnknownDC'
|
|
18
|
+
spec.ignore 'wxGraphicsContext::CreateFromNative',
|
|
19
|
+
'wxGraphicsContext::CreateFromNativeWindow',
|
|
20
|
+
'wxGraphicsContext::CreateFromNativeHDC',
|
|
21
|
+
'wxGraphicsContext::GetNativeContext',
|
|
22
|
+
'wxGraphicsContext::Create(const wxEnhMetaFileDC &)'
|
|
23
|
+
# type mappings
|
|
24
|
+
# Typemap to fix GraphicsContext#get_text_extent
|
|
25
|
+
spec.map_apply 'double *OUTPUT' => [ 'wxDouble* width', 'wxDouble* height',
|
|
26
|
+
'wxDouble* descent', 'wxDouble* externalLeading' ]
|
|
27
|
+
spec.map 'wxDouble* width, wxDouble* height, wxDouble* descent, wxDouble* externalLeading' do
|
|
28
|
+
map_directorargout code: <<~__CODE
|
|
29
|
+
if ( (TYPE(result) == T_ARRAY) && (RARRAY_LEN(result) >= 2) )
|
|
30
|
+
{
|
|
31
|
+
*$1 = ($*1_ltype)NUM2INT(rb_ary_entry(result,0));
|
|
32
|
+
*$2 = ($*2_ltype)NUM2INT(rb_ary_entry(result,1));
|
|
33
|
+
if ( ($3 != NULL ) && RARRAY_LEN(result) >= 3)
|
|
34
|
+
*$3 = ($*3_ltype)NUM2INT(rb_ary_entry(result,2));
|
|
35
|
+
if ( ( $4 != NULL ) && RARRAY_LEN(result) >= 4 )
|
|
36
|
+
*$4 = ($*4_ltype)NUM2INT(rb_ary_entry(result,3));
|
|
37
|
+
}
|
|
38
|
+
__CODE
|
|
39
|
+
end
|
|
40
|
+
spec.map 'size_t, const wxPoint2DDouble *' => 'Array<Array<Float,Float>>' do
|
|
41
|
+
map_in from: {type: 'Array<Array<Float,Float>>', index: 1},
|
|
42
|
+
temp: 'std::unique_ptr<wxPoint2DDouble[]> tmp_pts',
|
|
43
|
+
code: <<~__CODE
|
|
44
|
+
bool ok = false;
|
|
45
|
+
if (TYPE($input) == T_ARRAY)
|
|
46
|
+
{
|
|
47
|
+
ok = true;
|
|
48
|
+
tmp_pts = std::make_unique<wxPoint2DDouble[]>(RARRAY_LEN($input));
|
|
49
|
+
for (int i=0; i<RARRAY_LEN($input) ;++i)
|
|
50
|
+
{
|
|
51
|
+
VALUE el = rb_ary_entry($input, i);
|
|
52
|
+
if (TYPE(el) == T_ARRAY && RARRAY_LEN(el) == 2)
|
|
53
|
+
{
|
|
54
|
+
tmp_pts[i] = wxPoint2DDouble(NUM2DBL(rb_ary_entry(el, 0)), NUM2DBL(rb_ary_entry(el, 1)));
|
|
55
|
+
}
|
|
56
|
+
else
|
|
57
|
+
{ ok = false; }
|
|
58
|
+
}
|
|
59
|
+
if (ok)
|
|
60
|
+
{
|
|
61
|
+
$1 = RARRAY_LEN($input);
|
|
62
|
+
$2 = tmp_pts.get();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (!ok)
|
|
66
|
+
{
|
|
67
|
+
rb_raise(rb_eArgError, "Invalid value for %i", $argnum-1);
|
|
68
|
+
}
|
|
69
|
+
__CODE
|
|
70
|
+
map_default code: '$1 = 0; $2 = NULL;'
|
|
71
|
+
map_typecheck precedence: 5, code: <<~__CODE
|
|
72
|
+
$1 = false;
|
|
73
|
+
if (TYPE($input) == T_ARRAY && RARRAY_LEN($input)>0)
|
|
74
|
+
{
|
|
75
|
+
VALUE el = rb_ary_entry($input, 0);
|
|
76
|
+
if (TYPE(el) == T_ARRAY && RARRAY_LEN(el) == 2)
|
|
77
|
+
{
|
|
78
|
+
VALUE pt = rb_ary_entry(el, 0);
|
|
79
|
+
$1 = TYPE(pt) != T_ARRAY;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
__CODE
|
|
83
|
+
end
|
|
84
|
+
spec.map 'size_t, const wxPoint2DDouble *, const wxPoint2DDouble *' do
|
|
85
|
+
map_in from: {type: 'Array<Array<Array<Float,Float>,Array<Float,Float>>>', index: 0},
|
|
86
|
+
temp: ['std::unique_ptr<wxPoint2DDouble[]> tmp_begin', 'std::unique_ptr<wxPoint2DDouble[]> tmp_end'],
|
|
87
|
+
code: <<~__CODE
|
|
88
|
+
bool ok = false;
|
|
89
|
+
if (TYPE($input) == T_ARRAY)
|
|
90
|
+
{
|
|
91
|
+
ok = true;
|
|
92
|
+
tmp_begin = std::make_unique<wxPoint2DDouble[]>(RARRAY_LEN($input));
|
|
93
|
+
tmp_end = std::make_unique<wxPoint2DDouble[]>(RARRAY_LEN($input));
|
|
94
|
+
for (int i=0; i<RARRAY_LEN($input) ;++i)
|
|
95
|
+
{
|
|
96
|
+
VALUE el = rb_ary_entry($input, i);
|
|
97
|
+
if (TYPE(el) == T_ARRAY && RARRAY_LEN(el) == 2)
|
|
98
|
+
{
|
|
99
|
+
VALUE begin_pt = rb_ary_entry(el, 0);
|
|
100
|
+
VALUE end_pt = rb_ary_entry(el, 1);
|
|
101
|
+
if (TYPE(begin_pt) == T_ARRAY && RARRAY_LEN(begin_pt) == 2 && TYPE(end_pt) == T_ARRAY && RARRAY_LEN(end_pt) == 2)
|
|
102
|
+
{
|
|
103
|
+
tmp_begin[i] = wxPoint2DDouble(NUM2DBL(rb_ary_entry(begin_pt, 0)), NUM2DBL(rb_ary_entry(begin_pt, 1)));
|
|
104
|
+
tmp_end[i] = wxPoint2DDouble(NUM2DBL(rb_ary_entry(end_pt, 0)), NUM2DBL(rb_ary_entry(end_pt, 1)));
|
|
105
|
+
}
|
|
106
|
+
else
|
|
107
|
+
{ ok = false; }
|
|
108
|
+
}
|
|
109
|
+
else
|
|
110
|
+
{ ok = false; }
|
|
111
|
+
}
|
|
112
|
+
if (ok)
|
|
113
|
+
{
|
|
114
|
+
$1 = RARRAY_LEN($input);
|
|
115
|
+
$2 = tmp_begin.get();
|
|
116
|
+
$3 = tmp_end.get();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (!ok)
|
|
120
|
+
{
|
|
121
|
+
rb_raise(rb_eArgError, "Invalid value for %i", $argnum-1);
|
|
122
|
+
}
|
|
123
|
+
__CODE
|
|
124
|
+
map_default code: '$1 = 0; $2 = NULL; $3 = NULL;'
|
|
125
|
+
map_typecheck precedence: 10, code: <<~__CODE
|
|
126
|
+
$1 = false;
|
|
127
|
+
if (TYPE($input) == T_ARRAY && RARRAY_LEN($input)>0)
|
|
128
|
+
{
|
|
129
|
+
VALUE el = rb_ary_entry($input, 0);
|
|
130
|
+
if (TYPE(el) == T_ARRAY && RARRAY_LEN(el) == 2)
|
|
131
|
+
{
|
|
132
|
+
VALUE pt = rb_ary_entry(el, 0);
|
|
133
|
+
$1 = TYPE(pt) == T_ARRAY;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
__CODE
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end # class GraphicsContext
|
|
140
|
+
|
|
141
|
+
end # class Director
|
|
142
|
+
|
|
143
|
+
end # module WXRuby3
|
|
@@ -0,0 +1,69 @@
|
|
|
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 GraphicsObject < Director
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
super
|
|
14
|
+
spec.items.concat %w[wxGraphicsPen wxGraphicsBrush wxGraphicsPath wxGraphicsFont wxGraphicsMatrix wxGraphicsBitmap]
|
|
15
|
+
spec.disable_proxies
|
|
16
|
+
spec.ignore 'wxGraphicsObject::GetRenderer'
|
|
17
|
+
spec.ignore 'wxGraphicsMatrix::Concat(const wxGraphicsMatrix &)'
|
|
18
|
+
spec.ignore 'wxGraphicsMatrix::IsEqual(const wxGraphicsMatrix &)'
|
|
19
|
+
spec.ignore 'wxGraphicsMatrix::GetNativeMatrix'
|
|
20
|
+
spec.ignore 'wxGraphicsBitmap::GetNativeBitmap'
|
|
21
|
+
spec.ignore 'wxGraphicsPath::GetNativePath', 'wxGraphicsPath::UnGetNativePath'
|
|
22
|
+
# Deal with GraphicsMatrix#get method
|
|
23
|
+
spec.map_apply 'double *OUTPUT' => [ 'wxDouble *a', 'wxDouble *b',
|
|
24
|
+
'wxDouble *c', 'wxDouble *d',
|
|
25
|
+
'wxDouble *tx' , 'wxDouble *ty' ]
|
|
26
|
+
# type mapping for GraphicsPath wxPoint2DDouble args
|
|
27
|
+
spec.map 'const wxPoint2DDouble&' => 'Array<Float,Float>' do
|
|
28
|
+
map_in temp: 'wxPoint2DDouble tmp_pt', code: <<~__CODE
|
|
29
|
+
if (TYPE($input) == T_ARRAY && RARRAY_LEN($input) == 2)
|
|
30
|
+
{
|
|
31
|
+
tmp_pt = wxPoint2DDouble(NUM2DBL(rb_ary_entry($input, 0)),
|
|
32
|
+
NUM2DBL(rb_ary_entry($input, 1)));
|
|
33
|
+
$1 = &tmp_pt;
|
|
34
|
+
}
|
|
35
|
+
else
|
|
36
|
+
{
|
|
37
|
+
rb_raise(rb_eTypeError, "Wrong type for %i", $argnum-1);
|
|
38
|
+
}
|
|
39
|
+
__CODE
|
|
40
|
+
end
|
|
41
|
+
spec.ignore 'wxGraphicsPath::GetBox() const',
|
|
42
|
+
'wxGraphicsPath::GetCurrentPoint() const'
|
|
43
|
+
if Config.platform == :mingw
|
|
44
|
+
# it seems for WXMSW there is a problem cleaning up GraphicsObjects in GC after
|
|
45
|
+
# the wxApp has ended (probably because some other wxWidgets cleanup already
|
|
46
|
+
# forcibly deleted their resources)
|
|
47
|
+
spec.add_header_code <<~__HEREDOC
|
|
48
|
+
// special free func is needed to clean up only as long the app still runs
|
|
49
|
+
// the rest we leave for the system clean up as the process terminates
|
|
50
|
+
void GC_free_GraphicsObject(wxGraphicsObject *go)
|
|
51
|
+
{
|
|
52
|
+
SWIG_RubyRemoveTracking(go);
|
|
53
|
+
if ( wxRuby_IsAppRunning() )
|
|
54
|
+
delete go;
|
|
55
|
+
}
|
|
56
|
+
__HEREDOC
|
|
57
|
+
spec.add_swig_code '%feature("freefunc") wxGraphicsPen "GC_free_GraphicsObject";'
|
|
58
|
+
spec.add_swig_code '%feature("freefunc") wxGraphicsBrush "GC_free_GraphicsObject";'
|
|
59
|
+
spec.add_swig_code '%feature("freefunc") wxGraphicsPath "GC_free_GraphicsObject";'
|
|
60
|
+
spec.add_swig_code '%feature("freefunc") wxGraphicsFont "GC_free_GraphicsObject";'
|
|
61
|
+
spec.add_swig_code '%feature("freefunc") wxGraphicsMatrix "GC_free_GraphicsObject";'
|
|
62
|
+
spec.add_swig_code '%feature("freefunc") wxGraphicsBitmap "GC_free_GraphicsObject";'
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end # class GraphicsObject
|
|
66
|
+
|
|
67
|
+
end # class Director
|
|
68
|
+
|
|
69
|
+
end # module WXRuby3
|