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
data/lib/wx/doc/cursor.rb
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
|
+
# :stopdoc:
|
|
2
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
3
|
+
#
|
|
4
|
+
# This software is released under the MIT license.
|
|
5
|
+
# :startdoc:
|
|
1
6
|
|
|
2
|
-
|
|
7
|
+
|
|
8
|
+
class Wx
|
|
3
9
|
|
|
4
10
|
# Searches for an art file with basename 'name' and creates a Cursor if found.
|
|
5
11
|
# Raises an ArgumentError if not found.
|
|
6
12
|
# Wx::ArtLocator::find_art is used to look up the art file using ::Kernel#caller_locations to
|
|
7
|
-
# determine the values for the 'art_path' and '
|
|
8
|
-
# absolute path to the folder holding the caller's code and '
|
|
9
|
-
# caller's source file). The 'art_type' argument is set to <code>:
|
|
13
|
+
# determine the values for the 'art_path' and 'art_section' arguments if not specified here
|
|
14
|
+
# ('art_path' is set to the absolute path to the folder holding the caller's code and 'art_section'
|
|
15
|
+
# to the basename of the caller's source file). The 'art_type' argument is set to <code>:cursor</code>.
|
|
10
16
|
# @param [String,Symbol] name base name of art file
|
|
11
17
|
# @param [Wx::BitmapType,nil] bmp_type bitmap type for art file (nil means any supported type)
|
|
18
|
+
# @param [String,nil] art_path base path to look up the art file
|
|
19
|
+
# @param [String,nil] art_section optional owner folder name for art files
|
|
12
20
|
# @return [Wx::Cursor]
|
|
13
21
|
# @see Wx::ArtLocator::find_art
|
|
14
|
-
def self.Cursor(name, bmp_type = nil); end
|
|
22
|
+
def self.Cursor(name, bmp_type = nil, art_path: nil, art_section: nil); end
|
|
15
23
|
|
|
16
24
|
end
|
data/lib/wx/doc/data_object.rb
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# :stopdoc:
|
|
2
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
3
|
+
#
|
|
4
|
+
# This software is released under the MIT license.
|
|
5
|
+
# :startdoc:
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
module Wx
|
|
9
|
+
|
|
10
|
+
# Default/Null time (mostly equates to `now`).
|
|
11
|
+
DEFAULT_DATE_TIME = nil
|
|
12
|
+
|
|
13
|
+
# Default/Null time (mostly equates to `now`).
|
|
14
|
+
DefaultDateTime = DEFAULT_DATE_TIME
|
|
15
|
+
|
|
16
|
+
end
|
data/lib/wx/doc/dc.rb
CHANGED
data/lib/wx/doc/enum.rb
CHANGED
data/lib/wx/doc/event.rb
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
# :stopdoc:
|
|
2
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
3
|
+
#
|
|
4
|
+
# This software is released under the MIT license.
|
|
5
|
+
# :startdoc:
|
|
6
|
+
|
|
1
7
|
|
|
2
8
|
module Wx
|
|
3
9
|
|
|
@@ -21,4 +27,10 @@ module Wx
|
|
|
21
27
|
|
|
22
28
|
end
|
|
23
29
|
|
|
30
|
+
# Find a window with the focus, that is also a descendant of the given window.
|
|
31
|
+
# This is used to determine the window to initially send commands to.
|
|
32
|
+
# @param [Wx::Window] ancestor
|
|
33
|
+
# @return [Wx::Window,nil] descendant window of ancestor with focus
|
|
34
|
+
def self.find_focus_descendant(ancestor) end
|
|
35
|
+
|
|
24
36
|
end
|
data/lib/wx/doc/event_blocker.rb
CHANGED
data/lib/wx/doc/events.rb
CHANGED
data/lib/wx/doc/evthandler.rb
CHANGED
|
@@ -18,9 +18,9 @@ is available for anyone to look at and use in any way they like. Also, anyone ca
|
|
|
18
18
|
and enhancements to the project.
|
|
19
19
|
|
|
20
20
|
Like wxWidgets wxRuby is a cross platform toolkit. This means that the same program will run on multiple platforms
|
|
21
|
-
without modification. Currently Supported platforms are Microsoft Windows and Linux or other
|
|
22
|
-
unix-like systems with GTK2 or GTK3 libraries.
|
|
23
|
-
|
|
21
|
+
without modification. Currently Supported platforms are Microsoft Windows, MacOSX and Linux or other
|
|
22
|
+
unix-like systems with GTK2 or GTK3 libraries. Contributions to achieve support for other wxWidgets supported platforms
|
|
23
|
+
are appreciated.
|
|
24
24
|
|
|
25
25
|
Since the programming language is Ruby, wxRuby programs are simple and easy to write and understand. To accomplish the
|
|
26
26
|
full Ruby experience wxRuby has not ported the wxWidgets API 1 on 1 to Ruby but has made an effort to make the wxRuby
|
|
@@ -75,7 +75,7 @@ require 'wx'
|
|
|
75
75
|
Wx::App.run { puts 'Hello world!' }
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
As you can there is no obligation to create an instance of the Wx::App class in wxRuby for
|
|
78
|
+
As you can see there is no obligation to create an instance of the Wx::App class in wxRuby for
|
|
79
79
|
(admittedly extremely) simple applications. Calling the #run class method with a block will suffice.<br>
|
|
80
80
|
The class method will create an instance of the generic Wx::App class under the hood and use the
|
|
81
81
|
provided block as the #on_init callback. As the code inside the block returns a false-type value (#puts
|
|
@@ -127,8 +127,8 @@ When creating #on_init/#on_exit methods it is important to understand that those
|
|
|
127
127
|
with wxWidgets itself). The base Wx::App class actually does not define these methods so it's also not needed (even not possible)
|
|
128
128
|
to call `super` in the implementation. The wxRuby application class implementation will call the wxWidget OnInit base implementation
|
|
129
129
|
itself and after successful completion check for the existence of an #on_init method (which could also be 'automagicallly'
|
|
130
|
-
created from a block passed to #run) and call that if available or terminate the application if not.
|
|
131
|
-
exit sequence
|
|
130
|
+
created from a block passed to #run) and call that if available or terminate the application if not. The
|
|
131
|
+
exit sequence of executions are similar but reversed (first a possible #on_exit method and than the wxWidgets base OnExit).
|
|
132
132
|
|
|
133
133
|
What remains though is that for a derived application class it is still not necessary to explicitly create a class instance.
|
|
134
134
|
Simply calling the #run class method will suffice.
|
|
@@ -56,117 +56,118 @@ Currently the following modules have been implemented.
|
|
|
56
56
|
|
|
57
57
|
### Core
|
|
58
58
|
|
|
59
|
-
The core wxRuby package providing the toplevel
|
|
59
|
+
The core wxRuby package providing the toplevel {Wx} module.
|
|
60
60
|
This package includes basic classes like:
|
|
61
61
|
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
62
|
+
- {Wx::Object}
|
|
63
|
+
- {Wx::EvtHandler}
|
|
64
|
+
- {Wx::Event}
|
|
65
|
+
- {Wx::CommandEvent}
|
|
66
|
+
- {Wx::App}
|
|
67
|
+
- {Wx::Window}
|
|
68
|
+
- {Wx::NonOwnedWindow}
|
|
69
|
+
- {Wx::TopLevelWindow}
|
|
70
|
+
- {Wx::Frame}
|
|
71
|
+
- {Wx::Dialog}
|
|
72
72
|
|
|
73
73
|
as well as most common window classes, control/widget classes, event classes, constant and enum definitions
|
|
74
74
|
and global functions not part of any of the other packages.
|
|
75
75
|
|
|
76
76
|
### AUI - Advanced User Interface controls and related classes
|
|
77
77
|
|
|
78
|
-
The wxRuby AUI package providing the
|
|
78
|
+
The wxRuby AUI package providing the {Wx::AUI} module.
|
|
79
79
|
This package includes all classes, constants and enum definitions that are considered part of the
|
|
80
80
|
wxWidgets AUI framework like:
|
|
81
81
|
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
82
|
+
- {Wx::AUI::AuiManager}
|
|
83
|
+
- {Wx::AUI::AuiMDIParentFrame}
|
|
84
|
+
- {Wx::AUI::AuiMDIChildFrame}
|
|
85
|
+
- {Wx::AUI::AuiMDIClientWindow}
|
|
86
86
|
- etc
|
|
87
87
|
|
|
88
88
|
### GRID - Grid control and related classes
|
|
89
89
|
|
|
90
|
-
The wxRuby GRID package providing the
|
|
90
|
+
The wxRuby GRID package providing the {Wx::GRID} module.
|
|
91
91
|
This package includes all classes, constants and enum definitions that are associated with the
|
|
92
92
|
wxWidgets wxGrid control like:
|
|
93
93
|
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
94
|
+
- {Wx::GRID::Grid}
|
|
95
|
+
- {Wx::GRID::GridTableBase}
|
|
96
|
+
- {Wx::GRID::GridCellEditor}
|
|
97
|
+
- {Wx::GRID::GridCellRenderer}
|
|
98
|
+
- {Wx::GRID::GridEvent}
|
|
99
99
|
- etc
|
|
100
100
|
|
|
101
101
|
### HTML - Html framework classes
|
|
102
102
|
|
|
103
|
-
The wxRuby HTML package providing the
|
|
103
|
+
The wxRuby HTML package providing the {Wx::HTML} module.
|
|
104
104
|
This package includes all classes, constants and enum definitions that are considered part of the
|
|
105
105
|
wxWidgets Html framework like:
|
|
106
106
|
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
107
|
+
- {Wx::HTML::HtmlWindow}
|
|
108
|
+
- {Wx::HTML::HtmlHelpWindow}
|
|
109
|
+
- {Wx::HTML::HtmlPrintout}
|
|
110
|
+
- {Wx::HTML::HtmlHelpController}
|
|
111
|
+
- {Wx::HTML::HtmlListBox}
|
|
111
112
|
- etc
|
|
112
113
|
|
|
113
114
|
### PG - PropertyGrid control and related classes
|
|
114
115
|
|
|
115
|
-
The wxRuby PG package providing the
|
|
116
|
+
The wxRuby PG package providing the {Wx::PG} module.
|
|
116
117
|
This package includes all classes, constants and enum definitions that are associated with the
|
|
117
118
|
wxWidgets wxPropertyGrid control like:
|
|
118
119
|
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
120
|
+
- {Wx::PG::PropertyGrid}
|
|
121
|
+
- {Wx::PG::PropertyGridManager}
|
|
122
|
+
- {Wx::PG::PGCell}
|
|
123
|
+
- {Wx::PG::PGProperty}
|
|
124
|
+
- {Wx::PG::PropertyGridEvent}
|
|
124
125
|
- etc
|
|
125
126
|
|
|
126
127
|
### PRT - Printing framework classes
|
|
127
128
|
|
|
128
|
-
The wxRuby PRT package providing the
|
|
129
|
+
The wxRuby PRT package providing the {Wx::PRT} module.
|
|
129
130
|
This package includes all classes, constants and enum definitions that are considered part of the
|
|
130
131
|
wxWidgets Printing framework like:
|
|
131
132
|
|
|
132
|
-
-
|
|
133
|
-
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
133
|
+
- {Wx::PRT::PreviewFrame}
|
|
134
|
+
- {Wx::PRT::Printer}
|
|
135
|
+
- {Wx::PRT::PrinterDC}
|
|
136
|
+
- {Wx::PRT::PrintDialog}
|
|
136
137
|
- etc
|
|
137
138
|
|
|
138
139
|
### RBN - Ribbon framework classes
|
|
139
140
|
|
|
140
|
-
The wxRuby RBN package providing the
|
|
141
|
+
The wxRuby RBN package providing the {Wx::RBN} module.
|
|
141
142
|
This package includes all classes, constants and enum definitions that are considered part of the
|
|
142
143
|
wxWidgets Ribbon framework like:
|
|
143
144
|
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
145
|
+
- {Wx::RBN::RibbonControl}
|
|
146
|
+
- {Wx::RBN::RibbonGallery}
|
|
147
|
+
- {Wx::RBN::RibbonPanel}
|
|
148
|
+
- {Wx::RBN::RibbonPage}
|
|
149
|
+
- {Wx::RBN::RibbonBar}
|
|
149
150
|
- etc
|
|
150
151
|
|
|
151
152
|
### RTC - RichText control and related classes
|
|
152
153
|
|
|
153
|
-
The wxRuby RTC package providing the
|
|
154
|
+
The wxRuby RTC package providing the {Wx::RTC} module.
|
|
154
155
|
This package includes all classes, constants and enum definitions that are associated with the
|
|
155
156
|
wxWidgets wxRichTextCtrl control like:
|
|
156
157
|
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
158
|
+
- {Wx::RTC::RichTextCtrl}
|
|
159
|
+
- {Wx::RTC::RichTextEvent}
|
|
160
|
+
- {Wx::RTC::RichTextBuffer}
|
|
160
161
|
- etc
|
|
161
162
|
|
|
162
163
|
### STC - StyledText control and related classes
|
|
163
164
|
|
|
164
|
-
The wxRuby STC package providing the
|
|
165
|
+
The wxRuby STC package providing the {Wx::STC} module.
|
|
165
166
|
This package includes all classes, constants and enum definitions that are associated with the
|
|
166
167
|
wxWidgets wxStyledTextCtrl control (Scintilla integration) like:
|
|
167
168
|
|
|
168
|
-
-
|
|
169
|
-
-
|
|
169
|
+
- {Wx::STC::StyledTextCtrl}
|
|
170
|
+
- {Wx::STC::StyledTextEvent}
|
|
170
171
|
|
|
171
172
|
## Feature dependencies
|
|
172
173
|
|
|
@@ -76,7 +76,7 @@ As mentioned above the wxWidgets GUI framework resources will only be fully init
|
|
|
76
76
|
starts. Likewise the framework resources will be de-initialized (deleted) after `#on_exit` method ends which means that
|
|
77
77
|
your application should not attempt to access any of these resources (windows, fonts, colours etc.) after that moment.
|
|
78
78
|
|
|
79
|
-
Also, largely because of the way the wxWidgets framework is designed but also because of
|
|
79
|
+
Also, largely because of the way the wxWidgets framework is designed but also because of the way this meshes with Ruby
|
|
80
80
|
GC, there is no safe way to re-initialize the framework after an application instance ends it run. This means you
|
|
81
81
|
**cannot** safely attempt to start another application instance after a previous (first) one has ended.
|
|
82
82
|
|
|
@@ -120,7 +120,7 @@ therefor provides special support to ease handling the destruction of these. See
|
|
|
120
120
|
One of the trickier things to handle correctly in the kind of native extensions like wxRuby is maintaining object
|
|
121
121
|
identities i.e. keeping native instances synced with their Ruby wrapper counter parts.
|
|
122
122
|
|
|
123
|
-
Whenever a native extension is allowed to call back into Ruby space we encounter the problem
|
|
123
|
+
Whenever a native extension is allowed to call back into Ruby space we encounter the problem that we need to map any
|
|
124
124
|
native object data provided for the call to the right Ruby types and when necessary to the right Ruby instance (object
|
|
125
125
|
identity).
|
|
126
126
|
|
|
@@ -131,8 +131,8 @@ passing them on to Ruby space.
|
|
|
131
131
|
For a lot of other objects though it is essential to not only map to the right **most derived** class type but also to
|
|
132
132
|
the exact Ruby instance which was originally instantiated as wrapper for the native object if any exists (in case no
|
|
133
133
|
Ruby instance existed yet a new instance of the correct **most derived** class should be instantiated at that point).
|
|
134
|
-
The reason this is important is 1
|
|
135
|
-
reference other data and/or functionality related to that specific Ruby/native pair and 2
|
|
134
|
+
The reason this is important is **1.** because the Ruby instance may have been used to identify, link to or otherwise
|
|
135
|
+
reference other data and/or functionality related to that specific Ruby/native pair and **2.** the Ruby instance could
|
|
136
136
|
contain data elements (instance variables) related to that specific Ruby/native pair.<br>
|
|
137
137
|
In the case of wxRuby Window instance for example it is common to derive custom Window classes with custom behaviour and
|
|
138
138
|
corresponding instance variables that drive that behaviour. When an event handler or an overloaded native method is passed
|
|
@@ -155,11 +155,12 @@ There are however quite a lot of wrapped native objects in wxRuby for which *obj
|
|
|
155
155
|
object tracking has been disabled for their classes. This means these kind of classes/object should **not** be derived from
|
|
156
156
|
(if even possible and/or useful) to add functionality/information or their identity used as key to link other information.<br>
|
|
157
157
|
These classes include:
|
|
158
|
-
|
|
158
|
+
* classes considered POD types like Wx::Size, Wx::Point, Wx::RealPoint, Wx::Rect, Wx::GBSpan, Wx::GBPosition, Wx::BusyInfoFlags,
|
|
159
159
|
Wx::AboutDialogInfo
|
|
160
|
-
|
|
160
|
+
* final non-instantiatable classes like the Wx::DC (Device Context) class family, Wx::GraphicsContext, Wx::WindowsDisabler,
|
|
161
161
|
Wx::EventBlocker, Wx::BusyInfo
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
* classes with native singleton objects like Wx::Clipboard
|
|
163
|
+
* the reference counted GDI objects like Wx::Pen, Wx::Brush, Wx::Colour, Wx::Cursor, Wx::Bitmap, Wx::Icon and similar
|
|
164
|
+
reference counted objects like Wx::Font
|
|
164
165
|
|
|
165
166
|
The reference documentation will note untracked object classes.
|
|
@@ -15,8 +15,9 @@ Instead wxRuby offers a dynamic solution that is just as easy to use and even of
|
|
|
15
15
|
## Event handlers
|
|
16
16
|
|
|
17
17
|
Instead of the `EVT_XXX` event handler declaration macros used in wxWidgets wxRuby provides similarly named event handler
|
|
18
|
-
definition methods for each of the known event declarations which are inherited by **all** classes derived from
|
|
19
|
-
|
|
18
|
+
definition methods for each of the known event declarations which are inherited by **all** classes derived from {Wx::
|
|
19
|
+
EvtHandler}
|
|
20
|
+
(which includes all window classes, the {Wx::App} class and {Wx::Timer} as well as various other classes).<br>
|
|
20
21
|
|
|
21
22
|
Naming is (mostly) identical but rubified. So `EVT_MENU` becomes `evt_menu`, `EVT_IDLE` becomes `evt_idle`, `EVT_UPDATE_UI`
|
|
22
23
|
becomes `evt_update_ui` etc.
|
|
@@ -27,7 +28,7 @@ Like the event handler macros some of these methods require a single (window) id
|
|
|
27
28
|
|
|
28
29
|
Event handler setup is typically something done during the initialization of an event handler object (like a window) but
|
|
29
30
|
this is not required. As all event handlers are assigned dynamically in wxRuby you can setup (some) event handlers at a
|
|
30
|
-
later moment. You could also disconnect earlier activated handlers at any time (see
|
|
31
|
+
later moment. You could also disconnect earlier activated handlers at any time (see {Wx::EvtHandler#disconnect}).
|
|
31
32
|
|
|
32
33
|
In case of some frame class `MyForm` including a menu a wxWidgets static event handling table like:
|
|
33
34
|
|
|
@@ -96,7 +97,7 @@ will take care of checking and handling method arity.
|
|
|
96
97
|
|
|
97
98
|
Custom event definitions are fully supported in wxRuby including the definition of new event types.
|
|
98
99
|
|
|
99
|
-
New event classes can be registered with
|
|
100
|
+
New event classes can be registered with {Wx::EvtHandler#register_class} which returns the new event type for the event
|
|
100
101
|
class like this:
|
|
101
102
|
|
|
102
103
|
```ruby
|
|
@@ -125,27 +126,27 @@ Check the reference documentation [here](https://mcorino.github.io/wxRuby3/Wx/Ev
|
|
|
125
126
|
|
|
126
127
|
## Event processing
|
|
127
128
|
|
|
128
|
-
In wxRuby overruling the normal chain of event handling has been limited to being able to override the default
|
|
129
|
-
|
|
129
|
+
In wxRuby overruling the normal chain of event handling has been limited to being able to override the default
|
|
130
|
+
{Wx::EvtHandler#try_before} and {Wx::EvtHandler#try_after} methods. These are the advised interception points for events
|
|
130
131
|
when you really need to do this.<br>
|
|
131
|
-
Overriding
|
|
132
|
+
Overriding {Wx::EvtHandler#process_event} is not considered to be efficient (or desired)
|
|
132
133
|
for wxRuby applications and has therefor been blocked.
|
|
133
134
|
|
|
134
135
|
## Event insertion
|
|
135
136
|
|
|
136
|
-
Use of
|
|
137
|
+
Use of {Wx::EvtHandler#process_event} or {Wx::EvtHandler#queue_event} and {Wx::EvtHandler#add_pending_event} in wxRuby to
|
|
137
138
|
trigger event processing of user generated (possibly custom) events is fully supported.
|
|
138
139
|
|
|
139
|
-
As with wxWidgets
|
|
140
|
+
As with wxWidgets {Wx::EvtHandler#process_event} will trigger immediate processing of the given event, not returning before
|
|
140
141
|
this has finished.<br>
|
|
141
|
-
|
|
142
|
+
{Wx::EvtHandler#queue_event} and {Wx::EvtHandler#add_pending_event} on the other hand will post (append) the given event
|
|
142
143
|
to the event queue and return immediately after that is done. The event will than be processed after any other events in
|
|
143
144
|
the queue. Unlike in wxWidgets in wxRuby there is no practical difference between `queue_event` and `add_pending_event`.
|
|
144
145
|
|
|
145
146
|
## Asynchronous execution
|
|
146
147
|
|
|
147
|
-
In addition to
|
|
148
|
-
wxRuby also supports
|
|
148
|
+
In addition to {Wx::EvtHandler#queue_event} and {Wx::EvtHandler#add_pending_event} to trigger asynchronous processing
|
|
149
|
+
wxRuby also supports {Wx::EvtHandler#call_after}.
|
|
149
150
|
|
|
150
151
|
This method provides the means to trigger asynchronous execution of arbitrary code and because it has been rubified is
|
|
151
152
|
easy and powerful to use. Like with event handler definition this method accepts a `Symbol` or `String` (identifying a
|
|
@@ -164,3 +165,27 @@ evt_handler.call_after(->(txt) { Wx.log_info(txt) }, "Hello")
|
|
|
164
165
|
# async call of block
|
|
165
166
|
evt_handler.call_after('Call nr. %d', 1) { |fmt, num| Wx.log_info(fmt, num) }
|
|
166
167
|
```
|
|
168
|
+
|
|
169
|
+
## Event life cycles!
|
|
170
|
+
|
|
171
|
+
Like in C++ the wxRuby Event objects passed to the event handlers are (in general) references to **temporary** objects
|
|
172
|
+
which are only safe to access within the execution scope of the event handler that received the reference.
|
|
173
|
+
If you *need* (really?) to store a reference to such an object do so to a cloned version (see {Wx::Event#clone}) and **not**
|
|
174
|
+
to the original object otherwise you **will** run into 'Object already deleted' exceptions.
|
|
175
|
+
|
|
176
|
+
Only user defined events instantiated in Ruby code (or cloned Event objects) will be subject to Ruby's normal life cycle
|
|
177
|
+
rules (GC).
|
|
178
|
+
This means that when you instantiate a user defined event and pass it to {Wx::EvtHandler#process_event} it would be possible
|
|
179
|
+
to directly store the reference to such an Event object passed to it's event handler. You have to **know** for sure though
|
|
180
|
+
(see below). So, in case of doubt (or to be safe) use {Wx::Event#clone}.
|
|
181
|
+
|
|
182
|
+
Another 'feature' to be aware of is the fact that when passing an (user instantiated) Event object to {Wx::
|
|
183
|
+
EvtHandler#queue_event}
|
|
184
|
+
or {Wx::EvtHandler#add_pending_event} the Ruby event instance is unlinked from it's C++ counterpart (or in the case of user
|
|
185
|
+
defined events a cloned instance is associated with it's C++ counterpart) before being queued and the C++ side now takes ownership
|
|
186
|
+
(and will delete the Event object when handled).
|
|
187
|
+
As a result this means that even in the case of a user defined Event object any event handler triggered by a asynchronously
|
|
188
|
+
processed event will be handling a temporary Event object.
|
|
189
|
+
Additionally this also means that any Event object passed to {Wx::EvtHandler#queue_event} or {Wx::
|
|
190
|
+
EvtHandler#add_pending_event}
|
|
191
|
+
is essentially invalidated after these methods return and should not be referenced anymore.
|
|
@@ -19,13 +19,13 @@ Wx::Frame.new(nil, -1, 'title', Wx::Point.new(0,0), Wx::Size.new(500,400))
|
|
|
19
19
|
which starts to feel awkward to specify what are in essence just pairs of integers.
|
|
20
20
|
|
|
21
21
|
To provide a simpler, more compact and more Ruby-like, alternative the wxRuby API therefor supports specifying arrays
|
|
22
|
-
of integer (or float in case of Wx::RealPoint) pairs in (almost) all cases where
|
|
23
|
-
(or Wx::RealPoint) is expected. So the following code is equivalent to the previous code:
|
|
22
|
+
of integer (or float in case of {Wx::RealPoint}) pairs in (almost) all cases where {Wx::Size} or {Wx::Point}
|
|
23
|
+
(or {Wx::RealPoint}) is expected. So the following code is equivalent to the previous code:
|
|
24
24
|
```ruby
|
|
25
25
|
Wx::Frame.new(nil, -1, 'title', [0,0], [500,400])
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
In addition
|
|
28
|
+
In addition {Wx::Size}, {Wx::Point} and {Wx::RealPoint} support parallel assignment semantics such that you can write code like
|
|
29
29
|
```ruby
|
|
30
30
|
win.paint do | dc |
|
|
31
31
|
# ...
|
|
@@ -47,12 +47,12 @@ instead of
|
|
|
47
47
|
Instances of these classes can also be converted (back) to arrays with their `#to_ary` methods.
|
|
48
48
|
|
|
49
49
|
Lastly wxRuby also extends the standard Ruby Array class with conversion methods to explicitly convert
|
|
50
|
-
arrays to
|
|
50
|
+
arrays to {Wx::Size}, {Wx::Point} or {Wx::RealPoint}; respectively the `#to_size`, `#to_point` and `#to_real_point`
|
|
51
51
|
methods.
|
|
52
52
|
|
|
53
53
|
## Areas (Wx::Rect)
|
|
54
54
|
|
|
55
|
-
Like
|
|
55
|
+
Like {Wx::Size} and {Wx::Point} wxRuby supports parallel assignment for {Wx::Rect} such that you can write code like
|
|
56
56
|
```ruby
|
|
57
57
|
x, y, width, height = win.get_client_rect
|
|
58
58
|
```
|
|
@@ -21,7 +21,7 @@ For the wxRuby API similar support has been achieved for various much used argum
|
|
|
21
21
|
|
|
22
22
|
## Colour
|
|
23
23
|
|
|
24
|
-
Wherever a
|
|
24
|
+
Wherever a {Wx::Colour} object is expected as an argument wxRuby supports the specification of `String` or `Symbol`
|
|
25
25
|
values as a developer friendly alternative. This way the following code is equivalent:
|
|
26
26
|
|
|
27
27
|
```ruby
|
|
@@ -37,7 +37,7 @@ pen.set_colour(:CYAN)
|
|
|
37
37
|
|
|
38
38
|
## Font
|
|
39
39
|
|
|
40
|
-
Wherever a
|
|
40
|
+
Wherever a {Wx::Font} object is expected as an argument wxRuby supports the specification of a {Wx::FontInfo} object.
|
|
41
41
|
This way the following code is equivalent:
|
|
42
42
|
|
|
43
43
|
```ruby
|
|
@@ -15,7 +15,7 @@ your own Ruby application code.
|
|
|
15
15
|
|
|
16
16
|
Any exceptions raised from wxRuby wrapper code signal coding errors that need to be rectified.
|
|
17
17
|
|
|
18
|
-
As far as handling application code exceptions is concerned the same advice applies as for wxWidgets itself; do **
|
|
18
|
+
As far as handling application code exceptions is concerned the same advice applies as for wxWidgets itself; do **NOT**
|
|
19
19
|
let exceptions escape your event handlers meaning that if you can reasonably expect application code to raise exceptions
|
|
20
20
|
you should make sure to catch any such exceptions within the context of the event handler like:
|
|
21
21
|
|
|
@@ -50,5 +50,5 @@ end
|
|
|
50
50
|
|
|
51
51
|
In wxRuby event handler code is executed in an exception safe way which will capture any leaking exceptions. As wxRuby
|
|
52
52
|
however has no idea why this exception was raised and how to handle it, the result will be an exit of the main event loop
|
|
53
|
-
of the running
|
|
53
|
+
of the running {Wx::App} instance and re-raising the exception to be handled by Ruby like any unhandled application
|
|
54
54
|
exception.
|
data/lib/wx/doc/extra/10_art.md
CHANGED
|
@@ -18,8 +18,8 @@ Art that is part of the application's design will preferably be stored with the
|
|
|
18
18
|
is not standard for this nor is there any standard support for locating those files from the application
|
|
19
19
|
code like there is for `require`-s of other code modules.
|
|
20
20
|
|
|
21
|
-
The wxRuby framework provides a convenience module
|
|
22
|
-
Wx::ArtLocator aims on the one side to standardize folder structures for storing art files and on the
|
|
21
|
+
The wxRuby framework provides a convenience module {Wx::ArtLocator} to assist in that respect.
|
|
22
|
+
{Wx::ArtLocator} aims on the one side to standardize folder structures for storing art files and on the
|
|
23
23
|
other side to provide runtime support for locating those files from code.
|
|
24
24
|
|
|
25
25
|
The main locator method provided is:
|
|
@@ -63,41 +63,47 @@ The first location can be skipped by specifying `nil` for 'art_type'.
|
|
|
63
63
|
|
|
64
64
|
## Bitmap types
|
|
65
65
|
|
|
66
|
-
Based on platform and specified '<art_type>' (and optionally a specific Wx::BitmapType) art files with a specific
|
|
66
|
+
Based on platform and specified '<art_type>' (and optionally a specific {Wx::BitmapType}) art files with a specific
|
|
67
67
|
range of extensions will be tested in a specific order.
|
|
68
68
|
For example for locating an `:icon` (<art_type>) on platform 'WXGTK' the locator will test the preferred extension
|
|
69
69
|
'.xpm' followed by any of supported extensions of all other supported bitmap types.
|
|
70
70
|
For platform 'WXMSW' however the same search would test only the extensions '.ico' and '.xpm' (in that
|
|
71
71
|
order).
|
|
72
|
-
Specifying a specific Wx::BitmapType for a search will restrict the search to testing only the extensions supported
|
|
73
|
-
for the specified Wx::BitmapType.
|
|
72
|
+
Specifying a specific {Wx::BitmapType} for a search will restrict the search to testing only the extensions supported
|
|
73
|
+
for the specified {Wx::BitmapType}.
|
|
74
74
|
|
|
75
75
|
## Search paths
|
|
76
76
|
|
|
77
|
-
To prevent having to specify base search path for every location request Wx::Locator provides 2 options.
|
|
77
|
+
To prevent having to specify base search path for every location request {Wx::Locator} provides 2 options.
|
|
78
78
|
|
|
79
79
|
When an explicit specification of a base search path ('art_path) is omitted from a location request the locator
|
|
80
80
|
will determine one by using `Kernel#caller_locations` to extract the absolute path for the source file containing
|
|
81
81
|
the caller's code. The result of `File.dirname(src_path)` is than used as base search path.
|
|
82
82
|
If 'art_section' is also omitted the result of `File.basename(src_path, '.*')` will be used instead.
|
|
83
83
|
|
|
84
|
-
This means that calling
|
|
84
|
+
This means that calling {Wx::ArtLocator.find_art} from some code in file `/some/lib/path/to/ruby/code.rb` without
|
|
85
85
|
specifying both 'art_path' and 'art_section' would result in looking for an art file with the base search path
|
|
86
86
|
being `/some/lib/path/to/ruby/` and using `code` as 'art_section'.
|
|
87
87
|
|
|
88
|
-
It is also possible to add 'application global' search paths with the method
|
|
88
|
+
It is also possible to add 'application global' search paths with the method {Wx::ArtLocator.add_search_path}.
|
|
89
89
|
Search paths added in this way will be tested after failing to find any matching art file at the initial 'art_path'
|
|
90
90
|
location. The same location steps apply to these search paths as with the initial 'art_path' (see above).
|
|
91
91
|
|
|
92
92
|
## Convenience methods
|
|
93
93
|
|
|
94
|
-
Based on the Wx::ArtLocator implementation wxRuby additionally provides a number of convenience methods to
|
|
95
|
-
easily create Icons, Bitmaps, Cursors and Images from simple ids (symbols)
|
|
94
|
+
Based on the {Wx::ArtLocator} implementation wxRuby additionally provides a number of convenience methods to
|
|
95
|
+
easily create Icons, Bitmaps, Cursors and Images from simple ids (symbols):
|
|
96
|
+
|
|
97
|
+
- {Wx.Bitmap}
|
|
98
|
+
- {Wx.Cursor}
|
|
99
|
+
- {Wx.Icon}
|
|
100
|
+
- {Wx.Image}
|
|
101
|
+
|
|
96
102
|
These methods mimic the ease of use of the `wxICON` and `wxBITMAP` macros used with C++ wxWidgets such that
|
|
97
|
-
creating an Wx::Icon instance could be as easy as:
|
|
103
|
+
creating an {Wx::Icon} instance could be as easy as:
|
|
98
104
|
|
|
99
105
|
```ruby
|
|
100
|
-
frame.icon = Wx
|
|
106
|
+
frame.icon = Wx.Icon(:sample)
|
|
101
107
|
```
|
|
102
108
|
|
|
103
109
|
As these methods apply the same search path 'automagic' as `Wx::ArtLocator.find_art` (see [Search paths](#Search-paths))
|