]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/string.h
1. wxAppBase class appers, wxApp in wxGTK and wxMSW modified accordingly
[wxWidgets.git] / include / wx / string.h
index 91d990fdbdf5032cf5e1090152fd2bc2411022f8..661c893f5759a526a5e493c5e4ffe3b239b0fab3 100644 (file)
@@ -198,7 +198,6 @@ class WXDLLEXPORT wxMBConv
 #endif
 };
 WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc;
-#define wxConv_libc wxConvLibc
 
 #define wxANOTHER_MBCONV(type) \
 class type : public wxMBConv { \
@@ -208,14 +207,11 @@ class type : public wxMBConv { \
 }
 
 WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvFile)) wxConvFile;
-#define wxConv_file wxConvFile
 WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvUTF7)) wxConvUTF7;
 WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvUTF8)) wxConvUTF8;
-#define wxConv_UTF8 wxConvUTF8
-#if defined(__WXGTK12__)
+#ifdef __WXGTK12__
     WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvGdk)) wxConvGdk;
-    #define wxConv_gdk wxConvGdk
-#endif // GTK > 1.0
+#endif
 
 class wxCharacterSet;
 class WXDLLEXPORT wxCSConv : public wxMBConv
@@ -260,10 +256,7 @@ public:
   const char* cWX2MB(const char *psz) const { return psz; }
 };
 WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc, wxConvFile;
-#define wxConv_libc wxConvLibc
-#define wxConv_file wxConvFile
 WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent;
-#define wxConv_current wxConvCurrent
 #define wxFNCONV(name) name
 #define FNSTRINGCAST WXSTRINGCAST
 #endif//wxUSE_WCHAR_T
@@ -579,13 +572,19 @@ public:
 
   // string comparison
     // case-sensitive comparison (returns a value < 0, = 0 or > 0)
-  int  Cmp(const wxChar *psz) const { return wxStrcmp(c_str(), psz); }
+  int Cmp(const wxChar *psz) const { return wxStrcmp(c_str(), psz); }
     // same as Cmp() but not case-sensitive
-  int  CmpNoCase(const wxChar *psz) const { return wxStricmp(c_str(), psz); }
+  int CmpNoCase(const wxChar *psz) const { return wxStricmp(c_str(), psz); }
     // test for the string equality, either considering case or not
     // (if compareWithCase then the case matters)
   bool IsSameAs(const wxChar *psz, bool compareWithCase = TRUE) const
     { return (compareWithCase ? Cmp(psz) : CmpNoCase(psz)) == 0; }
+    // comparison with a signle character: returns TRUE if equal
+  bool IsSameAs(wxChar c, bool compareWithCase = TRUE) const
+    {
+      return (Len() == 1) && (compareWithCase ? GetChar(0u) == c
+                              : wxToupper(GetChar(0u)) == wxToupper(c));
+    }
 
   // simple sub-string extraction
       // return substring starting at nFirst of length nCount (or till the end
@@ -1000,6 +999,7 @@ private:
 // ---------------------------------------------------------------------------
 // wxString comparison functions: operator versions are always case sensitive
 // ---------------------------------------------------------------------------
+
 //
 inline bool operator==(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) == 0); }
 //
@@ -1037,16 +1037,22 @@ inline bool operator>=(const wxString& s1, const wxChar  * s2) { return (s1.Cmp(
 //
 inline bool operator>=(const wxChar  * s1, const wxString& s2) { return (s2.Cmp(s1) <= 0); }
 
+// comparison with char
+inline bool operator==(wxChar c, const wxString& s) { return s.IsSameAs(c); }
+inline bool operator==(const wxString& s, wxChar c) { return s.IsSameAs(c); }
+inline bool operator!=(wxChar c, const wxString& s) { return !s.IsSameAs(c); }
+inline bool operator!=(const wxString& s, wxChar c) { return !s.IsSameAs(c); }
+
 #if wxUSE_UNICODE
 inline bool operator==(const wxString& s1, const wxWCharBuffer& s2)
-{ return (s1.Cmp((const wchar_t *)s2) == 0); }
+    { return (s1.Cmp((const wchar_t *)s2) == 0); }
 inline bool operator==(const wxWCharBuffer& s1, const wxString& s2)
-{ return (s2.Cmp((const wchar_t *)s1) == 0); }
+    { return (s2.Cmp((const wchar_t *)s1) == 0); }
 #else
 inline bool operator==(const wxString& s1, const wxCharBuffer& s2)
-{ return (s1.Cmp((const char *)s2) == 0); }
+    { return (s1.Cmp((const char *)s2) == 0); }
 inline bool operator==(const wxCharBuffer& s1, const wxString& s2)
-{ return (s2.Cmp((const char *)s1) == 0); }
+    { return (s2.Cmp((const char *)s1) == 0); }
 #endif
 
 wxString WXDLLEXPORT operator+(const wxString& string1,  const wxString& string2);
@@ -1070,7 +1076,7 @@ inline wxString WXDLLEXPORT operator+(const wxCharBuffer& buf, const wxString& s
 // Implementation only from here until the end of file
 // ---------------------------------------------------------------------------
 
-#ifdef wxSTD_STRING_COMPATIBILITY
+#if defined(wxSTD_STRING_COMPATIBILITY) && wxUSE_STD_IOSTREAM
 
 #include "wx/ioswrap.h"