%% Created: 30.05.03
%% RCS-ID: $Id$
%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
-%% License: wxWindows license
+%% License: wxWidgets license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxVScrolledWindow}}\label{wxvscrolledwindow}
need to draw the visible part of contents in your {\tt OnPaint()} method as
usual. You should use \helpref{GetFirstVisibleLine()}{wxvscrolledwindowgetfirstvisibleline}
and \helpref{GetLastVisibleLine()}{wxvscrolledwindowgetlastvisibleline} to
-select the lines to display. ote that the device context origin is not shifted
+select the lines to display. Note that the device context origin is not shifted
so the first visible line always appears at the point $(0, 0)$ in physical as
well as logical coordinates.
need to specify it explicitly.
+\membersection{wxVScrolledWindow::EstimateTotalHeight}\label{wxvscrolledwindowestimatetotalheight}
+
+\constfunc{virtual wxCoord}{EstimateTotalHeight}{\void}
+
+This protected function is used internally by wxVScrolledWindow to estimate the
+total height of the window when \helpref{SetLineCount}{wxvscrolledwindowsetlinecount}
+is called. The default implementation uses the brute force approach if the
+number of the items in the control is small enough. Otherwise, it tries to find
+the average line height using some lines in the beginning, middle and the end.
+
+If it is undesirable to access all these lines (some of which might be never
+shown) just for the total height calculation, you may override the function and
+provide your own guess better and/or faster.
+
+Note that although returning a totally wrong value would still work, it risks
+to result in very strange scrollbar behaviour so this function should really
+try to make the best guess possible.
+
+
\membersection{wxVScrolledWindow::GetFirstVisibleLine}\label{wxvscrolledwindowgetfirstvisibleline}
\constfunc{size\_t}{GetFirstVisibleLine}{\void}
\helpref{SetLineCount()}{wxvscrolledwindowsetlinecount})
+\membersection{wxVScrolledWindow::HitTest}\label{wxvscrolledwindowhittest}
+
+\constfunc{int}{HitTest}{\param{wxCoord }{x}, \param{wxCoord }{y}}
+
+\constfunc{int}{HitTest}{\param{const wxPoint\& }{pt}}
+
+Return the item at the specified (in physical coordinates) position or
+{\tt wxNOT\_FOUND} if none, i.e. if it is below the last item.
+
+
+\membersection{wxVScrolledWindow::IsVisible}\label{wxvscrolledwindowisvisible}
+
+\constfunc{bool}{IsVisible}{\param{size\_t }{line}}
+
+Returns {\tt true} if the given line is (at least partially) visible or
+{\tt false} otherwise.
+
+
\membersection{wxVScrolledWindow::OnGetLineHeight}\label{wxvscrolledwindowongetlineheight}
\constfunc{wxCoord}{OnGetLineHeight}{\param{size\_t }{n}}
as usual.
+\membersection{wxVScrolledWindow::RefreshLine}\label{wxvscrolledwindowrefreshline}
+
+\func{void}{RefreshLine}{\param{size\_t }{line}}
+
+Refreshes the specified line -- it will be redrawn during the next main loop
+iteration.
+
+\wxheading{See also}
+
+\helpref{RefreshLines}{wxvscrolledwindowrefreshlines}
+
+
+\membersection{wxVScrolledWindow::RefreshLines}\label{wxvscrolledwindowrefreshlines}
+
+\func{void}{RefreshLines}{\param{size\_t }{from}, \param{size\_t }{to}}
+
+Refreshes all lines between {\it from} and {\it to}, inclusive. {\it from}
+should be less than or equal to {\it to}.
+
+\wxheading{See also}
+
+\helpref{RefreshLine}{wxvscrolledwindowrefreshline}
+
+
\membersection{wxVScrolledWindow::RefreshAll}\label{wxvscrolledwindowrefreshall}
\func{void}{RefreshAll}{\void}
This function completely refreshes the control, recalculating the number of
-items shown on screen and repaining them. It should be called when the values
+items shown on screen and repainting them. It should be called when the values
returned by \helpref{OnGetLineHeight}{wxvscrolledwindowongetlineheight} change
for some reason and the window must be updated to reflect this.