git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59395
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
size_t indexFormats;
size_t noOfFormats;
wxDataFormat* formats;
size_t indexFormats;
size_t noOfFormats;
wxDataFormat* formats;
noOfFormats = dataObject->GetFormatCount(wxDataObjectBase::Get);
formats = new wxDataFormat[noOfFormats];
for (indexFormats=0; indexFormats<noOfFormats; ++indexFormats)
noOfFormats = dataObject->GetFormatCount(wxDataObjectBase::Get);
formats = new wxDataFormat[noOfFormats];
for (indexFormats=0; indexFormats<noOfFormats; ++indexFormats)
delete[] formats;
// do the same with the 'SET' direction:
noOfFormats = dataObject->GetFormatCount(wxDataObjectBase::Set);
delete[] formats;
// do the same with the 'SET' direction:
noOfFormats = dataObject->GetFormatCount(wxDataObjectBase::Set);
formats = new wxDataFormat[noOfFormats];
for (indexFormats=0; indexFormats<noOfFormats; ++indexFormats)
wxCHECK_RET(this->GetObject(formats[indexFormats],wxDataObjectBase::Set) == NULL,
formats = new wxDataFormat[noOfFormats];
for (indexFormats=0; indexFormats<noOfFormats; ++indexFormats)
wxCHECK_RET(this->GetObject(formats[indexFormats],wxDataObjectBase::Set) == NULL,
-size_t wxDataObjectComposite::GetFormatCount(Direction WXUNUSED(dir)) const
+size_t wxDataObjectComposite::GetFormatCount(Direction dir) const
- // TODO what about the Get/Set only formats?
- return m_dataObjects.GetCount();
+ size_t n = 0;
+
+ // NOTE: some wxDataObjectSimple objects may return a number greater than 1
+ // from GetFormatCount(): this is the case of e.g. wxTextDataObject
+ // under wxMac and wxGTK
+ wxSimpleDataObjectList::compatibility_iterator node;
+ for ( node = m_dataObjects.GetFirst(); node; node = node->GetNext() )
+ n += node->GetData()->GetFormatCount(dir);
+
+ return n;
}
void wxDataObjectComposite::GetAllFormats(wxDataFormat *formats,
}
void wxDataObjectComposite::GetAllFormats(wxDataFormat *formats,
for ( node = m_dataObjects.GetFirst(); node; node = node->GetNext() )
{
for ( node = m_dataObjects.GetFirst(); node; node = node->GetNext() )
{
- node->GetData()->GetAllFormats(formats+index,dir);
- index += node->GetData()->GetFormatCount(dir);
+ // NOTE: some wxDataObjectSimple objects may return more than 1 format
+ // from GetAllFormats(): this is the case of e.g. wxTextDataObject
+ // under wxMac and wxGTK
+ node->GetData()->GetAllFormats(formats+index, dir);
+ index += node->GetData()->GetFormatCount(dir);