X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a1eb65c24668845888c1be5d701e32e216c79af3..1831914337402d1b3645e955c44829ee3251a39e:/include/wx/gtk/dataform.h?ds=sidebyside

diff --git a/include/wx/gtk/dataform.h b/include/wx/gtk/dataform.h
index 78803ff7da..86e0cd7838 100644
--- a/include/wx/gtk/dataform.h
+++ b/include/wx/gtk/dataform.h
@@ -20,11 +20,24 @@ public:
 
     wxDataFormat();
     wxDataFormat( wxDataFormatId type );
-    wxDataFormat( const wxString &id );
     wxDataFormat( NativeFormat format );
 
+    // we have to provide all the overloads to allow using strings instead of
+    // data formats (as a lot of existing code does)
+    wxDataFormat( const wxString& id ) { InitFromString(id); }
+    wxDataFormat( const char *id ) { InitFromString(id); }
+    wxDataFormat( const wchar_t *id ) { InitFromString(id); }
+    wxDataFormat( const wxCStrData& id ) { InitFromString(id); }
+
     wxDataFormat& operator=(const wxDataFormat& format)
-        { m_type = format.m_type; m_format = format.m_format; return *this; }
+    {
+        if (&format != this)
+        {
+            m_type = format.m_type;
+            m_format = format.m_format;
+        }
+        return *this;
+    }
     wxDataFormat& operator=(NativeFormat format)
         { SetId(format); return *this; }
 
@@ -56,6 +69,9 @@ public:
     void SetType( wxDataFormatId type );
 
 private:
+    // common part of ctors from format name
+    void InitFromString(const wxString& id);
+
     wxDataFormatId   m_type;
     NativeFormat     m_format;