brush, pen, font and region. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			385 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			385 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
						|
%% Name:        brush.tex
 | 
						|
%% Purpose:     wxPen docs
 | 
						|
%% Author:
 | 
						|
%% Modified by:
 | 
						|
%% Created:
 | 
						|
%% RCS-ID:      $Id$
 | 
						|
%% Copyright:   (c) wxWidgets
 | 
						|
%% License:     wxWindows license
 | 
						|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
						|
 | 
						|
\section{\class{wxBrush}}\label{wxbrush}
 | 
						|
 | 
						|
A brush is a drawing tool for filling in areas. It is used for painting
 | 
						|
the background of rectangles, ellipses, etc. It has a colour and a
 | 
						|
style.
 | 
						|
 | 
						|
\wxheading{Derived from}
 | 
						|
 | 
						|
\helpref{wxGDIObject}{wxgdiobject}\\
 | 
						|
\helpref{wxObject}{wxobject}
 | 
						|
 | 
						|
\wxheading{Include files}
 | 
						|
 | 
						|
<wx/brush.h>
 | 
						|
 | 
						|
\wxheading{Predefined objects}
 | 
						|
 | 
						|
Objects:
 | 
						|
 | 
						|
{\bf wxNullBrush}
 | 
						|
 | 
						|
Pointers:
 | 
						|
 | 
						|
{\bf wxBLUE\_BRUSH\\
 | 
						|
wxGREEN\_BRUSH\\
 | 
						|
wxWHITE\_BRUSH\\
 | 
						|
wxBLACK\_BRUSH\\
 | 
						|
wxGREY\_BRUSH\\
 | 
						|
wxMEDIUM\_GREY\_BRUSH\\
 | 
						|
wxLIGHT\_GREY\_BRUSH\\
 | 
						|
wxTRANSPARENT\_BRUSH\\
 | 
						|
wxCYAN\_BRUSH\\
 | 
						|
wxRED\_BRUSH}
 | 
						|
 | 
						|
\wxheading{Remarks}
 | 
						|
 | 
						|
On a monochrome display, wxWidgets shows
 | 
						|
all brushes as white unless the colour is really black.
 | 
						|
 | 
						|
Do not initialize objects on the stack before the program commences,
 | 
						|
since other required structures may not have been set up yet. Instead,
 | 
						|
define global pointers to objects and create them in \helpref{wxApp::OnInit}{wxapponinit} or
 | 
						|
when required.
 | 
						|
 | 
						|
An application may wish to create brushes with different
 | 
						|
characteristics dynamically, and there is the consequent danger that a
 | 
						|
large number of duplicate brushes will be created. Therefore an
 | 
						|
application may wish to get a pointer to a brush by using the global
 | 
						|
list of brushes {\bf wxTheBrushList}, and calling the member function
 | 
						|
\rtfsp{\bf FindOrCreateBrush}.
 | 
						|
 | 
						|
This class uses \helpref{reference counting and copy-on-write}{trefcount}
 | 
						|
internally so that assignments between two instances of this class are very
 | 
						|
cheap. You can therefore use actual objects instead of pointers without
 | 
						|
efficiency problems. If an instance of this class is changed it will create
 | 
						|
its own data internally so that other instances, which previously shared the
 | 
						|
data using the reference counting, are not affected.
 | 
						|
 | 
						|
%TODO: an overview for wxBrush.
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrushList}{wxbrushlist}, \helpref{wxDC}{wxdc}, \helpref{wxDC::SetBrush}{wxdcsetbrush}
 | 
						|
 | 
						|
\latexignore{\rtfignore{\wxheading{Members}}}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::wxBrush}\label{wxbrushctor}
 | 
						|
 | 
						|
\func{}{wxBrush}{\void}
 | 
						|
 | 
						|
Default constructor. The brush will be uninitialised, and \helpref{wxBrush:IsOk}{wxbrushisok} will
 | 
						|
return false.
 | 
						|
 | 
						|
\func{}{wxBrush}{\param{const wxColour\&}{ colour}, \param{int}{ style = {\tt wxSOLID}}}
 | 
						|
 | 
						|
Constructs a brush from a colour object and style.
 | 
						|
 | 
						|
\func{}{wxBrush}{\param{const wxString\& }{colourName}, \param{int}{ style}}
 | 
						|
 | 
						|
Constructs a brush from a colour name and style.
 | 
						|
 | 
						|
\func{}{wxBrush}{\param{const wxBitmap\& }{stippleBitmap}}
 | 
						|
 | 
						|
Constructs a stippled brush using a bitmap.
 | 
						|
 | 
						|
\func{}{wxBrush}{\param{const wxBrush\&}{ brush}}
 | 
						|
 | 
						|
Copy constructor, uses \helpref{reference counting}{trefcount}.
 | 
						|
 | 
						|
\wxheading{Parameters}
 | 
						|
 | 
						|
\docparam{colour}{Colour object.}
 | 
						|
 | 
						|
\docparam{colourName}{Colour name. The name will be looked up in the colour database.}
 | 
						|
 | 
						|
\docparam{style}{One of:
 | 
						|
 | 
						|
\begin{twocollist}\itemsep=0pt
 | 
						|
\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).}
 | 
						|
\twocolitem{{\bf wxSOLID}}{Solid.}
 | 
						|
\twocolitem{{\bf wxSTIPPLE}}{Uses a bitmap as a stipple.}
 | 
						|
\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.}
 | 
						|
\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.}
 | 
						|
\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.}
 | 
						|
\end{twocollist}}
 | 
						|
 | 
						|
\docparam{brush}{Pointer or reference to a brush to copy.}
 | 
						|
 | 
						|
\docparam{stippleBitmap}{A bitmap to use for stippling.}
 | 
						|
 | 
						|
\wxheading{Remarks}
 | 
						|
 | 
						|
If a stipple brush is created, the brush style will be set to wxSTIPPLE.
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrushList}{wxbrushlist}, \helpref{wxColour}{wxcolour}, \helpref{wxColourDatabase}{wxcolourdatabase}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::\destruct{wxBrush}}\label{wxbrushdtor}
 | 
						|
 | 
						|
\func{}{\destruct{wxBrush}}{\void}
 | 
						|
 | 
						|
Destructor.
 | 
						|
See \helpref{reference-counted object destruction}{refcountdestruct} for more info.
 | 
						|
 | 
						|
\wxheading{Remarks}
 | 
						|
 | 
						|
Although all remaining brushes are deleted when the application exits,
 | 
						|
the application should try to clean up all brushes itself. This is because
 | 
						|
wxWidgets cannot know if a pointer to the brush object is stored in an
 | 
						|
application data structure, and there is a risk of double deletion.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::GetColour}\label{wxbrushgetcolour}
 | 
						|
 | 
						|
\constfunc{wxColour\&}{GetColour}{\void}
 | 
						|
 | 
						|
Returns a reference to the brush colour.
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrush::SetColour}{wxbrushsetcolour}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::GetStipple}\label{wxbrushgetstipple}
 | 
						|
 | 
						|
\constfunc{wxBitmap *}{GetStipple}{\void}
 | 
						|
 | 
						|
Gets a pointer to the stipple bitmap. If the brush does not have a wxSTIPPLE style,
 | 
						|
this bitmap may be non-NULL but uninitialised (\helpref{wxBitmap:IsOk}{wxbitmapisok} returns false).
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrush::SetStipple}{wxbrushsetstipple}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::GetStyle}\label{wxbrushgetstyle}
 | 
						|
 | 
						|
\constfunc{int}{GetStyle}{\void}
 | 
						|
 | 
						|
Returns the brush style, one of:
 | 
						|
 | 
						|
\begin{twocollist}\itemsep=0pt
 | 
						|
\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).}
 | 
						|
\twocolitem{{\bf wxSOLID}}{Solid.}
 | 
						|
\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.}
 | 
						|
\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.}
 | 
						|
\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.}
 | 
						|
\twocolitem{{\bf wxSTIPPLE}}{Stippled using a bitmap.}
 | 
						|
\twocolitem{{\bf wxSTIPPLE\_MASK\_OPAQUE}}{Stippled using a bitmap's mask.}
 | 
						|
\end{twocollist}
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrush::SetStyle}{wxbrushsetstyle}, \helpref{wxBrush::SetColour}{wxbrushsetcolour},\rtfsp
 | 
						|
\helpref{wxBrush::SetStipple}{wxbrushsetstipple}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::IsHatch}\label{wxbrushishatch}
 | 
						|
 | 
						|
\constfunc{bool}{IsHatch}{\void}
 | 
						|
 | 
						|
Returns true if the style of the brush is any of hatched fills.
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrush::GetStyle}{wxbrushgetstyle}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::IsOk}\label{wxbrushisok}
 | 
						|
 | 
						|
\constfunc{bool}{IsOk}{\void}
 | 
						|
 | 
						|
Returns true if the brush is initialised. It will return false if the default
 | 
						|
constructor has been used (for example, the brush is a member of a class, or
 | 
						|
NULL has been assigned to it).
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::SetColour}\label{wxbrushsetcolour}
 | 
						|
 | 
						|
\func{void}{SetColour}{\param{wxColour\& }{colour}}
 | 
						|
 | 
						|
Sets the brush colour using a reference to a colour object.
 | 
						|
 | 
						|
\func{void}{SetColour}{\param{const wxString\& }{colourName}}
 | 
						|
 | 
						|
Sets the brush colour using a colour name from the colour database.
 | 
						|
 | 
						|
\func{void}{SetColour}{\param{unsigned char}{ red}, \param{unsigned char}{ green}, \param{unsigned char}{ blue}}
 | 
						|
 | 
						|
Sets the brush colour using red, green and blue values.
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrush::GetColour}{wxbrushgetcolour}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::SetStipple}\label{wxbrushsetstipple}
 | 
						|
 | 
						|
\func{void}{SetStipple}{\param{const wxBitmap\&}{ bitmap}}
 | 
						|
 | 
						|
Sets the stipple bitmap.
 | 
						|
 | 
						|
\wxheading{Parameters}
 | 
						|
 | 
						|
\docparam{bitmap}{The bitmap to use for stippling.}
 | 
						|
 | 
						|
\wxheading{Remarks}
 | 
						|
 | 
						|
The style will be set to wxSTIPPLE, unless the bitmap has a mask associated
 | 
						|
to it, in which case the style will be set to wxSTIPPLE\_MASK\_OPAQUE.
 | 
						|
 | 
						|
If the wxSTIPPLE variant is used, the bitmap will be used to fill out the
 | 
						|
area to be drawn. If the wxSTIPPLE\_MASK\_OPAQUE is used, the current
 | 
						|
text foreground and text background determine what colours are used for
 | 
						|
displaying and the bits in the mask (which is a mono-bitmap actually)
 | 
						|
determine where to draw what.
 | 
						|
 | 
						|
Note that under Windows 95, only 8x8 pixel large stipple bitmaps are
 | 
						|
supported, Windows 98 and NT as well as GTK support arbitrary bitmaps.
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBitmap}{wxbitmap}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::SetStyle}\label{wxbrushsetstyle}
 | 
						|
 | 
						|
\func{void}{SetStyle}{\param{int}{ style}}
 | 
						|
 | 
						|
Sets the brush style.
 | 
						|
 | 
						|
\docparam{style}{One of:
 | 
						|
 | 
						|
\begin{twocollist}\itemsep=0pt
 | 
						|
\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).}
 | 
						|
\twocolitem{{\bf wxSOLID}}{Solid.}
 | 
						|
\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.}
 | 
						|
\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.}
 | 
						|
\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.}
 | 
						|
\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.}
 | 
						|
\twocolitem{{\bf wxSTIPPLE}}{Stippled using a bitmap.}
 | 
						|
\twocolitem{{\bf wxSTIPPLE\_MASK\_OPAQUE}}{Stippled using a bitmap's mask.}
 | 
						|
\end{twocollist}}
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrush::GetStyle}{wxbrushgetstyle}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::operator $=$}\label{wxbrushassignment}
 | 
						|
 | 
						|
\func{wxBrush\&}{operator $=$}{\param{const wxBrush\& }{brush}}
 | 
						|
 | 
						|
Assignment operator, using \helpref{reference counting}{trefcount}.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::operator $==$}\label{wxbrushequals}
 | 
						|
 | 
						|
\func{bool}{operator $==$}{\param{const wxBrush\& }{brush}}
 | 
						|
 | 
						|
Equality operator.
 | 
						|
See \helpref{reference-counted object comparison}{refcountequality} for more info.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrush::operator $!=$}\label{wxbrushnotequals}
 | 
						|
 | 
						|
\func{bool}{operator $!=$}{\param{const wxBrush\& }{brush}}
 | 
						|
 | 
						|
Inequality operator.
 | 
						|
See \helpref{reference-counted object comparison}{refcountequality} for more info.
 | 
						|
 | 
						|
 | 
						|
\section{\class{wxBrushList}}\label{wxbrushlist}
 | 
						|
 | 
						|
A brush list is a list containing all brushes which have been created.
 | 
						|
 | 
						|
\wxheading{Derived from}
 | 
						|
 | 
						|
\helpref{wxList}{wxlist}\\
 | 
						|
\helpref{wxObject}{wxobject}
 | 
						|
 | 
						|
\wxheading{Include files}
 | 
						|
 | 
						|
<wx/gdicmn.h>
 | 
						|
 | 
						|
\wxheading{Remarks}
 | 
						|
 | 
						|
There is only one instance of this class: {\bf wxTheBrushList}.  Use
 | 
						|
this object to search for a previously created brush of the desired
 | 
						|
type and create it if not already found. In some windowing systems,
 | 
						|
the brush may be a scarce resource, so it can pay to reuse old
 | 
						|
resources if possible. When an application finishes, all brushes will
 | 
						|
be deleted and their resources freed, eliminating the possibility of
 | 
						|
`memory leaks'. However, it is best not to rely on this automatic
 | 
						|
cleanup because it can lead to double deletion in some circumstances.
 | 
						|
 | 
						|
There are two mechanisms in recent versions of wxWidgets which make the
 | 
						|
brush list less useful than it once was. Under Windows, scarce resources
 | 
						|
are cleaned up internally if they are not being used. Also, a reference
 | 
						|
counting mechanism applied to all GDI objects means that some sharing
 | 
						|
of underlying resources is possible. You don't have to keep track of pointers,
 | 
						|
working out when it is safe delete a brush, because the reference counting does
 | 
						|
it for you. For example, you can set a brush in a device context, and then
 | 
						|
immediately delete the brush you passed, because the brush is `copied'.
 | 
						|
 | 
						|
So you may find it easier to ignore the brush list, and instead create
 | 
						|
and copy brushes as you see fit. If your Windows resource meter suggests
 | 
						|
your application is using too many resources, you can resort to using
 | 
						|
GDI lists to share objects explicitly.
 | 
						|
 | 
						|
The only compelling use for the brush list is for wxWidgets to keep
 | 
						|
track of brushes in order to clean them up on exit. It is also kept for
 | 
						|
backward compatibility with earlier versions of wxWidgets.
 | 
						|
 | 
						|
\wxheading{See also}
 | 
						|
 | 
						|
\helpref{wxBrush}{wxbrush}
 | 
						|
 | 
						|
\latexignore{\rtfignore{\wxheading{Members}}}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrushList::wxBrushList}\label{wxbrushlistconstr}
 | 
						|
 | 
						|
\func{void}{wxBrushList}{\void}
 | 
						|
 | 
						|
Constructor. The application should not construct its own brush list:
 | 
						|
use the object pointer {\bf wxTheBrushList}.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxBrushList::FindOrCreateBrush}\label{wxbrushlistfindorcreatebrush}
 | 
						|
 | 
						|
\func{wxBrush *}{FindOrCreateBrush}{\param{const wxColour\& }{colour}, \param{int}{ style = wxSOLID}}
 | 
						|
 | 
						|
Finds a brush with the specified attributes and returns it, else creates a new brush, adds it
 | 
						|
to the brush list, and returns it.
 | 
						|
 | 
						|
\wxheading{Parameters}
 | 
						|
 | 
						|
\docparam{colour}{Colour object.}
 | 
						|
 | 
						|
\docparam{style}{Brush style. See \helpref{wxBrush::SetStyle}{wxbrushsetstyle} for a list of styles.}
 | 
						|
 | 
						|
 |