Class: Wx::ScrolledCanvas

Inherits:
Window show all
Defined in:
lib/wx/doc/gen/scrolled_canvas.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.

Note:

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:

Note:

Don't confuse ScrollWinEvents generated by this class with ScrollEvent objects generated by ScrollBar and Slider.

Remark:

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

See Also:

Direct Known Subclasses

GRID::Grid

Instance Method Summary collapse

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

#initializeWx::ScrolledCanvas #initialize(parent, id = -1, pos = Wx::DEFAULT_POSITION, size = Wx::DEFAULT_SIZE, style = (Wx::HSCROLL|Wx::VSCROLL), name = ("SCROLLED_WINDOW")) ⇒ Wx::ScrolledCanvas

Returns a new instance of ScrolledCanvas.

Overloads:

  • #initializeWx::ScrolledCanvas

    Default constructor.

  • #initialize(parent, id = -1, pos = Wx::DEFAULT_POSITION, size = Wx::DEFAULT_SIZE, style = (Wx::HSCROLL|Wx::VSCROLL), name = ("SCROLLED_WINDOW")) ⇒ Wx::ScrolledCanvas

    Constructor.

    Remark:

    The window is initially created without visible scrollbars. Call #set_scrollbars to specify how big the virtual window size should be.

    Parameters:

    • parent (Wx::Window)

      Parent window.

    • id (Integer) (defaults to: -1)

      Window identifier. The value Wx::StandardID::ID_ANY indicates a default value.

    • pos (Array(Integer, Integer), Wx::Point) (defaults to: Wx::DEFAULT_POSITION)

      Window position. If a position of DEFAULT_POSITION is specified then a default position is chosen.

    • size (Array(Integer, Integer), Wx::Size) (defaults to: Wx::DEFAULT_SIZE)

      Window size. If a size of DEFAULT_SIZE is specified then the window is sized appropriately.

    • style (Integer) (defaults to: (Wx::HSCROLL|Wx::VSCROLL))

      Window style. See Wx::Scrolled.

    • name (String) (defaults to: ("SCROLLED_WINDOW"))

      Window name.



111
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 111

def initialize(*args) end

Instance Method Details

#adjust_scrollbarsvoid

This method returns an undefined value.



349
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 349

def adjust_scrollbars; end

#calc_scrolled_position(x, y) ⇒ Array(Integer,Integer) #calc_scrolled_position(pt) ⇒ Wx::Point

Overloads:

  • #calc_scrolled_position(x, y) ⇒ Array(Integer,Integer)

    Translates the logical coordinates to the device ones.

    For example, if a window is scrolled 10 pixels to the bottom, the device coordinates of the origin are (0, 0) (as always), but the logical coordinates are (0, 10) and so the call to CalcScrolledPosition(0, 10, xx, yy) will return 0 in yy.

    Parameters:

    • x (Integer)
    • y (Integer)

    Returns:

    • (Array(Integer,Integer))

    See Also:

  • #calc_scrolled_position(pt) ⇒ Wx::Point

    Parameters:

    Returns:



124
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 124

def calc_scrolled_position(*args) end

#calc_unscrolled_position(x, y) ⇒ Array(Integer,Integer) #calc_unscrolled_position(pt) ⇒ Wx::Point

Overloads:

  • #calc_unscrolled_position(x, y) ⇒ Array(Integer,Integer)

    Translates the device coordinates to the logical ones.

    For example, if a window is scrolled 10 pixels to the bottom, the device coordinates of the origin are (0, 0) (as always), but the logical coordinates are (0, 10) and so the call to CalcUnscrolledPosition(0, 0, xx, yy) will return 10 in yy.

    Parameters:

    • x (Integer)
    • y (Integer)

    Returns:

    • (Array(Integer,Integer))

    See Also:

  • #calc_unscrolled_position(pt) ⇒ Wx::Point

    Parameters:

    Returns:



137
# File 'lib/wx/doc/gen/scrolled_canvas.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.

Parameters:

  • parent (Wx::Window)
  • id (Integer) (defaults to: -1,)
  • pos (Array(Integer, Integer), Wx::Point) (defaults to: Wx::DEFAULT_POSITION)
  • size (Array(Integer, Integer), Wx::Size) (defaults to: Wx::DEFAULT_SIZE)
  • style (Integer) (defaults to: (Wx::HSCROLL|Wx::VSCROLL))
  • name (String) (defaults to: ("SCROLLED_WINDOW"))

Returns:

  • (Boolean)

See Also:

  • and create_scrolled for details.


150
# File 'lib/wx/doc/gen/scrolled_canvas.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_scrollingvoid

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_canvas.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::ScrolledCanvas

    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.

Parameters:



185
# File 'lib/wx/doc/gen/scrolled_canvas.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.

Parameters:

  • xScrolling (Boolean)

    If true, enables physical scrolling in the x direction.

  • yScrolling (Boolean)

    If true, enables physical scrolling in the y direction.



194
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 194

def enable_scrolling(xScrolling, yScrolling) end

#get_scale_xFloat Also known as: scale_x

Returns:

  • (Float)


341
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 341

def get_scale_x; end

#get_scale_yFloat Also known as: scale_y

Returns:

  • (Float)


345
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 345

def get_scale_y; end

#get_scroll_lines(orient) ⇒ Integer Also known as: scroll_lines

Parameters:

  • orient (Integer)

Returns:

  • (Integer)


332
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 332

def get_scroll_lines(orient) end

#get_scroll_page_size(orient) ⇒ Integer Also known as: scroll_page_size

Parameters:

  • orient (Integer)

Returns:

  • (Integer)


322
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 322

def get_scroll_page_size(orient) end

#get_scroll_pixels_per_unitArray(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.

Returns:

  • (Array(Integer,Integer))

See Also:



216
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 216

def get_scroll_pixels_per_unit; end

#get_target_rectWx::Rect Also known as: target_rect

Returns:



317
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 317

def get_target_rect; end

#get_target_windowWx::Window Also known as: target_window

Returns:



308
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 308

def get_target_window; end

#get_view_startWx::Point Also known as: view_start

This is a simple overload of GetViewStart(int,int); see that function for more info.

Returns:



221
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 221

def get_view_start; end

#get_virtual_sizeArray(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).

Remark:

Use DC#device_to_logical_x and DC#device_to_logical_y to translate these units to logical units.

Returns:

  • (Array(Integer,Integer))

See Also:



234
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 234

def get_virtual_size; end

#is_auto_scrollingBoolean Also known as: auto_scrolling?

Are we generating the autoscroll events?

Returns:

  • (Boolean)


353
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 353

def is_auto_scrolling; end

#is_retainedBoolean Also known as: retained?

Motif only: true if the window has a backing bitmap.

Returns:

  • (Boolean)


239
# File 'lib/wx/doc/gen/scrolled_canvas.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.

Parameters:



247
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 247

def prepare_dc(dc) end

#scroll(x, y) ⇒ void #scroll(pt) ⇒ void

Overloads:

  • #scroll(x, y) ⇒ void

    This method returns an undefined value.

    Scrolls a window so the view start is at the given point.

    Remark:

    The positions are in scroll units, not pixels, so to convert to pixels you will have to multiply by the number of pixels per scroll increment. If either parameter is DEFAULT_COORD (-1), that position will be ignored (no change in that direction).

    Parameters:

    • x (Integer)

      The x position to scroll to, in scroll units.

    • y (Integer)

      The y position to scroll to, in scroll units.

    See Also:

  • #scroll(pt) ⇒ void

    This method returns an undefined value.

    This is an overload of scroll(int,int); see that function for more info.

    Parameters:



266
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 266

def scroll(*args) end

#set_scale(xs, ys) ⇒ void

This method returns an undefined value.

Parameters:

  • xs (Float)
  • ys (Float)


338
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 338

def set_scale(xs, ys) end

#set_scroll_page_size(orient, pageSize) ⇒ void

This method returns an undefined value.

Parameters:

  • orient (Integer)
  • pageSize (Integer)


328
# File 'lib/wx/doc/gen/scrolled_canvas.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.

Parameters:

  • xstep (Integer)
  • ystep (Integer)


274
# File 'lib/wx/doc/gen/scrolled_canvas.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.set_scrollbars(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.

Parameters:

  • pixelsPerUnitX (Integer)

    Pixels per scroll unit in the horizontal direction.

  • pixelsPerUnitY (Integer)

    Pixels per scroll unit in the vertical direction.

  • noUnitsX (Integer)

    Number of units in the horizontal direction.

  • noUnitsY (Integer)

    Number of units in the vertical direction.

  • xPos (Integer) (defaults to: 0)

    Position to initialize the scrollbars in the horizontal direction, in scroll units.

  • yPos (Integer) (defaults to: 0)

    Position to initialize the scrollbars in the vertical direction, in scroll units.

  • noRefresh (Boolean) (defaults to: false)

    Will not refresh window if true.

See Also:



296
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 296

def set_scrollbars(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.

Parameters:



313
# File 'lib/wx/doc/gen/scrolled_canvas.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.

Parameters:



304
# File 'lib/wx/doc/gen/scrolled_canvas.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:

Note that the window must be created before calling this method.

Parameters:



208
# File 'lib/wx/doc/gen/scrolled_canvas.rb', line 208

def show_scrollbars(horz, vert) end

#stop_auto_scrollingvoid

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_canvas.rb', line 358

def stop_auto_scrolling; end