// Created: 29.03.00
// RCS-ID: $Id$
// Copyright: (c) Vadim Zeitlin
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_FONTENC_H_
#define _WX_FONTENC_H_
+#include "wx/string.h"
+
// font encodings
enum wxFontEncoding
{
wxFONTENCODING_CP866, // and another one
// and for Windows
wxFONTENCODING_CP874, // WinThai
+ wxFONTENCODING_CP932, // Japanese (shift-JIS)
+ wxFONTENCODING_CP936, // Chinese simplified (GB)
+ wxFONTENCODING_CP949, // Korean (Hangul charset)
+ wxFONTENCODING_CP950, // Chinese (traditional - Big5)
wxFONTENCODING_CP1250, // WinLatin2
wxFONTENCODING_CP1251, // WinCyrillic
wxFONTENCODING_CP1252, // WinLatin1
wxFONTENCODING_CP1256, // WinArabic
wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7)
wxFONTENCODING_CP12_MAX,
-
- wxFONTENCODING_UNICODE, // Unicode - currently used only by
- // wxEncodingConverter class
+
+ wxFONTENCODING_UTF7, // UTF-7 Unicode encoding
+ wxFONTENCODING_UTF8, // UTF-8 Unicode encoding
+
+ // Far Eastern encodings
+ // Chinese
+ wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, // Simplified Chinese
+ wxFONTENCODING_BIG5 = wxFONTENCODING_CP950, // Traditional Chinese
+
+ // Japanese (see http://zsigri.tripod.com/fontboard/cjk/jis.html)
+ wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932, // Shift JIS
+ wxFONTENCODING_EUC_JP = wxFONTENCODING_UTF8 + 1, // Extended Unix Codepage
+ // for Japanese
+
+ wxFONTENCODING_UNICODE, // Unicode (for wxEncodingConverter only)
wxFONTENCODING_MAX
};
+// ----------------------------------------------------------------------------
+// types
+// ----------------------------------------------------------------------------
+
+#if wxUSE_GUI
+
+// This private structure specifies all the parameters needed to create a font
+// with the given encoding on this platform.
+//
+// Under X, it contains the last 2 elements of the font specifications
+// (registry and encoding).
+//
+// Under Windows, it contains a number which is one of predefined CHARSET_XXX
+// values.
+//
+// Under all platforms it also contains a facename string which should be
+// used, if not empty, to create fonts in this encoding (this is the only way
+// to create a font of non-standard encoding (like KOI8) under Windows - the
+// facename specifies the encoding then)
+
+struct WXDLLEXPORT wxNativeEncodingInfo
+{
+ wxString facename; // may be empty meaning "any"
+ wxFontEncoding encoding; // so that we know what this struct represents
+
+#if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXMAC__) || defined(__WXCOCOA__) // FIXME: __WXCOCOA__
+ wxNativeEncodingInfo()
+ : facename()
+ , encoding(wxFONTENCODING_SYSTEM)
+ , charset(0) /* ANSI_CHARSET */
+ { }
+
+ int charset;
+#elif defined(_WX_X_FONTLIKE)
+ wxString xregistry,
+ xencoding;
+#elif defined(__WXGTK20__)
+ // No way to specify this in Pango as this
+ // seems to be handled internally.
+#elif defined(__WXMGL__)
+ int mglEncoding;
+#else
+ #error "Unsupported toolkit"
+#endif
+
+ // this struct is saved in config by wxFontMapper, so it should know to
+ // serialise itself (implemented in platform-specific code)
+ bool FromString(const wxString& s);
+ wxString ToString() const;
+};
+
+#endif // wxUSE_GUI
+
#endif // _WX_FONTENC_H_