]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/scrolwin.tex
fixed unsolved link
[wxWidgets.git] / docs / latex / wx / scrolwin.tex
index bed28301c1eb0f4d503a8d5fa598509696a1163b..bdc315b4800a3786cf7b12fd5e8ec4d718dd3b16 100644 (file)
@@ -6,7 +6,7 @@ scroll positions, thumb sizes and ranges according to the area in view.
 
 As with all windows, an application can draw onto a wxScrolledWindow using a \helpref{device context}{dcoverview}.
 
-You have the option of handling the \helpref{OnPaint}{wxscrolledwindowonpaint} handler
+You have the option of handling the OnPaint handler
 or overriding the \helpref{OnDraw}{wxscrolledwindowondraw} function, which is passed
 a pre-scrolled device context (prepared by \helpref{PrepareDC}{wxscrolledwindowpreparedc}).
 
@@ -16,10 +16,15 @@ scroll position.
 
 \wxheading{Derived from}
 
+\helpref{wxPanel}{wxpanel}\\
 \helpref{wxWindow}{wxwindow}\\
 \helpref{wxEvtHandler}{wxevthandler}\\
 \helpref{wxObject}{wxobject}
 
+\wxheading{Include files}
+
+<wx/scrolwin.h>
+
 \wxheading{Window styles}
 
 \twocolwidtha{5cm}
@@ -48,9 +53,9 @@ to build your own scroll behaviour.
 
 Default constructor.
 
-\func{}{wxScrolledWindow}{\param{wxWindow*}{ parent}, \param{const wxWindowID }{id = -1},\rtfsp
+\func{}{wxScrolledWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id = -1},\rtfsp
 \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
-\param{const long}{ style = wxHSCROLL \pipe wxVSCROLL}, \param{const wxString\& }{name = ``scrolledWindow"}}
+\param{long}{ style = wxHSCROLL \pipe wxVSCROLL}, \param{const wxString\& }{name = ``scrolledWindow"}}
 
 Constructor.
 
@@ -82,11 +87,45 @@ specify how big the virtual window size should be.
 
 Destructor.
 
+\membersection{wxScrolledWindow::CalcScrolledPosition}\label{wxscrolledwindowcalcscrolledposition}
+
+\constfunc{void}{CalcScrolledPosition}{
+   \param{int }{x},
+   \param{int }{y},
+   \param{int *}{xx}
+   \param{int *}{yy}}
+
+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, 0, \&xx, \&yy) will return 10 in yy.
+
+\wxheading{See also}
+
+\helpref{CalcUnscrolledPosition}{wxscrolledwindowcalcunscrolledposition}
+
+\membersection{wxScrolledWindow::CalcUnscrolledPosition}\label{wxscrolledwindowcalcunscrolledposition}
+
+\constfunc{void}{CalcUnscrolledPosition}{
+   \param{int }{x},
+   \param{int }{y},
+   \param{int *}{xx}
+   \param{int *}{yy}}
+
+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, 10, \&xx, \&yy) will return 0 in yy.
+
+\wxheading{See also}
+
+\helpref{CalcScrolledPosition}{wxscrolledwindowcalcscrolledposition}
+
 \membersection{wxScrolledWindow::Create}\label{wxscrolledwindowcreate}
 
-\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{const wxWindowID }{id = -1},\rtfsp
+\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id = -1},\rtfsp
 \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
-\param{const long}{ style = wxHSCROLL \pipe wxVSCROLL}, \param{const wxString\& }{name = ``scrolledWindow"}}
+\param{long}{ style = wxHSCROLL \pipe wxVSCROLL}, \param{const wxString\& }{name = ``scrolledWindow"}}
 
 Creates the window for two-step construction. Derived classes
 should call or replace this function. See \helpref{wxScrolledWindow::wxScrolledWindow}{wxscrolledwindowconstr}\rtfsp
@@ -130,8 +169,7 @@ scrolling in that direction.
 \wxheading{See also}
 
 \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp
-\helpref{wxScrolledWindow::GetVirtualSize}{wxscrolledwindowgetvirtualsize},\rtfsp
-\helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage}
+\helpref{wxScrolledWindow::GetVirtualSize}{wxscrolledwindowgetvirtualsize}
 
 \membersection{wxScrolledWindow::GetVirtualSize}\label{wxscrolledwindowgetvirtualsize}
 
@@ -155,14 +193,13 @@ to translate these units to logical units.
 \wxheading{See also}
 
 \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp
-\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit},\rtfsp
-\helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage}
+\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit}
 
 \membersection{wxScrolledWindow::IsRetained}\label{wxscrolledwindowisretained}
 
 \constfunc{bool}{IsRetained}{\void}
 
-TRUE if the window has a backing bitmap.
+Motif only: TRUE if the window has a backing bitmap.
 
 \membersection{wxScrolledWindow::PrepareDC}\label{wxscrolledwindowpreparedc}
 
@@ -171,14 +208,14 @@ TRUE if the window has a backing bitmap.
 Call this function to prepare the device context for drawing a scrolled image. It
 sets the device origin according to the current scroll position.
 
-PrepareDC is called automatically within the default \helpref{wxScrolledWindow::OnPaint}{wxscrolledwindowonpaint} event
+PrepareDC is called automatically within the default wxScrolledWindow::OnPaint event
 handler, so your \helpref{wxScrolledWindow::OnDraw}{wxscrolledwindowondraw} override
 will be passed a 'pre-scrolled' device context. However, if you wish to draw from
 outside of OnDraw (via OnPaint), or you wish to implement OnPaint yourself, you must
 call this function yourself. For example:
 
 \begin{verbatim}
-void MyCanvas::OnEvent(wxMouseEvent& event)
+void MyWindow::OnEvent(wxMouseEvent& event)
 {
   wxClientDC dc(this);
   PrepareDC(dc);
@@ -199,45 +236,13 @@ void MyCanvas::OnEvent(wxMouseEvent& event)
 
 \func{virtual void}{OnDraw}{\param{wxDC\& }{dc}}
 
-Called by the default \helpref{wxScrolledWindow::OnPaint}{wxscrolledwindowonpaint} implementation
-to allow the application to define painting behaviour without having to worry about
-calling \helpref{wxScrolledWindow::PrepareDC}{wxscrolledwindowpreparedc}.
-
-\membersection{wxScrolledWindow::OnPaint}\label{wxscrolledwindowonpaint}
-
-\func{void}{OnPaint}{\param{wxPaintEvent\& }{event}}
-
-Sent to the window when the window must be refreshed.
-
-For more details, see \helpref{wxWindow::OnPaint}{wxwindowonpaint}.
-
-The default implementation for wxScrolledWindow's OnPaint handler is simply:
-
-\begin{verbatim}
-void wxScrolledWindow::OnPaint(wxPaintEvent& event)
-{
-       wxPaintDC dc(this);
-       PrepareDC(dc);
-
-       OnDraw(dc);
-}
-\end{verbatim}
-
-\membersection{wxScrolledWindow::OnScroll}\label{wxscrolledwindowonscroll}
-
-\func{void}{OnScroll}{\param{wxScrollEvent\& }{event}}
-
-Override this function to intercept scroll events. This
-member function implements the default scroll behaviour. If
-you do not call the default function, you will have to manage
-all scrolling behaviour including drawing the window contents
-at an appropriate position relative to the scrollbars.
-
-For more details, see \helpref{wxWindow::OnScroll}{wxwindowonscroll}.
-
-\wxheading{See also}
+Called by the default paint event handler to allow the application to define
+painting behaviour without having to worry about calling 
+\helpref{wxScrolledWindow::PrepareDC}{wxscrolledwindowpreparedc}.
 
-\helpref{wxScrollEvent}{wxscrollevent}
+Instead of overriding this function you may also just process the paint event
+in the derived class as usual, but then you will have to call PrepareDC()
+yourself.
 
 \membersection{wxScrolledWindow::Scroll}\label{wxscrolledwindowscroll}