1999-11-22 07:13:55 -05:00
|
|
|
\section{wxFont overview}\label{wxfontoverview}
|
1998-05-20 10:25:30 -04:00
|
|
|
|
2001-12-21 12:39:13 -05:00
|
|
|
Class: \helpref{wxFont}{wxfont}, \helpref{wxFontDialog}{wxfontdialog}
|
1998-05-20 10:25:30 -04:00
|
|
|
|
|
|
|
A font is an object which determines the appearance of text, primarily
|
1998-06-14 16:48:39 -04:00
|
|
|
when drawing text to a window or device context. A font is determined by
|
1999-11-03 18:51:07 -05:00
|
|
|
the following parameters (not all of them have to be specified, of course):
|
1998-05-20 10:25:30 -04:00
|
|
|
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
|
|
|
\twocolitem{Point size}{This is the standard way of referring to text size.}
|
|
|
|
\twocolitem{Family}{Supported families are:
|
1999-11-04 15:43:52 -05:00
|
|
|
{\bf wxDEFAULT, wxDECORATIVE, wxROMAN, wxSCRIPT, wxSWISS, wxMODERN}.
|
|
|
|
{\bf wxMODERN} is a fixed pitch font; the others are either fixed or variable pitch.}
|
1998-05-20 10:25:30 -04:00
|
|
|
\twocolitem{Style}{The value can be {\bf wxNORMAL, wxSLANT} or {\bf wxITALIC}.}
|
|
|
|
\twocolitem{Weight}{The value can be {\bf wxNORMAL, wxLIGHT} or {\bf wxBOLD}.}
|
2003-01-17 19:16:34 -05:00
|
|
|
\twocolitem{Underlining}{The value can be true or false.}
|
1998-05-20 10:25:30 -04:00
|
|
|
\twocolitem{Face name}{An optional string specifying the actual typeface to be used. If NULL,
|
|
|
|
a default typeface will chosen based on the family.}
|
1999-11-03 18:51:07 -05:00
|
|
|
\twocolitem{Encoding}{The font encoding (see {\bf wxFONTENCODING\_XXX}
|
|
|
|
constants and the \helpref{font overview}{wxfontencodingoverview} for more
|
|
|
|
details)}
|
1998-05-20 10:25:30 -04:00
|
|
|
\end{twocollist}
|
|
|
|
|
1999-11-03 18:51:07 -05:00
|
|
|
Specifying a family, rather than a specific typeface name, ensures a degree of
|
|
|
|
portability across platforms because a suitable font will be chosen for the
|
2001-12-21 12:39:13 -05:00
|
|
|
given font family, however it doesn't allow to choose a font precisely as the
|
|
|
|
parameters above don't suffice, in general, to identify all the available fonts
|
|
|
|
and this is where using the native font descriptions may be helpful - see
|
|
|
|
below.
|
1999-11-03 18:51:07 -05:00
|
|
|
|
|
|
|
Under Windows, the face name can be one of the installed fonts on the user's
|
|
|
|
system. Since the choice of fonts differs from system to system, either choose
|
|
|
|
standard Windows fonts, or if allowing the user to specify a face name, store
|
2001-12-21 12:39:13 -05:00
|
|
|
the family name with any file that might be transported to a different Windows
|
1999-11-03 18:51:07 -05:00
|
|
|
machine or other platform.
|
|
|
|
|
|
|
|
\normalbox{{\bf Note:} There is currently a difference between the appearance
|
|
|
|
of fonts on the two platforms, if the mapping mode is anything other than
|
|
|
|
wxMM\_TEXT. Under X, font size is always specified in points. Under MS
|
|
|
|
Windows, the unit for text is points but the text is scaled according to the
|
|
|
|
current mapping mode. However, user scaling on a device context will also
|
|
|
|
scale fonts under both environments.}
|
1998-05-20 10:25:30 -04:00
|
|
|
|
2001-12-21 12:39:13 -05:00
|
|
|
\subsection{Native font information}
|
|
|
|
|
|
|
|
An alternative way of choosing fonts is to use the native font description.
|
|
|
|
This is the only acceptable solution if the user is allowed to choose the font
|
|
|
|
using the \helpref{wxFontDialog}{wxfontdialog} because the selected font cannot
|
|
|
|
be described using only the family name and so, if only family name is stored
|
|
|
|
permanently, the user would almost surely see a different font in the program
|
|
|
|
later.
|
|
|
|
|
|
|
|
Instead, you should store the value returned by
|
|
|
|
\helpref{wxFont::GetNativeFontInfoDesc}{wxfontgetnativefontinfodesc} and pass
|
|
|
|
it to \helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo} later to
|
|
|
|
recreate exactly the same font.
|
|
|
|
|
|
|
|
Note that the contents of this string depends on the platform and shouldn't be
|
|
|
|
used for any other purpose (in particular, it is not meant to be shown to the
|
|
|
|
user). Also please note that although the native font information is currently
|
|
|
|
implemented for Windows and Unix (GTK+ and Motif) ports only, all the methods
|
|
|
|
are available for all the ports and should be used to make your program work
|
|
|
|
correctly when they are implemented later.
|
|
|
|
|