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,54 @@
|
|
|
1
|
+
|
|
2
|
+
module Wx
|
|
3
|
+
|
|
4
|
+
# get the user selection as a string
|
|
5
|
+
def self.get_single_choice(message,
|
|
6
|
+
caption,
|
|
7
|
+
choices,
|
|
8
|
+
parent = nil,
|
|
9
|
+
initial_selection: 0,
|
|
10
|
+
x: Wx::DEFAULT_COORD,
|
|
11
|
+
y: Wx::DEFAULT_COORD)
|
|
12
|
+
dialog = Wx::SingleChoiceDialog.new(parent, message, caption, choices, nil, Wx::CHOICEDLG_STYLE, [x, y])
|
|
13
|
+
|
|
14
|
+
dialog.selection = initial_selection
|
|
15
|
+
return dialog.show_modal == Wx::ID_OK ? dialog.get_string_selection : ''
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# get the user selection as an index
|
|
19
|
+
def self.get_single_choice_index(message,
|
|
20
|
+
caption,
|
|
21
|
+
choices,
|
|
22
|
+
parent = nil,
|
|
23
|
+
initial_selection: 0,
|
|
24
|
+
x: Wx::DEFAULT_COORD,
|
|
25
|
+
y: Wx::DEFAULT_COORD)
|
|
26
|
+
dialog = Wx::SingleChoiceDialog.new(parent, message, caption, choices, nil, Wx::CHOICEDLG_STYLE, [x, y])
|
|
27
|
+
|
|
28
|
+
dialog.selection = initial_selection
|
|
29
|
+
return dialog.show_modal == Wx::ID_OK ? dialog.get_selection : -1
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# return an array with the indices of the chosen items, it will be empty
|
|
33
|
+
# if no items were selected or Cancel was pressed
|
|
34
|
+
def self.get_selected_choices(message,
|
|
35
|
+
caption,
|
|
36
|
+
choices,
|
|
37
|
+
parent = nil,
|
|
38
|
+
initial_selections: [],
|
|
39
|
+
x: Wx::DEFAULT_COORD,
|
|
40
|
+
y: Wx::DEFAULT_COORD)
|
|
41
|
+
dialog = Wx::MultiChoiceDialog.new(parent, message, caption, choices, Wx::CHOICEDLG_STYLE, [x, y])
|
|
42
|
+
|
|
43
|
+
# call this even if selections array is empty and this then (correctly)
|
|
44
|
+
# deselects the first item which is selected by default
|
|
45
|
+
dialog.selections = initial_selections
|
|
46
|
+
|
|
47
|
+
if dialog.show_modal != Wx::ID_OK
|
|
48
|
+
return []
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
dialog.get_selections
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Device Context to paint on a window outside an on_paint handler. It is
|
|
2
|
+
# recommended that PaintDC is used in preference to this class.
|
|
3
|
+
class Wx::ClientDC
|
|
4
|
+
# This class should not be instantiated directly in wxRuby; it should
|
|
5
|
+
# always be used via Window#paint, which takes a block receiving the
|
|
6
|
+
# DC. This ensures that the DC is cleaned up at the correct time,
|
|
7
|
+
# avoiding errors and segfaults on exit.
|
|
8
|
+
define_method(:initialize) do | *args |
|
|
9
|
+
Kernel.raise RuntimeError,
|
|
10
|
+
"Do not instantiate ClientDC directly; use Window#paint",
|
|
11
|
+
caller[1..-1]
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
class Wx::Clipboard
|
|
2
|
+
class << self
|
|
3
|
+
# This is provided internally by the SWIG interface file, but all
|
|
4
|
+
# public access should be via Clipboard.open; see below
|
|
5
|
+
private :get_global_clipboard
|
|
6
|
+
|
|
7
|
+
# Class method to provide access to the clipboard within a ruby
|
|
8
|
+
# block. Tests that the clipboard could be accessed, and ensures
|
|
9
|
+
# that it is closed when the block is finished.
|
|
10
|
+
def open
|
|
11
|
+
clip = nil
|
|
12
|
+
# Trying to access the segfault outside main_loop will segfault on
|
|
13
|
+
# some platforms (eg, GTK)
|
|
14
|
+
unless Wx::const_defined?(:THE_APP)
|
|
15
|
+
raise RuntimeError,
|
|
16
|
+
"The clipboard can only be accessed when the App is running"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
clip = get_global_clipboard
|
|
20
|
+
unless clip.open
|
|
21
|
+
Kernel.raise "Could not open clipboard"
|
|
22
|
+
end
|
|
23
|
+
yield clip
|
|
24
|
+
ensure
|
|
25
|
+
clip.close if clip
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Need to do some internal record-keeping to protect data objects on
|
|
30
|
+
# the clipboard from garbage collection
|
|
31
|
+
@@__clip_data = []
|
|
32
|
+
|
|
33
|
+
# These methods affect the clipboard contents; each time, update the
|
|
34
|
+
# record with the changed data contents
|
|
35
|
+
wx_add_data = instance_method(:add_data)
|
|
36
|
+
define_method(:add_data) do | the_data |
|
|
37
|
+
@@__clip_data << the_data
|
|
38
|
+
wx_add_data.bind(self).call(the_data)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
wx_clear = instance_method(:clear)
|
|
42
|
+
define_method(:clear) do
|
|
43
|
+
wx_clear.bind(self).call
|
|
44
|
+
@@__clip_data.clear
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
wx_set_data = instance_method(:set_data)
|
|
48
|
+
define_method(:set_data) do | the_data |
|
|
49
|
+
@@__clip_data = [ the_data ]
|
|
50
|
+
wx_set_data.bind(self).call(the_data)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Aliases, more clearly expressive?
|
|
54
|
+
alias :place :set_data
|
|
55
|
+
alias :fetch :get_data
|
|
56
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# WxRuby Extensions - CollapsiblePane platform dependent alias
|
|
2
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
3
|
+
|
|
4
|
+
module Wx
|
|
5
|
+
|
|
6
|
+
if Wx.has_feature?(:USE_COLLPANE) && (!Wx.has_feature?(:WXGTK20) || Wx.has_feature?(:WXUNIVERSAL))
|
|
7
|
+
|
|
8
|
+
GenericCollapsiblePane = CollapsiblePane
|
|
9
|
+
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
class Wx::Colour
|
|
2
|
+
# Redefine the initialize method so it raises an exception if an
|
|
3
|
+
# invalid colour value is given. This might be an unknown colour
|
|
4
|
+
# string (eg 'dark blue') or out-of-bounds integer values (<0 or >255)
|
|
5
|
+
wx_init = self.instance_method(:initialize)
|
|
6
|
+
define_method(:initialize) do | *args |
|
|
7
|
+
begin
|
|
8
|
+
wx_init.bind(self).call(*args)
|
|
9
|
+
# Invalid integer values raise SWIG 'no matching func'
|
|
10
|
+
rescue ArgumentError, TypeError
|
|
11
|
+
Kernel.raise ArgumentError, "Invalid colour values #{args.inspect}"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Missing Standard colour
|
|
16
|
+
Wx::MAGENTA = new(255, 0, 255)
|
|
17
|
+
|
|
18
|
+
# Colours are equal to one another if they have the same red, green
|
|
19
|
+
# and blue intensity, and the same alpha
|
|
20
|
+
def ==(other)
|
|
21
|
+
case other
|
|
22
|
+
when Wx::Colour
|
|
23
|
+
[ self.red, self.green, self.blue, self.alpha ] ==
|
|
24
|
+
[ other.red, other.green, other.blue, other.alpha ]
|
|
25
|
+
else
|
|
26
|
+
false
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# More informative output for inspect etc
|
|
31
|
+
def to_s
|
|
32
|
+
"#<Wx::Colour: (#{red}, #{green}, #{blue} *#{alpha})>"
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Superclass of a variety of controls that display lists of items (eg
|
|
2
|
+
# Choice, ListBox, CheckListBox)
|
|
3
|
+
class Wx::ControlWithItems
|
|
4
|
+
# Make these ruby enumerables so find, find_all, map etc are available
|
|
5
|
+
include Enumerable
|
|
6
|
+
# Passes each valid item index into the passed block
|
|
7
|
+
def each
|
|
8
|
+
0.upto(get_count - 1) { | i | yield i }
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Make this easier to use for multi-typed data objects. Comparison
|
|
2
|
+
# doesn't work correctly in the SWIG binding
|
|
3
|
+
class Wx::DataFormat
|
|
4
|
+
def ==(other)
|
|
5
|
+
if self.get_type > Wx::DataFormatId::DF_INVALID
|
|
6
|
+
self.get_type == other.get_type
|
|
7
|
+
else
|
|
8
|
+
self.id == other.id
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Provide pre-cooked data formats for the standard types
|
|
14
|
+
module Wx
|
|
15
|
+
DF_TEXT = DataFormat.new( Wx::DataFormatId::DF_TEXT )
|
|
16
|
+
DF_BITMAP = DataFormat.new( Wx::DataFormatId::DF_BITMAP )
|
|
17
|
+
if Wx::PLATFORM != 'WXGTK'
|
|
18
|
+
DF_METAFILE = DataFormat.new( Wx::DataFormatId::DF_METAFILE )
|
|
19
|
+
end
|
|
20
|
+
if Wx::PLATFORM == 'WXMSW'
|
|
21
|
+
DF_DIB = DataFormat.new( Wx::DataFormatId::DF_DIB )
|
|
22
|
+
end
|
|
23
|
+
DF_FILENAME = DataFormat.new( Wx::DataFormatId::DF_FILENAME )
|
|
24
|
+
DF_UNICODETEXT = DataFormat.new( Wx::DataFormatId::DF_UNICODETEXT )
|
|
25
|
+
# DF_HTML is only supported on Windows + MSVC, so don't offer it
|
|
26
|
+
end
|
data/lib/wx/core/dc.rb
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Class for drawing primitives and bitmaps on various outputs (screen, paper)
|
|
2
|
+
class Wx::DC
|
|
3
|
+
# provide Ruby-style convenience methods supporting wxDCxxxChanger-like functionality
|
|
4
|
+
|
|
5
|
+
def with_brush(brush)
|
|
6
|
+
begin
|
|
7
|
+
old_brush = self.brush
|
|
8
|
+
self.brush = brush
|
|
9
|
+
yield(self) if block_given?
|
|
10
|
+
ensure
|
|
11
|
+
self.brush = old_brush
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def with_pen(pen)
|
|
16
|
+
begin
|
|
17
|
+
old_pen = self.pen
|
|
18
|
+
self.pen = pen
|
|
19
|
+
yield(self) if block_given?
|
|
20
|
+
ensure
|
|
21
|
+
self.pen = old_pen
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def with_font(font)
|
|
26
|
+
begin
|
|
27
|
+
old_font = self.font
|
|
28
|
+
self.font = font
|
|
29
|
+
yield(self) if block_given?
|
|
30
|
+
ensure
|
|
31
|
+
self.font = old_font
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def with_text_foreground(clr)
|
|
36
|
+
begin
|
|
37
|
+
old = self.get_text_foreground
|
|
38
|
+
self.text_foreground = clr
|
|
39
|
+
yield(self) if block_given?
|
|
40
|
+
ensure
|
|
41
|
+
self.text_foreground = old
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
alias :with_text_fg :with_text_foreground
|
|
45
|
+
|
|
46
|
+
def with_text_background(clr)
|
|
47
|
+
begin
|
|
48
|
+
old = self.get_text_background
|
|
49
|
+
self.text_background = clr
|
|
50
|
+
yield(self) if block_given?
|
|
51
|
+
ensure
|
|
52
|
+
self.text_background = old
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
alias :with_text_bg :with_text_background
|
|
56
|
+
|
|
57
|
+
def with_background_mode(mode)
|
|
58
|
+
begin
|
|
59
|
+
old = self.get_background_mode
|
|
60
|
+
self.background_mode = mode
|
|
61
|
+
yield(self) if block_given?
|
|
62
|
+
ensure
|
|
63
|
+
self.background_mode = old
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
alias :with_bg_mode :with_background_mode
|
|
67
|
+
|
|
68
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# WxRuby Extensions - Dialog functors for wxRuby3
|
|
2
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
|
3
|
+
|
|
4
|
+
class Wx::Dialog
|
|
5
|
+
|
|
6
|
+
module Functor
|
|
7
|
+
def self.included(klass)
|
|
8
|
+
scope = klass.name.split('::')
|
|
9
|
+
functor_nm = scope.pop
|
|
10
|
+
code = <<~__CODE
|
|
11
|
+
def #{functor_nm}(*args, &block)
|
|
12
|
+
dlg = #{klass.name}.new(*args)
|
|
13
|
+
begin
|
|
14
|
+
if block_given?
|
|
15
|
+
return block.call(dlg)
|
|
16
|
+
else
|
|
17
|
+
return dlg.show_modal
|
|
18
|
+
end
|
|
19
|
+
rescue Exception
|
|
20
|
+
Wx.log_debug "\#{$!}\\n\#{$!.backtrace.join("\\n")}"
|
|
21
|
+
raise
|
|
22
|
+
ensure
|
|
23
|
+
dlg.destroy
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
__CODE
|
|
27
|
+
if scope.empty?
|
|
28
|
+
::Kernel.module_eval code
|
|
29
|
+
else
|
|
30
|
+
scope.inject(::Object) { |mod, nm| mod.const_get(nm) }.singleton_class.module_eval code
|
|
31
|
+
end
|
|
32
|
+
klass.class_eval do
|
|
33
|
+
def self.inherited(sub)
|
|
34
|
+
sub.include Wx::Dialog::Functor
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
include Functor
|
|
41
|
+
|
|
42
|
+
def self.setup_dialog_functors(mod)
|
|
43
|
+
# find all Dialog descendants in mod and setup the dialog Functor for them
|
|
44
|
+
mod.constants.select do |c|
|
|
45
|
+
::Class === (const = mod.const_get(c)) && const < Wx::Dialog
|
|
46
|
+
end.each { |c| mod.const_get(c).include Wx::Dialog::Functor }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
setup_dialog_functors(Wx)
|
|
50
|
+
end
|
data/lib/wx/core/enum.rb
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
class Wx::Enum
|
|
3
|
+
|
|
4
|
+
def |(other)
|
|
5
|
+
if other.instance_of?(self.class)
|
|
6
|
+
self.class.new(to_i | other.to_i)
|
|
7
|
+
else
|
|
8
|
+
to_i | other.to_i
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def &(other)
|
|
13
|
+
if other.instance_of?(self.class)
|
|
14
|
+
self.class.new(to_i & other.to_i)
|
|
15
|
+
else
|
|
16
|
+
to_i & other.to_i
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def ~
|
|
21
|
+
self.class.new(~self.to_i)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def !
|
|
25
|
+
self.to_i == 0
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Base class for all events
|
|
2
|
+
class Wx::Event
|
|
3
|
+
# Get the Wx id, not Ruby's deprecated Object#id
|
|
4
|
+
alias :id :get_id
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
module Wx
|
|
8
|
+
# reduce mapping warnings for this unpublished event class
|
|
9
|
+
NcPaintEvent = Wx::Event
|
|
10
|
+
|
|
11
|
+
EvtHandler.register_event_type EvtHandler::EventType[
|
|
12
|
+
'evt_nc_paint', 0,
|
|
13
|
+
Wx::EVT_NC_PAINT,
|
|
14
|
+
Wx::NcPaintEvent
|
|
15
|
+
]
|
|
16
|
+
end
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# All classes which are capable of handling events inherit from
|
|
2
|
+
# EvtHandler. This includes all Wx::Window subclasses and Wx::App.
|
|
3
|
+
|
|
4
|
+
class Wx::EvtHandler
|
|
5
|
+
# EventType is an internal class that's used to set up event handlers
|
|
6
|
+
# and mappings.
|
|
7
|
+
# * 'name' is the name of the event handler method in ruby
|
|
8
|
+
# * 'arity' is the number of id arguments that method should accept
|
|
9
|
+
# * 'const' is the Wx EventType constant that identifies the event
|
|
10
|
+
# * 'evt_class' is the WxRuby event class which is passed to the event
|
|
11
|
+
# handler block
|
|
12
|
+
#
|
|
13
|
+
# NB: Some event types currently pass a Wx::Event into the event
|
|
14
|
+
# handler block; when the appropriate classes are added to wxRuby, the
|
|
15
|
+
# binding can be updated here.
|
|
16
|
+
EventType = Struct.new(:name, :arity, :const, :evt_class)
|
|
17
|
+
|
|
18
|
+
# Fast look-up hash to map event type ids to ruby event classes
|
|
19
|
+
EVENT_TYPE_CLASS_MAP = {}
|
|
20
|
+
# Hash to look up EVT constants from symbol names of evt handler
|
|
21
|
+
# methods; used internally by disconnect (see EvtHandler.i)
|
|
22
|
+
EVENT_NAME_TYPE_MAP = {}
|
|
23
|
+
|
|
24
|
+
# Given a Wx EventType id (eg Wx::EVT_MENU), returns a WxRuby Event
|
|
25
|
+
# class which should be passed to event handler blocks. The actual
|
|
26
|
+
# EVT_XXX constants themselves are in the compiled libraries.
|
|
27
|
+
def self.event_class_for_type(id)
|
|
28
|
+
if evt_klass = EVENT_TYPE_CLASS_MAP[id]
|
|
29
|
+
return evt_klass
|
|
30
|
+
else
|
|
31
|
+
if Wx::DEBUG
|
|
32
|
+
warn "No event class defined for event type #{id}"
|
|
33
|
+
end
|
|
34
|
+
return Wx::Event
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Given the symbol name of an evt_xxx handler method, returns the
|
|
39
|
+
# Integer Wx::EVT_XXX constant associated with that handler.
|
|
40
|
+
def self.event_type_for_name(name)
|
|
41
|
+
EVENT_NAME_TYPE_MAP[name]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Given the Integer constant Wx::EVT_XXX, returns the convenience
|
|
45
|
+
# handler method name associated with that type of event.
|
|
46
|
+
def self.event_name_for_type(name)
|
|
47
|
+
EVENT_NAME_TYPE_MAP.key(name)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Given an integer value +int_val+, returns the name of the EVT_xxx
|
|
51
|
+
# constant which points to it. Mainly useful for debugging.
|
|
52
|
+
def self.const_to_name(int_val)
|
|
53
|
+
Wx::constants.grep(/^EVT/).find do | c_name |
|
|
54
|
+
Wx::const_get(c_name) == int_val
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Public method to register the mapping of a custom event type
|
|
59
|
+
# +konstant+ (which should be a unique integer; one will be created if
|
|
60
|
+
# not supplied) to a custom event class +klass+. If +meth+ and +arity+
|
|
61
|
+
# are given, a convenience evt_handler method called +meth+ will be
|
|
62
|
+
# created, which accepts +arity+ arguments.
|
|
63
|
+
def self.register_class( klass, konstant = nil,
|
|
64
|
+
meth = nil, arity = nil)
|
|
65
|
+
konstant ||= Wx::Event.new_user_event_type
|
|
66
|
+
unless klass < Wx::Event
|
|
67
|
+
Kernel.raise TypeError, "Event class should be a subclass of Wx::Event"
|
|
68
|
+
end
|
|
69
|
+
ev_type = EventType.new(meth, arity, konstant, klass)
|
|
70
|
+
register_event_type(ev_type)
|
|
71
|
+
return konstant
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Registers the event type +ev_type+, which should be an instance of
|
|
75
|
+
# the Struct class +Wx::EvtHandler::EventType+. This sets up the
|
|
76
|
+
# mapping of events of that type (identified by integer id) to the
|
|
77
|
+
# appropriate ruby event class, and defines a convenience evt_xxx
|
|
78
|
+
# instance method in the class EvtHandler.
|
|
79
|
+
def self.register_event_type(ev_type)
|
|
80
|
+
# set up the event type mapping
|
|
81
|
+
EVENT_TYPE_CLASS_MAP[ev_type.const] = ev_type.evt_class
|
|
82
|
+
EVENT_NAME_TYPE_MAP[ev_type.name.intern] = ev_type.const
|
|
83
|
+
|
|
84
|
+
unless ev_type.arity and ev_type.name
|
|
85
|
+
return
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# set up the evt_xxx method
|
|
89
|
+
case ev_type.arity
|
|
90
|
+
when 0 # events without an id
|
|
91
|
+
class_eval %Q|
|
|
92
|
+
def #{ev_type.name}(meth = nil, &block)
|
|
93
|
+
handler = acquire_handler(meth, block)
|
|
94
|
+
connect(Wx::ID_ANY, Wx::ID_ANY, #{ev_type.const}, handler)
|
|
95
|
+
end |
|
|
96
|
+
when 1 # events with an id
|
|
97
|
+
class_eval %Q|
|
|
98
|
+
def #{ev_type.name}(id, meth = nil, &block)
|
|
99
|
+
handler = acquire_handler(meth, block)
|
|
100
|
+
id = acquire_id(id)
|
|
101
|
+
connect(id, Wx::ID_ANY, #{ev_type.const}, handler)
|
|
102
|
+
end |
|
|
103
|
+
when 2 # events with id range
|
|
104
|
+
class_eval %Q|
|
|
105
|
+
def #{ev_type.name}(first_id, last_id, meth = nil, &block)
|
|
106
|
+
handler = acquire_handler(meth, block)
|
|
107
|
+
first_id = acquire_id(first_id)
|
|
108
|
+
last_id = acquire_id(last_id)
|
|
109
|
+
connect(first_id, last_id, #{ev_type.const}, handler)
|
|
110
|
+
end |
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Not for external use; determines whether to use a block or call a
|
|
115
|
+
# method in self to handle an event, passed to connect. Makes evt_xxx
|
|
116
|
+
# liberal about what it accepts - aside from a block, it can be a
|
|
117
|
+
# method name (as Symbol or String), a (bound) method object, or a
|
|
118
|
+
# Proc object
|
|
119
|
+
def acquire_handler(meth, block)
|
|
120
|
+
if block and not meth
|
|
121
|
+
return block
|
|
122
|
+
elsif meth and not block
|
|
123
|
+
h_meth = case meth
|
|
124
|
+
when Symbol, String then self.method(meth)
|
|
125
|
+
when Proc then meth
|
|
126
|
+
when Method then meth
|
|
127
|
+
end
|
|
128
|
+
# check arity <= 1
|
|
129
|
+
if h_meth.arity>1
|
|
130
|
+
Kernel.raise ArgumentError,
|
|
131
|
+
"Event handler should not accept more than at most a single argument"
|
|
132
|
+
caller
|
|
133
|
+
end
|
|
134
|
+
# wrap method without any argument in anonymous proc to prevent strict argument checking
|
|
135
|
+
if Method === h_meth && h_meth.arity == 0
|
|
136
|
+
Proc.new { h_meth.call }
|
|
137
|
+
else
|
|
138
|
+
h_meth
|
|
139
|
+
end
|
|
140
|
+
else
|
|
141
|
+
Kernel.raise ArgumentError,
|
|
142
|
+
"Specify event handler with a method, name, proc OR block"
|
|
143
|
+
caller
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# Not for external use; acquires an id either from an explicit Fixnum
|
|
148
|
+
# parameter or by calling the wx_id method of a passed Window.
|
|
149
|
+
def acquire_id(window_or_id)
|
|
150
|
+
case window_or_id
|
|
151
|
+
when ::Integer, Wx::Enum
|
|
152
|
+
window_or_id
|
|
153
|
+
when Wx::Window, Wx::MenuItem, Wx::ToolBarTool, Wx::Timer
|
|
154
|
+
window_or_id.wx_id
|
|
155
|
+
else
|
|
156
|
+
Kernel.raise ArgumentError,
|
|
157
|
+
"Must specify Wx::Window event source or its Wx id, " +
|
|
158
|
+
"not '#{window_or_id.inspect}'",
|
|
159
|
+
caller
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
private :acquire_id, :acquire_handler
|
|
163
|
+
|
|
164
|
+
wx_call_after = instance_method(:call_after)
|
|
165
|
+
define_method(:call_after) do |*args, &block|
|
|
166
|
+
async_proc = if block
|
|
167
|
+
block
|
|
168
|
+
elsif !args.empty?
|
|
169
|
+
case args.first
|
|
170
|
+
when Symbol, String then self.method(args.shift)
|
|
171
|
+
when Proc then args.shift
|
|
172
|
+
when Method then args.shift
|
|
173
|
+
else
|
|
174
|
+
nil
|
|
175
|
+
end
|
|
176
|
+
else
|
|
177
|
+
nil
|
|
178
|
+
end
|
|
179
|
+
Kernel.raise ArgumentError, 'Missing async call handler' unless async_proc
|
|
180
|
+
wx_call_after.bind(self).call(args.unshift(async_proc))
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
# Process a command, supplying the window identifier, command event identifier, and member function or proc.
|
|
184
|
+
def evt_command(id, evt_id, meth = nil, &block)
|
|
185
|
+
handler = acquire_handler(meth, block)
|
|
186
|
+
id = acquire_id(id)
|
|
187
|
+
connect(id, Wx::ID_ANY, evt_id, handler)
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
# Process a command for a range of window identifiers, supplying the minimum and maximum window identifiers, command event identifier, and member function or proc.
|
|
191
|
+
def evt_command_range(id1, id2, evt_id, meth = nil, &block)
|
|
192
|
+
handler = acquire_handler(meth, block)
|
|
193
|
+
id = acquire_id(id)
|
|
194
|
+
connect(id, Wx::ID_ANY, evt_id, handler)
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
# Convenience evt_handler to listen to all mouse events.
|
|
198
|
+
def evt_mouse_events(&block)
|
|
199
|
+
evt_left_down(&block)
|
|
200
|
+
evt_left_up(&block)
|
|
201
|
+
evt_middle_down(&block)
|
|
202
|
+
evt_middle_up(&block)
|
|
203
|
+
evt_right_down(&block)
|
|
204
|
+
evt_right_up(&block)
|
|
205
|
+
evt_motion(&block)
|
|
206
|
+
evt_left_dclick(&block)
|
|
207
|
+
evt_middle_dclick(&block)
|
|
208
|
+
evt_right_dclick(&block)
|
|
209
|
+
evt_leave_window(&block)
|
|
210
|
+
evt_enter_window(&block)
|
|
211
|
+
evt_mousewheel(&block)
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
# Convenience evt handler to listen to all scrollwin events.
|
|
215
|
+
def evt_scrollwin(&block)
|
|
216
|
+
evt_scrollwin_top(&block)
|
|
217
|
+
evt_scrollwin_bottom(&block)
|
|
218
|
+
evt_scrollwin_lineup(&block)
|
|
219
|
+
evt_scrollwin_linedown(&block)
|
|
220
|
+
evt_scrollwin_pageup(&block)
|
|
221
|
+
evt_scrollwin_pagedown(&block)
|
|
222
|
+
evt_scrollwin_thumbtrack(&block)
|
|
223
|
+
evt_scrollwin_thumbrelease(&block)
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
if Wx.const_defined?(:EVT_DESTROY)
|
|
227
|
+
|
|
228
|
+
# evt_window_destroy is a special case in that evt.skip
|
|
229
|
+
# should always be called when handling the event
|
|
230
|
+
# as otherwise the OnWindowDestroy handler of Wx::App will not
|
|
231
|
+
# be called to deregister the windows on destruction which
|
|
232
|
+
# may lead to segfaults during the GC marking phase.
|
|
233
|
+
# Thus we register the event here explicitly as well as the
|
|
234
|
+
# event hook method.
|
|
235
|
+
|
|
236
|
+
EVENT_TYPE_CLASS_MAP[Wx::EVT_DESTROY] = Wx::WindowDestroyEvent
|
|
237
|
+
EVENT_NAME_TYPE_MAP['evt_window_destroy'.intern] = Wx::EVT_DESTROY
|
|
238
|
+
|
|
239
|
+
def evt_window_destroy(meth = nil, &block)
|
|
240
|
+
handler = acquire_handler(meth, block)
|
|
241
|
+
connect(Wx::ID_ANY, Wx::ID_ANY, Wx::EVT_DESTROY, Proc.new { |evt| handler.call(evt); evt.skip })
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
end
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
if Wx.const_defined?(:EVT_SASH_DRAGGED) && !Wx.const_defined?(:EVT_SASH_DRAGGED_RANGE)
|
|
248
|
+
Wx.const_set(:EVT_SASH_DRAGGED_RANGE, Wx::EVT_SASH_DRAGGED)
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
# Definitions for all event types that are part by core wxRuby.
|
|
252
|
+
|
|
253
|
+
require_relative './events/evt_list'
|