0f35356305
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
526 lines
16 KiB
TeX
526 lines
16 KiB
TeX
\section{\class{wxFont}}\label{wxfont}
|
|
|
|
A font is an object which determines the appearance of text. Fonts are
|
|
used for drawing text to a device context, and setting the appearance of
|
|
a window's text.
|
|
|
|
You can retrieve the current system font settings with \helpref{wxSystemSettings}{wxsystemsettings}.
|
|
|
|
\helpref{wxSystemSettings}{wxsystemsettings}
|
|
|
|
\wxheading{Derived from}
|
|
|
|
\helpref{wxGDIObject}{wxgdiobject}\\
|
|
\helpref{wxObject}{wxobject}
|
|
|
|
\wxheading{Include files}
|
|
|
|
<wx/font.h>
|
|
|
|
\wxheading{Constants}
|
|
|
|
The possible values for the \arg{family} parameter of \helpref{wxFont
|
|
constructor}{wxfontctor} are (the old names are for compatibility only):
|
|
|
|
\begin{verbatim}
|
|
enum wxFontFamily
|
|
{
|
|
wxFONTFAMILY_DEFAULT = wxDEFAULT,
|
|
wxFONTFAMILY_DECORATIVE = wxDECORATIVE,
|
|
wxFONTFAMILY_ROMAN = wxROMAN,
|
|
wxFONTFAMILY_SCRIPT = wxSCRIPT,
|
|
wxFONTFAMILY_SWISS = wxSWISS,
|
|
wxFONTFAMILY_MODERN = wxMODERN,
|
|
wxFONTFAMILY_TELETYPE = wxTELETYPE,
|
|
wxFONTFAMILY_MAX
|
|
};
|
|
\end{verbatim}
|
|
|
|
The font flags which can be used during the font creation are:
|
|
|
|
\begin{verbatim}
|
|
enum
|
|
{
|
|
// no special flags: font with default weight/slant/anti-aliasing
|
|
wxFONTFLAG_DEFAULT = 0,
|
|
|
|
// slant flags (default: no slant)
|
|
wxFONTFLAG_ITALIC = 1 << 0,
|
|
wxFONTFLAG_SLANT = 1 << 1,
|
|
|
|
// weight flags (default: medium)
|
|
wxFONTFLAG_LIGHT = 1 << 2,
|
|
wxFONTFLAG_BOLD = 1 << 3,
|
|
|
|
// anti-aliasing flag: force on or off (default: the current system default)
|
|
wxFONTFLAG_ANTIALIASED = 1 << 4,
|
|
wxFONTFLAG_NOT_ANTIALIASED = 1 << 5,
|
|
|
|
// underlined/strikethrough flags (default: no lines)
|
|
wxFONTFLAG_UNDERLINED = 1 << 6,
|
|
wxFONTFLAG_STRIKETHROUGH = 1 << 7,
|
|
};
|
|
\end{verbatim}
|
|
|
|
The known font encodings are:
|
|
|
|
\begin{verbatim}
|
|
enum wxFontEncoding
|
|
{
|
|
wxFONTENCODING_SYSTEM = -1, // system default
|
|
wxFONTENCODING_DEFAULT, // current default encoding
|
|
|
|
// ISO8859 standard defines a number of single-byte charsets
|
|
wxFONTENCODING_ISO8859_1, // West European (Latin1)
|
|
wxFONTENCODING_ISO8859_2, // Central and East European (Latin2)
|
|
wxFONTENCODING_ISO8859_3, // Esperanto (Latin3)
|
|
wxFONTENCODING_ISO8859_4, // Baltic (old) (Latin4)
|
|
wxFONTENCODING_ISO8859_5, // Cyrillic
|
|
wxFONTENCODING_ISO8859_6, // Arabic
|
|
wxFONTENCODING_ISO8859_7, // Greek
|
|
wxFONTENCODING_ISO8859_8, // Hebrew
|
|
wxFONTENCODING_ISO8859_9, // Turkish (Latin5)
|
|
wxFONTENCODING_ISO8859_10, // Variation of Latin4 (Latin6)
|
|
wxFONTENCODING_ISO8859_11, // Thai
|
|
wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it
|
|
// here anyhow to make all ISO8859
|
|
// consecutive numbers
|
|
wxFONTENCODING_ISO8859_13, // Baltic (Latin7)
|
|
wxFONTENCODING_ISO8859_14, // Latin8
|
|
wxFONTENCODING_ISO8859_15, // Latin9 (a.k.a. Latin0, includes euro)
|
|
wxFONTENCODING_ISO8859_MAX,
|
|
|
|
// Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html)
|
|
wxFONTENCODING_KOI8, // we don't support any of KOI8 variants
|
|
wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866
|
|
wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria
|
|
|
|
// what would we do without Microsoft? They have their own encodings
|
|
// for DOS
|
|
wxFONTENCODING_CP437, // original MS-DOS codepage
|
|
wxFONTENCODING_CP850, // CP437 merged with Latin1
|
|
wxFONTENCODING_CP852, // CP437 merged with Latin2
|
|
wxFONTENCODING_CP855, // another cyrillic encoding
|
|
wxFONTENCODING_CP866, // and another one
|
|
// and for Windows
|
|
wxFONTENCODING_CP874, // WinThai
|
|
wxFONTENCODING_CP1250, // WinLatin2
|
|
wxFONTENCODING_CP1251, // WinCyrillic
|
|
wxFONTENCODING_CP1252, // WinLatin1
|
|
wxFONTENCODING_CP1253, // WinGreek (8859-7)
|
|
wxFONTENCODING_CP1254, // WinTurkish
|
|
wxFONTENCODING_CP1255, // WinHebrew
|
|
wxFONTENCODING_CP1256, // WinArabic
|
|
wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7)
|
|
wxFONTENCODING_CP12_MAX,
|
|
|
|
wxFONTENCODING_UTF7, // UTF-7 Unicode encoding
|
|
wxFONTENCODING_UTF8, // UTF-8 Unicode encoding
|
|
|
|
wxFONTENCODING_UNICODE, // Unicode - currently used only by
|
|
// wxEncodingConverter class
|
|
|
|
wxFONTENCODING_MAX
|
|
};
|
|
\end{verbatim}
|
|
|
|
\wxheading{Predefined objects}
|
|
|
|
Objects:
|
|
|
|
{\bf wxNullFont}
|
|
|
|
Pointers:
|
|
|
|
{\bf wxNORMAL\_FONT\\
|
|
wxSMALL\_FONT\\
|
|
wxITALIC\_FONT\\
|
|
wxSWISS\_FONT}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont overview}{wxfontoverview}, \helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp
|
|
\helpref{wxDC::DrawText}{wxdcdrawtext}, \helpref{wxDC::GetTextExtent}{wxdcgettextextent},\rtfsp
|
|
\helpref{wxFontDialog}{wxfontdialog}, \helpref{wxSystemSettings}{wxsystemsettings}
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
|
\membersection{wxFont::wxFont}\label{wxfontctor}
|
|
|
|
\func{}{wxFont}{\void}
|
|
|
|
Default constructor.
|
|
|
|
\func{}{wxFont}{\param{int}{ pointSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{int}{ weight},
|
|
\param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""},
|
|
\param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
|
|
|
|
\func{}{wxFont}{\param{int}{ pixelSize}, \param{int}{ family}, \param{int}{ style}, \param{int}{ weight},
|
|
\param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""},
|
|
\param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
|
|
|
|
Creates a font object with the specified attributes.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{pointSize}{Size in points.}
|
|
|
|
\docparam{pixelSize}{Size in pixels: this is directly supported only under MSW
|
|
currently where this constructor can be used directly, under other platforms a
|
|
font with the closest size to the given one is found using binary search and
|
|
the static \helpref{New}{wxfontnew} method must be used.}
|
|
|
|
\docparam{family}{Font family, a generic way of referring to fonts without specifying actual facename. One of:
|
|
|
|
\twocolwidtha{5cm}
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{{\bf wxDEFAULT}}{Chooses a default font.}
|
|
\twocolitem{{\bf wxDECORATIVE}}{A decorative font.}
|
|
\twocolitem{{\bf wxROMAN}}{A formal, serif font.}
|
|
\twocolitem{{\bf wxSCRIPT}}{A handwriting font.}
|
|
\twocolitem{{\bf wxSWISS}}{A sans-serif font.}
|
|
\twocolitem{{\bf wxMODERN}}{A fixed pitch font.}
|
|
\end{twocollist}}
|
|
|
|
\docparam{style}{One of {\bf wxNORMAL}, {\bf wxSLANT} and {\bf wxITALIC}.}
|
|
|
|
\docparam{weight}{One of {\bf wxNORMAL}, {\bf wxLIGHT} and {\bf wxBOLD}.}
|
|
|
|
\docparam{underline}{The value can be true or false. At present this has an effect on Windows and Motif 2.x only.}
|
|
|
|
\docparam{faceName}{An optional string specifying the actual typeface to be used. If it is an empty string,
|
|
a default typeface will be chosen based on the family.}
|
|
|
|
\docparam{encoding}{An encoding which may be one of
|
|
\twocolwidtha{5cm}
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{{\bf wxFONTENCODING\_SYSTEM}}{Default system encoding.}
|
|
\twocolitem{{\bf wxFONTENCODING\_DEFAULT}}{Default application encoding: this
|
|
is the encoding set by calls to
|
|
\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding} and which may be set to,
|
|
say, KOI8 to create all fonts by default with KOI8 encoding. Initially, the
|
|
default application encoding is the same as default system encoding.}
|
|
\twocolitem{{\bf wxFONTENCODING\_ISO8859\_1...15}}{ISO8859 encodings.}
|
|
\twocolitem{{\bf wxFONTENCODING\_KOI8}}{The standard Russian encoding for Internet.}
|
|
\twocolitem{{\bf wxFONTENCODING\_CP1250...1252}}{Windows encodings similar to ISO8859 (but not identical).}
|
|
\end{twocollist}
|
|
If the specified encoding isn't available, no font is created
|
|
(see also \helpref{font encoding overview}{wxfontencodingoverview}).
|
|
}
|
|
|
|
\wxheading{Remarks}
|
|
|
|
If the desired font does not exist, the closest match will be chosen.
|
|
Under Windows, only scalable TrueType fonts are used.
|
|
|
|
See also \helpref{wxDC::SetFont}{wxdcsetfont}, \helpref{wxDC::DrawText}{wxdcdrawtext}
|
|
and \helpref{wxDC::GetTextExtent}{wxdcgettextextent}.
|
|
|
|
|
|
\membersection{wxFont::\destruct{wxFont}}\label{wxfontdtor}
|
|
|
|
\func{}{\destruct{wxFont}}{\void}
|
|
|
|
Destructor.
|
|
|
|
\wxheading{Remarks}
|
|
|
|
The destructor may not delete the underlying font object of the native windowing
|
|
system, since wxFont uses a reference counting system for efficiency.
|
|
|
|
Although all remaining fonts are deleted when the application exits,
|
|
the application should try to clean up all fonts itself. This is because
|
|
wxWidgets cannot know if a pointer to the font object is stored in an
|
|
application data structure, and there is a risk of double deletion.
|
|
|
|
|
|
\membersection{wxFont::IsFixedWidth}\label{wxfontisfixedwidth}
|
|
|
|
\constfunc{bool}{IsFixedWidth}{\void}
|
|
|
|
Returns {\tt true} if the font is a fixed width (or monospaced) font,
|
|
{\tt false} if it is a proportional one or font is invalid.
|
|
|
|
|
|
\membersection{wxFont::GetDefaultEncoding}\label{wxfontgetdefaultencoding}
|
|
|
|
\func{static wxFontEncoding}{GetDefaultEncoding}{\void}
|
|
|
|
Returns the current application's default encoding.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{Font encoding overview}{wxfontencodingoverview},
|
|
\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding}
|
|
|
|
|
|
\membersection{wxFont::GetFaceName}\label{wxfontgetfacename}
|
|
|
|
\constfunc{wxString}{GetFaceName}{\void}
|
|
|
|
Returns the typeface name associated with the font, or the empty string if there is no
|
|
typeface information.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::SetFaceName}{wxfontsetfacename}
|
|
|
|
|
|
\membersection{wxFont::GetFamily}\label{wxfontgetfamily}
|
|
|
|
\constfunc{int}{GetFamily}{\void}
|
|
|
|
Gets the font family. See \helpref{wxFont::wxFont}{wxfontctor} for a list of valid
|
|
family identifiers.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::SetFamily}{wxfontsetfamily}
|
|
|
|
|
|
\membersection{wxFont::GetNativeFontInfoDesc}\label{wxfontgetnativefontinfodesc}
|
|
|
|
\constfunc{wxString}{GetNativeFontInfoDesc}{\void}
|
|
|
|
Returns the platform-dependent string completely describing this font or an
|
|
empty string if the font wasn't constructed using the native font description.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo}
|
|
|
|
|
|
\membersection{wxFont::GetPointSize}\label{wxfontgetpointsize}
|
|
|
|
\constfunc{int}{GetPointSize}{\void}
|
|
|
|
Gets the point size.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::SetPointSize}{wxfontsetpointsize}
|
|
|
|
|
|
\membersection{wxFont::GetStyle}\label{wxfontgetstyle}
|
|
|
|
\constfunc{int}{GetStyle}{\void}
|
|
|
|
Gets the font style. See \helpref{wxFont::wxFont}{wxfontctor} for a list of valid
|
|
styles.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::SetStyle}{wxfontsetstyle}
|
|
|
|
|
|
\membersection{wxFont::GetUnderlined}\label{wxfontgetunderlined}
|
|
|
|
\constfunc{bool}{GetUnderlined}{\void}
|
|
|
|
Returns true if the font is underlined, false otherwise.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::SetUnderlined}{wxfontsetunderlined}
|
|
|
|
|
|
\membersection{wxFont::GetWeight}\label{wxfontgetweight}
|
|
|
|
\constfunc{int}{GetWeight}{\void}
|
|
|
|
Gets the font weight. See \helpref{wxFont::wxFont}{wxfontctor} for a list of valid
|
|
weight identifiers.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::SetWeight}{wxfontsetweight}
|
|
|
|
|
|
\membersection{wxFont::New}\label{wxfontnew}
|
|
|
|
\func{static wxFont *}{New}{\param{int}{ pointSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{int}{ weight},
|
|
\param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""},
|
|
\param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
|
|
|
|
\func{static wxFont *}{New}{\param{int}{ pointSize}, \param{wxFontFamily}{ family},
|
|
\param{int}{ flags = \texttt{wxFONTFLAG\_DEFAULT}}, \param{const wxString\& }{faceName = ""},
|
|
\param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
|
|
|
|
\func{static wxFont *}{New}{\param{const wxSize\&}{ pixelSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{int}{ weight},
|
|
\param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""},
|
|
\param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
|
|
|
|
\func{static wxFont *}{New}{\param{const wxSize\&}{ pixelSize}, \param{wxFontFamily}{ family},
|
|
\param{int}{ flags = \texttt{wxFONTFLAG\_DEFAULT}}, \param{const wxString\& }{faceName = ""},
|
|
\param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
|
|
|
|
These functions take the same parameters as \helpref{wxFont
|
|
constructor}{wxfontctor} and return a new font object allocated on the heap.
|
|
|
|
Using \texttt{New()} is currently the only way to directly create a font with
|
|
the given size in pixels on platforms other than wxMSW.
|
|
|
|
|
|
\membersection{wxFont::Ok}\label{wxfontok}
|
|
|
|
\constfunc{bool}{Ok}{\void}
|
|
|
|
Returns {\tt true} if this object is a valid font, {\tt false} otherwise.
|
|
|
|
|
|
\membersection{wxFont::SetDefaultEncoding}\label{wxfontsetdefaultencoding}
|
|
|
|
\func{static void}{SetDefaultEncoding}{\param{wxFontEncoding }{encoding}}
|
|
|
|
Sets the default font encoding.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{Font encoding overview}{wxfontencodingoverview},
|
|
\helpref{GetDefaultEncoding}{wxfontgetdefaultencoding}
|
|
|
|
|
|
\membersection{wxFont::SetFaceName}\label{wxfontsetfacename}
|
|
|
|
\func{void}{SetFaceName}{\param{const wxString\& }{faceName}}
|
|
|
|
Sets the facename for the font.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{faceName}{A valid facename, which should be on the end-user's system.}
|
|
|
|
\wxheading{Remarks}
|
|
|
|
To avoid portability problems, don't rely on a specific face, but specify the font family
|
|
instead or as well. A suitable font will be found on the end-user's system. If both the
|
|
family and the facename are specified, wxWidgets will first search for the specific face,
|
|
and then for a font belonging to the same family.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::GetFaceName}{wxfontgetfacename}, \helpref{wxFont::SetFamily}{wxfontsetfamily}
|
|
|
|
|
|
\membersection{wxFont::SetFamily}\label{wxfontsetfamily}
|
|
|
|
\func{void}{SetFamily}{\param{int}{ family}}
|
|
|
|
Sets the font family.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{family}{One of:
|
|
|
|
\twocolwidtha{5cm}
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{{\bf wxDEFAULT}}{Chooses a default font.}
|
|
\twocolitem{{\bf wxDECORATIVE}}{A decorative font.}
|
|
\twocolitem{{\bf wxROMAN}}{A formal, serif font.}
|
|
\twocolitem{{\bf wxSCRIPT}}{A handwriting font.}
|
|
\twocolitem{{\bf wxSWISS}}{A sans-serif font.}
|
|
\twocolitem{{\bf wxMODERN}}{A fixed pitch font.}
|
|
\end{twocollist}}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::GetFamily}{wxfontgetfamily}, \helpref{wxFont::SetFaceName}{wxfontsetfacename}
|
|
|
|
|
|
\membersection{wxFont::SetNativeFontInfo}\label{wxfontsetnativefontinfo}
|
|
|
|
\func{void}{SetNativeFontInfo}{\param{const wxString\& }{info}}
|
|
|
|
Creates the font corresponding to the given native font description string
|
|
which must have been previously returned by
|
|
\helpref{GetNativeFontInfoDesc}{wxfontgetnativefontinfodesc}. If the string is
|
|
invalid, font is unchanged.
|
|
|
|
|
|
\membersection{wxFont::SetPointSize}\label{wxfontsetpointsize}
|
|
|
|
\func{void}{SetPointSize}{\param{int}{ pointSize}}
|
|
|
|
Sets the point size.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{pointSize}{Size in points.}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::GetPointSize}{wxfontgetpointsize}
|
|
|
|
|
|
\membersection{wxFont::SetStyle}\label{wxfontsetstyle}
|
|
|
|
\func{void}{SetStyle}{\param{int}{ style}}
|
|
|
|
Sets the font style.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{style}{One of {\bf wxNORMAL}, {\bf wxSLANT} and {\bf wxITALIC}.}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::GetStyle}{wxfontgetstyle}
|
|
|
|
|
|
\membersection{wxFont::SetUnderlined}\label{wxfontsetunderlined}
|
|
|
|
\func{void}{SetUnderlined}{\param{const bool}{ underlined}}
|
|
|
|
Sets underlining.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{underlining}{true to underline, false otherwise.}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::GetUnderlined}{wxfontgetunderlined}
|
|
|
|
|
|
\membersection{wxFont::SetWeight}\label{wxfontsetweight}
|
|
|
|
\func{void}{SetWeight}{\param{int}{ weight}}
|
|
|
|
Sets the font weight.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{weight}{One of {\bf wxNORMAL}, {\bf wxLIGHT} and {\bf wxBOLD}.}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxFont::GetWeight}{wxfontgetweight}
|
|
|
|
|
|
\membersection{wxFont::operator $=$}\label{wxfontassignment}
|
|
|
|
\func{wxFont\&}{operator $=$}{\param{const wxFont\& }{font}}
|
|
|
|
Assignment operator, using reference counting. Returns a reference
|
|
to `this'.
|
|
|
|
|
|
\membersection{wxFont::operator $==$}\label{wxfontequals}
|
|
|
|
\func{bool}{operator $==$}{\param{const wxFont\& }{font}}
|
|
|
|
Equality operator. Two fonts are equal if they contain pointers
|
|
to the same underlying font data. It does not compare each attribute,
|
|
so two independently-created fonts using the same parameters will
|
|
fail the test.
|
|
|
|
|
|
\membersection{wxFont::operator $!=$}\label{wxfontnotequals}
|
|
|
|
\func{bool}{operator $!=$}{\param{const wxFont\& }{font}}
|
|
|
|
Inequality operator. Two fonts are not equal if they contain pointers
|
|
to different underlying font data. It does not compare each attribute.
|
|
|