]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/font.tex
documented wxDateSpan
[wxWidgets.git] / docs / latex / wx / font.tex
CommitLineData
a660d684
KB
1\section{\class{wxFont}}\label{wxfont}
2
3A font is an object which determines the appearance of text. Fonts are
4used for drawing text to a device context, and setting the appearance of
5a window's text.
6
7\wxheading{Derived from}
8
9\helpref{wxGDIObject}{wxgdiobject}\\
10\helpref{wxObject}{wxobject}
11
954b8ae6
JS
12\wxheading{Include files}
13
14<wx/font.h>
15
dccce9ea
VZ
16\wxheading{Constants}
17
01cb1c26
VZ
18The font flags which can be used during the font creation are:
19\begin{verbatim}
20enum
21{
22 // no special flags: font with default weight/slant/anti-aliasing
23 wxFONTFLAG_DEFAULT = 0,
24
25 // slant flags (default: no slant)
26 wxFONTFLAG_ITALIC = 1 << 0,
27 wxFONTFLAG_SLANT = 1 << 1,
28
29 // weight flags (default: medium)
30 wxFONTFLAG_LIGHT = 1 << 2,
31 wxFONTFLAG_BOLD = 1 << 3,
32
33 // anti-aliasing flag: force on or off (default: the current system default)
34 wxFONTFLAG_ANTIALIASED = 1 << 4,
35 wxFONTFLAG_NOT_ANTIALIASED = 1 << 5,
36
37 // underlined/strikethrough flags (default: no lines)
38 wxFONTFLAG_UNDERLINED = 1 << 6,
39 wxFONTFLAG_STRIKETHROUGH = 1 << 7,
40};
41\end{verbatim}
42
43The known font encodings are:
dccce9ea
VZ
44\begin{verbatim}
45enum wxFontEncoding
46{
47 wxFONTENCODING_SYSTEM = -1, // system default
48 wxFONTENCODING_DEFAULT, // current default encoding
49
50 // ISO8859 standard defines a number of single-byte charsets
51 wxFONTENCODING_ISO8859_1, // West European (Latin1)
52 wxFONTENCODING_ISO8859_2, // Central and East European (Latin2)
53 wxFONTENCODING_ISO8859_3, // Esperanto (Latin3)
54 wxFONTENCODING_ISO8859_4, // Baltic (old) (Latin4)
55 wxFONTENCODING_ISO8859_5, // Cyrillic
56 wxFONTENCODING_ISO8859_6, // Arabic
57 wxFONTENCODING_ISO8859_7, // Greek
58 wxFONTENCODING_ISO8859_8, // Hebrew
59 wxFONTENCODING_ISO8859_9, // Turkish (Latin5)
60 wxFONTENCODING_ISO8859_10, // Variation of Latin4 (Latin6)
61 wxFONTENCODING_ISO8859_11, // Thai
62 wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it
63 // here anyhow to make all ISO8859
64 // consecutive numbers
65 wxFONTENCODING_ISO8859_13, // Baltic (Latin7)
66 wxFONTENCODING_ISO8859_14, // Latin8
67 wxFONTENCODING_ISO8859_15, // Latin9 (a.k.a. Latin0, includes euro)
68 wxFONTENCODING_ISO8859_MAX,
69
70 // Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html)
71 wxFONTENCODING_KOI8, // we don't support any of KOI8 variants
72 wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866
73 wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria
74
75 // what would we do without Microsoft? They have their own encodings
76 // for DOS
77 wxFONTENCODING_CP437, // original MS-DOS codepage
78 wxFONTENCODING_CP850, // CP437 merged with Latin1
79 wxFONTENCODING_CP852, // CP437 merged with Latin2
80 wxFONTENCODING_CP855, // another cyrillic encoding
81 wxFONTENCODING_CP866, // and another one
82 // and for Windows
83 wxFONTENCODING_CP874, // WinThai
84 wxFONTENCODING_CP1250, // WinLatin2
85 wxFONTENCODING_CP1251, // WinCyrillic
86 wxFONTENCODING_CP1252, // WinLatin1
87 wxFONTENCODING_CP1253, // WinGreek (8859-7)
88 wxFONTENCODING_CP1254, // WinTurkish
89 wxFONTENCODING_CP1255, // WinHebrew
90 wxFONTENCODING_CP1256, // WinArabic
91 wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7)
92 wxFONTENCODING_CP12_MAX,
93
94 wxFONTENCODING_UTF7, // UTF-7 Unicode encoding
95 wxFONTENCODING_UTF8, // UTF-8 Unicode encoding
96
97 wxFONTENCODING_UNICODE, // Unicode - currently used only by
98 // wxEncodingConverter class
99
100 wxFONTENCODING_MAX
101};
102\end{verbatim}
103
20e85460
JS
104\wxheading{Predefined objects}
105
106Objects:
107
108{\bf wxNullFont}
109
110Pointers:
111
112{\bf wxNORMAL\_FONT\\
113wxSMALL\_FONT\\
114wxITALIC\_FONT\\
115wxSWISS\_FONT}
116
a660d684
KB
117\wxheading{See also}
118
119\helpref{wxFont overview}{wxfontoverview}, \helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp
120\helpref{wxDC::DrawText}{wxdcdrawtext}, \helpref{wxDC::GetTextExtent}{wxdcgettextextent},\rtfsp
121\helpref{wxFontDialog}{wxfontdialog}
122
123\latexignore{\rtfignore{\wxheading{Members}}}
124
125\membersection{wxFont::wxFont}\label{wxfontconstr}
126
127\func{}{wxFont}{\void}
128
129Default constructor.
130
eaaa6a06 131\func{}{wxFont}{\param{int}{ pointSize}, \param{int}{ family}, \param{int}{ style}, \param{int}{ weight},
0c5d3e1c
VZ
132 \param{const bool}{ underline = FALSE}, \param{const wxString\& }{faceName = ""},
133 \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
a660d684 134
775a998e
VZ
135Creates a font object (see \helpref{font encoding
136overview}{wxfontencodingoverview} for the meaning of the last parameter).
a660d684
KB
137
138\wxheading{Parameters}
139
140\docparam{pointSize}{Size in points.}
141
142\docparam{family}{Font family, a generic way of referring to fonts without specifying actual facename. One of:
143
144\twocolwidtha{5cm}
145\begin{twocollist}\itemsep=0pt
146\twocolitem{{\bf wxDEFAULT}}{Chooses a default font.}
147\twocolitem{{\bf wxDECORATIVE}}{A decorative font.}
148\twocolitem{{\bf wxROMAN}}{A formal, serif font.}
149\twocolitem{{\bf wxSCRIPT}}{A handwriting font.}
150\twocolitem{{\bf wxSWISS}}{A sans-serif font.}
151\twocolitem{{\bf wxMODERN}}{A fixed pitch font.}
152\end{twocollist}}
153
154\docparam{style}{One of {\bf wxNORMAL}, {\bf wxSLANT} and {\bf wxITALIC}.}
155
156\docparam{weight}{One of {\bf wxNORMAL}, {\bf wxLIGHT} and {\bf wxBOLD}.}
157
158\docparam{underline}{The value can be TRUE or FALSE. At present this has an effect on Windows only.}
159
160\docparam{faceName}{An optional string specifying the actual typeface to be used. If the empty string,
161a default typeface will chosen based on the family.}
162
0c5d3e1c
VZ
163\docparam{encoding}{An encoding which may be one of
164\twocolwidtha{5cm}
165\begin{twocollist}\itemsep=0pt
166\twocolitem{{\bf wxFONTENCODING\_SYSTEM}}{Default system encoding.}
167\twocolitem{{\bf wxFONTENCODING\_DEFAULT}}{Default application encoding: this
168is the encoding set by calls to
88b1927c 169\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding} and which may be set to,
0c5d3e1c
VZ
170say, KOI8 to create all fonts by default with KOI8 encoding. Initially, the
171default application encoding is the same as default system encoding.}
172\twocolitem{{\bf wxFONTENCODING\_ISO8859\_1...15}}{ISO8859 encodings.}
2edb0bde 173\twocolitem{{\bf wxFONTENCODING\_KOI8}}{The standard Russian encoding for Internet.}
0c5d3e1c
VZ
174\twocolitem{{\bf wxFONTENCODING\_CP1250...1252}}{Windows encodings similar to ISO8859 (but not identical).}
175\end{twocollist}
176If the specified encoding isn't available, no font is created.
177}
178
a660d684
KB
179\wxheading{Remarks}
180
181If the desired font does not exist, the closest match will be chosen.
2edb0bde 182Under Windows, only scalable TrueType fonts are used.
a660d684 183
a660d684
KB
184See also \helpref{wxDC::SetFont}{wxdcsetfont}, \helpref{wxDC::DrawText}{wxdcdrawtext}
185and \helpref{wxDC::GetTextExtent}{wxdcgettextextent}.
186
187\membersection{wxFont::\destruct{wxFont}}
188
189\func{}{\destruct{wxFont}}{\void}
190
191Destructor.
192
193\wxheading{Remarks}
194
195The destructor may not delete the underlying font object of the native windowing
775a998e 196system, since wxFont uses a reference counting system for efficiency.
a660d684
KB
197
198Although all remaining fonts are deleted when the application exits,
199the application should try to clean up all fonts itself. This is because
200wxWindows cannot know if a pointer to the font object is stored in an
201application data structure, and there is a risk of double deletion.
202
53f6aab7
VZ
203\membersection{wxFont::IsFixedWidth}\label{wxfontisfixedwidth}
204
205\constfunc{bool}{IsFixedWidth}{\void}
206
207Returns {\tt TRUE} if the font is a fixed width (or monospaced) font,
208{\tt FALSE} if it is a proportional one or font is invalid.
209
775a998e
VZ
210\membersection{wxFont::GetDefaultEncoding}\label{wxfontgetdefaultencoding}
211
212\func{static wxFontEncoding}{GetDefaultEncoding}{\void}
213
2b5f62a0 214Returns the current application's default encoding.
775a998e
VZ
215
216\wxheading{See also}
217
218\helpref{Font encoding overview}{wxfontencodingoverview},
219\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding}
220
a660d684
KB
221\membersection{wxFont::GetFaceName}\label{wxfontgetfacename}
222
223\constfunc{wxString}{GetFaceName}{\void}
224
225Returns the typeface name associated with the font, or the empty string if there is no
226typeface information.
227
228\wxheading{See also}
229
230\helpref{wxFont::SetFaceName}{wxfontsetfacename}
231
232\membersection{wxFont::GetFamily}\label{wxfontgetfamily}
233
234\constfunc{int}{GetFamily}{\void}
235
236Gets the font family. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid
237family identifiers.
238
239\wxheading{See also}
240
241\helpref{wxFont::SetFamily}{wxfontsetfamily}
242
dccb75b6 243\membersection{wxFont::GetNativeFontInfoDesc}\label{wxfontgetnativefontinfodesc}
a660d684 244
dccb75b6 245\constfunc{wxString}{GetNativeFontInfoDesc}{\void}
a660d684 246
dccb75b6
VZ
247Returns the platform-dependent string completely describing this font or an
248empty string if the font wasn't constructed using the native font description.
249
250\wxheading{See also}
251
252\helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo}
a660d684
KB
253
254\membersection{wxFont::GetPointSize}\label{wxfontgetpointsize}
255
256\constfunc{int}{GetPointSize}{\void}
257
258Gets the point size.
259
260\wxheading{See also}
261
262\helpref{wxFont::SetPointSize}{wxfontsetpointsize}
263
264\membersection{wxFont::GetStyle}\label{wxfontgetstyle}
265
266\constfunc{int}{GetStyle}{\void}
267
268Gets the font style. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid
269styles.
270
271\wxheading{See also}
272
273\helpref{wxFont::SetStyle}{wxfontsetstyle}
274
275\membersection{wxFont::GetUnderlined}\label{wxfontgetunderlined}
276
277\constfunc{bool}{GetUnderlined}{\void}
278
279Returns TRUE if the font is underlined, FALSE otherwise.
280
281\wxheading{See also}
282
283\helpref{wxFont::SetUnderlined}{wxfontsetunderlined}
284
285\membersection{wxFont::GetWeight}\label{wxfontgetweight}
286
287\constfunc{int}{GetWeight}{\void}
288
289Gets the font weight. See \helpref{wxFont::wxFont}{wxfontconstr} for a list of valid
290weight identifiers.
291
292\wxheading{See also}
293
294\helpref{wxFont::SetWeight}{wxfontsetweight}
295
8a280d9a
VZ
296\membersection{wxFont::Ok}\label{wxfontok}
297
298\constfunc{bool}{Ok}{\void}
299
300Returns {\tt TRUE} if this object is a valid font, {\tt FALSE} otherwise.
301
88b1927c
JS
302\membersection{wxFont::SetDefaultEncoding}\label{wxfontsetdefaultencoding}
303
304\func{static void}{SetDefaultEncoding}{\param{wxFontEncoding }{encoding}}
305
306Sets the default font encoding.
307
775a998e
VZ
308\wxheading{See also}
309
310\helpref{Font encoding overview}{wxfontencodingoverview},
311\helpref{GetDefaultEncoding}{wxfontgetdefaultencoding}
312
a660d684
KB
313\membersection{wxFont::SetFaceName}\label{wxfontsetfacename}
314
315\func{void}{SetFaceName}{\param{const wxString\& }{faceName}}
316
317Sets the facename for the font.
318
319\wxheading{Parameters}
320
321\docparam{faceName}{A valid facename, which should be on the end-user's system.}
322
323\wxheading{Remarks}
324
325To avoid portability problems, don't rely on a specific face, but specify the font family
326instead or as well. A suitable font will be found on the end-user's system. If both the
327family and the facename are specified, wxWindows will first search for the specific face,
328and then for a font belonging to the same family.
329
330\wxheading{See also}
331
332\helpref{wxFont::GetFaceName}{wxfontgetfacename}, \helpref{wxFont::SetFamily}{wxfontsetfamily}
333
334\membersection{wxFont::SetFamily}\label{wxfontsetfamily}
335
eaaa6a06 336\func{void}{SetFamily}{\param{int}{ family}}
a660d684
KB
337
338Sets the font family.
339
340\wxheading{Parameters}
341
342\docparam{family}{One of:
343
344\twocolwidtha{5cm}
345\begin{twocollist}\itemsep=0pt
346\twocolitem{{\bf wxDEFAULT}}{Chooses a default font.}
347\twocolitem{{\bf wxDECORATIVE}}{A decorative font.}
348\twocolitem{{\bf wxROMAN}}{A formal, serif font.}
349\twocolitem{{\bf wxSCRIPT}}{A handwriting font.}
350\twocolitem{{\bf wxSWISS}}{A sans-serif font.}
351\twocolitem{{\bf wxMODERN}}{A fixed pitch font.}
352\end{twocollist}}
353
354\wxheading{See also}
355
356\helpref{wxFont::GetFamily}{wxfontgetfamily}, \helpref{wxFont::SetFaceName}{wxfontsetfacename}
357
dccb75b6
VZ
358\membersection{wxFont::SetNativeFontInfo}\label{wxfontsetnativefontinfo}
359
360\func{void}{SetNativeFontInfo}{\param{const wxString\& }{info}}
361
362Creates the font corresponding to the given native font description string
363which must have been previously returned by
364\helpref{GetNativeFontInfoDesc}{wxfontgetnativefontinfodesc}. If the string is
365invalid, font is unchanged.
366
a660d684
KB
367\membersection{wxFont::SetPointSize}\label{wxfontsetpointsize}
368
eaaa6a06 369\func{void}{SetPointSize}{\param{int}{ pointSize}}
a660d684
KB
370
371Sets the point size.
372
373\wxheading{Parameters}
374
375\docparam{pointSize}{Size in points.}
376
377\wxheading{See also}
378
379\helpref{wxFont::GetPointSize}{wxfontgetpointsize}
380
381\membersection{wxFont::SetStyle}\label{wxfontsetstyle}
382
eaaa6a06 383\func{void}{SetStyle}{\param{int}{ style}}
a660d684
KB
384
385Sets the font style.
386
387\wxheading{Parameters}
388
389\docparam{style}{One of {\bf wxNORMAL}, {\bf wxSLANT} and {\bf wxITALIC}.}
390
391\wxheading{See also}
392
393\helpref{wxFont::GetStyle}{wxfontgetstyle}
394
395\membersection{wxFont::SetUnderlined}\label{wxfontsetunderlined}
396
397\func{void}{SetUnderlined}{\param{const bool}{ underlined}}
398
399Sets underlining.
400
401\wxheading{Parameters}
402
403\docparam{underlining}{TRUE to underline, FALSE otherwise.}
404
405\wxheading{See also}
406
407\helpref{wxFont::GetUnderlined}{wxfontgetunderlined}
408
409\membersection{wxFont::SetWeight}\label{wxfontsetweight}
410
eaaa6a06 411\func{void}{SetWeight}{\param{int}{ weight}}
a660d684
KB
412
413Sets the font weight.
414
415\wxheading{Parameters}
416
417\docparam{weight}{One of {\bf wxNORMAL}, {\bf wxLIGHT} and {\bf wxBOLD}.}
418
419\wxheading{See also}
420
421\helpref{wxFont::GetWeight}{wxfontgetweight}
422
423\membersection{wxFont::operator $=$}\label{wxfontassignment}
424
425\func{wxFont\&}{operator $=$}{\param{const wxFont\& }{font}}
426
427Assignment operator, using reference counting. Returns a reference
428to `this'.
429
430\membersection{wxFont::operator $==$}\label{wxfontequals}
431
432\func{bool}{operator $==$}{\param{const wxFont\& }{font}}
433
434Equality operator. Two fonts are equal if they contain pointers
435to the same underlying font data. It does not compare each attribute,
436so two indefontdently-created fonts using the same parameters will
437fail the test.
438
439\membersection{wxFont::operator $!=$}\label{wxfontnotequals}
440
441\func{bool}{operator $!=$}{\param{const wxFont\& }{font}}
442
443Inequality operator. Two fonts are not equal if they contain pointers
444to different underlying font data. It does not compare each attribute.
445
446