- if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE );
- if (!g_pngAtom) g_pngAtom = gdk_atom_intern( "image/png", FALSE );
-}
-
-//-------------------------------------------------------------------------
-// wxDataBroker
-//-------------------------------------------------------------------------
-
-IMPLEMENT_CLASS(wxDataBroker,wxObject)
-
-wxDataBroker::wxDataBroker()
-{
- m_dataObjects.DeleteContents(TRUE);
- m_preferred = 0;
-}
-
-void wxDataBroker::Add( wxDataObject *dataObject, bool preferred )
-{
- if (preferred) m_preferred = m_dataObjects.GetCount();
- m_dataObjects.Append( dataObject );
-}
-
-size_t wxDataBroker::GetFormatCount() const
-{
- return m_dataObjects.GetCount();
-}
-
-wxDataFormatId wxDataBroker::GetPreferredFormat() const
-{
- wxNode *node = m_dataObjects.Nth( m_preferred );
-
- wxASSERT( node );
-
- wxDataObject* data_obj = (wxDataObject*)node->Data();
-
- return data_obj->GetFormat().GetType();
-}
-
-wxDataFormat &wxDataBroker::GetNthFormat( size_t nth ) const
-{
- wxNode *node = m_dataObjects.Nth( nth );
-
- wxASSERT( node );
-
- wxDataObject* data_obj = (wxDataObject*)node->Data();
-
- return data_obj->GetFormat();
-}
-
-bool wxDataBroker::IsSupportedFormat( wxDataFormat &format ) const
-{
- wxNode *node = m_dataObjects.First();
- while (node)
- {
- wxDataObject *dobj = (wxDataObject*)node->Data();
-
- if (dobj->GetFormat().GetAtom() == format.GetAtom())
- {
- return TRUE;
- }
-
- node = node->Next();
- }
-
- return FALSE;
-}
-
-size_t wxDataBroker::GetSize( wxDataFormat& format ) const
-{
- 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())
- {
- dobj->WriteData( dest );
- }
-
- node = node->Next();
- }