fix wxDataObjectComposite::GetFormatCount and add some comments to explain the reason of recents modifications to wxDataObjectComposite (closes #10430)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2009-03-06 23:42:06 +00:00
parent d02852036d
commit 9113ffaf56

View File

@@ -195,10 +195,18 @@ void* wxDataObjectComposite::SetSizeInBuffer( void* buffer, size_t size,
#endif
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,
@@ -209,7 +217,10 @@ void wxDataObjectComposite::GetAllFormats(wxDataFormat *formats,
for ( node = m_dataObjects.GetFirst(); node; node = node->GetNext() )
{
node->GetData()->GetAllFormats(formats+index,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);
}
}