]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/fontenc.h
wxCocoa: CodeWarrior (like GCC) mangles struct X and @class X identically.
[wxWidgets.git] / include / wx / fontenc.h
index 83300a6f403dcf3e0170fd44eee7e9407d9fa794..1f2a667b24e7b1d0f71e17604983f2dbec78c8d1 100644 (file)
@@ -6,12 +6,14 @@
 // 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
 {
@@ -52,6 +54,10 @@ 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
@@ -61,11 +67,76 @@ enum wxFontEncoding
     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_