wxruby3 0.9.0.pre.rc.2 → 0.9.0
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 +4 -4
- data/INSTALL.md +30 -8
- data/README.md +3 -3
- data/ext/mkrf_conf_srcgem.rb +4 -1
- data/ext/wxruby3/include/wxruby-Config.h +953 -0
- data/ext/wxruby3/include/wxruby-ScaledDC.h +4 -1
- data/ext/wxruby3/include/wxruby-runtime.h +10 -1
- data/ext/wxruby3/swig/RubyStockObjects.i +5 -3
- data/ext/wxruby3/swig/common.i +8 -3
- data/ext/wxruby3/swig/mark_free_impl.i +6 -4
- data/ext/wxruby3/swig/memory_management.i +5 -3
- data/ext/wxruby3/swig/typedefs.i +5 -3
- data/ext/wxruby3/swig/wx.i +7 -0
- data/ext/wxruby3/swig/wx.rc +4 -2
- data/lib/wx/accessors.rb +10 -2
- data/lib/wx/aui/auifloatframe.rb +20 -0
- data/lib/wx/aui/auimanager.rb +3 -0
- data/lib/wx/aui/auinotebook.rb +17 -0
- data/lib/wx/aui/require.rb +5 -1
- data/lib/wx/aui.rb +4 -1
- data/lib/wx/core/acceleratortable.rb +8 -0
- data/lib/wx/core/animation.rb +8 -0
- data/lib/wx/core/app.rb +8 -0
- data/lib/wx/core/array_ext.rb +7 -0
- data/lib/wx/core/art_locator.rb +7 -0
- data/lib/wx/core/artprovider.rb +9 -0
- data/lib/wx/core/bitmap.rb +16 -4
- data/lib/wx/core/bitmap_combobox.rb +7 -0
- data/lib/wx/core/brush.rb +7 -0
- data/lib/wx/core/busycursor.rb +9 -0
- data/lib/wx/core/choice.rb +7 -0
- data/lib/wx/core/choicedlg.rb +7 -0
- data/lib/wx/core/clientdc.rb +9 -0
- data/lib/wx/core/clipboard.rb +8 -0
- data/lib/wx/core/collapsible_pane.rb +8 -1
- data/lib/wx/core/colour.rb +8 -0
- data/lib/wx/core/combo_ctrl.rb +110 -0
- data/lib/wx/core/combobox.rb +7 -0
- data/lib/wx/core/config.rb +303 -0
- data/lib/wx/core/controlwithitems.rb +12 -1
- data/lib/wx/core/cursor.rb +14 -4
- data/lib/wx/core/data_object.rb +7 -0
- data/lib/wx/core/dataformat.rb +9 -0
- data/lib/wx/core/datetime.rb +14 -0
- data/lib/wx/core/dc.rb +7 -0
- data/lib/wx/core/dialog.rb +18 -1
- data/lib/wx/core/enum.rb +7 -0
- data/lib/wx/core/event.rb +7 -0
- data/lib/wx/core/event_blocker.rb +7 -0
- data/lib/wx/core/event_loop.rb +14 -0
- data/lib/wx/core/evthandler.rb +8 -0
- data/lib/wx/core/ext.rb +7 -0
- data/lib/wx/core/file_dialog.rb +23 -0
- data/lib/wx/core/find_replace_dialog.rb +7 -0
- data/lib/wx/core/functions.rb +8 -0
- data/lib/wx/core/gauge.rb +10 -1
- data/lib/wx/core/genericdirctrl.rb +9 -0
- data/lib/wx/core/hboxsizer.rb +16 -0
- data/lib/wx/core/helpcontroller.rb +8 -0
- data/lib/wx/core/helpcontrollerhelpprovider.rb +9 -0
- data/lib/wx/core/helpprovider.rb +10 -1
- data/lib/wx/core/icon.rb +17 -6
- data/lib/wx/core/id_helper.rb +7 -0
- data/lib/wx/core/image.rb +49 -4
- data/lib/wx/core/imagelist.rb +8 -1
- data/lib/wx/core/listbox.rb +7 -0
- data/lib/wx/core/listctrl.rb +26 -13
- data/lib/wx/core/locale.rb +8 -0
- data/lib/wx/core/log.rb +114 -0
- data/lib/wx/core/menu.rb +9 -0
- data/lib/wx/core/menu_bar.rb +7 -0
- data/lib/wx/core/menuitem.rb +9 -0
- data/lib/wx/core/notebook.rb +9 -0
- data/lib/wx/core/object.rb +9 -0
- data/lib/wx/core/paintdc.rb +7 -0
- data/lib/wx/core/pen.rb +7 -0
- data/lib/wx/core/pen_info.rb +7 -0
- data/lib/wx/core/platform_info.rb +7 -0
- data/lib/wx/core/point.rb +8 -0
- data/lib/wx/core/real_point.rb +8 -0
- data/lib/wx/core/rect.rb +9 -0
- data/lib/wx/core/region_iterator.rb +7 -0
- data/lib/wx/core/simplehelpprovider.rb +9 -0
- data/lib/wx/core/size.rb +8 -0
- data/lib/wx/core/sizer.rb +9 -0
- data/lib/wx/core/splash_screen.rb +22 -2
- data/lib/wx/core/text_entry.rb +7 -0
- data/lib/wx/core/textctrl.rb +86 -5
- data/lib/wx/core/timer.rb +9 -0
- data/lib/wx/core/toolbar.rb +9 -0
- data/lib/wx/core/toolbartool.rb +8 -0
- data/lib/wx/core/treectrl.rb +9 -0
- data/lib/wx/core/v_list_box.rb +7 -0
- data/lib/wx/core/validator.rb +7 -0
- data/lib/wx/core/variant.rb +7 -0
- data/lib/wx/core/vboxsizer.rb +16 -0
- data/lib/wx/core/window.rb +8 -0
- data/lib/wx/core/window_update_locker.rb +9 -0
- data/lib/wx/core/xmlresource.rb +8 -0
- data/lib/wx/core.rb +4 -1
- data/lib/wx/doc/app.rb +7 -1
- data/lib/wx/doc/array_ext.rb +6 -0
- data/lib/wx/doc/art_locator.rb +7 -0
- data/lib/wx/doc/aui/auimanager.rb +6 -0
- data/lib/wx/doc/aui/auinotebook.rb +6 -0
- data/lib/wx/doc/bitmap.rb +19 -15
- data/lib/wx/doc/brush.rb +6 -0
- data/lib/wx/doc/busy_info.rb +6 -0
- data/lib/wx/doc/client_dc.rb +6 -0
- data/lib/wx/doc/clipboard.rb +6 -0
- data/lib/wx/doc/colour_dialog.rb +6 -0
- data/lib/wx/doc/config.rb +190 -0
- data/lib/wx/doc/const.rb +7 -0
- data/lib/wx/doc/controlwithitems.rb +6 -0
- data/lib/wx/doc/core.rb +6 -0
- data/lib/wx/doc/cursor.rb +13 -5
- data/lib/wx/doc/data_object.rb +6 -0
- data/lib/wx/doc/datetime.rb +16 -0
- data/lib/wx/doc/dc.rb +6 -0
- data/lib/wx/doc/enum.rb +8 -1
- data/lib/wx/doc/event.rb +12 -0
- data/lib/wx/doc/event_blocker.rb +6 -0
- data/lib/wx/doc/event_loop.rb +13 -0
- data/lib/wx/doc/events.rb +6 -0
- data/lib/wx/doc/evthandler.rb +8 -0
- data/lib/wx/doc/extra/00_starting.md +6 -6
- data/lib/wx/doc/extra/01_packages.md +52 -51
- data/lib/wx/doc/extra/02_lifecycles.md +9 -8
- data/lib/wx/doc/extra/05_event-handling.md +37 -12
- data/lib/wx/doc/extra/06_geometry.md +5 -5
- data/lib/wx/doc/extra/07_colour_and_font.md +2 -2
- data/lib/wx/doc/extra/09_exceptions.md +2 -2
- data/lib/wx/doc/extra/10_art.md +18 -12
- data/lib/wx/doc/extra/11_drawing_and_dc.md +8 -8
- data/lib/wx/doc/font.rb +7 -1
- data/lib/wx/doc/font_data.rb +16 -0
- data/lib/wx/doc/functions.rb +60 -24
- data/lib/wx/doc/gc_dc.rb +7 -1
- data/lib/wx/doc/gdi_common.rb +8 -1
- data/lib/wx/doc/graphics_context.rb +59 -39
- data/lib/wx/doc/grid/grid.rb +16 -1
- data/lib/wx/doc/hboxsizer.rb +33 -0
- data/lib/wx/doc/help_controller.rb +6 -0
- data/lib/wx/doc/html/html_help_controller.rb +6 -0
- data/lib/wx/doc/icon.rb +13 -5
- data/lib/wx/doc/id_helper.rb +6 -0
- data/lib/wx/doc/image.rb +50 -12
- data/lib/wx/doc/list_ctrl.rb +38 -0
- data/lib/wx/doc/log.rb +45 -0
- data/lib/wx/doc/memory_dc.rb +6 -0
- data/lib/wx/doc/mirror_dc.rb +6 -0
- data/lib/wx/doc/pen.rb +6 -0
- data/lib/wx/doc/pg/events.rb +6 -0
- data/lib/wx/doc/pg/pg_property.rb +17 -0
- data/lib/wx/doc/pg/pgeditor.rb +6 -0
- data/lib/wx/doc/pg/property_grid.rb +6 -0
- data/lib/wx/doc/pg/property_grid_interface.rb +6 -0
- data/lib/wx/doc/progress_dialog.rb +6 -0
- data/lib/wx/doc/prt/page_setup_dialog.rb +6 -0
- data/lib/wx/doc/prt/print_data.rb +6 -0
- data/lib/wx/doc/prt/print_dialog.rb +6 -0
- data/lib/wx/doc/prt/printer.rb +6 -0
- data/lib/wx/doc/prt/printer_dc.rb +8 -2
- data/lib/wx/doc/radio_box.rb +6 -0
- data/lib/wx/doc/rbn/ribbon_bar.rb +6 -0
- data/lib/wx/doc/rbn/ribbon_button_bar.rb +6 -0
- data/lib/wx/doc/rbn/ribbon_gallery.rb +6 -0
- data/lib/wx/doc/rbn/ribbon_tool_bar.rb +6 -0
- data/lib/wx/doc/region_iterator.rb +6 -0
- data/lib/wx/doc/rtc/richtext_buffer.rb +28 -0
- data/lib/wx/doc/rtc/richtext_formatting_dialog.rb +68 -0
- data/lib/wx/doc/rtc/richtext_printing.rb +6 -0
- data/lib/wx/doc/rtc/richtext_style_sheet.rb +20 -0
- data/lib/wx/doc/scaled_dc.rb +7 -1
- data/lib/wx/doc/screen_dc.rb +6 -0
- data/lib/wx/doc/stock_objects.rb +6 -0
- data/lib/wx/doc/stream.rb +6 -0
- data/lib/wx/doc/svg_file_dc.rb +6 -0
- data/lib/wx/doc/system_settings.rb +6 -0
- data/lib/wx/doc/text_validator.rb +18 -0
- data/lib/wx/doc/textctrl.rb +89 -0
- data/lib/wx/doc/tree_event.rb +20 -0
- data/lib/wx/doc/treebook.rb +6 -0
- data/lib/wx/doc/v_list_box.rb +6 -0
- data/lib/wx/doc/variant.rb +6 -0
- data/lib/wx/doc/vboxsizer.rb +33 -0
- data/lib/wx/doc/window.rb +6 -0
- data/lib/wx/doc/window_disabler.rb +6 -0
- data/lib/wx/doc/xml_resource.rb +8 -0
- data/lib/wx/global_const.rb +4 -1
- data/lib/wx/grid/grid.rb +23 -3
- data/lib/wx/grid/keyword_defs.rb +8 -1
- data/lib/wx/grid/require.rb +4 -1
- data/lib/wx/grid.rb +4 -1
- data/lib/wx/helpers.rb +8 -1
- data/lib/wx/html/htmlhelpcontroller.rb +29 -3
- data/lib/wx/html/htmlwindow.rb +23 -12
- data/lib/wx/html/keyword_defs.rb +8 -1
- data/lib/wx/html/require.rb +4 -1
- data/lib/wx/html/simple_html_listbox.rb +3 -0
- data/lib/wx/html.rb +4 -1
- data/lib/wx/keyword_ctors.rb +22 -3
- data/lib/wx/keyword_defs.rb +55 -3
- data/lib/wx/pg/events.rb +4 -1
- data/lib/wx/pg/keyword_defs.rb +8 -1
- data/lib/wx/pg/pg_editor.rb +3 -0
- data/lib/wx/pg/pg_properties.rb +4 -1
- data/lib/wx/pg/pg_property.rb +18 -5
- data/lib/wx/pg/property_grid.rb +4 -1
- data/lib/wx/pg/property_grid_interface.rb +3 -0
- data/lib/wx/pg/require.rb +4 -1
- data/lib/wx/pg.rb +4 -1
- data/lib/wx/prt/keyword_defs.rb +8 -1
- data/lib/wx/prt/page_setup_dialog.rb +3 -0
- data/lib/wx/prt/previewframe.rb +5 -0
- data/lib/wx/prt/require.rb +4 -1
- data/lib/wx/prt.rb +4 -1
- data/lib/wx/rbn/events.rb +4 -1
- data/lib/wx/rbn/keyword_defs.rb +8 -1
- data/lib/wx/rbn/require.rb +5 -1
- data/lib/wx/rbn/ribbon_art_provider.rb +3 -1
- data/lib/wx/rbn/ribbon_bar.rb +3 -0
- data/lib/wx/rbn/ribbon_button_bar.rb +3 -0
- data/lib/wx/rbn/ribbon_control.rb +3 -0
- data/lib/wx/rbn/ribbon_gallery.rb +10 -0
- data/lib/wx/rbn/ribbon_page.rb +3 -0
- data/lib/wx/rbn/ribbon_panel.rb +3 -0
- data/lib/wx/rbn/ribbon_tool_bar.rb +3 -0
- data/lib/wx/rbn.rb +4 -1
- data/lib/wx/rtc/ext.rb +4 -1
- data/lib/wx/rtc/keyword_defs.rb +18 -7
- data/lib/wx/rtc/require.rb +8 -1
- data/lib/wx/rtc/richtext_buffer.rb +36 -0
- data/lib/wx/rtc/richtext_formatting_dialog.rb +88 -0
- data/lib/wx/rtc/richtext_style_organiser_dialog.rb +46 -0
- data/lib/wx/rtc/symbol_picker_dialog.rb +47 -0
- data/lib/wx/rtc.rb +5 -1
- data/lib/wx/stc/keyword_defs.rb +8 -1
- data/lib/wx/stc/require.rb +4 -1
- data/lib/wx/stc.rb +4 -1
- data/lib/wx/version.rb +5 -1
- data/lib/wx/wxruby/base.rb +4 -1
- data/lib/wx/wxruby/cmd/sampler.rb +4 -1
- data/lib/wx/wxruby/cmd/test.rb +4 -1
- data/lib/wx.rb +4 -1
- data/rakelib/build.rake +4 -1
- data/rakelib/build.rb +4 -1
- data/rakelib/config.rake +4 -1
- data/rakelib/configure.rb +4 -1
- data/rakelib/doc.rake +4 -1
- data/rakelib/doc.rb +5 -1
- data/rakelib/install.rake +4 -1
- data/rakelib/install.rb +4 -1
- data/rakelib/lib/config/cygwin.rb +4 -1
- data/rakelib/lib/config/linux.rb +4 -1
- data/rakelib/lib/config/macosx.rb +5 -2
- data/rakelib/lib/config/mingw.rb +4 -1
- data/rakelib/lib/config/netbsd.rb +4 -1
- data/rakelib/lib/config/unixish.rb +10 -7
- data/rakelib/lib/config.rb +7 -2
- data/rakelib/lib/core/include/enum.inc +4 -1
- data/rakelib/lib/core/include/funcall.inc +10 -64
- data/rakelib/lib/core/include/init.inc +3 -0
- data/rakelib/lib/core/mapping.rb +40 -55
- data/rakelib/lib/core/package.rb +20 -3
- data/rakelib/lib/core/parameter.rb +4 -1
- data/rakelib/lib/core/spec.rb +35 -18
- data/rakelib/lib/core/spec_helper.rb +38 -9
- data/rakelib/lib/director/about_dialog_info.rb +4 -1
- data/rakelib/lib/director/accelerator.rb +7 -2
- data/rakelib/lib/director/animation.rb +4 -1
- data/rakelib/lib/director/animation_ctrl.rb +4 -1
- data/rakelib/lib/director/any_button.rb +5 -2
- data/rakelib/lib/director/app.rb +16 -2
- data/rakelib/lib/director/app_traits.rb +71 -0
- data/rakelib/lib/director/art_provider.rb +4 -1
- data/rakelib/lib/director/aui_dock_art.rb +4 -1
- data/rakelib/lib/director/aui_floating_frame.rb +4 -1
- data/rakelib/lib/director/aui_manager.rb +12 -5
- data/rakelib/lib/director/aui_manager_event.rb +4 -1
- data/rakelib/lib/director/aui_mdi_child_frame.rb +25 -1
- data/rakelib/lib/director/aui_mdi_client_window.rb +4 -1
- data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -1
- data/rakelib/lib/director/aui_notebook.rb +12 -1
- data/rakelib/lib/director/aui_notebook_event.rb +4 -1
- data/rakelib/lib/director/aui_pane_info.rb +4 -1
- data/rakelib/lib/director/aui_tab_art.rb +52 -1
- data/rakelib/lib/director/aui_tab_ctrl.rb +14 -1
- data/rakelib/lib/director/aui_toolbar.rb +6 -3
- data/rakelib/lib/director/aui_toolbar_art.rb +52 -1
- data/rakelib/lib/director/aui_toolbar_event.rb +4 -1
- data/rakelib/lib/director/aui_toolbar_item.rb +4 -1
- data/rakelib/lib/director/banner_window.rb +26 -0
- data/rakelib/lib/director/bitmap.rb +11 -2
- data/rakelib/lib/director/bitmap_combobox.rb +5 -1
- data/rakelib/lib/director/book_ctrls.rb +13 -3
- data/rakelib/lib/director/brush.rb +4 -1
- data/rakelib/lib/director/busy_info.rb +4 -1
- data/rakelib/lib/director/button.rb +4 -1
- data/rakelib/lib/director/calendar_ctrl.rb +4 -1
- data/rakelib/lib/director/calendar_date_attr.rb +4 -1
- data/rakelib/lib/director/caret.rb +4 -1
- data/rakelib/lib/director/check_listbox.rb +4 -1
- data/rakelib/lib/director/choice.rb +4 -1
- data/rakelib/lib/director/clipboard.rb +4 -1
- data/rakelib/lib/director/collapsible_pane.rb +4 -1
- data/rakelib/lib/director/collapsible_pane_event.rb +4 -1
- data/rakelib/lib/director/colour.rb +9 -1
- data/rakelib/lib/director/colour_picker_ctrl.rb +4 -1
- data/rakelib/lib/director/combobox.rb +4 -1
- data/rakelib/lib/director/comboctrl.rb +94 -0
- data/rakelib/lib/director/config_base.rb +135 -0
- data/rakelib/lib/director/context_help_button.rb +4 -1
- data/rakelib/lib/director/control.rb +4 -1
- data/rakelib/lib/director/ctrl_with_items.rb +5 -1
- data/rakelib/lib/director/cursor.rb +6 -2
- data/rakelib/lib/director/data_format.rb +4 -1
- data/rakelib/lib/director/data_object.rb +4 -1
- data/rakelib/lib/director/data_object_simple_base.rb +4 -1
- data/rakelib/lib/director/date_event.rb +9 -2
- data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
- data/rakelib/lib/director/dc.rb +19 -1
- data/rakelib/lib/director/defs.rb +4 -1
- data/rakelib/lib/director/derived_dc.rb +27 -20
- data/rakelib/lib/director/dialog.rb +49 -3
- data/rakelib/lib/director/dir_filterlist_ctrl.rb +4 -1
- data/rakelib/lib/director/dir_picker_ctrl.rb +4 -1
- data/rakelib/lib/director/drag_image.rb +9 -2
- data/rakelib/lib/director/dragdrop.rb +4 -1
- data/rakelib/lib/director/editable_listbox.rb +4 -1
- data/rakelib/lib/director/event.rb +11 -3
- data/rakelib/lib/director/event_blocker.rb +4 -1
- data/rakelib/lib/director/event_filter.rb +4 -1
- data/rakelib/lib/director/event_handler.rb +28 -11
- data/rakelib/lib/director/event_loop.rb +29 -0
- data/rakelib/lib/director/events.rb +5 -2
- data/rakelib/lib/director/file_dialog_custom_control.rb +28 -0
- data/rakelib/lib/director/file_dialog_customize_hook.rb +28 -0
- data/rakelib/lib/director/file_picker_ctrl.rb +4 -1
- data/rakelib/lib/director/file_system.rb +45 -0
- data/rakelib/lib/director/find_dialog_event.rb +4 -1
- data/rakelib/lib/director/find_replace_data.rb +4 -1
- data/rakelib/lib/director/font.rb +7 -3
- data/rakelib/lib/director/font_data.rb +9 -1
- data/rakelib/lib/director/font_picker_ctrl.rb +4 -1
- data/rakelib/lib/director/frame.rb +45 -33
- data/rakelib/lib/director/fs_file.rb +52 -1
- data/rakelib/lib/director/functions.rb +51 -49
- data/rakelib/lib/director/gdi_object.rb +4 -1
- data/rakelib/lib/director/gdicommon.rb +14 -9
- data/rakelib/lib/director/generic_dirctrl.rb +4 -1
- data/rakelib/lib/director/graphics_context.rb +113 -18
- data/rakelib/lib/director/graphics_object.rb +13 -2
- data/rakelib/lib/director/grid_cell_attr.rb +28 -4
- data/rakelib/lib/director/grid_cell_editor.rb +22 -5
- data/rakelib/lib/director/grid_cell_renderer.rb +16 -3
- data/rakelib/lib/director/grid_ctrl.rb +146 -5
- data/rakelib/lib/director/grid_range_select_event.rb +4 -1
- data/rakelib/lib/director/grid_table_base.rb +6 -1
- data/rakelib/lib/director/grid_table_message.rb +4 -1
- data/rakelib/lib/director/header_ctrl.rb +37 -0
- data/rakelib/lib/director/help_controller.rb +13 -6
- data/rakelib/lib/director/help_provider.rb +4 -1
- data/rakelib/lib/director/html_cell.rb +10 -3
- data/rakelib/lib/director/html_data_object.rb +4 -1
- data/rakelib/lib/director/html_easy_printing.rb +4 -1
- data/rakelib/lib/director/html_event.rb +4 -1
- data/rakelib/lib/director/html_help_data.rb +4 -1
- data/rakelib/lib/director/html_help_window.rb +30 -0
- data/rakelib/lib/director/html_listbox.rb +4 -1
- data/rakelib/lib/director/html_printout.rb +6 -1
- data/rakelib/lib/director/html_window.rb +10 -8
- data/rakelib/lib/director/hyperlink_ctrl.rb +32 -0
- data/rakelib/lib/director/hyperlink_event.rb +4 -1
- data/rakelib/lib/director/icon.rb +4 -1
- data/rakelib/lib/director/image.rb +58 -3
- data/rakelib/lib/director/image_list.rb +5 -1
- data/rakelib/lib/director/info_bar.rb +26 -0
- data/rakelib/lib/director/list_ctrl.rb +42 -9
- data/rakelib/lib/director/listbox.rb +4 -1
- data/rakelib/lib/director/locale.rb +7 -4
- data/rakelib/lib/director/log.rb +111 -6
- data/rakelib/lib/director/mdi_frame.rb +4 -1
- data/rakelib/lib/director/media_ctrl.rb +4 -1
- data/rakelib/lib/director/menu.rb +16 -3
- data/rakelib/lib/director/menu_bar.rb +13 -2
- data/rakelib/lib/director/menu_item.rb +6 -6
- data/rakelib/lib/director/mouse_state.rb +5 -2
- data/rakelib/lib/director/numeric_property_validator.rb +4 -1
- data/rakelib/lib/director/object.rb +5 -2
- data/rakelib/lib/director/page_setup_dialog.rb +4 -1
- data/rakelib/lib/director/palette.rb +54 -2
- data/rakelib/lib/director/panel.rb +4 -1
- data/rakelib/lib/director/pen.rb +5 -2
- data/rakelib/lib/director/pgarray_editor_dialog.rb +4 -1
- data/rakelib/lib/director/pgcell.rb +4 -1
- data/rakelib/lib/director/pgeditor.rb +4 -1
- data/rakelib/lib/director/pgmulti_button.rb +4 -1
- data/rakelib/lib/director/pgproperties.rb +4 -1
- data/rakelib/lib/director/pgproperty.rb +42 -3
- data/rakelib/lib/director/pgvalidation_info.rb +9 -1
- data/rakelib/lib/director/pickerbase.rb +4 -1
- data/rakelib/lib/director/platform_info.rb +9 -1
- data/rakelib/lib/director/popup_window.rb +14 -1
- data/rakelib/lib/director/preview_frame.rb +5 -2
- data/rakelib/lib/director/print_data.rb +4 -1
- data/rakelib/lib/director/print_dialog.rb +4 -1
- data/rakelib/lib/director/printer.rb +14 -6
- data/rakelib/lib/director/property_grid.rb +30 -1
- data/rakelib/lib/director/property_grid_event.rb +11 -1
- data/rakelib/lib/director/property_grid_interface.rb +20 -6
- data/rakelib/lib/director/property_grid_manager.rb +4 -1
- data/rakelib/lib/director/property_grid_page.rb +4 -1
- data/rakelib/lib/director/property_grid_page_state.rb +4 -1
- data/rakelib/lib/director/radio_box.rb +4 -1
- data/rakelib/lib/director/rearrange_list.rb +36 -0
- data/rakelib/lib/director/region.rb +5 -1
- data/rakelib/lib/director/region_iterator.rb +4 -1
- data/rakelib/lib/director/ribbon_art_provider.rb +9 -1
- data/rakelib/lib/director/ribbon_bar.rb +4 -1
- data/rakelib/lib/director/ribbon_bar_event.rb +4 -1
- data/rakelib/lib/director/ribbon_button_bar.rb +4 -1
- data/rakelib/lib/director/ribbon_button_bar_event.rb +4 -1
- data/rakelib/lib/director/ribbon_ctrl.rb +4 -1
- data/rakelib/lib/director/ribbon_gallery.rb +8 -3
- data/rakelib/lib/director/ribbon_gallery_event.rb +4 -1
- data/rakelib/lib/director/ribbon_page.rb +4 -1
- data/rakelib/lib/director/ribbon_panel.rb +4 -1
- data/rakelib/lib/director/ribbon_panel_event.rb +4 -1
- data/rakelib/lib/director/ribbon_tool_bar.rb +4 -1
- data/rakelib/lib/director/ribbon_tool_bar_event.rb +4 -1
- data/rakelib/lib/director/richtext_box.rb +61 -0
- data/rakelib/lib/director/richtext_buffer.rb +219 -22
- data/rakelib/lib/director/richtext_buffer_data_object.rb +4 -1
- data/rakelib/lib/director/richtext_composite_object.rb +174 -0
- data/rakelib/lib/director/richtext_ctrl.rb +157 -4
- data/rakelib/lib/director/richtext_event.rb +4 -1
- data/rakelib/lib/director/richtext_file_handler.rb +13 -1
- data/rakelib/lib/director/richtext_formatting_dialog.rb +44 -0
- data/rakelib/lib/director/richtext_header_footer_data.rb +4 -1
- data/rakelib/lib/director/richtext_image.rb +56 -0
- data/rakelib/lib/director/richtext_object.rb +272 -0
- data/rakelib/lib/director/richtext_paragraph_layout_box.rb +178 -0
- data/rakelib/lib/director/richtext_printing.rb +4 -1
- data/rakelib/lib/director/richtext_style_listbox.rb +37 -0
- data/rakelib/lib/director/richtext_style_organiser_dialog.rb +28 -0
- data/rakelib/lib/director/sash_layout_event.rb +4 -1
- data/rakelib/lib/director/sash_layout_window.rb +4 -1
- data/rakelib/lib/director/sash_window.rb +4 -1
- data/rakelib/lib/director/scroll_bar.rb +4 -1
- data/rakelib/lib/director/scrolled_t.rb +7 -4
- data/rakelib/lib/director/searchctrl.rb +4 -1
- data/rakelib/lib/director/sizer.rb +4 -1
- data/rakelib/lib/director/sizer_item.rb +9 -3
- data/rakelib/lib/director/slider.rb +4 -1
- data/rakelib/lib/director/splash_screen.rb +4 -1
- data/rakelib/lib/director/splitter_event.rb +4 -1
- data/rakelib/lib/director/splitter_window.rb +4 -1
- data/rakelib/lib/director/static_bitmap.rb +4 -1
- data/rakelib/lib/director/static_box.rb +5 -2
- data/rakelib/lib/director/status_bar.rb +5 -1
- data/rakelib/lib/director/styled_text_ctrl.rb +14 -2
- data/rakelib/lib/director/styled_text_event.rb +4 -1
- data/rakelib/lib/director/system_options.rb +4 -1
- data/rakelib/lib/director/system_settings.rb +4 -1
- data/rakelib/lib/director/task_bar_icon.rb +4 -1
- data/rakelib/lib/director/text_attr.rb +5 -2
- data/rakelib/lib/director/text_entry.rb +29 -1
- data/rakelib/lib/director/text_validator.rb +14 -3
- data/rakelib/lib/director/textctrl.rb +32 -3
- data/rakelib/lib/director/time_picker_ctrl.rb +4 -1
- data/rakelib/lib/director/timer.rb +4 -1
- data/rakelib/lib/director/tip_provider.rb +4 -1
- data/rakelib/lib/director/toggle_button.rb +4 -1
- data/rakelib/lib/director/tool_bar.rb +20 -1
- data/rakelib/lib/director/tool_tip.rb +5 -2
- data/rakelib/lib/director/top_level_window.rb +58 -51
- data/rakelib/lib/director/tree_ctrl.rb +5 -2
- data/rakelib/lib/director/tree_event.rb +28 -10
- data/rakelib/lib/director/uiaction_simulator.rb +4 -1
- data/rakelib/lib/director/utils.rb +9 -1
- data/rakelib/lib/director/validator.rb +4 -1
- data/rakelib/lib/director/variant.rb +22 -6
- data/rakelib/lib/director/vlistbox.rb +4 -1
- data/rakelib/lib/director/vscrolled_window.rb +4 -1
- data/rakelib/lib/director/window.rb +81 -82
- data/rakelib/lib/director/window_disabler.rb +4 -1
- data/rakelib/lib/director/with_images.rb +5 -2
- data/rakelib/lib/director/wizard_page.rb +4 -1
- data/rakelib/lib/director/xml_node.rb +4 -1
- data/rakelib/lib/director/xml_resource.rb +4 -1
- data/rakelib/lib/director.rb +27 -28
- data/rakelib/lib/ext/enum_chain.rb +4 -1
- data/rakelib/lib/extractor/class.rb +8 -6
- data/rakelib/lib/extractor/enum.rb +15 -2
- data/rakelib/lib/extractor/function.rb +17 -9
- data/rakelib/lib/extractor/module.rb +4 -1
- data/rakelib/lib/extractor/variable.rb +10 -7
- data/rakelib/lib/extractor.rb +7 -2
- data/rakelib/lib/generate/analyzer.rb +31 -21
- data/rakelib/lib/generate/base.rb +4 -1
- data/rakelib/lib/generate/doc/aui_manager.yaml +21 -0
- data/rakelib/lib/generate/doc/font.yaml +29 -0
- data/rakelib/lib/generate/doc/frame.yaml +23 -0
- data/rakelib/lib/generate/doc/fs_file.yaml +11 -0
- data/rakelib/lib/generate/doc/gdi_common.yaml +36 -0
- data/rakelib/lib/generate/doc/graphics_context.yaml +34 -0
- data/rakelib/lib/generate/doc/grid_cell_attr.yaml +21 -0
- data/rakelib/lib/generate/doc/grid_ctrl.yaml +25 -0
- data/rakelib/lib/generate/doc/gui_event_loop.yaml +12 -0
- data/rakelib/lib/generate/doc/help_controller.yaml +24 -0
- data/rakelib/lib/generate/doc/html_cell.yaml +11 -0
- data/rakelib/lib/generate/doc/html_help_controller.yaml +23 -0
- data/rakelib/lib/generate/doc/html_help_window.yaml +21 -0
- data/rakelib/lib/generate/doc/html_window.yaml +47 -0
- data/rakelib/lib/generate/doc/icon.yaml +11 -0
- data/rakelib/lib/generate/doc/image.yaml +87 -0
- data/rakelib/lib/generate/doc/keyboard_state.yaml +19 -0
- data/rakelib/lib/generate/doc/list_ctrl.yaml +77 -0
- data/rakelib/lib/generate/doc/locale.yaml +12 -0
- data/rakelib/lib/generate/doc/log.yaml +86 -0
- data/rakelib/lib/generate/doc/mdi_frame.yaml +12 -0
- data/rakelib/lib/generate/doc/memory_dc.yaml +42 -0
- data/rakelib/lib/generate/doc/menu.yaml +17 -0
- data/rakelib/lib/generate/doc/menu_item.yaml +43 -0
- data/rakelib/lib/generate/doc/message_dialog.yaml +36 -0
- data/rakelib/lib/generate/doc/non_owned_window.yaml +14 -0
- data/rakelib/lib/generate/doc/notebook.yaml +18 -0
- data/rakelib/lib/generate/doc/pen.yaml +11 -0
- data/rakelib/lib/generate/doc/pg_editor.yaml +11 -0
- data/rakelib/lib/generate/doc/pg_multi_button.yaml +78 -0
- data/rakelib/lib/generate/doc/pg_properties.yaml +244 -0
- data/rakelib/lib/generate/doc/pg_property.yaml +188 -0
- data/rakelib/lib/generate/doc/picker_base.yaml +19 -0
- data/rakelib/lib/generate/doc/platform_info.yaml +15 -0
- data/rakelib/lib/generate/doc/property_grid.yaml +23 -0
- data/rakelib/lib/generate/doc/property_grid_interface.yaml +30 -0
- data/rakelib/lib/generate/doc/property_grid_manager.yaml +40 -0
- data/rakelib/lib/generate/doc/property_sheet_dialog.yaml +26 -0
- data/rakelib/lib/generate/doc/rich_text_html_handler.yaml +11 -0
- data/rakelib/lib/generate/doc/scroll_bar.yaml +11 -0
- data/rakelib/lib/generate/doc/scrolled_canvas.yaml +37 -0
- data/rakelib/lib/generate/doc/scrolled_control.yaml +37 -0
- data/rakelib/lib/generate/doc/scrolled_window.yaml +37 -0
- data/rakelib/lib/generate/doc/sizer.yaml +69 -0
- data/rakelib/lib/generate/doc/splash_screen.yaml +18 -0
- data/rakelib/lib/generate/doc/static_box.yaml +52 -0
- data/rakelib/lib/generate/doc/static_box_sizer.yaml +22 -0
- data/rakelib/lib/generate/doc/styled_text_ctrl.yaml +18 -0
- data/rakelib/lib/generate/doc/svg_file_dc.yaml +11 -0
- data/rakelib/lib/generate/doc/symbol_picker_dialog.yaml +40 -0
- data/rakelib/lib/generate/doc/text_ctrl.yaml +19 -0
- data/rakelib/lib/generate/doc/text_entry.yaml +42 -0
- data/rakelib/lib/generate/doc/text_entry_dialog.yaml +17 -0
- data/rakelib/lib/generate/doc/timer_event.yaml +28 -0
- data/rakelib/lib/generate/doc/tool_bar.yaml +35 -0
- data/rakelib/lib/generate/doc/top_level_window.yaml +23 -0
- data/rakelib/lib/generate/doc/validator.yaml +12 -0
- data/rakelib/lib/generate/doc/variant.yaml +29 -0
- data/rakelib/lib/generate/doc/window.yaml +249 -0
- data/rakelib/lib/generate/doc/wizard_page_simple.yaml +14 -0
- data/rakelib/lib/generate/doc/xml_node.yaml +7 -0
- data/rakelib/lib/generate/doc/xml_resource.yaml +27 -0
- data/rakelib/lib/generate/doc.rb +54 -4
- data/rakelib/lib/generate/interface.rb +79 -110
- data/rakelib/lib/generate/rakedep.rb +4 -1
- data/rakelib/lib/specs/interfaces.rb +46 -20
- data/rakelib/lib/streams.rb +5 -1
- data/rakelib/lib/swig_runner.rb +71 -22
- data/rakelib/lib/typemap/array_int_selections.rb +4 -1
- data/rakelib/lib/typemap/common.rb +57 -2
- data/rakelib/lib/typemap/config.rb +55 -0
- data/rakelib/lib/typemap/data_format.rb +4 -1
- data/rakelib/lib/typemap/data_object_data.rb +4 -1
- data/rakelib/lib/typemap/datetime.rb +8 -1
- data/rakelib/lib/typemap/grid_client_data.rb +4 -1
- data/rakelib/lib/typemap/grid_coords.rb +37 -7
- data/rakelib/lib/typemap/html_cell.rb +4 -1
- data/rakelib/lib/typemap/io_streams.rb +4 -1
- data/rakelib/lib/typemap/pgcell.rb +4 -1
- data/rakelib/lib/typemap/pgeditor.rb +4 -1
- data/rakelib/lib/typemap/pgprop_arg.rb +4 -1
- data/rakelib/lib/typemap/pgproperty.rb +4 -1
- data/rakelib/lib/typemap/points_list.rb +4 -1
- data/rakelib/lib/typemap/richtext.rb +185 -11
- data/rakelib/lib/typemap/tree_itemid.rb +26 -1
- data/rakelib/lib/util/string.rb +4 -1
- data/rakelib/prepost.rake +4 -1
- data/rakelib/prepost.rb +4 -1
- data/rakelib/run.rake +4 -1
- data/samples/aui/aui.rb +8 -3
- data/samples/bigdemo/bigdemo.rb +9 -2
- data/samples/bigdemo/run.rb +9 -2
- data/samples/bigdemo/utils.rb +9 -1
- data/samples/calendar/calendar.rb +9 -4
- data/samples/caret/caret.rb +8 -3
- data/samples/controls/books.rb +8 -2
- data/samples/controls/controls.rb +33 -77
- data/samples/controls/get_item_sample.rb +8 -2
- data/samples/controls/htlbox.rb +10 -3
- data/samples/dialogs/dialogs.rb +9 -4
- data/samples/dialogs/wizard.rb +8 -3
- data/samples/dragdrop/dragdrop.rb +8 -3
- data/samples/drawing/bitmap.rb +8 -3
- data/samples/drawing/bitmap_image.rb +8 -3
- data/samples/drawing/graphics_drawing.rb +44 -33
- data/samples/drawing/image_prt.rb +8 -2
- data/samples/drawing/maths_images.rb +8 -3
- data/samples/drawing/rmagic_bitmap_image.rb +8 -3
- data/samples/etc/choice.rb +8 -3
- data/samples/etc/miniframe.rb +8 -3
- data/samples/etc/sash.rb +8 -3
- data/samples/etc/scrollwin.rb +8 -3
- data/samples/etc/system_settings.rb +8 -3
- data/samples/event/activation.rb +8 -3
- data/samples/event/event.rb +8 -3
- data/samples/event/threaded.rb +8 -3
- data/samples/event/update_ui_event.rb +8 -3
- data/samples/grid/grid.rb +9 -3
- data/samples/grid/gridtablebase.rb +8 -3
- data/samples/html/html.rb +8 -3
- data/samples/mdi/mdi.rb +8 -3
- data/samples/minimal/minimal.rb +8 -3
- data/samples/minimal/nothing.rb +8 -3
- data/samples/printing/printing.rb +8 -3
- data/samples/printing/printing2.rb +8 -2
- data/samples/propgrid/propgrid.rb +4 -1
- data/samples/propgrid/propgrid_minimal.rb +4 -2
- data/samples/propgrid/sample_props.rb +4 -1
- data/samples/ribbon/ribbon.rb +4 -1
- data/samples/sampler/editor.rb +4 -1
- data/samples/sampler/ext.rb +4 -1
- data/samples/sampler/sample.rb +13 -4
- data/samples/sampler/stc_editor.rb +4 -1
- data/samples/sampler/txt_editor.rb +4 -1
- data/samples/sampler.rb +11 -3
- data/samples/splash/splash.rb +4 -2
- data/samples/text/art/richtext/alignleft.xpm +24 -0
- data/samples/text/art/richtext/alignright.xpm +24 -0
- data/samples/text/art/richtext/bold.xpm +24 -0
- data/samples/text/art/richtext/centre.xpm +24 -0
- data/samples/text/art/richtext/copy.xpm +45 -0
- data/samples/text/art/richtext/cut.xpm +47 -0
- data/samples/text/art/richtext/font.xpm +25 -0
- data/samples/text/art/richtext/idea.xpm +47 -0
- data/samples/text/art/richtext/indentless.xpm +25 -0
- data/samples/text/art/richtext/indentmore.xpm +25 -0
- data/samples/text/art/richtext/italic.xpm +25 -0
- data/samples/text/art/richtext/open.xpm +58 -0
- data/samples/text/art/richtext/paste.xpm +47 -0
- data/samples/text/art/richtext/redo.xpm +59 -0
- data/samples/text/art/richtext/save.xpm +43 -0
- data/samples/text/art/richtext/smiley.xpm +42 -0
- data/samples/text/art/richtext/underline.xpm +25 -0
- data/samples/text/art/richtext/undo.xpm +59 -0
- data/samples/text/art/richtext/zebra.xpm +409 -0
- data/samples/text/rich_textctrl.rb +8 -3
- data/samples/text/richtext.rb +1824 -0
- data/samples/text/scintilla.rb +8 -3
- data/samples/text/textctrl.rb +21 -4
- data/samples/text/tn_richtext.png +0 -0
- data/samples/text/unicode.rb +9 -4
- data/samples/treectrl/treectrl.rb +10 -5
- data/samples/xrc/custom_xrc_sample.rb +8 -3
- data/samples/xrc/xrc_sample.rb +8 -3
- data/tests/art/test_art/bitmap/wxruby-128x128.png +0 -0
- data/tests/art/test_art/bitmap/wxruby-256x256.png +0 -0
- data/tests/art/test_art/bitmap/wxruby-64x64.png +0 -0
- data/tests/lib/item_container_tests.rb +3 -0
- data/tests/lib/text_entry_tests.rb +3 -0
- data/tests/lib/wxapp_runner.rb +3 -0
- data/tests/lib/wxframe_runner.rb +81 -3
- data/tests/test_app_event_filter.rb +3 -0
- data/tests/test_app_traits.rb +33 -0
- data/tests/test_art.rb +31 -0
- data/tests/test_art_provider.rb +3 -0
- data/tests/test_aui.rb +65 -0
- data/tests/test_basic.rb +5 -1
- data/tests/test_box_sizer.rb +164 -0
- data/tests/test_clipboard.rb +3 -0
- data/tests/test_config.rb +150 -0
- data/tests/test_dc.rb +3 -0
- data/tests/test_dialog.rb +3 -0
- data/tests/test_event_handling.rb +3 -0
- data/tests/test_events.rb +3 -0
- data/tests/test_ext_controls.rb +286 -3
- data/tests/test_file_dialog.rb +55 -0
- data/tests/test_font.rb +8 -5
- data/tests/test_gdi_object.rb +3 -0
- data/tests/test_geometry.rb +4 -0
- data/tests/test_grid_sizer.rb +151 -0
- data/tests/test_intl.rb +3 -0
- data/tests/test_item_data.rb +3 -0
- data/tests/test_list_ctrl.rb +56 -0
- data/tests/test_log.rb +226 -0
- data/tests/test_proof_check.rb +52 -0
- data/tests/test_richtext.rb +204 -0
- data/tests/test_std_controls.rb +99 -31
- data/tests/test_timer.rb +98 -0
- data/tests/test_variant.rb +3 -0
- data/tests/test_window.rb +10 -8
- data/tests/testapp.rb +4 -0
- data/tests/testapp_noframe.rb +4 -0
- metadata +146 -3
- data/rakelib/lib/director/html_help_frame.rb +0 -25
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
1
5
|
###
|
|
2
6
|
# wxRuby3 wxWidgets interface director
|
|
3
|
-
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
7
|
###
|
|
5
8
|
|
|
6
9
|
module WXRuby3
|
|
@@ -25,8 +28,9 @@ module WXRuby3
|
|
|
25
28
|
'wxFont::SetDefaultEncoding'
|
|
26
29
|
spec.rename_for_ruby 'create' => 'wxFont::New'
|
|
27
30
|
spec.ignore [ 'wxFont::SetNativeFontInfo(const wxNativeFontInfo &)', 'wxFont::GetNativeFontInfo', 'wxFont::operator!=' ]
|
|
28
|
-
spec.ignore 'wxFont::wxFont(const wxNativeFontInfo &)'
|
|
29
|
-
|
|
31
|
+
spec.ignore 'wxFont::wxFont(const wxNativeFontInfo &)',
|
|
32
|
+
'wxFont::New(const wxNativeFontInfo &)'
|
|
33
|
+
if Config.instance.wx_port == :wxqt
|
|
30
34
|
# not implemented
|
|
31
35
|
spec.ignore 'wxFont::AddPrivateFont'
|
|
32
36
|
end
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
1
5
|
###
|
|
2
6
|
# wxRuby3 wxWidgets interface director
|
|
3
|
-
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
7
|
###
|
|
5
8
|
|
|
6
9
|
module WXRuby3
|
|
@@ -15,6 +18,11 @@ module WXRuby3
|
|
|
15
18
|
# add copy ctor missing from XML docs
|
|
16
19
|
spec.extend_interface 'wxFontData',
|
|
17
20
|
'wxFontData(const wxFontData & other)'
|
|
21
|
+
spec.add_swig_code <<~__HEREDOC
|
|
22
|
+
%constant int wxFONTRESTRICT_NONE = wxFONTRESTRICT_NONE;
|
|
23
|
+
%constant int wxFONTRESTRICT_SCALABLE = wxFONTRESTRICT_SCALABLE;
|
|
24
|
+
%constant int wxFONTRESTRICT_FIXEDPITCH = wxFONTRESTRICT_FIXEDPITCH;
|
|
25
|
+
__HEREDOC
|
|
18
26
|
end
|
|
19
27
|
end # class FontData
|
|
20
28
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
1
5
|
###
|
|
2
6
|
# wxRuby3 wxWidgets interface director
|
|
3
|
-
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
7
|
###
|
|
5
8
|
|
|
6
9
|
require_relative './top_level_window'
|
|
@@ -16,57 +19,66 @@ module WXRuby3
|
|
|
16
19
|
# only for wxFrame class itself
|
|
17
20
|
case spec.module_name
|
|
18
21
|
when 'wxFrame'
|
|
19
|
-
spec.no_proxy %w[
|
|
20
|
-
wxFrame::CreateStatusBar
|
|
21
|
-
wxFrame::CreateToolBar
|
|
22
|
-
wxFrame::SetMenuBar
|
|
23
|
-
wxFrame::GetMenuBar
|
|
24
|
-
wxFrame::SetStatusBar
|
|
25
|
-
wxFrame::GetStatusBar
|
|
26
|
-
wxFrame::SetToolBar
|
|
27
|
-
wxFrame::GetToolBar]
|
|
28
22
|
spec.ignore %w[
|
|
29
23
|
wxFrame::OnCreateStatusBar wxFrame::OnCreateToolBar]
|
|
30
|
-
|
|
24
|
+
unless Config.instance.features_set?(*%w[__WXMSW__ wxUSE_TASKBARBUTTON])
|
|
25
|
+
spec.ignore('wxFrame::MSWGetTaskBarButton')
|
|
26
|
+
end
|
|
31
27
|
# this reimplemented window base method need to be properly wrapped but
|
|
32
28
|
# is missing from the XML docs
|
|
33
29
|
spec.extend_interface('wxFrame', 'virtual void OnInternalIdle()')
|
|
34
30
|
spec.disown 'wxMenuBar *'
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
# handled; can be suppressed
|
|
32
|
+
spec.suppress_warning(473,
|
|
33
|
+
'wxFrame::CreateStatusBar',
|
|
34
|
+
'wxFrame::CreateToolBar',
|
|
35
|
+
'wxFrame::GetMenuBar',
|
|
36
|
+
'wxFrame::GetStatusBar',
|
|
37
|
+
'wxFrame::GetToolBar')
|
|
38
|
+
end
|
|
39
|
+
# for SetStatusWidths
|
|
40
|
+
spec.map 'int n, int * widths_field' do
|
|
41
|
+
map_in from: {type: 'Array<Integer>', index: 1},
|
|
42
|
+
temp: 'int size, std::unique_ptr<int[]> arr', code: <<~__CODE
|
|
38
43
|
size = RARRAY_LEN($input);
|
|
39
44
|
arr.reset(new int[size]);
|
|
40
|
-
for(i = 0; i < size; i++)
|
|
45
|
+
for(int i = 0; i < size; i++)
|
|
41
46
|
{
|
|
42
47
|
arr.get()[i] = NUM2INT(rb_ary_entry($input,i));
|
|
43
48
|
}
|
|
44
49
|
$1 = size;
|
|
45
50
|
$2 = arr.get();
|
|
46
51
|
__CODE
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
map_directorin code: <<~__CODE
|
|
53
|
+
$input = rb_ary_new();
|
|
54
|
+
for (int i = 0; i < $1; i++)
|
|
55
|
+
{
|
|
56
|
+
rb_ary_push($input, INT2NUM($2[i]));
|
|
57
|
+
}
|
|
58
|
+
__CODE
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def process(gendoc: false)
|
|
63
|
+
defmod = super
|
|
64
|
+
spec.items.each do |citem|
|
|
65
|
+
def_item = defmod.find_item(citem)
|
|
66
|
+
if Extractor::ClassDef === def_item && (citem == 'wxFrame' || spec.is_derived_from?(def_item, 'wxFrame'))
|
|
57
67
|
spec.no_proxy %W[
|
|
58
|
-
#{
|
|
59
|
-
#{
|
|
60
|
-
#{
|
|
61
|
-
#{
|
|
62
|
-
#{
|
|
63
|
-
#{
|
|
64
|
-
#{
|
|
65
|
-
#{
|
|
68
|
+
#{spec.class_name(citem)}::CreateStatusBar
|
|
69
|
+
#{spec.class_name(citem)}::CreateToolBar
|
|
70
|
+
#{spec.class_name(citem)}::SetMenuBar
|
|
71
|
+
#{spec.class_name(citem)}::GetMenuBar
|
|
72
|
+
#{spec.class_name(citem)}::SetStatusBar
|
|
73
|
+
#{spec.class_name(citem)}::GetStatusBar
|
|
74
|
+
#{spec.class_name(citem)}::SetToolBar
|
|
75
|
+
#{spec.class_name(citem)}::GetToolBar
|
|
66
76
|
]
|
|
67
77
|
end
|
|
68
78
|
end
|
|
79
|
+
defmod
|
|
69
80
|
end
|
|
81
|
+
|
|
70
82
|
end # class Frame
|
|
71
83
|
|
|
72
84
|
end # class Director
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
1
5
|
###
|
|
2
6
|
# wxRuby3 wxWidgets interface director
|
|
3
|
-
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
7
|
###
|
|
5
8
|
|
|
6
9
|
module WXRuby3
|
|
@@ -10,6 +13,7 @@ module WXRuby3
|
|
|
10
13
|
class FSFile < Director
|
|
11
14
|
|
|
12
15
|
include Typemap::IOStreams
|
|
16
|
+
include Typemap::DateTime
|
|
13
17
|
|
|
14
18
|
def setup
|
|
15
19
|
super
|
|
@@ -31,6 +35,32 @@ module WXRuby3
|
|
|
31
35
|
}
|
|
32
36
|
__CODE
|
|
33
37
|
end
|
|
38
|
+
spec.map 'wxFileOffset' => 'Integer' do
|
|
39
|
+
# we need these inline methods here as we do not want SWIG to preprocess the code
|
|
40
|
+
# as it will do in the type mapping code sections
|
|
41
|
+
add_header_code <<~__CODE
|
|
42
|
+
inline wxFileOffset __ruby2wxFileOffset(VALUE num)
|
|
43
|
+
{
|
|
44
|
+
#ifdef wxHAS_HUGE_FILES
|
|
45
|
+
return static_cast<wxFileOffset> (NUM2LL(num));
|
|
46
|
+
#else
|
|
47
|
+
return static_cast<wxFileOffset> (NUM2LONG(num));
|
|
48
|
+
#endif
|
|
49
|
+
}
|
|
50
|
+
inline VALUE __wxFileOffset2ruby(wxFileOffset offs)
|
|
51
|
+
{
|
|
52
|
+
#ifdef wxHAS_HUGE_FILES
|
|
53
|
+
return LL2NUM(offs);
|
|
54
|
+
#else
|
|
55
|
+
return LONG2NUM(offs);
|
|
56
|
+
#endif
|
|
57
|
+
}
|
|
58
|
+
__CODE
|
|
59
|
+
|
|
60
|
+
map_in code: '$1 = __ruby2wxFileOffset($input);'
|
|
61
|
+
map_out code: '$result = __wxFileOffset2ruby($1);'
|
|
62
|
+
map_typecheck code: '$1 = TYPE($input) == T_FIXNUM;'
|
|
63
|
+
end
|
|
34
64
|
spec.new_object 'wxFSFile::DetachStream'
|
|
35
65
|
# ignore troublesome methods
|
|
36
66
|
spec.ignore 'wxInputStream::Read(void *, size_t)',
|
|
@@ -346,6 +376,27 @@ module WXRuby3
|
|
|
346
376
|
spec.add_init_code 'wxRuby_AppendMarker(wxRuby_markRbStreams);'
|
|
347
377
|
end
|
|
348
378
|
|
|
379
|
+
def process(gendoc: false)
|
|
380
|
+
defmod = super
|
|
381
|
+
# wxSeekMode is documented in a separate module with a lot of defs we do not want
|
|
382
|
+
# so let's manually insert it's definition here
|
|
383
|
+
seek_mode_enum = Extractor::EnumDef.new(name: 'wxSeekMode',
|
|
384
|
+
brief_doc: 'Parameter indicating how file offset should be interpreted.')
|
|
385
|
+
seek_mode_enum.items << Extractor::EnumValueDef.new(enum: seek_mode_enum, name: 'wxFromStart', brief_doc: 'Seek from the file beginning.')
|
|
386
|
+
seek_mode_enum.items << Extractor::EnumValueDef.new(enum: seek_mode_enum, name: 'wxFromCurrent', brief_doc: 'Seek from the current position.')
|
|
387
|
+
seek_mode_enum.items << Extractor::EnumValueDef.new(enum: seek_mode_enum, name: 'wxFromEnd', brief_doc: 'Seek from end of the file.')
|
|
388
|
+
defmod.items << seek_mode_enum
|
|
389
|
+
# same for this
|
|
390
|
+
stream_error_enum = Extractor::EnumDef.new(name: 'wxStreamError',
|
|
391
|
+
brief_doc: 'IO stream error codes.')
|
|
392
|
+
stream_error_enum.items << Extractor::EnumValueDef.new(enum: stream_error_enum, name: 'wxSTREAM_NO_ERROR', brief_doc: 'No error occurred.')
|
|
393
|
+
stream_error_enum.items << Extractor::EnumValueDef.new(enum: stream_error_enum, name: 'wxSTREAM_EOF', brief_doc: 'EOF reached.')
|
|
394
|
+
stream_error_enum.items << Extractor::EnumValueDef.new(enum: stream_error_enum, name: 'wxSTREAM_WRITE_ERROR', brief_doc: 'generic write error on the last write call.')
|
|
395
|
+
stream_error_enum.items << Extractor::EnumValueDef.new(enum: stream_error_enum, name: 'wxSTREAM_READ_ERROR', brief_doc: 'generic read error on the last read call.')
|
|
396
|
+
defmod.items << stream_error_enum
|
|
397
|
+
defmod
|
|
398
|
+
end
|
|
399
|
+
|
|
349
400
|
end # class FSFile
|
|
350
401
|
|
|
351
402
|
end # class Director
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
1
5
|
###
|
|
2
6
|
# wxRuby3 wxWidgets interface director
|
|
3
|
-
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
7
|
###
|
|
5
8
|
|
|
6
9
|
module WXRuby3
|
|
@@ -30,93 +33,91 @@ module WXRuby3
|
|
|
30
33
|
// sprintf in ruby, then pass the composed message directly to the
|
|
31
34
|
// log. This also avoids format string attacks.
|
|
32
35
|
|
|
36
|
+
static WxRuby_ID __filename_id("filename");
|
|
37
|
+
static WxRuby_ID __line_id("line");
|
|
38
|
+
static WxRuby_ID __func_id("func");
|
|
39
|
+
static WxRuby_ID __comp_id("component");
|
|
40
|
+
|
|
41
|
+
static const char* __wxruby_component = "wxapp";
|
|
42
|
+
|
|
43
|
+
// As the wxw logger will only make synchronous use of the filename, func and component pointers while
|
|
44
|
+
// processing the log entry and never store them we simply gather pointers but no copies
|
|
45
|
+
static void do_log(wxLogLevel lvl, int argc, VALUE *argv, ...)
|
|
46
|
+
{
|
|
47
|
+
const char* filename = nullptr;
|
|
48
|
+
int line = 0;
|
|
49
|
+
const char* func = nullptr;
|
|
50
|
+
const char* component = __wxruby_component;
|
|
51
|
+
|
|
52
|
+
if (argc>1 && TYPE(argv[argc-1]) == T_HASH)
|
|
53
|
+
{
|
|
54
|
+
VALUE rb_hash = argv[--argc];
|
|
55
|
+
VALUE rb_fnm = rb_hash_aref(rb_hash, ID2SYM(__filename_id.get_id()));
|
|
56
|
+
if (!NIL_P(rb_fnm) && TYPE(rb_fnm) == T_STRING) filename = StringValuePtr(rb_fnm);
|
|
57
|
+
VALUE rb_ln = rb_hash_aref(rb_hash, ID2SYM(__line_id.get_id()));
|
|
58
|
+
if (!NIL_P(rb_ln) && TYPE(rb_ln) == T_FIXNUM) line = NUM2INT(rb_ln);
|
|
59
|
+
VALUE rb_func = rb_hash_aref(rb_hash, ID2SYM(__func_id.get_id()));
|
|
60
|
+
if (!NIL_P(rb_func) && TYPE(rb_func) == T_STRING) func = StringValuePtr(rb_func);
|
|
61
|
+
VALUE rb_comp = rb_hash_aref(rb_hash, ID2SYM(__comp_id.get_id()));
|
|
62
|
+
if (!NIL_P(rb_comp) && TYPE(rb_comp) == T_STRING) component = StringValuePtr(rb_comp);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if ( lvl == wxLOG_FatalError ||
|
|
66
|
+
wxLog::IsLevelEnabled(lvl, wxASCII_STR(component)) )
|
|
67
|
+
{
|
|
68
|
+
VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
|
|
69
|
+
wxLogger(lvl, filename, line, func, component).Log(RSTR_TO_WXSTR(log_msg));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
33
73
|
// Log a Wx message with the given level to the current Wx log output
|
|
34
74
|
static VALUE log_generic(int argc, VALUE *argv, VALUE self)
|
|
35
75
|
{
|
|
36
|
-
|
|
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
|
-
}
|
|
76
|
+
wxLogLevel lvl = static_cast<wxLogLevel> (NUM2INT(argv[0]));
|
|
77
|
+
do_log(lvl, argc-1, &argv[1]);
|
|
44
78
|
return Qnil;
|
|
45
79
|
}
|
|
46
80
|
|
|
47
81
|
// Log a Wx low prio Message to the current Wx log output
|
|
48
82
|
static VALUE log_info(int argc, VALUE *argv, VALUE self)
|
|
49
83
|
{
|
|
50
|
-
|
|
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
|
-
}
|
|
84
|
+
do_log(wxLOG_Info, argc, argv);
|
|
57
85
|
return Qnil;
|
|
58
86
|
}
|
|
59
87
|
|
|
60
88
|
// Log a Wx verbose Message to the current Wx log output
|
|
61
89
|
static VALUE log_verbose(int argc, VALUE *argv, VALUE self)
|
|
62
90
|
{
|
|
63
|
-
if (
|
|
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
|
-
}
|
|
91
|
+
if (wxLog::GetVerbose ())
|
|
92
|
+
do_log(wxLOG_Info, argc, argv);
|
|
70
93
|
return Qnil;
|
|
71
94
|
}
|
|
72
95
|
|
|
73
96
|
// Log a Wx Message to the current Wx log output
|
|
74
97
|
static VALUE log_message(int argc, VALUE *argv, VALUE self)
|
|
75
98
|
{
|
|
76
|
-
|
|
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
|
-
}
|
|
99
|
+
do_log(wxLOG_Message, argc, argv);
|
|
83
100
|
return Qnil;
|
|
84
101
|
}
|
|
85
102
|
|
|
86
103
|
// Log a Wx Warning message to the current Wx log output
|
|
87
104
|
static VALUE log_warning(int argc, VALUE *argv, VALUE self)
|
|
88
105
|
{
|
|
89
|
-
|
|
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
|
-
}
|
|
106
|
+
do_log(wxLOG_Warning, argc, argv);
|
|
96
107
|
return Qnil;
|
|
97
108
|
}
|
|
98
109
|
|
|
99
110
|
// Log an error message to the current output
|
|
100
111
|
static VALUE log_error(int argc, VALUE *argv, VALUE self)
|
|
101
112
|
{
|
|
102
|
-
|
|
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
|
-
}
|
|
113
|
+
do_log(wxLOG_Error, argc, argv);
|
|
109
114
|
return Qnil;
|
|
110
115
|
}
|
|
111
116
|
|
|
112
117
|
// Log a debug message
|
|
113
118
|
static VALUE log_debug(int argc, VALUE *argv, VALUE self)
|
|
114
119
|
{
|
|
115
|
-
|
|
116
|
-
{
|
|
117
|
-
VALUE log_msg = argc==1 ? argv[0] : rb_f_sprintf(argc, argv);
|
|
118
|
-
wxLogDebug(wxString(StringValuePtr(log_msg), wxConvUTF8));
|
|
119
|
-
}
|
|
120
|
+
do_log(wxLOG_Debug, argc, argv);
|
|
120
121
|
return Qnil;
|
|
121
122
|
}
|
|
122
123
|
|
|
@@ -196,6 +197,7 @@ module WXRuby3
|
|
|
196
197
|
}
|
|
197
198
|
__CODE
|
|
198
199
|
end
|
|
200
|
+
spec.map_apply 'int *OUTPUT' => ['int *indexDefaultExtension']
|
|
199
201
|
# hardcoded interface declarations
|
|
200
202
|
spec.add_interface_code <<~__HEREDOC
|
|
201
203
|
bool wxSafeYield(wxWindow* win = NULL, bool onlyIfNeeded = false);
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
1
5
|
###
|
|
2
6
|
# wxRuby3 wxWidgets interface director
|
|
3
|
-
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
7
|
###
|
|
5
8
|
|
|
6
9
|
module WXRuby3
|
|
@@ -57,14 +60,16 @@ module WXRuby3
|
|
|
57
60
|
wxPoint::x wxPoint::y
|
|
58
61
|
wxRealPoint::x wxRealPoint::y
|
|
59
62
|
]
|
|
60
|
-
spec.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
spec.ignore('wxStockCursor.wxCURSOR_DEFAULT') unless Config.instance.features_set?('__WXGTK__')
|
|
64
|
+
unless Config.instance.features_set?('__X__')
|
|
65
|
+
spec.ignore %w{
|
|
66
|
+
wxStockCursor.wxCURSOR_CROSS_REVERSE
|
|
67
|
+
wxStockCursor.wxCURSOR_DOUBLE_ARROW
|
|
68
|
+
wxStockCursor.wxCURSOR_BASED_ARROW_UP
|
|
69
|
+
wxStockCursor.wxCURSOR_BASED_ARROW_DOWN
|
|
70
|
+
}
|
|
71
|
+
end
|
|
72
|
+
spec.ignore('wxStockCursor.wxCURSOR_COPY_ARROW') unless Config.instance.features_set?('__WXOSX__')
|
|
68
73
|
spec.add_extend_code 'wxRect', <<~__HEREDOC
|
|
69
74
|
wxRect add(const wxRect &rect) const {
|
|
70
75
|
return (*(const wxRect*)$self) + rect;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
1
5
|
###
|
|
2
6
|
# wxRuby3 wxWidgets interface director
|
|
3
|
-
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
7
|
###
|
|
5
8
|
|
|
6
9
|
module WXRuby3
|
|
@@ -11,21 +14,97 @@ module WXRuby3
|
|
|
11
14
|
|
|
12
15
|
def setup
|
|
13
16
|
super
|
|
17
|
+
spec.items << 'wxGraphicsGradientStop' << 'wxGraphicsGradientStops' << 'wxGraphicsPenInfo'
|
|
14
18
|
spec.disable_proxies
|
|
15
19
|
# do not track GraphicContext objects as that causes problems probably for similar
|
|
16
20
|
# reasons as for DC objects
|
|
17
21
|
spec.gc_as_untracked
|
|
22
|
+
# doc error
|
|
23
|
+
spec.ignore 'wxGraphicsGradientStop::wxGraphicsGradientStop'
|
|
24
|
+
spec.extend_interface 'wxGraphicsGradientStop',
|
|
25
|
+
'wxGraphicsGradientStop(wxColour col=wxTransparentColour, float pos=0.0)'
|
|
18
26
|
# ignore all these; wxRuby only supports the ::draw_on methods
|
|
19
27
|
spec.ignore 'wxGraphicsContext::CreateFromNative',
|
|
20
28
|
'wxGraphicsContext::CreateFromNativeWindow',
|
|
21
29
|
'wxGraphicsContext::CreateFromNativeHDC',
|
|
22
30
|
'wxGraphicsContext::CreateFromUnknownDC',
|
|
23
31
|
'wxGraphicsContext::GetNativeContext',
|
|
24
|
-
'wxGraphicsContext::Create'
|
|
32
|
+
'wxGraphicsContext::Create',
|
|
33
|
+
'wxGraphicsContext::CreateMatrix(const wxAffineMatrix2DBase &) const',
|
|
34
|
+
'wxGraphicsContext::DrawLines(size_t, const wxPoint2DDouble *, wxPolygonFillMode)',
|
|
35
|
+
'wxGraphicsContext::StrokeLines(size_t, const wxPoint2DDouble *)',
|
|
36
|
+
'wxGraphicsContext::StrokeLines (size_t, const wxPoint2DDouble *, const wxPoint2DDouble *)'
|
|
37
|
+
if Config.platform == :linux
|
|
38
|
+
spec.ignore 'wxGraphicsContext::Create(const wxPrinterDC &)'
|
|
39
|
+
end
|
|
40
|
+
spec.add_header_code <<~__HEREDOC
|
|
41
|
+
// special free funcs are needed to clean up Dashes array if it has been
|
|
42
|
+
// set; wxWidgets does not do this automatically so will leak if not
|
|
43
|
+
// dealt with.
|
|
44
|
+
void GC_free_wxGraphicsPenInfo(wxGraphicsPenInfo *pen_info)
|
|
45
|
+
{
|
|
46
|
+
SWIG_RubyRemoveTracking(pen_info);
|
|
47
|
+
if (pen_info)
|
|
48
|
+
{
|
|
49
|
+
wxDash *dashes;
|
|
50
|
+
int dash_count = pen_info->GetDashes(&dashes);
|
|
51
|
+
if ( dash_count )
|
|
52
|
+
delete dashes;
|
|
53
|
+
}
|
|
54
|
+
delete pen_info;
|
|
55
|
+
}
|
|
56
|
+
__HEREDOC
|
|
57
|
+
# dealt with below - these require special handling because of the use
|
|
58
|
+
# of wxDash array, which cannot be freed until the peninfo is disposed of
|
|
59
|
+
# or until a new dash pattern is specified.
|
|
60
|
+
spec.ignore(%w[wxGraphicsPenInfo::GetDashes wxGraphicsPenInfo::Dashes], ignore_doc: false)
|
|
61
|
+
spec.ignore 'wxGraphicsPenInfo::GetDash'
|
|
62
|
+
spec.add_extend_code 'wxGraphicsPenInfo', <<~__HEREDOC
|
|
63
|
+
// Returns a ruby array with the dash lengths
|
|
64
|
+
VALUE get_dashes()
|
|
65
|
+
{
|
|
66
|
+
VALUE rb_dashes = rb_ary_new();
|
|
67
|
+
wxDash* dashes;
|
|
68
|
+
int dash_count = $self->GetDashes(&dashes);
|
|
69
|
+
for ( int i = 0; i < dash_count; i++ )
|
|
70
|
+
{
|
|
71
|
+
rb_ary_push(rb_dashes, INT2NUM(dashes[i]));
|
|
72
|
+
}
|
|
73
|
+
return rb_dashes;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Sets the dashes to have the lengths defined in the ruby array of ints
|
|
77
|
+
void dashes(VALUE rb_dashes)
|
|
78
|
+
{
|
|
79
|
+
// Check right parameter type
|
|
80
|
+
if ( TYPE(rb_dashes) != T_ARRAY )
|
|
81
|
+
rb_raise(rb_eTypeError,
|
|
82
|
+
"Wrong argument type for set_dashes, should be Array");
|
|
83
|
+
|
|
84
|
+
// Get old value in case it needs to be deallocated to avoid leaking
|
|
85
|
+
wxDash* old_dashes;
|
|
86
|
+
int old_dashes_count = $self->GetDashes(&old_dashes);
|
|
87
|
+
|
|
88
|
+
// Create a C++ wxDash array to hold the new dashes, and populate
|
|
89
|
+
int new_dash_count = RARRAY_LEN(rb_dashes);
|
|
90
|
+
wxDash* new_dashes = new wxDash[ new_dash_count ];
|
|
91
|
+
for ( int i = 0; i < new_dash_count; i++ )
|
|
92
|
+
{
|
|
93
|
+
new_dashes[i] = NUM2INT(rb_ary_entry(rb_dashes, i));
|
|
94
|
+
}
|
|
95
|
+
$self->Dashes(new_dash_count, new_dashes);
|
|
96
|
+
|
|
97
|
+
// Clean up the old if it existed
|
|
98
|
+
if ( old_dashes_count )
|
|
99
|
+
delete old_dashes;
|
|
100
|
+
}
|
|
101
|
+
__HEREDOC
|
|
25
102
|
# type mappings
|
|
26
|
-
# Typemap to fix GraphicsContext#get_text_extent
|
|
103
|
+
# Typemap to fix GraphicsContext#get_text_extent and get_dpi and get_clip_box
|
|
27
104
|
spec.map_apply 'double *OUTPUT' => [ 'wxDouble* width', 'wxDouble* height',
|
|
28
|
-
'wxDouble* descent', 'wxDouble* externalLeading'
|
|
105
|
+
'wxDouble* descent', 'wxDouble* externalLeading',
|
|
106
|
+
'wxDouble *dpiX', 'wxDouble *dpiY',
|
|
107
|
+
'wxDouble *x', 'wxDouble *y', 'wxDouble *w', 'wxDouble *h']
|
|
29
108
|
spec.map 'wxDouble* width, wxDouble* height, wxDouble* descent, wxDouble* externalLeading' do
|
|
30
109
|
map_directorargout code: <<~__CODE
|
|
31
110
|
if ( (TYPE(result) == T_ARRAY) && (RARRAY_LEN(result) >= 2) )
|
|
@@ -137,7 +216,37 @@ module WXRuby3
|
|
|
137
216
|
}
|
|
138
217
|
__CODE
|
|
139
218
|
end
|
|
219
|
+
# for GetPartialTextExtents
|
|
220
|
+
spec.map 'wxArrayDouble &widths' => 'Array<Float>' do
|
|
221
|
+
map_in ignore: true, temp: 'wxArrayDouble tmp', code: '$1 = &tmp;'
|
|
222
|
+
|
|
223
|
+
map_argout code: <<~__CODE
|
|
224
|
+
$result = rb_ary_new();
|
|
225
|
+
for (size_t i = 0; i < $1->GetCount(); i++)
|
|
226
|
+
{
|
|
227
|
+
rb_ary_push($result,DBL2NUM( $1->Item(i) ) );
|
|
228
|
+
}
|
|
229
|
+
__CODE
|
|
230
|
+
end
|
|
140
231
|
# add convenience method providing efficient gc memory management
|
|
232
|
+
unless Config.platform == :linux
|
|
233
|
+
spec.add_extend_code 'wxGraphicsContext', <<~__HEREDOC
|
|
234
|
+
static VALUE draw_on(const wxPrinterDC& dc)
|
|
235
|
+
{
|
|
236
|
+
VALUE rc = Qnil;
|
|
237
|
+
if (rb_block_given_p())
|
|
238
|
+
{
|
|
239
|
+
wxGraphicsContext* p_gc = wxGraphicsContext::Create(dc);
|
|
240
|
+
VALUE rb_gc = SWIG_NewPointerObj(SWIG_as_voidptr(p_gc), SWIGTYPE_p_wxGraphicsContext, 1);
|
|
241
|
+
rc = rb_yield(rb_gc);
|
|
242
|
+
SWIG_RubyRemoveTracking((void *)p_gc);
|
|
243
|
+
DATA_PTR(rb_gc) = NULL;
|
|
244
|
+
delete p_gc;
|
|
245
|
+
}
|
|
246
|
+
return rc;
|
|
247
|
+
}
|
|
248
|
+
__HEREDOC
|
|
249
|
+
end
|
|
141
250
|
spec.add_extend_code 'wxGraphicsContext', <<~__HEREDOC
|
|
142
251
|
static VALUE draw_on(wxWindow* win)
|
|
143
252
|
{
|
|
@@ -181,20 +290,6 @@ module WXRuby3
|
|
|
181
290
|
}
|
|
182
291
|
return rc;
|
|
183
292
|
}
|
|
184
|
-
static VALUE draw_on(const wxPrinterDC& dc)
|
|
185
|
-
{
|
|
186
|
-
VALUE rc = Qnil;
|
|
187
|
-
if (rb_block_given_p())
|
|
188
|
-
{
|
|
189
|
-
wxGraphicsContext* p_gc = wxGraphicsContext::Create(dc);
|
|
190
|
-
VALUE rb_gc = SWIG_NewPointerObj(SWIG_as_voidptr(p_gc), SWIGTYPE_p_wxGraphicsContext, 1);
|
|
191
|
-
rc = rb_yield(rb_gc);
|
|
192
|
-
SWIG_RubyRemoveTracking((void *)p_gc);
|
|
193
|
-
DATA_PTR(rb_gc) = NULL;
|
|
194
|
-
delete p_gc;
|
|
195
|
-
}
|
|
196
|
-
return rc;
|
|
197
|
-
}
|
|
198
293
|
static VALUE draw_on(wxImage& img)
|
|
199
294
|
{
|
|
200
295
|
VALUE rc = Qnil;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
1
5
|
###
|
|
2
6
|
# wxRuby3 wxWidgets interface director
|
|
3
|
-
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
4
7
|
###
|
|
5
8
|
|
|
6
9
|
module WXRuby3
|
|
@@ -18,7 +21,14 @@ module WXRuby3
|
|
|
18
21
|
spec.ignore 'wxGraphicsMatrix::IsEqual(const wxGraphicsMatrix &)'
|
|
19
22
|
spec.ignore 'wxGraphicsMatrix::GetNativeMatrix'
|
|
20
23
|
spec.ignore 'wxGraphicsBitmap::GetNativeBitmap'
|
|
21
|
-
spec.ignore 'wxGraphicsPath::GetNativePath',
|
|
24
|
+
spec.ignore 'wxGraphicsPath::GetNativePath',
|
|
25
|
+
'wxGraphicsPath::UnGetNativePath',
|
|
26
|
+
'wxGraphicsPath::AddCurveToPoint(const wxPoint2DDouble &, const wxPoint2DDouble &, const wxPoint2DDouble &)',
|
|
27
|
+
'wxGraphicsPath::AddLineToPoint(const wxPoint2DDouble &)',
|
|
28
|
+
'wxGraphicsPath::Contains(const wxPoint2DDouble &, wxPolygonFillMode) const',
|
|
29
|
+
'wxGraphicsPath::GetCurrentPoint',
|
|
30
|
+
'wxGraphicsPath::MoveToPoint(const wxPoint2DDouble &)',
|
|
31
|
+
'wxGraphicsPath::AddArc(const wxPoint2DDouble &, wxDouble, wxDouble, wxDouble, bool)'
|
|
22
32
|
# Deal with GraphicsMatrix#get method
|
|
23
33
|
spec.map_apply 'double *OUTPUT' => [ 'wxDouble *a', 'wxDouble *b',
|
|
24
34
|
'wxDouble *c', 'wxDouble *d',
|
|
@@ -40,6 +50,7 @@ module WXRuby3
|
|
|
40
50
|
end
|
|
41
51
|
spec.ignore 'wxGraphicsPath::GetBox() const',
|
|
42
52
|
'wxGraphicsPath::GetCurrentPoint() const'
|
|
53
|
+
spec.map_apply 'double * OUTPUT' => 'wxDouble *'
|
|
43
54
|
if Config.platform == :mingw
|
|
44
55
|
# it seems for WXMSW there is a problem cleaning up GraphicsObjects in GC after
|
|
45
56
|
# the wxApp has ended (probably because some other wxWidgets cleanup already
|