X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/57c5293e49b50007e8fb19f4953d65d6aeb45293..e2eafeff03e55e8af173168ec4d4378f5c9d4630:/include/wx/encconv.h diff --git a/include/wx/encconv.h b/include/wx/encconv.h index 2af9a9b597..a4eecd05ec 100644 --- a/include/wx/encconv.h +++ b/include/wx/encconv.h @@ -4,7 +4,7 @@ // font encodings // Author: Vaclav Slavik // Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_ENCCONV_H_ @@ -85,23 +85,23 @@ class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject // both modes gurantee that output string will have same length // as input string // - // Returns FALSE if given conversion is impossible, TRUE otherwise + // 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) const; - void Convert(char* str) const { Convert(str, str); } + bool Convert(const char* input, char* output) const; + bool Convert(char* str) const { return Convert(str, str); } wxString Convert(const wxString& input) const; #if wxUSE_WCHAR_T - 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); } + bool Convert(const char* input, wchar_t* output) const; + bool Convert(const wchar_t* input, char* output) const; + bool Convert(const wchar_t* input, wchar_t* output) const; + bool Convert(wchar_t* str) const { return 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