From 0b6db82f16ca890ec696d3ed71f1bdb56e649f10 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 23 Aug 2005 07:37:13 +0000 Subject: [PATCH] adding a string for private data identification git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/mac/carbon/dataform.h | 11 +++++++---- src/mac/carbon/dataobj.cpp | 30 +++++++++++++++++++++++------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/include/wx/mac/carbon/dataform.h b/include/wx/mac/carbon/dataform.h index 6e8846c6da..43dbd7bffb 100644 --- a/include/wx/mac/carbon/dataform.h +++ b/include/wx/mac/carbon/dataform.h @@ -27,10 +27,9 @@ public: { SetId(vFormat); return *this; } // comparison (must have both versions) - bool operator==(NativeFormat format) const - { return m_format == (NativeFormat)format; } - bool operator!=(NativeFormat format) const - { return m_format != (NativeFormat)format; } + bool operator==(const wxDataFormat& format) const ; + bool operator!=(const wxDataFormat& format) const + { return ! ( *this != format ); } bool operator==(wxDataFormatId format) const { return m_type == (wxDataFormatId)format; } bool operator!=(wxDataFormatId format) const @@ -53,9 +52,13 @@ public: wxDataFormatId GetType() const { return m_type; } void SetType( wxDataFormatId type ); + // returns true if the format is one of those defined in wxDataFormatId + bool IsStandard() const { return m_format > 0 && m_format < wxDF_PRIVATE; } private: wxDataFormatId m_type; NativeFormat m_format; + // indicates the type in case of wxDF_PRIVATE : + wxString m_id ; }; #endif // _WX_MAC_DATAFORM_H diff --git a/src/mac/carbon/dataobj.cpp b/src/mac/carbon/dataobj.cpp index 6096d47388..c810f7c418 100644 --- a/src/mac/carbon/dataobj.cpp +++ b/src/mac/carbon/dataobj.cpp @@ -99,13 +99,10 @@ void wxDataFormat::SetType( wxDataFormatId Type ) wxString wxDataFormat::GetId() const { - // note that m_format is not a pointer to string, it *is* itself a 4 - // character string - char text[5] ; - strncpy( text , (char*) &m_format , 4 ) ; - text[4] = 0 ; + wxCHECK_MSG( !IsStandard(), wxEmptyString , + wxT("name of predefined format cannot be retrieved") ); - return wxString::FromAscii( text ) ; + return m_id ; } void wxDataFormat::SetId( NativeFormat format ) @@ -121,13 +118,32 @@ void wxDataFormat::SetId( NativeFormat format ) else if (m_format == kDragFlavorTypeHFS ) m_type = wxDF_FILENAME; else + { m_type = wxDF_PRIVATE; + char text[5] ; + strncpy( text , (char*) &format , 4 ) ; + text[4] = 0 ; + m_id = wxString::FromAscii( text ) ; + } } void wxDataFormat::SetId( const wxChar* zId ) { m_type = wxDF_PRIVATE; - m_format = 0;// TODO: get the format gdk_atom_intern( wxMBSTRINGCAST tmp.mbc_str(), FALSE ); + m_id = zId ; + m_format = 'WXPR' ; +} + +bool wxDataFormat::operator==(const wxDataFormat& format) const +{ + if ( IsStandard() || format.IsStandard() ) + { + return ( format.m_type == m_type ) ; + } + else + { + return ( m_id == format.m_id ) ; + } } //------------------------------------------------------------------------- -- 2.45.2