]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/encconv.h
Support using GetTextExtent() with empty string to get descent in wxOSX.
[wxWidgets.git] / include / wx / encconv.h
index 5bf29e747060d0b0efdebb6e17f678562dbb4a84..bc464785c8391d7b26cc724ed41ae0a0f6a6a57d 100644 (file)
@@ -4,20 +4,14 @@
 //              font encodings
 // Author:      Vaclav Slavik
 // Copyright:   (c) 1999 Vaclav Slavik
-// Licence:     wxWindows Licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_ENCCONV_H_
 #define _WX_ENCCONV_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "encconv.h"
-#endif
-
 #include "wx/defs.h"
 
-#if wxUSE_FONTMAP
-
 #include "wx/object.h"
 #include "wx/fontenc.h"
 #include "wx/dynarray.h"
@@ -60,10 +54,10 @@ class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject
     public:
 
             wxEncodingConverter();
-            ~wxEncodingConverter() { if (m_Table) delete[] m_Table; }
+            virtual ~wxEncodingConverter() { if (m_Table) delete[] m_Table; }
 
             // Initialize conversion. Both output or input encoding may
-            // be wxFONTENCODING_UNICODE, but only if wxUSE_WCHAR_T is set to 1.
+            // be wxFONTENCODING_UNICODE.
             //
             // All subsequent calls to Convert() will interpret it's argument
             // as a string in input_enc encoding and will output string in
@@ -82,27 +76,26 @@ class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject
             //              try some (lossy) substitutions - e.g. replace
             //              unconvertable latin capitals with acute by ordinary
             //              capitals, replace en-dash or em-dash by '-' etc.
-            //     both modes gurantee that output string will have same length
+            //     both modes guarantee 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); }
-#endif
+            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); }
+
             // Return equivalent(s) for given font that are used
             // under given platform. wxPLATFORM_CURRENT means the plaform
             // this binary was compiled for
@@ -116,9 +109,9 @@ class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject
             //
             // Equivalence is defined in terms of convertibility:
             // 2 encodings are equivalent if you can convert text between
-            // then without loosing information (it may - and will - happen
-            // that you loose special chars like quotation marks or em-dashes
-            // but you shouldn't loose any diacritics and language-specific
+            // then without losing information (it may - and will - happen
+            // that you lose special chars like quotation marks or em-dashes
+            // but you shouldn't lose any diacritics and language-specific
             // characters when converting between equivalent encodings).
             //
             // Convert() method is not limited to converting between
@@ -146,22 +139,15 @@ class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject
             // to convert in the other)
             static bool CanConvert(wxFontEncoding encIn, wxFontEncoding encOut)
             {
-                return GetAllEquivalents(encIn).Find(encOut) != wxNOT_FOUND;
+                return GetAllEquivalents(encIn).Index(encOut) != wxNOT_FOUND;
             }
 
     private:
-
-#if wxUSE_WCHAR_T
             wchar_t *m_Table;
-#else
-            char *m_Table;
-#endif
             bool m_UnicodeInput, m_UnicodeOutput;
             bool m_JustCopy;
 
-    DECLARE_NO_COPY_CLASS(wxEncodingConverter)
+    wxDECLARE_NO_COPY_CLASS(wxEncodingConverter);
 };
 
-#endif // wxUSE_FONTMAP
-
 #endif  // _WX_ENCCONV_H_