]> git.saurik.com Git - wxWidgets.git/blame - docs/doxygen/overviews/font.h
wxVector<T> is header-based, use @nolibrary
[wxWidgets.git] / docs / doxygen / overviews / font.h
CommitLineData
15b6757b 1/////////////////////////////////////////////////////////////////////////////
3b88355f 2// Name: font.h
15b6757b
FM
3// Purpose: topic overview
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
880efa2a 9/**
36c9828f 10
880efa2a 11 @page overview_font wxFont Overview
36c9828f 12
98ba1eee 13 Class: wxFont, wxFontDialog
3b88355f 14
30738aae
FM
15 @li @ref overview_font_intro
16 @li @ref overview_font_nativeinfo
17
18 <hr>
19
20
21 @section overview_font_intro Introduction
22
15b6757b
FM
23 A font is an object which determines the appearance of text, primarily
24 when drawing text to a window or device context. A font is determined by
25 the following parameters (not all of them have to be specified, of course):
36c9828f 26
3b88355f
FM
27 @beginDefList
28 @itemdef{Point size, This is the standard way of referring to text size.}
3c4f71cc 29 @itemdef{Family,
3b88355f
FM
30 Supported families are:
31 @b wxDEFAULT, @b wxDECORATIVE, @b wxROMAN, @b wxSCRIPT, @b wxSWISS, @b wxMODERN.
32 @b wxMODERN is a fixed pitch font; the others are either fixed or variable pitch.}
33 @itemdef{Style, The value can be @b wxNORMAL, @b wxSLANT or @b wxITALIC.}
34 @itemdef{Weight, The value can be @b wxNORMAL, @b wxLIGHT or @b wxBOLD.}
35 @itemdef{Underlining, The value can be @true or @false.}
3c4f71cc 36 @itemdef{Face name,
3b88355f
FM
37 An optional string specifying the actual typeface to be used. If @NULL,
38 a default typeface will chosen based on the family.}
39 @itemdef{Encoding,
40 The font encoding (see @b wxFONTENCODING_XXX
98ba1eee 41 constants and the @ref overview_fontencoding for more details)}
3b88355f 42 @endDefList
36c9828f 43
15b6757b
FM
44 Specifying a family, rather than a specific typeface name, ensures a degree of
45 portability across platforms because a suitable font will be chosen for the
46 given font family, however it doesn't allow to choose a font precisely as the
47 parameters above don't suffice, in general, to identify all the available fonts
48 and this is where using the native font descriptions may be helpful - see
49 below.
3b88355f 50
15b6757b
FM
51 Under Windows, the face name can be one of the installed fonts on the user's
52 system. Since the choice of fonts differs from system to system, either choose
53 standard Windows fonts, or if allowing the user to specify a face name, store
54 the family name with any file that might be transported to a different Windows
55 machine or other platform.
36c9828f 56
3b88355f
FM
57 @note There is currently a difference between the appearance
58 of fonts on the two platforms, if the mapping mode is anything other than
59 wxMM_TEXT. Under X, font size is always specified in points. Under MS
60 Windows, the unit for text is points but the text is scaled according to the
61 current mapping mode. However, user scaling on a device context will also
62 scale fonts under both environments.
36c9828f 63
36c9828f
FM
64
65
3b88355f 66 @section overview_font_nativeinfo Native font information
36c9828f 67
15b6757b
FM
68 An alternative way of choosing fonts is to use the native font description.
69 This is the only acceptable solution if the user is allowed to choose the font
98ba1eee 70 using the wxFontDialog because the selected font cannot
15b6757b
FM
71 be described using only the family name and so, if only family name is stored
72 permanently, the user would almost surely see a different font in the program
73 later.
3b88355f
FM
74
75 Instead, you should store the value returned by wxFont::GetNativeFontInfoDesc and pass
76 it to wxFont::SetNativeFontInfo later to recreate exactly the same font.
77
15b6757b
FM
78 Note that the contents of this string depends on the platform and shouldn't be
79 used for any other purpose (in particular, it is not meant to be shown to the
80 user). Also please note that although the native font information is currently
81 implemented for Windows and Unix (GTK+ and Motif) ports only, all the methods
82 are available for all the ports and should be used to make your program work
83 correctly when they are implemented later.
36c9828f 84
3b88355f 85*/
36c9828f 86