]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/dataview/dataview.cpp
non-pch build fix
[wxWidgets.git] / samples / dataview / dataview.cpp
index 4b8f7a5473acee573563be036b51a493373d7db7..96477f0ae46ee194c011f0262a40942430e3e284 100644 (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;