wxruby3 0.9.0.pre.beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CREDITS.md +52 -0
- data/LICENSE +21 -0
- data/README.md +139 -0
- data/bin/wxruby +9 -0
- data/ext/mkrf_conf_srcgem.rb +64 -0
- data/ext/wxruby3/include/wxruby-runtime.h +104 -0
- data/ext/wxruby3/swig/RubyStockObjects.i +62 -0
- data/ext/wxruby3/swig/common.i +110 -0
- data/ext/wxruby3/swig/custom/rubyprimtypes.swg +225 -0
- data/ext/wxruby3/swig/custom/rubytracking.swg +60 -0
- data/ext/wxruby3/swig/custom/swig3/rubyrun.swg +456 -0
- data/ext/wxruby3/swig/custom/swig4/rubyrun.swg +459 -0
- data/ext/wxruby3/swig/mark_free_impl.i +377 -0
- data/ext/wxruby3/swig/memory_management.i +142 -0
- data/ext/wxruby3/swig/typedefs.i +27 -0
- data/ext/wxruby3/swig/wx.i +282 -0
- data/ext/wxruby3/swig/wx.rc +19 -0
- data/ext/wxruby3/wxruby.ico +0 -0
- data/lib/wx/accessors.rb +63 -0
- data/lib/wx/aui/auimanager.rb +17 -0
- data/lib/wx/aui/auinotebook.rb +9 -0
- data/lib/wx/aui/require.rb +9 -0
- data/lib/wx/aui.rb +14 -0
- data/lib/wx/core/acceleratortable.rb +28 -0
- data/lib/wx/core/animation.rb +18 -0
- data/lib/wx/core/app.rb +89 -0
- data/lib/wx/core/artprovider.rb +31 -0
- data/lib/wx/core/bitmap.rb +59 -0
- data/lib/wx/core/busycursor.rb +12 -0
- data/lib/wx/core/choice.rb +4 -0
- data/lib/wx/core/choicedlg.rb +54 -0
- data/lib/wx/core/clientdc.rb +13 -0
- data/lib/wx/core/clipboard.rb +56 -0
- data/lib/wx/core/collapsible_pane.rb +12 -0
- data/lib/wx/core/colour.rb +34 -0
- data/lib/wx/core/combobox.rb +4 -0
- data/lib/wx/core/controlwithitems.rb +10 -0
- data/lib/wx/core/data_object.rb +10 -0
- data/lib/wx/core/dataformat.rb +26 -0
- data/lib/wx/core/dc.rb +68 -0
- data/lib/wx/core/dialog.rb +50 -0
- data/lib/wx/core/enum.rb +28 -0
- data/lib/wx/core/event.rb +16 -0
- data/lib/wx/core/evthandler.rb +253 -0
- data/lib/wx/core/ext.rb +58 -0
- data/lib/wx/core/font.rb +22 -0
- data/lib/wx/core/functions.rb +44 -0
- data/lib/wx/core/gauge.rb +12 -0
- data/lib/wx/core/genericdirctrl.rb +36 -0
- data/lib/wx/core/hboxsizer.rb +6 -0
- data/lib/wx/core/helpcontroller.rb +5 -0
- data/lib/wx/core/helpcontrollerhelpprovider.rb +24 -0
- data/lib/wx/core/helpprovider.rb +15 -0
- data/lib/wx/core/icon.rb +40 -0
- data/lib/wx/core/image.rb +68 -0
- data/lib/wx/core/imagelist.rb +3 -0
- data/lib/wx/core/listbox.rb +4 -0
- data/lib/wx/core/listctrl.rb +33 -0
- data/lib/wx/core/locale.rb +73 -0
- data/lib/wx/core/log.rb +20 -0
- data/lib/wx/core/menu.rb +78 -0
- data/lib/wx/core/menu_bar.rb +20 -0
- data/lib/wx/core/menuitem.rb +7 -0
- data/lib/wx/core/notebook.rb +9 -0
- data/lib/wx/core/object.rb +14 -0
- data/lib/wx/core/pen_info.rb +11 -0
- data/lib/wx/core/platform_info.rb +13 -0
- data/lib/wx/core/point.rb +92 -0
- data/lib/wx/core/real_point.rb +92 -0
- data/lib/wx/core/rect.rb +57 -0
- data/lib/wx/core/simplehelpprovider.rb +38 -0
- data/lib/wx/core/size.rb +86 -0
- data/lib/wx/core/sizer.rb +43 -0
- data/lib/wx/core/splash_screen.rb +44 -0
- data/lib/wx/core/textctrl.rb +8 -0
- data/lib/wx/core/timer.rb +104 -0
- data/lib/wx/core/toolbar.rb +37 -0
- data/lib/wx/core/toolbartool.rb +4 -0
- data/lib/wx/core/treectrl.rb +46 -0
- data/lib/wx/core/validator.rb +8 -0
- data/lib/wx/core/variant.rb +62 -0
- data/lib/wx/core/vboxsizer.rb +6 -0
- data/lib/wx/core/window.rb +95 -0
- data/lib/wx/core/window_update_locker.rb +12 -0
- data/lib/wx/core/xmlresource.rb +56 -0
- data/lib/wx/core.rb +61 -0
- data/lib/wx/doc/aui/auimanager.rb +12 -0
- data/lib/wx/doc/aui/auinotebook.rb +9 -0
- data/lib/wx/doc/colour_dialog.rb +15 -0
- data/lib/wx/doc/core.rb +11 -0
- data/lib/wx/doc/dc.rb +49 -0
- data/lib/wx/doc/enum.rb +88 -0
- data/lib/wx/doc/evthandler.rb +87 -0
- data/lib/wx/doc/extra/00_starting.md +154 -0
- data/lib/wx/doc/extra/01_packages.md +179 -0
- data/lib/wx/doc/extra/02_lifecycles.md +116 -0
- data/lib/wx/doc/extra/03_dialogs.md +57 -0
- data/lib/wx/doc/extra/04_enums.md +143 -0
- data/lib/wx/doc/extra/05_event-handling.md +166 -0
- data/lib/wx/doc/extra/06_geometry.md +56 -0
- data/lib/wx/doc/extra/07_colour_and_font.md +52 -0
- data/lib/wx/doc/extra/08_extensions.md +144 -0
- data/lib/wx/doc/extra/09_exceptions.md +54 -0
- data/lib/wx/doc/functions.rb +221 -0
- data/lib/wx/doc/gdi_common.rb +181 -0
- data/lib/wx/doc/grid/grid.rb +20 -0
- data/lib/wx/doc/help_controller.rb +14 -0
- data/lib/wx/doc/html/html_help_controller.rb +8 -0
- data/lib/wx/doc/pg/events.rb +15 -0
- data/lib/wx/doc/pg/pg_property.rb +8 -0
- data/lib/wx/doc/pg/pgeditor.rb +21 -0
- data/lib/wx/doc/pg/property_grid.rb +48 -0
- data/lib/wx/doc/pg/property_grid_interface.rb +64 -0
- data/lib/wx/doc/prt/page_setup_dialog.rb +15 -0
- data/lib/wx/doc/prt/print_data.rb +9 -0
- data/lib/wx/doc/prt/print_dialog.rb +26 -0
- data/lib/wx/doc/prt/printer.rb +15 -0
- data/lib/wx/doc/rbn/ribbon_bar.rb +9 -0
- data/lib/wx/doc/rbn/ribbon_button_bar.rb +9 -0
- data/lib/wx/doc/rbn/ribbon_gallery.rb +9 -0
- data/lib/wx/doc/rbn/ribbon_tool_bar.rb +9 -0
- data/lib/wx/doc/rtc/richtext_printing.rb +14 -0
- data/lib/wx/doc/screen_dc.rb +10 -0
- data/lib/wx/doc/stock_objects.rb +98 -0
- data/lib/wx/doc/stream.rb +38 -0
- data/lib/wx/doc/system_settings.rb +29 -0
- data/lib/wx/doc/treebook.rb +9 -0
- data/lib/wx/doc/variant.rb +163 -0
- data/lib/wx/doc/xml_resource.rb +19 -0
- data/lib/wx/global_const.rb +84 -0
- data/lib/wx/grid/grid.rb +7 -0
- data/lib/wx/grid/keyword_defs.rb +10 -0
- data/lib/wx/grid/require.rb +9 -0
- data/lib/wx/grid.rb +14 -0
- data/lib/wx/helpers.rb +65 -0
- data/lib/wx/html/htmlhelpcontroller.rb +6 -0
- data/lib/wx/html/htmlwindow.rb +19 -0
- data/lib/wx/html/keyword_defs.rb +22 -0
- data/lib/wx/html/require.rb +10 -0
- data/lib/wx/html.rb +15 -0
- data/lib/wx/keyword_ctors.rb +226 -0
- data/lib/wx/keyword_defs.rb +487 -0
- data/lib/wx/pg/events.rb +14 -0
- data/lib/wx/pg/keyword_defs.rb +15 -0
- data/lib/wx/pg/pg_editor.rb +13 -0
- data/lib/wx/pg/pg_properties.rb +24 -0
- data/lib/wx/pg/pg_property.rb +27 -0
- data/lib/wx/pg/property_grid.rb +71 -0
- data/lib/wx/pg/property_grid_interface.rb +46 -0
- data/lib/wx/pg/require.rb +12 -0
- data/lib/wx/pg.rb +14 -0
- data/lib/wx/prt/keyword_defs.rb +8 -0
- data/lib/wx/prt/page_setup_dialog.rb +15 -0
- data/lib/wx/prt/previewframe.rb +13 -0
- data/lib/wx/prt/require.rb +8 -0
- data/lib/wx/prt.rb +14 -0
- data/lib/wx/rbn/events.rb +4 -0
- data/lib/wx/rbn/keyword_defs.rb +43 -0
- data/lib/wx/rbn/require.rb +12 -0
- data/lib/wx/rbn/ribbon_art_provider.rb +10 -0
- data/lib/wx/rbn/ribbon_bar.rb +12 -0
- data/lib/wx/rbn/ribbon_button_bar.rb +26 -0
- data/lib/wx/rbn/ribbon_control.rb +25 -0
- data/lib/wx/rbn/ribbon_gallery.rb +26 -0
- data/lib/wx/rbn/ribbon_page.rb +15 -0
- data/lib/wx/rbn/ribbon_panel.rb +15 -0
- data/lib/wx/rbn/ribbon_tool_bar.rb +26 -0
- data/lib/wx/rbn.rb +14 -0
- data/lib/wx/rtc/ext.rb +15 -0
- data/lib/wx/rtc/keyword_defs.rb +17 -0
- data/lib/wx/rtc/require.rb +8 -0
- data/lib/wx/rtc.rb +15 -0
- data/lib/wx/stc/keyword_defs.rb +8 -0
- data/lib/wx/stc/require.rb +7 -0
- data/lib/wx/stc.rb +14 -0
- data/lib/wx/version.rb +3 -0
- data/lib/wx/wxruby/base.rb +87 -0
- data/lib/wx/wxruby/cmd/sampler.rb +68 -0
- data/lib/wx/wxruby/cmd/test.rb +27 -0
- data/lib/wx.rb +14 -0
- data/rakelib/build.rake +62 -0
- data/rakelib/build.rb +141 -0
- data/rakelib/config.rake +48 -0
- data/rakelib/configure.rb +131 -0
- data/rakelib/doc.rake +21 -0
- data/rakelib/doc.rb +35 -0
- data/rakelib/install.rake +30 -0
- data/rakelib/install.rb +220 -0
- data/rakelib/lib/config/cygwin.rb +6 -0
- data/rakelib/lib/config/linux.rb +78 -0
- data/rakelib/lib/config/macosx.rb +6 -0
- data/rakelib/lib/config/mingw.rb +133 -0
- data/rakelib/lib/config/netbsd.rb +6 -0
- data/rakelib/lib/config/unixish.rb +187 -0
- data/rakelib/lib/config.rb +673 -0
- data/rakelib/lib/core/include/enum.inc +306 -0
- data/rakelib/lib/core/include/funcall.inc +277 -0
- data/rakelib/lib/core/include/init.inc +95 -0
- data/rakelib/lib/core/mapping.rb +1116 -0
- data/rakelib/lib/core/package.rb +634 -0
- data/rakelib/lib/core/parameter.rb +222 -0
- data/rakelib/lib/core/spec.rb +468 -0
- data/rakelib/lib/core/spec_helper.rb +405 -0
- data/rakelib/lib/director/about_dialog_info.rb +24 -0
- data/rakelib/lib/director/accelerator.rb +88 -0
- data/rakelib/lib/director/animation.rb +84 -0
- data/rakelib/lib/director/animation_ctrl.rb +24 -0
- data/rakelib/lib/director/any_button.rb +34 -0
- data/rakelib/lib/director/app.rb +420 -0
- data/rakelib/lib/director/art_provider.rb +124 -0
- data/rakelib/lib/director/aui_dock_art.rb +23 -0
- data/rakelib/lib/director/aui_floating_frame.rb +26 -0
- data/rakelib/lib/director/aui_manager.rb +114 -0
- data/rakelib/lib/director/aui_manager_event.rb +22 -0
- data/rakelib/lib/director/aui_mdi_child_frame.rb +50 -0
- data/rakelib/lib/director/aui_mdi_client_window.rb +23 -0
- data/rakelib/lib/director/aui_mdi_parent_frame.rb +26 -0
- data/rakelib/lib/director/aui_notebook.rb +77 -0
- data/rakelib/lib/director/aui_notebook_event.rb +23 -0
- data/rakelib/lib/director/aui_pane_info.rb +102 -0
- data/rakelib/lib/director/aui_tab_art.rb +47 -0
- data/rakelib/lib/director/aui_tab_ctrl.rb +121 -0
- data/rakelib/lib/director/aui_toolbar.rb +22 -0
- data/rakelib/lib/director/aui_toolbar_art.rb +24 -0
- data/rakelib/lib/director/aui_toolbar_event.rb +23 -0
- data/rakelib/lib/director/aui_toolbar_item.rb +21 -0
- data/rakelib/lib/director/bitmap.rb +87 -0
- data/rakelib/lib/director/book_ctrls.rb +104 -0
- data/rakelib/lib/director/brush.rb +28 -0
- data/rakelib/lib/director/busy_info.rb +71 -0
- data/rakelib/lib/director/button.rb +22 -0
- data/rakelib/lib/director/calendar_ctrl.rb +98 -0
- data/rakelib/lib/director/calendar_date_attr.rb +22 -0
- data/rakelib/lib/director/caret.rb +31 -0
- data/rakelib/lib/director/check_listbox.rb +33 -0
- data/rakelib/lib/director/choice.rb +32 -0
- data/rakelib/lib/director/clipboard.rb +37 -0
- data/rakelib/lib/director/collapsible_pane.rb +22 -0
- data/rakelib/lib/director/collapsible_pane_event.rb +22 -0
- data/rakelib/lib/director/colour.rb +64 -0
- data/rakelib/lib/director/colour_picker_ctrl.rb +22 -0
- data/rakelib/lib/director/combobox.rb +37 -0
- data/rakelib/lib/director/control.rb +22 -0
- data/rakelib/lib/director/ctrl_with_items.rb +68 -0
- data/rakelib/lib/director/cursor.rb +28 -0
- data/rakelib/lib/director/data_format.rb +31 -0
- data/rakelib/lib/director/data_object.rb +64 -0
- data/rakelib/lib/director/date_event.rb +141 -0
- data/rakelib/lib/director/date_picker_ctrl.rb +39 -0
- data/rakelib/lib/director/dc.rb +52 -0
- data/rakelib/lib/director/defs.rb +139 -0
- data/rakelib/lib/director/derived_dc.rb +64 -0
- data/rakelib/lib/director/dialog.rb +214 -0
- data/rakelib/lib/director/dir_filterlist_ctrl.rb +29 -0
- data/rakelib/lib/director/dir_picker_ctrl.rb +22 -0
- data/rakelib/lib/director/drag_image.rb +20 -0
- data/rakelib/lib/director/dragdrop.rb +61 -0
- data/rakelib/lib/director/editable_listbox.rb +21 -0
- data/rakelib/lib/director/event.rb +171 -0
- data/rakelib/lib/director/event_handler.rb +410 -0
- data/rakelib/lib/director/events.rb +39 -0
- data/rakelib/lib/director/file_picker_ctrl.rb +22 -0
- data/rakelib/lib/director/find_dialog_event.rb +22 -0
- data/rakelib/lib/director/find_replace_data.rb +20 -0
- data/rakelib/lib/director/font.rb +138 -0
- data/rakelib/lib/director/font_data.rb +22 -0
- data/rakelib/lib/director/font_picker_ctrl.rb +22 -0
- data/rakelib/lib/director/frame.rb +74 -0
- data/rakelib/lib/director/fs_file.rb +353 -0
- data/rakelib/lib/director/functions.rb +284 -0
- data/rakelib/lib/director/gdi_object.rb +21 -0
- data/rakelib/lib/director/gdicommon.rb +94 -0
- data/rakelib/lib/director/generic_dirctrl.rb +24 -0
- data/rakelib/lib/director/graphics_context.rb +143 -0
- data/rakelib/lib/director/graphics_object.rb +69 -0
- data/rakelib/lib/director/grid_cell_attr.rb +53 -0
- data/rakelib/lib/director/grid_cell_editor.rb +434 -0
- data/rakelib/lib/director/grid_cell_renderer.rb +132 -0
- data/rakelib/lib/director/grid_ctrl.rb +390 -0
- data/rakelib/lib/director/grid_range_select_event.rb +23 -0
- data/rakelib/lib/director/grid_table_base.rb +63 -0
- data/rakelib/lib/director/grid_table_message.rb +20 -0
- data/rakelib/lib/director/help_controller.rb +75 -0
- data/rakelib/lib/director/help_provider.rb +103 -0
- data/rakelib/lib/director/html_cell.rb +36 -0
- data/rakelib/lib/director/html_easy_printing.rb +45 -0
- data/rakelib/lib/director/html_event.rb +24 -0
- data/rakelib/lib/director/html_help_data.rb +43 -0
- data/rakelib/lib/director/html_help_frame.rb +25 -0
- data/rakelib/lib/director/html_listbox.rb +54 -0
- data/rakelib/lib/director/html_printout.rb +47 -0
- data/rakelib/lib/director/html_window.rb +114 -0
- data/rakelib/lib/director/icon.rb +33 -0
- data/rakelib/lib/director/image.rb +111 -0
- data/rakelib/lib/director/image_list.rb +21 -0
- data/rakelib/lib/director/list_ctrl.rb +197 -0
- data/rakelib/lib/director/listbox.rb +32 -0
- data/rakelib/lib/director/locale.rb +35 -0
- data/rakelib/lib/director/log.rb +32 -0
- data/rakelib/lib/director/mdi_frame.rb +36 -0
- data/rakelib/lib/director/media_ctrl.rb +22 -0
- data/rakelib/lib/director/menu.rb +92 -0
- data/rakelib/lib/director/menu_bar.rb +28 -0
- data/rakelib/lib/director/menu_item.rb +36 -0
- data/rakelib/lib/director/mouse_state.rb +21 -0
- data/rakelib/lib/director/numeric_property_validator.rb +38 -0
- data/rakelib/lib/director/object.rb +32 -0
- data/rakelib/lib/director/page_setup_dialog.rb +30 -0
- data/rakelib/lib/director/palette.rb +25 -0
- data/rakelib/lib/director/panel.rb +22 -0
- data/rakelib/lib/director/pen.rb +174 -0
- data/rakelib/lib/director/pgarray_editor_dialog.rb +64 -0
- data/rakelib/lib/director/pgcell.rb +68 -0
- data/rakelib/lib/director/pgeditor.rb +154 -0
- data/rakelib/lib/director/pgmulti_button.rb +22 -0
- data/rakelib/lib/director/pgproperties.rb +216 -0
- data/rakelib/lib/director/pgproperty.rb +207 -0
- data/rakelib/lib/director/pgvalidation_info.rb +24 -0
- data/rakelib/lib/director/pickerbase.rb +22 -0
- data/rakelib/lib/director/platform_info.rb +49 -0
- data/rakelib/lib/director/popup_window.rb +23 -0
- data/rakelib/lib/director/preview_frame.rb +39 -0
- data/rakelib/lib/director/print_data.rb +33 -0
- data/rakelib/lib/director/print_dialog.rb +36 -0
- data/rakelib/lib/director/printer.rb +61 -0
- data/rakelib/lib/director/property_grid.rb +174 -0
- data/rakelib/lib/director/property_grid_event.rb +23 -0
- data/rakelib/lib/director/property_grid_interface.rb +227 -0
- data/rakelib/lib/director/property_grid_manager.rb +90 -0
- data/rakelib/lib/director/property_grid_page.rb +76 -0
- data/rakelib/lib/director/property_grid_page_state.rb +32 -0
- data/rakelib/lib/director/radio_box.rb +39 -0
- data/rakelib/lib/director/region.rb +25 -0
- data/rakelib/lib/director/ribbon_art_provider.rb +154 -0
- data/rakelib/lib/director/ribbon_bar.rb +24 -0
- data/rakelib/lib/director/ribbon_bar_event.rb +22 -0
- data/rakelib/lib/director/ribbon_button_bar.rb +37 -0
- data/rakelib/lib/director/ribbon_button_bar_event.rb +40 -0
- data/rakelib/lib/director/ribbon_ctrl.rb +28 -0
- data/rakelib/lib/director/ribbon_gallery.rb +33 -0
- data/rakelib/lib/director/ribbon_gallery_event.rb +27 -0
- data/rakelib/lib/director/ribbon_page.rb +21 -0
- data/rakelib/lib/director/ribbon_panel.rb +22 -0
- data/rakelib/lib/director/ribbon_panel_event.rb +22 -0
- data/rakelib/lib/director/ribbon_tool_bar.rb +146 -0
- data/rakelib/lib/director/ribbon_tool_bar_event.rb +22 -0
- data/rakelib/lib/director/richtext_buffer.rb +46 -0
- data/rakelib/lib/director/richtext_ctrl.rb +63 -0
- data/rakelib/lib/director/richtext_event.rb +25 -0
- data/rakelib/lib/director/richtext_file_handler.rb +42 -0
- data/rakelib/lib/director/richtext_header_footer_data.rb +21 -0
- data/rakelib/lib/director/richtext_printing.rb +44 -0
- data/rakelib/lib/director/sash_layout_event.rb +22 -0
- data/rakelib/lib/director/sash_layout_window.rb +23 -0
- data/rakelib/lib/director/sash_window.rb +23 -0
- data/rakelib/lib/director/scrolled_t.rb +67 -0
- data/rakelib/lib/director/sizer.rb +67 -0
- data/rakelib/lib/director/sizer_item.rb +35 -0
- data/rakelib/lib/director/splash_screen.rb +24 -0
- data/rakelib/lib/director/splitter_event.rb +28 -0
- data/rakelib/lib/director/splitter_window.rb +25 -0
- data/rakelib/lib/director/static_bitmap.rb +24 -0
- data/rakelib/lib/director/static_box.rb +26 -0
- data/rakelib/lib/director/status_bar.rb +86 -0
- data/rakelib/lib/director/styled_text_ctrl.rb +82 -0
- data/rakelib/lib/director/styled_text_event.rb +25 -0
- data/rakelib/lib/director/system_options.rb +22 -0
- data/rakelib/lib/director/system_settings.rb +47 -0
- data/rakelib/lib/director/task_bar_icon.rb +77 -0
- data/rakelib/lib/director/text_attr.rb +22 -0
- data/rakelib/lib/director/text_entry.rb +26 -0
- data/rakelib/lib/director/text_validator.rb +47 -0
- data/rakelib/lib/director/textctrl.rb +80 -0
- data/rakelib/lib/director/time_picker_ctrl.rb +24 -0
- data/rakelib/lib/director/timer.rb +37 -0
- data/rakelib/lib/director/tip_provider.rb +44 -0
- data/rakelib/lib/director/toggle_button.rb +22 -0
- data/rakelib/lib/director/tool_bar.rb +62 -0
- data/rakelib/lib/director/tool_tip.rb +20 -0
- data/rakelib/lib/director/top_level_window.rb +105 -0
- data/rakelib/lib/director/tree_ctrl.rb +411 -0
- data/rakelib/lib/director/tree_event.rb +78 -0
- data/rakelib/lib/director/utils.rb +55 -0
- data/rakelib/lib/director/validator.rb +44 -0
- data/rakelib/lib/director/variant.rb +549 -0
- data/rakelib/lib/director/vlistbox.rb +46 -0
- data/rakelib/lib/director/vscrolled_window.rb +59 -0
- data/rakelib/lib/director/window.rb +296 -0
- data/rakelib/lib/director/window_disabler.rb +44 -0
- data/rakelib/lib/director/with_images.rb +65 -0
- data/rakelib/lib/director/wizard_page.rb +35 -0
- data/rakelib/lib/director/xml_node.rb +48 -0
- data/rakelib/lib/director/xml_resource.rb +141 -0
- data/rakelib/lib/director.rb +487 -0
- data/rakelib/lib/ext/enum_chain.rb +22 -0
- data/rakelib/lib/extractor/class.rb +384 -0
- data/rakelib/lib/extractor/enum.rb +94 -0
- data/rakelib/lib/extractor/function.rb +377 -0
- data/rakelib/lib/extractor/module.rb +140 -0
- data/rakelib/lib/extractor/variable.rb +145 -0
- data/rakelib/lib/extractor.rb +438 -0
- data/rakelib/lib/generate/analyzer.rb +593 -0
- data/rakelib/lib/generate/base.rb +37 -0
- data/rakelib/lib/generate/doc.rb +833 -0
- data/rakelib/lib/generate/interface.rb +742 -0
- data/rakelib/lib/generate/rakedep.rb +130 -0
- data/rakelib/lib/specs/interfaces.rb +324 -0
- data/rakelib/lib/streams.rb +206 -0
- data/rakelib/lib/swig_runner.rb +682 -0
- data/rakelib/lib/typemap/array_int_selections.rb +57 -0
- data/rakelib/lib/typemap/common.rb +613 -0
- data/rakelib/lib/typemap/data_format.rb +76 -0
- data/rakelib/lib/typemap/data_object_data.rb +99 -0
- data/rakelib/lib/typemap/datetime.rb +64 -0
- data/rakelib/lib/typemap/grid_client_data.rb +55 -0
- data/rakelib/lib/typemap/grid_coords.rb +65 -0
- data/rakelib/lib/typemap/html_cell.rb +57 -0
- data/rakelib/lib/typemap/io_streams.rb +162 -0
- data/rakelib/lib/typemap/pgcell.rb +35 -0
- data/rakelib/lib/typemap/pgeditor.rb +35 -0
- data/rakelib/lib/typemap/pgprop_arg.rb +74 -0
- data/rakelib/lib/typemap/pgproperty.rb +35 -0
- data/rakelib/lib/typemap/points_list.rb +124 -0
- data/rakelib/lib/typemap/richtext.rb +67 -0
- data/rakelib/lib/typemap/tree_itemid.rb +49 -0
- data/rakelib/lib/util/string.rb +141 -0
- data/rakelib/prepost.rake +91 -0
- data/rakelib/prepost.rb +26 -0
- data/rakelib/run.rake +49 -0
- data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +7 -0
- data/rakelib/yard/templates/default/layout/html/setup.rb +5 -0
- data/rakelib/yard/yard/relative_markdown_links/version.rb +8 -0
- data/rakelib/yard/yard/relative_markdown_links.rb +39 -0
- data/rakelib/yard/yard-custom-templates.rb +2 -0
- data/rakelib/yard/yard-relative_markdown_links.rb +4 -0
- data/samples/art/wxruby-128x128.png +0 -0
- data/samples/art/wxruby-256x256.png +0 -0
- data/samples/art/wxruby-64x64.png +0 -0
- data/samples/art/wxruby.ico +0 -0
- data/samples/art/wxruby.png +0 -0
- data/samples/aui/aui.rb +1321 -0
- data/samples/aui/tn_aui.png +0 -0
- data/samples/bigdemo/About.rbw +39 -0
- data/samples/bigdemo/ColorPanel.rbw +23 -0
- data/samples/bigdemo/GridSimple.rbw +78 -0
- data/samples/bigdemo/MDIDemo.rbw +57 -0
- data/samples/bigdemo/PopupMenu.rbw +146 -0
- data/samples/bigdemo/ShapedWindow.rbw +128 -0
- data/samples/bigdemo/Sizers.rbw +541 -0
- data/samples/bigdemo/bigdemo.rb +810 -0
- data/samples/bigdemo/demoTemplate.rbw +33 -0
- data/samples/bigdemo/helpfile.htb +0 -0
- data/samples/bigdemo/icons/Test 015.jpg +0 -0
- data/samples/bigdemo/icons/Test 015.png +0 -0
- data/samples/bigdemo/icons/choice.bmp +0 -0
- data/samples/bigdemo/icons/choice.xpm +27 -0
- data/samples/bigdemo/icons/combo.bmp +0 -0
- data/samples/bigdemo/icons/combo.xpm +27 -0
- data/samples/bigdemo/icons/copy.xpm +25 -0
- data/samples/bigdemo/icons/cut.xpm +24 -0
- data/samples/bigdemo/icons/gauge.bmp +0 -0
- data/samples/bigdemo/icons/gauge.xpm +27 -0
- data/samples/bigdemo/icons/help.xpm +25 -0
- data/samples/bigdemo/icons/list.bmp +0 -0
- data/samples/bigdemo/icons/list.xpm +27 -0
- data/samples/bigdemo/icons/mondrian.ico +0 -0
- data/samples/bigdemo/icons/mondrian.xpm +44 -0
- data/samples/bigdemo/icons/new.xpm +24 -0
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -0
- data/samples/bigdemo/icons/open.xpm +26 -0
- data/samples/bigdemo/icons/paste.bmp +0 -0
- data/samples/bigdemo/icons/paste.xpm +38 -0
- data/samples/bigdemo/icons/pointy.png +0 -0
- data/samples/bigdemo/icons/preview.xpm +26 -0
- data/samples/bigdemo/icons/print.xpm +26 -0
- data/samples/bigdemo/icons/radio.bmp +0 -0
- data/samples/bigdemo/icons/radio.xpm +27 -0
- data/samples/bigdemo/icons/robert.xpm +415 -0
- data/samples/bigdemo/icons/sashtest.ico +0 -0
- data/samples/bigdemo/icons/save.xpm +25 -0
- data/samples/bigdemo/icons/smiles.bmp +0 -0
- data/samples/bigdemo/icons/smiles.xpm +39 -0
- data/samples/bigdemo/icons/smiley.ico +0 -0
- data/samples/bigdemo/icons/smiley.xpm +42 -0
- data/samples/bigdemo/icons/stattext.xpm +24 -0
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.png +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -0
- data/samples/bigdemo/icons/text.bmp +0 -0
- data/samples/bigdemo/icons/text.xpm +27 -0
- data/samples/bigdemo/icons/tog1.bmp +0 -0
- data/samples/bigdemo/icons/tog1.xpm +38 -0
- data/samples/bigdemo/icons/tog2.bmp +0 -0
- data/samples/bigdemo/icons/tog2.xpm +38 -0
- data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
- data/samples/bigdemo/icons/wxwin.ico +0 -0
- data/samples/bigdemo/icons/wxwin16x16.png +0 -0
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
- data/samples/bigdemo/icons/wxwin32x32.png +0 -0
- data/samples/bigdemo/icons/wxwin48x48.png +0 -0
- data/samples/bigdemo/run.rb +91 -0
- data/samples/bigdemo/tips.txt +7 -0
- data/samples/bigdemo/utils.rb +12 -0
- data/samples/bigdemo/wxArtProvider.rbw +281 -0
- data/samples/bigdemo/wxBitmapButton.rbw +65 -0
- data/samples/bigdemo/wxButton.rbw +64 -0
- data/samples/bigdemo/wxCalendarCtrl.rbw +59 -0
- data/samples/bigdemo/wxCheckBox.rbw +50 -0
- data/samples/bigdemo/wxCheckListBox.rbw +65 -0
- data/samples/bigdemo/wxChoice.rbw +47 -0
- data/samples/bigdemo/wxChoicebook.rbw +78 -0
- data/samples/bigdemo/wxColourDialog.rbw +33 -0
- data/samples/bigdemo/wxComboBox.rbw +77 -0
- data/samples/bigdemo/wxCursor.rbw +136 -0
- data/samples/bigdemo/wxDialog.rbw +74 -0
- data/samples/bigdemo/wxDirDialog.rbw +29 -0
- data/samples/bigdemo/wxDragImage.rbw +70 -0
- data/samples/bigdemo/wxFileDialog.rbw +37 -0
- data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
- data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
- data/samples/bigdemo/wxFontDialog.rbw +200 -0
- data/samples/bigdemo/wxFrame.rbw +53 -0
- data/samples/bigdemo/wxGauge.rbw +65 -0
- data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
- data/samples/bigdemo/wxGrid.rbw +66 -0
- data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
- data/samples/bigdemo/wxListBox.rbw +140 -0
- data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
- data/samples/bigdemo/wxMDIWindows.rbw +50 -0
- data/samples/bigdemo/wxMenu.rbw +247 -0
- data/samples/bigdemo/wxMessageDialog.rbw +27 -0
- data/samples/bigdemo/wxMiniFrame.rbw +70 -0
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +29 -0
- data/samples/bigdemo/wxNotebook.rbw +136 -0
- data/samples/bigdemo/wxProgressDialog.rbw +43 -0
- data/samples/bigdemo/wxRadioBox.rbw +72 -0
- data/samples/bigdemo/wxRadioButton.rbw +125 -0
- data/samples/bigdemo/wxSashWindow.rbw +141 -0
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
- data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
- data/samples/bigdemo/wxSlider.rbw +42 -0
- data/samples/bigdemo/wxSpinButton.rbw +50 -0
- data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
- data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
- data/samples/bigdemo/wxStaticBitmap.rbw +47 -0
- data/samples/bigdemo/wxStaticText.rbw +55 -0
- data/samples/bigdemo/wxStatusBar.rbw +126 -0
- data/samples/bigdemo/wxTextCtrl.rbw +149 -0
- data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
- data/samples/bigdemo/wxToggleButton.rbw +49 -0
- data/samples/bigdemo/wxToolBar.rbw +131 -0
- data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
- data/samples/calendar/calendar.rb +363 -0
- data/samples/calendar/tn_calendar.png +0 -0
- data/samples/caret/caret.rb +293 -0
- data/samples/caret/mondrian.xpm +44 -0
- data/samples/caret/tn_caret.png +0 -0
- data/samples/controls/books.rb +183 -0
- data/samples/controls/choice.xpm +27 -0
- data/samples/controls/combo.xpm +27 -0
- data/samples/controls/controls.rb +1143 -0
- data/samples/controls/gauge.xpm +27 -0
- data/samples/controls/get_item_sample.rb +117 -0
- data/samples/controls/list.xpm +27 -0
- data/samples/controls/mondrian.ico +0 -0
- data/samples/controls/mondrian.xpm +44 -0
- data/samples/controls/radio.xpm +27 -0
- data/samples/controls/stattext.xpm +24 -0
- data/samples/controls/test2.bmp +0 -0
- data/samples/controls/text.xpm +27 -0
- data/samples/controls/tn_books.png +0 -0
- data/samples/controls/tn_controls.png +0 -0
- data/samples/controls/tn_get_item_sample.png +0 -0
- data/samples/dialogs/dialogs.rb +879 -0
- data/samples/dialogs/tips.txt +18 -0
- data/samples/dialogs/tn_dialogs.png +0 -0
- data/samples/dialogs/tn_wizard.png +0 -0
- data/samples/dialogs/wizard.rb +89 -0
- data/samples/dragdrop/dragdrop.rb +200 -0
- data/samples/dragdrop/tn_dragdrop.png +0 -0
- data/samples/drawing/SVGlogo24.xpm +310 -0
- data/samples/drawing/bitmap.rb +76 -0
- data/samples/drawing/bitmap_image.rb +131 -0
- data/samples/drawing/graphics_drawing.rb +257 -0
- data/samples/drawing/maths_images.rb +327 -0
- data/samples/drawing/rmagic_bitmap_image.rb +139 -0
- data/samples/drawing/ruby-logo.jpg +0 -0
- data/samples/drawing/svgtest.rb +373 -0
- data/samples/drawing/tn_bitmap.png +0 -0
- data/samples/drawing/tn_bitmap_image.png +0 -0
- data/samples/drawing/tn_graphics_drawing.png +0 -0
- data/samples/drawing/tn_maths_images.png +0 -0
- data/samples/drawing/tn_rmagic_bitmap_image.png +0 -0
- data/samples/drawing/tn_svgtest.png +0 -0
- data/samples/etc/choice.rb +82 -0
- data/samples/etc/miniframe.rb +92 -0
- data/samples/etc/sash.rb +140 -0
- data/samples/etc/scrollwin.rb +120 -0
- data/samples/etc/system_settings.rb +263 -0
- data/samples/etc/tn_choice.png +0 -0
- data/samples/etc/tn_miniframe.png +0 -0
- data/samples/etc/tn_sash.png +0 -0
- data/samples/etc/tn_scrollwin.png +0 -0
- data/samples/etc/tn_system_settings.png +0 -0
- data/samples/event/activation.rb +129 -0
- data/samples/event/event.rb +220 -0
- data/samples/event/threaded.rb +141 -0
- data/samples/event/tn_activation.png +0 -0
- data/samples/event/tn_event.png +0 -0
- data/samples/event/tn_threaded.png +0 -0
- data/samples/event/tn_update_ui_event.png +0 -0
- data/samples/event/update_ui_event.rb +91 -0
- data/samples/grid/grid.rb +224 -0
- data/samples/grid/gridtablebase.rb +178 -0
- data/samples/grid/tn_grid.png +0 -0
- data/samples/grid/tn_gridtablebase.png +0 -0
- data/samples/html/8859_2.htm +14 -0
- data/samples/html/cp1250.htm +19 -0
- data/samples/html/foo.png +0 -0
- data/samples/html/html.rb +278 -0
- data/samples/html/i18n.gif +0 -0
- data/samples/html/imagemap.htm +20 -0
- data/samples/html/imagemap.png +0 -0
- data/samples/html/listtest.htm +28 -0
- data/samples/html/pic.png +0 -0
- data/samples/html/pic2.bmp +0 -0
- data/samples/html/regres.htm +20 -0
- data/samples/html/subsup.html +42 -0
- data/samples/html/tables.htm +255 -0
- data/samples/html/test.htm +375 -0
- data/samples/html/tn_html.png +0 -0
- data/samples/mdi/mdi.rb +118 -0
- data/samples/mdi/tn_mdi.png +0 -0
- data/samples/minimal/minimal.rb +95 -0
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.png +0 -0
- data/samples/minimal/nothing.rb +38 -0
- data/samples/minimal/tn_minimal.png +0 -0
- data/samples/minimal/tn_nothing.png +0 -0
- data/samples/printing/mondrian.ico +0 -0
- data/samples/printing/mondrian.xpm +44 -0
- data/samples/printing/printing.rb +499 -0
- data/samples/printing/printing2.rb +251 -0
- data/samples/printing/sample-text.txt +213 -0
- data/samples/printing/tn_printing.png +0 -0
- data/samples/printing/tn_printing2.png +0 -0
- data/samples/propgrid/propgrid.rb +2711 -0
- data/samples/propgrid/propgrid_minimal.rb +107 -0
- data/samples/propgrid/sample_props.rb +434 -0
- data/samples/propgrid/tn_propgrid.png +0 -0
- data/samples/propgrid/tn_propgrid_minimal.png +0 -0
- data/samples/ribbon/align_center.xpm +21 -0
- data/samples/ribbon/align_left.xpm +21 -0
- data/samples/ribbon/align_right.xpm +21 -0
- data/samples/ribbon/aui_style.xpm +53 -0
- data/samples/ribbon/auto_crop_selection.xpm +55 -0
- data/samples/ribbon/auto_crop_selection_small.xpm +33 -0
- data/samples/ribbon/circle.xpm +38 -0
- data/samples/ribbon/circle_small.xpm +22 -0
- data/samples/ribbon/colours.xpm +25 -0
- data/samples/ribbon/cross.xpm +38 -0
- data/samples/ribbon/empty.xpm +23 -0
- data/samples/ribbon/expand_selection_h.xpm +46 -0
- data/samples/ribbon/expand_selection_v.xpm +46 -0
- data/samples/ribbon/eye.xpm +26 -0
- data/samples/ribbon/hexagon.xpm +38 -0
- data/samples/ribbon/msw_style.xpm +65 -0
- data/samples/ribbon/position_left.xpm +22 -0
- data/samples/ribbon/position_top.xpm +22 -0
- data/samples/ribbon/ribbon.rb +900 -0
- data/samples/ribbon/ribbon.xpm +54 -0
- data/samples/ribbon/selection_panel.xpm +23 -0
- data/samples/ribbon/square.xpm +38 -0
- data/samples/ribbon/tn_ribbon.png +0 -0
- data/samples/ribbon/triangle.xpm +38 -0
- data/samples/sample.xpm +475 -0
- data/samples/sampler/back.xpm +21 -0
- data/samples/sampler/copy.xpm +44 -0
- data/samples/sampler/cut.xpm +46 -0
- data/samples/sampler/editor.rb +560 -0
- data/samples/sampler/ext.rb +51 -0
- data/samples/sampler/filesave.xpm +42 -0
- data/samples/sampler/find.xpm +62 -0
- data/samples/sampler/findrepl.xpm +63 -0
- data/samples/sampler/forward.xpm +21 -0
- data/samples/sampler/paste.xpm +46 -0
- data/samples/sampler/play.xpm +24 -0
- data/samples/sampler/redo.xpm +58 -0
- data/samples/sampler/sample.rb +347 -0
- data/samples/sampler/stc_editor.rb +321 -0
- data/samples/sampler/txt_editor.rb +130 -0
- data/samples/sampler/undo.xpm +58 -0
- data/samples/sampler.rb +394 -0
- data/samples/splash/mobile.xpm +1835 -0
- data/samples/splash/splash.png +0 -0
- data/samples/splash/splash.rb +164 -0
- data/samples/splash/tn_splash.png +0 -0
- data/samples/text/document-open.png +0 -0
- data/samples/text/document-save.png +0 -0
- data/samples/text/edit-copy.png +0 -0
- data/samples/text/edit-cut.png +0 -0
- data/samples/text/edit-paste.png +0 -0
- data/samples/text/edit-redo.png +0 -0
- data/samples/text/edit-undo.png +0 -0
- data/samples/text/format-text-bold.png +0 -0
- data/samples/text/format-text-italic.png +0 -0
- data/samples/text/format-text-underline.png +0 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +44 -0
- data/samples/text/preferences-desktop-font.png +0 -0
- data/samples/text/rich_textctrl.rb +326 -0
- data/samples/text/scintilla.rb +179 -0
- data/samples/text/textctrl.rb +124 -0
- data/samples/text/tn_rich_textctrl.png +0 -0
- data/samples/text/tn_scintilla.png +0 -0
- data/samples/text/tn_textctrl.png +0 -0
- data/samples/text/tn_unicode.png +0 -0
- data/samples/text/unicode.rb +238 -0
- data/samples/text/utf8.txt +15 -0
- data/samples/treectrl/checked.xpm +54 -0
- data/samples/treectrl/icon1.xpm +79 -0
- data/samples/treectrl/icon2.xpm +53 -0
- data/samples/treectrl/icon3.xpm +79 -0
- data/samples/treectrl/icon4.xpm +43 -0
- data/samples/treectrl/icon5.xpm +79 -0
- data/samples/treectrl/state1.xpm +145 -0
- data/samples/treectrl/state2.xpm +144 -0
- data/samples/treectrl/state3.xpm +142 -0
- data/samples/treectrl/state4.xpm +145 -0
- data/samples/treectrl/state5.xpm +85 -0
- data/samples/treectrl/tn_treectrl.png +0 -0
- data/samples/treectrl/treectrl.rb +1720 -0
- data/samples/treectrl/unchecked.xpm +30 -0
- data/samples/xrc/custom_dialog.xrc +46 -0
- data/samples/xrc/custom_xrc_sample.rb +84 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/tn_xrc_sample.png +0 -0
- data/samples/xrc/xrc_sample.rb +86 -0
- data/tests/test_basic.rb +20 -0
- data/tests/test_clipboard.rb +241 -0
- data/tests/test_dialog.rb +28 -0
- data/tests/test_event_handling.rb +103 -0
- data/tests/test_events.rb +45 -0
- data/tests/test_geometry.rb +141 -0
- data/tests/test_intl.rb +107 -0
- data/tests/test_item_data.rb +120 -0
- data/tests/test_variant.rb +151 -0
- data/tests/testapp.rb +40 -0
- data/tests/testapp_noframe.rb +28 -0
- metadata +874 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
# @markup markdown
|
|
3
|
+
# @title 5. wxRuby Event Handling
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# 5. wxRuby Event Handling
|
|
7
|
+
|
|
8
|
+
## Introduction
|
|
9
|
+
|
|
10
|
+
Event handling is the core of runtime code execution in event based frameworks like wxWidgets which means it needs to
|
|
11
|
+
be fully supported by wxRuby. Fortunately it is.<br>
|
|
12
|
+
As Ruby is a fully dynamic language though the statically declared event tables typical for wxWidgets application are not.<br>
|
|
13
|
+
Instead wxRuby offers a dynamic solution that is just as easy to use and even offers more flexibility in a typical Ruby-way.
|
|
14
|
+
|
|
15
|
+
## Event handlers
|
|
16
|
+
|
|
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 `Wx::EvtHandler`
|
|
19
|
+
(which includes all window classes, the `Wx::App` class and `Wx::Timer` as well as various other classes).<br>
|
|
20
|
+
|
|
21
|
+
Naming is (mostly) identical but rubified. So `EVT_MENU` becomes `evt_menu`, `EVT_IDLE` becomes `evt_idle`, `EVT_UPDATE_UI`
|
|
22
|
+
becomes `evt_update_ui` etc.
|
|
23
|
+
|
|
24
|
+
Like the event handler macros some of these methods require a single (window) id (like `evt_menu`) or a range of of ids
|
|
25
|
+
(specified through a first and last id like for `evt_update_ui_range`) and some require only a handler definition (like
|
|
26
|
+
`evt_idle`).
|
|
27
|
+
|
|
28
|
+
Event handler setup is typically something done during the initialization of an event handler object (like a window) but
|
|
29
|
+
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 `Wx::EvtHandler#disconnect`).
|
|
31
|
+
|
|
32
|
+
In case of some frame class `MyForm` including a menu a wxWidgets static event handling table like:
|
|
33
|
+
|
|
34
|
+
```c++
|
|
35
|
+
wxBEGIN_EVENT_TABLE(MyForm, wxFrame)
|
|
36
|
+
EVT_IDLE(MyForm::OnIdle)
|
|
37
|
+
EVT_MOVE(MyForm::OnMove)
|
|
38
|
+
EVT_SIZE(MyForm::OnResize)
|
|
39
|
+
|
|
40
|
+
EVT_MENU( wxID_ABOUT, MyForm::OnAbout )
|
|
41
|
+
EVT_MENU( wxID_EXIT, MyForm::OnCloseClick )
|
|
42
|
+
wxEND_EVENT_TABLE()
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
could translate to event handler initializations in wxRuby like this:
|
|
46
|
+
|
|
47
|
+
```ruby
|
|
48
|
+
class MyForm < Wx::Frame
|
|
49
|
+
|
|
50
|
+
def initialize(title)
|
|
51
|
+
super(nil, title: title)
|
|
52
|
+
|
|
53
|
+
# initialize frame elements
|
|
54
|
+
# ...
|
|
55
|
+
|
|
56
|
+
# setup event handlers
|
|
57
|
+
evt_idle do |evt|
|
|
58
|
+
# do something
|
|
59
|
+
evt.skip
|
|
60
|
+
end
|
|
61
|
+
evt_move :on_move
|
|
62
|
+
|
|
63
|
+
evt_size method(:on_size)
|
|
64
|
+
|
|
65
|
+
evt_menu(Wx::ID_ABOUT, Proc.new { on_about })
|
|
66
|
+
evt_menu(Wx::ID_EXIT) { close(false) }
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def on_idle(evt)
|
|
70
|
+
#...
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def on_move(evt)
|
|
74
|
+
#...
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def on_resize(evt)
|
|
78
|
+
#...
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def on_about
|
|
82
|
+
#...
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
As you can see there are multiple options for specifying the actual handler. Any event handler definition method will
|
|
89
|
+
accept either a `Symbol` (or `String`) specifying a method of the receiver (the event handler instance), a `Proc` object
|
|
90
|
+
(or lambda) or a `Method` object.
|
|
91
|
+
|
|
92
|
+
Event handler methods are not required to declare the single event object argument. The event handler definition method
|
|
93
|
+
will take care of checking and handling method arity.
|
|
94
|
+
|
|
95
|
+
## Custom Events
|
|
96
|
+
|
|
97
|
+
Custom event definitions are fully supported in wxRuby including the definition of new event types.
|
|
98
|
+
|
|
99
|
+
New event classes can be registered with `Wx::EvtHandler#register_class` which returns the new event type for the event
|
|
100
|
+
class like this:
|
|
101
|
+
|
|
102
|
+
```ruby
|
|
103
|
+
# A custom type of event associated with a target control. Note that for
|
|
104
|
+
# user-defined controls, the associated event should inherit from
|
|
105
|
+
# Wx::CommandEvent rather than Wx::Event.
|
|
106
|
+
class ProgressUpdateEvent < Wx::CommandEvent
|
|
107
|
+
# Create a new unique constant identifier, associate this class
|
|
108
|
+
# with events of that identifier and create an event handler definition method 'evt_update_progress'
|
|
109
|
+
# for setting up this handler.
|
|
110
|
+
EVT_UPDATE_PROGRESS = Wx::EvtHandler.register_class(self, nil, 'evt_update_progress', 0)
|
|
111
|
+
|
|
112
|
+
def initialize(value, gauge)
|
|
113
|
+
# The constant id is the arg to super
|
|
114
|
+
super(EVT_UPDATE_PROGRESS)
|
|
115
|
+
# simply use instance variables to store custom event associated data
|
|
116
|
+
@value = value
|
|
117
|
+
@gauge = gauge
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
attr_reader :value, :gauge
|
|
121
|
+
end
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Check the reference documentation [here](https://mcorino.github.io/wxRuby3/Wx/EvtHandler.html) for more information.
|
|
125
|
+
|
|
126
|
+
## Event processing
|
|
127
|
+
|
|
128
|
+
In wxRuby overruling the normal chain of event handling has been limited to being able to override the default
|
|
129
|
+
`Wx::EvtHandler#try_before` and `Wx::EvtHandler#try_after` methods. These are the advised interception points for events
|
|
130
|
+
when you really need to do this.<br>
|
|
131
|
+
Overriding `Wx::EvtHandler#process_event` is not considered to be efficient (or desired)
|
|
132
|
+
for wxRuby applications and has therefor been blocked.
|
|
133
|
+
|
|
134
|
+
## Event insertion
|
|
135
|
+
|
|
136
|
+
Use of `Wx::EvtHandler#process_event` or `Wx::EvtHandler#queue_event` and `Wx::EvtHandler#add_pending_event` in wxRuby to
|
|
137
|
+
trigger event processing of user generated (possibly custom) events is fully supported.
|
|
138
|
+
|
|
139
|
+
As with wxWidgets `Wx::EvtHandler#process_event` will trigger immediate processing of the given event, not returning before
|
|
140
|
+
this has finished.<br>
|
|
141
|
+
`Wx::EvtHandler#queue_event` and `Wx::EvtHandler#add_pending_event` on the other hand will post (append) the given event
|
|
142
|
+
to the event queue and return immediately after that is done. The event will than be processed after any other events in
|
|
143
|
+
the queue. Unlike in wxWidgets in wxRuby there is no practical difference between `queue_event` and `add_pending_event`.
|
|
144
|
+
|
|
145
|
+
## Asynchronous execution
|
|
146
|
+
|
|
147
|
+
In addition to `Wx::EvtHandler#queue_event` and `Wx::EvtHandler#add_pending_event` to trigger asynchronous processing
|
|
148
|
+
wxRuby also supports `Wx::EvtHandler#call_after`.
|
|
149
|
+
|
|
150
|
+
This method provides the means to trigger asynchronous execution of arbitrary code and because it has been rubified is
|
|
151
|
+
easy and powerful to use. Like with event handler definition this method accepts a `Symbol` or `String` (identifying a
|
|
152
|
+
method of the receiver), a `Proc` object (or lambda), a `Method` object or a block. Unlike an event handler method no
|
|
153
|
+
event object will be passed but rather any arguments passed to the `call_after` method in addition to the 'handler'.
|
|
154
|
+
|
|
155
|
+
Given an event handler object `call_after` could be used like:
|
|
156
|
+
|
|
157
|
+
```ruby
|
|
158
|
+
# sync call to method of event handler (no args)
|
|
159
|
+
evt_handler.call_after :async_method
|
|
160
|
+
|
|
161
|
+
# async call of lambda (single arg)
|
|
162
|
+
evt_handler.call_after(->(txt) { Wx.log_info(txt) }, "Hello")
|
|
163
|
+
|
|
164
|
+
# async call of block
|
|
165
|
+
evt_handler.call_after('Call nr. %d', 1) { |fmt, num| Wx.log_info(fmt, num) }
|
|
166
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
# @markup markdown
|
|
3
|
+
# @title 6. wxRuby geometry classes
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# 6. wxRuby Geometry classes
|
|
7
|
+
|
|
8
|
+
## Size (Wx::Size) and position (Wx::Point)
|
|
9
|
+
|
|
10
|
+
The wxWidgets API has a lot methods that require either `wxSize`, `wxPoint` or both type of value as argument. Although
|
|
11
|
+
this can be specified in C++ still relatively concise like
|
|
12
|
+
```ruby
|
|
13
|
+
new wxFrame(nullptr, -1, "title", wxPoint(0,0), wxSize(500,400))
|
|
14
|
+
```
|
|
15
|
+
in Ruby this expands to the more verbose
|
|
16
|
+
```ruby
|
|
17
|
+
Wx::Frame.new(nil, -1, 'title', Wx::Point.new(0,0), Wx::Size.new(500,400))
|
|
18
|
+
```
|
|
19
|
+
which starts to feel awkward to specify what are in essence just pairs of integers.
|
|
20
|
+
|
|
21
|
+
To provide a simpler, more compact and more Ruby-like, alternative the wxRuby API therefor supports specifying arrays
|
|
22
|
+
of integer pairs in (almost) all cases where `Wx::Size` or `Wx::Point` is expected. So the following code is equivalent
|
|
23
|
+
to the previous code:
|
|
24
|
+
```ruby
|
|
25
|
+
Wx::Frame.new(nil, -1, 'title', [0,0], [500,400])
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
In addition `Wx::Size` and `Wx::Point` support parallel assignment semantics such that you can write code like
|
|
29
|
+
```ruby
|
|
30
|
+
win.paint do | dc |
|
|
31
|
+
# ...
|
|
32
|
+
x, y = win.get_position
|
|
33
|
+
dc.draw_circle(x, y, 4)
|
|
34
|
+
dc.draw_rectangle(x-4, y-4, 8, 8)
|
|
35
|
+
end
|
|
36
|
+
```
|
|
37
|
+
instead of
|
|
38
|
+
```ruby
|
|
39
|
+
win.paint do | dc |
|
|
40
|
+
# ...
|
|
41
|
+
pos = win.get_position
|
|
42
|
+
dc.draw_circle(pos.x, pos.y, 4)
|
|
43
|
+
dc.draw_rectangle(pos.x-4, pos.y-4, 8, 8)
|
|
44
|
+
end
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Areas (Wx::Rect)
|
|
48
|
+
|
|
49
|
+
Like `Wx::Size` and `Wx::Point` wxRuby supports parallel assignment for `Wx::Rect` such that you can write code like
|
|
50
|
+
```ruby
|
|
51
|
+
x, y, width, height = win.get_client_rect
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Providing arrays of integers as alternative for `Wx::Rect` arguments is not supported as specifying `[0, 0, 20, 40]` is
|
|
55
|
+
ambiguous. This could either mean a rectangle with origin `x=0,y=0` and size `width=20,height=40` (`Wx::Rect.new(0,0,20,40)`)
|
|
56
|
+
or a rectangle from origin top left `x=0,y=0` to point bottom right `x=20,y=40` (`Wx::Rect.new(Wx::Point.new(0,0), Wx::Point.new(20,40))`).
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
# @markup markdown
|
|
3
|
+
# @title 7. wxRuby Colour and Font
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# 6. wxRuby Colour and Font
|
|
7
|
+
|
|
8
|
+
## Introduction
|
|
9
|
+
|
|
10
|
+
The wxWidgets API makes use of typical C++ features to support automatic conversion of certain types providing
|
|
11
|
+
user friendly options for argument specifications. This way for example a developer does not need to explicitly
|
|
12
|
+
declare a colour object construction where a colour instance value is expected but rather can specify a simple string
|
|
13
|
+
constant like:
|
|
14
|
+
|
|
15
|
+
```C++
|
|
16
|
+
wxPen pen;
|
|
17
|
+
pen.SetColour("CYAN"); // instead of pen.SetColour(wxColour("CYAN"));
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
For the wxRuby API similar support has been achieved for various much used argument types.
|
|
21
|
+
|
|
22
|
+
## Colour
|
|
23
|
+
|
|
24
|
+
Wherever a `Wx::Colour` object is expected as an argument wxRuby supports the specification of `String` or `Symbol`
|
|
25
|
+
values as a developer friendly alternative. This way the following code is equivalent:
|
|
26
|
+
|
|
27
|
+
```ruby
|
|
28
|
+
pen = Wx::Pen.new
|
|
29
|
+
pen.set_colour(Wx::Colour.new("CYAN"))
|
|
30
|
+
|
|
31
|
+
pen = Wx::Pen.new
|
|
32
|
+
pen.set_colour("CYAN")
|
|
33
|
+
|
|
34
|
+
pen = Wx::Pen.new
|
|
35
|
+
pen.set_colour(:CYAN)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Font
|
|
39
|
+
|
|
40
|
+
Wherever a `Wx::Font` object is expected as an argument wxRuby supports the specification of a `Wx::FontInfo` object.
|
|
41
|
+
This way the following code is equivalent:
|
|
42
|
+
|
|
43
|
+
```ruby
|
|
44
|
+
title = Wx::StaticText.new(self, -1, "Title")
|
|
45
|
+
title.set_font(Wx::Font.new(18, Wx::FontFamily::FONTFAMILY_SWISS, Wx::FontStyle::FONTSTYLE_NORMAL, Wx::FontWeight::FONTWEIGHT_BOLD))
|
|
46
|
+
|
|
47
|
+
title = Wx::StaticText.new(self, -1, "Title")
|
|
48
|
+
title.set_font(Wx::FontInfo.new(18)
|
|
49
|
+
.family(Wx::FontFamily::FONTFAMILY_SWISS)
|
|
50
|
+
.style(Wx::FontStyle::FONTSTYLE_NORMAL)
|
|
51
|
+
.bold())
|
|
52
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
# @markup markdown
|
|
3
|
+
# @title 8. wxRuby Extensions
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# 8. wxRuby Extensions
|
|
7
|
+
|
|
8
|
+
## Keyword Constructors
|
|
9
|
+
|
|
10
|
+
The **Keyword Constructors** extension allows the use of Ruby hash-style
|
|
11
|
+
keyword arguments in constructors of common WxWidgets Windows, Frame,
|
|
12
|
+
Dialog and Control classes.
|
|
13
|
+
|
|
14
|
+
### Introduction
|
|
15
|
+
|
|
16
|
+
Building a GUI in WxWidgets involves lots of calls to +new+, but
|
|
17
|
+
these methods often have long parameter lists. Often the default
|
|
18
|
+
values for many of these parameters are correct. For example, if
|
|
19
|
+
you're using a sizer-based layout, you usually don't want to specify a
|
|
20
|
+
size for widgets, but you still have to type
|
|
21
|
+
|
|
22
|
+
Wx::TreeCtrl.new( parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_BUTTONS )
|
|
23
|
+
|
|
24
|
+
just to create a standard TreeCtrl with the 'no buttons' style. If you
|
|
25
|
+
want to specify the 'NO BUTTONS' style, you can't avoid all the typing
|
|
26
|
+
of DEFAULT_POSITION etc.
|
|
27
|
+
|
|
28
|
+
### Basic Keyword Constructors
|
|
29
|
+
|
|
30
|
+
With keyword_constructors, you could write the above as
|
|
31
|
+
|
|
32
|
+
TreeCtrl.new(parent, :style => Wx::NO_BUTTONS)
|
|
33
|
+
|
|
34
|
+
And it will assume you want the default id (-1), and the default size
|
|
35
|
+
and position. If you want to specify an explicit size, you can do so:
|
|
36
|
+
|
|
37
|
+
TreeCtrl.new(parent, :size => Wx::Size.new(100, 300))
|
|
38
|
+
|
|
39
|
+
For brevity, this module also allows you to specify positions and
|
|
40
|
+
sizes using a a two-element array:
|
|
41
|
+
|
|
42
|
+
TreeCtrl.new(parent, :size => [100, 300])
|
|
43
|
+
|
|
44
|
+
Similarly with position:
|
|
45
|
+
|
|
46
|
+
TreeCtrl.new(parent, :pos => Wx::Point.new(5, 25))
|
|
47
|
+
|
|
48
|
+
TreeCtrl.new(parent, :pos => [5, 25])
|
|
49
|
+
|
|
50
|
+
You can have multiple keyword arguments:
|
|
51
|
+
|
|
52
|
+
TreeCtrl.new(parent, :pos => [5, 25], :size => [100, 300] )
|
|
53
|
+
|
|
54
|
+
### No ID required
|
|
55
|
+
|
|
56
|
+
As with position and size, you usually don't want to deal with
|
|
57
|
+
assigning unique ids to every widget and frame you create - it's a C++
|
|
58
|
+
hangover that often seems clunky in Ruby. The **Event Connectors**
|
|
59
|
+
extension allows you to set up event handling without having to use
|
|
60
|
+
ids, and if no `:id` argument is supplied to a constructor, the default
|
|
61
|
+
(-1) will be passed.
|
|
62
|
+
|
|
63
|
+
There are occasions when a specific ID does need to be used - for
|
|
64
|
+
example, to tell WxWidgets that a button is a 'stock' item, so that it
|
|
65
|
+
can be displayed using platform-standard text and icon. To do this,
|
|
66
|
+
simply pass an :id argument to the constructor - here, the system's
|
|
67
|
+
standard 'preview' button
|
|
68
|
+
|
|
69
|
+
Wx::Button.new(parent, :id => Wx::ID_PREVIEW)
|
|
70
|
+
|
|
71
|
+
### Class-specific arguments
|
|
72
|
+
|
|
73
|
+
The arguments `:size`, `:pos` and `:style` are common to many WxWidgets
|
|
74
|
+
window classes. The `new` methods of these classes also have
|
|
75
|
+
parameters that are specific to those classes; for example, the text
|
|
76
|
+
label on a button, or the initial value of a text control.
|
|
77
|
+
|
|
78
|
+
Wx::Button.new(parent, :label => 'press me')
|
|
79
|
+
Wx::TextCtrl.new(parent, :value => 'type some text here')
|
|
80
|
+
|
|
81
|
+
The keyword names of these arguments can be found by looking at the
|
|
82
|
+
WxRuby documentation, in the relevant class's +new+ method. You can
|
|
83
|
+
also get a string description of the class's +new+ method parameters
|
|
84
|
+
within Ruby by doing:
|
|
85
|
+
|
|
86
|
+
puts Wx::TextCtrl.describe_constructor()
|
|
87
|
+
|
|
88
|
+
This will print a list of the argument names expected by the class's
|
|
89
|
+
+new+ method, and the correct type for them.
|
|
90
|
+
|
|
91
|
+
### Mixing positional and keyword arguments
|
|
92
|
+
|
|
93
|
+
To support existing code, and to avoid forcing the use of more verbose
|
|
94
|
+
keyword-style arguments where they're not desired, you can mix
|
|
95
|
+
positional and keyword arguments, omitting or including `id`s as
|
|
96
|
+
desired.
|
|
97
|
+
|
|
98
|
+
Wx::Button.new(parent, 'press me', :style => Wx::BU_RIGHT)
|
|
99
|
+
|
|
100
|
+
### Handling complex defaults or version differences
|
|
101
|
+
|
|
102
|
+
To support complex (context dependent) defaults and/or auto conversion
|
|
103
|
+
of arguments for backwards compatibility the keyword constructors
|
|
104
|
+
extension allows the definition of lambdas or procs to be associated
|
|
105
|
+
with a parameter specification.
|
|
106
|
+
|
|
107
|
+
## Ruby-style accessors
|
|
108
|
+
|
|
109
|
+
The wxWidgets API, in typical C++ style, has lots of accessor methods like
|
|
110
|
+
|
|
111
|
+
- `GetPosition()`
|
|
112
|
+
- `SetSize(a_size)`
|
|
113
|
+
- `IsChecked()`
|
|
114
|
+
- `CanUndo()`
|
|
115
|
+
- `HasStyle(a_style)`
|
|
116
|
+
|
|
117
|
+
which in wxRuby are mapped to Ruby methods like `get_position`, `set_size` etc.
|
|
118
|
+
|
|
119
|
+
In Ruby however these kind of methods that set, get or query attributes or state are normally simply called
|
|
120
|
+
by the attribute name or, in other cases, by a predicate method like:
|
|
121
|
+
|
|
122
|
+
```ruby
|
|
123
|
+
pos = frame.position
|
|
124
|
+
frame.size = a_size
|
|
125
|
+
item.checked?
|
|
126
|
+
control.can_undo?
|
|
127
|
+
window.has_style?(a_style)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
With wxRuby3 (most of) the API methods that begin with *get_*, *set_*, *is_*, *can_* and *has_* are identified
|
|
131
|
+
and the wxRuby API will have Ruby-style accessor aliases defined for those (appropriately decorated as needed).
|
|
132
|
+
Note that if you are calling a *'setter'* method on `self`, you must explicitly send the message to `self` like:
|
|
133
|
+
|
|
134
|
+
```ruby
|
|
135
|
+
# set's self size to be 100px by 100px
|
|
136
|
+
self.size = Wx::Size.new(100, 100)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
since this will not work as you expect it to:
|
|
140
|
+
|
|
141
|
+
```ruby
|
|
142
|
+
# only sets the value of a local variable 'size'
|
|
143
|
+
size = Wx::Size.new
|
|
144
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
# @markup markdown
|
|
3
|
+
# @title 9. wxRuby Exception Handling
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# 9. wxRuby Exception Handling
|
|
7
|
+
|
|
8
|
+
The wxRuby library should (!) be completely exception safe, i.e. Ruby code raising an exception should not leak into
|
|
9
|
+
the wrapped wxWidgets C++ code and cause unexpected exception handling or (worse) segmentation faults and should be
|
|
10
|
+
handled in ways expected of Ruby applications.
|
|
11
|
+
|
|
12
|
+
As the wxWidgets library does not use exceptions for it's public API any raised exceptions should come either from the
|
|
13
|
+
wxRuby wrapper code (signalling mostly typical Ruby-ish error situations like ArgumentError, TypeError and such) or from
|
|
14
|
+
your own Ruby application code.
|
|
15
|
+
|
|
16
|
+
Any exceptions raised from wxRuby wrapper code signal coding errors that need to be rectified.
|
|
17
|
+
|
|
18
|
+
As far as handling application code exceptions is concerned the same advice applies as for wxWidgets itself; do **not**
|
|
19
|
+
let exceptions escape your event handlers meaning that if you can reasonably expect application code to raise exceptions
|
|
20
|
+
you should make sure to catch any such exceptions within the context of the event handler like:
|
|
21
|
+
|
|
22
|
+
```ruby
|
|
23
|
+
class MyForm < Wx::Frame
|
|
24
|
+
|
|
25
|
+
def initialize(title)
|
|
26
|
+
super(nil, title: title)
|
|
27
|
+
|
|
28
|
+
# initialize frame elements
|
|
29
|
+
# ...
|
|
30
|
+
|
|
31
|
+
# setup event handlers
|
|
32
|
+
evt_menu MY_MENU_ID, :on_my_menu_item
|
|
33
|
+
|
|
34
|
+
# ...
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def on_my_menu_item(evt)
|
|
38
|
+
begin
|
|
39
|
+
# execute some application code
|
|
40
|
+
# ...
|
|
41
|
+
rescue SomeException => ex
|
|
42
|
+
# handle exception
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
#...
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
In wxRuby event handler code is executed in an exception safe way which will capture any leaking exceptions. As wxRuby
|
|
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 `Wx::App` instance and re-raising the exception to be handled by Ruby like any unhandled application
|
|
54
|
+
exception.
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# Wx global methods
|
|
2
|
+
#
|
|
3
|
+
# Documentation stubs for global Wx methods
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
module Wx
|
|
7
|
+
|
|
8
|
+
# @!group Logging methods
|
|
9
|
+
|
|
10
|
+
# Log a Wx message with the given logging level to the current Wx log output
|
|
11
|
+
# @param lvl [Integer] logging level (like {Wx::LOG_Message})
|
|
12
|
+
# @param fmt [String] message (formatting) string
|
|
13
|
+
# @param args [Array<Object>] optional message arguments
|
|
14
|
+
# @return [nil]
|
|
15
|
+
def self.log_generic(lvl, fmt, *args) end
|
|
16
|
+
|
|
17
|
+
# Log a Wx low priority informational message to the current Wx log output
|
|
18
|
+
# @param fmt [String] message (formatting) string
|
|
19
|
+
# @param args [Array<Object>] optional message arguments
|
|
20
|
+
# @return [nil]
|
|
21
|
+
def self.log_info(fmt, *args) end
|
|
22
|
+
|
|
23
|
+
# Log a Wx Informational message to the current Wx log output
|
|
24
|
+
# @param fmt [String] message (formatting) string
|
|
25
|
+
# @param args [Array<Object>] optional message arguments
|
|
26
|
+
# @return [nil]
|
|
27
|
+
def self.log_message(fmt, *args) end
|
|
28
|
+
|
|
29
|
+
# Log a Wx Error message to the current Wx log output
|
|
30
|
+
# @param fmt [String] message (formatting) string
|
|
31
|
+
# @param args [Array<Object>] optional message arguments
|
|
32
|
+
# @return [nil]
|
|
33
|
+
def self.log_error(fmt, *args) end
|
|
34
|
+
|
|
35
|
+
# Log a Wx Warning message to the current Wx log output
|
|
36
|
+
# @param fmt [String] message (formatting) string
|
|
37
|
+
# @param args [Array<Object>] optional message arguments
|
|
38
|
+
# @return [nil]
|
|
39
|
+
def self.log_warning(fmt, *args) end
|
|
40
|
+
|
|
41
|
+
# Log a Wx Status message - this is directed to the status bar of the
|
|
42
|
+
# specified Frame window, or the application main window if not specified.
|
|
43
|
+
# Based on Wx::Widgets code in src/generic/logg.cpp, WxLogGui::DoLog
|
|
44
|
+
# @overload log_status(win, fmt, *args)
|
|
45
|
+
# @param win [Wx::Frame] window to log to
|
|
46
|
+
# @param fmt [String] message (formatting) string
|
|
47
|
+
# @param args [Array<Object>] optional message arguments
|
|
48
|
+
# @overload log_status(fmt, *args)
|
|
49
|
+
# @param fmt [String] message (formatting) string
|
|
50
|
+
# @param args [Array<Object>] optional message arguments
|
|
51
|
+
# @return [nil]
|
|
52
|
+
def self.log_status(fmt, *args) end
|
|
53
|
+
|
|
54
|
+
# Log a Wx verbose informational message to the current Wx log output
|
|
55
|
+
# (needs explicit activation to be shown)
|
|
56
|
+
# @param fmt [String] message (formatting) string
|
|
57
|
+
# @param args [Array<Object>] optional message arguments
|
|
58
|
+
# @return [nil]
|
|
59
|
+
def self.log_verbose(fmt, *args) end
|
|
60
|
+
|
|
61
|
+
# Log a Wx debug message to the current Wx log output
|
|
62
|
+
# @param fmt [String] message (formatting) string
|
|
63
|
+
# @param args [Array<Object>] optional message arguments
|
|
64
|
+
# @return [nil]
|
|
65
|
+
def self.log_debug(fmt, *args) end
|
|
66
|
+
|
|
67
|
+
# @!endgroup
|
|
68
|
+
|
|
69
|
+
# @!group Other class methods
|
|
70
|
+
|
|
71
|
+
# Returns the global app object
|
|
72
|
+
# @return [Wx::App] the global app object
|
|
73
|
+
def self.get_app; end
|
|
74
|
+
|
|
75
|
+
# Returns the pointer address of the underlying C++ object as a hex
|
|
76
|
+
# string - useful for debugging
|
|
77
|
+
# @param obj [Object] wrapped object
|
|
78
|
+
# @return [String] string with address in hex format
|
|
79
|
+
def self.cpp_ptr_addr(obj) end
|
|
80
|
+
|
|
81
|
+
# Converts a string XRC id into a Wx id
|
|
82
|
+
# @param str [String] XRC id string
|
|
83
|
+
# @return [Integer] Wx Id
|
|
84
|
+
def self.xrcid(str) end
|
|
85
|
+
|
|
86
|
+
def self.begin_busy_cursor(cursor) end
|
|
87
|
+
def self.end_busy_cursor; end
|
|
88
|
+
def self.bell; end
|
|
89
|
+
def self.safe_yield(win = nil, only_if_needed = false) end
|
|
90
|
+
|
|
91
|
+
# @!endgroup
|
|
92
|
+
|
|
93
|
+
# @!group System information
|
|
94
|
+
|
|
95
|
+
# @return [String]
|
|
96
|
+
def self.get_email_address; end
|
|
97
|
+
# @return [String]
|
|
98
|
+
def self.get_host_name; end
|
|
99
|
+
# @return [String]
|
|
100
|
+
def self.get_full_host_name; end
|
|
101
|
+
# @return [String]
|
|
102
|
+
def self.get_user_id; end
|
|
103
|
+
# @return [String]
|
|
104
|
+
def self.get_user_name; end
|
|
105
|
+
# @return [String]
|
|
106
|
+
def self.get_home_dir; end
|
|
107
|
+
|
|
108
|
+
# @!endgroup
|
|
109
|
+
|
|
110
|
+
# @!group Mouse / keyboard information
|
|
111
|
+
|
|
112
|
+
# @return [true,false]
|
|
113
|
+
def self.get_key_state(key) end
|
|
114
|
+
# @return [Wx::Window]
|
|
115
|
+
def self.find_window_at_point(point) end
|
|
116
|
+
# @return [Wx::Window]
|
|
117
|
+
def self.get_active_window; end
|
|
118
|
+
# @return [Wx::Point]
|
|
119
|
+
def self.get_mouse_position; end
|
|
120
|
+
# @return [Wx::MouseState]
|
|
121
|
+
def self.get_mouse_state; end
|
|
122
|
+
|
|
123
|
+
# @!endgroup
|
|
124
|
+
|
|
125
|
+
# @!group Dialog shortcuts
|
|
126
|
+
|
|
127
|
+
# @return [Array<Integer>] Selected choices
|
|
128
|
+
def self.get_selected_choices(message, caption, choices,
|
|
129
|
+
parent = nil, x = Wx::DEFAULT_COORD, y = Wx::DEFAULT_COORD,
|
|
130
|
+
centre = true, width = Wx::CHOICE_WIDTH, height = Wx::CHOICE_HEIGHT) end
|
|
131
|
+
|
|
132
|
+
# Pops up a file selector box.
|
|
133
|
+
#
|
|
134
|
+
# In Windows, this is the common file selector dialog. In X, this is a file selector box with the same functionality.
|
|
135
|
+
# The path and filename are distinct elements of a full file pathname. If path is empty, the current directory will
|
|
136
|
+
# be used. If filename is empty, no default filename will be supplied. The wildcard determines what files are
|
|
137
|
+
# displayed in the file selector, and file extension supplies a type extension for the required filename. Flags may
|
|
138
|
+
# be a combination of Wx::FD_OPEN, Wx::FD_SAVE, Wx::FD_OVERWRITE_PROMPT or Wx::FD_FILE_MUST_EXIST.
|
|
139
|
+
#
|
|
140
|
+
# @note Wx::FD_MULTIPLE can only be used with Wx::FileDialog and not here since this function only returns a single file name.
|
|
141
|
+
#
|
|
142
|
+
# Both the Unix and Windows versions implement a wildcard filter. Typing a filename containing wildcards (*, ?) in
|
|
143
|
+
# the filename text item, and clicking on Ok, will result in only those files matching the pattern being displayed.
|
|
144
|
+
# The wildcard may be a specification for multiple types of file with a description for each, such as:
|
|
145
|
+
# <code>"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"</code>
|
|
146
|
+
#
|
|
147
|
+
# The application must check for an empty return value (the user pressed Cancel). For example:
|
|
148
|
+
# <code>
|
|
149
|
+
# filename = Wx::file_selector("Choose a file to open")
|
|
150
|
+
# unless filename.empty?
|
|
151
|
+
# # work with the file
|
|
152
|
+
# ...
|
|
153
|
+
# end
|
|
154
|
+
# # else: cancelled by user
|
|
155
|
+
# </code>
|
|
156
|
+
# @return [String] selected file name
|
|
157
|
+
def file_selector(message, default_path='', default_filename='', default_extension='', wildcard='',
|
|
158
|
+
flags=0, parent=nil, x=Wx::DEFAULT_COORD, y=Wx::DEFAULT_COORD) end
|
|
159
|
+
|
|
160
|
+
# An extended version of {Wx::file_selector}.
|
|
161
|
+
# @return [String] selected file name
|
|
162
|
+
def file_selector_ex(message='Select a file', default_path='', default_filename='', indexDefaultExtension=nil,
|
|
163
|
+
wildcard='*', flags=0, parent=nil, x=Wx::DEFAULT_COORD, y=Wx::DEFAULT_COORD) end
|
|
164
|
+
|
|
165
|
+
# Shows a file dialog asking the user for a file name for saving a file.
|
|
166
|
+
# @see Wx::file_selector, Wx::FileDialog
|
|
167
|
+
def load_file_selector(what, extension, default_name='', parent=nil) end
|
|
168
|
+
|
|
169
|
+
# Shows a file dialog asking the user for a file name for opening a file.
|
|
170
|
+
# @see Wx::file_selector, Wx::FileDialog
|
|
171
|
+
def save_file_selector(what, extension, default_name='', parent=nil) end
|
|
172
|
+
|
|
173
|
+
# @!endgroup
|
|
174
|
+
|
|
175
|
+
# @!group Managing stock IDs
|
|
176
|
+
|
|
177
|
+
# Returns true if the ID is in the list of recognized stock actions
|
|
178
|
+
# @param [Integer] id ID to check
|
|
179
|
+
# @return [true,false]
|
|
180
|
+
def is_stock_id(id) end
|
|
181
|
+
|
|
182
|
+
# Returns true if the label is empty or label of a stock button with
|
|
183
|
+
# given ID
|
|
184
|
+
# @param [Integer] id ID to check
|
|
185
|
+
# @param [String] label to check
|
|
186
|
+
# @return [true,false]
|
|
187
|
+
def is_stock_label(id, label) end
|
|
188
|
+
|
|
189
|
+
STOCK_NOFLAGS = 0
|
|
190
|
+
|
|
191
|
+
STOCK_WITH_MNEMONIC = 1
|
|
192
|
+
|
|
193
|
+
STOCK_WITH_ACCELERATOR = 2
|
|
194
|
+
|
|
195
|
+
STOCK_WITHOUT_ELLIPSIS = 4
|
|
196
|
+
|
|
197
|
+
STOCK_FOR_BUTTON = STOCK_WITHOUT_ELLIPSIS | STOCK_WITH_MNEMONIC
|
|
198
|
+
|
|
199
|
+
# Returns label that should be used for given id element.
|
|
200
|
+
# @param [Integer] id Given id of the wxMenuItem, wxButton, wxToolBar tool, etc.
|
|
201
|
+
# @param [Integer] flags Combination of the elements of STOCK_xxx flags.
|
|
202
|
+
# @return [String]
|
|
203
|
+
def get_stock_label(id, flags = Wx::STOCK_WITH_MNEMONIC) end
|
|
204
|
+
|
|
205
|
+
# Returns the accelerator that should be used for given stock UI element
|
|
206
|
+
# (e.g. "Ctrl+X" for Wx::ID_CUT)
|
|
207
|
+
# @param [Integer] id stock UI element ID
|
|
208
|
+
# @return [Wx::AcceleratorEntry]
|
|
209
|
+
def get_stock_accelerator(id) end
|
|
210
|
+
|
|
211
|
+
STOCK_MENU = 0
|
|
212
|
+
|
|
213
|
+
# Returns a help string for the given stock UI element and for the given "context".
|
|
214
|
+
# @param [Integer] id stock UI element ID
|
|
215
|
+
# @param [Integer] client context (currently only STOCK_MENU)
|
|
216
|
+
# @return [String]
|
|
217
|
+
def get_stock_help_string(id, client = Wx::STOCK_MENU) end
|
|
218
|
+
|
|
219
|
+
# @!endgroup
|
|
220
|
+
|
|
221
|
+
end
|