]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/strconv.h
Have wxUniv wxComboBox inherit from wxItemContainer instead of wxComboBoxBase, since...
[wxWidgets.git] / include / wx / strconv.h
index 0847360a8f364e1873ed5e5a4a96357287799128..7ebd113f080e37e44c424530cfd63e45ef69dbc4 100644 (file)
@@ -29,8 +29,6 @@
 #include <stdlib.h>
 #endif // ! __WXPALMOS5__
 
-#if wxUSE_WCHAR_T
-
 class WXDLLIMPEXP_FWD_BASE wxString;
 
 // the error value returned by wxMBConv methods
@@ -524,31 +522,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 +646,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
 // ----------------------------------------------------------------------------