]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/encconv.h
Wrappers for *ToText
[wxWidgets.git] / include / wx / encconv.h
index 249a514c2ac34793d53635c5019102963fd072e9..f950f634cbf78718fae4dc674e177535bc6a16bb 100644 (file)
@@ -4,7 +4,7 @@
 //              font encodings
 // Author:      Vaclav Slavik
 // Copyright:   (c) 1999 Vaclav Slavik
-// Licence:     wxWindows Licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_ENCCONV_H_
@@ -87,21 +87,21 @@ class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject
             //
             // Returns FALSE if given conversion is impossible, TRUE otherwise
             // (conversion may be impossible either if you try to convert
-            // to Unicode with non-Unicode build of wxWindows or if input
+            // to Unicode with non-Unicode build of wxWidgets or if input
             // or output encoding is not supported.)
             bool Init(wxFontEncoding input_enc, wxFontEncoding output_enc, int method = wxCONVERT_STRICT);
 
             // Convert input string according to settings passed to Init.
             // Note that you must call Init before using Convert!
-            void Convert(const char* input, char* output);
-            void Convert(char* str) { Convert(str, str); }
-            wxString Convert(const wxString& input);
+            void Convert(const char* input, char* output) const;
+            void Convert(char* str) const { Convert(str, str); }
+            wxString Convert(const wxString& input) const;
 
 #if wxUSE_WCHAR_T
-            void Convert(const char* input, wchar_t* output);
-            void Convert(const wchar_t* input, char* output);
-            void Convert(const wchar_t* input, wchar_t* output);
-            void Convert(wchar_t* str) { Convert(str, str); }
+            void Convert(const char* input, wchar_t* output) const;
+            void Convert(const wchar_t* input, char* output) const;
+            void Convert(const wchar_t* input, wchar_t* output) const;
+            void Convert(wchar_t* str) const { Convert(str, str); }
 #endif
             // Return equivalent(s) for given font that are used
             // under given platform. wxPLATFORM_CURRENT means the plaform
@@ -138,6 +138,17 @@ class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject
             // equivalent encodings, regardless the platform, including itself.
             static wxFontEncodingArray GetAllEquivalents(wxFontEncoding enc);
 
+            // Return true if [any text in] one multibyte encoding can be
+            // converted to another one losslessly.
+            //
+            // Do not call this with wxFONTENCODING_UNICODE, it doesn't make
+            // sense (always works in one sense and always depends on the text
+            // to convert in the other)
+            static bool CanConvert(wxFontEncoding encIn, wxFontEncoding encOut)
+            {
+                return GetAllEquivalents(encIn).Index(encOut) != wxNOT_FOUND;
+            }
+
     private:
 
 #if wxUSE_WCHAR_T