]> git.saurik.com Git - wxWidgets.git/commitdiff
Add std::[w]string support to wxVariant.
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 5 Jul 2010 14:23:21 +0000 (14:23 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 5 Jul 2010 14:23:21 +0000 (14:23 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/variant.h
src/common/variant.cpp

index 671db18c6575352ca34f221e05b198e73b644313..f3b1aca1add8609933a46768a783ae95d9bc2800 100644 (file)
@@ -230,6 +230,26 @@ public:
     inline operator wxString () const {  return MakeString(); }
     wxString GetString() const;
 
+#if wxUSE_STD_STRING
+    wxVariant(const std::string& val, const wxString& name = wxEmptyString);
+    bool operator==(const std::string& value) const
+        { return operator==(wxString(value)); }
+    bool operator!=(const std::string& value) const
+        { return operator!=(wxString(value)); }
+    wxVariant& operator=(const std::string& value)
+        { return operator=(wxString(value)); }
+    operator std::string() const { return (operator wxString()).ToStdString(); }
+
+    wxVariant(const wxStdWideString& val, const wxString& name = wxEmptyString);
+    bool operator==(const wxStdWideString& value) const
+        { return operator==(wxString(value)); }
+    bool operator!=(const wxStdWideString& value) const
+        { return operator!=(wxString(value)); }
+    wxVariant& operator=(const wxStdWideString& value)
+        { return operator=(wxString(value)); }
+    operator wxStdWideString() const { return (operator wxString()).ToStdWstring(); }
+#endif // wxUSE_STD_STRING
+
     // wxUniChar
     wxVariant(const wxUniChar& val, const wxString& name = wxEmptyString);
     wxVariant(const wxUniCharRef& val, const wxString& name = wxEmptyString);
index f5a417ce37ab02cb9f7b04d8c296d6d5376f8ab7..371630d3223a7f4a012d331c8b60bb39a91e7abc 100644 (file)
@@ -986,6 +986,20 @@ wxVariant::wxVariant(const wxScopedWCharBuffer& val, const wxString& name)
     m_name = name;
 }
 
+#if wxUSE_STD_STRING
+wxVariant::wxVariant(const std::string& val, const wxString& name)
+{
+    m_refData = new wxVariantDataString(wxString(val));
+    m_name = name;
+}
+
+wxVariant::wxVariant(const wxStdWideString& val, const wxString& name)
+{
+    m_refData = new wxVariantDataString(wxString(val));
+    m_name = name;
+}
+#endif // wxUSE_STD_STRING
+
 bool wxVariant::operator== (const wxString& value) const
 {
     wxString thisValue;