some stupid attempts to make utf8 work - it doesn't, but the code does no harm and...
[wxWidgets.git] / include / wx / fontenc.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/fontenc.h
3 // Purpose: wxFontEncoding constants
4 // Author: Vadim Zeitlin
5 // Modified by:
6 // Created: 29.03.00
7 // RCS-ID: $Id$
8 // Copyright: (c) Vadim Zeitlin
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_FONTENC_H_
13 #define _WX_FONTENC_H_
14
15 #include "wx/string.h"
16
17 // font encodings
18 enum wxFontEncoding
19 {
20 wxFONTENCODING_SYSTEM = -1, // system default
21 wxFONTENCODING_DEFAULT, // current default encoding
22
23 // ISO8859 standard defines a number of single-byte charsets
24 wxFONTENCODING_ISO8859_1, // West European (Latin1)
25 wxFONTENCODING_ISO8859_2, // Central and East European (Latin2)
26 wxFONTENCODING_ISO8859_3, // Esperanto (Latin3)
27 wxFONTENCODING_ISO8859_4, // Baltic (old) (Latin4)
28 wxFONTENCODING_ISO8859_5, // Cyrillic
29 wxFONTENCODING_ISO8859_6, // Arabic
30 wxFONTENCODING_ISO8859_7, // Greek
31 wxFONTENCODING_ISO8859_8, // Hebrew
32 wxFONTENCODING_ISO8859_9, // Turkish (Latin5)
33 wxFONTENCODING_ISO8859_10, // Variation of Latin4 (Latin6)
34 wxFONTENCODING_ISO8859_11, // Thai
35 wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it
36 // here anyhow to make all ISO8859
37 // consecutive numbers
38 wxFONTENCODING_ISO8859_13, // Baltic (Latin7)
39 wxFONTENCODING_ISO8859_14, // Latin8
40 wxFONTENCODING_ISO8859_15, // Latin9 (a.k.a. Latin0, includes euro)
41 wxFONTENCODING_ISO8859_MAX,
42
43 // Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html)
44 wxFONTENCODING_KOI8, // we don't support any of KOI8 variants
45 wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866
46 wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria
47
48 // what would we do without Microsoft? They have their own encodings
49 // for DOS
50 wxFONTENCODING_CP437, // original MS-DOS codepage
51 wxFONTENCODING_CP850, // CP437 merged with Latin1
52 wxFONTENCODING_CP852, // CP437 merged with Latin2
53 wxFONTENCODING_CP855, // another cyrillic encoding
54 wxFONTENCODING_CP866, // and another one
55 // and for Windows
56 wxFONTENCODING_CP874, // WinThai
57 wxFONTENCODING_CP1250, // WinLatin2
58 wxFONTENCODING_CP1251, // WinCyrillic
59 wxFONTENCODING_CP1252, // WinLatin1
60 wxFONTENCODING_CP1253, // WinGreek (8859-7)
61 wxFONTENCODING_CP1254, // WinTurkish
62 wxFONTENCODING_CP1255, // WinHebrew
63 wxFONTENCODING_CP1256, // WinArabic
64 wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7)
65 wxFONTENCODING_CP12_MAX,
66
67 wxFONTENCODING_UTF7, // UTF-7 Unicode encoding
68 wxFONTENCODING_UTF8, // UTF-8 Unicode encoding
69
70 wxFONTENCODING_UNICODE, // Unicode - currently used only by
71 // wxEncodingConverter class
72
73 wxFONTENCODING_MAX
74 };
75
76 // ----------------------------------------------------------------------------
77 // types
78 // ----------------------------------------------------------------------------
79
80 #if wxUSE_GUI
81
82 // This private structure specifies all the parameters needed to create a font
83 // with the given encoding on this platform.
84 //
85 // Under X, it contains the last 2 elements of the font specifications
86 // (registry and encoding).
87 //
88 // Under Windows, it contains a number which is one of predefined CHARSET_XXX
89 // values.
90 //
91 // Under all platforms it also contains a facename string which should be
92 // used, if not empty, to create fonts in this encoding (this is the only way
93 // to create a font of non-standard encoding (like KOI8) under Windows - the
94 // facename specifies the encoding then)
95
96 struct WXDLLEXPORT wxNativeEncodingInfo
97 {
98 wxString facename; // may be empty meaning "any"
99 wxFontEncoding encoding; // so that we know what this struct represents
100
101 #if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXMAC__)
102 wxNativeEncodingInfo() { charset = 0; /* ANSI_CHARSET */ }
103
104 int charset;
105 #elif defined(_WX_X_FONTLIKE)
106 wxString xregistry,
107 xencoding;
108 #else
109 #error "Unsupported toolkit"
110 #endif
111
112 // this struct is saved in config by wxFontMapper, so it should know to
113 // serialise itself (implemented in platform-specific code)
114 bool FromString(const wxString& s);
115 wxString ToString() const;
116 };
117
118 #endif // wxUSE_GUI
119
120 #endif // _WX_FONTENC_H_