%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Name: hscrolledwindow.tex %% Purpose: wxHScrolledWindow Documentation %% Author: Bryan Petty %% Modified by: %% Created: 2007-04-04 %% RCS-ID: $Id$ %% Copyright: (c) 2007 wxWidgets Team %% License: wxWindows Licence %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{\class{wxHScrolledWindow}}\label{wxhscrolledwindow} In the name of this class, "H" stands for "horizontal" because it can be used for scrolling columns of variable widths. It is not necessary to know the widths of all columns in advance -- only those which are shown on the screen need to be measured. In any case, this is a generalization of the \helpref{wxScrolledWindow}{wxscrolledwindow} class which can be only used when all columns have the same widths. It lacks some other wxScrolledWindow features however, notably it can't scroll only a rectangle of the window and not its entire client area. To use this class, you need to derive from it and implement the \helpref{OnGetColumnWidth()}{wxvarhscrollhelperongetcolumnwidth} pure virtual method. You also must call \helpref{SetColumnCount()}{wxvarhscrollhelpersetcolumncount} to let the base class know how many columns it should display, but from that moment on the scrolling is handled entirely by wxHScrolledWindow. You only need to draw the visible part of contents in your {\tt OnPaint()} method as usual. You should use \helpref{GetVisibleColumnsBegin()}{wxvarhscrollhelpergetvisiblecolumnsbegin} and \helpref{GetVisibleColumnsEnd()}{wxvarhscrollhelpergetvisiblecolumnsend} to select the lines to display. Note that the device context origin is not shifted so the first visible column always appears at the point $(0, 0)$ in physical as well as logical coordinates. \wxheading{Derived from} \helpref{wxPanel}{wxpanel}\\ \helpref{wxWindow}{wxwindow}\\ \helpref{wxEvtHandler}{wxevthandler}\\ \helpref{wxObject}{wxobject} \helpref{wxVarHScrollHelper}{wxvarhscrollhelper}\\ \helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} \wxheading{Include files} \wxheading{See also} \helpref{wxHVScrolledWindow}{wxhvscrolledwindow}, \rtfsp\helpref{wxVScrolledWindow}{wxvscrolledwindow} \latexignore{\rtfignore{\wxheading{Members}}} \membersection{wxHScrolledWindow::wxHScrolledWindow}\label{wxhscrolledwindowwxhscrolledwindow} \func{}{wxHScrolledWindow}{\void} Default constructor, you must call \helpref{Create()}{wxhscrolledwindowcreate} later. \func{}{wxHScrolledWindow}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxPanelNameStr}} This is the normal constructor, no need to call {\tt Create()} after using this one. Note that {\tt wxHSCROLL} is always automatically added to our style, there is no need to specify it explicitly. \wxheading{Parameters} \docparam{parent}{The parent window, must not be {\tt NULL}} \docparam{id}{The identifier of this window, {\tt wxID\_ANY} by default} \docparam{pos}{The initial window position} \docparam{size}{The initial window size} \docparam{style}{The window style. There are no special style bits defined for this class.} \docparam{name}{The name for this window; usually not used} \membersection{wxHScrolledWindow::Create}\label{wxhscrolledwindowcreate} \func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxPanelNameStr}} Same as the \helpref{non-default constuctor}{wxhscrolledwindowwxhscrolledwindow} but returns status code: {\tt true} if ok, {\tt false} if the window couldn't be created. Just as with the constructor above, the {\tt wxHSCROLL} style is always used, there is no need to specify it explicitly.