]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/font.tex
wxMemoryDC constructor now optionally accepts a wxBitmap parameter,
[wxWidgets.git] / docs / latex / wx / font.tex
index 7e17100438ab6d30ff1e0ff0b56fcb82d0274701..f520000102bf00f4694fd1cc1aab0bf8e0d8dbb0 100644 (file)
@@ -19,6 +19,36 @@ You can retrieve the current system font settings with \helpref{wxSystemSettings
 
 \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 possible values for the \arg{weight} parameter are (the old names
+are for compatibility only):
+
+\begin{verbatim}
+enum wxFontWeight
+{
+    wxFONTWEIGHT_NORMAL = wxNORMAL,
+    wxFONTWEIGHT_LIGHT = wxLIGHT,
+    wxFONTWEIGHT_BOLD = wxBOLD,
+    wxFONTWEIGHT_MAX
+};
+\end{verbatim}
+
 The font flags which can be used during the font creation are:
 
 \begin{verbatim}
@@ -128,50 +158,67 @@ wxSWISS\_FONT}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxFont::wxFont}\label{wxfontconstr}
+
+\membersection{wxFont::wxFont}\label{wxfontctor}
 
 \func{}{wxFont}{\void}
 
 Default constructor.
 
-\func{}{wxFont}{\param{int}{ pointSize}, \param{int}{ family}, \param{int}{ style}, \param{int}{ weight},
+\func{}{wxFont}{\param{int}{ pointSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{wxFontWeight}{ weight},
+ \param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""},
+ \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
+
+\func{}{wxFont}{\param{const wxSize\&}{ pixelSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{wxFontWeight}{ weight},
  \param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""},
  \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
 
-Creates a font object (see \helpref{font encoding
-overview}{wxfontencodingoverview} for the meaning of the last parameter).
+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.}
+\twocolitem{{\bf wxFONTFAMILY\_DEFAULT}}{Chooses a default font.}
+\twocolitem{{\bf wxFONTFAMILY\_DECORATIVE}}{A decorative font.}
+\twocolitem{{\bf wxFONTFAMILY\_ROMAN}}{A formal, serif font.}
+\twocolitem{{\bf wxFONTFAMILY\_SCRIPT}}{A handwriting font.}
+\twocolitem{{\bf wxFONTFAMILY\_SWISS}}{A sans-serif font.}
+\twocolitem{{\bf wxFONTFAMILY\_MODERN}}{A fixed pitch font.}
+\twocolitem{{\bf wxFONTFAMILY\_TELETYPE}}{A teletype font.}
 \end{twocollist}}
 
-\docparam{style}{One of {\bf wxNORMAL}, {\bf wxSLANT} and {\bf wxITALIC}.}
+\docparam{style}{One of {\bf wxFONTSTYLE\_NORMAL}, {\bf wxFONTSTYLE\_SLANT} and {\bf wxFONTSTYLE\_ITALIC}.}
 
-\docparam{weight}{One of {\bf wxNORMAL}, {\bf wxLIGHT} and {\bf wxBOLD}.}
+\docparam{weight}{Font weight, sometimes also referred to as font boldness. One of:
+
+\twocolwidtha{5cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{{\bf wxFONTWEIGHT\_NORMAL}}{Normal font.}
+\twocolitem{{\bf wxFONTWEIGHT\_LIGHT}}{Light font.}
+\twocolitem{{\bf wxFONTWEIGHT\_BOLD}}{Bold font.}
+\end{twocollist}}
 
 \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{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 
+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.}
@@ -179,7 +226,8 @@ default application encoding is the same as default system encoding.}
 \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.
+If the specified encoding isn't available, no font is created
+(see also \helpref{font encoding overview}{wxfontencodingoverview}).
 }
 
 \wxheading{Remarks}
@@ -190,7 +238,8 @@ 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}}
+
+\membersection{wxFont::\destruct{wxFont}}\label{wxfontdtor}
 
 \func{}{\destruct{wxFont}}{\void}
 
@@ -206,13 +255,15 @@ 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, 
+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}
@@ -221,9 +272,10 @@ Returns the current application's default encoding.
 
 \wxheading{See also}
 
-\helpref{Font encoding overview}{wxfontencodingoverview}, 
+\helpref{Font encoding overview}{wxfontencodingoverview},
 \helpref{SetDefaultEncoding}{wxfontsetdefaultencoding}
 
+
 \membersection{wxFont::GetFaceName}\label{wxfontgetfacename}
 
 \constfunc{wxString}{GetFaceName}{\void}
@@ -235,27 +287,44 @@ typeface information.
 
 \helpref{wxFont::SetFaceName}{wxfontsetfacename}
 
+
 \membersection{wxFont::GetFamily}\label{wxfontgetfamily}
 
-\constfunc{int}{GetFamily}{\void}
+\constfunc{wxFontFamily}{GetFamily}{\void}
 
-Gets the font family. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid
+Gets the font family. See \helpref{wxFont::SetFamily}{wxfontsetfamily} 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.
+Returns the platform-dependent string completely describing this font.
+Returned string is always non-empty.
+Note that the returned string is not meant to be shown or edited by the user: a typical
+use of this function is for serializing in string-form a wxFont object.
 
 \wxheading{See also}
 
-\helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo}
+\helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo},\helpref{wxFont::GetNativeFontInfoUserDesc}{wxfontgetnativefontinfouserdesc}
+
+
+\membersection{wxFont::GetNativeFontInfoUserDesc}\label{wxfontgetnativefontinfouserdesc}
+
+\func{wxString}{GetNativeFontInfoUserDesc}{\void}
+
+Returns a user-friendly string for this font object. Returned string is always non-empty.
+Some examples of the formats of returned strings (which are platform-dependent) are in \helpref{SetNativeFontInfoUserDesc}{wxfontsetnativefontinfouserdesc}.
+
+\wxheading{See also}
+
+\helpref{wxFont::GetNativeFontInfoDesc}{wxfontgetnativefontinfodesc}
+
 
 \membersection{wxFont::GetPointSize}\label{wxfontgetpointsize}
 
@@ -267,17 +336,19 @@ Gets the point size.
 
 \helpref{wxFont::SetPointSize}{wxfontsetpointsize}
 
+
 \membersection{wxFont::GetStyle}\label{wxfontgetstyle}
 
 \constfunc{int}{GetStyle}{\void}
 
-Gets the font style. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid
+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}
@@ -288,23 +359,51 @@ Returns true if the font is underlined, false otherwise.
 
 \helpref{wxFont::SetUnderlined}{wxfontsetunderlined}
 
+
 \membersection{wxFont::GetWeight}\label{wxfontgetweight}
 
-\constfunc{int}{GetWeight}{\void}
+\constfunc{wxFontWeight}{GetWeight}{\void}
 
-Gets the font weight. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid
+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::Ok}\label{wxfontok}
 
-\constfunc{bool}{Ok}{\void}
+\membersection{wxFont::New}\label{wxfontnew}
+
+\func{static wxFont *}{New}{\param{int}{ pointSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{wxFontWeight}{ 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{wxFontWeight}{ 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::IsOk}\label{wxfontisok}
+
+\constfunc{bool}{IsOk}{\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}}
@@ -313,14 +412,16 @@ Sets the default font encoding.
 
 \wxheading{See also}
 
-\helpref{Font encoding overview}{wxfontencodingoverview}, 
+\helpref{Font encoding overview}{wxfontencodingoverview},
 \helpref{GetDefaultEncoding}{wxfontgetdefaultencoding}
 
+
 \membersection{wxFont::SetFaceName}\label{wxfontsetfacename}
 
-\func{void}{SetFaceName}{\param{const wxString\& }{faceName}}
+\func{bool}{SetFaceName}{\param{const wxString\& }{faceName}}
 
 Sets the facename for the font.
+Returns \true if the given face name exists; \false otherwise.
 
 \wxheading{Parameters}
 
@@ -337,9 +438,10 @@ and then for a font belonging to the same family.
 
 \helpref{wxFont::GetFaceName}{wxfontgetfacename}, \helpref{wxFont::SetFamily}{wxfontsetfamily}
 
+
 \membersection{wxFont::SetFamily}\label{wxfontsetfamily}
 
-\func{void}{SetFamily}{\param{int}{ family}}
+\func{void}{SetFamily}{\param{wxFontFamily}{ family}}
 
 Sets the font family.
 
@@ -349,26 +451,61 @@ Sets the font family.
 
 \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.}
+\twocolitem{{\bf wxFONTFAMILY\_DEFAULT}}{Chooses a default font.}
+\twocolitem{{\bf wxFONTFAMILY\_DECORATIVE}}{A decorative font.}
+\twocolitem{{\bf wxFONTFAMILY\_ROMAN}}{A formal, serif font.}
+\twocolitem{{\bf wxFONTFAMILY\_SCRIPT}}{A handwriting font.}
+\twocolitem{{\bf wxFONTFAMILY\_SWISS}}{A sans-serif font.}
+\twocolitem{{\bf wxFONTFAMILY\_MODERN}}{A fixed pitch font.}
+\twocolitem{{\bf wxFONTFAMILY\_TELETYPE}}{A teletype 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}}
+\func{bool}{SetNativeFontInfo}{\param{const wxString\& }{info}}
 
-Creates the font corresponding to the given native font description string
-which must have been previously returned by 
+Creates the font corresponding to the given native font description string and returns \true if
+the creation was successful.
+which must have been previously returned by
 \helpref{GetNativeFontInfoDesc}{wxfontgetnativefontinfodesc}. If the string is
-invalid, font is unchanged.
+invalid, font is unchanged. This function is typically used for de-serializing a wxFont
+object previously saved in a string-form.
+
+\wxheading{See also}
+
+\helpref{wxFont::SetNativeFontInfoUserDesc}{wxfontsetnativefontinfouserdesc}
+
+
+\membersection{wxFont::SetNativeFontInfoUserDesc}\label{wxfontsetnativefontinfouserdesc}
+
+\func{bool}{SetNativeFontInfoUserDesc}{\param{const wxString\& }{info}}
+
+Creates the font corresponding to the given native font description string and returns \true if
+the creation was successful.
+Unlike \helpref{SetNativeFontInfo}{wxfontsetnativefontinfo}, this function accepts
+strings which are user-friendly.
+Examples of accepted string formats are:
+
+\twocolwidtha{15cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{Generic syntax}{Example}
+\twocolitem{on {\bf wxGTK2}: {\tt $[FACE-NAME]$ $[bold]$ $[oblique|italic]$ $[POINTSIZE]$}}{Monospace bold 10}
+\twocolitem{on {\bf wxMSW}: {\tt $[light|bold]$ $[italic]$ $[FACE-NAME]$ $[POINTSIZE]$ $[ENCODING]$}}{Tahoma 10 WINDOWS-1252}
+\twocolitem{on {\bf wxMac}: FIXME}{FIXME}
+\end{twocollist}
+
+For more detailed information about the allowed syntaxes you can look at the documentation of the native API used for font-rendering (e.g. \urlref{pango\_font\_description\_from\_string}{http://developer.gnome.org/doc/API/2.0/pango/pango-Fonts.html\#pango-font-description-from-string}).
+
+\wxheading{See also}
+
+\helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo}
+
+
 
 \membersection{wxFont::SetPointSize}\label{wxfontsetpointsize}
 
@@ -384,6 +521,7 @@ Sets the point size.
 
 \helpref{wxFont::GetPointSize}{wxfontgetpointsize}
 
+
 \membersection{wxFont::SetStyle}\label{wxfontsetstyle}
 
 \func{void}{SetStyle}{\param{int}{ style}}
@@ -392,12 +530,13 @@ Sets the font style.
 
 \wxheading{Parameters}
 
-\docparam{style}{One of {\bf wxNORMAL}, {\bf wxSLANT} and {\bf wxITALIC}.}
+\docparam{style}{One of {\bf wxFONTSTYLE\_NORMAL}, {\bf wxFONTSTYLE\_SLANT} and {\bf wxFONTSTYLE\_ITALIC}.}
 
 \wxheading{See also}
 
 \helpref{wxFont::GetStyle}{wxfontgetstyle}
 
+
 \membersection{wxFont::SetUnderlined}\label{wxfontsetunderlined}
 
 \func{void}{SetUnderlined}{\param{const bool}{ underlined}}
@@ -412,20 +551,29 @@ Sets underlining.
 
 \helpref{wxFont::GetUnderlined}{wxfontgetunderlined}
 
+
 \membersection{wxFont::SetWeight}\label{wxfontsetweight}
 
-\func{void}{SetWeight}{\param{int}{ weight}}
+\func{void}{SetWeight}{\param{wxFontWeight}{ weight}}
 
 Sets the font weight.
 
 \wxheading{Parameters}
 
-\docparam{weight}{One of {\bf wxNORMAL}, {\bf wxLIGHT} and {\bf wxBOLD}.}
+\docparam{weight}{One of:
+
+\twocolwidtha{5cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{{\bf wxFONTWEIGHT\_NORMAL}}{Normal font.}
+\twocolitem{{\bf wxFONTWEIGHT\_LIGHT}}{Light font.}
+\twocolitem{{\bf wxFONTWEIGHT\_BOLD}}{Bold font.}
+\end{twocollist}}
 
 \wxheading{See also}
 
 \helpref{wxFont::GetWeight}{wxfontgetweight}
 
+
 \membersection{wxFont::operator $=$}\label{wxfontassignment}
 
 \func{wxFont\&}{operator $=$}{\param{const wxFont\& }{font}}
@@ -433,6 +581,7 @@ Sets the font weight.
 Assignment operator, using reference counting. Returns a reference
 to `this'.
 
+
 \membersection{wxFont::operator $==$}\label{wxfontequals}
 
 \func{bool}{operator $==$}{\param{const wxFont\& }{font}}
@@ -442,6 +591,7 @@ 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}}