]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/dc.tex
test wxTE_NO_VSCROLL
[wxWidgets.git] / docs / latex / wx / dc.tex
index 461c52f0c5dee9ad6a86db6993a606be78ac7311..5f57bfbac964a627c3dcda0e0a78ddc7493fdd43 100644 (file)
@@ -6,8 +6,10 @@ so a window can have a device context associated with it, and a printer also has
 In this way, the same piece of code may write to a number of different devices,
 if the device context is used as a parameter.
 
 In this way, the same piece of code may write to a number of different devices,
 if the device context is used as a parameter.
 
-Derived types of wxDC have documentation for specific features
-only, so refer to this section for most device context information.
+Notice that wxDC is an abstract base class and can't be created directly,
+please use \helpref{wxPaintDC}{wxpaintdc}, \helpref{wxClientDC}{wxclientdc}, 
+\helpref{wxWindowDC}{wxwindowdc}, \helpref{wxScreenDC}{wxscreendc}, 
+\helpref{wxMemoryDC}{wxmemorydc} or \helpref{wxPrinterDC}{wxprinterdc}.
 
 % VZ: we should really document them instead of this lame excuse, but I don't
 %     have time for it now, when it is done please remove this
 
 % VZ: we should really document them instead of this lame excuse, but I don't
 %     have time for it now, when it is done please remove this
@@ -16,6 +18,12 @@ there are also versions which accept single {\tt wxPoint} parameter instead of
 two {\tt wxCoord} ones or {\tt wxPoint} and {\tt wxSize} instead of four of
 them.
 
 two {\tt wxCoord} ones or {\tt wxPoint} and {\tt wxSize} instead of four of
 them.
 
+\wxheading{Support for Transparency / Alpha Channel}
+
+On Mac OS X when using Core Graphics (wx\_MAC\_USE\_CORE\_GRAPHICS set to 1) 
+colors with alpha are supported, so instances  {\tt wxPen} or  {\tt wxBrush} that are built from  {\tt wxColour} use
+the color's alpha values when stroking or filling.
+
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
@@ -31,36 +39,6 @@ them.
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
-\membersection{wxDC::wxDC}\label{wxdcctor}
-
-\func{}{wxDC}{\void}
-
-Constructor.
-
-
-\membersection{wxDC::\destruct{wxDC}}\label{wxdcdtor}
-
-\func{}{\destruct{wxDC}}{\void}
-
-Destructor.
-
-
-\membersection{wxDC::BeginDrawing}\label{wxdcbegindrawing}
-
-\func{void}{BeginDrawing}{\void}
-
-Allows optimization of drawing code under MS Windows. Enclose
-drawing primitives between {\bf BeginDrawing} and {\bf EndDrawing}\rtfsp
-calls.
-
-Drawing to a wxDialog panel device context outside of a
-system-generated OnPaint event {\it requires} this pair of calls to
-enclose drawing code. This is because a Windows dialog box does not have
-a retained device context associated with it, and selections such as pen
-and brush settings would be lost if the device context were obtained and
-released for each drawing operation.
-
-
 \membersection{wxDC::Blit}\label{wxdcblit}
 
 \func{bool}{Blit}{\param{wxCoord}{ xdest}, \param{wxCoord}{ ydest}, \param{wxCoord}{ width}, \param{wxCoord}{ height},
 \membersection{wxDC::Blit}\label{wxdcblit}
 
 \func{bool}{Blit}{\param{wxCoord}{ xdest}, \param{wxCoord}{ ydest}, \param{wxCoord}{ width}, \param{wxCoord}{ height},
@@ -193,6 +171,15 @@ wxUSE\_DC\_CACHEING preprocessor symbol for portability.
 \end{comment}
 
 
 \end{comment}
 
 
+\membersection{wxDC::ComputeScaleAndOrigin}\label{wxdccomputescaleandorigin}
+
+\func{virtual void}{ComputeScaleAndOrigin}{\void}
+
+Performs all necessary computations for given platform and context type
+after each change of scale and origin parameters. Usually called automatically 
+internally after such changes.
+
+
 \membersection{wxDC::CrossHair}\label{wxdccrosshair}
 
 \func{void}{CrossHair}{\param{wxCoord}{ x}, \param{wxCoord}{ y}}
 \membersection{wxDC::CrossHair}\label{wxdccrosshair}
 
 \func{void}{CrossHair}{\param{wxCoord}{ x}, \param{wxCoord}{ y}}
@@ -477,7 +464,7 @@ which is.
 
 \membersection{wxDC::DrawRoundedRectangle}\label{wxdcdrawroundedrectangle}
 
 
 \membersection{wxDC::DrawRoundedRectangle}\label{wxdcdrawroundedrectangle}
 
-\func{void}{DrawRoundedRectangle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, \param{double}{ radius = 20}}
+\func{void}{DrawRoundedRectangle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, \param{double}{ radius}}
 
 Draws a rectangle with the given top left corner, and with the given
 size.  The corners are quarter-circles using the given radius. The
 
 Draws a rectangle with the given top left corner, and with the given
 size.  The corners are quarter-circles using the given radius. The
@@ -495,12 +482,15 @@ the rectangle.
 
 \membersection{wxDC::DrawSpline}\label{wxdcdrawspline}
 
 
 \membersection{wxDC::DrawSpline}\label{wxdcdrawspline}
 
+\func{void}{DrawSpline}{\param{int }{n}, \param{wxPoint }{points[]}}
+
+Draws a spline between all given control points, using the current
+pen.
+
 \func{void}{DrawSpline}{\param{wxList *}{points}}
 
 Draws a spline between all given control points, using the current
 \func{void}{DrawSpline}{\param{wxList *}{points}}
 
 Draws a spline between all given control points, using the current
-pen.  Doesn't delete the wxList and contents. The spline is drawn
-using a series of lines, using an algorithm taken from the X drawing
-program `XFIG'.
+pen.  Doesn't delete the wxList and contents.
 
 \func{void}{DrawSpline}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}, \param{wxCoord}{ x3}, \param{wxCoord}{ y3}}
 
 
 \func{void}{DrawSpline}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}, \param{wxCoord}{ x3}, \param{wxCoord}{ y3}}
 
@@ -556,15 +546,6 @@ wxUSE\_DC\_CACHEING preprocessor symbol for portability.
 Ends a document (only relevant when outputting to a printer).
 
 
 Ends a document (only relevant when outputting to a printer).
 
 
-\membersection{wxDC::EndDrawing}\label{wxdcenddrawing}
-
-\func{void}{EndDrawing}{\void}
-
-Allows optimization of drawing code under MS Windows. Enclose
-drawing primitives between {\bf BeginDrawing} and {\bf EndDrawing}\rtfsp
-calls.
-
-
 \membersection{wxDC::EndPage}\label{wxdcendpage}
 
 \func{void}{EndPage}{\void}
 \membersection{wxDC::EndPage}\label{wxdcendpage}
 
 \func{void}{EndPage}{\void}
@@ -647,7 +628,24 @@ rectangle are returned as a tuple.}
 
 \constfunc{const wxFont\&}{GetFont}{\void}
 
 
 \constfunc{const wxFont\&}{GetFont}{\void}
 
-Gets the current font (see \helpref{wxDC::SetFont}{wxdcsetfont}).
+Gets the current font. Notice that even although each device context object has
+some default font after creation, this method would return a \texttt{wxNullFont} 
+initially and only after calling \helpref{wxDC::SetFont}{wxdcsetfont} a valid
+font is returned.
+
+
+\membersection{wxDC::GetLayoutDirection}\label{wxdcgetlayoutdirection}
+
+\constfunc{wxLayoutDirection}{GetLayoutDirection}{\void}
+
+Gets the current layout direction of the device context. On platforms where RTL layout
+is supported, the return value will either be \texttt{wxLayout\_LeftToRight} or 
+\texttt{wxLayout\_RightToLeft}. If RTL layout is not supported, the return value will 
+be \texttt{wxLayout\_Default}.
+
+\wxheading{See also}
+
+\helpref{SetLayoutDirection}{wxdcsetlayoutdirection}
 
 
 \membersection{wxDC::GetLogicalFunction}\label{wxdcgetlogicalfunction}
 
 
 \membersection{wxDC::GetLogicalFunction}\label{wxdcgetlogicalfunction}
@@ -664,19 +662,51 @@ Gets the current logical function (see \helpref{wxDC::SetLogicalFunction}{wxdcse
 Gets the {\it mapping mode} for the device context (see \helpref{wxDC::SetMapMode}{wxdcsetmapmode}).
 
 
 Gets the {\it mapping mode} for the device context (see \helpref{wxDC::SetMapMode}{wxdcsetmapmode}).
 
 
+\membersection{wxDC::GetMultiLineTextExtent}\label{wxdcgetmultilinetextextent}
+
+\constfunc{void}{GetMultiLineTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w},\\
+  \param{wxCoord *}{h}, \param{wxCoord *}{heightLine = NULL}, \param{wxFont *}{font = NULL}}
+
+\constfunc{wxSize}{GetMultiLineTextExtent}{\param{const wxString\& }{string}}
+
+Gets the dimensions of the string using the currently selected font.
+\rtfsp{\it string} is the text string to measure, {\it heightLine}, if non NULL,
+is where to store the height of a single line.
+
+The text extent is returned in {\it w} and {\it h} pointers (first form) or as
+a \helpref{wxSize}{wxsize} object (second form).
+
+If the optional parameter {\it font} is specified and valid, then it is used
+for the text extent calculation. Otherwise the currently selected font is.
+
+Note that this function works both with single-line and multi-line strings.
+
+\wxheading{See also}
+
+\helpref{wxFont}{wxfont},\rtfsp
+\helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp
+\helpref{wxDC::GetPartialTextExtents}{wxdcgetpartialtextextents},\rtfsp
+\helpref{wxDC::GetTextExtent}{wxdcgettextextent}
+
+
 \membersection{wxDC::GetPartialTextExtents}\label{wxdcgetpartialtextextents}
 
 \constfunc{bool}{GetPartialTextExtents}{\param{const wxString\&  }{text}, 
 \param{wxArrayInt\& }{widths}}
 
 \membersection{wxDC::GetPartialTextExtents}\label{wxdcgetpartialtextextents}
 
 \constfunc{bool}{GetPartialTextExtents}{\param{const wxString\&  }{text}, 
 \param{wxArrayInt\& }{widths}}
 
-Fills the {\it widths} array with the widths from the begining of 
-{\it text} to the coresponding character of {\it text}.  The generic
+Fills the {\it widths} array with the widths from the beginning of 
+{\it text} to the corresponding character of {\it text}.  The generic
 version simply builds a running total of the widths of each character
 using \helpref{GetTextExtent}{wxdcgettextextent}, however if the
 various platforms have a native API function that is faster or more
 version simply builds a running total of the widths of each character
 using \helpref{GetTextExtent}{wxdcgettextextent}, however if the
 various platforms have a native API function that is faster or more
-accurate than the generic implementaiton then it should be used
+accurate than the generic implementation then it should be used
 instead. 
 
 instead. 
 
+\wxheading{See also}
+
+\helpref{wxDC::GetMultiLineTextExtent}{wxdcgetmultilinetextextent},\rtfsp
+\helpref{wxDC::GetTextExtent}{wxdcgettextextent}
+
 \pythonnote{This method only takes the {\it text} parameter and
   returns a Python list of integers.}
 
 \pythonnote{This method only takes the {\it text} parameter and
   returns a Python list of integers.}
 
@@ -692,9 +722,11 @@ Gets the current pen (see \helpref{wxDC::SetPen}{wxdcsetpen}).
 
 \func{bool}{GetPixel}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxColour *}{colour}}
 
 
 \func{bool}{GetPixel}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxColour *}{colour}}
 
-Sets {\it colour} to the colour at the specified location.
+Gets in {\it colour} the colour at the specified location.
 Not available for wxPostScriptDC or wxMetafileDC.
 
 Not available for wxPostScriptDC or wxMetafileDC.
 
+Note that setting a pixel can be done using \helpref{DrawPoint}{wxdcdrawpoint}.
+
 \pythonnote{For wxPython the wxColour value is returned and is not
 required as a parameter.}
 
 \pythonnote{For wxPython the wxColour value is returned and is not
 required as a parameter.}
 
@@ -760,22 +792,31 @@ Gets the current text background colour (see \helpref{wxDC::SetTextBackground}{w
 
 \membersection{wxDC::GetTextExtent}\label{wxdcgettextextent}
 
 
 \membersection{wxDC::GetTextExtent}\label{wxdcgettextextent}
 
-\func{void}{GetTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w}, \param{wxCoord *}{h},\\
+\constfunc{void}{GetTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w}, \param{wxCoord *}{h},\\
   \param{wxCoord *}{descent = NULL}, \param{wxCoord *}{externalLeading = NULL}, \param{wxFont *}{font = NULL}}
 
   \param{wxCoord *}{descent = NULL}, \param{wxCoord *}{externalLeading = NULL}, \param{wxFont *}{font = NULL}}
 
+\constfunc{wxSize}{GetTextExtent}{\param{const wxString\& }{string}}
+
 Gets the dimensions of the string using the currently selected font.
 Gets the dimensions of the string using the currently selected font.
-\rtfsp{\it string} is the text string to measure, {\it w} and {\it h} are
-the total width and height respectively, {\it descent} is the
+\rtfsp{\it string} is the text string to measure, {\it descent} is the
 dimension from the baseline of the font to the bottom of the
 descender, and {\it externalLeading} is any extra vertical space added
 to the font by the font designer (usually is zero).
 
 dimension from the baseline of the font to the bottom of the
 descender, and {\it externalLeading} is any extra vertical space added
 to the font by the font designer (usually is zero).
 
-The optional parameter {\it font} specifies an alternative
-to the currently selected font: but note that this does not
-yet work under Windows, so you need to set a font for
-the device context first.
+The text extent is returned in {\it w} and {\it h} pointers (first form) or as
+a \helpref{wxSize}{wxsize} object (second form).
+
+If the optional parameter {\it font} is specified and valid, then it is used
+for the text extent calculation. Otherwise the currently selected font is.
+
+Note that this function only works with single-line strings.
+
+\wxheading{See also}
 
 
-See also \helpref{wxFont}{wxfont}, \helpref{wxDC::SetFont}{wxdcsetfont}.
+\helpref{wxFont}{wxfont},\rtfsp
+\helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp
+\helpref{wxDC::GetPartialTextExtents}{wxdcgetpartialtextextents},\rtfsp
+\helpref{wxDC::GetMultiLineTextExtent}{wxdcgetmultilinetextextent}
 
 \pythonnote{The following methods are implemented in wxPython:\par
 \indented{2cm}{\begin{twocollist}
 
 \pythonnote{The following methods are implemented in wxPython:\par
 \indented{2cm}{\begin{twocollist}
@@ -808,6 +849,35 @@ Gets the current user scale factor (set by \helpref{SetUserScale}{wxdcsetusersca
  array {\tt ( x, y )}}
 
 
  array {\tt ( x, y )}}
 
 
+\membersection{wxDC::GradientFillConcentric}\label{wxdcgradientfillconcentric}
+
+\func{void}{GradientFillConcentric}{\param{const wxRect\&}{ rect}, \param{const wxColour\&}{ initialColour}, \param{const wxColour\&}{ destColour}}
+
+\func{void}{GradientFillConcentric}{\param{const wxRect\&}{ rect}, \param{const wxColour\&}{ initialColour}, \param{const wxColour\&}{ destColour}, \param{const wxPoint\& }{circleCenter}}
+
+Fill the area specified by rect with a radial gradient, starting from 
+\arg{initialColour} at the centre of the circle and fading to \arg{destColour} 
+on the circle outside.
+
+\arg{circleCenter} are the relative coordinates of centre of the circle in
+the specified \arg{rect}. If not specified, the cercle is placed at the
+centre of rect.
+
+\textbf{Note: } Currently this function is very slow, don't use it for
+real-time drawing.
+
+
+\membersection{wxDC::GradientFillLinear}\label{wxdcgradientfilllinear}
+
+\func{void}{GradientFillLinear}{\param{const wxRect\&}{ rect}, \param{const wxColour\&}{ initialColour}, \param{const wxColour\&}{ destColour}, \param{wxDirection}{ nDirection = wxEAST}}
+
+Fill the area specified by \arg{rect} with a linear gradient, starting from 
+\arg{initialColour} and eventually fading to \arg{destColour}. The 
+\arg{nDirection} specifies the direction of the colour change, default is to
+use \arg{initialColour} on the left part of the rectangle and 
+\arg{destColour} on the right one.
+
+
 \membersection{wxDC::LogicalToDeviceX}\label{wxdclogicaltodevicex}
 
 \func{wxCoord}{LogicalToDeviceX}{\param{wxCoord}{ x}}
 \membersection{wxDC::LogicalToDeviceX}\label{wxdclogicaltodevicex}
 
 \func{wxCoord}{LogicalToDeviceX}{\param{wxCoord}{ x}}
@@ -870,7 +940,7 @@ Gets the minimum horizontal extent used in drawing commands so far.
 Gets the minimum vertical extent used in drawing commands so far.
 
 
 Gets the minimum vertical extent used in drawing commands so far.
 
 
-\membersection{wxDC::Ok}\label{wxdcok}
+\membersection{wxDC::IsOk}\label{wxdcisok}
 
 \func{bool}{Ok}{\void}
 
 
 \func{bool}{Ok}{\void}
 
@@ -895,8 +965,8 @@ doesn't contain anything.
                                 \param{bool}{ yBottomUp}}
 
 Sets the x and y axis orientation (i.e., the direction from lowest to
                                 \param{bool}{ yBottomUp}}
 
 Sets the x and y axis orientation (i.e., the direction from lowest to
-highest values on the axis). The default orientation is the natural
-orientation, e.g. x axis from left to right and y axis from bottom up.
+highest values on the axis). The default orientation is 
+x axis from left to right and y axis from top down.
 
 \wxheading{Parameters}
 
 
 \wxheading{Parameters}
 
@@ -929,7 +999,7 @@ whether text will be drawn with a background colour or not.
 Sets the current brush for the DC.
 
 If the argument is wxNullBrush, the current brush is selected out of the device
 Sets the current brush for the DC.
 
 If the argument is wxNullBrush, the current brush is selected out of the device
-context, and the original brush restored, allowing the current brush to
+context (leaving wxDC without any valid brush), allowing the current brush to
 be destroyed safely.
 
 See also \helpref{wxBrush}{wxbrush}.
 be destroyed safely.
 
 See also \helpref{wxBrush}{wxbrush}.
@@ -984,6 +1054,18 @@ should not pass {\tt wxNullFont} to this method.
 See also \helpref{wxFont}{wxfont}.
 
 
 See also \helpref{wxFont}{wxfont}.
 
 
+\membersection{wxDC::SetLayoutDirection}\label{wxdcsetlayoutdirection}
+
+\func{void}{SetLayoutDirection}{\param{wxLayoutDirection}{ dir}}
+
+Sets the current layout direction for the device context. \arg{dir} may be either
+\texttt{wxLayout\_Default}, \texttt{wxLayout\_LeftToRight} or \texttt{wxLayout\_RightToLeft}.
+
+\wxheading{See also}
+
+\helpref{GetLayoutDirection}{wxdcgetlayoutdirection}
+
+
 \membersection{wxDC::SetLogicalFunction}\label{wxdcsetlogicalfunction}
 
 \func{void}{SetLogicalFunction}{\param{int}{ function}}
 \membersection{wxDC::SetLogicalFunction}\label{wxdcsetlogicalfunction}
 
 \func{void}{SetLogicalFunction}{\param{int}{ function}}
@@ -1070,7 +1152,8 @@ See \helpref{wxPalette}{wxpalette} for further details.
 Sets the current pen for the DC.
 
 If the argument is wxNullPen, the current pen is selected out of the device
 Sets the current pen for the DC.
 
 If the argument is wxNullPen, the current pen is selected out of the device
-context, and the original pen restored.
+context (leaving wxDC without any valid pen), allowing the current brush to
+be destroyed safely.
 
 See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours
 when drawing into a monochrome bitmap.
 
 See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours
 when drawing into a monochrome bitmap.
@@ -1106,7 +1189,7 @@ Sets the user scaling factor, useful for applications which require
 \func{bool}{StartDoc}{\param{const wxString\& }{message}}
 
 Starts a document (only relevant when outputting to a printer).
 \func{bool}{StartDoc}{\param{const wxString\& }{message}}
 
 Starts a document (only relevant when outputting to a printer).
-Message is a message to show whilst printing.
+Message is a message to show while printing.
 
 
 \membersection{wxDC::StartPage}\label{wxdcstartpage}
 
 
 \membersection{wxDC::StartPage}\label{wxdcstartpage}
@@ -1115,40 +1198,3 @@ Message is a message to show whilst printing.
 
 Starts a document page (only relevant when outputting to a printer).
 
 
 Starts a document page (only relevant when outputting to a printer).
 
-\section{\class{wxDCClipper}}\label{wxdcclipper}
-
-This is a small helper class which sets the specified DC to its constructor
-clipping region and then automatically destroys it in its destructor. Using
-it ensures that an unwanted clipping region is not left set on the DC.
-
-\wxheading{Derived from}
-
-No base class
-
-\wxheading{Include files}
-
-<wx/dc.h>
-
-\wxheading{See also}
-
-\helpref{wxDC}{wxdc}
-
-\latexignore{\rtfignore{\wxheading{Members}}}
-
-
-\membersection{wxDCClipper::wxDCClipper}\label{wxdcclipperctor}
-
-\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{wxCoord }{x},\param{wxCoord }{y},\param{wxCoord }{w},\param{wxCoord }{h},}
-
-\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{const wxRect\&}{ rect}}
-
-Constructor: sets the the clipping region for the given device context to the
-specified rectangle.
-
-
-\membersection{wxDCClipper::\destruct{wxDCClipper}}\label{wxdcclipperdtor}
-
-\func{}{\destruct{wxDCClipper}}{\void}
-
-Destructor: destroys the clipping region set in the constructor.
-