- wxNode *node = m_dataObjects.First();
- while (node)
- {
- wxDataObject *dobj = (wxDataObject*)node->Data();
-
- if (dobj->GetFormat().GetAtom() == format.GetAtom())
- {
- return dobj->GetSize();
- }
-
- node = node->Next();
- }
-
- return 0;
-}
-
-void wxDataBroker::WriteData( wxDataFormat& format, void *dest ) const
-{
- wxNode *node = m_dataObjects.First();
- while (node)
- {
- wxDataObject *dobj = (wxDataObject*)node->Data();
-
- if (dobj->GetFormat().GetAtom() == format.GetAtom())
- {
- return dobj->WriteData( dest );
- }
-
- node = node->Next();
- }
+ PrepareFormats();
+ m_type = wxDF_PRIVATE;
+ wxString tmp( id );
+ m_format = gdk_atom_intern( (const char*) tmp.ToAscii(), FALSE );
+}
+
+void wxDataFormat::PrepareFormats()
+{
+ // VZ: GNOME included in RedHat 6.1 uses the MIME types below and not the
+ // atoms STRING and file:ALL as the old code was, but normal X apps
+ // use STRING for text selection when transfering the data via
+ // clipboard, for example, so do use STRING for now (GNOME apps will
+ // probably support STRING as well for compatibility anyhow), but use
+ // text/uri-list for file dnd because compatibility is not important
+ // here (with whom?)
+ if (!g_textAtom)
+#if wxUSE_UNICODE
+ g_textAtom = gdk_atom_intern( "UTF8_STRING", FALSE );
+ g_altTextAtom = gdk_atom_intern( "STRING", FALSE );
+#else
+ g_textAtom = gdk_atom_intern( "STRING" /* "text/plain" */, FALSE );
+#endif
+ if (!g_pngAtom)
+ g_pngAtom = gdk_atom_intern( "image/png", FALSE );
+ if (!g_fileAtom)
+ g_fileAtom = gdk_atom_intern( "text/uri-list", FALSE );