wxruby3 0.9.0.pre.beta.2-x64-mingw-ucrt-3.2-3.2.2
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/.wxconfig +17 -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/bin/wxruby.bat +20 -0
- data/ext/mkrf_conf_bingem.rb +18 -0
- data/ext/wxbase32u_gcc_custom.dll +0 -0
- data/ext/wxbase32u_net_gcc_custom.dll +0 -0
- data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
- data/ext/wxmsw32u_xrc_gcc_custom.dll +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/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 +928 -0
@@ -0,0 +1,1720 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
|
3
|
+
# Adapted for wxRuby3
|
4
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
5
|
+
###
|
6
|
+
|
7
|
+
require 'wx'
|
8
|
+
|
9
|
+
# This sample shows off the features of the TreeCtrl widget. The actual
|
10
|
+
# features vary somewhat across platforms; for example, the button
|
11
|
+
# styles and connecting lines between items are not available on OS X.
|
12
|
+
# Also, some items remain to be implemented - for example, setting item
|
13
|
+
# icons and item data.
|
14
|
+
|
15
|
+
# Just some event ids for the numerous menu items
|
16
|
+
TreeTest_TogButtons,
|
17
|
+
TreeTest_TogTwist,
|
18
|
+
TreeTest_TogLines,
|
19
|
+
TreeTest_TogEdit,
|
20
|
+
TreeTest_TogHideRoot,
|
21
|
+
TreeTest_TogRootLines,
|
22
|
+
TreeTest_TogBorder,
|
23
|
+
TreeTest_TogFullHighlight,
|
24
|
+
TreeTest_SetFgColour,
|
25
|
+
TreeTest_SetBgColour,
|
26
|
+
TreeTest_ResetStyle,
|
27
|
+
TreeTest_Highlight,
|
28
|
+
TreeTest_Dump,
|
29
|
+
TreeTest_DumpSelected,
|
30
|
+
TreeTest_Count,
|
31
|
+
TreeTest_CountRec,
|
32
|
+
TreeTest_Sort,
|
33
|
+
TreeTest_SortRev,
|
34
|
+
TreeTest_SetBold,
|
35
|
+
TreeTest_ClearBold,
|
36
|
+
TreeTest_Rename,
|
37
|
+
TreeTest_Delete,
|
38
|
+
TreeTest_DeleteChildren,
|
39
|
+
TreeTest_DeleteAll,
|
40
|
+
TreeTest_SelectRoot,
|
41
|
+
TreeTest_SetFocusedRoot,
|
42
|
+
TreeTest_ClearFocused,
|
43
|
+
TreeTest_FreezeThaw,
|
44
|
+
TreeTest_Recreate,
|
45
|
+
TreeTest_ToggleImages,
|
46
|
+
TreeTest_ToggleStates,
|
47
|
+
TreeTest_ToggleBell,
|
48
|
+
TreeTest_ToggleAlternateImages,
|
49
|
+
TreeTest_ToggleAlternateStates,
|
50
|
+
TreeTest_ToggleButtons,
|
51
|
+
TreeTest_SetImageSize,
|
52
|
+
TreeTest_ToggleSel,
|
53
|
+
TreeTest_CollapseAndReset,
|
54
|
+
TreeTest_EnsureVisible,
|
55
|
+
TreeTest_SetFocus,
|
56
|
+
TreeTest_AddItem,
|
57
|
+
TreeTest_AddManyItems,
|
58
|
+
TreeTest_InsertItem,
|
59
|
+
TreeTest_IncIndent,
|
60
|
+
TreeTest_DecIndent,
|
61
|
+
TreeTest_IncSpacing,
|
62
|
+
TreeTest_DecSpacing,
|
63
|
+
TreeTest_ToggleIcon,
|
64
|
+
TreeTest_ToggleState,
|
65
|
+
TreeTest_ShowFirstVisible,
|
66
|
+
TreeTest_ShowLastVisible,
|
67
|
+
TreeTest_ShowNextVisible,
|
68
|
+
TreeTest_ShowPrevVisible,
|
69
|
+
TreeTest_ShowParent,
|
70
|
+
TreeTest_ShowPrevSibling,
|
71
|
+
TreeTest_ShowNextSibling,
|
72
|
+
TreeTest_ScrollTo,
|
73
|
+
TreeTest_SelectLast,
|
74
|
+
TreeTest_Select,
|
75
|
+
TreeTest_Unselect,
|
76
|
+
TreeTest_SelectChildren = (Wx::ID_HIGHEST..Wx::ID_HIGHEST + 61).to_a
|
77
|
+
|
78
|
+
TreeCtrlIcon_File,
|
79
|
+
TreeCtrlIcon_FileSelected,
|
80
|
+
TreeCtrlIcon_Folder,
|
81
|
+
TreeCtrlIcon_FolderSelected,
|
82
|
+
TreeCtrlIcon_FolderOpened = 0, 1, 2, 3, 4
|
83
|
+
|
84
|
+
class MyTreeCtrl < Wx::TreeCtrl
|
85
|
+
def initialize(parent, *args)
|
86
|
+
super(parent, *args)
|
87
|
+
|
88
|
+
@alternate_images = false
|
89
|
+
@alternate_states = false
|
90
|
+
@reverse_sort = false
|
91
|
+
|
92
|
+
create_image_list(16)
|
93
|
+
create_state_imageList
|
94
|
+
|
95
|
+
# add some items to the tree
|
96
|
+
add_test_items_to_tree(5, 2)
|
97
|
+
|
98
|
+
# TreeCtrl supports a large number of different events...
|
99
|
+
evt_tree_begin_drag self, :on_begin_drag
|
100
|
+
evt_tree_begin_rdrag self, :on_begin_rdrag
|
101
|
+
evt_tree_end_drag self, :on_end_drag
|
102
|
+
evt_tree_begin_label_edit self, :on_begin_label_edit
|
103
|
+
evt_tree_end_label_edit self, :on_end_label_edit
|
104
|
+
evt_tree_delete_item self, :on_delete_item
|
105
|
+
#evt_tree_set_info self, :on_set_info
|
106
|
+
evt_tree_item_expanded self, :on_item_expanded
|
107
|
+
evt_tree_item_expanding self, :on_item_expanding
|
108
|
+
evt_tree_item_collapsed self, :on_item_collapsed
|
109
|
+
evt_tree_item_collapsing self, :on_item_collapsing
|
110
|
+
evt_tree_sel_changed self, :on_sel_changed
|
111
|
+
evt_tree_sel_changing self, :on_sel_changing
|
112
|
+
evt_tree_key_down self, :on_tree_key_down
|
113
|
+
evt_tree_item_activated self, :on_item_activated
|
114
|
+
evt_tree_state_image_click self, :on_item_state_clicked
|
115
|
+
|
116
|
+
# EVT_TREE_ITEM_MENU is the preferred event for creating context menus
|
117
|
+
# on a tree control, because it includes the point of the click or item,
|
118
|
+
# meaning that no additional placement calculations are required.
|
119
|
+
evt_tree_item_menu self, :on_item_menu
|
120
|
+
evt_tree_item_right_click self, :on_item_rclick
|
121
|
+
|
122
|
+
evt_context_menu :on_context_menu
|
123
|
+
|
124
|
+
evt_right_dclick :on_rmouse_dclick
|
125
|
+
evt_right_down :on_rmouse_down
|
126
|
+
evt_right_up :on_rmouse_up
|
127
|
+
end
|
128
|
+
|
129
|
+
attr_accessor :alternate_images, :alternate_states, :reverse_sort
|
130
|
+
|
131
|
+
def reset_broken_state_images
|
132
|
+
count = self.state_image_list.get_image_count
|
133
|
+
state = count > 0 ? count - 1 : Wx::TREE_ITEMSTATE_NONE
|
134
|
+
do_reset_broken_state_images(self.root_item, nil, state)
|
135
|
+
end
|
136
|
+
|
137
|
+
def do_reset_broken_state_images(parent, cookie, state)
|
138
|
+
unless cookie
|
139
|
+
id, cookie = get_first_child(parent)
|
140
|
+
else
|
141
|
+
id, cookie = get_next_child(parent, cookie)
|
142
|
+
end
|
143
|
+
|
144
|
+
return unless id.ok?
|
145
|
+
|
146
|
+
curState = get_item_state(id)
|
147
|
+
|
148
|
+
set_item_state(id, state) if curState != Wx::TREE_ITEMSTATE_NONE && curState > state
|
149
|
+
|
150
|
+
do_reset_broken_state_images(id, nil, state) if item_has_children(id)
|
151
|
+
|
152
|
+
do_reset_broken_state_images(parent, cookie, state)
|
153
|
+
end
|
154
|
+
|
155
|
+
def show_info(id)
|
156
|
+
Wx::log_message("Item '%s': %sselected, %sexpanded, %sbold,\n" +
|
157
|
+
"%d children (%d immediately under selected item).",
|
158
|
+
get_item_text(id),
|
159
|
+
bool_to_str(is_selected(id)),
|
160
|
+
bool_to_str(is_expanded(id)),
|
161
|
+
bool_to_str(is_bold(id)),
|
162
|
+
get_children_count(id),
|
163
|
+
get_children_count(id, false))
|
164
|
+
end
|
165
|
+
|
166
|
+
def bool_to_str(bool)
|
167
|
+
bool ? " " : "not "
|
168
|
+
end
|
169
|
+
|
170
|
+
def do_sort_children(item, reverse = false)
|
171
|
+
@reverse_sort = reverse
|
172
|
+
sort_children(item)
|
173
|
+
end
|
174
|
+
|
175
|
+
def do_ensure_visible
|
176
|
+
ensure_visible(@last_item)
|
177
|
+
end
|
178
|
+
|
179
|
+
def image_size
|
180
|
+
return @image_size
|
181
|
+
end
|
182
|
+
|
183
|
+
def is_test_item(item)
|
184
|
+
# the test item is the first child folder
|
185
|
+
return item_parent(item) == root_item && !prev_sibling(item)
|
186
|
+
end
|
187
|
+
|
188
|
+
def create_image_list(size)
|
189
|
+
if size < 0
|
190
|
+
unset_image_list
|
191
|
+
return
|
192
|
+
elsif size == 0
|
193
|
+
size = @image_size
|
194
|
+
else
|
195
|
+
@image_size = size
|
196
|
+
end
|
197
|
+
|
198
|
+
Wx::BusyCursor.busy do
|
199
|
+
# should correspond to TreeCtrlIcon_xxx enum
|
200
|
+
icons = if @alternate_images
|
201
|
+
[Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon1.xpm'), Wx::BITMAP_TYPE_XPM),
|
202
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon2.xpm'), Wx::BITMAP_TYPE_XPM),
|
203
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon3.xpm'), Wx::BITMAP_TYPE_XPM),
|
204
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon4.xpm'), Wx::BITMAP_TYPE_XPM),
|
205
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon5.xpm'), Wx::BITMAP_TYPE_XPM),
|
206
|
+
]
|
207
|
+
else
|
208
|
+
icon_size = Wx::Size.new(@image_size, @image_size)
|
209
|
+
ic1 = Wx::ArtProvider::get_icon(Wx::ART_NORMAL_FILE, Wx::ART_LIST, icon_size)
|
210
|
+
ic2 = Wx::ArtProvider::get_icon(Wx::ART_FOLDER, Wx::ART_LIST, icon_size)
|
211
|
+
[ic1, ic1, ic2, ic2, ic2]
|
212
|
+
end
|
213
|
+
|
214
|
+
# Make an image list containing small icons
|
215
|
+
images = Wx::ImageList.new(@image_size, @image_size, true)
|
216
|
+
icons.each do |ic|
|
217
|
+
orig_size = ic.get_width
|
218
|
+
ic = if @image_size == orig_size
|
219
|
+
ic
|
220
|
+
else
|
221
|
+
Wx::Bitmap.new(ic.convert_to_image.rescale(@image_size, @image_size))
|
222
|
+
end
|
223
|
+
images.add(ic)
|
224
|
+
end
|
225
|
+
self.image_list = images
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
def unset_image_list
|
230
|
+
self.image_list = nil
|
231
|
+
end
|
232
|
+
|
233
|
+
def create_state_imageList(del = false)
|
234
|
+
if del
|
235
|
+
self.state_image_list = nil
|
236
|
+
return
|
237
|
+
end
|
238
|
+
|
239
|
+
Wx::BusyCursor.busy do
|
240
|
+
icons = if @alternate_states
|
241
|
+
[Wx::Icon.new(File.join(File.dirname(__FILE__), 'state1.xpm'), Wx::BITMAP_TYPE_XPM),
|
242
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'state2.xpm'), Wx::BITMAP_TYPE_XPM),
|
243
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'state3.xpm'), Wx::BITMAP_TYPE_XPM),
|
244
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'state4.xpm'), Wx::BITMAP_TYPE_XPM),
|
245
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'state5.xpm'), Wx::BITMAP_TYPE_XPM)]
|
246
|
+
|
247
|
+
else
|
248
|
+
[Wx::Icon.new(File.join(File.dirname(__FILE__), 'unchecked.xpm'), Wx::BITMAP_TYPE_XPM),
|
249
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'checked.xpm'), Wx::BITMAP_TYPE_XPM)]
|
250
|
+
end
|
251
|
+
|
252
|
+
width = icons[0].width
|
253
|
+
height = icons[0].height
|
254
|
+
|
255
|
+
# Make a state image list containing small icons
|
256
|
+
states = Wx::ImageList.new(width, height, true)
|
257
|
+
|
258
|
+
icons.each { |ic| states.add(ic) }
|
259
|
+
|
260
|
+
self.state_image_list = states
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
def create_buttons_image_list(size)
|
265
|
+
if size < 0
|
266
|
+
self.buttons_image_list = nil
|
267
|
+
return
|
268
|
+
end
|
269
|
+
|
270
|
+
# Make an image list containing small icons
|
271
|
+
images = Wx::ImageList.new(size, size, true)
|
272
|
+
|
273
|
+
# should correspond to TreeCtrlIcon_xxx enum
|
274
|
+
Wx::BusyCursor.busy do
|
275
|
+
icons = if @alternate_images
|
276
|
+
[Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon3.xpm'), Wx::BITMAP_TYPE_XPM),
|
277
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon3.xpm'), Wx::BITMAP_TYPE_XPM),
|
278
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon5.xpm'), Wx::BITMAP_TYPE_XPM),
|
279
|
+
Wx::Icon.new(File.join(File.dirname(__FILE__), 'icon5.xpm'), Wx::BITMAP_TYPE_XPM)
|
280
|
+
]
|
281
|
+
else
|
282
|
+
icon_size = Wx::Size.new(@image_size, @image_size)
|
283
|
+
ic1 = Wx::ArtProvider::get_icon(Wx::ART_FOLDER, Wx::ART_LIST, icon_size)
|
284
|
+
ic2 = Wx::ArtProvider::get_icon(Wx::ART_FOLDER_OPEN, Wx::ART_LIST, icon_size)
|
285
|
+
[ic1, ic1, ic2, ic2]
|
286
|
+
end
|
287
|
+
|
288
|
+
icons.each do |ic|
|
289
|
+
if ic.width == size
|
290
|
+
images.add(ic)
|
291
|
+
else
|
292
|
+
resized = ic.convert_to_image.rescale(size, size)
|
293
|
+
images.add(Wx::Bitmap.new(resized))
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
self.buttons_image_list = images
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
301
|
+
def on_compare_items(item1, item2)
|
302
|
+
if @reverse_sort
|
303
|
+
# just exchange 1st and 2nd items
|
304
|
+
return super(item2, item1)
|
305
|
+
else
|
306
|
+
return super(item1, item2)
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
def add_items_recursively(parent_id, num_children, depth, folder)
|
311
|
+
if depth > 0
|
312
|
+
has_children = depth > 1
|
313
|
+
|
314
|
+
(0...num_children).each do |n|
|
315
|
+
# at depth 1 elements won't have any more children
|
316
|
+
if has_children
|
317
|
+
str = "Folder child #{n + 1}"
|
318
|
+
else
|
319
|
+
str = "File child #{folder}.#{n + 1}"
|
320
|
+
end
|
321
|
+
# here we pass to append_item normal and selected item images (we
|
322
|
+
# suppose that selected image follows the normal one in the enum)
|
323
|
+
if Wx::THE_APP.show_images
|
324
|
+
image = depth == 1 ? TreeCtrlIcon_File : TreeCtrlIcon_Folder
|
325
|
+
imageSel = image + 1
|
326
|
+
else
|
327
|
+
image = imageSel = -1
|
328
|
+
end
|
329
|
+
id = append_item(parent_id, str, image, imageSel)
|
330
|
+
|
331
|
+
set_item_state(id, 0) if Wx::THE_APP.show_states
|
332
|
+
|
333
|
+
# and now we also set the expanded one (only for the folders)
|
334
|
+
if has_children && Wx::get_app.show_images
|
335
|
+
set_item_image(id, TreeCtrlIcon_FolderOpened, Wx::TreeItemIcon_Expanded)
|
336
|
+
end
|
337
|
+
|
338
|
+
# remember the last child for OnEnsureVisible()
|
339
|
+
if !has_children && n == num_children - 1
|
340
|
+
@last_item = id
|
341
|
+
end
|
342
|
+
|
343
|
+
add_items_recursively(id, num_children, depth - 1, n + 1)
|
344
|
+
end
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
def add_test_items_to_tree(num_children, depth)
|
349
|
+
image = Wx::THE_APP.show_images ? TreeCtrlIcon_Folder : -1
|
350
|
+
root_id = add_root("Root", image, image, 'Root item')
|
351
|
+
if !self.has_flag(Wx::TR_HIDE_ROOT) && image != -1
|
352
|
+
set_item_image(root_id, TreeCtrlIcon_FolderOpened, Wx::TreeItemIcon_Expanded)
|
353
|
+
end
|
354
|
+
|
355
|
+
add_items_recursively(root_id, num_children, depth, 0)
|
356
|
+
|
357
|
+
# set some colours/fonts for testing
|
358
|
+
# note that font sizes can also be varied, but only on platforms
|
359
|
+
# that use the generic TreeCtrl - OS X and GTK, and only if
|
360
|
+
# Wx::TR_HAS_VARIABLE_ROW_HEIGHT style was used in the constructor
|
361
|
+
if !self.has_flag(Wx::TR_HIDE_ROOT)
|
362
|
+
set_item_font(root_id, Wx::ITALIC_FONT)
|
363
|
+
end
|
364
|
+
|
365
|
+
ids = get_children(root_id)
|
366
|
+
|
367
|
+
# make the first item blue
|
368
|
+
set_item_text_colour(ids[0], Wx::BLUE)
|
369
|
+
|
370
|
+
# make the third item red on grey
|
371
|
+
set_item_text_colour(ids[2], Wx::RED)
|
372
|
+
set_item_background_colour(ids[2], Wx::LIGHT_GREY)
|
373
|
+
end
|
374
|
+
|
375
|
+
def get_last_tree_item
|
376
|
+
item = self.root_item
|
377
|
+
while item.ok?
|
378
|
+
itemChild = get_last_child(item)
|
379
|
+
break unless itemChild.ok?
|
380
|
+
|
381
|
+
item = itemChild
|
382
|
+
end
|
383
|
+
|
384
|
+
item
|
385
|
+
end
|
386
|
+
alias :last_tree_item :get_last_tree_item
|
387
|
+
|
388
|
+
def get_items_recursively(parent_id, cookie)
|
389
|
+
if cookie == -1
|
390
|
+
id, cookie = get_first_child(parent_id)
|
391
|
+
else
|
392
|
+
id, cookie = get_next_child(parent_id, cookie)
|
393
|
+
end
|
394
|
+
unless id.ok?
|
395
|
+
return nil
|
396
|
+
end
|
397
|
+
|
398
|
+
text = item_text(id)
|
399
|
+
Wx::log_message(text)
|
400
|
+
|
401
|
+
if item_has_children(id)
|
402
|
+
get_items_recursively(id, -1)
|
403
|
+
end
|
404
|
+
get_items_recursively(parent_id, cookie)
|
405
|
+
end
|
406
|
+
|
407
|
+
def do_toggle_icon(item)
|
408
|
+
old_img = get_item_image(item)
|
409
|
+
if old_img == TreeCtrlIcon_Folder
|
410
|
+
new_img = TreeCtrlIcon_File
|
411
|
+
else
|
412
|
+
new_img = TreeCtrlIcon_Folder
|
413
|
+
end
|
414
|
+
|
415
|
+
set_item_image(item, new_img, Wx::TreeItemIcon_Normal)
|
416
|
+
|
417
|
+
old_img = get_item_image(item, Wx::TreeItemIcon_Selected)
|
418
|
+
if old_img == TreeCtrlIcon_Folder
|
419
|
+
new_img = TreeCtrlIcon_File
|
420
|
+
else
|
421
|
+
new_img = TreeCtrlIcon_Folder
|
422
|
+
end
|
423
|
+
|
424
|
+
set_item_image(item, new_img, Wx::TreeItemIcon_Selected)
|
425
|
+
end
|
426
|
+
|
427
|
+
def do_toggle_state(item)
|
428
|
+
if @alternate_states
|
429
|
+
# sets random state unlike current
|
430
|
+
nState = state = get_item_state(item)
|
431
|
+
|
432
|
+
nimg = state_image_list.image_count
|
433
|
+
nState = (rand(::Time.now.to_i) % nimg) until nState != state
|
434
|
+
|
435
|
+
set_item_state(item, nState)
|
436
|
+
else
|
437
|
+
# we have only 2 checkbox states, so next state will be reversed
|
438
|
+
set_item_state(item, Wx::TREE_ITEMSTATE_NEXT)
|
439
|
+
end
|
440
|
+
end
|
441
|
+
|
442
|
+
def on_begin_rdrag(event)
|
443
|
+
Wx::log_message("OnBeginRDrag")
|
444
|
+
event.skip
|
445
|
+
end
|
446
|
+
|
447
|
+
def on_delete_item(event)
|
448
|
+
Wx::log_message("OnDeleteItem")
|
449
|
+
event.skip
|
450
|
+
end
|
451
|
+
|
452
|
+
def on_get_info(event)
|
453
|
+
Wx::log_message("OnGetInfo")
|
454
|
+
event.skip
|
455
|
+
end
|
456
|
+
|
457
|
+
def on_set_info(event)
|
458
|
+
Wx::log_message("OnSetInfo")
|
459
|
+
event.skip
|
460
|
+
end
|
461
|
+
|
462
|
+
def on_item_expanded(event)
|
463
|
+
Wx::log_message("OnItemExpanded")
|
464
|
+
event.skip
|
465
|
+
end
|
466
|
+
|
467
|
+
def on_item_expanding(event)
|
468
|
+
Wx::log_message("OnItemExpanding")
|
469
|
+
event.skip
|
470
|
+
end
|
471
|
+
|
472
|
+
def on_item_collapsed(event)
|
473
|
+
Wx::log_message("OnItemCollapsed")
|
474
|
+
event.skip
|
475
|
+
end
|
476
|
+
|
477
|
+
def on_sel_changed(event)
|
478
|
+
Wx::log_message("OnSelChanged")
|
479
|
+
event.skip
|
480
|
+
end
|
481
|
+
|
482
|
+
def on_sel_changing(event)
|
483
|
+
Wx::log_message("OnSelChanging")
|
484
|
+
event.skip
|
485
|
+
end
|
486
|
+
|
487
|
+
def log_key_event(name, event)
|
488
|
+
keycode = event.key_code
|
489
|
+
|
490
|
+
case keycode
|
491
|
+
when Wx::K_BACK
|
492
|
+
key = "BACK"
|
493
|
+
when Wx::K_TAB
|
494
|
+
key = "TAB"
|
495
|
+
when Wx::K_RETURN
|
496
|
+
key = "RETURN"
|
497
|
+
when Wx::K_ESCAPE
|
498
|
+
key = "ESCAPE"
|
499
|
+
when Wx::K_SPACE
|
500
|
+
key = "SPACE"
|
501
|
+
when Wx::K_DELETE
|
502
|
+
key = "DELETE"
|
503
|
+
when Wx::K_START
|
504
|
+
key = "START"
|
505
|
+
when Wx::K_LBUTTON
|
506
|
+
key = "LBUTTON"
|
507
|
+
when Wx::K_RBUTTON
|
508
|
+
key = "RBUTTON"
|
509
|
+
when Wx::K_CANCEL
|
510
|
+
key = "CANCEL"
|
511
|
+
when Wx::K_MBUTTON
|
512
|
+
key = "MBUTTON"
|
513
|
+
when Wx::K_CLEAR
|
514
|
+
key = "CLEAR"
|
515
|
+
when Wx::K_SHIFT
|
516
|
+
key = "SHIFT"
|
517
|
+
when Wx::K_ALT
|
518
|
+
key = "ALT"
|
519
|
+
when Wx::K_CONTROL
|
520
|
+
key = "CONTROL"
|
521
|
+
when Wx::K_MENU
|
522
|
+
key = "MENU"
|
523
|
+
when Wx::K_PAUSE
|
524
|
+
key = "PAUSE"
|
525
|
+
when Wx::K_CAPITAL
|
526
|
+
key = "CAPITAL"
|
527
|
+
when Wx::K_END
|
528
|
+
key = "END"
|
529
|
+
when Wx::K_HOME
|
530
|
+
key = "HOME"
|
531
|
+
when Wx::K_LEFT
|
532
|
+
key = "LEFT"
|
533
|
+
when Wx::K_UP
|
534
|
+
key = "UP"
|
535
|
+
when Wx::K_RIGHT
|
536
|
+
key = "RIGHT"
|
537
|
+
when Wx::K_DOWN
|
538
|
+
key = "DOWN"
|
539
|
+
when Wx::K_SELECT
|
540
|
+
key = "SELECT"
|
541
|
+
when Wx::K_PRINT
|
542
|
+
key = "PRINT"
|
543
|
+
when Wx::K_EXECUTE
|
544
|
+
key = "EXECUTE"
|
545
|
+
when Wx::K_SNAPSHOT
|
546
|
+
key = "SNAPSHOT"
|
547
|
+
when Wx::K_INSERT
|
548
|
+
key = "INSERT"
|
549
|
+
when Wx::K_HELP
|
550
|
+
key = "HELP"
|
551
|
+
when Wx::K_NUMPAD0
|
552
|
+
key = "NUMPAD0"
|
553
|
+
when Wx::K_NUMPAD1
|
554
|
+
key = "NUMPAD1"
|
555
|
+
when Wx::K_NUMPAD2
|
556
|
+
key = "NUMPAD2"
|
557
|
+
when Wx::K_NUMPAD3
|
558
|
+
key = "NUMPAD3"
|
559
|
+
when Wx::K_NUMPAD4
|
560
|
+
key = "NUMPAD4"
|
561
|
+
when Wx::K_NUMPAD5
|
562
|
+
key = "NUMPAD5"
|
563
|
+
when Wx::K_NUMPAD6
|
564
|
+
key = "NUMPAD6"
|
565
|
+
when Wx::K_NUMPAD7
|
566
|
+
key = "NUMPAD7"
|
567
|
+
when Wx::K_NUMPAD8
|
568
|
+
key = "NUMPAD8"
|
569
|
+
when Wx::K_NUMPAD9
|
570
|
+
key = "NUMPAD9"
|
571
|
+
when Wx::K_MULTIPLY
|
572
|
+
key = "MULTIPLY"
|
573
|
+
when Wx::K_ADD
|
574
|
+
key = "ADD"
|
575
|
+
when Wx::K_SEPARATOR
|
576
|
+
key = "SEPARATOR"
|
577
|
+
when Wx::K_SUBTRACT
|
578
|
+
key = "SUBTRACT"
|
579
|
+
when Wx::K_DECIMAL
|
580
|
+
key = "DECIMAL"
|
581
|
+
when Wx::K_DIVIDE
|
582
|
+
key = "DIVIDE"
|
583
|
+
when Wx::K_F1
|
584
|
+
key = "F1"
|
585
|
+
when Wx::K_F2
|
586
|
+
key = "F2"
|
587
|
+
when Wx::K_F3
|
588
|
+
key = "F3"
|
589
|
+
when Wx::K_F4
|
590
|
+
key = "F4"
|
591
|
+
when Wx::K_F5
|
592
|
+
key = "F5"
|
593
|
+
when Wx::K_F6
|
594
|
+
key = "F6"
|
595
|
+
when Wx::K_F7
|
596
|
+
key = "F7"
|
597
|
+
when Wx::K_F8
|
598
|
+
key = "F8"
|
599
|
+
when Wx::K_F9
|
600
|
+
key = "F9"
|
601
|
+
when Wx::K_F10
|
602
|
+
key = "F10"
|
603
|
+
when Wx::K_F11
|
604
|
+
key = "F11"
|
605
|
+
when Wx::K_F12
|
606
|
+
key = "F12"
|
607
|
+
when Wx::K_F13
|
608
|
+
key = "F13"
|
609
|
+
when Wx::K_F14
|
610
|
+
key = "F14"
|
611
|
+
when Wx::K_F15
|
612
|
+
key = "F15"
|
613
|
+
when Wx::K_F16
|
614
|
+
key = "F16"
|
615
|
+
when Wx::K_F17
|
616
|
+
key = "F17"
|
617
|
+
when Wx::K_F18
|
618
|
+
key = "F18"
|
619
|
+
when Wx::K_F19
|
620
|
+
key = "F19"
|
621
|
+
when Wx::K_F20
|
622
|
+
key = "F20"
|
623
|
+
when Wx::K_F21
|
624
|
+
key = "F21"
|
625
|
+
when Wx::K_F22
|
626
|
+
key = "F22"
|
627
|
+
when Wx::K_F23
|
628
|
+
key = "F23"
|
629
|
+
when Wx::K_F24
|
630
|
+
key = "F24"
|
631
|
+
when Wx::K_NUMLOCK
|
632
|
+
key = "NUMLOCK"
|
633
|
+
when Wx::K_SCROLL
|
634
|
+
key = "SCROLL"
|
635
|
+
when Wx::K_PAGEUP
|
636
|
+
key = "PAGEUP"
|
637
|
+
when Wx::K_PAGEDOWN
|
638
|
+
key = "PAGEDOWN"
|
639
|
+
when Wx::K_NUMPAD_SPACE
|
640
|
+
key = "NUMPAD_SPACE"
|
641
|
+
when Wx::K_NUMPAD_TAB
|
642
|
+
key = "NUMPAD_TAB"
|
643
|
+
when Wx::K_NUMPAD_ENTER
|
644
|
+
key = "NUMPAD_ENTER"
|
645
|
+
when Wx::K_NUMPAD_F1
|
646
|
+
key = "NUMPAD_F1"
|
647
|
+
when Wx::K_NUMPAD_F2
|
648
|
+
key = "NUMPAD_F2"
|
649
|
+
when Wx::K_NUMPAD_F3
|
650
|
+
key = "NUMPAD_F3"
|
651
|
+
when Wx::K_NUMPAD_F4
|
652
|
+
key = "NUMPAD_F4"
|
653
|
+
when Wx::K_NUMPAD_HOME
|
654
|
+
key = "NUMPAD_HOME"
|
655
|
+
when Wx::K_NUMPAD_LEFT
|
656
|
+
key = "NUMPAD_LEFT"
|
657
|
+
when Wx::K_NUMPAD_UP
|
658
|
+
key = "NUMPAD_UP"
|
659
|
+
when Wx::K_NUMPAD_RIGHT
|
660
|
+
key = "NUMPAD_RIGHT"
|
661
|
+
when Wx::K_NUMPAD_DOWN
|
662
|
+
key = "NUMPAD_DOWN"
|
663
|
+
when Wx::K_NUMPAD_PAGEUP
|
664
|
+
key = "NUMPAD_PAGEUP"
|
665
|
+
when Wx::K_NUMPAD_PAGEDOWN
|
666
|
+
key = "NUMPAD_PAGEDOWN"
|
667
|
+
when Wx::K_NUMPAD_END
|
668
|
+
key = "NUMPAD_END"
|
669
|
+
when Wx::K_NUMPAD_BEGIN
|
670
|
+
key = "NUMPAD_BEGIN"
|
671
|
+
when Wx::K_NUMPAD_INSERT
|
672
|
+
key = "NUMPAD_INSERT"
|
673
|
+
when Wx::K_NUMPAD_DELETE
|
674
|
+
key = "NUMPAD_DELETE"
|
675
|
+
when Wx::K_NUMPAD_EQUAL
|
676
|
+
key = "NUMPAD_EQUAL"
|
677
|
+
when Wx::K_NUMPAD_MULTIPLY
|
678
|
+
key = "NUMPAD_MULTIPLY"
|
679
|
+
when Wx::K_NUMPAD_ADD
|
680
|
+
key = "NUMPAD_ADD"
|
681
|
+
when Wx::K_NUMPAD_SEPARATOR
|
682
|
+
key = "NUMPAD_SEPARATOR"
|
683
|
+
when Wx::K_NUMPAD_SUBTRACT
|
684
|
+
key = "NUMPAD_SUBTRACT"
|
685
|
+
when Wx::K_NUMPAD_DECIMAL
|
686
|
+
key = "NUMPAD_DECIMAL"
|
687
|
+
when Wx::K_BROWSER_BACK
|
688
|
+
key = "BROWSER_BACK"
|
689
|
+
when Wx::K_BROWSER_FORWARD
|
690
|
+
key = "BROWSER_FORWARD"
|
691
|
+
when Wx::K_BROWSER_REFRESH
|
692
|
+
key = "BROWSER_REFRESH"
|
693
|
+
when Wx::K_BROWSER_STOP
|
694
|
+
key = "BROWSER_STOP"
|
695
|
+
when Wx::K_BROWSER_SEARCH
|
696
|
+
key = "BROWSER_SEARCH"
|
697
|
+
when Wx::K_BROWSER_FAVORITES
|
698
|
+
key = "BROWSER_FAVORITES"
|
699
|
+
when Wx::K_BROWSER_HOME
|
700
|
+
key = "BROWSER_HOME"
|
701
|
+
when Wx::K_VOLUME_MUTE
|
702
|
+
key = "VOLUME_MUTE"
|
703
|
+
when Wx::K_VOLUME_DOWN
|
704
|
+
key = "VOLUME_DOWN"
|
705
|
+
when Wx::K_VOLUME_UP
|
706
|
+
key = "VOLUME_UP"
|
707
|
+
when Wx::K_MEDIA_NEXT_TRACK
|
708
|
+
key = "MEDIA_NEXT_TRACK"
|
709
|
+
when Wx::K_MEDIA_PREV_TRACK
|
710
|
+
key = "MEDIA_PREV_TRACK"
|
711
|
+
when Wx::K_MEDIA_STOP
|
712
|
+
key = "MEDIA_STOP"
|
713
|
+
when Wx::K_MEDIA_PLAY_PAUSE
|
714
|
+
key = "MEDIA_PLAY_PAUSE"
|
715
|
+
when Wx::K_LAUNCH_MAIL
|
716
|
+
key = "LAUNCH_MAIL"
|
717
|
+
when Wx::K_LAUNCH_APP1
|
718
|
+
key = "LAUNCH_APP1"
|
719
|
+
when Wx::K_LAUNCH_APP2
|
720
|
+
key = "LAUNCH_APP2"
|
721
|
+
else
|
722
|
+
if keycode >= 32 && keycode < 127
|
723
|
+
key = "'#{keycode.chr}'"
|
724
|
+
elsif keycode > 0 && keycode < 27
|
725
|
+
key = "Ctrl-#{?A + keycode - 1}"
|
726
|
+
else
|
727
|
+
key = "unknown (#{keycode})"
|
728
|
+
end
|
729
|
+
end
|
730
|
+
|
731
|
+
Wx::log_message("#{name} event: #{key} (flags = %s%s%s%s)" %
|
732
|
+
[event.control_down ? 'C' : '-',
|
733
|
+
event.alt_down ? 'A' : '-',
|
734
|
+
event.shift_down ? 'S' : '-',
|
735
|
+
event.meta_down ? 'M' : '-'])
|
736
|
+
end
|
737
|
+
|
738
|
+
def on_tree_key_down(event)
|
739
|
+
log_key_event("Tree key down ", event.key_event)
|
740
|
+
event.skip
|
741
|
+
end
|
742
|
+
|
743
|
+
def on_begin_drag(event)
|
744
|
+
# need to explicitly allow drag
|
745
|
+
if event.item != root_item
|
746
|
+
@dragged_item = event.item
|
747
|
+
|
748
|
+
clientpt = event.point
|
749
|
+
screenpt = client_to_screen(clientpt)
|
750
|
+
Wx::log_message("OnBeginDrag: started dragging %s at screen coords (%i,%i)" %
|
751
|
+
[item_text(@dragged_item), screenpt.x, screenpt.y])
|
752
|
+
event.allow
|
753
|
+
else
|
754
|
+
Wx::log_message("OnBeginDrag: selected item can't be dragged.")
|
755
|
+
end
|
756
|
+
end
|
757
|
+
|
758
|
+
def on_end_drag(event)
|
759
|
+
src_item = @dragged_item
|
760
|
+
dest_item = event.item
|
761
|
+
@dragged_item = nil
|
762
|
+
|
763
|
+
if dest_item.ok? && !item_has_children(dest_item)
|
764
|
+
# copy to the parent then
|
765
|
+
dest_item = get_item_parent(dest_item)
|
766
|
+
end
|
767
|
+
|
768
|
+
unless dest_item.ok?
|
769
|
+
Wx::log_message("OnEndDrag: can't drop here.")
|
770
|
+
return nil
|
771
|
+
end
|
772
|
+
|
773
|
+
text = item_text(src_item)
|
774
|
+
Wx::log_message("OnEndDrag: '%s' copied to '%s'.",
|
775
|
+
text, item_text(dest_item))
|
776
|
+
|
777
|
+
# just do append here - we could also insert it just before/after the item
|
778
|
+
# on which it was dropped, but self requires slightly more work... we also
|
779
|
+
# completely ignore the client data and icon of the old item but could
|
780
|
+
# copy them as well.
|
781
|
+
#
|
782
|
+
# Finally, we only copy one item here but we might copy the entire tree if
|
783
|
+
# we were dragging a folder.
|
784
|
+
image = Wx::THE_APP.show_images ? TreeCtrlIcon_File : -1
|
785
|
+
new_id = append_item(dest_item, text, image)
|
786
|
+
|
787
|
+
set_item_state(new_id, get_item_state(src_item)) if Wx::THE_APP.show_states
|
788
|
+
end
|
789
|
+
|
790
|
+
def on_begin_label_edit(event)
|
791
|
+
Wx::log_message("OnBeginLabelEdit")
|
792
|
+
|
793
|
+
# for testing, prevent self item's label editing
|
794
|
+
item = event.item
|
795
|
+
if is_test_item(item)
|
796
|
+
Wx::message_box("The demo prevents you editing this item.")
|
797
|
+
event.veto
|
798
|
+
elsif item == self.root_item
|
799
|
+
# test that it is possible to change the text of the item being edited
|
800
|
+
set_item_text(item, "Editing root item")
|
801
|
+
end
|
802
|
+
end
|
803
|
+
|
804
|
+
def on_end_label_edit(event)
|
805
|
+
Wx::log_message("OnEndLabelEdit")
|
806
|
+
if event.edit_cancelled?
|
807
|
+
Wx::log_message("Label edit was cancelled by user")
|
808
|
+
return
|
809
|
+
end
|
810
|
+
|
811
|
+
# For a demo, don't allow anything except letters in the labels
|
812
|
+
unless event.label =~ /^\w+/
|
813
|
+
msg = "The new label should be a single word."
|
814
|
+
Wx::message_box(msg)
|
815
|
+
Wx::log_message("Label edit was cancelled by demo")
|
816
|
+
event.veto
|
817
|
+
end
|
818
|
+
end
|
819
|
+
|
820
|
+
def on_item_collapsing(event)
|
821
|
+
Wx::log_message("OnItemCollapsing")
|
822
|
+
|
823
|
+
# for testing, prevent the user from collapsing the first child folder
|
824
|
+
if is_test_item(event.item)
|
825
|
+
Wx::message_box("You can't collapse self item.")
|
826
|
+
event.veto
|
827
|
+
end
|
828
|
+
end
|
829
|
+
|
830
|
+
# show some info about activated item
|
831
|
+
def on_item_activated(event)
|
832
|
+
if (item_id = event.item).ok?
|
833
|
+
show_info(item_id)
|
834
|
+
end
|
835
|
+
Wx::log_message("OnItemActivated")
|
836
|
+
end
|
837
|
+
|
838
|
+
def on_item_state_clicked(event)
|
839
|
+
if (item_id = event.item).ok?
|
840
|
+
do_toggle_state(item_id)
|
841
|
+
end
|
842
|
+
Wx::log_message("Item \"#{get_item_text(item_id)}\" state changed to #{get_item_state(item_id)}")
|
843
|
+
end
|
844
|
+
|
845
|
+
def on_item_menu(event)
|
846
|
+
return unless (item = event.item).ok?
|
847
|
+
|
848
|
+
item_data = get_item_data(item)
|
849
|
+
clientpt = event.get_point
|
850
|
+
screenpt = client_to_screen(clientpt)
|
851
|
+
|
852
|
+
Wx::log_message(
|
853
|
+
"OnItemMenu for item \"#{item_data ? item_data : 'unknown'}\" at screen coords (#{screenpt.x}, #{screenpt.y})")
|
854
|
+
|
855
|
+
show_popup_menu(item, clientpt)
|
856
|
+
end
|
857
|
+
|
858
|
+
def on_context_menu(event)
|
859
|
+
pt = event.position
|
860
|
+
|
861
|
+
Wx::log_message("OnContextMenu at screen coords (#{pt.x}, #{pt.y})")
|
862
|
+
|
863
|
+
event.skip
|
864
|
+
end
|
865
|
+
|
866
|
+
def show_popup_menu(id, pos)
|
867
|
+
title = ""
|
868
|
+
if id.ok?
|
869
|
+
title << "Menu for " << get_item_text(id)
|
870
|
+
else
|
871
|
+
title = "Menu for no particular item"
|
872
|
+
end
|
873
|
+
|
874
|
+
menu = Wx::Menu.new(title)
|
875
|
+
menu.append(Wx::ID_ABOUT, "&About...")
|
876
|
+
menu.append_separator
|
877
|
+
menu.append(TreeTest_Highlight, "&Highlight item")
|
878
|
+
menu.append(TreeTest_Dump, "&Dump")
|
879
|
+
popup_menu(menu, pos)
|
880
|
+
end
|
881
|
+
|
882
|
+
def on_rmouse_down(event)
|
883
|
+
Wx::log_message("Right mouse button down")
|
884
|
+
|
885
|
+
event.skip
|
886
|
+
end
|
887
|
+
|
888
|
+
def on_item_rclick(event)
|
889
|
+
unless (itemId = event.item).ok?
|
890
|
+
Wx::log_message("on_item_rclick: event should have a valid item")
|
891
|
+
return
|
892
|
+
end
|
893
|
+
|
894
|
+
item_data = get_item_data(itemId)
|
895
|
+
Wx::log_message("Item \"#{item_data ? item_data : 'unknown'}\" right clicked")
|
896
|
+
|
897
|
+
event.skip
|
898
|
+
end
|
899
|
+
|
900
|
+
def on_rmouse_up(event)
|
901
|
+
Wx::log_message("Right mouse button up")
|
902
|
+
|
903
|
+
event.skip
|
904
|
+
end
|
905
|
+
|
906
|
+
def on_rmouse_dclick(event)
|
907
|
+
id = hit_test(event.get_position)
|
908
|
+
unless id.ok?
|
909
|
+
Wx::log_message("No item under mouse")
|
910
|
+
else
|
911
|
+
item_data = get_item_data(id)
|
912
|
+
if item_data
|
913
|
+
Wx::log_message("Item '#{item_data}' under mouse")
|
914
|
+
end
|
915
|
+
end
|
916
|
+
end
|
917
|
+
|
918
|
+
end
|
919
|
+
|
920
|
+
class MyFrame < Wx::Frame
|
921
|
+
def initialize(title, x, y, w, h)
|
922
|
+
super(nil, :title => title, :pos => [x, y], :size => [w, h])
|
923
|
+
@panel = nil
|
924
|
+
#@splitter = nil
|
925
|
+
@treectrl = nil
|
926
|
+
@textctrl = nil
|
927
|
+
@s_num = 0
|
928
|
+
|
929
|
+
# This reduces flicker effects - even better would be to define
|
930
|
+
# OnEraseBackground to do nothing. When the tree control's scrollbars are
|
931
|
+
# show or hidden, the frame is sent a background erase event.
|
932
|
+
self.background_colour = Wx::WHITE
|
933
|
+
|
934
|
+
# Give it an icon
|
935
|
+
self.icon = Wx::Icon.new(File.join(File.dirname(__FILE__), '..', 'sample.xpm'), Wx::BITMAP_TYPE_XPM)
|
936
|
+
|
937
|
+
# Make a menubar
|
938
|
+
file_menu = Wx::Menu.new
|
939
|
+
style_menu = Wx::Menu.new
|
940
|
+
tree_menu = Wx::Menu.new
|
941
|
+
item_menu = Wx::Menu.new
|
942
|
+
|
943
|
+
file_menu.append(Wx::ID_CLEAR, "&Clear log\tCtrl-L");
|
944
|
+
file_menu.append_separator
|
945
|
+
file_menu.append(Wx::ID_ABOUT, "&About...")
|
946
|
+
file_menu.append_separator
|
947
|
+
file_menu.append(Wx::ID_EXIT, "E&xit\tAlt-X")
|
948
|
+
|
949
|
+
style_menu.append(TreeTest_TogButtons,
|
950
|
+
"Toggle &normal buttons", "", Wx::ITEM_CHECK)
|
951
|
+
style_menu.append(TreeTest_TogTwist,
|
952
|
+
"Toggle &twister buttons", "", Wx::ITEM_CHECK)
|
953
|
+
style_menu.append(TreeTest_ToggleButtons,
|
954
|
+
"Toggle image &buttons", "", Wx::ITEM_CHECK)
|
955
|
+
style_menu.append_separator
|
956
|
+
style_menu.append(TreeTest_TogLines,
|
957
|
+
"Toggle &no lines", "", Wx::ITEM_CHECK)
|
958
|
+
style_menu.append(TreeTest_TogRootLines,
|
959
|
+
"Toggle &lines at root", "", Wx::ITEM_CHECK)
|
960
|
+
style_menu.append(TreeTest_TogHideRoot,
|
961
|
+
"Toggle &hidden root", "", Wx::ITEM_CHECK)
|
962
|
+
style_menu.append(TreeTest_TogBorder,
|
963
|
+
"Toggle &item border", "", Wx::ITEM_CHECK)
|
964
|
+
style_menu.append(TreeTest_TogFullHighlight,
|
965
|
+
"Toggle &full row highlight", "", Wx::ITEM_CHECK)
|
966
|
+
style_menu.append(TreeTest_TogEdit,
|
967
|
+
"Toggle &edit mode", "", Wx::ITEM_CHECK)
|
968
|
+
style_menu.append(TreeTest_ToggleSel,
|
969
|
+
"Toggle multiple &selection", "", Wx::ITEM_CHECK)
|
970
|
+
style_menu.append(TreeTest_ToggleImages,
|
971
|
+
"Toggle show ima&ges", "", Wx::ITEM_CHECK)
|
972
|
+
style_menu.append(TreeTest_ToggleStates,
|
973
|
+
"Toggle show st&ates", "", Wx::ITEM_CHECK)
|
974
|
+
style_menu.append(TreeTest_ToggleBell,
|
975
|
+
"Toggle &bell on no match", "", Wx::ITEM_CHECK)
|
976
|
+
style_menu.append(TreeTest_ToggleAlternateImages,
|
977
|
+
"Toggle alternate images", "", Wx::ITEM_CHECK)
|
978
|
+
style_menu.append(TreeTest_ToggleAlternateStates,
|
979
|
+
"Toggle alternate state images", "", Wx::ITEM_CHECK)
|
980
|
+
style_menu.append(TreeTest_SetImageSize, "Set image si&ze...")
|
981
|
+
style_menu.append_separator
|
982
|
+
style_menu.append(TreeTest_SetFgColour, "Set &foreground colour...")
|
983
|
+
style_menu.append(TreeTest_SetBgColour, "Set &background colour...")
|
984
|
+
style_menu.append_separator
|
985
|
+
style_menu.append(TreeTest_ResetStyle, "&Reset to default\tF10")
|
986
|
+
|
987
|
+
tree_menu.append(TreeTest_FreezeThaw,
|
988
|
+
"&Freeze the tree", "", Wx::ITEM_CHECK)
|
989
|
+
tree_menu.append(TreeTest_Recreate, "&Recreate the tree")
|
990
|
+
tree_menu.append(TreeTest_CollapseAndReset, "C&ollapse and reset")
|
991
|
+
tree_menu.append_separator
|
992
|
+
tree_menu.append(TreeTest_AddItem, "Append a &new item")
|
993
|
+
tree_menu.append(TreeTest_AddManyItems, "Appends &many items")
|
994
|
+
tree_menu.append(TreeTest_InsertItem, "&Insert a new item")
|
995
|
+
tree_menu.append(TreeTest_Delete, "&Delete selected item")
|
996
|
+
tree_menu.append(TreeTest_DeleteChildren, "Delete &children")
|
997
|
+
tree_menu.append(TreeTest_DeleteAll, "Delete &all items")
|
998
|
+
tree_menu.append(TreeTest_SelectRoot, "Select root item")
|
999
|
+
tree_menu.append_separator
|
1000
|
+
tree_menu.append(TreeTest_SetFocusedRoot, "Set focus to root item")
|
1001
|
+
tree_menu.append(TreeTest_ClearFocused, "Reset focus")
|
1002
|
+
|
1003
|
+
tree_menu.append_separator
|
1004
|
+
tree_menu.append(TreeTest_Count, "Count children of current item")
|
1005
|
+
tree_menu.append(TreeTest_CountRec, "Recursively count children of current item")
|
1006
|
+
tree_menu.append_separator
|
1007
|
+
tree_menu.append(TreeTest_Sort, "Sort children of current item")
|
1008
|
+
tree_menu.append(TreeTest_SortRev, "Sort in reversed order")
|
1009
|
+
tree_menu.append_separator
|
1010
|
+
tree_menu.append(TreeTest_EnsureVisible, "Make the last item &visible")
|
1011
|
+
tree_menu.append(TreeTest_SetFocus, "Set &focus to the tree")
|
1012
|
+
tree_menu.append_separator
|
1013
|
+
tree_menu.append(TreeTest_IncIndent, "Add 5 points to indentation\tAlt-I")
|
1014
|
+
tree_menu.append(TreeTest_DecIndent, "Reduce indentation by 5 points\tAlt-R")
|
1015
|
+
tree_menu.append_separator
|
1016
|
+
tree_menu.append(TreeTest_IncSpacing, "Add 5 points to spacing\tCtrl-I")
|
1017
|
+
tree_menu.append(TreeTest_DecSpacing, "Reduce spacing by 5 points\tCtrl-R")
|
1018
|
+
|
1019
|
+
item_menu.append(TreeTest_Dump, "&Dump item children")
|
1020
|
+
item_menu.append(TreeTest_Rename, "&Rename item...")
|
1021
|
+
|
1022
|
+
item_menu.append_separator
|
1023
|
+
item_menu.append(TreeTest_SetBold, "Make item &bold")
|
1024
|
+
item_menu.append(TreeTest_ClearBold, "Make item ¬ bold")
|
1025
|
+
item_menu.append_separator
|
1026
|
+
item_menu.append(TreeTest_ToggleIcon, "Toggle the item's &icon")
|
1027
|
+
item_menu.append(TreeTest_ToggleState, "Toggle the item's &state")
|
1028
|
+
|
1029
|
+
item_menu.append_separator
|
1030
|
+
item_menu.append(TreeTest_ShowFirstVisible, "Show &first visible")
|
1031
|
+
if Wx.has_feature?(:HAS_LAST_VISIBLE)
|
1032
|
+
item_menu.append(TreeTest_ShowLastVisible, "Show &last visible")
|
1033
|
+
end
|
1034
|
+
item_menu.append(TreeTest_ShowNextVisible, "Show &next visible")
|
1035
|
+
item_menu.append(TreeTest_ShowPrevVisible, "Show &previous visible")
|
1036
|
+
item_menu.append_separator
|
1037
|
+
item_menu.append(TreeTest_ShowParent, "Show pa&rent")
|
1038
|
+
item_menu.append(TreeTest_ShowPrevSibling, "Show &previous sibling")
|
1039
|
+
item_menu.append(TreeTest_ShowNextSibling, "Show &next sibling")
|
1040
|
+
item_menu.append_separator
|
1041
|
+
item_menu.append(TreeTest_ScrollTo, "Scroll &to item",
|
1042
|
+
"Scroll to the last by one top level child")
|
1043
|
+
item_menu.append(TreeTest_SelectLast, "Select &last item",
|
1044
|
+
"Select the last item")
|
1045
|
+
|
1046
|
+
item_menu.append_separator
|
1047
|
+
item_menu.append(TreeTest_DumpSelected, "Dump selected items\tAlt-D")
|
1048
|
+
item_menu.append(TreeTest_Select, "Select current item\tAlt-S")
|
1049
|
+
item_menu.append(TreeTest_Unselect, "Unselect everything\tAlt-U")
|
1050
|
+
item_menu.append(TreeTest_SelectChildren, "Select all children\tCtrl-A")
|
1051
|
+
|
1052
|
+
menu_bar = Wx::MenuBar.new
|
1053
|
+
menu_bar.append(file_menu, "&File")
|
1054
|
+
menu_bar.append(style_menu, "&Style")
|
1055
|
+
menu_bar.append(tree_menu, "&Tree")
|
1056
|
+
menu_bar.append(item_menu, "&Item")
|
1057
|
+
self.menu_bar = menu_bar
|
1058
|
+
|
1059
|
+
@panel = Wx::Panel.new(self)
|
1060
|
+
|
1061
|
+
# create the controls
|
1062
|
+
@textctrl = Wx::TextCtrl.new(@panel,
|
1063
|
+
:value => "Log text\n",
|
1064
|
+
:style => Wx::TE_MULTILINE | Wx::SUNKEN_BORDER)
|
1065
|
+
|
1066
|
+
create_tree_with_default_style
|
1067
|
+
|
1068
|
+
menu_bar.check(TreeTest_ToggleImages, true)
|
1069
|
+
menu_bar.check(TreeTest_ToggleStates, true)
|
1070
|
+
menu_bar.check(TreeTest_ToggleAlternateImages, false)
|
1071
|
+
menu_bar.check(TreeTest_ToggleAlternateStates, false)
|
1072
|
+
|
1073
|
+
# create a status bar with 3 panes
|
1074
|
+
create_status_bar(2)
|
1075
|
+
|
1076
|
+
set_status_text("", 0)
|
1077
|
+
|
1078
|
+
# set our text control as the log target
|
1079
|
+
logWindow = Wx::LogTextCtrl.new(@textctrl)
|
1080
|
+
Wx::Log::set_active_target(logWindow)
|
1081
|
+
|
1082
|
+
# @splitter.split_horizontally(@treectrl, @textctrl, 500)
|
1083
|
+
|
1084
|
+
evt_close :on_close
|
1085
|
+
evt_size :on_size
|
1086
|
+
evt_idle :on_idle
|
1087
|
+
|
1088
|
+
evt_menu Wx::ID_EXIT, :on_quit
|
1089
|
+
evt_menu Wx::ID_ABOUT, :on_about
|
1090
|
+
evt_menu Wx::ID_CLEAR, :on_clear_log
|
1091
|
+
|
1092
|
+
evt_menu TreeTest_TogButtons, :on_tog_buttons
|
1093
|
+
evt_menu TreeTest_TogTwist, :on_tog_twist
|
1094
|
+
evt_menu TreeTest_TogLines, :on_tog_lines
|
1095
|
+
evt_menu TreeTest_TogEdit, :on_tog_edit
|
1096
|
+
evt_menu TreeTest_TogHideRoot, :on_tog_hide_root
|
1097
|
+
evt_menu TreeTest_TogRootLines, :on_tog_root_lines
|
1098
|
+
evt_menu TreeTest_TogBorder, :on_tog_border
|
1099
|
+
evt_menu TreeTest_TogFullHighlight, :on_tog_full_highlight
|
1100
|
+
evt_menu TreeTest_SetFgColour, :on_set_fg_colour
|
1101
|
+
evt_menu TreeTest_SetBgColour, :on_set_bg_colour
|
1102
|
+
evt_menu TreeTest_ResetStyle, :on_reset_style
|
1103
|
+
|
1104
|
+
evt_menu TreeTest_Highlight, :on_highlight
|
1105
|
+
evt_menu TreeTest_Dump, :on_dump
|
1106
|
+
evt_menu TreeTest_DumpSelected, :on_dump_selected
|
1107
|
+
evt_menu TreeTest_Select, :on_select
|
1108
|
+
evt_menu TreeTest_Unselect, :on_unselect
|
1109
|
+
evt_menu TreeTest_ToggleSel, :on_toggle_sel
|
1110
|
+
evt_menu TreeTest_SelectChildren, :on_select_children
|
1111
|
+
evt_menu TreeTest_Rename, :on_rename
|
1112
|
+
evt_menu TreeTest_Count, :on_count
|
1113
|
+
evt_menu TreeTest_CountRec, :on_count_rec
|
1114
|
+
evt_menu TreeTest_Sort, :on_sort
|
1115
|
+
evt_menu TreeTest_SortRev, :on_sort_rev
|
1116
|
+
evt_menu TreeTest_SetBold, :on_set_bold
|
1117
|
+
evt_menu TreeTest_ClearBold, :on_clear_bold
|
1118
|
+
evt_menu TreeTest_Delete, :on_delete
|
1119
|
+
evt_menu TreeTest_DeleteChildren, :on_delete_children
|
1120
|
+
evt_menu TreeTest_DeleteAll, :on_delete_all
|
1121
|
+
evt_menu TreeTest_Recreate, :on_recreate
|
1122
|
+
evt_menu TreeTest_FreezeThaw, :on_freeze_thaw
|
1123
|
+
evt_menu TreeTest_ToggleImages, :on_toggle_images
|
1124
|
+
evt_menu TreeTest_ToggleStates, :on_toggle_states
|
1125
|
+
evt_menu TreeTest_ToggleBell, :on_toggle_bell
|
1126
|
+
evt_menu TreeTest_ToggleAlternateImages, :on_toggle_alternate_images
|
1127
|
+
evt_menu TreeTest_ToggleAlternateStates, :on_toggle_alternate_states
|
1128
|
+
unless Wx.has_feature?(:WXMSW)
|
1129
|
+
evt_menu TreeTest_ToggleButtons, :on_toggle_buttons
|
1130
|
+
end
|
1131
|
+
evt_menu TreeTest_SetImageSize, :on_set_image_size
|
1132
|
+
evt_menu TreeTest_CollapseAndReset, :on_collapse_and_reset
|
1133
|
+
evt_menu TreeTest_EnsureVisible, :on_ensure_visible
|
1134
|
+
evt_menu TreeTest_SetFocus, :on_set_focus
|
1135
|
+
evt_menu TreeTest_AddItem, :on_add_item
|
1136
|
+
evt_menu TreeTest_AddManyItems, :on_add_many_items
|
1137
|
+
evt_menu TreeTest_InsertItem, :on_insert_item
|
1138
|
+
evt_menu TreeTest_IncIndent, :on_inc_indent
|
1139
|
+
evt_menu TreeTest_DecIndent, :on_dec_indent
|
1140
|
+
evt_menu TreeTest_IncSpacing, :on_inc_spacing
|
1141
|
+
evt_menu TreeTest_DecSpacing, :on_dec_spacing
|
1142
|
+
evt_menu TreeTest_ToggleIcon, :on_toggle_icon
|
1143
|
+
evt_menu TreeTest_ToggleState, :on_toggle_state
|
1144
|
+
evt_menu TreeTest_SelectRoot, :on_select_root
|
1145
|
+
evt_menu TreeTest_SetFocusedRoot, :on_set_focused_root
|
1146
|
+
evt_menu TreeTest_ClearFocused, :on_clear_focused
|
1147
|
+
|
1148
|
+
evt_menu TreeTest_ShowFirstVisible, :on_show_first_visible
|
1149
|
+
if Wx.has_feature?(:HAS_LAST_VISIBLE)
|
1150
|
+
evt_menu TreeTest_ShowLastVisible, :on_show_last_visible
|
1151
|
+
end
|
1152
|
+
evt_menu TreeTest_ShowNextVisible, :on_show_next_visible
|
1153
|
+
evt_menu TreeTest_ShowPrevVisible, :on_show_prev_visible
|
1154
|
+
evt_menu TreeTest_ShowParent, :on_show_parent
|
1155
|
+
evt_menu TreeTest_ShowPrevSibling, :on_show_prev_sibling
|
1156
|
+
evt_menu TreeTest_ShowNextSibling, :on_show_next_sibling
|
1157
|
+
evt_menu TreeTest_ScrollTo, :on_scroll_to
|
1158
|
+
evt_menu TreeTest_SelectLast, :on_select_last
|
1159
|
+
end
|
1160
|
+
|
1161
|
+
def check_item(id)
|
1162
|
+
Wx::message_box("Please select some item first!",
|
1163
|
+
"Tree sample error",
|
1164
|
+
Wx::OK | Wx::ICON_EXCLAMATION,
|
1165
|
+
self) unless id && id.ok?
|
1166
|
+
id && id.ok?
|
1167
|
+
end
|
1168
|
+
|
1169
|
+
def create_tree_with_default_style
|
1170
|
+
|
1171
|
+
style = Wx::TR_DEFAULT_STYLE | Wx::TR_HAS_VARIABLE_ROW_HEIGHT | Wx::TR_EDIT_LABELS
|
1172
|
+
|
1173
|
+
create_tree(style | Wx::SUNKEN_BORDER)
|
1174
|
+
|
1175
|
+
# as we don't know what Wx::TR_DEFAULT_STYLE could contain, test for
|
1176
|
+
# everything
|
1177
|
+
mbar = menu_bar
|
1178
|
+
mbar.check(TreeTest_TogButtons, (style & Wx::TR_HAS_BUTTONS) != 0)
|
1179
|
+
mbar.check(TreeTest_TogButtons, (style & Wx::TR_TWIST_BUTTONS) != 0)
|
1180
|
+
mbar.check(TreeTest_TogLines, (style & Wx::TR_NO_LINES) != 0)
|
1181
|
+
mbar.check(TreeTest_TogRootLines, (style & Wx::TR_LINES_AT_ROOT) != 0)
|
1182
|
+
mbar.check(TreeTest_TogHideRoot, (style & Wx::TR_HIDE_ROOT) != 0)
|
1183
|
+
mbar.check(TreeTest_TogEdit, (style & Wx::TR_EDIT_LABELS) != 0)
|
1184
|
+
mbar.check(TreeTest_TogBorder, (style & Wx::TR_ROW_LINES) != 0)
|
1185
|
+
mbar.check(TreeTest_TogFullHighlight, (style & Wx::TR_FULL_ROW_HIGHLIGHT) != 0)
|
1186
|
+
end
|
1187
|
+
|
1188
|
+
def create_tree(style)
|
1189
|
+
@treectrl = MyTreeCtrl.new(@panel, :style => style)
|
1190
|
+
|
1191
|
+
menu_bar.enable(Wx::TreeTest_SelectRoot, (style & Wx::TR_HIDE_ROOT) == 0)
|
1192
|
+
|
1193
|
+
resize
|
1194
|
+
end
|
1195
|
+
|
1196
|
+
def tog_style(id, flag)
|
1197
|
+
style = @treectrl.get_window_style ^ flag
|
1198
|
+
|
1199
|
+
if Wx.has_feature?(:WXMSW)
|
1200
|
+
# treectrl styles can't be changed on the fly using the native
|
1201
|
+
# control and the tree must be recreated
|
1202
|
+
@treectrl.destroy
|
1203
|
+
create_tree(style)
|
1204
|
+
else
|
1205
|
+
@treectrl.set_window_style(style)
|
1206
|
+
end
|
1207
|
+
|
1208
|
+
menu_bar.check(id, (style & flag) != 0)
|
1209
|
+
end
|
1210
|
+
|
1211
|
+
def resize
|
1212
|
+
size = get_client_size
|
1213
|
+
@treectrl.set_size(Wx::Rect.new(0, 0, size.width, size.height * 2 / 3)) if @treectrl
|
1214
|
+
@textctrl.set_size(Wx::Rect.new(0, 2 * size.height / 3, size.width, size.height / 3)) if @textctrl
|
1215
|
+
end
|
1216
|
+
|
1217
|
+
def on_idle(evt)
|
1218
|
+
if @treectrl
|
1219
|
+
idRoot = @treectrl.root_item
|
1220
|
+
if idRoot.ok?
|
1221
|
+
idLast = @treectrl.get_last_tree_item
|
1222
|
+
status = "Root/last item is %svisible/%svisible" %
|
1223
|
+
[@treectrl.is_visible(idRoot) ? '' : 'not ',
|
1224
|
+
idLast.ok? && @treectrl.is_visible(idLast) ? '' : 'not ']
|
1225
|
+
else
|
1226
|
+
status = "No root item";
|
1227
|
+
end
|
1228
|
+
|
1229
|
+
set_status_text(status, 1)
|
1230
|
+
end
|
1231
|
+
|
1232
|
+
evt.skip
|
1233
|
+
end
|
1234
|
+
|
1235
|
+
def on_size(evt)
|
1236
|
+
resize if (@treectrl && @textctrl)
|
1237
|
+
evt.skip
|
1238
|
+
end
|
1239
|
+
|
1240
|
+
def on_quit(event)
|
1241
|
+
close(true)
|
1242
|
+
end
|
1243
|
+
|
1244
|
+
def on_about(event)
|
1245
|
+
Wx::message_box("Tree test sample\n" +
|
1246
|
+
"(c) Julian Smart 1997, Vadim Zeitlin 1998, Martin Corino 2022",
|
1247
|
+
"About wxRuby tree test",
|
1248
|
+
Wx::OK | Wx::ICON_INFORMATION, self)
|
1249
|
+
end
|
1250
|
+
|
1251
|
+
def on_clear_log(event)
|
1252
|
+
@textctrl.clear
|
1253
|
+
end
|
1254
|
+
|
1255
|
+
def on_rename(event)
|
1256
|
+
item = @treectrl.selection
|
1257
|
+
return unless check_item(item)
|
1258
|
+
# TODO demonstrate creating a custom edit control...
|
1259
|
+
@treectrl.edit_label(item)
|
1260
|
+
end
|
1261
|
+
|
1262
|
+
def on_count(event)
|
1263
|
+
item = @treectrl.selection
|
1264
|
+
return unless check_item(item)
|
1265
|
+
i = @treectrl.children_count(item, false)
|
1266
|
+
Wx::log_message("%d children", i)
|
1267
|
+
end
|
1268
|
+
|
1269
|
+
def on_count_rec(event)
|
1270
|
+
item = @treectrl.selection
|
1271
|
+
return unless check_item(item)
|
1272
|
+
Wx::log_message("%d children", @treectrl.children_count(item))
|
1273
|
+
end
|
1274
|
+
|
1275
|
+
def do_sort(reverse = false)
|
1276
|
+
item = @treectrl.selection
|
1277
|
+
return unless check_item(item)
|
1278
|
+
@treectrl.do_sort_children(item, reverse)
|
1279
|
+
end
|
1280
|
+
|
1281
|
+
def on_highlight(_event)
|
1282
|
+
id = @treectrl.get_focused_item
|
1283
|
+
|
1284
|
+
return unless check_item(id)
|
1285
|
+
|
1286
|
+
r = Wx::Rect.new
|
1287
|
+
if !@treectrl.get_bounding_rect(id, r, true) # text, not full row
|
1288
|
+
Wx::LogMessage("Failed to get bounding item rect")
|
1289
|
+
return
|
1290
|
+
end
|
1291
|
+
@treectrl.paint do |dc|
|
1292
|
+
dc.set_brush(Wx::RED_BRUSH)
|
1293
|
+
dc.set_pen(Wx::TRANSPARENT_PEN)
|
1294
|
+
dc.draw_rectangle(r)
|
1295
|
+
@treectrl.update
|
1296
|
+
end
|
1297
|
+
end
|
1298
|
+
|
1299
|
+
def on_dump(event)
|
1300
|
+
root = @treectrl.selection
|
1301
|
+
return unless check_item(root)
|
1302
|
+
@treectrl.get_items_recursively(root, -1)
|
1303
|
+
end
|
1304
|
+
|
1305
|
+
def on_toggle_sel(event)
|
1306
|
+
tog_style(event.id, Wx::TR_MULTIPLE)
|
1307
|
+
end
|
1308
|
+
|
1309
|
+
def on_dump_selected(event)
|
1310
|
+
if (@treectrl.window_style & Wx::TR_MULTIPLE) == 0
|
1311
|
+
item_id = @treectrl.selection
|
1312
|
+
if item_id.ok?
|
1313
|
+
Wx::log_message("<TreeItem '%s'>",
|
1314
|
+
@treectrl.get_item_text(item_id))
|
1315
|
+
else
|
1316
|
+
Wx::log_message("No tree item selected")
|
1317
|
+
end
|
1318
|
+
else
|
1319
|
+
Wx::log_message("NOT IMPLEMENTED: Multiple selections not available")
|
1320
|
+
# Requires Wx::List - Ruby Array typemap, pointer handling, 29/08/2006
|
1321
|
+
# Currently raises incorrect number of args, 1 for 0
|
1322
|
+
# selected = @treectrl.get_selections
|
1323
|
+
# selected_items.each do | item_id |
|
1324
|
+
# Wx::log_message("\t%s", @treectrl.get_item_text(item_id))
|
1325
|
+
# end
|
1326
|
+
end
|
1327
|
+
end
|
1328
|
+
|
1329
|
+
def on_select(event)
|
1330
|
+
@treectrl.select_item(@treectrl.selection)
|
1331
|
+
end
|
1332
|
+
|
1333
|
+
def on_select_root(event)
|
1334
|
+
unless @treectrl.has_flag(Wx::TR_HIDE_ROOT)
|
1335
|
+
@treectrl.select_item(@treectrl.root_item)
|
1336
|
+
end
|
1337
|
+
end
|
1338
|
+
|
1339
|
+
def on_set_focused_root(event)
|
1340
|
+
unless @treectrl.has_flag(Wx::TR_HIDE_ROOT)
|
1341
|
+
@treectrl.set_focused_item(@treectrl.root_item)
|
1342
|
+
end
|
1343
|
+
end
|
1344
|
+
|
1345
|
+
def on_clear_focused(event)
|
1346
|
+
@treectrl.clear_focused_item
|
1347
|
+
end
|
1348
|
+
|
1349
|
+
def on_unselect(event)
|
1350
|
+
@treectrl.unselect_all
|
1351
|
+
end
|
1352
|
+
|
1353
|
+
def on_select_children(event)
|
1354
|
+
item = @treectrl.get_focused_item
|
1355
|
+
|
1356
|
+
item = @treectrl.root_item unless item.ok?
|
1357
|
+
|
1358
|
+
@treectrl.select_children(item)
|
1359
|
+
end
|
1360
|
+
|
1361
|
+
def do_set_bold(bold = true)
|
1362
|
+
item = @treectrl.selection
|
1363
|
+
return unless check_item(item)
|
1364
|
+
@treectrl.set_item_bold(item, bold)
|
1365
|
+
end
|
1366
|
+
|
1367
|
+
def on_delete(event)
|
1368
|
+
item = @treectrl.selection
|
1369
|
+
return unless check_item(item)
|
1370
|
+
@treectrl.delete(item)
|
1371
|
+
end
|
1372
|
+
|
1373
|
+
def on_delete_children(event)
|
1374
|
+
item = @treectrl.selection
|
1375
|
+
return unless check_item(item)
|
1376
|
+
@treectrl.delete_children(item)
|
1377
|
+
end
|
1378
|
+
|
1379
|
+
def on_delete_all(event)
|
1380
|
+
@treectrl.delete_all_items
|
1381
|
+
end
|
1382
|
+
|
1383
|
+
def on_freeze_thaw(event)
|
1384
|
+
if event.is_checked
|
1385
|
+
@treectrl.freeze
|
1386
|
+
else
|
1387
|
+
@treectrl.thaw
|
1388
|
+
end
|
1389
|
+
|
1390
|
+
Wx::log_message("The tree is %sfrozen", @treectrl.is_frozen ? '' : 'not ')
|
1391
|
+
end
|
1392
|
+
|
1393
|
+
def on_recreate(event)
|
1394
|
+
on_delete_all(event)
|
1395
|
+
@treectrl.add_test_items_to_tree(5, 2)
|
1396
|
+
end
|
1397
|
+
|
1398
|
+
def on_set_image_size(event)
|
1399
|
+
size = Wx.get_number_from_user("Enter the size for the images to use",
|
1400
|
+
"Size: ",
|
1401
|
+
"TreeCtrl sample",
|
1402
|
+
@treectrl.image_size)
|
1403
|
+
if size == -1
|
1404
|
+
return
|
1405
|
+
end
|
1406
|
+
|
1407
|
+
@treectrl.create_image_list(size)
|
1408
|
+
@treectrl.refresh
|
1409
|
+
Wx::THE_APP.show_images = true
|
1410
|
+
end
|
1411
|
+
|
1412
|
+
def on_toggle_images(event)
|
1413
|
+
if Wx::get_app.show_images
|
1414
|
+
@treectrl.unset_image_list
|
1415
|
+
Wx::get_app.show_images = false
|
1416
|
+
else
|
1417
|
+
@treectrl.create_image_list(@treectrl.image_size)
|
1418
|
+
Wx::get_app.show_images = true
|
1419
|
+
end
|
1420
|
+
end
|
1421
|
+
|
1422
|
+
def on_toggle_states(event)
|
1423
|
+
if Wx::get_app.show_states
|
1424
|
+
@treectrl.create_state_imageList(true)
|
1425
|
+
Wx::get_app.show_states = false
|
1426
|
+
else
|
1427
|
+
@treectrl.create_state_imageList
|
1428
|
+
Wx::get_app.show_states = true
|
1429
|
+
end
|
1430
|
+
end
|
1431
|
+
|
1432
|
+
def on_toggle_bell(event)
|
1433
|
+
@treectrl.enable_bell_on_no_match(event.checked?)
|
1434
|
+
end
|
1435
|
+
|
1436
|
+
def on_toggle_alternate_images(event)
|
1437
|
+
alternateImages = @treectrl.alternate_images
|
1438
|
+
|
1439
|
+
@treectrl.alternate_images = !alternateImages
|
1440
|
+
@treectrl.create_image_list(0)
|
1441
|
+
end
|
1442
|
+
|
1443
|
+
def on_toggle_alternate_states(event)
|
1444
|
+
alternateStates = @treectrl.alternate_states
|
1445
|
+
|
1446
|
+
@treectrl.alternate_states = !alternateStates
|
1447
|
+
@treectrl.create_state_imageList
|
1448
|
+
|
1449
|
+
# normal states < alternate states
|
1450
|
+
# so we must reset broken states
|
1451
|
+
if alternateStates
|
1452
|
+
@treectrl.reset_broken_state_images
|
1453
|
+
end
|
1454
|
+
end
|
1455
|
+
|
1456
|
+
def on_toggle_buttons(event)
|
1457
|
+
unless Wx.has_feature?(:WXMSW)
|
1458
|
+
if Wx::THE_APP.show_buttons
|
1459
|
+
@treectrl.create_buttons_image_list(-1)
|
1460
|
+
Wx::get_app.show_buttons = false
|
1461
|
+
else
|
1462
|
+
@treectrl.create_buttons_image_list(15)
|
1463
|
+
Wx::get_app.show_buttons = true
|
1464
|
+
end
|
1465
|
+
end
|
1466
|
+
end
|
1467
|
+
|
1468
|
+
def on_collapse_and_reset(event)
|
1469
|
+
@treectrl.collapse_and_reset(@treectrl.get_root_item)
|
1470
|
+
end
|
1471
|
+
|
1472
|
+
def on_ensure_visible(event)
|
1473
|
+
@treectrl.do_ensure_visible
|
1474
|
+
end
|
1475
|
+
|
1476
|
+
def on_set_focus(event)
|
1477
|
+
@treectrl.set_focus
|
1478
|
+
end
|
1479
|
+
|
1480
|
+
def on_insert_item(event)
|
1481
|
+
image = Wx::THE_APP.show_images ? TreeCtrlIcon_File : -1
|
1482
|
+
@treectrl.insert_item(@treectrl.root_item, -1, "2nd item", image)
|
1483
|
+
end
|
1484
|
+
|
1485
|
+
def on_add_item(event)
|
1486
|
+
@s_num += 1
|
1487
|
+
text = sprintf("Item #%d", @s_num)
|
1488
|
+
@treectrl.append_item(@treectrl.root_item, text)
|
1489
|
+
end
|
1490
|
+
|
1491
|
+
def on_add_many_items(event)
|
1492
|
+
Wx::WindowUpdateLocker.update(@treectrl) do
|
1493
|
+
root = @treectrl.root_item
|
1494
|
+
1000.times {|n| @treectrl.append_item(root, "Item #%03d" % [n]) }
|
1495
|
+
end
|
1496
|
+
end
|
1497
|
+
|
1498
|
+
def on_inc_indent(event)
|
1499
|
+
if @treectrl.indent < 100
|
1500
|
+
@treectrl.indent += 5
|
1501
|
+
end
|
1502
|
+
end
|
1503
|
+
|
1504
|
+
def on_dec_indent(event)
|
1505
|
+
if @treectrl.indent > 10
|
1506
|
+
@treectrl.indent -= 5
|
1507
|
+
end
|
1508
|
+
end
|
1509
|
+
|
1510
|
+
def on_inc_spacing(event)
|
1511
|
+
if @treectrl.spacing < 100
|
1512
|
+
@treectrl.spacing += 5
|
1513
|
+
end
|
1514
|
+
end
|
1515
|
+
|
1516
|
+
def on_dec_spacing(event)
|
1517
|
+
if @treectrl.spacing > 10
|
1518
|
+
@treectrl.spacing -= 5
|
1519
|
+
end
|
1520
|
+
end
|
1521
|
+
|
1522
|
+
def on_toggle_icon(event)
|
1523
|
+
item = @treectrl.focused_item
|
1524
|
+
return unless check_item(item)
|
1525
|
+
@treectrl.do_toggle_icon(item)
|
1526
|
+
end
|
1527
|
+
|
1528
|
+
def on_toggle_state(event)
|
1529
|
+
item = @treectrl.focused_item
|
1530
|
+
return unless check_item(item)
|
1531
|
+
@treectrl.do_toggle_state(item)
|
1532
|
+
end
|
1533
|
+
|
1534
|
+
def do_show_first_or_last(label)
|
1535
|
+
item = yield
|
1536
|
+
unless item.ok?
|
1537
|
+
Wx::log_message("There is no %s item" % label)
|
1538
|
+
else
|
1539
|
+
Wx::log_message("The %s item is \"%s\"" %
|
1540
|
+
[label, @treectrl.item_text(item)])
|
1541
|
+
end
|
1542
|
+
end
|
1543
|
+
|
1544
|
+
def do_show_relative_item(label)
|
1545
|
+
item = @treectrl.focused_item
|
1546
|
+
|
1547
|
+
return unless item.ok?
|
1548
|
+
unless !label['visible'] || @treectrl.visible?(item)
|
1549
|
+
Wx::log_message("The selected item must be visible.")
|
1550
|
+
return
|
1551
|
+
end
|
1552
|
+
|
1553
|
+
item = yield(item)
|
1554
|
+
|
1555
|
+
unless item.ok?
|
1556
|
+
Wx::log_message("There is no %s item" % label)
|
1557
|
+
else
|
1558
|
+
Wx::log_message("The %s item is \"%s\"" %
|
1559
|
+
[label, @treectrl.item_text(item)])
|
1560
|
+
end
|
1561
|
+
end
|
1562
|
+
|
1563
|
+
def on_show_first_visible(event)
|
1564
|
+
do_show_first_or_last("first visible") { @treectrl.first_visible_item }
|
1565
|
+
end
|
1566
|
+
|
1567
|
+
def on_show_last_visible(event)
|
1568
|
+
if Wx.has_feature?(:HAS_LAST_VISIBLE)
|
1569
|
+
do_show_first_or_last("last visible") { @treectrl.last_visible_item }
|
1570
|
+
end
|
1571
|
+
end
|
1572
|
+
|
1573
|
+
def on_show_next_visible(event)
|
1574
|
+
do_show_relative_item("next visible") { |itm| @treectrl.next_visible(itm) }
|
1575
|
+
end
|
1576
|
+
|
1577
|
+
def on_show_prev_visible(event)
|
1578
|
+
do_show_relative_item("prev visible") { |itm| @treectrl.prev_visible(itm) }
|
1579
|
+
end
|
1580
|
+
|
1581
|
+
def on_show_parent(event)
|
1582
|
+
do_show_relative_item("parent") { |itm| @treectrl.item_parent(itm) }
|
1583
|
+
end
|
1584
|
+
|
1585
|
+
def on_show_prev_sibling(event)
|
1586
|
+
do_show_relative_item("previous sibling") { |itm| @treectrl.prev_sibling(itm) }
|
1587
|
+
end
|
1588
|
+
|
1589
|
+
def on_show_next_sibling(event)
|
1590
|
+
do_show_relative_item("next sibling") { |itm| @treectrl.next_sibling(itm) }
|
1591
|
+
end
|
1592
|
+
|
1593
|
+
def on_scroll_to(event)
|
1594
|
+
# scroll to the last but one top level child
|
1595
|
+
item = @treectrl.get_prev_sibling(
|
1596
|
+
@treectrl.get_last_child(
|
1597
|
+
@treectrl.root_item))
|
1598
|
+
return unless item.ok?
|
1599
|
+
|
1600
|
+
@treectrl.scroll_to(item)
|
1601
|
+
end
|
1602
|
+
|
1603
|
+
def on_select_last(event)
|
1604
|
+
item = @treectrl.last_tree_item
|
1605
|
+
|
1606
|
+
return unless item.ok?
|
1607
|
+
|
1608
|
+
@treectrl.select_item(item)
|
1609
|
+
end
|
1610
|
+
|
1611
|
+
def on_set_fg_colour(event)
|
1612
|
+
col = Wx::get_colour_from_user(self, @treectrl.foreground_colour)
|
1613
|
+
if col.ok?
|
1614
|
+
@treectrl.foreground_colour = col
|
1615
|
+
end
|
1616
|
+
end
|
1617
|
+
|
1618
|
+
def on_set_bg_colour(event)
|
1619
|
+
col = Wx::get_colour_from_user(self, @treectrl.background_colour)
|
1620
|
+
if col.ok?
|
1621
|
+
@treectrl.background_colour = col
|
1622
|
+
end
|
1623
|
+
end
|
1624
|
+
|
1625
|
+
def on_tog_buttons(event)
|
1626
|
+
tog_style(event.id, Wx::TR_HAS_BUTTONS)
|
1627
|
+
end
|
1628
|
+
|
1629
|
+
def on_tog_twist(event)
|
1630
|
+
tog_style(event.id, Wx::TR_TWIST_BUTTONS)
|
1631
|
+
end
|
1632
|
+
|
1633
|
+
def on_tog_lines(event)
|
1634
|
+
tog_style(event.id, Wx::TR_NO_LINES)
|
1635
|
+
end
|
1636
|
+
|
1637
|
+
def on_tog_edit(event)
|
1638
|
+
tog_style(event.id, Wx::TR_EDIT_LABELS)
|
1639
|
+
end
|
1640
|
+
|
1641
|
+
def on_tog_hide_root(event)
|
1642
|
+
tog_style(event.id, Wx::TR_HIDE_ROOT)
|
1643
|
+
end
|
1644
|
+
|
1645
|
+
def on_tog_root_lines(event)
|
1646
|
+
tog_style(event.id, Wx::TR_LINES_AT_ROOT)
|
1647
|
+
end
|
1648
|
+
|
1649
|
+
def on_tog_border(event)
|
1650
|
+
tog_style(event.id, Wx::TR_ROW_LINES)
|
1651
|
+
end
|
1652
|
+
|
1653
|
+
def on_tog_full_highlight(event)
|
1654
|
+
tog_style(event.id, Wx::TR_FULL_ROW_HIGHLIGHT)
|
1655
|
+
end
|
1656
|
+
|
1657
|
+
def on_reset_style(event)
|
1658
|
+
create_tree_with_default_style
|
1659
|
+
end
|
1660
|
+
|
1661
|
+
def on_set_bold(event)
|
1662
|
+
do_set_bold(true)
|
1663
|
+
end
|
1664
|
+
|
1665
|
+
def on_clear_bold(event)
|
1666
|
+
do_set_bold(false)
|
1667
|
+
end
|
1668
|
+
|
1669
|
+
def on_sort(event)
|
1670
|
+
do_sort
|
1671
|
+
end
|
1672
|
+
|
1673
|
+
def on_sort_rev(event)
|
1674
|
+
do_sort(true)
|
1675
|
+
end
|
1676
|
+
|
1677
|
+
def on_close(event)
|
1678
|
+
Wx::Log::active_target = nil
|
1679
|
+
destroy
|
1680
|
+
end
|
1681
|
+
|
1682
|
+
end
|
1683
|
+
|
1684
|
+
class MyApp < Wx::App
|
1685
|
+
attr_accessor :show_images, :show_buttons, :show_states
|
1686
|
+
|
1687
|
+
def initialize
|
1688
|
+
self.show_images = true
|
1689
|
+
self.show_buttons = false
|
1690
|
+
self.show_states = true
|
1691
|
+
super
|
1692
|
+
end
|
1693
|
+
|
1694
|
+
def on_init
|
1695
|
+
# Create the main frame window
|
1696
|
+
frame = MyFrame.new("TreeCtrl Test", 50, 50, 450, 600)
|
1697
|
+
# show the frame
|
1698
|
+
frame.show(true)
|
1699
|
+
end
|
1700
|
+
end
|
1701
|
+
|
1702
|
+
module TreeCtrlSample
|
1703
|
+
|
1704
|
+
include WxRuby::Sample if defined? WxRuby::Sample
|
1705
|
+
|
1706
|
+
def self.describe
|
1707
|
+
{ file: __FILE__,
|
1708
|
+
summary: 'wxRuby TreeCtrl example.',
|
1709
|
+
description: 'wxRuby example displaying use of TreeCtrl.' }
|
1710
|
+
end
|
1711
|
+
|
1712
|
+
def self.run
|
1713
|
+
execute(__FILE__)
|
1714
|
+
end
|
1715
|
+
|
1716
|
+
if $0 == __FILE__
|
1717
|
+
MyApp.run
|
1718
|
+
end
|
1719
|
+
|
1720
|
+
end
|