wxFontEnumerator docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
1db1f1ede2
commit
775a998ed0
@ -80,7 +80,9 @@
|
||||
\input focusevt.tex
|
||||
\input font.tex
|
||||
\input fontdlg.tex
|
||||
\input fontenum.tex
|
||||
\input fontlist.tex
|
||||
\input fontmap.tex
|
||||
\input frame.tex
|
||||
\input fsfile.tex
|
||||
\input ftp.tex
|
||||
|
@ -44,7 +44,8 @@ Default constructor.
|
||||
\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}
|
||||
|
||||
@ -106,13 +107,24 @@ 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::GetDefaultEncoding}\label{wxfontgetdefaultencoding}
|
||||
|
||||
\func{static wxFontEncoding}{GetDefaultEncoding}{\void}
|
||||
|
||||
Returns the current applications default encoding.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{Font encoding overview}{wxfontencodingoverview},
|
||||
\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding}
|
||||
|
||||
\membersection{wxFont::GetFaceName}\label{wxfontgetfacename}
|
||||
|
||||
\constfunc{wxString}{GetFaceName}{\void}
|
||||
@ -190,6 +202,11 @@ weight identifiers.
|
||||
|
||||
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}}
|
||||
|
92
docs/latex/wx/fontenum.tex
Normal file
92
docs/latex/wx/fontenum.tex
Normal file
@ -0,0 +1,92 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Name: fontenum.tex
|
||||
%% Purpose: wxFontEnumerator documentation
|
||||
%% Author: Vadim Zeitlin
|
||||
%% Modified by:
|
||||
%% Created: 03.11.99
|
||||
%% RCS-ID: $Id$
|
||||
%% Copyright: (c) Vadim Zeitlin
|
||||
%% Licence: wxWindows licence
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{\class{wxFontEnumerator}}\label{wxfontenumerator}
|
||||
|
||||
wxFontEnumerator enumerates either all available fonts on the system or only
|
||||
the ones with given attributes - either only fixed-width (suited for use in
|
||||
programs such as terminal emulators and the like) or the fonts available in
|
||||
the given \helpref{encoding}{wxfontencodingoverview}.
|
||||
|
||||
To do this, you just have to call one of EnumerateXXX() functions - either
|
||||
\helpref{EnumerateFamilies}{wxfontenumeratorenumeratefamilies} or
|
||||
\helpref{EnumerateEncodings}{wxfontenumeratorenumerateencodings} and the
|
||||
corresponding callback (
|
||||
\helpref{OnFontFamily}{wxFontEnumeratoronfontfamily} or
|
||||
\helpref{OnFontEncoding}{wxfontenumeratoronfontencoding}) will be called
|
||||
repeatedly until either all fonts (satisfying the specified criteria) are
|
||||
exhausted or the callback returns FALSE.
|
||||
|
||||
\wxheading{Virtual functions to override}
|
||||
|
||||
Either \helpref{OnFontFamily}{wxfontenumeratoronfontfamily} or
|
||||
\helpref{OnFontEncoding}{wxfontenumeratoronfontencoding} should be overridden
|
||||
depending on whether you plan to call
|
||||
\helpref{EnumerateFamilies}{wxfontenumeratorenumeratefamilies} or
|
||||
\helpref{EnumerateEncodings}{wxfontenumeratorenumerateencodings}. Of course,
|
||||
if you call both of them, you should override both functions.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
None
|
||||
|
||||
\wxheading{Include files}
|
||||
|
||||
<wx/fontenum.h>
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{Font encoding overview}{wxfontencodingoverview},
|
||||
\helpref{Font sample}{samplefont},
|
||||
\helpref{wxFont}{wxfont},
|
||||
\helpref{wxFontMapper}{wxfontmapper}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxFontEnumerator::EnumerateFamilies}\label{wxfontenumeratorenumeratefamilies}
|
||||
|
||||
\func{virtual bool}{EnumerateFamilies}{
|
||||
\param{wxFontEncoding }{encoding = wxFONTENCODING\_SYSTEM},
|
||||
\param{bool }{fixedWidthOnly = FALSE}}
|
||||
|
||||
Call \helpref{OnFontFamily}{wxfontenumeratoronfontfamily} for each font which
|
||||
supports given encoding (only if it is not wxFONTENCODING\_SYSTEM) and is of
|
||||
fixed width (if {\it fixedWidthOnly} is TRUE).
|
||||
|
||||
Calling this function with default arguments will result in enumerating all
|
||||
fonts available on the system.
|
||||
|
||||
\membersection{wxFontEnumerator::EnumerateEncodings}\label{wxfontenumeratorenumerateencodings}
|
||||
|
||||
\func{virtual bool}{EnumerateEncodings}{\param{const wxString\& }{font = ""}}
|
||||
|
||||
Call \helpref{OnFontEncoding}{wxfontenumeratoronfontencoding} for each
|
||||
encoding supported by the given font - or for each encoding supported by at
|
||||
least some font if {\it font} is not specified.
|
||||
|
||||
\membersection{wxFontEnumerator::OnFontFamily}\label{wxfontenumeratoronfontfamily}
|
||||
|
||||
\func{virtual bool}{OnFontFamily}{\param{const wxString\& }{font}}
|
||||
|
||||
Called by \helpref{EnumerateFamilies}{wxfontenumeratorenumeratefamilies} for
|
||||
each match. Return TRUE to continue enumeration or FALSE to stop it.
|
||||
|
||||
\membersection{wxFontEnumerator::OnFontEncoding}\label{wxfontenumeratoronfontencoding}
|
||||
|
||||
\func{virtual bool}{OnFontEncoding}{
|
||||
\param{const wxString\& }{font},
|
||||
\param{const wxString\& }{encoding}
|
||||
}
|
||||
|
||||
Called by \helpref{EnumerateEncodings}{wxfontenumeratorenumerateencodings} for
|
||||
each match. Return TRUE to continue enumeration or FALSE to stop it.
|
||||
|
||||
|
14
docs/latex/wx/fontmap.tex
Normal file
14
docs/latex/wx/fontmap.tex
Normal file
@ -0,0 +1,14 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Name: fontmap.tex
|
||||
%% Purpose: wxFontMapper documentation
|
||||
%% Author: Vadim Zeitlin
|
||||
%% Modified by:
|
||||
%% Created: 03.11.99
|
||||
%% RCS-ID: $Id$
|
||||
%% Copyright: (c) Vadim Zeitlin
|
||||
%% Licence: wxWindows licence
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{\class{wxFontMapper}}\label{wxfontmapper}
|
||||
|
||||
TODO.
|
@ -4,7 +4,7 @@ Class: \helpref{wxFont}{wxfont}
|
||||
|
||||
A font is an object which determines the appearance of text, primarily
|
||||
when drawing text to a window or device context. A font is determined by
|
||||
up to six parameters:
|
||||
the following parameters (not all of them have to be specified, of course):
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{Point size}{This is the standard way of referring to text size.}
|
||||
@ -16,21 +16,26 @@ up to six parameters:
|
||||
\twocolitem{Underlining}{The value can be TRUE or FALSE.}
|
||||
\twocolitem{Face name}{An optional string specifying the actual typeface to be used. If NULL,
|
||||
a default typeface will chosen based on the family.}
|
||||
\twocolitem{Encoding}{The font encoding (see {\bf wxFONTENCODING\_XXX}
|
||||
constants and the \helpref{font overview}{wxfontencodingoverview} for more
|
||||
details)}
|
||||
\end{twocollist}
|
||||
|
||||
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 given font family.
|
||||
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
|
||||
given font family.
|
||||
|
||||
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 the family id with any file that
|
||||
might be transported to a different Windows machine or other platform.
|
||||
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
|
||||
the family id with any file that might be transported to a different Windows
|
||||
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.}
|
||||
\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.}
|
||||
|
||||
|
||||
|
85
docs/latex/wx/tfontenc.tex
Normal file
85
docs/latex/wx/tfontenc.tex
Normal file
@ -0,0 +1,85 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Name: tfontenc.tex
|
||||
%% Purpose: font encoding overview
|
||||
%% Author: Vadim Zeitlin
|
||||
%% Modified by:
|
||||
%% Created: 03.11.99
|
||||
%% RCS-ID: $Id$
|
||||
%% Copyright: (c) Vadim Zeitlin
|
||||
%% Licence: wxWindows licence
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{Font encoding overview}\label{wxfontencodingoverview}
|
||||
|
||||
wxWindows has support for multiple font encodings starting from release 2.2.
|
||||
By encoding we mean here the mapping between the character codes and the
|
||||
letters. Probably the most well-known encoding is (7 bit) ASCII one which is
|
||||
used almost universally now to represent the letters of the English alphabet
|
||||
and some other common characters. However, it is not enough to represent the
|
||||
letters of foreign alphabetes and here other encodings come into play. Please
|
||||
note that we will only discuss 8-bit fonts here and not
|
||||
\helpref{Unicode}{unicode}.
|
||||
|
||||
Font encoding support is assured by several classes:
|
||||
\helpref{wxFont}{wxfont} itself, but also
|
||||
\helpref{wxFontEnumerator}{wxfontenumerator} and
|
||||
\helpref{wxFontMapper}{wxfontmapper}. wxFont encoding support is reflected by
|
||||
a (new) constructor parameter {\it encoding} which takes one of the following
|
||||
values (elements of enumeration type {\tt wxFontEncoding}):
|
||||
|
||||
\begin{twocollist}
|
||||
\twocolitem{wxFONTENCODING\_SYSTEM}{The default encoding of the underlying
|
||||
operating system (notice that this might be a "foreign" encoding for foreign
|
||||
versions of Windows 9x/NT).}
|
||||
\twocolitem{wxFONTENCODING\_DEFAULT}{The applications default encoding as
|
||||
returned by \helpref{wxFont::GetDefaultEncoding}{wxfontgetdefaultencoding}. On
|
||||
program startup, the applications default encoding is the same as
|
||||
wxFONTENCODING\_SYSTEM, but may be changed to make all the fonts created later
|
||||
to use it (by default).}
|
||||
\twocolitem{wxFONTENCODING\_ISO8859\_1..15}{ISO8859 family encodings which are
|
||||
usually used by all non-Microsoft operating systems}
|
||||
\twocolitem{wxFONTENCODING\_KOI8}{Standard cyrillic encoding for the Internet
|
||||
(but see also wxFONTENCODING\_ISO8859\_5 and wxFONTENCODING\_CP1251)}
|
||||
\twocolitem{wxFONTENCODING\_CP1250}{Microsoft analogue of ISO8859-2}
|
||||
\twocolitem{wxFONTENCODING\_CP1251}{Microsoft analogue of ISO8859-5}
|
||||
\twocolitem{wxFONTENCODING\_CP1252}{Microsoft analogue of ISO8859-1}
|
||||
\end{twocollist}
|
||||
|
||||
As you may see, Microsofts encoding partly mirror the standard ISO8859 ones,
|
||||
but there are (minor) differences even between ISO8859-1 (Latin1, ISO encoding
|
||||
for Western Europe) and CP1251 (WinLatin1, standard code page for English
|
||||
versions of Windows) and there are more of them for other encodings.
|
||||
|
||||
The situation is particularly complicated with cyrillic encodings for which
|
||||
(more than) three incompatible encodings exist: KOI8 (the old standard, widely
|
||||
used on the Internet), ISO8859-5 (ISO standard for cyrillic) and CP1251
|
||||
(WinCyrillic).
|
||||
|
||||
This abundance of (incompatible) encodigns should make it clear that using
|
||||
encodings is less easy than it might seem. The problems arise both from the
|
||||
fact that the standard encodigns for the given language (say Russian, which is
|
||||
written in cyrillic) are different on different platforms and because the
|
||||
fonts in the given encoding might just not be installed (this is especially a
|
||||
problem with Unix, or, in general, not Win32, systems).
|
||||
|
||||
To allow to see clearer in this, \helpref{wxFontEnumerator}{wxfontenumerator}
|
||||
class may be used to enumerate both all available encodings and to find the
|
||||
facename(s) in which the given encoding exists. If you can find the font in
|
||||
the correct encoding with wxFontEnumerator then your troubles are over, but,
|
||||
unfortunately, sometimes this is not enough. For example, there is no standard
|
||||
way (I know of, please tell me if you do!) to find a font on a Windows system
|
||||
for KOI8 encoding (only for WinCyrillic one which is quite different), so
|
||||
\helpref{wxFontEnumerator}{wxfontenumerator} will never return one, even if
|
||||
the user has installed a KOI8 font on his system.
|
||||
|
||||
To solve this problem, \helpref{wxFontMapper}{wxfontmapper} class is provided.
|
||||
This class stores the mapping between the encodings and the font face
|
||||
names which support them in a \helpref{wxConfig}{wxconfigoverview} object. Of
|
||||
course, it would be fairly useless if it tried to determine these mappings by
|
||||
itself, so, instead, it may (optionally) ask the user and remember his answers
|
||||
so that the next time the program will automatically choose the correct font.
|
||||
|
||||
All these topics are illustrated by the \helpref{font sample}{samplefont},
|
||||
please refer to it and the documentation of the classes mentioned here for
|
||||
further explanations.
|
||||
|
@ -42,6 +42,7 @@ This chapter contains a selection of topic overviews.
|
||||
\input tthreads.tex
|
||||
\input tfile.tex
|
||||
\input ti18n.tex
|
||||
\input tfontenc.tex
|
||||
\input tstream.tex
|
||||
\input tusage.tex
|
||||
\input ttips.tex
|
||||
|
@ -19,6 +19,14 @@ make it easier to find the relevant one if a simple grep through all sources
|
||||
didn't help. They also provide some notes about using the samples and what
|
||||
features of wxWindows are they supposed to test.
|
||||
|
||||
\subsection{Font sample}\label{samplefont}
|
||||
|
||||
The font sample demonstrates \helpref{wxFont}{wxfont},
|
||||
\helpref{wxFontEnumerator}{wxfontenumerator} and
|
||||
\helpref{wxFontMapper}{wxfontmapper} classes. It allows you to see the fonts
|
||||
available (to wxWindows) on the computer and shows all characters of the
|
||||
chosen font as well.
|
||||
|
||||
\subsection{DnD sample}\label{samplednd}
|
||||
|
||||
This sample shows both clipboard and drag and drop in action. It is quite non
|
||||
|
Loading…
Reference in New Issue
Block a user