]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/encconv.h
nicer version compilation fix for wxUSE_WCHAR_T=0 (why should we duplicate definition...
[wxWidgets.git] / include / wx / encconv.h
index ea44123207d64aa8aaf3b112a9f6014ebf98df8a..9e67c211415a62d628ddd1b60b02295fbbcf1a77 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        encconv.h
+// Name:        wx/encconv.h
 // Purpose:     wxEncodingConverter class for converting between different
 //              font encodings
 // Author:      Vaclav Slavik
@@ -7,36 +7,47 @@
 // Licence:     wxWindows Licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __ENCCONV_H__
-#define __ENCCONV_H__
+#ifndef _WX_ENCCONV_H_
+#define _WX_ENCCONV_H_
 
 #ifdef __GNUG__
 #pragma interface "encconv.h"
 #endif
 
 #include "wx/defs.h"
-#include "wx/font.h"
-#include "wx/dynarray.h"
 
+#if wxUSE_FONTMAP
+
+#include "wx/object.h"
+#include "wx/fontenc.h"
+#include "wx/dynarray.h"
 
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
 
-enum {
+enum
+{
     wxCONVERT_STRICT,
     wxCONVERT_SUBSTITUTE
 };
 
 
-enum {
+enum
+{
     wxPLATFORM_CURRENT = -1,
-    
+
     wxPLATFORM_UNIX = 0,
     wxPLATFORM_WINDOWS,
     wxPLATFORM_OS2,
-    wxPLATFORM_MAC,
+    wxPLATFORM_MAC
 };
 
-WX_DEFINE_ARRAY(wxFontEncoding, wxFontEncodingArray);
+// ----------------------------------------------------------------------------
+// types
+// ----------------------------------------------------------------------------
 
+WX_DEFINE_ARRAY(wxFontEncoding, wxFontEncodingArray);
 
 //--------------------------------------------------------------------------------
 // wxEncodingConverter
@@ -47,28 +58,28 @@ WX_DEFINE_ARRAY(wxFontEncoding, wxFontEncodingArray);
 class WXDLLEXPORT wxEncodingConverter : public wxObject
 {
     public:
-    
+
             wxEncodingConverter();
             ~wxEncodingConverter() { if (m_Table) delete[] m_Table; }
-    
+
             // Initialize convertion. Both output or input encoding may
-            // be wxFONTENCODING_UNICODE, but only if wxUSE_ENCODING is set to 1.
+            // be wxFONTENCODING_UNICODE, but only if wxUSE_WCHAR_T is set to 1.
             //
             // All subsequent calls to Convert() will interpret it's argument
             // as a string in input_enc encoding and will output string in
             // output_enc encoding.
             //
-            // You must call this method before calling Convert. You may call 
+            // You must call this method before calling Convert. You may call
             // it more than once in order to switch to another conversion
             //
             // Method affects behaviour of Convert() in case input character
             // cannot be converted because it does not exist in output encoding:
-            //     wxCONVERT_STRICT -- 
-            //              follow behaviour of GNU Recode - just copy unconvertable 
-            //              characters to output and don't change them (it's integer 
+            //     wxCONVERT_STRICT --
+            //              follow behaviour of GNU Recode - just copy unconvertable
+            //              characters to output and don't change them (it's integer
             //              value will stay the same)
             //     wxCONVERT_SUBSTITUTE --
-            //              try some (lossy) substitutions - e.g. replace 
+            //              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
@@ -79,13 +90,19 @@ class WXDLLEXPORT wxEncodingConverter : public wxObject
             // to Unicode with non-Unicode build of wxWindows 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 wxChar* input, wxChar* output);
-            void Convert(wxChar* str) { Convert(str, str); }
-            
+
+#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); }
+#endif
             // Return equivalent(s) for given font that are used
             // under given platform. wxPLATFORM_CURRENT means the plaform
             // this binary was compiled for
@@ -103,8 +120,8 @@ class WXDLLEXPORT wxEncodingConverter : public wxObject
             // that you loose special chars like quotation marks or em-dashes
             // but you shouldn't loose any diacritics and language-specific
             // characters when converting between equivalent encodings).
-            // 
-            // Convert() method is not limited to converting between 
+            //
+            // Convert() method is not limited to converting between
             // equivalent encodings, it can convert between arbitrary
             // two encodings!
             //
@@ -117,34 +134,22 @@ class WXDLLEXPORT wxEncodingConverter : public wxObject
             // encoding is native for this platform or not)
             static wxFontEncodingArray GetPlatformEquivalents(wxFontEncoding enc, int platform = wxPLATFORM_CURRENT);
 
-            // Similar to GetPlatformEquivalent, but this one will return ALL 
+            // Similar to GetPlatformEquivalent, but this one will return ALL
             // equivalent encodings, regardless the platform, including itself.
             static wxFontEncodingArray GetAllEquivalents(wxFontEncoding enc);
 
     private:
-    
-            wxChar *m_Table;
-            bool m_UnicodeInput;
-            bool m_JustCopy;
-            
-};
-
-
-#endif  // __ENCCONV_H__
-
-
-
-
-
-
-
-
-
-
-
-
-
 
+#if wxUSE_WCHAR_T
+            wchar_t *m_Table;
+#else
+            char *m_Table;
+#endif
+            bool m_UnicodeInput, m_UnicodeOutput;
+            bool m_JustCopy;
 
+};
 
+#endif // wxUSE_FONTMAP
 
+#endif  // _WX_ENCCONV_H_