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: fontenc.h,v 1.1 2006/12/02 15:58:24 scara Exp $
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_CP932,           // Japanese (shift-JIS)
58     wxFONTENCODING_CP936,           // Chinese simplified (GB)
59     wxFONTENCODING_CP949,           // Korean (Hangul charset)
60     wxFONTENCODING_CP950,           // Chinese (traditional - Big5)
61     wxFONTENCODING_CP1250,          // WinLatin2
62     wxFONTENCODING_CP1251,          // WinCyrillic
63     wxFONTENCODING_CP1252,          // WinLatin1
64     wxFONTENCODING_CP1253,          // WinGreek (8859-7)
65     wxFONTENCODING_CP1254,          // WinTurkish
66     wxFONTENCODING_CP1255,          // WinHebrew
67     wxFONTENCODING_CP1256,          // WinArabic
68     wxFONTENCODING_CP1257,          // WinBaltic (same as Latin 7)
69     wxFONTENCODING_CP12_MAX,
70 
71     wxFONTENCODING_UTF7,            // UTF-7 Unicode encoding
72     wxFONTENCODING_UTF8,            // UTF-8 Unicode encoding
73 
74     // Far Eastern encodings
75         // Chinese
76     wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, // Simplified Chinese
77     wxFONTENCODING_BIG5 = wxFONTENCODING_CP950,   // Traditional Chinese
78 
79         // Japanese (see http://zsigri.tripod.com/fontboard/cjk/jis.html)
80     wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932,  // Shift JIS
81     wxFONTENCODING_EUC_JP,          // Extended Unix Codepage for Japanese
82 
83     wxFONTENCODING_UNICODE,         // Unicode - currently used only by
84                                     // wxEncodingConverter class
85 
86     wxFONTENCODING_MAX
87 };
88 
89 // ----------------------------------------------------------------------------
90 // types
91 // ----------------------------------------------------------------------------
92 
93 #if wxUSE_GUI
94 
95 // This private structure specifies all the parameters needed to create a font
96 // with the given encoding on this platform.
97 //
98 // Under X, it contains the last 2 elements of the font specifications
99 // (registry and encoding).
100 //
101 // Under Windows, it contains a number which is one of predefined CHARSET_XXX
102 // values.
103 //
104 // Under all platforms it also contains a facename string which should be
105 // used, if not empty, to create fonts in this encoding (this is the only way
106 // to create a font of non-standard encoding (like KOI8) under Windows - the
107 // facename specifies the encoding then)
108 
109 struct WXDLLEXPORT wxNativeEncodingInfo
110 {
111     wxString facename;          // may be empty meaning "any"
112     wxFontEncoding encoding;    // so that we know what this struct represents
113 
114 #if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXMAC__)
wxNativeEncodingInfowxNativeEncodingInfo115     wxNativeEncodingInfo()
116         : facename()
117         , encoding(wxFONTENCODING_SYSTEM)
118         , charset(0) /* ANSI_CHARSET */
119     { }
120 
121     int      charset;
122 #elif defined(_WX_X_FONTLIKE)
123     wxString xregistry,
124              xencoding;
125 #elif defined(__WXGTK20__)
126     // No way to specify this in Pango as this
127     // seems to be handled internally.
128 #elif defined(__WXMGL__)
129     int      mglEncoding;
130 #else
131     #error "Unsupported toolkit"
132 #endif
133 
134     // this struct is saved in config by wxFontMapper, so it should know to
135     // serialise itself (implemented in platform-specific code)
136     bool FromString(const wxString& s);
137     wxString ToString() const;
138 };
139 
140 #endif // wxUSE_GUI
141 
142 #endif // _WX_FONTENC_H_
143