X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bf3dab485abd6ea29bcea0d4fdeca37edcefa508..fd90675b89c7f0b8fb9c6749f8314a26e23b1b95:/include/wx/gtk/dataform.h diff --git a/include/wx/gtk/dataform.h b/include/wx/gtk/dataform.h index 00b2c9f0c0..86e0cd7838 100644 --- a/include/wx/gtk/dataform.h +++ b/include/wx/gtk/dataform.h @@ -12,7 +12,7 @@ #ifndef _WX_GTK_DATAFORM_H #define _WX_GTK_DATAFORM_H -class wxDataFormat +class WXDLLIMPEXP_CORE wxDataFormat { public: // the clipboard formats under GDK are GdkAtoms @@ -20,12 +20,24 @@ public: wxDataFormat(); wxDataFormat( wxDataFormatId type ); - wxDataFormat( const wxString &id ); - wxDataFormat( const wxChar *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; } @@ -50,13 +62,16 @@ public: // string ids are used for custom types - this SetId() must be used for // application-specific formats wxString GetId() const; - void SetId( const wxChar *id ); + void SetId( const wxString& id ); // implementation wxDataFormatId GetType() const; void SetType( wxDataFormatId type ); private: + // common part of ctors from format name + void InitFromString(const wxString& id); + wxDataFormatId m_type; NativeFormat m_format;