added wxVScrolledWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -43,6 +43,7 @@ The following are a variety of classes that are derived from wxWindow.
|
||||
\twocolitem{\helpref{wxPlotWindow}{wxplotwindow}}{A class to display data.}
|
||||
\twocolitem{\helpref{wxSashWindow}{wxsashwindow}}{Window with four optional sashes that can be dragged}
|
||||
\twocolitem{\helpref{wxSashLayoutWindow}{wxsashlayoutwindow}}{Window that can be involved in an IDE-like layout arrangement}
|
||||
\twocolitem{\helpref{wxVScrolledWindow}{wxvscrolledwindow}}{As wxScrolledWindow but supports lines of variable height}
|
||||
\twocolitem{\helpref{wxWizardPage}{wxwizardpage}}{A base class for the page in wizard dialog.}
|
||||
\twocolitem{\helpref{wxWizardPageSimple}{wxwizardpagesimple}}{A page in wizard dialog.}
|
||||
\end{twocollist}
|
||||
|
@@ -308,6 +308,7 @@
|
||||
\input validatr.tex
|
||||
\input variant.tex
|
||||
\input view.tex
|
||||
\input vscroll.tex
|
||||
\input wave.tex
|
||||
\input window.tex
|
||||
\input windowdc.tex
|
||||
|
@@ -97,7 +97,8 @@ to build your own scroll behaviour.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxClientDC}{wxclientdc}, \helpref{wxPaintDC}{wxpaintdc}
|
||||
\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxClientDC}{wxclientdc},\\
|
||||
\helpref{wxPaintDC}{wxpaintdc}, \helpref{wxVScrolledWindow}{wxvscrolledwindow}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
|
194
docs/latex/wx/vscroll.tex
Normal file
194
docs/latex/wx/vscroll.tex
Normal file
@@ -0,0 +1,194 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Name: vscroll.tex
|
||||
%% Purpose: wxVScrolledWindow documentation
|
||||
%% Author: Vadim Zeitlin
|
||||
%% Modified by:
|
||||
%% Created: 30.05.03
|
||||
%% RCS-ID: $Id$
|
||||
%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
|
||||
%% License: wxWindows license
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{\class{wxVScrolledWindow}}\label{wxvscrolledwindow}
|
||||
|
||||
In the name of this class, "V" may stand for "variable" because it can be
|
||||
used for scrolling lines of variable heights; "virtual" because it is not
|
||||
necessary to know the heights of all lines in advance -- only those which
|
||||
are shown on the screen need to be measured; or, even, "vertical" because
|
||||
this class only supports scrolling in one direction currently (this could
|
||||
and probably will change in the future however).
|
||||
|
||||
In any case, this is a generalization of the
|
||||
\helpref{wxScrolledWindow}{wxScrolledWindow} class which can be only used when
|
||||
all lines have the same height. It lacks some other wxScrolledWindow features
|
||||
however, notably there is currently no support for horizontal scrolling; it
|
||||
can't scroll another window nor only a rectangle of the window and not its
|
||||
entire client area.
|
||||
|
||||
To use this class, you need to derive from it and implement
|
||||
\helpref{OnGetLineHeight()}{wxvscrolledwindowongetlineheight} pure virtual
|
||||
method. You also must call \helpref{SetLineCount}{wxvscrolledwindowsetlinecount}
|
||||
to let the base class know how many lines it should display but from that
|
||||
moment on the scrolling is handled entirely by wxVScrolledWindow, you only
|
||||
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
|
||||
so the first visible line always appears at the point $(0, 0)$ in physical as
|
||||
well as logical coordinates.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxPanel}{wxpanel}
|
||||
|
||||
\wxheading{Include files}
|
||||
|
||||
<wx/vscroll.h>
|
||||
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::wxVScrolledWindow}\label{wxvscrolledwindowctor}
|
||||
|
||||
\func{}{wxVScrolledWindow}{\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 Create() after using this one.
|
||||
|
||||
Note that {\tt wxVSCROLL} is always automatically added to our style, there is
|
||||
no need to specify it explicitly.
|
||||
|
||||
\func{}{wxVScrolledWindow}{\void}
|
||||
|
||||
Default constructor, you must call \helpref{Create()}{wxvscrolledwindowcreate}
|
||||
later.
|
||||
|
||||
\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{wxVScrolledWindow::Create}\label{wxvscrolledwindowcreate}
|
||||
|
||||
\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 ctor}{wxvscrolledwindowctor} but returns
|
||||
status code: {\tt true} if ok, {\tt false} if the window couldn't have been created.
|
||||
|
||||
Just as with the ctor above, {\tt wxVSCROLL| style is always used, there is no
|
||||
need to specify it explicitly.
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::GetFirstVisibleLine}\label{wxvscrolledwindowgetfirstvisibleline}
|
||||
|
||||
\constfunc{size\_t}{GetFirstVisibleLine}{\void}
|
||||
|
||||
Returns the index of the first currently visible line.
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::GetLastVisibleLine}\label{wxvscrolledwindowgetlastvisibleline}
|
||||
|
||||
\constfunc{size\_t}{GetLastVisibleLine}{\void}
|
||||
|
||||
Returns the index of the last currently visible line.
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::GetLineCount}\label{wxvscrolledwindowgetlinecount}
|
||||
|
||||
\constfunc{size\_t}{GetLineCount}{\void}
|
||||
|
||||
Get the number of lines this window contains (previously set by
|
||||
\helpref{SetLineCount()}{wxvscrolledwindowsetlinecount})
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::OnGetLineHeight}\label{wxvscrolledwindowongetlineheight}
|
||||
|
||||
\constfunc{wxCoord}{OnGetLineHeight}{\param{size\_t }{n}}
|
||||
|
||||
This protected virtual function must be overridden in the derived class and it
|
||||
should return the height of the given line in pixels.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{OnGetLinesHint}{wxvscrolledwindowongetlineshint}
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::OnGetLinesHint}\label{wxvscrolledwindowongetlineshint}
|
||||
|
||||
\constfunc{void}{OnGetLinesHint}{\param{size\_t }{lineMin}, \param{size\_t }{lineMax}}
|
||||
|
||||
This function doesn't have to be overridden but it may be useful to do
|
||||
it if calculating the lines heights is a relatively expensive operation
|
||||
as it gives the user code a possibility to calculate several of them at
|
||||
once.
|
||||
|
||||
{\tt OnGetLinesHint()} is normally called just before
|
||||
\helpref{OnGetLineHeight()}{wxvscrolledwindowongetlineheight} but you
|
||||
shouldn't rely on the latter being called for all lines in the interval
|
||||
specified here. It is also possible that OnGetLineHeight() will be
|
||||
called for the lines outside of this interval, so this is really just a
|
||||
hint, not a promise.
|
||||
|
||||
Finally note that {\it lineMin} is inclusive, while {\it lineMax} is exclusive,
|
||||
as usual.
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::ScrollLines}\label{wxvscrolledwindowscrolllines}
|
||||
|
||||
\func{bool}{ScrollLines}{\param{int }{lines}}
|
||||
|
||||
Scroll by the specified number of lines which may be positive (to scroll down)
|
||||
or negative (to scroll up).
|
||||
|
||||
Returns {\tt true} if the window was scrolled, {\tt false} otherwise (for
|
||||
example if we're trying to scroll down but we are already showing the last
|
||||
line).
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{LineUp}{wxwindowlineup}, \helpref{LineDown}{wxwindowlinedown}
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::ScrollPages}\label{wxvscrolledwindowscrollpages}
|
||||
|
||||
\func{bool}{ScrollPages}{\param{int }{pages}}
|
||||
|
||||
Scroll by the specified number of pages which may be positive (to scroll down)
|
||||
or negative (to scroll up).
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{ScrollLines}{wxvscrolledwindowscrolllines},\\
|
||||
\helpref{PageUp}{wxwindowpageup}, \helpref{PageDown}{wxwindowpagedown}
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::ScrollToLine}\label{wxvscrolledwindowscrolltoline}
|
||||
|
||||
\func{bool}{ScrollToLine}{\param{size\_t }{line}}
|
||||
|
||||
Scroll to the specified line: it will become the first visible line in
|
||||
the window.
|
||||
|
||||
Return {\tt true} if we scrolled the window, {\tt false} if nothing was done.
|
||||
|
||||
|
||||
\membersection{wxVScrolledWindow::SetLineCount}\label{wxvscrolledwindowsetlinecount}
|
||||
|
||||
\func{void}{SetLineCount}{\param{size\_t }{count}}
|
||||
|
||||
Set the number of lines the window contains: the derived class must
|
||||
provide the heights for all lines with indices up to the one given here
|
||||
in its \helpref{OnGetLineHeight()}{wxvscrolledwindowongetlineheight}.
|
||||
|
||||
|
Reference in New Issue
Block a user