adding a string for private data identification

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2005-08-23 07:37:13 +00:00
parent 8a15e8ba7a
commit 0b6db82f16
2 changed files with 30 additions and 11 deletions

View File

@@ -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

View File

@@ -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 ) ;
}
}
//-------------------------------------------------------------------------