a660d684ed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
344 lines
12 KiB
TeX
344 lines
12 KiB
TeX
\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{Remarks}
|
|
|
|
On a monochrome display, wxWindows 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}.
|
|
|
|
wxBrush uses a reference counting system, so assignments between brushes are very
|
|
cheap. You can therefore use actual wxBrush objects instead of pointers without
|
|
efficiency problems. Bear in mind, though, that changing a brush's properties may
|
|
affect another brush which has been involved in an assignment with the first brush,
|
|
because of the way internal brush data is shared.
|
|
|
|
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}
|
|
|
|
\func{}{wxBrush}{\void}
|
|
|
|
Default constructor. The brush will be uninitialised, and \helpref{wxBrush::Ok}{wxbrushok} will
|
|
return FALSE.
|
|
|
|
\func{}{wxBrush}{\param{const wxColour\&}{ colour}, \param{const int}{ style}}
|
|
|
|
Constructs a brush from a colour object and style.
|
|
|
|
\func{}{wxBrush}{\param{const wxString\& }{colourName}, \param{const 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. This uses reference counting so is a cheap operation.
|
|
|
|
\func{}{wxBrush}{\param{const wxBrush*}{ brush}}
|
|
|
|
Copy constructor. This uses reference counting so is a cheap operation.
|
|
|
|
\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 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}}
|
|
|
|
\func{void}{\destruct{wxBrush}}{\void}
|
|
|
|
Destructor.
|
|
|
|
\wxheading{Remarks}
|
|
|
|
The destructor may not delete the underlying brush object of the native windowing
|
|
system, since wxBrush uses a reference counting system for efficiency.
|
|
|
|
Although all remaining brushes are deleted when the application exits,
|
|
the application should try to clean up all brushes itself. This is because
|
|
wxWindows 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::Ok}{wxbitmapok} 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.}
|
|
\end{twocollist}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxBrush::SetStyle}{wxbrushsetstyle}, \helpref{wxBrush::SetColour}{wxbrushsetcolour},\rtfsp
|
|
\helpref{wxBrush::SetStipple}{wxbrushsetstipple}
|
|
|
|
\membersection{wxBrush::Ok}\label{wxbrushok}
|
|
|
|
\constfunc{bool}{Ok}{\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{const unsigned char}{ red}, \param{const unsigned char}{ green}, \param{const 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.
|
|
|
|
Note that there is a big difference between stippling in X and Windows.
|
|
On X, the stipple is a mask between the wxBitmap and current colour.
|
|
On Windows, the current colour is ignored, and the bitmap colour is used.
|
|
However, for pre-defined modes like wxCROSS\_HATCH, the behaviour is the
|
|
same for both platforms.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxBitmap}{wxbitmap}
|
|
|
|
\membersection{wxBrush::SetStyle}\label{wxbrushsetstyle}
|
|
|
|
\func{void}{SetStyle}{\param{const 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.}
|
|
\end{twocollist}}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxBrush::GetStyle}{wxbrushgetstyle}
|
|
|
|
\membersection{wxBrush::operator $=$}\label{wxbrushassignment}
|
|
|
|
\func{wxBrush\&}{operator $=$}{\param{const wxBrush\& }{brush}}
|
|
|
|
Assignment operator, using reference counting. Returns a reference
|
|
to `this'.
|
|
|
|
\membersection{wxBrush::operator $==$}\label{wxbrushequals}
|
|
|
|
\func{bool}{operator $==$}{\param{const wxBrush\& }{brush}}
|
|
|
|
Equality operator. Two brushes are equal if they contain pointers
|
|
to the same underlying brush data. It does not compare each attribute,
|
|
so two independently-created brushes using the same parameters will
|
|
fail the test.
|
|
|
|
\membersection{wxBrush::operator $!=$}\label{wxbrushnotequals}
|
|
|
|
\func{bool}{operator $!=$}{\param{const wxBrush\& }{brush}}
|
|
|
|
Inequality operator. Two brushes are not equal if they contain pointers
|
|
to different underlying brush data. It does not compare each attribute.
|
|
|
|
\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{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 wxWindows 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 referencing
|
|
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 referencing 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 wxWindows to keep
|
|
track of brushes in order to clean them up on exit. It is also kept for
|
|
backward compatibility with earlier versions of wxWindows.
|
|
|
|
\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::AddBrush}\label{wxbrushlistaddbrush}
|
|
|
|
\func{void}{AddBrush}{\param{wxBrush *}{brush}}
|
|
|
|
Used internally by wxWindows to add a brush to the list.
|
|
|
|
\membersection{wxBrushList::FindOrCreateBrush}\label{wxbrushlistfindorcreatebrush}
|
|
|
|
\func{wxBrush *}{FindOrCreateBrush}{\param{const wxColour\& }{colour}, \param{const int}{ style}}
|
|
|
|
Finds a brush with the specified attributes and returns it, else creates a new brush, adds it
|
|
to the brush list, and returns it.
|
|
|
|
\func{wxBrush *}{FindOrCreateBrush}{\param{const wxString\& }{colourName}, \param{const int}{ style}}
|
|
|
|
Finds a brush with the specified attributes and returns it, else creates a new brush, adds it
|
|
to the brush list, and returns it.
|
|
|
|
Finds a brush of the given specification, or creates one and adds it to the list.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{colour}{Colour object.}
|
|
|
|
\docparam{colourName}{Colour name, which should be in the colour database.}
|
|
|
|
\docparam{style}{Brush style. See \helpref{wxBrush::SetStyle}{wxbrushsetstyle} for a list of styles.}
|
|
|
|
\membersection{wxBrushList::RemoveBrush}\label{wxbrushlistremovebrush}
|
|
|
|
\func{void}{RemoveBrush}{\param{wxBrush *}{brush}}
|
|
|
|
Used by wxWindows to remove a brush from the list.
|
|
|
|
|