]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_font.i
MemoryFSHandler_AddFile updates
[wxWidgets.git] / wxPython / src / _font.i
index 997d2ede8c0fd15e97ba60887eafc583d6c4501b..2e858aacca0e34cc22e289e065cfb66239e0777e 100644 (file)
@@ -118,7 +118,8 @@ enum wxFontEncoding
     wxFONTENCODING_ISO8859_MAX,
 
     // Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html)
-    wxFONTENCODING_KOI8,            // we don't support any of KOI8 variants
+    wxFONTENCODING_KOI8,            // KOI8 Russian
+    wxFONTENCODING_KOI8_U,          // KOI8 Ukrainian
     wxFONTENCODING_ALTERNATIVE,     // same as MS-DOS CP866
     wxFONTENCODING_BULGARIAN,       // used under Linux in Bulgaria
 
@@ -153,6 +154,50 @@ enum wxFontEncoding
     wxFONTENCODING_UTF32BE,         // UTF-32 Big Endian Unicode encoding
     wxFONTENCODING_UTF32LE,         // UTF-32 Little Endian Unicode encoding
 
+    wxFONTENCODING_MACROMAN,        // the standard mac encodings
+    wxFONTENCODING_MACJAPANESE,      
+    wxFONTENCODING_MACCHINESETRAD,   
+    wxFONTENCODING_MACKOREAN,       
+    wxFONTENCODING_MACARABIC,       
+    wxFONTENCODING_MACHEBREW,        
+    wxFONTENCODING_MACGREEK,       
+    wxFONTENCODING_MACCYRILLIC,      
+    wxFONTENCODING_MACDEVANAGARI,      
+    wxFONTENCODING_MACGURMUKHI,      
+    wxFONTENCODING_MACGUJARATI,     
+    wxFONTENCODING_MACORIYA,       
+    wxFONTENCODING_MACBENGALI,       
+    wxFONTENCODING_MACTAMIL,       
+    wxFONTENCODING_MACTELUGU,        
+    wxFONTENCODING_MACKANNADA,        
+    wxFONTENCODING_MACMALAJALAM,        
+    wxFONTENCODING_MACSINHALESE,        
+    wxFONTENCODING_MACBURMESE,       
+    wxFONTENCODING_MACKHMER,        
+    wxFONTENCODING_MACTHAI,        
+    wxFONTENCODING_MACLAOTIAN,        
+    wxFONTENCODING_MACGEORGIAN,        
+    wxFONTENCODING_MACARMENIAN,        
+    wxFONTENCODING_MACCHINESESIMP,        
+    wxFONTENCODING_MACTIBETAN,        
+    wxFONTENCODING_MACMONGOLIAN,        
+    wxFONTENCODING_MACETHIOPIC,        
+    wxFONTENCODING_MACCENTRALEUR,        
+    wxFONTENCODING_MACVIATNAMESE,        
+    wxFONTENCODING_MACARABICEXT,        
+    wxFONTENCODING_MACSYMBOL,        
+    wxFONTENCODING_MACDINGBATS,        
+    wxFONTENCODING_MACTURKISH,        
+    wxFONTENCODING_MACCROATIAN,        
+    wxFONTENCODING_MACICELANDIC,        
+    wxFONTENCODING_MACROMANIAN,        
+    wxFONTENCODING_MACCELTIC,        
+    wxFONTENCODING_MACGAELIC,        
+    wxFONTENCODING_MACKEYBOARD,       
+
+    wxFONTENCODING_MACMIN = wxFONTENCODING_MACROMAN ,
+    wxFONTENCODING_MACMAX = wxFONTENCODING_MACKEYBOARD ,
+
     wxFONTENCODING_MAX,             // highest enumerated encoding value
 
 
@@ -268,10 +313,10 @@ bool wxTestFontEncoding(const wxNativeEncodingInfo& info);
 
 %inline %{
     wxNativeEncodingInfo* wxGetNativeFontEncoding(wxFontEncoding encoding)
-        { PyErr_SetNone(PyExc_NotImplementedError); return NULL; }
+        { wxPyRaiseNotImplemented(); return NULL; }
     
     bool wxTestFontEncoding(const wxNativeEncodingInfo& info)
-        { PyErr_SetNone(PyExc_NotImplementedError); return False; }
+        { wxPyRaiseNotImplemented(); return False; }
 %}
 #endif
 
@@ -329,6 +374,12 @@ public:
     // NB: hard-coded now, but might change later (read it from config?)
     static wxString GetEncodingDescription(wxFontEncoding encoding);
 
+    // find the encoding corresponding to the given name, inverse of
+    // GetEncodingName() and less general than CharsetToEncoding()
+    //
+    // returns wxFONTENCODING_MAX if the name is not a supported encoding
+    static wxFontEncoding GetEncodingFromName(const wxString& name);
+
 
     // set the config object to use (may be NULL to use default)
     void SetConfig(wxConfigBase *config);
@@ -360,7 +411,8 @@ public:
 
 
     // checks whether given encoding is available in given face or not.
-    // If no facename is given,
+    // If no facename is given (default), return true if it's available in any
+    // facename at all.
     bool IsEncodingAvailable(wxFontEncoding encoding,
                              const wxString& facename = wxPyEmptyString);
 
@@ -378,8 +430,14 @@ public:
 %newgroup
 
 
+MustHaveApp(wxFont);
+MustHaveApp(wxFont::GetDefaultEncoding);
+MustHaveApp(wxFont::SetDefaultEncoding);
+
 class wxFont : public wxGDIObject {
 public:
+    %pythonPrepend wxFont   "if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName']"
+
     wxFont( int pointSize, int family, int style, int weight,
             bool underline=False, const wxString& face = wxPyEmptyString,
             wxFontEncoding encoding=wxFONTENCODING_DEFAULT);
@@ -394,10 +452,10 @@ public:
         }
 
         %name(Font2) wxFont(int pointSize,
-                              wxFontFamily family,
-                              int flags = wxFONTFLAG_DEFAULT,
-                              const wxString& face = wxPyEmptyString,
-                              wxFontEncoding encoding = wxFONTENCODING_DEFAULT) {
+                            wxFontFamily family,
+                            int flags = wxFONTFLAG_DEFAULT,
+                            const wxString& face = wxPyEmptyString,
+                            wxFontEncoding encoding = wxFONTENCODING_DEFAULT) {
             return wxFont::New(pointSize, family, flags, face, encoding);
         }
     }
@@ -408,8 +466,10 @@ public:
     %pythoncode { def __nonzero__(self): return self.Ok() }
 
     // comparison
-    bool operator == (const wxFont& font) const;
-    bool operator != (const wxFont& font) const;
+    %extend {
+        bool __eq__(const wxFont* other) { return other ? (*self == *other) : False; }
+        bool __ne__(const wxFont* other) { return other ? (*self != *other) : True;  }
+    }
 
     // accessors: get the font characteristics
     virtual int GetPointSize() const;
@@ -446,7 +506,7 @@ public:
 
     // Unofficial API, don't use
     virtual void SetNoAntiAliasing( bool no = True );
-    virtual bool GetNoAntiAliasing();
+    virtual bool GetNoAntiAliasing() const;
 
     // the default encoding is used for creating all fonts with default
     // encoding parameter
@@ -477,9 +537,11 @@ IMP_PYCALLBACK_BOOL_STRINGSTRING(wxPyFontEnumerator, wxFontEnumerator, OnFontEnc
 
 %}
 
+MustHaveApp(wxPyFontEnumerator);
+
 %name(FontEnumerator) class wxPyFontEnumerator {
 public:
-    %addtofunc wxPyFontEnumerator "self._setCallbackInfo(self, FontEnumerator, 0)"
+    %pythonAppend wxPyFontEnumerator "self._setCallbackInfo(self, FontEnumerator, 0)"
 
     wxPyFontEnumerator();
     ~wxPyFontEnumerator();
@@ -496,12 +558,18 @@ public:
     %extend {
         PyObject* GetEncodings() {
             wxArrayString* arr = self->GetEncodings();
-            return wxArrayString2PyList_helper(*arr);
+            if (arr)
+                return wxArrayString2PyList_helper(*arr);
+            else
+                return PyList_New(0);
         }
 
         PyObject* GetFacenames() {
             wxArrayString* arr = self->GetFacenames();
-            return wxArrayString2PyList_helper(*arr);
+            if (arr)
+                return wxArrayString2PyList_helper(*arr);
+            else
+                return PyList_New(0);
         }
     }
 };