initial drag interface for wxDataViewCtrl

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2007-12-30 12:41:39 +00:00
parent 81d2719d5d
commit f6f0ef852c
3 changed files with 157 additions and 30 deletions

View File

@@ -346,6 +346,38 @@ public:
return count;
}
// DnD
virtual bool IsDraggable( const wxDataViewItem &item )
{
// only drag items
return (!IsContainer(item));
}
virtual size_t GetDragDataSize( const wxDataViewItem &item, const wxDataFormat &WXUNUSED(format) )
{
wxPrintf( "GetDragDataSize\n" );
MyMusicModelNode *node = (MyMusicModelNode*) item.GetID();
wxString data;
data += node->m_title; data += wxT(" ");
data += node->m_artist;
return strlen( data.utf8_str() ) + 1;
}
virtual bool GetDragData( const wxDataViewItem &item, const wxDataFormat &WXUNUSED(format),
void* dest, size_t WXUNUSED(size) )
{
wxPrintf( "GetDragData\n" );
MyMusicModelNode *node = (MyMusicModelNode*) item.GetID();
wxString data;
data += node->m_title; data += wxT(" ");
data += node->m_artist;
wxCharBuffer buffer( data.utf8_str() );
memcpy( dest, buffer, strlen(buffer)+1 );
return true;
}
private:
MyMusicModelNode* m_root;
MyMusicModelNode* m_pop;