]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/variant.h
Fix AUI compilation without PCH after recent changes.
[wxWidgets.git] / include / wx / variant.h
index 2f54c1b40455eb29a40ba2875e229782c736b437..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);
@@ -376,6 +396,7 @@ class WXDLLIMPEXP_BASE wxAnyToVariantRegistration
 {
 public:
     wxAnyToVariantRegistration(wxVariantDataFactory factory);
+    virtual ~wxAnyToVariantRegistration();
 
     virtual wxAnyValueType* GetAssociatedType() = 0;
     wxVariantDataFactory GetFactory() const { return m_factory; }
@@ -403,10 +424,13 @@ private:
 virtual bool GetAsAny(wxAny* any) const; \
 static wxVariantData* VariantDataFactory(const wxAny& any);
 
-#define REGISTER_WXANY_CONVERSION(T, CLASSNAME) \
+#define _REGISTER_WXANY_CONVERSION(T, CLASSNAME, FUNC) \
 static wxAnyToVariantRegistrationImpl<T> \
     gs_##CLASSNAME##AnyToVariantRegistration = \
-    wxAnyToVariantRegistrationImpl<T>(&CLASSNAME::VariantDataFactory);
+    wxAnyToVariantRegistrationImpl<T>(&FUNC);
+
+#define REGISTER_WXANY_CONVERSION(T, CLASSNAME) \
+_REGISTER_WXANY_CONVERSION(T, CLASSNAME, CLASSNAME::VariantDataFactory)
 
 #define IMPLEMENT_TRIVIAL_WXANY_CONVERSION(T, CLASSNAME) \
 bool CLASSNAME::GetAsAny(wxAny* any) const \