Class: Wx::ScrolledControl
- Defined in:
- lib/wx/doc/gen/scrolled_control.rb
Overview
The Scrolled class manages scrolling for its client area, transforming the coordinates according to the scrollbar positions, and setting the scroll positions, thumb sizes and ranges according to the area in view.
There are two commonly used (but not the only possible!) specializations of this class:
-
ScrolledWindow, aka Scrolled<Panel>, is equivalent to ScrolledWindow from earlier versions. Derived from Panel, it shares Panel‘s behaviour with regard to TAB traversal and focus handling. Use this if the scrolled window will have child controls.
-
ScrolledCanvas, aka Scrolled<Window>, derives from Window and so doesn’t handle children specially. This is suitable e.g. for implementing scrollable controls such as tree or list controls.
See Wx::Scrolled#create if you want to use Scrolled with a custom class.
Starting from version 2.4 of wxWidgets, there are several ways to use a ScrolledWindow (and now Scrolled). In particular, there are three ways to set the size of the scrolling area: One way is to set the scrollbars directly using a call to #set_scrollbars. This is the way it used to be in any previous version of wxWidgets and it will be kept for backwards compatibility. An additional method of manual control, which requires a little less computation of your own, is to set the total size of the scrolling area by calling either Window#set_virtual_size, or Window#fit_inside, and setting the scrolling increments for it by calling #set_scroll_rate. Scrolling in some orientation is enabled by setting a non-zero increment for it. The most automatic and newest way is to simply let sizers determine the scrolling area. This is now the default when you set an interior sizer into a Scrolled with Window#set_sizer. The scrolling area will be set to the size requested by the sizer and the scrollbars will be assigned for each orientation according to the need for them and the scrolling increment set by #set_scroll_rate. As above, scrolling is only enabled in orientations with a non-zero increment. You can influence the minimum size of the scrolled area controlled by a sizer by calling Window#set_virtual_size_hints. (Calling #set_scrollbars has analogous effects in wxWidgets 2.4 in later versions it may not continue to override the sizer.) Note that if maximum size hints are still supported by Window#set_virtual_size_hints or similar and remove it entirely in future. Todoreview docs for this class replacing SetVirtualSizeHints() with SetMinClientSize().
As with all windows, an application can draw onto a Scrolled using a device context. You have the option of handling the OnPaint handler or overriding the Wx::Scrolled#on_draw function, which is passed a pre-scrolled device context (prepared by Wx::Scrolled#do_prepare_dc). If you don’t wish to calculate your own scrolling, you must call #do_prepare_dc when not drawing from within on_draw, to set the device origin for the device context according to the current scroll position. A Scrolled will normally scroll itself and therefore its child windows as well. It might however be desired to scroll a different window than itself: e.g. when designing a spreadsheet, you will normally only have to scroll the (usually white) cell area, whereas the (usually grey) label area will scroll very differently. For this special purpose, you can call #set_target_window which means that pressing the scrollbars will scroll a different window. Note that the underlying system knows nothing about scrolling coordinates, so that all system functions (mouse events, expose events, refresh calls etc) as well as the position of subwindows are relative to the “physical” origin of the scrolled window. If the user insert a child window at position (10,10) and scrolls the window down 100 pixels (moving the child window out of the visible area), the child window will report a position of (10,-90).
Styles
This class supports the following styles:
-
HSCROLL: If this style is specified and VSCROLL isn't, the window will be scrollable only in horizontal direction (by default, i.e. if neither this style nor VSCROLL is specified, it scrolls in both directions).
-
VSCROLL: If this style is specified and HSCROLL isn't, the window will be scrollable only in vertical direction (by default, i.e. if neither this style nor HSCROLL is specified, it scrolls in both directions).
-
ALWAYS_SHOW_SB: Since wxWidgets 2.9.5, specifying this style makes the window always show its scrollbars, even if they are not used. See #show_scrollbars.
-
RETAINED: Uses a backing pixmap to speed refreshes. Motif only.
Events emitted by this class
The following event-handler methods redirect the events to member method or handler blocks for ScrollWinEvent events. Event handler methods for events emitted by this class:
-
EvtHandler#evt_scrollwin(meth = nil, &block): Process all scroll events.
-
EvtHandler#evt_scrollwin_top(meth = nil, &block): Process EVT_SCROLLWIN_TOP scroll-to-top events.
-
EvtHandler#evt_scrollwin_bottom(meth = nil, &block): Process EVT_SCROLLWIN_BOTTOM scroll-to-bottom events.
-
EvtHandler#evt_scrollwin_lineup(meth = nil, &block): Process EVT_SCROLLWIN_LINEUP line up events.
-
EvtHandler#evt_scrollwin_linedown(meth = nil, &block): Process EVT_SCROLLWIN_LINEDOWN line down events.
-
EvtHandler#evt_scrollwin_pageup(meth = nil, &block): Process EVT_SCROLLWIN_PAGEUP page up events.
-
EvtHandler#evt_scrollwin_pagedown(meth = nil, &block): Process EVT_SCROLLWIN_PAGEDOWN page down events.
-
EvtHandler#evt_scrollwin_thumbtrack(meth = nil, &block): Process EVT_SCROLLWIN_THUMBTRACK thumbtrack events (frequent events sent as the user drags the thumbtrack).
-
EvtHandler#evt_scrollwin_thumbrelease(meth = nil, &block): Process EVT_SCROLLWIN_THUMBRELEASE thumb release events.
Don't confuse ScrollWinEvents generated by this class with ScrollEvent objects generated by ScrollBar and Slider.
Use Scrolled for applications where the user scrolls by a fixed amount, and where a 'page' can be interpreted to be the current visible portion of the window. For more sophisticated applications, use the Scrolled implementation as a guide to build your own scroll behaviour or use VScrolledWindow or its variants.
Category: Miscellaneous Windows
Direct Known Subclasses
Instance Method Summary collapse
- #adjust_scrollbars ⇒ void
- #calc_scrolled_position(*args) ⇒ Object
- #calc_unscrolled_position(*args) ⇒ Object
-
#create(parent, id = -1,, pos = Wx::DEFAULT_POSITION, size = Wx::DEFAULT_SIZE, style = (Wx::HSCROLL|Wx::VSCROLL), name = ("SCROLLED_WINDOW")) ⇒ Boolean
Creates the window for two-step construction.
-
#disable_keyboard_scrolling ⇒ void
Disable use of keyboard keys for scrolling.
-
#do_prepare_dc(dc) ⇒ void
Call this function to prepare the device context for drawing a scrolled image.
-
#enable_scrolling(xScrolling, yScrolling) ⇒ void
Enable or disable use of Window#scroll_window for scrolling.
- #get_scale_x ⇒ Float (also: #scale_x)
- #get_scale_y ⇒ Float (also: #scale_y)
- #get_scroll_lines(orient) ⇒ Integer (also: #scroll_lines)
- #get_scroll_page_size(orient) ⇒ Integer (also: #scroll_page_size)
-
#get_scroll_pixels_per_unit ⇒ Array(Integer,Integer)
(also: #scroll_pixels_per_unit)
Get the number of pixels per scroll unit (line), in each direction, as set by #set_scrollbars.
- #get_target_rect ⇒ Wx::Rect (also: #target_rect)
- #get_target_window ⇒ Wx::Window (also: #target_window)
-
#get_view_start ⇒ Wx::Point
(also: #view_start)
This is a simple overload of GetViewStart(int,int); see that function for more info.
-
#get_virtual_size ⇒ Array(Integer,Integer)
(also: #virtual_size)
Gets the size in device units of the scrollable window area (as opposed to the client size, which is the area of the window currently visible).
-
#initialize(*args) ⇒ ScrolledControl
constructor
A new instance of ScrolledControl.
-
#is_auto_scrolling ⇒ Boolean
(also: #auto_scrolling?)
Are we generating the autoscroll events?.
-
#is_retained ⇒ Boolean
(also: #retained?)
Motif only: true if the window has a backing bitmap.
-
#prepare_dc(dc) ⇒ void
This function is for backwards compatibility only and simply calls #do_prepare_dc now.
- #scroll(*args) ⇒ Object
- #set_scale(xs, ys) ⇒ void
- #set_scroll_page_size(orient, pageSize) ⇒ void
-
#set_scroll_rate(xstep, ystep) ⇒ void
Set the horizontal and vertical scrolling increment only.
-
#set_scrollbars(pixelsPerUnitX, pixelsPerUnitY, noUnitsX, noUnitsY, xPos = 0, yPos = 0, noRefresh = false) ⇒ void
Sets up vertical and/or horizontal scrollbars.
- #set_target_rect(rect) ⇒ void (also: #target_rect=)
-
#set_target_window(window) ⇒ void
(also: #target_window=)
Call this function to tell Scrolled to perform the actual scrolling on a different window (and not on itself).
-
#show_scrollbars(horz, vert) ⇒ void
Set the scrollbar visibility.
-
#stop_auto_scrolling ⇒ void
Stop generating the scroll events when mouse is held outside the window.
Methods inherited from Control
#command, ellipsize, escape_mnemonics, #get_label, #get_label_text, #get_size_from_text, #get_size_from_text_size, remove_mnemonics, #set_label, #set_label_markup, #set_label_text
Methods inherited from Window
#accepts_focus, #accepts_focus_from_keyboard, #accepts_focus_recursively, #add_child, #adjust_for_layout_direction, #always_show_scrollbars, #begin_repositioning_children, #cache_best_size, #can_accept_focus, #can_accept_focus_from_keyboard, #can_scroll, #can_set_transparent, #capture_mouse, #center, #center_on_parent, #centre, #centre_on_parent, #clear_background, #client_to_screen, #client_to_window_size, #close, #convert_dialog_to_pixels, #convert_pixels_to_dialog, #destroy, #destroy_children, #disable, #disable_focus_from_keyboard, #do_update_window_ui, #drag_accept_files, #each_child, #enable, #enable_touch_events, #enable_visible_focus, #end_repositioning_children, find_focus, #find_window_by_id, find_window_by_id, #find_window_by_label, find_window_by_label, #find_window_by_name, find_window_by_name, #fit, #fit_inside, #freeze, #from_dip, from_dip, #from_phys, from_phys, #get_accelerator_table, #get_auto_layout, #get_background_colour, #get_background_style, #get_best_height, #get_best_size, #get_best_virtual_size, #get_best_width, #get_border, get_capture, #get_caret, #get_char_height, #get_char_width, #get_children, get_class_default_attributes, #get_client_area_origin, #get_client_rect, #get_client_size, #get_containing_sizer, #get_content_scale_factor, #get_cursor, #get_default_attributes, #get_dpi, #get_dpi_scale_factor, #get_drop_target, #get_effective_min_size, #get_event_handler, #get_extra_style, #get_font, #get_foreground_colour, #get_grand_parent, #get_help_text, #get_help_text_at_point, #get_id, #get_label, #get_layout_direction, #get_max_client_size, #get_max_height, #get_max_size, #get_max_width, #get_min_client_size, #get_min_height, #get_min_size, #get_min_width, #get_name, #get_next_sibling, #get_parent, #get_popup_menu_selection_from_user, #get_position, #get_prev_sibling, #get_rect, #get_screen_position, #get_screen_rect, #get_scroll_pos, #get_scroll_range, #get_scroll_thumb, #get_size, #get_sizer, #get_text_extent, #get_theme_enabled, #get_tool_tip, #get_tool_tip_text, #get_update_client_rect, #get_update_region, #get_validator, #get_window_border_size, #get_window_style, #get_window_style_flag, #get_window_variant, #handle_as_navigation_key, #handle_window_event, #has_capture, #has_extra_style, #has_flag, #has_focus, #has_multiple_pages, #has_scrollbar, #has_transparent_background, #hide, #hide_with_effect, #hit_test, #inform_first_direction, #inherit_attributes, #inherits_background_colour, #inherits_foreground_colour, #init_dialog, #invalidate_best_size, #is_being_deleted, #is_descendant, #is_double_buffered, #is_enabled, #is_exposed, #is_focusable, #is_frozen, #is_scrollbar_always_shown, #is_shown, #is_shown_on_screen, #is_this_enabled, #is_top_level, #is_transparent_background_supported, #layout, #line_down, #line_up, #locked, #lower_window, #move, #move_after_in_tab_order, #move_before_in_tab_order, #navigate, #navigate_in, new_control_id, #on_internal_idle, #page_down, #page_up, #paint, #paint_buffered, #popup_menu, #post_size_event, #post_size_event_to_parent, #process_window_event, #process_window_event_locally, #push_event_handler, #raise_window, #refresh, #refresh_rect, #register_hot_key, #release_mouse, #remove_child, #remove_event_handler, #reparent, #screen_to_client, #scroll_pages, #scroll_window, #send_size_event, #send_size_event_to_parent, #set_accelerator_table, #set_auto_layout, #set_background_colour, #set_background_style, #set_can_focus, #set_caret, #set_client_size, #set_containing_sizer, #set_cursor, #set_double_buffered, #set_drop_target, #set_event_handler, #set_extra_style, #set_focus, #set_focus_from_kbd, #set_font, #set_foreground_colour, #set_help_text, #set_id, #set_initial_size, #set_label, #set_layout_direction, #set_max_client_size, #set_max_size, #set_min_client_size, #set_min_size, #set_name, #set_next_handler, #set_own_background_colour, #set_own_font, #set_own_foreground_colour, #set_position, #set_previous_handler, #set_scroll_pos, #set_scrollbar, #set_size, #set_size_hints, #set_sizer, #set_sizer_and_fit, #set_theme_enabled, #set_tool_tip, #set_transparent, #set_validator, #set_virtual_size, #set_window_style, #set_window_style_flag, #set_window_variant, #should_inherit_colours, #show, #show_with_effect, #switch_sizer, #thaw, #to_dip, to_dip, #to_phys, to_phys, #toggle_window_style, #transfer_data_from_window, #transfer_data_to_window, #unregister_hot_key, unreserve_control_id, #unset_tool_tip, #update, #update_window_ui, #use_background_colour, #use_bg_col, #use_foreground_colour, #validate, #warp_pointer, #window_to_client_size
Methods inherited from EvtHandler
add_filter, #add_pending_event, #call_after, clear_filters, #connect, #delete_pending_events, #disconnect, #evt_activate, #evt_activate_app, #evt_aui_pane_activated, #evt_aui_pane_button, #evt_aui_pane_close, #evt_aui_pane_maximize, #evt_aui_pane_restore, #evt_aui_render, #evt_auinotebook_allow_dnd, #evt_auinotebook_begin_drag, #evt_auinotebook_bg_dclick, #evt_auinotebook_button, #evt_auinotebook_drag_done, #evt_auinotebook_drag_motion, #evt_auinotebook_end_drag, #evt_auinotebook_page_changed, #evt_auinotebook_page_changing, #evt_auinotebook_page_close, #evt_auinotebook_page_closed, #evt_auinotebook_tab_middle_down, #evt_auinotebook_tab_middle_up, #evt_auinotebook_tab_right_down, #evt_auinotebook_tab_right_up, #evt_auitoolbar_begin_drag, #evt_auitoolbar_middle_click, #evt_auitoolbar_overflow_click, #evt_auitoolbar_right_click, #evt_auitoolbar_tool_dropdown, #evt_button, #evt_calculate_layout, #evt_calendar, #evt_calendar_page_changed, #evt_calendar_sel_changed, #evt_calendar_week_clicked, #evt_calendar_weekday_clicked, #evt_char, #evt_char_hook, #evt_checkbox, #evt_checklistbox, #evt_child_focus, #evt_choice, #evt_choicebook_page_changed, #evt_choicebook_page_changing, #evt_close, #evt_collapsiblepane_changed, #evt_colourpicker_changed, #evt_colourpicker_current_changed, #evt_colourpicker_dialog_cancelled, #evt_combobox, #evt_combobox_closeup, #evt_combobox_dropdown, #evt_command, #evt_command_enter, #evt_command_kill_focus, #evt_command_left_click, #evt_command_left_dclick, #evt_command_range, #evt_command_right_click, #evt_command_scroll, #evt_command_scroll_bottom, #evt_command_scroll_changed, #evt_command_scroll_linedown, #evt_command_scroll_lineup, #evt_command_scroll_pagedown, #evt_command_scroll_pageup, #evt_command_scroll_thumbrelease, #evt_command_scroll_thumbtrack, #evt_command_scroll_top, #evt_command_set_focus, #evt_context_menu, #evt_date_changed, #evt_dialup_connected, #evt_dialup_disconnected, #evt_dirctrl_fileactivated, #evt_dirctrl_selectionchanged, #evt_dirpicker_changed, #evt_display_changed, #evt_dpi_changed, #evt_drop_files, #evt_end_session, #evt_enter_window, #evt_erase_background, #evt_filectrl_fileactivated, #evt_filectrl_filterchanged, #evt_filectrl_folderchanged, #evt_filectrl_selectionchanged, #evt_filepicker_changed, #evt_find, #evt_find_close, #evt_find_next, #evt_find_replace, #evt_find_replace_all, #evt_fontpicker_changed, #evt_fullscreen, #evt_gesture_pan, #evt_gesture_rotate, #evt_gesture_zoom, #evt_grid_cell_changed, #evt_grid_cell_changing, #evt_grid_cell_left_click, #evt_grid_cell_left_dclick, #evt_grid_cell_right_click, #evt_grid_cell_right_dclick, #evt_grid_cmd_col_size, #evt_grid_cmd_editor_created, #evt_grid_cmd_range_selected, #evt_grid_cmd_range_selecting, #evt_grid_cmd_row_size, #evt_grid_col_auto_size, #evt_grid_col_move, #evt_grid_col_size, #evt_grid_col_sort, #evt_grid_editor_created, #evt_grid_editor_hidden, #evt_grid_editor_shown, #evt_grid_label_left_click, #evt_grid_label_left_dclick, #evt_grid_label_right_click, #evt_grid_label_right_dclick, #evt_grid_range_selected, #evt_grid_range_selecting, #evt_grid_row_auto_size, #evt_grid_row_move, #evt_grid_row_size, #evt_grid_select_cell, #evt_grid_tabbing, #evt_header_begin_reorder, #evt_header_begin_resize, #evt_header_click, #evt_header_dclick, #evt_header_dragging_cancelled, #evt_header_end_reorder, #evt_header_end_resize, #evt_header_middle_click, #evt_header_middle_dclick, #evt_header_resizing, #evt_header_right_click, #evt_header_right_dclick, #evt_header_separator_dclick, #evt_help, #evt_help_range, #evt_hibernate, #evt_hotkey, #evt_html_cell_clicked, #evt_html_cell_hover, #evt_html_link_clicked, #evt_hyperlink, #evt_iconize, #evt_idle, #evt_init_dialog, #evt_joy_button_down, #evt_joy_button_up, #evt_joy_move, #evt_joy_zmove, #evt_joystick_events, #evt_key_down, #evt_key_up, #evt_kill_focus, #evt_leave_window, #evt_left_dclick, #evt_left_down, #evt_left_up, #evt_list_begin_drag, #evt_list_begin_label_edit, #evt_list_begin_rdrag, #evt_list_cache_hint, #evt_list_col_begin_drag, #evt_list_col_click, #evt_list_col_dragging, #evt_list_col_end_drag, #evt_list_col_right_click, #evt_list_delete_all_items, #evt_list_delete_item, #evt_list_end_label_edit, #evt_list_insert_item, #evt_list_item_activated, #evt_list_item_checked, #evt_list_item_deselected, #evt_list_item_focused, #evt_list_item_middle_click, #evt_list_item_right_click, #evt_list_item_selected, #evt_list_item_unchecked, #evt_list_key_down, #evt_listbook_page_changed, #evt_listbook_page_changing, #evt_listbox, #evt_listbox_dclick, #evt_long_press, #evt_magnify, #evt_maximize, #evt_media_finished, #evt_media_loaded, #evt_media_pause, #evt_media_play, #evt_media_statechanged, #evt_media_stop, #evt_menu, #evt_menu_close, #evt_menu_highlight, #evt_menu_highlight_all, #evt_menu_open, #evt_menu_range, #evt_middle_dclick, #evt_middle_down, #evt_middle_up, #evt_motion, #evt_mouse_aux1_dclick, #evt_mouse_aux1_down, #evt_mouse_aux1_up, #evt_mouse_aux2_dclick, #evt_mouse_aux2_down, #evt_mouse_aux2_up, #evt_mouse_capture_changed, #evt_mouse_capture_lost, #evt_mouse_events, #evt_mousewheel, #evt_move, #evt_move_end, #evt_move_start, #evt_moving, #evt_navigation_key, #evt_notebook_page_changed, #evt_notebook_page_changing, #evt_paint, #evt_pg_changed, #evt_pg_changing, #evt_pg_col_begin_drag, #evt_pg_col_dragging, #evt_pg_col_end_drag, #evt_pg_double_click, #evt_pg_highlighted, #evt_pg_item_collapsed, #evt_pg_item_expanded, #evt_pg_label_edit_begin, #evt_pg_label_edit_ending, #evt_pg_page_changed, #evt_pg_right_click, #evt_pg_selected, #evt_press_and_tap, #evt_query_end_session, #evt_query_layout_info, #evt_radiobox, #evt_radiobutton, #evt_ribbonbar_help_click, #evt_ribbonbar_page_changed, #evt_ribbonbar_page_changing, #evt_ribbonbar_tab_left_dclick, #evt_ribbonbar_tab_middle_down, #evt_ribbonbar_tab_middle_up, #evt_ribbonbar_tab_right_down, #evt_ribbonbar_tab_right_up, #evt_ribbonbar_toggled, #evt_ribbonbuttonbar_clicked, #evt_ribbonbuttonbar_dropdown_clicked, #evt_ribbongallery_clicked, #evt_ribbongallery_hover_changed, #evt_ribbongallery_selected, #evt_ribbonpanel_extbutton_activated, #evt_ribbontoolbar_clicked, #evt_ribbontoolbar_dropdown_clicked, #evt_richtext_buffer_reset, #evt_richtext_character, #evt_richtext_consuming_character, #evt_richtext_content_deleted, #evt_richtext_content_inserted, #evt_richtext_delete, #evt_richtext_focus_object_changed, #evt_richtext_left_click, #evt_richtext_left_dclick, #evt_richtext_middle_click, #evt_richtext_properties_changed, #evt_richtext_return, #evt_richtext_right_click, #evt_richtext_selection_changed, #evt_richtext_style_changed, #evt_richtext_stylesheet_changed, #evt_richtext_stylesheet_replaced, #evt_richtext_stylesheet_replacing, #evt_right_dclick, #evt_right_down, #evt_right_up, #evt_sash_dragged, #evt_sash_dragged_range, #evt_scroll, #evt_scroll_bottom, #evt_scroll_changed, #evt_scroll_command, #evt_scroll_linedown, #evt_scroll_lineup, #evt_scroll_pagedown, #evt_scroll_pageup, #evt_scroll_thumbrelease, #evt_scroll_thumbtrack, #evt_scroll_top, #evt_scrollbar, #evt_scrollwin, #evt_scrollwin_bottom, #evt_scrollwin_linedown, #evt_scrollwin_lineup, #evt_scrollwin_pagedown, #evt_scrollwin_pageup, #evt_scrollwin_thumbrelease, #evt_scrollwin_thumbtrack, #evt_scrollwin_top, #evt_search, #evt_search_cancel, #evt_set_cursor, #evt_set_focus, #evt_show, #evt_size, #evt_slider, #evt_spin, #evt_spin_down, #evt_spin_up, #evt_spinctrl, #evt_spinctrldouble, #evt_splitter_dclick, #evt_splitter_sash_pos_changed, #evt_splitter_sash_pos_changing, #evt_splitter_sash_pos_resize, #evt_splitter_unsplit, #evt_stc_autocomp_cancelled, #evt_stc_autocomp_char_deleted, #evt_stc_autocomp_completed, #evt_stc_autocomp_selection, #evt_stc_autocomp_selection_change, #evt_stc_calltip_click, #evt_stc_change, #evt_stc_charadded, #evt_stc_clipboard_copy, #evt_stc_clipboard_paste, #evt_stc_do_drop, #evt_stc_doubleclick, #evt_stc_drag_over, #evt_stc_dwellend, #evt_stc_dwellstart, #evt_stc_hotspot_click, #evt_stc_hotspot_dclick, #evt_stc_hotspot_release_click, #evt_stc_indicator_click, #evt_stc_indicator_release, #evt_stc_macrorecord, #evt_stc_margin_right_click, #evt_stc_marginclick, #evt_stc_modified, #evt_stc_needshown, #evt_stc_painted, #evt_stc_romodifyattempt, #evt_stc_savepointleft, #evt_stc_savepointreached, #evt_stc_start_drag, #evt_stc_styleneeded, #evt_stc_updateui, #evt_stc_userlistselection, #evt_stc_zoom, #evt_sys_colour_changed, #evt_taskbar_click, #evt_taskbar_left_dclick, #evt_taskbar_left_down, #evt_taskbar_left_up, #evt_taskbar_move, #evt_taskbar_right_dclick, #evt_taskbar_right_down, #evt_taskbar_right_up, #evt_text, #evt_text_copy, #evt_text_cut, #evt_text_enter, #evt_text_maxlen, #evt_text_paste, #evt_text_url, #evt_time_changed, #evt_timer, #evt_togglebutton, #evt_tool, #evt_tool_dropdown, #evt_tool_enter, #evt_tool_range, #evt_tool_rclicked, #evt_tool_rclicked_range, #evt_toolbook_page_changed, #evt_toolbook_page_changing, #evt_tree_begin_drag, #evt_tree_begin_label_edit, #evt_tree_begin_rdrag, #evt_tree_delete_item, #evt_tree_end_drag, #evt_tree_end_label_edit, #evt_tree_get_info, #evt_tree_item_activated, #evt_tree_item_collapsed, #evt_tree_item_collapsing, #evt_tree_item_expanded, #evt_tree_item_expanding, #evt_tree_item_gettooltip, #evt_tree_item_menu, #evt_tree_item_middle_click, #evt_tree_item_right_click, #evt_tree_key_down, #evt_tree_sel_changed, #evt_tree_sel_changing, #evt_tree_set_info, #evt_tree_state_image_click, #evt_treebook_node_collapsed, #evt_treebook_node_expanded, #evt_treebook_page_changed, #evt_treebook_page_changing, #evt_two_finger_tap, #evt_update_ui, #evt_update_ui_range, #evt_window_create, #evt_window_destroy, #evt_wizard_before_page_changed, #evt_wizard_cancel, #evt_wizard_finished, #evt_wizard_help, #evt_wizard_page_changed, #evt_wizard_page_changing, #evt_wizard_page_shown, #get_client_object, #get_evt_handler_enabled, #get_next_handler, #get_previous_handler, #is_unlinked, #process_event, #process_event_locally, #process_pending_events, #queue_event, register_class, remove_filter, #safely_process_event, #set_client_object, #set_evt_handler_enabled, #set_next_handler, #set_previous_handler, #try_after, #try_before, #unlink
Methods inherited from Object
#clone, #dup, #is_same_as, #un_share
Constructor Details
#initialize ⇒ Wx::ScrolledControl #initialize(parent, id = -1, pos = Wx::DEFAULT_POSITION, size = Wx::DEFAULT_SIZE, style = (Wx::HSCROLL|Wx::VSCROLL), name = ("SCROLLED_WINDOW")) ⇒ Wx::ScrolledControl
Returns a new instance of ScrolledControl.
111 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 111 def initialize(*args) end |
Instance Method Details
#adjust_scrollbars ⇒ void
This method returns an undefined value.
349 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 349 def ; end |
#calc_scrolled_position(x, y) ⇒ Array(Integer,Integer) #calc_scrolled_position(pt) ⇒ Wx::Point
124 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 124 def calc_scrolled_position(*args) end |
#calc_unscrolled_position(x, y) ⇒ Array(Integer,Integer) #calc_unscrolled_position(pt) ⇒ Wx::Point
137 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 137 def calc_unscrolled_position(*args) end |
#create(parent, id = -1,, pos = Wx::DEFAULT_POSITION, size = Wx::DEFAULT_SIZE, style = (Wx::HSCROLL|Wx::VSCROLL), name = ("SCROLLED_WINDOW")) ⇒ Boolean
Creates the window for two-step construction.
Derived classes should call or replace this function. If it is not replaced, bear in mind that it calls T::Create() through the global function create_scrolled so if T::Create() has a different signature than Wx::Scrolled#create you should implement overloaded create_scrolled which would call T::Create() in the correct manner.
150 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 150 def create(parent, id=-1, pos=Wx::DEFAULT_POSITION, size=Wx::DEFAULT_SIZE, style=(Wx::HSCROLL|Wx::VSCROLL), name=("SCROLLED_WINDOW")) end |
#disable_keyboard_scrolling ⇒ void
This method returns an undefined value.
Disable use of keyboard keys for scrolling.
By default cursor movement keys (including Home, End, Page Up and Down) are used to scroll the window appropriately. If the derived class uses these keys for something else, e.g. changing the currently selected item, this function can be used to disable this behaviour as it’s not only not necessary then but can actually be actively harmful if another object forwards a keyboard event corresponding to one of the above keys to us using ProcessWindowEvent() because the event will always be processed which can be undesirable.
156 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 156 def disable_keyboard_scrolling; end |
#do_prepare_dc(dc) ⇒ void
This method returns an undefined value.
Call this function to prepare the device context for drawing a scrolled image.
It sets the device origin according to the current scroll position. #do_prepare_dc is called automatically within the default EVT_PAINT event handler, so your on_draw override will be passed an already ‘pre-scrolled’ device context. However, if you wish to draw from outside of on_draw (e.g. from your own EVT_PAINT handler), you must call this function yourself. For example:
class MyWindow < Wx::ScrolledControl
def on_event(event)
Wx::ClientDC.draw_on(self) do |dc|
do_prepare_dc(dc)
dc.set_pen(Wx::BLACK_PEN)
pos = event.position
if xpos > -1 && ypos > -1 && event.dragging
dc.draw_line(xpos, ypos, pos.x, pos.y)
end
xpos = pos.x
ypos = pos.y
end
end
end
Notice that the function sets the origin by moving it relatively to the current origin position, so you shouldn’t change the origin before calling #do_prepare_dc or, if you do, reset it to (0, 0) later. If you call #do_prepare_dc immediately after device context creation, as in the example above, this problem doesn’t arise, of course, so it is customary to do it like this.
185 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 185 def do_prepare_dc(dc) end |
#enable_scrolling(xScrolling, yScrolling) ⇒ void
This method returns an undefined value.
Enable or disable use of Window#scroll_window for scrolling.
By default, when a scrolled window is logically scrolled, Window#scroll_window is called on the underlying window which scrolls the window contents and only invalidates the part of the window newly brought into view. If false is passed as an argument, then this “physical scrolling” is disabled and the window is entirely invalidated whenever it is scrolled by calling Window#refresh. It should be rarely necessary to disable physical scrolling, so this method shouldn’t be called in normal circumstances.
194 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 194 def enable_scrolling(xScrolling, yScrolling) end |
#get_scale_x ⇒ Float Also known as: scale_x
341 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 341 def get_scale_x; end |
#get_scale_y ⇒ Float Also known as: scale_y
345 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 345 def get_scale_y; end |
#get_scroll_lines(orient) ⇒ Integer Also known as: scroll_lines
332 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 332 def get_scroll_lines(orient) end |
#get_scroll_page_size(orient) ⇒ Integer Also known as: scroll_page_size
322 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 322 def get_scroll_page_size(orient) end |
#get_scroll_pixels_per_unit ⇒ Array(Integer,Integer) Also known as: scroll_pixels_per_unit
Get the number of pixels per scroll unit (line), in each direction, as set by #set_scrollbars.
A value of zero indicates no scrolling in that direction.
216 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 216 def get_scroll_pixels_per_unit; end |
#get_target_rect ⇒ Wx::Rect Also known as: target_rect
317 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 317 def get_target_rect; end |
#get_target_window ⇒ Wx::Window Also known as: target_window
308 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 308 def get_target_window; end |
#get_view_start ⇒ Wx::Point Also known as: view_start
This is a simple overload of GetViewStart(int,int); see that function for more info.
221 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 221 def get_view_start; end |
#get_virtual_size ⇒ Array(Integer,Integer) Also known as: virtual_size
Gets the size in device units of the scrollable window area (as opposed to the client size, which is the area of the window currently visible).
Use DC#device_to_logical_x and DC#device_to_logical_y to translate these units to logical units.
234 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 234 def get_virtual_size; end |
#is_auto_scrolling ⇒ Boolean Also known as: auto_scrolling?
Are we generating the autoscroll events?
353 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 353 def is_auto_scrolling; end |
#is_retained ⇒ Boolean Also known as: retained?
Motif only: true if the window has a backing bitmap.
239 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 239 def is_retained; end |
#prepare_dc(dc) ⇒ void
This method returns an undefined value.
This function is for backwards compatibility only and simply calls #do_prepare_dc now.
Notice that it is not called by the default paint event handle (#do_prepare_dc is), so overriding this method in your derived class is useless.
247 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 247 def prepare_dc(dc) end |
#scroll(x, y) ⇒ void #scroll(pt) ⇒ void
266 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 266 def scroll(*args) end |
#set_scale(xs, ys) ⇒ void
This method returns an undefined value.
338 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 338 def set_scale(xs, ys) end |
#set_scroll_page_size(orient, pageSize) ⇒ void
This method returns an undefined value.
328 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 328 def set_scroll_page_size(orient, pageSize) end |
#set_scroll_rate(xstep, ystep) ⇒ void
This method returns an undefined value.
Set the horizontal and vertical scrolling increment only.
See the pixelsPerUnit parameter in #set_scrollbars.
274 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 274 def set_scroll_rate(xstep, ystep) end |
#set_scrollbars(pixelsPerUnitX, pixelsPerUnitY, noUnitsX, noUnitsY, xPos = 0, yPos = 0, noRefresh = false) ⇒ void
This method returns an undefined value.
Sets up vertical and/or horizontal scrollbars.
The first pair of parameters give the number of pixels per ‘scroll step’, i.e. amount moved when the up or down scroll arrows are pressed. The second pair gives the length of scrollbar in scroll steps, which sets the size of the virtual window. xPos and yPos optionally specify a position to scroll to immediately. For example, the following gives a window horizontal and vertical scrollbars with 20 pixels per scroll step, and a size of 50 steps (1000 pixels) in each direction:
window.(20, 20, 50, 50)
Wx::Scrolled manages the page size itself, using the current client window size as the page size. Note that for more sophisticated scrolling applications, for example where scroll steps may be variable according to the position in the document, it will be necessary to derive a new class from Window, overriding OnSize() and adjusting the scrollbars appropriately.
296 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 296 def (pixelsPerUnitX, pixelsPerUnitY, noUnitsX, noUnitsY, xPos=0, yPos=0, noRefresh=false) end |
#set_target_rect(rect) ⇒ void Also known as: target_rect=
This method returns an undefined value.
313 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 313 def set_target_rect(rect) end |
#set_target_window(window) ⇒ void Also known as: target_window=
This method returns an undefined value.
Call this function to tell Wx::Scrolled to perform the actual scrolling on a different window (and not on itself).
This method is useful when only a part of the window should be scrolled. A typical example is a control consisting of a fixed header and the scrollable contents window: the scrollbars are attached to the main window itself, hence it, and not the contents window must be derived from Wx::Scrolled, but only the contents window scrolls when the scrollbars are used. To implement such setup, you need to call this method with the contents window as argument. Notice that if this method is used, get_size_available_for_scroll_target method must be overridden.
304 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 304 def set_target_window(window) end |
#show_scrollbars(horz, vert) ⇒ void
This method returns an undefined value.
Set the scrollbar visibility.
By default the scrollbar in the corresponding direction is only shown if it is needed, i.e. if the virtual size of the scrolled window in this direction is greater than the current physical window size. Using this function the scrollbar visibility can be changed to be:
-
Wx::ScrollbarVisibility::SHOW_SB_ALWAYS: To always show the scrollbar, even if it is not needed currently (ALWAYS_SHOW_SB style can be used during the window creation to achieve the same effect but it applies in both directions).
-
Wx::ScrollbarVisibility::SHOW_SB_NEVER: To never show the scrollbar at all. In this case the program should presumably provide some other way for the user to scroll the window.
-
Wx::ScrollbarVisibility::SHOW_SB_DEFAULT: To restore the default behaviour described above.
Note that the window must be created before calling this method.
208 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 208 def (horz, vert) end |
#stop_auto_scrolling ⇒ void
This method returns an undefined value.
Stop generating the scroll events when mouse is held outside the window.
358 |
# File 'lib/wx/doc/gen/scrolled_control.rb', line 358 def stop_auto_scrolling; end |