.TH wxScrollBar 3erl "wx 2.2.1" "wxWidgets team." "Erlang Module Definition" .SH NAME wxScrollBar \- Functions for wxScrollBar class .SH DESCRIPTION .LP A \fIwxScrollBar\fR\& is a control that represents a horizontal or vertical scrollbar\&. .LP It is distinct from the two scrollbars that some windows provide automatically, but the two types of scrollbar share the way events are received\&. .LP Remark: A scrollbar has the following main attributes: range, thumb size, page size, and position\&. The range is the total number of units associated with the view represented by the scrollbar\&. For a table with 15 columns, the range would be 15\&. The thumb size is the number of units that are currently visible\&. For the table example, the window might be sized so that only 5 columns are currently visible, in which case the application would set the thumb size to 5\&. When the thumb size becomes the same as or greater than the range, the scrollbar will be automatically hidden on most platforms\&. The page size is the number of units that the scrollbar should scroll by, when \&'paging\&' through the data\&. This value is normally the same as the thumb size length, because it is natural to assume that the visible window size defines a page\&. The scrollbar position is the current thumb position\&. Most applications will find it convenient to provide a function called AdjustScrollbars() which can be called initially, from an OnSize event handler, and whenever the application data changes in size\&. It will adjust the view, object and page size according to the size of the window and the size of the data\&. .LP Styles .LP This class supports the following styles: .LP The difference between EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED .LP The EVT_SCROLL_THUMBRELEASE event is only emitted when actually dragging the thumb using the mouse and releasing it (This EVT_SCROLL_THUMBRELEASE event is also followed by an EVT_SCROLL_CHANGED event)\&. .LP The EVT_SCROLL_CHANGED event also occurs when using the keyboard to change the thumb position, and when clicking next to the thumb (In all these cases the EVT_SCROLL_THUMBRELEASE event does not happen)\&. .LP In short, the EVT_SCROLL_CHANGED event is triggered when scrolling/moving has finished independently of the way it had started\&. Please see the page_samples_widgets ("Slider" page) to see the difference between EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED in action\&. .LP See: Overview scrolling, Overview events, \fIwxScrolled\fR\& (not implemented in wx) .LP This class is derived (and can use functions) from: \fIwxControl\fR\& \fIwxWindow\fR\& \fIwxEvtHandler\fR\& .LP wxWidgets docs: wxScrollBar .SH "EVENTS" .LP Event types emitted from this class: \fIscroll_top\fR\&, \fIscroll_bottom\fR\&, \fIscroll_lineup\fR\&, \fIscroll_linedown\fR\&, \fIscroll_pageup\fR\&, \fIscroll_pagedown\fR\&, \fIscroll_thumbtrack\fR\&, \fIscroll_thumbrelease\fR\&, \fIscroll_changed\fR\&, \fIscroll_top\fR\&, \fIscroll_bottom\fR\&, \fIscroll_lineup\fR\&, \fIscroll_linedown\fR\&, \fIscroll_pageup\fR\&, \fIscroll_pagedown\fR\&, \fIscroll_thumbtrack\fR\&, \fIscroll_thumbrelease\fR\&, \fIscroll_changed\fR\& .SH DATA TYPES .nf \fBwxScrollBar()\fR\& = wx:wx_object() .br .fi .SH EXPORTS .LP .nf .B new() -> wxScrollBar() .br .fi .br .RS .LP Default constructor\&. .RE .LP .nf .B new(Parent, Id) -> wxScrollBar() .br .fi .br .RS .LP Types: .RS 3 Parent = wxWindow:wxWindow() .br Id = integer() .br .RE .RE .LP .nf .B new(Parent, Id, Options :: [Option]) -> wxScrollBar() .br .fi .br .RS .LP Types: .RS 3 Parent = wxWindow:wxWindow() .br Id = integer() .br Option = .br {pos, {X :: integer(), Y :: integer()}} | .br {size, {W :: integer(), H :: integer()}} | .br {style, integer()} | .br {validator, wx:wx_object()} .br .RE .RE .RS .LP Constructor, creating and showing a scrollbar\&. .LP See: \fIcreate/4\fR\&, \fIwxValidator\fR\& (not implemented in wx) .RE .LP .nf .B destroy(This :: wxScrollBar()) -> ok .br .fi .br .RS .LP Destructor, destroying the scrollbar\&. .RE .LP .nf .B create(This, Parent, Id) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br Parent = wxWindow:wxWindow() .br Id = integer() .br .RE .RE .LP .nf .B create(This, Parent, Id, Options :: [Option]) -> boolean() .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br Parent = wxWindow:wxWindow() .br Id = integer() .br Option = .br {pos, {X :: integer(), Y :: integer()}} | .br {size, {W :: integer(), H :: integer()}} | .br {style, integer()} | .br {validator, wx:wx_object()} .br .RE .RE .RS .LP Scrollbar creation function called by the scrollbar constructor\&. .LP See \fInew/3\fR\& for details\&. .RE .LP .nf .B getRange(This) -> integer() .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br .RE .RE .RS .LP Returns the length of the scrollbar\&. .LP See: \fIsetScrollbar/6\fR\& .RE .LP .nf .B getPageSize(This) -> integer() .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br .RE .RE .RS .LP Returns the page size of the scrollbar\&. .LP This is the number of scroll units that will be scrolled when the user pages up or down\&. Often it is the same as the thumb size\&. .LP See: \fIsetScrollbar/6\fR\& .RE .LP .nf .B getThumbPosition(This) -> integer() .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br .RE .RE .RS .LP Returns the current position of the scrollbar thumb\&. .LP See: \fIsetThumbPosition/2\fR\& .RE .LP .nf .B getThumbSize(This) -> integer() .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br .RE .RE .RS .LP Returns the thumb or \&'view\&' size\&. .LP See: \fIsetScrollbar/6\fR\& .RE .LP .nf .B setThumbPosition(This, ViewStart) -> ok .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br ViewStart = integer() .br .RE .RE .RS .LP Sets the position of the scrollbar\&. .LP See: \fIgetThumbPosition/1\fR\& .RE .LP .nf .B setScrollbar(This, Position, ThumbSize, Range, PageSize) -> ok .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br Position = ThumbSize = Range = PageSize = integer() .br .RE .RE .LP .nf .B setScrollbar(This, Position, ThumbSize, Range, PageSize, .B Options :: [Option]) -> .B ok .br .fi .br .RS .LP Types: .RS 3 This = wxScrollBar() .br Position = ThumbSize = Range = PageSize = integer() .br Option = {refresh, boolean()} .br .RE .RE .RS .LP Sets the scrollbar properties\&. .LP Remark: Let\&'s say you wish to display 50 lines of text, using the same font\&. The window is sized so that you can only see 16 lines at a time\&. You would use: The page size is 1 less than the thumb size so that the last line of the previous page will be visible on the next page, to help orient the user\&. Note that with the window at this size, the thumb position can never go above 50 minus 16, or 34\&. You can determine how many lines are currently visible by dividing the current view size by the character height in pixels\&. When defining your own scrollbar behaviour, you will always need to recalculate the scrollbar settings when the window size changes\&. You could therefore put your scrollbar calculations and \fIsetScrollbar/6\fR\& call into a function named AdjustScrollbars, which can be called initially and also from a \fIwxSizeEvent\fR\& event handler function\&. .RE