]> git.saurik.com Git - wxWidgets.git/commitdiff
adding a string for private data identification
authorStefan Csomor <csomor@advancedconcepts.ch>
Tue, 23 Aug 2005 07:37:13 +0000 (07:37 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Tue, 23 Aug 2005 07:37:13 +0000 (07:37 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/mac/carbon/dataform.h
src/mac/carbon/dataobj.cpp

index 6e8846c6da6b5b15ec8666a8430b61fc8009b706..43dbd7bffb75fdf1ce776ee0f8f52e4871137e7a 100644 (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
index 6096d47388640f283388b078897d44a19536eac1..c810f7c4188de6175c3816c9d8466f41e3acee26 100644 (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 ) ;
+    }
 }
 
 //-------------------------------------------------------------------------