]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/strconv.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / strconv.h
index 0847360a8f364e1873ed5e5a4a96357287799128..3dc3752186b1465e64ad78971a10a2553784d20b 100644 (file)
@@ -1,10 +1,9 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        strconv.h
+// Name:        wx/strconv.h
 // Purpose:     conversion routines for char sets any Unicode
 // Author:      Ove Kaaven, Robert Roebling, Vadim Zeitlin
 // Modified by:
 // Created:     29/01/98
-// RCS-ID:      $Id$
 // Copyright:   (c) 1998 Ove Kaaven, Robert Roebling
 //              (c) 1998-2006 Vadim Zeitlin
 // Licence:     wxWindows licence
 #  undef __BSEXCPT__
 #endif
 
-#ifndef __WXPALMOS5__
 #include <stdlib.h>
-#endif // ! __WXPALMOS5__
-
-#if wxUSE_WCHAR_T
 
 class WXDLLIMPEXP_FWD_BASE wxString;
 
@@ -524,31 +519,36 @@ private:
     // common part of all ctors
     void Init();
 
-    // creates m_convReal if necessary
-    void CreateConvIfNeeded() const;
-
-    // do create m_convReal (unconditionally)
+    // Creates the conversion to use, called from all ctors to initialize
+    // m_convReal.
     wxMBConv *DoCreate() const;
 
-    // set the name (may be only called when m_name == NULL), makes copy of
-    // the charset string
+    // Set the name (may be only called when m_name == NULL), makes copy of
+    // the charset string.
     void SetName(const char *charset);
 
-
-    // m_name may be NULL in which case m_encoding should be used
+    // Set m_encoding field respecting the rules below, i.e. making sure it has
+    // a valid value if m_name == NULL (thus this should be always called after
+    // SetName()).
     //
-    // note that we can't use wxString here because of compilation
-    // dependencies: we're included from wx/string.h
-    char *m_name;
+    // Input encoding may be valid or not.
+    void SetEncoding(wxFontEncoding encoding);
+
 
-    // may be wxFONTENCODING_SYSTEM in which case m_name is used
+    // The encoding we use is specified by the two fields below:
+    //
+    //  1. If m_name != NULL, m_encoding corresponds to it if it's one of
+    //     encodings we know about (i.e. member of wxFontEncoding) or is
+    //     wxFONTENCODING_SYSTEM otherwise.
     //
-    // if m_name is NULL, then we should use the default system encoding
+    //  2. If m_name == NULL, m_encoding is always valid, i.e. not one of
+    //     wxFONTENCODING_{SYSTEM,DEFAULT,MAX}.
+    char *m_name;
     wxFontEncoding m_encoding;
 
-    // use CreateConvIfNeeded() before accessing m_convReal!
+    // The conversion object for our encoding or NULL if we failed to create it
+    // in which case we fall back to hard-coded ISO8859-1 conversion.
     wxMBConv *m_convReal;
-    bool m_deferred;
 };
 
 
@@ -643,33 +643,6 @@ extern WXDLLIMPEXP_DATA_BASE(wxMBConv *) wxConvUI;
     #define wxFNSTRINGCAST WXSTRINGCAST
 #endif
 
-#else // !wxUSE_WCHAR_T
-
-// ----------------------------------------------------------------------------
-// stand-ins in absence of wchar_t
-// ----------------------------------------------------------------------------
-
-class WXDLLIMPEXP_BASE wxMBConv
-{
-public:
-    const char* cMB2WX(const char *psz) const { return psz; }
-    const char* cWX2MB(const char *psz) const { return psz; }
-};
-
-#define wxConvFile wxConvLocal
-
-extern WXDLLIMPEXP_DATA_BASE(wxMBConv) wxConvLibc,
-                                       wxConvLocal,
-                                       wxConvISO8859_1,
-                                       wxConvUTF8;
-extern WXDLLIMPEXP_DATA_BASE(wxMBConv *) wxConvCurrent;
-
-#define wxFNCONV(name) name
-#define wxFNSTRINGCAST WXSTRINGCAST
-
-#endif
-  // wxUSE_WCHAR_T
-
 // ----------------------------------------------------------------------------
 // macros for the most common conversions
 // ----------------------------------------------------------------------------