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,92 @@
|
|
|
1
|
+
class Wx::Point
|
|
2
|
+
# More informative output when converted to string
|
|
3
|
+
def to_s
|
|
4
|
+
"#<Wx::Point: (#{x}, #{y})>"
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def inspect
|
|
8
|
+
to_s
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# make Point usable for parallel assignments like `x, y = pt`
|
|
12
|
+
def to_ary
|
|
13
|
+
[x, y]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
alias :get_x :x
|
|
17
|
+
alias :get_y :y
|
|
18
|
+
|
|
19
|
+
# Compare point values
|
|
20
|
+
def ==(other)
|
|
21
|
+
if Wx::Point === other
|
|
22
|
+
x == other.x and y == other.y
|
|
23
|
+
elsif Array === other && other.size == 2
|
|
24
|
+
to_ary == other
|
|
25
|
+
else
|
|
26
|
+
Kernel.raise TypeError, "Cannot compare Point to #{other}"
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Correct comparison for Points - same if same x and y
|
|
31
|
+
def eql?(other)
|
|
32
|
+
if Wx::Point === other
|
|
33
|
+
x == other.x and y == other.y
|
|
34
|
+
else
|
|
35
|
+
false
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Return a new Wx::Point with the x and y parameters both divided by
|
|
40
|
+
# parameter +num+, which should be a Numeric
|
|
41
|
+
def /(num)
|
|
42
|
+
self.class.new((get_x / num).to_i, (get_y / num).to_i)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Return a new Wx::Point with the x and y values both multiplied by
|
|
46
|
+
# parameter +num+, which should be a Numeric
|
|
47
|
+
def *(num)
|
|
48
|
+
self.class.new((get_x * num).to_i, (get_y * num).to_i)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Return a new Wx::Point with the x and y values both reduced by
|
|
52
|
+
# parameter +arg+. If +arg+ is another Wx::Point (or Wx::Size or 2-element array), reduce x by the
|
|
53
|
+
# other's x (or width) and y by the other's y (or height); if +arg+ is a numeric value,
|
|
54
|
+
# reduce x and y both by that value.
|
|
55
|
+
def -(arg)
|
|
56
|
+
case arg
|
|
57
|
+
when self.class
|
|
58
|
+
self.class.new(get_x - arg.x, get_y - arg.y)
|
|
59
|
+
when Wx::Size
|
|
60
|
+
self.class.new(get_x - arg.width,get_y - arg.height)
|
|
61
|
+
when Numeric
|
|
62
|
+
self.class.new((get_x - arg).to_i, (get_y - arg).to_i)
|
|
63
|
+
else
|
|
64
|
+
if Array === arg && arg.size == 2
|
|
65
|
+
self.class.new(get_x - arg[0].to_i, get_y - arg[1].to_i)
|
|
66
|
+
else
|
|
67
|
+
Kernel.raise TypeError, "Cannot subtract #{arg} from #{self.inspect}"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Return a new Wx::Point with the x and y values both increased by
|
|
73
|
+
# parameter +arg+. If +arg+ is another Wx::Point (or Wx::Size or 2-element array), increase x by the
|
|
74
|
+
# other's x (or width) and y by the other's y (or height); if +arg+ is a numeric value,
|
|
75
|
+
# increase both x and y by that value.
|
|
76
|
+
def +(arg)
|
|
77
|
+
case arg
|
|
78
|
+
when self.class
|
|
79
|
+
self.class.new(get_x + arg.x, get_y + arg.y)
|
|
80
|
+
when Wx::Size
|
|
81
|
+
self.class.new(get_x + arg.width,get_y + arg.height)
|
|
82
|
+
when Numeric
|
|
83
|
+
self.class.new((get_x + arg).to_i, (get_y + arg).to_i)
|
|
84
|
+
else
|
|
85
|
+
if Array === arg && arg.size == 2
|
|
86
|
+
self.class.new(get_x + arg[0].to_i, get_y + arg[1].to_i)
|
|
87
|
+
else
|
|
88
|
+
Kernel.raise TypeError, "Cannot add #{arg} to #{self.inspect}"
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
class Wx::RealPoint
|
|
2
|
+
# More informative output when converted to string
|
|
3
|
+
def to_s
|
|
4
|
+
"#<Wx::RealPoint: (#{x}, #{y})>"
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def inspect
|
|
8
|
+
to_s
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# make RealPoint usable for parallel assignments like `x, y = pt`
|
|
12
|
+
def to_ary
|
|
13
|
+
[x, y]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
alias :get_x :x
|
|
17
|
+
alias :get_y :y
|
|
18
|
+
|
|
19
|
+
# Compare point values
|
|
20
|
+
def ==(other)
|
|
21
|
+
if Wx::RealPoint === other
|
|
22
|
+
x == other.x and y == other.y
|
|
23
|
+
elsif Array === other && other.size == 2
|
|
24
|
+
to_ary == other
|
|
25
|
+
else
|
|
26
|
+
Kernel.raise TypeError, "Cannot compare RealPoint to #{other}"
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Correct comparison for RealPoints - same if same x and y
|
|
31
|
+
def eql?(other)
|
|
32
|
+
if Wx::RealPoint === other
|
|
33
|
+
x == other.x and y == other.y
|
|
34
|
+
else
|
|
35
|
+
false
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Return a new Wx::RealPoint with the x and y parameters both divided by
|
|
40
|
+
# parameter +num+, which should be a Numeric
|
|
41
|
+
def /(num)
|
|
42
|
+
self.class.new( get_x / num, get_y / num )
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Return a new Wx::RealPoint with the x and y values both multiplied by
|
|
46
|
+
# parameter +num+, which should be a Numeric
|
|
47
|
+
def *(num)
|
|
48
|
+
self.class.new( get_x * num, get_y * num )
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Return a new Wx::RealPoint with the x and y values both reduced by
|
|
52
|
+
# parameter +arg+. If +arg+ is another Wx::(Real)Point (or Wx::Size or 2-element array), reduce x by the
|
|
53
|
+
# other's x (or width) and y by the other's y (or height); if +arg+ is a numeric value,
|
|
54
|
+
# reduce x and y both by that value.
|
|
55
|
+
def -(arg)
|
|
56
|
+
case arg
|
|
57
|
+
when Wx::Size
|
|
58
|
+
self.class.new(get_x - arg.width, get_y - arg.height)
|
|
59
|
+
when self.class, Wx::Point
|
|
60
|
+
self.class.new(get_x - arg.x, get_y - arg.y)
|
|
61
|
+
when Numeric
|
|
62
|
+
self.class.new(get_x - arg, get_y - arg)
|
|
63
|
+
else
|
|
64
|
+
if Array === arg && arg.size == 2
|
|
65
|
+
self.class.new(get_x - arg[0].to_f, get_y - arg[1].to_f)
|
|
66
|
+
else
|
|
67
|
+
Kernel.raise TypeError, "Cannot subtract #{arg} from #{self.inspect}"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Return a new Wx::RealPoint with the x and y values both increased by
|
|
73
|
+
# parameter +arg+. If +arg+ is another Wx::(Real)Point (or Wx::Size or 2-element array), increase x by the
|
|
74
|
+
# other's x (or width) and y by the other's y (or height); if +arg+ is a numeric value,
|
|
75
|
+
# increase both x and y by that value.
|
|
76
|
+
def +(arg)
|
|
77
|
+
case arg
|
|
78
|
+
when Wx::Size
|
|
79
|
+
self.class.new(get_x + arg.width, get_y + arg.height)
|
|
80
|
+
when self.class, Wx::Point
|
|
81
|
+
self.class.new(get_x + arg.x, get_y + arg.y)
|
|
82
|
+
when Numeric
|
|
83
|
+
self.class.new(get_x + arg, get_y + arg)
|
|
84
|
+
else
|
|
85
|
+
if Array === arg && arg.size == 2
|
|
86
|
+
self.class.new(get_x + arg[0].to_f, get_y + arg[1].to_f)
|
|
87
|
+
else
|
|
88
|
+
Kernel.raise TypeError, "Cannot add #{arg} to #{self.inspect}"
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
data/lib/wx/core/rect.rb
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Class representing a rectangular shape
|
|
2
|
+
class Wx::Rect
|
|
3
|
+
# Nicely readable inspect output for Rect
|
|
4
|
+
def to_s
|
|
5
|
+
"#<Wx::Rect: (#{left}, #{top}) #{width}x#{height}>"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def inspect
|
|
9
|
+
to_s
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# make Rect usable for parallel assignments like `left, top, width, height = rect`
|
|
13
|
+
def to_ary
|
|
14
|
+
[left, top, width, height]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Correct comparison for Wx::Rect, are the same if have the same
|
|
18
|
+
# position and the same size
|
|
19
|
+
def ==(other)
|
|
20
|
+
if Wx::Rect === other
|
|
21
|
+
left == other.left and top == other.top and
|
|
22
|
+
width == other.width and height == other.height
|
|
23
|
+
elsif Array === other && other.size == 4
|
|
24
|
+
to_ary == other
|
|
25
|
+
else
|
|
26
|
+
Kernel.raise TypeError, "Cannot compare Rect to #{other}"
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def eql?(other)
|
|
31
|
+
if Wx::Rect === other
|
|
32
|
+
left == other.left and top == other.top and
|
|
33
|
+
width == other.width and height == other.height
|
|
34
|
+
else
|
|
35
|
+
false
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# make sure union and intersect are constant operations, i.e. not changing self
|
|
40
|
+
wx_union = instance_method :union
|
|
41
|
+
define_method :union do |rect|
|
|
42
|
+
wx_union.bind(Wx::Rect.new(*self.to_ary)).call(rect)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
wx_intersect = instance_method :intersect
|
|
46
|
+
define_method :intersect do |rect|
|
|
47
|
+
wx_intersect.bind(Wx::Rect.new(*self.to_ary)).call(rect)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
alias :+ :add
|
|
51
|
+
alias :* :mul
|
|
52
|
+
alias :& :intersect
|
|
53
|
+
alias :| :union
|
|
54
|
+
|
|
55
|
+
# More ruby-ish names
|
|
56
|
+
alias :contains? :contains
|
|
57
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Pure-ruby implementation of the corresponding Wx class. Simply shows
|
|
2
|
+
# the Window's help text in a tooltip.
|
|
3
|
+
class Wx::SimpleHelpProvider < Wx::HelpProvider
|
|
4
|
+
def initialize
|
|
5
|
+
super
|
|
6
|
+
# Store for mapping windows -> help strings
|
|
7
|
+
@help_wins = {}
|
|
8
|
+
# Store for mapping ids -> help strings
|
|
9
|
+
@help_ids = {}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# This is what is called by Wx::Window#set_help_text
|
|
13
|
+
def add_help(identifier, text)
|
|
14
|
+
if identifier.kind_of? Wx::Window
|
|
15
|
+
@help_wins[identifier.object_id] = text
|
|
16
|
+
else
|
|
17
|
+
@help_ids[identifier] = text
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Retrieve help text for the given window +win+
|
|
22
|
+
def get_help(win)
|
|
23
|
+
@help_wins[win.object_id] || @help_ids[win.wx_id] || ""
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Remove the help text for +win+
|
|
27
|
+
def remove_help(win)
|
|
28
|
+
@help_wins.delete(win.object_id)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Show help for +win+
|
|
32
|
+
def show_help(win)
|
|
33
|
+
help_text = get_help(win)
|
|
34
|
+
return false if help_text.empty?
|
|
35
|
+
tip = Wx::TipWindow.new(win, help_text, 100)
|
|
36
|
+
true
|
|
37
|
+
end
|
|
38
|
+
end
|
data/lib/wx/core/size.rb
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
class Wx::Size
|
|
2
|
+
# More informative output for inspect etc
|
|
3
|
+
def to_s
|
|
4
|
+
"#<Wx::Size: #{width}x#{height}>"
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def inspect
|
|
8
|
+
to_s
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# make Size usable for parallel assignments like `w, h = sz`
|
|
12
|
+
def to_ary
|
|
13
|
+
[width, height]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Compare with another size value
|
|
17
|
+
def ==(other)
|
|
18
|
+
if Wx::Size === other
|
|
19
|
+
width == other.width and height == other.height
|
|
20
|
+
elsif Array === other and other.size == 2
|
|
21
|
+
to_ary == other
|
|
22
|
+
else
|
|
23
|
+
Kernel.raise TypeError, "Cannot compare Size to #{other}"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def eql?(other)
|
|
28
|
+
if Wx::Size === other
|
|
29
|
+
width == other.width and height == other.height
|
|
30
|
+
else
|
|
31
|
+
false
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Return a new Wx::Size with the width and height values both divided
|
|
36
|
+
# by parameter +num+, which should be a Numeric
|
|
37
|
+
def /(num)
|
|
38
|
+
self.class.new((width / num).to_i, (height / num).to_i)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Return a new Wx::Size with the width and height values both
|
|
42
|
+
# multiplied by parameter +num+, which should be a Numeric
|
|
43
|
+
def *(num)
|
|
44
|
+
self.class.new((width * num).to_i, (height * num).to_i)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Return a new Wx::Size with the width and height parameters both
|
|
48
|
+
# reduced by parameter +arg+. If +arg+ is another Wx::Size (or 2-element array), reduce
|
|
49
|
+
# width by the other's width and height by the other's height; if
|
|
50
|
+
# +arg+ is a numeric value, reduce both width and height by that
|
|
51
|
+
# value.
|
|
52
|
+
def -(arg)
|
|
53
|
+
case arg
|
|
54
|
+
when self.class
|
|
55
|
+
self.class.new(width - arg.width, height - arg.height)
|
|
56
|
+
when Numeric
|
|
57
|
+
self.class.new((width - arg).to_i, (height - arg).to_i)
|
|
58
|
+
else
|
|
59
|
+
if Array === arg && arg.size == 2
|
|
60
|
+
self.class.new(width - arg[0].to_i, height - arg[1].to_i)
|
|
61
|
+
else
|
|
62
|
+
Kernel.raise TypeError, "Cannot add #{arg} to #{self.inspect}"
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Return a new Wx::Size with the width and height parameters both
|
|
68
|
+
# increased by parameter +arg+. If +arg+ is another Wx::Size (or 2-element array), increase
|
|
69
|
+
# width by the other's width and height by the other's height; if
|
|
70
|
+
# +arg+ is a numeric value, increase both width and height by that
|
|
71
|
+
# value.
|
|
72
|
+
def +(arg)
|
|
73
|
+
case arg
|
|
74
|
+
when self.class
|
|
75
|
+
self.class.new( width + arg.width, height + arg.height )
|
|
76
|
+
when Numeric
|
|
77
|
+
self.class.new( (width + arg).to_i, (height + arg).to_i )
|
|
78
|
+
else
|
|
79
|
+
if Array === arg && arg.size == 2
|
|
80
|
+
self.class.new(width + arg[0].to_i, height + arg[1].to_i)
|
|
81
|
+
else
|
|
82
|
+
Kernel.raise TypeError, "Cannot add #{arg} to #{self.inspect}"
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Class for automatically managing layouts
|
|
2
|
+
class Wx::Sizer
|
|
3
|
+
# Generic method to add items, supporting positional and named
|
|
4
|
+
# arguments
|
|
5
|
+
ADD_ITEM_PARAMS = [ Wx::Parameter[ :index, -1 ],
|
|
6
|
+
Wx::Parameter[ :proportion, 0 ],
|
|
7
|
+
Wx::Parameter[ :flag, 0 ],
|
|
8
|
+
Wx::Parameter[ :border, 0 ],
|
|
9
|
+
Wx::Parameter[ :user_data, nil ] ]
|
|
10
|
+
|
|
11
|
+
def add_item(item, *mixed_args)
|
|
12
|
+
|
|
13
|
+
begin
|
|
14
|
+
args = Wx::args_as_list(ADD_ITEM_PARAMS, *mixed_args)
|
|
15
|
+
rescue => err
|
|
16
|
+
err.set_backtrace(caller)
|
|
17
|
+
Kernel.raise err
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
full_args = []
|
|
21
|
+
|
|
22
|
+
# extract the width and the height in the case of a spacer
|
|
23
|
+
# defined as an array
|
|
24
|
+
if item.kind_of?(Array)
|
|
25
|
+
Kernel.raise ArgumentError,
|
|
26
|
+
"Invalid Sizer specification : [width, height] expected" if item.size != 2
|
|
27
|
+
full_args << item[0] << item[1]
|
|
28
|
+
else
|
|
29
|
+
full_args << item
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# update the full arguments list with the optional arguments (except index)
|
|
33
|
+
idx = args.shift
|
|
34
|
+
full_args.concat(args)
|
|
35
|
+
|
|
36
|
+
# Call add to append if default position
|
|
37
|
+
if idx == -1
|
|
38
|
+
add(*full_args)
|
|
39
|
+
else
|
|
40
|
+
insert(idx, *full_args)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
|
|
2
|
+
class Wx::SplashScreen
|
|
3
|
+
|
|
4
|
+
# special handling for keyword ctor extension here
|
|
5
|
+
# as this class deviates from 'normal' window ctors
|
|
6
|
+
Wx::define_keyword_ctors(Wx::SplashScreen) do
|
|
7
|
+
wx_ctor_params :id, :pos, :size, :style => Wx::SIMPLE_BORDER|Wx::FRAME_NO_TASKBAR|Wx::STAY_ON_TOP
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# now redefine the overridden ctor to account for deviating arglist
|
|
11
|
+
def initialize(bitmap, splashstyle, milliseconds, parent = nil, *mixed_args, &block)
|
|
12
|
+
# no zero-args ctor for use with XRC!
|
|
13
|
+
|
|
14
|
+
begin
|
|
15
|
+
real_args = [ bitmap, splashstyle, milliseconds, parent ] + self.class.args_as_list(*mixed_args)
|
|
16
|
+
pre_wx_kwctor_init(*real_args)
|
|
17
|
+
rescue => err
|
|
18
|
+
msg = "Error initializing #{self.inspect}\n"+
|
|
19
|
+
" : #{err.message} \n" +
|
|
20
|
+
"Provided are #{real_args} \n" +
|
|
21
|
+
"Correct parameters for #{self.class.name}.new are:\n" +
|
|
22
|
+
self.class.describe_constructor(
|
|
23
|
+
":bitmap => Wx::Bitmap\n:splashstyle => Integer\n:milliseconds => Integer\n:parent => Wx::Window\n")
|
|
24
|
+
|
|
25
|
+
new_err = err.class.new(msg)
|
|
26
|
+
new_err.set_backtrace(caller)
|
|
27
|
+
Kernel.raise new_err
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# If a block was given, pass the newly created Window instance
|
|
31
|
+
# into it; use block
|
|
32
|
+
if block
|
|
33
|
+
if block.arity == -1 or block.arity == 0
|
|
34
|
+
self.instance_eval(&block)
|
|
35
|
+
elsif block.arity == 1
|
|
36
|
+
block.call(self)
|
|
37
|
+
else
|
|
38
|
+
Kernel.raise ArgumentError,
|
|
39
|
+
"Block to initialize accepts zero or one arg"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Class allowing periodic or timed events to be fired
|
|
2
|
+
class Wx::Timer
|
|
3
|
+
# Convenience method to trigger a one-off action after +interval+
|
|
4
|
+
# milliseconds have passed. The action is specified by the passed
|
|
5
|
+
# block. The Timer is owned by the global App object, and is returned
|
|
6
|
+
# by the method.
|
|
7
|
+
def self.after(interval, &block)
|
|
8
|
+
timer = new(Wx::THE_APP, Wx::ID_ANY)
|
|
9
|
+
Wx::THE_APP.evt_timer(timer.get_id, block)
|
|
10
|
+
timer.start(interval, true)
|
|
11
|
+
timer
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Convenience method to trigger a repeating action every +interval+
|
|
15
|
+
# milliseconds. The action is specified by the passed block. The Timer
|
|
16
|
+
# is owned by the global App object, and is returned by the method.
|
|
17
|
+
def self.every(interval, &block)
|
|
18
|
+
timer = new(Wx::THE_APP, Wx::ID_ANY)
|
|
19
|
+
Wx::THE_APP.evt_timer(timer.get_id, block)
|
|
20
|
+
timer.start(interval)
|
|
21
|
+
timer
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# In common with other classes, make the id method refer to the
|
|
25
|
+
# wxWidgets id, not ruby's deprecated name for object_id
|
|
26
|
+
alias :id :get_id
|
|
27
|
+
# In case a more explicit option is preferred.
|
|
28
|
+
alias :wx_id :get_id
|
|
29
|
+
|
|
30
|
+
# This class can be linked to an owner - an instance of a class
|
|
31
|
+
# derived from EvtHandler which will receive Timer events. However,
|
|
32
|
+
# event if a Wx::Timer is attached to a Wx::Window, it is (unlike most
|
|
33
|
+
# classes) NOT automatically deleted when the window is destroyed. If
|
|
34
|
+
# the Timer continues ticking, it will send events to the
|
|
35
|
+
# now-destroyed window, causing segfaults. So the little acrobatics
|
|
36
|
+
# below set up a hook when a Timer's owner is set, and then ensure the
|
|
37
|
+
# timer is stopped when the window is destroyed.
|
|
38
|
+
|
|
39
|
+
# Redefine initialize
|
|
40
|
+
wx_init = self.instance_method(:initialize)
|
|
41
|
+
define_method(:initialize) do | *args |
|
|
42
|
+
setup_owner_destruction_hook(args[0])
|
|
43
|
+
wx_init.bind(self).call(*args)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Redefine set_owner
|
|
47
|
+
wx_set_owner = self.instance_method(:set_owner)
|
|
48
|
+
define_method(:set_owner) do | *args |
|
|
49
|
+
setup_owner_destruction_hook(args[0])
|
|
50
|
+
wx_set_owner.bind(self).call(*args)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
private
|
|
54
|
+
# This method notes in Ruby the ownership of the timer, from both
|
|
55
|
+
# sides, and sets up an event hook if needed for the window's
|
|
56
|
+
# destruction.
|
|
57
|
+
def setup_owner_destruction_hook(new_owner)
|
|
58
|
+
this_timer = self
|
|
59
|
+
|
|
60
|
+
# Class-wide list of global (unowned) timers
|
|
61
|
+
@@__unowned_timers__ ||= []
|
|
62
|
+
|
|
63
|
+
# remove from list of previous owner
|
|
64
|
+
if defined?(@__owner__) and @__owner__
|
|
65
|
+
@__owner__.instance_eval { @__owned_timers__.delete(this_timer) }
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# If becoming global unowned timer, add to list of those timers
|
|
69
|
+
if not new_owner
|
|
70
|
+
@__owner__ = nil
|
|
71
|
+
@@__unowned_timers__ << self
|
|
72
|
+
return
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Otherwise, if previously unowned, remove from global owned
|
|
76
|
+
@@__unowned_timers__.delete(self)
|
|
77
|
+
@__owner__ = new_owner
|
|
78
|
+
|
|
79
|
+
# Then add to list of new owner, setting destructor hook if required
|
|
80
|
+
new_owner.instance_eval do
|
|
81
|
+
if not defined?(@__owned_timers__)
|
|
82
|
+
@__owned_timers__ = []
|
|
83
|
+
unless self.kind_of?(Wx::App) # Don't set up hook on App
|
|
84
|
+
evt_window_destroy do | evt |
|
|
85
|
+
# If it's the owning window being destroyed...
|
|
86
|
+
if evt.get_event_object == self
|
|
87
|
+
@__owned_timers__.each { | timer | timer.stop }
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
@__owned_timers__ << this_timer
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
class Wx::EvtHandler
|
|
98
|
+
# missing from XML docs so we add this here manually
|
|
99
|
+
self.register_event_type EventType[
|
|
100
|
+
'evt_timer', 1,
|
|
101
|
+
Wx::EVT_TIMER,
|
|
102
|
+
Wx::TimerEvent
|
|
103
|
+
] if Wx.const_defined?(:EVT_TIMER)
|
|
104
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# A set of buttons and controls attached to one edge of a Wx::Frame
|
|
2
|
+
class Wx::ToolBar
|
|
3
|
+
# Generic method to add items, supporting positional and named
|
|
4
|
+
# arguments
|
|
5
|
+
ADD_ITEM_PARAMS = [
|
|
6
|
+
Wx::Parameter[ :bitmap2, Wx::NULL_BITMAP ],
|
|
7
|
+
Wx::Parameter[ :position, -1 ],
|
|
8
|
+
Wx::Parameter[ :id, -1 ],
|
|
9
|
+
Wx::Parameter[ :label, "" ],
|
|
10
|
+
Wx::Parameter[ :kind, Wx::ItemKind::ITEM_NORMAL ],
|
|
11
|
+
Wx::Parameter[ :short_help, "" ],
|
|
12
|
+
Wx::Parameter[ :long_help, "" ],
|
|
13
|
+
Wx::Parameter[ :client_data, nil ] ]
|
|
14
|
+
|
|
15
|
+
def add_item(bitmap1, *mixed_args)
|
|
16
|
+
|
|
17
|
+
begin
|
|
18
|
+
args = Wx::args_as_list(ADD_ITEM_PARAMS, *mixed_args)
|
|
19
|
+
rescue => err
|
|
20
|
+
err.set_backtrace(caller)
|
|
21
|
+
Kernel.raise err
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
bitmap2 = args.shift
|
|
25
|
+
|
|
26
|
+
pos = args.shift
|
|
27
|
+
args.insert(2, bitmap1)
|
|
28
|
+
args.insert(3, bitmap2)
|
|
29
|
+
|
|
30
|
+
# Call add_tool to append if default position
|
|
31
|
+
if pos == -1
|
|
32
|
+
add_tool(*args)
|
|
33
|
+
else
|
|
34
|
+
insert_tool(pos, *args)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Hierarchical control with items
|
|
2
|
+
class Wx::TreeCtrl
|
|
3
|
+
# Make these ruby enumerables so find, find_all, map etc are available
|
|
4
|
+
include Enumerable
|
|
5
|
+
# Iterate over all items
|
|
6
|
+
alias :each :traverse
|
|
7
|
+
|
|
8
|
+
# Return the children of +parent+ as an array of TreeItemIDs.
|
|
9
|
+
def get_children(parent)
|
|
10
|
+
kids = []
|
|
11
|
+
kid, _ = get_first_child(parent)
|
|
12
|
+
return [] unless kid.ok?
|
|
13
|
+
kids << kid
|
|
14
|
+
|
|
15
|
+
while kid = get_next_sibling(kids.last) and kid.ok?
|
|
16
|
+
kids << kid
|
|
17
|
+
end
|
|
18
|
+
kids
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Returns a Wx::Rect corresponding to the edges of an individual tree
|
|
22
|
+
# item, including the button, identified by id. The standard wxWidgets
|
|
23
|
+
# API for getting the pixel location of an item is unrubyish, using an
|
|
24
|
+
# input/output parameter. But since the underlying get_bounding_rect
|
|
25
|
+
# method works, it's easier to fix the API in Ruby than adding more to
|
|
26
|
+
# the already-toxic swig interface TreeCtrl.i file.
|
|
27
|
+
def get_item_rect(tree_item_id)
|
|
28
|
+
rect = Wx::Rect.new
|
|
29
|
+
if get_bounding_rect(tree_item_id, rect, false)
|
|
30
|
+
return rect
|
|
31
|
+
else
|
|
32
|
+
return nil
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Returns a Wx::Rect corresponding to the edges of an individual tree
|
|
37
|
+
# item's text label. See above.
|
|
38
|
+
def get_label_rect(tree_item_id)
|
|
39
|
+
rect = Wx::Rect.new
|
|
40
|
+
if get_bounding_rect(tree_item_id, rect, true)
|
|
41
|
+
return rect
|
|
42
|
+
else
|
|
43
|
+
nil
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|