]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dataobj.cpp
new file added
[wxWidgets.git] / src / gtk / dataobj.cpp
index 50ef7fdc80872bcb9083e6e1950da3f4271a36b9..c742b77f156bf2ce5fe1c9caaa35809b1aecf1f2 100644 (file)
@@ -33,6 +33,7 @@ GdkAtom  g_textAtom        = 0;
 GdkAtom  g_altTextAtom     = 0;
 GdkAtom  g_pngAtom         = 0;
 GdkAtom  g_fileAtom        = 0;
+GdkAtom  g_htmlAtom        = 0;
 
 //-------------------------------------------------------------------------
 // wxDataFormat
@@ -81,10 +82,13 @@ void wxDataFormat::SetType( wxDataFormatId type )
         m_format = g_textAtom;
     else if (m_type == wxDF_TEXT)
         m_format = g_altTextAtom;
-#else
-    if (m_type == wxDF_TEXT || m_type == wxDF_UNICODETEXT)
+#else // !wxUSE_UNICODE
+    // notice that we don't map wxDF_UNICODETEXT to g_textAtom here, this
+    // would lead the code elsewhere to treat data objects with this format as
+    // containing UTF-8 data which is not true
+    if (m_type == wxDF_TEXT)
         m_format = g_textAtom;
-#endif
+#endif // wxUSE_UNICODE/!wxUSE_UNICODE
     else
     if (m_type == wxDF_BITMAP)
         m_format = g_pngAtom;
@@ -92,6 +96,9 @@ void wxDataFormat::SetType( wxDataFormatId type )
     if (m_type == wxDF_FILENAME)
         m_format = g_fileAtom;
     else
+    if (m_type == wxDF_HTML)
+        m_format = g_htmlAtom;
+    else
     {
        wxFAIL_MSG( wxT("invalid dataformat") );
     }
@@ -128,6 +135,9 @@ void wxDataFormat::SetId( NativeFormat format )
     else
     if (m_format == g_fileAtom)
         m_type = wxDF_FILENAME;
+    else
+    if (m_format == g_htmlAtom)
+        m_type = wxDF_HTML;
     else
         m_type = wxDF_PRIVATE;
 }
@@ -161,6 +171,8 @@ void wxDataFormat::PrepareFormats()
         g_pngAtom = gdk_atom_intern( "image/png", FALSE );
     if (!g_fileAtom)
         g_fileAtom = gdk_atom_intern( "text/uri-list", FALSE );
+    if (!g_htmlAtom)
+        g_htmlAtom = gdk_atom_intern( "text/html", FALSE );
 }
 
 //-------------------------------------------------------------------------
@@ -381,12 +393,12 @@ bool wxBitmapDataObject::SetData(size_t size, const void *buf)
 
     m_bitmap = wxBitmap(image);
 
-    return m_bitmap.Ok();
+    return m_bitmap.IsOk();
 }
 
 void wxBitmapDataObject::DoConvertToPng()
 {
-    if ( !m_bitmap.Ok() )
+    if ( !m_bitmap.IsOk() )
         return;
 
     wxCHECK_RET( wxImage::FindHandler(wxBITMAP_TYPE_PNG) != NULL,