wxruby3 0.9.0.pre.beta.1-x64-mingw-ucrt-3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.wxconfig +17 -0
- data/.yardopts +13 -0
- data/CREDITS.md +52 -0
- data/LICENSE +21 -0
- data/README.md +138 -0
- data/bin/wxruby +9 -0
- data/bin/wxruby.bat +20 -0
- data/ext/mkrf_conf_bingem.rb +18 -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/events/evt_list.rb +143 -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/event.rb +16 -0
- data/lib/wx/core/events/evt_list.rb +1378 -0
- data/lib/wx/core/evthandler.rb +240 -0
- data/lib/wx/core/ext.rb +58 -0
- data/lib/wx/core/font/encoding.rb +113 -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 +105 -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/dc.rb +49 -0
- data/lib/wx/doc/enum.rb +66 -0
- data/lib/wx/doc/evthandler.rb +84 -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/gen/about_dialog_info.rb +315 -0
- data/lib/wx/doc/gen/accelerator.rb +172 -0
- data/lib/wx/doc/gen/accessible.rb +817 -0
- data/lib/wx/doc/gen/animation.rb +253 -0
- data/lib/wx/doc/gen/animation_ctrl.rb +129 -0
- data/lib/wx/doc/gen/any_button.rb +170 -0
- data/lib/wx/doc/gen/app.rb +363 -0
- data/lib/wx/doc/gen/art_provider.rb +497 -0
- data/lib/wx/doc/gen/aui/aui_dock_art.rb +421 -0
- data/lib/wx/doc/gen/aui/aui_floating_frame.rb +39 -0
- data/lib/wx/doc/gen/aui/aui_manager.rb +323 -0
- data/lib/wx/doc/gen/aui/aui_manager_event.rb +112 -0
- data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +163 -0
- data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +46 -0
- data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +109 -0
- data/lib/wx/doc/gen/aui/aui_notebook.rb +329 -0
- data/lib/wx/doc/gen/aui/aui_notebook_event.rb +179 -0
- data/lib/wx/doc/gen/aui/aui_pane_info.rb +665 -0
- data/lib/wx/doc/gen/aui/aui_tab_art.rb +372 -0
- data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +147 -0
- data/lib/wx/doc/gen/aui/aui_tool_bar.rb +437 -0
- data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +272 -0
- data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +195 -0
- data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +224 -0
- data/lib/wx/doc/gen/aui/event_list.rb +162 -0
- data/lib/wx/doc/gen/auto_buffered_paint_dc.rb +47 -0
- data/lib/wx/doc/gen/bitmap.rb +638 -0
- data/lib/wx/doc/gen/bitmap_button.rb +91 -0
- data/lib/wx/doc/gen/book_ctrl_base.rb +240 -0
- data/lib/wx/doc/gen/book_ctrl_event.rb +60 -0
- data/lib/wx/doc/gen/box_sizer.rb +66 -0
- data/lib/wx/doc/gen/brush.rb +219 -0
- data/lib/wx/doc/gen/buffered_dc.rb +95 -0
- data/lib/wx/doc/gen/buffered_paint_dc.rb +55 -0
- data/lib/wx/doc/gen/busy_info.rb +141 -0
- data/lib/wx/doc/gen/button.rb +133 -0
- data/lib/wx/doc/gen/calculate_layout_event.rb +59 -0
- data/lib/wx/doc/gen/calendar_ctrl.rb +236 -0
- data/lib/wx/doc/gen/calendar_date_attr.rb +137 -0
- data/lib/wx/doc/gen/calendar_event.rb +150 -0
- data/lib/wx/doc/gen/caret.rb +99 -0
- data/lib/wx/doc/gen/check_box.rb +145 -0
- data/lib/wx/doc/gen/check_list_box.rb +96 -0
- data/lib/wx/doc/gen/choice.rb +143 -0
- data/lib/wx/doc/gen/choicebook.rb +100 -0
- data/lib/wx/doc/gen/client_dc.rb +49 -0
- data/lib/wx/doc/gen/clipboard.rb +128 -0
- data/lib/wx/doc/gen/collapsible_pane.rb +120 -0
- data/lib/wx/doc/gen/collapsible_pane_event.rb +45 -0
- data/lib/wx/doc/gen/colour.rb +289 -0
- data/lib/wx/doc/gen/colour_data.rb +96 -0
- data/lib/wx/doc/gen/colour_dialog.rb +84 -0
- data/lib/wx/doc/gen/colour_picker_ctrl.rb +89 -0
- data/lib/wx/doc/gen/colour_picker_event.rb +74 -0
- data/lib/wx/doc/gen/combo_box.rb +228 -0
- data/lib/wx/doc/gen/context_help_button.rb +34 -0
- data/lib/wx/doc/gen/control.rb +245 -0
- data/lib/wx/doc/gen/control_with_items.rb +339 -0
- data/lib/wx/doc/gen/core.rb +42 -0
- data/lib/wx/doc/gen/cursor.rb +127 -0
- data/lib/wx/doc/gen/data_format.rb +94 -0
- data/lib/wx/doc/gen/data_object.rb +439 -0
- data/lib/wx/doc/gen/date_event.rb +48 -0
- data/lib/wx/doc/gen/date_picker_ctrl.rb +127 -0
- data/lib/wx/doc/gen/dc.rb +1278 -0
- data/lib/wx/doc/gen/defs.rb +2832 -0
- data/lib/wx/doc/gen/dialog.rb +426 -0
- data/lib/wx/doc/gen/dir_dialog.rb +134 -0
- data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +80 -0
- data/lib/wx/doc/gen/dir_picker_ctrl.rb +103 -0
- data/lib/wx/doc/gen/drag_drop.rb +292 -0
- data/lib/wx/doc/gen/drag_image.rb +123 -0
- data/lib/wx/doc/gen/editable_list_box.rb +89 -0
- data/lib/wx/doc/gen/event.rb +911 -0
- data/lib/wx/doc/gen/event_list.rb +1512 -0
- data/lib/wx/doc/gen/events.rb +2499 -0
- data/lib/wx/doc/gen/evt_handler.rb +224 -0
- data/lib/wx/doc/gen/ext_help_controller.rb +100 -0
- data/lib/wx/doc/gen/file_dialog.rb +294 -0
- data/lib/wx/doc/gen/file_dir_picker_event.rb +98 -0
- data/lib/wx/doc/gen/file_picker_ctrl.rb +107 -0
- data/lib/wx/doc/gen/find_dialog_event.rb +119 -0
- data/lib/wx/doc/gen/find_replace_data.rb +59 -0
- data/lib/wx/doc/gen/find_replace_dialog.rb +44 -0
- data/lib/wx/doc/gen/flex_grid_sizer.rb +145 -0
- data/lib/wx/doc/gen/font.rb +1282 -0
- data/lib/wx/doc/gen/font_data.rb +132 -0
- data/lib/wx/doc/gen/font_dialog.rb +71 -0
- data/lib/wx/doc/gen/font_picker_ctrl.rb +120 -0
- data/lib/wx/doc/gen/font_picker_event.rb +64 -0
- data/lib/wx/doc/gen/frame.rb +276 -0
- data/lib/wx/doc/gen/fs_file.rb +269 -0
- data/lib/wx/doc/gen/functions.rb +10 -0
- data/lib/wx/doc/gen/gauge.rb +127 -0
- data/lib/wx/doc/gen/gb_sizer_item.rb +78 -0
- data/lib/wx/doc/gen/gcdc.rb +61 -0
- data/lib/wx/doc/gen/gdi_common.rb +1108 -0
- data/lib/wx/doc/gen/gdi_object.rb +29 -0
- data/lib/wx/doc/gen/generic_dir_ctrl.rb +198 -0
- data/lib/wx/doc/gen/graphics_context.rb +764 -0
- data/lib/wx/doc/gen/graphics_object.rb +494 -0
- data/lib/wx/doc/gen/grid/event_list.rb +173 -0
- data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +33 -0
- data/lib/wx/doc/gen/grid/grid_cell_attr.rb +279 -0
- data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +31 -0
- data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +32 -0
- data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +44 -0
- data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +31 -0
- data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +48 -0
- data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +33 -0
- data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +40 -0
- data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +35 -0
- data/lib/wx/doc/gen/grid/grid_cell_editor.rb +181 -0
- data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +34 -0
- data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +39 -0
- data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +41 -0
- data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +74 -0
- data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +41 -0
- data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +31 -0
- data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +98 -0
- data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +31 -0
- data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +45 -0
- data/lib/wx/doc/gen/grid/grid_ctrl.rb +2381 -0
- data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +87 -0
- data/lib/wx/doc/gen/grid/grid_event.rb +96 -0
- data/lib/wx/doc/gen/grid/grid_range_select_event.rb +96 -0
- data/lib/wx/doc/gen/grid/grid_size_event.rb +71 -0
- data/lib/wx/doc/gen/grid/grid_string_table.rb +130 -0
- data/lib/wx/doc/gen/grid/grid_table_base.rb +288 -0
- data/lib/wx/doc/gen/grid/grid_table_message.rb +73 -0
- data/lib/wx/doc/gen/grid_bag_sizer.rb +298 -0
- data/lib/wx/doc/gen/grid_sizer.rb +135 -0
- data/lib/wx/doc/gen/help_controller.rb +136 -0
- data/lib/wx/doc/gen/help_provider.rb +80 -0
- data/lib/wx/doc/gen/html/event_list.rb +46 -0
- data/lib/wx/doc/gen/html/html_cell.rb +441 -0
- data/lib/wx/doc/gen/html/html_cell_event.rb +62 -0
- data/lib/wx/doc/gen/html/html_easy_printing.rb +169 -0
- data/lib/wx/doc/gen/html/html_help_controller.rb +256 -0
- data/lib/wx/doc/gen/html/html_help_data.rb +144 -0
- data/lib/wx/doc/gen/html/html_help_frame.rb +112 -0
- data/lib/wx/doc/gen/html/html_help_window.rb +230 -0
- data/lib/wx/doc/gen/html/html_link_event.rb +36 -0
- data/lib/wx/doc/gen/html/html_list_box.rb +150 -0
- data/lib/wx/doc/gen/html/html_printout.rb +87 -0
- data/lib/wx/doc/gen/html/html_window.rb +386 -0
- data/lib/wx/doc/gen/icon.rb +267 -0
- data/lib/wx/doc/gen/icon_location.rb +38 -0
- data/lib/wx/doc/gen/image.rb +1144 -0
- data/lib/wx/doc/gen/image_list.rb +181 -0
- data/lib/wx/doc/gen/keyboard_state.rb +124 -0
- data/lib/wx/doc/gen/list_box.rb +260 -0
- data/lib/wx/doc/gen/list_ctrl.rb +1542 -0
- data/lib/wx/doc/gen/list_event.rb +177 -0
- data/lib/wx/doc/gen/listbook.rb +100 -0
- data/lib/wx/doc/gen/locale.rb +4143 -0
- data/lib/wx/doc/gen/log.rb +505 -0
- data/lib/wx/doc/gen/mdi_client_window.rb +38 -0
- data/lib/wx/doc/gen/mdi_frame.rb +235 -0
- data/lib/wx/doc/gen/media_ctrl.rb +225 -0
- data/lib/wx/doc/gen/media_event.rb +109 -0
- data/lib/wx/doc/gen/memory_dc.rb +95 -0
- data/lib/wx/doc/gen/menu.rb +493 -0
- data/lib/wx/doc/gen/menu_bar.rb +247 -0
- data/lib/wx/doc/gen/menu_item.rb +333 -0
- data/lib/wx/doc/gen/message_dialog.rb +195 -0
- data/lib/wx/doc/gen/mini_frame.rb +72 -0
- data/lib/wx/doc/gen/mirror_dc.rb +29 -0
- data/lib/wx/doc/gen/mouse_state.rb +108 -0
- data/lib/wx/doc/gen/multi_choice_dialog.rb +58 -0
- data/lib/wx/doc/gen/non_owned_window.rb +46 -0
- data/lib/wx/doc/gen/notebook.rb +220 -0
- data/lib/wx/doc/gen/number_entry_dialog.rb +75 -0
- data/lib/wx/doc/gen/object.rb +69 -0
- data/lib/wx/doc/gen/paint_dc.rb +34 -0
- data/lib/wx/doc/gen/palette.rb +90 -0
- data/lib/wx/doc/gen/panel.rb +96 -0
- data/lib/wx/doc/gen/pen.rb +484 -0
- data/lib/wx/doc/gen/pg/event_list.rb +102 -0
- data/lib/wx/doc/gen/pg/numeric_property_validator.rb +47 -0
- data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +295 -0
- data/lib/wx/doc/gen/pg/pg_cell.rb +166 -0
- data/lib/wx/doc/gen/pg/pg_editor.rb +569 -0
- data/lib/wx/doc/gen/pg/pg_multi_button.rb +161 -0
- data/lib/wx/doc/gen/pg/pg_properties.rb +2193 -0
- data/lib/wx/doc/gen/pg/pg_property.rb +1852 -0
- data/lib/wx/doc/gen/pg/pg_validation_info.rb +327 -0
- data/lib/wx/doc/gen/pg/property_grid.rb +619 -0
- data/lib/wx/doc/gen/pg/property_grid_event.rb +135 -0
- data/lib/wx/doc/gen/pg/property_grid_interface.rb +847 -0
- data/lib/wx/doc/gen/pg/property_grid_manager.rb +349 -0
- data/lib/wx/doc/gen/pg/property_grid_page.rb +265 -0
- data/lib/wx/doc/gen/pg/property_grid_page_state.rb +155 -0
- data/lib/wx/doc/gen/picker_base.rb +143 -0
- data/lib/wx/doc/gen/platform_info.rb +379 -0
- data/lib/wx/doc/gen/popup_window.rb +93 -0
- data/lib/wx/doc/gen/progress_dialog.rb +106 -0
- data/lib/wx/doc/gen/property_sheet_dialog.rb +185 -0
- data/lib/wx/doc/gen/prt/event_list.rb +13 -0
- data/lib/wx/doc/gen/prt/page_setup_dialog.rb +38 -0
- data/lib/wx/doc/gen/prt/post_script_dc.rb +32 -0
- data/lib/wx/doc/gen/prt/preview_frame.rb +39 -0
- data/lib/wx/doc/gen/prt/print_abort_dialog.rb +127 -0
- data/lib/wx/doc/gen/prt/print_data.rb +598 -0
- data/lib/wx/doc/gen/prt/print_dialog.rb +47 -0
- data/lib/wx/doc/gen/prt/printer.rb +428 -0
- data/lib/wx/doc/gen/prt/printer_dc.rb +35 -0
- data/lib/wx/doc/gen/query_layout_info_event.rb +98 -0
- data/lib/wx/doc/gen/radio_box.rb +258 -0
- data/lib/wx/doc/gen/radio_button.rb +128 -0
- data/lib/wx/doc/gen/rbn/event_list.rb +132 -0
- data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1652 -0
- data/lib/wx/doc/gen/rbn/ribbon_bar.rb +227 -0
- data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +40 -0
- data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +400 -0
- data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +58 -0
- data/lib/wx/doc/gen/rbn/ribbon_control.rb +116 -0
- data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +208 -0
- data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +51 -0
- data/lib/wx/doc/gen/rbn/ribbon_page.rb +129 -0
- data/lib/wx/doc/gen/rbn/ribbon_panel.rb +232 -0
- data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +41 -0
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +321 -0
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +36 -0
- data/lib/wx/doc/gen/region.rb +299 -0
- data/lib/wx/doc/gen/rtc/event_list.rb +121 -0
- data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +2052 -0
- data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2031 -0
- data/lib/wx/doc/gen/rtc/rich_text_event.rb +146 -0
- data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +171 -0
- data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +180 -0
- data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +104 -0
- data/lib/wx/doc/gen/rtc/rich_text_printing.rb +241 -0
- data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +55 -0
- data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +153 -0
- data/lib/wx/doc/gen/sash_event.rb +133 -0
- data/lib/wx/doc/gen/sash_layout_window.rb +203 -0
- data/lib/wx/doc/gen/sash_window.rb +154 -0
- data/lib/wx/doc/gen/screen_dc.rb +27 -0
- data/lib/wx/doc/gen/scrolled_canvas.rb +317 -0
- data/lib/wx/doc/gen/scrolled_control.rb +317 -0
- data/lib/wx/doc/gen/scrolled_window.rb +337 -0
- data/lib/wx/doc/gen/simplebook.rb +93 -0
- data/lib/wx/doc/gen/single_choice_dialog.rb +74 -0
- data/lib/wx/doc/gen/sizer.rb +847 -0
- data/lib/wx/doc/gen/sizer_item.rb +227 -0
- data/lib/wx/doc/gen/slider.rb +316 -0
- data/lib/wx/doc/gen/spin_button.rb +124 -0
- data/lib/wx/doc/gen/spin_ctrl.rb +170 -0
- data/lib/wx/doc/gen/spin_event.rb +47 -0
- data/lib/wx/doc/gen/splash_screen.rb +83 -0
- data/lib/wx/doc/gen/splitter_event.rb +87 -0
- data/lib/wx/doc/gen/splitter_window.rb +357 -0
- data/lib/wx/doc/gen/static_bitmap.rb +126 -0
- data/lib/wx/doc/gen/static_box.rb +123 -0
- data/lib/wx/doc/gen/static_box_sizer.rb +67 -0
- data/lib/wx/doc/gen/static_line.rb +66 -0
- data/lib/wx/doc/gen/static_text.rb +98 -0
- data/lib/wx/doc/gen/status_bar.rb +203 -0
- data/lib/wx/doc/gen/stc/event_list.rb +217 -0
- data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4000 -0
- data/lib/wx/doc/gen/stc/styled_text_event.rb +7319 -0
- data/lib/wx/doc/gen/std_dialog_button_sizer.rb +74 -0
- data/lib/wx/doc/gen/svg_file_dc.rb +153 -0
- data/lib/wx/doc/gen/system_options.rb +109 -0
- data/lib/wx/doc/gen/system_settings.rb +481 -0
- data/lib/wx/doc/gen/task_bar_icon.rb +94 -0
- data/lib/wx/doc/gen/task_bar_icon_event.rb +86 -0
- data/lib/wx/doc/gen/text_attr.rb +645 -0
- data/lib/wx/doc/gen/text_ctrl.rb +841 -0
- data/lib/wx/doc/gen/text_entry.rb +389 -0
- data/lib/wx/doc/gen/text_entry_dialog.rb +170 -0
- data/lib/wx/doc/gen/text_validator.rb +212 -0
- data/lib/wx/doc/gen/time_picker_ctrl.rb +103 -0
- data/lib/wx/doc/gen/timer.rb +103 -0
- data/lib/wx/doc/gen/timer_event.rb +73 -0
- data/lib/wx/doc/gen/tip_provider.rb +60 -0
- data/lib/wx/doc/gen/toggle_button.rb +84 -0
- data/lib/wx/doc/gen/tool_bar.rb +744 -0
- data/lib/wx/doc/gen/tool_tip.rb +73 -0
- data/lib/wx/doc/gen/toolbook.rb +103 -0
- data/lib/wx/doc/gen/top_level_window.rb +462 -0
- data/lib/wx/doc/gen/tree_ctrl.rb +863 -0
- data/lib/wx/doc/gen/tree_event.rb +101 -0
- data/lib/wx/doc/gen/treebook.rb +154 -0
- data/lib/wx/doc/gen/utils.rb +257 -0
- data/lib/wx/doc/gen/v_list_box.rb +224 -0
- data/lib/wx/doc/gen/v_scrolled_window.rb +224 -0
- data/lib/wx/doc/gen/validator.rb +73 -0
- data/lib/wx/doc/gen/variant.rb +340 -0
- data/lib/wx/doc/gen/window.rb +2414 -0
- data/lib/wx/doc/gen/window_dc.rb +35 -0
- data/lib/wx/doc/gen/window_disabler.rb +24 -0
- data/lib/wx/doc/gen/with_images.rb +73 -0
- data/lib/wx/doc/gen/wizard.rb +197 -0
- data/lib/wx/doc/gen/wizard_event.rb +105 -0
- data/lib/wx/doc/gen/wizard_page.rb +61 -0
- data/lib/wx/doc/gen/wizard_page_simple.rb +72 -0
- data/lib/wx/doc/gen/xml_node.rb +282 -0
- data/lib/wx/doc/gen/xml_resource.rb +304 -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/events/evt_list.rb +156 -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/events/evt_list.rb +37 -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/evt_list.rb +73 -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 +26 -0
- data/lib/wx/pg/property_grid.rb +56 -0
- data/lib/wx/pg/property_grid_interface.rb +33 -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/evt_list.rb +102 -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/events/evt_list.rb +98 -0
- data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -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/events/evt_list.rb +178 -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/lib/wxruby_aui.so +0 -0
- data/lib/wxruby_core.so +0 -0
- data/lib/wxruby_grid.so +0 -0
- data/lib/wxruby_html.so +0 -0
- data/lib/wxruby_pg.so +0 -0
- data/lib/wxruby_prt.so +0 -0
- data/lib/wxruby_rbn.so +0 -0
- data/lib/wxruby_rtc.so +0 -0
- data/lib/wxruby_stc.so +0 -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/ext/enum_chain.rb +22 -0
- data/rakelib/prepost.rake +91 -0
- data/rakelib/prepost.rb +26 -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/controls.rb +1143 -0
- data/samples/controls/get_item_sample.rb +117 -0
- data/samples/controls/icons/choice.xpm +27 -0
- data/samples/controls/icons/combo.xpm +27 -0
- data/samples/controls/icons/gauge.xpm +27 -0
- data/samples/controls/icons/list.xpm +27 -0
- data/samples/controls/icons/radio.xpm +27 -0
- data/samples/controls/icons/stattext.xpm +24 -0
- data/samples/controls/icons/text.xpm +27 -0
- data/samples/controls/mondrian.ico +0 -0
- data/samples/controls/mondrian.xpm +44 -0
- data/samples/controls/test2.bmp +0 -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 +2707 -0
- data/samples/propgrid/propgrid_minimal.rb +106 -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 +534 -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 +337 -0
- data/samples/sampler/stc_editor.rb +326 -0
- data/samples/sampler/txt_editor.rb +135 -0
- data/samples/sampler/undo.xpm +58 -0
- data/samples/sampler.rb +401 -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 +912 -0
data/lib/wx/doc/dc.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
|
2
|
+
class Wx::DC
|
3
|
+
|
4
|
+
# Provides similar functionality like wxDCBrushChanger setting the given brush as the active
|
5
|
+
# brush for the DC for the duration of the block execution restoring the previous brush afterwards.
|
6
|
+
# @param [Wx::Brush] brush new brush to use during block execution
|
7
|
+
# @return [void]
|
8
|
+
# @yieldparam [Wx::DC] dc the DC (self)
|
9
|
+
def with_brush(brush) end
|
10
|
+
|
11
|
+
# Provides similar functionality like wxDCPenChanger setting the given pen as the active
|
12
|
+
# pen for the DC for the duration of the block execution restoring the previous pen afterwards.
|
13
|
+
# @param [Wx::Pen] pen new pen to use during block execution
|
14
|
+
# @return [void]
|
15
|
+
# @yieldparam [Wx::DC] dc the DC (self)
|
16
|
+
def with_pen(pen) end
|
17
|
+
|
18
|
+
# Provides similar functionality like wxDCFontChanger setting the given font as the active
|
19
|
+
# font for the DC for the duration of the block execution restoring the previous font afterwards.
|
20
|
+
# @param [Wx::Font] font new font to use during block execution
|
21
|
+
# @return [void]
|
22
|
+
# @yieldparam [Wx::DC] dc the DC (self)
|
23
|
+
def with_font(font) end
|
24
|
+
|
25
|
+
# Provides similar functionality like wxDCTextColourChanger setting the given colour as the active
|
26
|
+
# text foreground colour for the DC for the duration of the block execution restoring the previous colour afterwards.
|
27
|
+
# @param [Wx::Colour] clr new colour to use during block execution
|
28
|
+
# @return [void]
|
29
|
+
# @yieldparam [Wx::DC] dc the DC (self)
|
30
|
+
def with_text_foreground(clr) end
|
31
|
+
alias :with_text_fg :with_text_foreground
|
32
|
+
|
33
|
+
# Provides similar functionality like wxDCTextBgColourChanger setting the given colour as the active
|
34
|
+
# text background colour for the DC for the duration of the block execution restoring the previous colour afterwards.
|
35
|
+
# @param [Wx::Colour] clr new colour to use during block execution
|
36
|
+
# @return [void]
|
37
|
+
# @yieldparam [Wx::DC] dc the DC (self)
|
38
|
+
def with_text_background(clr) end
|
39
|
+
alias :with_text_bg :with_text_background
|
40
|
+
|
41
|
+
# Provides similar functionality like wxDCTextBgModeChanger setting the given mode as the active
|
42
|
+
# background mode for the DC for the duration of the block execution restoring the previous mode afterwards.
|
43
|
+
# @param [Integer] mode new mode to use during block execution
|
44
|
+
# @return [void]
|
45
|
+
# @yieldparam [Wx::DC] dc the DC (self)
|
46
|
+
def with_background_mode(mode) end
|
47
|
+
alias :with_bg_mode :with_background_mode
|
48
|
+
|
49
|
+
end
|
data/lib/wx/doc/enum.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
###
|
2
|
+
# wxRuby3 Enum class
|
3
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
4
|
+
###
|
5
|
+
|
6
|
+
|
7
|
+
module Wx
|
8
|
+
|
9
|
+
# Base class for typed enums.
|
10
|
+
# Derives from Numeric and behaves as such in math operations but provides
|
11
|
+
# type safety for arguments requiring the specific enum class.
|
12
|
+
class Enum < Numeric
|
13
|
+
|
14
|
+
# Initialize a new enum value.
|
15
|
+
# @param [Integer] val enum integer value
|
16
|
+
def initialize(val)end
|
17
|
+
|
18
|
+
# Coerces enum value to be compatible with other if possible. Raises TypeError if not compatible.
|
19
|
+
# @param [Numeric] other numeric value
|
20
|
+
# @return [Array<Integer, Integer>] the integer equivalences of other and enum value
|
21
|
+
def coerce(other) end
|
22
|
+
|
23
|
+
# Returns true.
|
24
|
+
def integer?; end
|
25
|
+
|
26
|
+
# Returns false.
|
27
|
+
def real?; end
|
28
|
+
|
29
|
+
# Redirects to the @value member attribute for any missing methods.
|
30
|
+
def method_missing(sym, *args) end
|
31
|
+
|
32
|
+
# Checks type and value equality.
|
33
|
+
# @param [Object] o the object to compare
|
34
|
+
# @return [true,false] true if o is instance of same enum class as self **and** integer values are equal; false otherwise
|
35
|
+
def eql?(o) end
|
36
|
+
|
37
|
+
# Compares integer values if possible. Raises ArgumentError if not compatible
|
38
|
+
# @param [Enum,Numeric] o enum or numeric object to compare.
|
39
|
+
# @return [-1,0,1]
|
40
|
+
def <=>(o) end
|
41
|
+
|
42
|
+
# Return next integer value from enum's value.
|
43
|
+
# @return [Integer] next integer value
|
44
|
+
def succ; end
|
45
|
+
|
46
|
+
# Return string representation.
|
47
|
+
def inspect; end
|
48
|
+
|
49
|
+
# Return integer value of enum
|
50
|
+
def to_int; end
|
51
|
+
alias :to_i :to_int
|
52
|
+
|
53
|
+
# Create a new class and associated enum values.
|
54
|
+
# @param [String,Symbol] name name of new enum class
|
55
|
+
# @param [Hash] enum_values hash with enum value name and enum integer value pairs
|
56
|
+
# @return [Class] new enum class
|
57
|
+
def self.create(name, enum_values) end
|
58
|
+
|
59
|
+
# Returns enum class matching name or nil.
|
60
|
+
# @param [String,Symbol] name name of enum class
|
61
|
+
# @return [Class,nil] enum class
|
62
|
+
def self.[](name) end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# Additional event handler methods documentation stubs.
|
2
|
+
|
3
|
+
|
4
|
+
class Wx::EvtHandler
|
5
|
+
|
6
|
+
# Public method to register the mapping of a custom event type
|
7
|
+
# +konstant+ (which should be a unique integer; one will be created if
|
8
|
+
# not supplied) to a custom event class +klass+. If +meth+ and +arity+
|
9
|
+
# are given, a convenience evt_handler method called +meth+ will be
|
10
|
+
# created, which accepts +arity+ arguments (specify both or neither).
|
11
|
+
# @param klass [Class] event class
|
12
|
+
# @param konstant [Integer] unique event type id (if nil a unique value will be autogenerated)
|
13
|
+
# @param meth [String,Symbol] optional event handler method name
|
14
|
+
# @param arity [Integer] event handler method arity (should be 0, 1 or 2 if not nil)
|
15
|
+
# @return [Integer] unique event type id
|
16
|
+
def self.register_class(klass, konstant = nil, meth = nil, arity = nil) end
|
17
|
+
|
18
|
+
def connect(first_id, last_id, evt_type, handler) end
|
19
|
+
|
20
|
+
def disconnect(first_id, last_id, evt_spec) end
|
21
|
+
|
22
|
+
# Processes an event, searching event tables and calling zero or more suitable event handler function(s).
|
23
|
+
#
|
24
|
+
# Normally, your application would not call this function: it is called in the wxWidgets implementation to
|
25
|
+
# dispatch incoming user interface events to the framework (and application).
|
26
|
+
#
|
27
|
+
# However, you might need to call it if implementing new functionality (such as a new control) where you
|
28
|
+
# define new event types, as opposed to allowing the user to override virtual functions.
|
29
|
+
#
|
30
|
+
# In wxRuby this method can not be effectively overridden.
|
31
|
+
# In order to override default event processing define a try_before(event) or try_after(event) method
|
32
|
+
# as member of a derived EvtHandler class.
|
33
|
+
#
|
34
|
+
# The normal order of event table searching is as follows:
|
35
|
+
#
|
36
|
+
# 1. {Wx::App#filter_event} is called. If it returns anything but -1 (default) the processing stops here.
|
37
|
+
# 2. #try_before (if it exists, otherwise the C++ default implementation) is called (this is where {Wx::Validator} are taken into account for {Wx::Window} objects). If this returns true, the function exits.
|
38
|
+
# 3. If the object is disabled (via a call to {Wx::EvtHandler#set_evt_handler_enabled}) the function skips to step (7).
|
39
|
+
# 4. Dynamic event table of the handlers bound using Bind<>() is searched in the most-recently-bound to the most-early-bound order. If a handler is found, it is executed and the function returns true unless the handler used {Wx::Event#skip} to indicate that it didn't handle the event in which case the search continues.
|
40
|
+
# 5. Static events table of the handlers bound using event table macros is searched for this event handler in the order of appearance of event table macros in the source code. If this fails, the base class event table is tried, and so on until no more tables exist or an appropriate function was found. If a handler is found, the same logic as in the previous step applies.
|
41
|
+
# 6. The search is applied down the entire chain of event handlers (usually the chain has a length of one). This chain can be formed using {Wx::EvtHandler#set_next_handler}
|
42
|
+
# Note that in the case of Wx::Window you can build a stack of event handlers (see {Wx::Window#push_event_handler} for more info). If any of the handlers of the chain return true, the function exits.
|
43
|
+
# 7. #try_after (if it exists, otherwise the C++ default implementation) is called: for the {Wx::Window} object this may propagate the event to the window parent (recursively). If the event is still not processed, {#process_event} on the {Wx::THE_APP} object is called as the last step.
|
44
|
+
#
|
45
|
+
# Notice that steps (2)-(6) are performed in {#process_event_locally} which is called by this function.
|
46
|
+
#
|
47
|
+
# @param event [Wx::Event] Event to process.
|
48
|
+
# @return [true,false] true if event has been processed
|
49
|
+
def process_event(event) end
|
50
|
+
|
51
|
+
# Process a command, supplying the window identifier, command event identifier, and member function or proc.
|
52
|
+
# @param [Integer] id window identifier
|
53
|
+
# @param [Integer] evt_id event type identifier
|
54
|
+
# @param [String,Symbol,Method,Proc] meth (name of) method or event handling proc
|
55
|
+
# @yieldparam [Wx::CommandEvent] event event to handle
|
56
|
+
def evt_command(id, evt_id, meth = nil, &block) end
|
57
|
+
|
58
|
+
# Process a command for a range of window identifiers, supplying the minimum and maximum window identifiers, command event identifier, and member function or proc.
|
59
|
+
# @param [Integer] id1 minimum window identifier
|
60
|
+
# @param [Integer] id2 maximum window identifier
|
61
|
+
# @param [Integer] evt_id event type identifier
|
62
|
+
# @param [String,Symbol,Method,Proc] meth (name of) method or event handling proc
|
63
|
+
# @yieldparam [Wx::CommandEvent] event event to handle
|
64
|
+
def evt_command_range(id1, id2, evt_id, meth = nil, &block) end
|
65
|
+
|
66
|
+
# Convenience evt_handler to listen to all mouse events.
|
67
|
+
# @yieldparam [Wx::MouseEvent] event event to handle
|
68
|
+
def evt_mouse_events(&block) end
|
69
|
+
|
70
|
+
# Convenience evt handler to listen to all scrollwin events.
|
71
|
+
# @yieldparam [Wx::ScrollWinEvent] event event to handle
|
72
|
+
def evt_scrollwin(&block) end
|
73
|
+
|
74
|
+
# Processes Wx::WindowDestroyEvent events.
|
75
|
+
# @yieldparam [Wx::WindowDestroyEvent] event event to handle
|
76
|
+
def evt_window_destroy(&block) end
|
77
|
+
|
78
|
+
# Schedule a call for asynchronous execution (at idle time).
|
79
|
+
# @param meth [Symbol,String,Method,Proc] (name of) method or proc to call
|
80
|
+
# @param args [Array<Object>] optional arguments to pass to the call
|
81
|
+
# @return [void]
|
82
|
+
# @yield [*args] optional arguments
|
83
|
+
def call_after(meth = nil, *args, &block) end
|
84
|
+
end
|
@@ -0,0 +1,154 @@
|
|
1
|
+
<!--
|
2
|
+
# @markup markdown
|
3
|
+
# @title 0. Overview of wxRuby
|
4
|
+
-->
|
5
|
+
|
6
|
+
# 0. Overview of wxRuby
|
7
|
+
|
8
|
+
## What is wxRuby?
|
9
|
+
|
10
|
+
wxRuby3 is a cross-platform GUI library for Ruby, based on the popular [wxWidgets](https://wxwidgets.org)
|
11
|
+
cross platform GUI toolkit for C++. It uses native widgets wherever possible, providing
|
12
|
+
the correct look, feel and behaviour to GUI applications on Windows, OS
|
13
|
+
X and Linux/GTK. wxRuby aims to provide a comprehensive solution to
|
14
|
+
developing professional-standard desktop applications in Ruby.
|
15
|
+
|
16
|
+
Like Ruby and wxWidgets, wxRuby is Open Source, which means that it is free for anyone to use and the source code
|
17
|
+
is available for anyone to look at and use in any way they like. Also, anyone can contribute (tested) fixes, additions
|
18
|
+
and enhancements to the project.
|
19
|
+
|
20
|
+
Like wxWidgets wxRuby is a cross platform toolkit. This means that the same program will run on multiple platforms
|
21
|
+
without modification. Currently Supported platforms are Microsoft Windows and Linux or other
|
22
|
+
unix-like systems with GTK2 or GTK3 libraries. As wxWidgets also has stable releases for Mac OSX and Linux QT platforms
|
23
|
+
it should not be to hard to support these. Contributions to achieve this are appreciated.
|
24
|
+
|
25
|
+
Since the programming language is Ruby, wxRuby programs are simple and easy to write and understand. To accomplish the
|
26
|
+
full Ruby experience wxRuby has not ported the wxWidgets API 1 on 1 to Ruby but has made an effort to make the wxRuby
|
27
|
+
API typically Ruby-ish. This means all method signatures (names, arguments) have been transformed to conform to common
|
28
|
+
Ruby naming rules as well as other Ruby programming practices. Also does wxRuby introduce iterators in favor of getters
|
29
|
+
returning arrays or lists.
|
30
|
+
Check out the samples and the documentation for details.
|
31
|
+
|
32
|
+
## What is wxRuby3?
|
33
|
+
|
34
|
+
The wxRuby3 project is a new, rebooted, implementation of wxRuby (as compared to wxRuby2 and earlier versions) with the
|
35
|
+
clear intent to make this implementation better maintainable and extensible.
|
36
|
+
|
37
|
+
To this end wxRuby3 adopted much of the approach of the wxPython Phoenix project in that the wxRuby API is generated
|
38
|
+
from the wxWidgets XML interface definitions. Unlike the Phoenix project however, wxRuby does not use a home-grown
|
39
|
+
interface code generator but rather still relies on SWIG for that (with Ruby tooling to configure and post-process).
|
40
|
+
The wxRuby generation process more or less conforms to:
|
41
|
+
|
42
|
+
1. build wxWidgets interface XML
|
43
|
+
2. parse interface XML
|
44
|
+
3. generate SWIG interface definitions
|
45
|
+
4. generate Ruby extension code with SWIG
|
46
|
+
5. post-process Ruby extension code
|
47
|
+
|
48
|
+
As the wxRuby tooling is already parsing the full wxWidgets interface specs (from which wxWidgets generates it's own
|
49
|
+
reference documentation) it also uses the parsed information to generate matching reference documentation for the
|
50
|
+
wxRuby API. This documentation is not (yet) perfect but should go a long way in helping people using wxRuby to build
|
51
|
+
GUI applications.
|
52
|
+
|
53
|
+
The wxRuby3 API is largely compatible with the earlier wxRuby incarnations but not 100% mostly due to more
|
54
|
+
modularization and more explicit typing of (especially) enums. Also wxRuby3 exclusively targets a lot more modern
|
55
|
+
versions of wxWidgets (>= 3.2) and Ruby (>= 2.5) so there are some shifts from that as well. All in all though,
|
56
|
+
people that once took a stab at looking at wxRuby(2) should not have much problems getting up to speed again.
|
57
|
+
|
58
|
+
## Quick start
|
59
|
+
|
60
|
+
To create an application with wxRuby you need to require the wxRuby libraries:
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
require 'wx'
|
64
|
+
```
|
65
|
+
|
66
|
+
Next would be the application code and a main entry point. With wxRuby (as with wxWidgets) the entry
|
67
|
+
point is mostly just a simple call to start the applications event loop (as we're talking about event
|
68
|
+
based GUI applications here).
|
69
|
+
In wxRuby the Wx::App class provides some typically Ruby-style magic to make this as easy as possible.
|
70
|
+
|
71
|
+
Using this the simplest Hello World application could be:
|
72
|
+
|
73
|
+
```ruby
|
74
|
+
require 'wx'
|
75
|
+
Wx::App.run { puts 'Hello world!' }
|
76
|
+
```
|
77
|
+
|
78
|
+
As you can there is no obligation to create an instance of the Wx::App class in wxRuby for
|
79
|
+
(admittedly extremely) simple applications. Calling the #run class method with a block will suffice.<br>
|
80
|
+
The class method will create an instance of the generic Wx::App class under the hood and use the
|
81
|
+
provided block as the #on_init callback. As the code inside the block returns a false-type value (#puts
|
82
|
+
returns `nil`) the application will terminate immediately after writing "Hello world!" to standard
|
83
|
+
output (actually not even starting the event loop at all).
|
84
|
+
|
85
|
+
Of course this is not truly a GUI application so let's elaborate a little to make the GUI element
|
86
|
+
more real.
|
87
|
+
|
88
|
+
```ruby
|
89
|
+
require 'wx'
|
90
|
+
Wx::App.run { Wx::Frame.new(nil, title: 'Hello World!').show }
|
91
|
+
```
|
92
|
+
|
93
|
+
Executing this will create a generic Frame instance in the on_init callback of the application
|
94
|
+
and show the frame. As #show returns a true-type when successful the event loop will actually be
|
95
|
+
started and keep the application running until the frame is closed.
|
96
|
+
|
97
|
+
## The application class
|
98
|
+
|
99
|
+
For more complex applications the approach demonstrated above will quickly become insufficient. In those cases
|
100
|
+
creating a specialized derived App class is the better option.
|
101
|
+
This provides the possibility (as with all Ruby classes) to override the constructor (#initialize) for
|
102
|
+
custom initialization, attribute definitions and create customized #on_init and/or #on_exit methods like
|
103
|
+
this:
|
104
|
+
|
105
|
+
```ruby
|
106
|
+
require 'wx'
|
107
|
+
|
108
|
+
class MyApp < Wx::App
|
109
|
+
def initialize
|
110
|
+
super
|
111
|
+
@frame = nil
|
112
|
+
end
|
113
|
+
attr_reader :frame
|
114
|
+
|
115
|
+
def on_init
|
116
|
+
@frame = Wx::Frame.new(nil, title: 'Hello World!')
|
117
|
+
@frame.show
|
118
|
+
end
|
119
|
+
|
120
|
+
def on_exit
|
121
|
+
puts 'Exiting.'
|
122
|
+
end
|
123
|
+
end
|
124
|
+
```
|
125
|
+
|
126
|
+
When creating #on_init/#on_exit methods it is important to understand that those would not be overrides (as is the case
|
127
|
+
with wxWidgets itself). The base Wx::App class actually does not define these methods so it's also not needed (even not possible)
|
128
|
+
to call `super` in the implementation. The wxRuby application class implementation will call the wxWidget OnInit base implementation
|
129
|
+
itself and after successful completion check for the existence of an #on_init method (which could also be 'automagicallly'
|
130
|
+
created from a block passed to #run) and call that if available or terminate the application if not. For the
|
131
|
+
exit sequence to executions are similar but reversed (first a possible #on_exit method and than the wxWidgets base OnExit).
|
132
|
+
|
133
|
+
What remains though is that for a derived application class it is still not necessary to explicitly create a class instance.
|
134
|
+
Simply calling the #run class method will suffice.
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
MyApp.run
|
138
|
+
```
|
139
|
+
|
140
|
+
The current application instance (as long as the application is active) can always be retrieved by
|
141
|
+
calling `Wx.get_app`.
|
142
|
+
|
143
|
+
## wxRuby modules
|
144
|
+
|
145
|
+
The toplevel module of the wxRuby library is the `Wx` module and when using `require 'wx'` to load the wxRuby library
|
146
|
+
**all** constants and classes are loaded and can be accessed from that scope like `Wx::Frame` or `Wx::RichTextCtrl`
|
147
|
+
like previous versions of wxRuby supported.
|
148
|
+
|
149
|
+
With the current wxRuby library however a more modular approach has been used similar to wxWidgets itself which
|
150
|
+
distributes implementations over various sub-modules. These sub-modules can be loaded separately to provide more control.
|
151
|
+
The core module still provides the toplevel `Wx` namespace and all classes and constants declared in that namespace.
|
152
|
+
All other modules add to that (and **all** require the core module).
|
153
|
+
|
154
|
+
See [here](packages.md) for more details on wxRuby sub-modules.
|
@@ -0,0 +1,179 @@
|
|
1
|
+
<!--
|
2
|
+
# @markup markdown
|
3
|
+
# @title 1. wxRuby Modules
|
4
|
+
-->
|
5
|
+
|
6
|
+
# 1. wxRuby Modules
|
7
|
+
|
8
|
+
## Introduction
|
9
|
+
|
10
|
+
Previous wxRuby implementations provided a single toplevel module approach for the wxRuby API with a single loading
|
11
|
+
option. Including `require 'wx'` in any application would load the entire wxRuby library and make all classes, module
|
12
|
+
methods and constants available under the `Wx` toplevel module.
|
13
|
+
|
14
|
+
The wxRuby3 project however implements a more modular approach similar to wxWidgets itself which distributes
|
15
|
+
implementations over various sub-modules. These sub-modules can be loaded separately to provide more control.
|
16
|
+
The core module still provides the toplevel `Wx` namespace and all classes and constants declared in that namespace.
|
17
|
+
All other modules add to that (and **all** require the core module).
|
18
|
+
|
19
|
+
## Loading and Naming scopes
|
20
|
+
|
21
|
+
The *old* **all-in-one** approach in still supported with the wxRuby3 project. Using
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
require 'wx'
|
25
|
+
```
|
26
|
+
|
27
|
+
will load all wxRuby API modules and make all classes and constants available from the `Wx` toplevel module. This
|
28
|
+
*global* naming scope approach does **not** extend to class or module methods (including dialog *functors*; see
|
29
|
+
[here](03_dialogs.md) for more information).
|
30
|
+
|
31
|
+
The *new* sub-module approach however allows for loading only part(s) of the wxRuby library like:
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
require 'wx/core' # load wxRuby core Wx module
|
35
|
+
require 'wx/grid' # load wxRuby Wx::GRID module - provides Grid control
|
36
|
+
require 'wx/rtc' # load wxRuby Wx::RTC module - provides RichText control
|
37
|
+
```
|
38
|
+
|
39
|
+
However, when loading the library like this scoping rules change by default. Specifically the constants and classes
|
40
|
+
from the loaded sub-modules will **not** be accessible from the `Wx` scope anymore (like `Wx::Grid`) but must instead be
|
41
|
+
explicitly scoped from the sub-module (like `Wx::GRID::Grid`).
|
42
|
+
|
43
|
+
It is possible to revert the 'global scope' resolution behaviour by setting the toplevel constant `WX_GLOBAL_CONSTANTS` to
|
44
|
+
`true` before the require statements like:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
WX_GLOBAL_CONSTANTS=true
|
48
|
+
require 'wx/core' # load wxRuby core Wx module
|
49
|
+
require 'wx/grid' # load wxRuby Wx::GRID module - provides Grid control
|
50
|
+
require 'wx/rtc' # load wxRuby Wx::RTC module - provides RichText control
|
51
|
+
```
|
52
|
+
|
53
|
+
## Modules
|
54
|
+
|
55
|
+
Currently the following modules have been implemented.
|
56
|
+
|
57
|
+
### Core
|
58
|
+
|
59
|
+
The core wxRuby package providing the toplevel `Wx` module.
|
60
|
+
This package includes basic classes like:
|
61
|
+
|
62
|
+
- `Wx::Object`
|
63
|
+
- `Wx::EvtHandler`
|
64
|
+
- `Wx::Event`
|
65
|
+
- `Wx::CommandEvent`
|
66
|
+
- `Wx::App`
|
67
|
+
- `Wx::Window`
|
68
|
+
- `Wx::NonOwnedWindow`
|
69
|
+
- `Wx::ToplevelWindow`
|
70
|
+
- `Wx::Frame`
|
71
|
+
- `Wx::Dialog`
|
72
|
+
|
73
|
+
as well as most common window classes, control/widget classes, event classes, constant and enum definitions
|
74
|
+
and global functions not part of any of the other packages.
|
75
|
+
|
76
|
+
### AUI - Advanced User Interface controls and related classes
|
77
|
+
|
78
|
+
The wxRuby AUI package providing the `Wx::AUI` module.
|
79
|
+
This package includes all classes, constants and enum definitions that are considered part of the
|
80
|
+
wxWidgets AUI framework like:
|
81
|
+
|
82
|
+
- `Wx::AUI::AuiManager`
|
83
|
+
- `Wx::AUI::AuiMDIParentFrame`
|
84
|
+
- `Wx::AUI::AuiMDIChildFrame`
|
85
|
+
- `Wx::AUI::AuiMDIClientWindow`
|
86
|
+
- etc
|
87
|
+
|
88
|
+
### GRID - Grid control and related classes
|
89
|
+
|
90
|
+
The wxRuby GRID package providing the `Wx::GRID` module.
|
91
|
+
This package includes all classes, constants and enum definitions that are associated with the
|
92
|
+
wxWidgets wxGrid control like:
|
93
|
+
|
94
|
+
- `Wx::GRID::Grid`
|
95
|
+
- `Wx::GRID::GridTableBase`
|
96
|
+
- `Wx::GRID::GridCellEditor`
|
97
|
+
- `Wx::GRID::GridCellRenderer`
|
98
|
+
- `Wx::GRID::GridEvent`
|
99
|
+
- etc
|
100
|
+
|
101
|
+
### HTML - Html framework classes
|
102
|
+
|
103
|
+
The wxRuby HTML package providing the `Wx::HTML` module.
|
104
|
+
This package includes all classes, constants and enum definitions that are considered part of the
|
105
|
+
wxWidgets Html framework like:
|
106
|
+
|
107
|
+
- `Wx::HTML::HtmlWindow`
|
108
|
+
- `Wx::HTML::HtmlHelpWindow`
|
109
|
+
- `Wx::HTML::HtmlHelpFrame`
|
110
|
+
- `Wx::HTML::HtmlHelpController`
|
111
|
+
- etc
|
112
|
+
|
113
|
+
### PG - PropertyGrid control and related classes
|
114
|
+
|
115
|
+
The wxRuby PG package providing the `Wx::PG` module.
|
116
|
+
This package includes all classes, constants and enum definitions that are associated with the
|
117
|
+
wxWidgets wxPropertyGrid control like:
|
118
|
+
|
119
|
+
- `Wx::PG::PropertyGrid`
|
120
|
+
- `Wx::PG::PropertyGridManager`
|
121
|
+
- `Wx::PG::PGCell`
|
122
|
+
- `Wx::PG::PGProperty`
|
123
|
+
- `Wx::PG::PropertyGridEvent`
|
124
|
+
- etc
|
125
|
+
|
126
|
+
### PRT - Printing framework classes
|
127
|
+
|
128
|
+
The wxRuby PRT package providing the `Wx::PRT` module.
|
129
|
+
This package includes all classes, constants and enum definitions that are considered part of the
|
130
|
+
wxWidgets Printing framework like:
|
131
|
+
|
132
|
+
- `Wx::PRT::PreviewFrame`
|
133
|
+
- `Wx::PRT::Printer`
|
134
|
+
- `Wx::PRT::PrinterDC`
|
135
|
+
- `Wx::PRT::PrintDialog`
|
136
|
+
- etc
|
137
|
+
|
138
|
+
### RBN - Ribbon framework classes
|
139
|
+
|
140
|
+
The wxRuby RBN package providing the `Wx::RBN` module.
|
141
|
+
This package includes all classes, constants and enum definitions that are considered part of the
|
142
|
+
wxWidgets Ribbon framework like:
|
143
|
+
|
144
|
+
- `Wx::RBN::RibbonControl`
|
145
|
+
- `Wx::RBN::RibbonGallery`
|
146
|
+
- `Wx::RBN::RibbonPanel`
|
147
|
+
- `Wx::RBN::RibbonPage`
|
148
|
+
- `Wx::RBN::RibbonBar`
|
149
|
+
- etc
|
150
|
+
|
151
|
+
### RTC - RichText control and related classes
|
152
|
+
|
153
|
+
The wxRuby RTC package providing the `Wx::RTC` module.
|
154
|
+
This package includes all classes, constants and enum definitions that are associated with the
|
155
|
+
wxWidgets wxRichTextCtrl control like:
|
156
|
+
|
157
|
+
- `Wx::RTC::RichTextCtrl`
|
158
|
+
- `Wx::RTC::RichTextEvent`
|
159
|
+
- `Wx::RTC::RichTextBuffer`
|
160
|
+
- etc
|
161
|
+
|
162
|
+
### STC - StyledText control and related classes
|
163
|
+
|
164
|
+
The wxRuby STC package providing the `Wx::STC` module.
|
165
|
+
This package includes all classes, constants and enum definitions that are associated with the
|
166
|
+
wxWidgets wxStyledTextCtrl control (Scintilla integration) like:
|
167
|
+
|
168
|
+
- `Wx::STC::StyledTextCtrl`
|
169
|
+
- `Wx::STC::StyledTextEvent`
|
170
|
+
|
171
|
+
## Feature dependencies
|
172
|
+
|
173
|
+
Availability of wxRuby packages is controlled by the wxWidget feature switches. The default build options will
|
174
|
+
include all platform supported features but in case of building wxRuby for customized wxWidgets builds the wxRuby3
|
175
|
+
build procedures will take the wxWidgets settings into account.
|
176
|
+
|
177
|
+
If for instance wxWidgets was built without Html support (using the configure `--disable-html` switch) the wxRuby
|
178
|
+
HTML package will not be available as well.
|
179
|
+
This behavior is controlled by the `wxUSE_xxx` macros that wxRuby extracts from the wxWidgets `wx/setup.h` file.
|
@@ -0,0 +1,116 @@
|
|
1
|
+
<!--
|
2
|
+
# @markup markdown
|
3
|
+
# @title 2. wxRuby Life Cycles
|
4
|
+
-->
|
5
|
+
|
6
|
+
# 2. wxRuby Life Cycles
|
7
|
+
|
8
|
+
## Introduction
|
9
|
+
|
10
|
+
Managing the life cycles of native objects in Ruby extension libraries is tricky business because of the disparity
|
11
|
+
between common C++ dynamic memory management and the GC management scheme of the Ruby language and this certainly applies
|
12
|
+
to an event based environment like the wxRuby extension for wxWidgets.
|
13
|
+
That said, the wxRuby library should provide you with a fairly worry-free API in that respect.
|
14
|
+
|
15
|
+
The wxRuby extension manages to provide water-tight GC management for just about all mapped wxWidget objects.
|
16
|
+
|
17
|
+
There are just a few, fairly specific, things to take notice of.
|
18
|
+
|
19
|
+
## Application instance
|
20
|
+
|
21
|
+
Any wxWidgets application typically creates a single application instance and the same goes for wxRuby applications.
|
22
|
+
We already saw [here](00_starting.md) how to start a wxRuby application. Important to note is that any reference to the
|
23
|
+
(global) application instance will ever only be valid as long as the application is still active.<br>
|
24
|
+
In essence this means the reference is valid from the moment the constructor (`#initialize`) is called to the moment
|
25
|
+
any available `#on_exit` method has finished.
|
26
|
+
|
27
|
+
There are some caveats to that however.
|
28
|
+
|
29
|
+
1. Although the application instance is valid in the constructor, the wxWidgets
|
30
|
+
framework will only be fully initialized the moment the `#on_init` method starts. This means that all kinds of methods
|
31
|
+
requiring initialized GUI resources (like window creation) will fail if called before that moment.
|
32
|
+
|
33
|
+
2. The global application instance returned by `Wx.get_app` will only be set from the moment the `#on_init` method
|
34
|
+
starts to the moment the `#on_exit` method finishes. Outside that timespan the method will return `nil`.
|
35
|
+
|
36
|
+
Also be careful with storing your own application instance variables. Code like
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
class MyApp < Wx::App
|
40
|
+
def initialize
|
41
|
+
super
|
42
|
+
# ...
|
43
|
+
end
|
44
|
+
def on_init
|
45
|
+
# ...
|
46
|
+
end
|
47
|
+
end
|
48
|
+
$app = MyApp.new
|
49
|
+
$app.run
|
50
|
+
```
|
51
|
+
|
52
|
+
is entirely valid but for the fact that you **should** remember that after the `#run` method returns the `$app` variable
|
53
|
+
does **not** reference a valid application instance anymore. Calling methods on that instance may result in unexpected
|
54
|
+
behavior.<br>
|
55
|
+
It is actually easier and safer to rewrite this code as:
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
class MyApp < Wx::App
|
59
|
+
def initialize
|
60
|
+
super
|
61
|
+
# ...
|
62
|
+
end
|
63
|
+
def on_init
|
64
|
+
# ...
|
65
|
+
end
|
66
|
+
end
|
67
|
+
MyApp.run # or MyApp.new.run
|
68
|
+
```
|
69
|
+
|
70
|
+
This way there is no reference to accidentally use after `#run` returns and `Wx.get_app` will return `nil` after that
|
71
|
+
moment.
|
72
|
+
|
73
|
+
## Framework (re-)initialization
|
74
|
+
|
75
|
+
As mentioned above the wxWidgets GUI framework resources will only be fully initialized after the `#on_init` method
|
76
|
+
starts. Likewise the framework resources will be de-initialized (deleted) after `#on_exit` method ends which means that
|
77
|
+
your application should not attempt to access any of these resources (windows, fonts, colours etc.) after that moment.
|
78
|
+
|
79
|
+
Also, largely because of the way the wxWidgets framework is designed but also because of that way this meshes with Ruby
|
80
|
+
GC, there is no safe way to re-initialize the framework after an application instance ends it run. This means you
|
81
|
+
**cannot** safely attempt to start another application instance after a previous (first) one has ended.
|
82
|
+
|
83
|
+
## Windows
|
84
|
+
|
85
|
+
Window instances (and it's derivatives) are fully managed by the wxWidget framework and cannot (are not) managed by
|
86
|
+
Ruby GC handling. This means on the one hand that a window instances life time is not controlled by any reference
|
87
|
+
a Ruby variable may hold and on the other hand that the Ruby object linked to that native window object is kept alive
|
88
|
+
(marked in GC) as long as the window instance is alive.<br>
|
89
|
+
Generally speaking window lifetimes are dependent on the (toplevel) window (or it's parent) being closed. In case of a
|
90
|
+
toplevel window this result in automatic destruction of the window and all it's child windows (controls). There are
|
91
|
+
however exceptions to this where explicit calling of a window's `#destroy` method is required to prevent memory leaks
|
92
|
+
(when a window is not a child window but also not a toplevel window for example or in case of dialogs; see
|
93
|
+
[here](03_dialogs.md)). Please check out the wxWidgets documentation for more detailed information.
|
94
|
+
|
95
|
+
This has several consequences you need to be aware of.
|
96
|
+
|
97
|
+
First of, in cases where you keep a reference to any window (control) instance in a local or instance variable in Ruby
|
98
|
+
(which is fairly common practice) you need to be aware that the reference is only valid as long as the window has not
|
99
|
+
been destroyed. In most cases this will not be an issue as most references are kept as instance variables of parent
|
100
|
+
windows for child windows where the instance variables will only ever be used as long the parent window is alive itself.
|
101
|
+
In other circumstances you should take care to track the lifetime of the window that is referenced.
|
102
|
+
|
103
|
+
Secondly, as already indicated above not all window instances will be automatically destroyed. It is for example fairly
|
104
|
+
common in more complex applications to create and show other windows as response to events triggered in the toplevel
|
105
|
+
window. These windows will not (and should not) be automatically designated as toplevel window but they are also not
|
106
|
+
owned (i.e. not child windows). Closing these windows will not automatically destroy them (which is a good thing as
|
107
|
+
these are often re-shown after renewed events from the toplevel window) and will also not be automatically destroyed
|
108
|
+
when any parent window is destroyed. This means they pose a threat for potential memory leaks.<br>
|
109
|
+
In case it concerns a fairly simple application which creates one or two of these sub-windows and needs to keep these
|
110
|
+
around for most or all of the lifetime of the application this is not really an issue as the window will be cleaned up
|
111
|
+
at application exit eventually. If however it concerns a more complex application which potentially could create a large
|
112
|
+
number of these sub windows (probably each only used for limited purposes) it would be advisable to track instances and
|
113
|
+
destroy these on a regular basis when not used (closed) possibly re-creating them as needed.
|
114
|
+
|
115
|
+
Dialogs are special cases of toplevel windows which are not automatically destroyed when closed. The wxRuby library
|
116
|
+
therefor provides special support to ease handling the destruction of these. See [here](03_dialogs.md) for more details.
|