]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/font.tex
Changed version to 2.5.1
[wxWidgets.git] / docs / latex / wx / font.tex
index ae7e3233aa2363e749a107bdbc9d367e2fedd2ea..014c8b680b0af04fbf1b8670f14788242448a3d4 100644 (file)
@@ -4,16 +4,125 @@ 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 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{wxFontDialog}{wxfontdialog}, \helpref{wxSystemSettings}{wxsystemsettings}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
@@ -23,10 +132,12 @@ a window's text.
 
 Default constructor.
 
-\func{}{wxFont}{\param{const int}{ pointSize}, \param{const int}{ family}, \param{const int}{ style}, \param{const int}{ weight},
- \param{const bool}{ underline = FALSE}, \param{const wxString\& }{faceName = ""}}
+\func{}{wxFont}{\param{int}{ pointSize}, \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.
+Creates a font object (see \helpref{font encoding
+overview}{wxfontencodingoverview} for the meaning of the last parameter).
 
 \wxheading{Parameters}
 
@@ -48,17 +159,31 @@ Creates a font object.
 
 \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 only.}
+\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 the empty string,
 a default typeface will 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.
+}
+
 \wxheading{Remarks}
 
 If the desired font does not exist, the closest match will be chosen.
-Under Windows, only scaleable TrueType fonts are used.
-
-Underlining only works under Windows at present.
+Under Windows, only scalable TrueType fonts are used.
 
 See also \helpref{wxDC::SetFont}{wxdcsetfont}, \helpref{wxDC::DrawText}{wxdcdrawtext}
 and \helpref{wxDC::GetTextExtent}{wxdcgettextextent}.
@@ -72,13 +197,31 @@ Destructor.
 \wxheading{Remarks}
 
 The destructor may not delete the underlying font object of the native windowing
-system, since wxBrush uses a reference counting system for efficiency.
+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
 wxWindows 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}
@@ -101,12 +244,16 @@ family identifiers.
 
 \helpref{wxFont::SetFamily}{wxfontsetfamily}
 
-\membersection{wxFont::GetFontId}\label{wxfontgetfontid}
+\membersection{wxFont::GetNativeFontInfoDesc}\label{wxfontgetnativefontinfodesc}
 
-\constfunc{int}{GetFontId}{\void}
+\constfunc{wxString}{GetNativeFontInfoDesc}{\void}
 
-Returns the font id, if the portable font system is in operation. See \helpref{Font overview}{wxfontoverview} for
-further details.
+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}
 
@@ -133,7 +280,7 @@ styles.
 
 \constfunc{bool}{GetUnderlined}{\void}
 
-Returns TRUE if the font is underlined, FALSE otherwise.
+Returns true if the font is underlined, false otherwise.
 
 \wxheading{See also}
 
@@ -150,6 +297,23 @@ weight identifiers.
 
 \helpref{wxFont::SetWeight}{wxfontsetweight}
 
+\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}}
@@ -173,7 +337,7 @@ and then for a font belonging to the same family.
 
 \membersection{wxFont::SetFamily}\label{wxfontsetfamily}
 
-\func{void}{SetFamily}{\param{const int}{ family}}
+\func{void}{SetFamily}{\param{int}{ family}}
 
 Sets the font family.
 
@@ -195,9 +359,18 @@ Sets the font family.
 
 \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{const int}{ pointSize}}
+\func{void}{SetPointSize}{\param{int}{ pointSize}}
 
 Sets the point size.
 
@@ -211,7 +384,7 @@ Sets the point size.
 
 \membersection{wxFont::SetStyle}\label{wxfontsetstyle}
 
-\func{void}{SetStyle}{\param{const int}{ style}}
+\func{void}{SetStyle}{\param{int}{ style}}
 
 Sets the font style.
 
@@ -231,7 +404,7 @@ Sets underlining.
 
 \wxheading{Parameters}
 
-\docparam{underlining}{TRUE to underline, FALSE otherwise.}
+\docparam{underlining}{true to underline, false otherwise.}
 
 \wxheading{See also}
 
@@ -239,7 +412,7 @@ Sets underlining.
 
 \membersection{wxFont::SetWeight}\label{wxfontsetweight}
 
-\func{void}{SetWeight}{\param{const int}{ weight}}
+\func{void}{SetWeight}{\param{int}{ weight}}
 
 Sets the font weight.