]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/dataobj.cpp
Added a bit of libJPEG 6.0b
[wxWidgets.git] / src / gtk1 / dataobj.cpp
index 6f8a442e140df4ff8c115d0b664794f7a07b887d..161a6b5e3e0c1979dbbf44d88571d9dfe51bf556 100644 (file)
 
 #include "gdk/gdk.h"
 
+
+//-------------------------------------------------------------------------
+// global data
+//-------------------------------------------------------------------------
+
+GdkAtom  g_textAtom        = 0;
+
 //-------------------------------------------------------------------------
 // wxDataFormat
 //-------------------------------------------------------------------------
@@ -25,6 +32,7 @@ IMPLEMENT_CLASS(wxDataFormat, wxObject)
 
 wxDataFormat::wxDataFormat()
 {
+    if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE );
     m_type = wxDF_INVALID;
     m_hasAtom = FALSE;
     m_atom = (GdkAtom) 0;
@@ -32,16 +40,19 @@ wxDataFormat::wxDataFormat()
 
 wxDataFormat::wxDataFormat( wxDataType type )
 {
+    if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE );
     SetType( type );
 }
 
 wxDataFormat::wxDataFormat( const wxString &id )
 {
+    if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE );
     SetId( id );
 }
 
 wxDataFormat::wxDataFormat( wxDataFormat &format )
 {
+    if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE );
     m_type = format.GetType();
     m_id = format.GetId();
     m_hasAtom = TRUE;
@@ -50,11 +61,12 @@ wxDataFormat::wxDataFormat( wxDataFormat &format )
 
 wxDataFormat::wxDataFormat( const GdkAtom atom )
 {
+    if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE );
     m_hasAtom = TRUE;
     
     m_atom = atom;
     
-    if (m_atom == GDK_TARGET_STRING)
+    if (m_atom == g_textAtom)
     {
         m_type = wxDF_TEXT;
     } else
@@ -66,7 +78,7 @@ wxDataFormat::wxDataFormat( const GdkAtom atom )
         m_type = wxDF_PRIVATE;
        m_id = gdk_atom_name( m_atom );
        
-       if (m_id == "file:ALL")
+       if (m_id == _T("file:ALL"))
        {
            m_type = wxDF_FILENAME;
        }
@@ -79,21 +91,21 @@ void wxDataFormat::SetType( wxDataType type )
     
     if (m_type == wxDF_TEXT)
     {
-        m_id = "STRING";
+        m_id = _T("STRING");
     } 
     else
     if (m_type == wxDF_BITMAP)
     {
-        m_id = "BITMAP";
+        m_id = _T("BITMAP");
     } 
     else
     if (m_type == wxDF_FILENAME)
     {
-        m_id = "file:ALL";
+        m_id = _T("file:ALL");
     }
     else
     {
-       wxFAIL_MSG( "invalid dataformat" );
+       wxFAIL_MSG( _T("invalid dataformat") );
     }
     
     m_hasAtom = FALSE;
@@ -124,8 +136,8 @@ GdkAtom wxDataFormat::GetAtom()
        
        if (m_type == wxDF_TEXT)
        {
-            m_atom = GDK_TARGET_STRING;
-        } 
+            m_atom = g_textAtom;
+        }
        else
         if (m_type == wxDF_BITMAP)
         {
@@ -134,7 +146,7 @@ GdkAtom wxDataFormat::GetAtom()
        else
         if (m_type == wxDF_PRIVATE)
         {
-            m_atom = gdk_atom_intern( WXSTRINGCAST( m_id ), FALSE );
+            m_atom = gdk_atom_intern( MBSTRINGCAST m_id.mbc_str(), FALSE );
         } 
        else
        if (m_type == wxDF_FILENAME)
@@ -241,7 +253,7 @@ void wxDataBroker::WriteData( wxDataFormat& format, void *dest ) const
        
        if (dobj->GetFormat().GetAtom() == format.GetAtom())
        {
-           return dobj->WriteData( dest );
+           dobj->WriteData( dest );
        }
     
         node = node->Next();
@@ -279,7 +291,7 @@ wxString wxDataObject::GetFormatId() const
 
 GdkAtom wxDataObject::GetFormatAtom() const
 {
-    GdkAtom ret = m_format.GetAtom();
+    GdkAtom ret = ((wxDataObject*) this)->m_format.GetAtom();
     return ret;
 }  
 
@@ -340,7 +352,7 @@ wxFileDataObject::wxFileDataObject()
 void wxFileDataObject::AddFile( const wxString &file )
 { 
     m_files += file; 
-    m_files += (char)0; 
+    m_files += (wxChar)0; 
 }
     
 wxString wxFileDataObject::GetFiles() const