]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dataview.h
rename wxRendererNative::DrawRadioButton() to DrawOptionButton() to avoid conflict...
[wxWidgets.git] / include / wx / dataview.h
index 17d6f3e092ec29f5fda0131457f51a0e17409026..a4213bd6d197ab71ea7593beb9a5ce0224d8a621 100644 (file)
 
 #if wxUSE_DATAVIEWCTRL
 
-#include "wx/control.h"
 #include "wx/textctrl.h"
 #include "wx/headercol.h"
 #include "wx/variant.h"
 #include "wx/dynarray.h"
 #include "wx/icon.h"
-#include "wx/imaglist.h"
 #include "wx/weakref.h"
 #include "wx/vector.h"
+#include "wx/dataobj.h"
+
+class WXDLLIMPEXP_FWD_CORE wxImageList;
 
 #if !(defined(__WXGTK20__) || defined(__WXMAC__)) || defined(__WXUNIVERSAL__)
 // #if !(defined(__WXMAC__)) || defined(__WXUNIVERSAL__)
     #define wxHAS_GENERIC_DATAVIEWCTRL
 #endif
 
-class WXDLLIMPEXP_FWD_CORE wxDataFormat;
-
 // ----------------------------------------------------------------------------
 // wxDataViewCtrl flags
 // ----------------------------------------------------------------------------
@@ -713,8 +712,9 @@ public:
                                 const wxDataViewColumn *column = NULL ) = 0;
     virtual void HitTest( const wxPoint & point, wxDataViewItem &item, wxDataViewColumn* &column ) const = 0;
     virtual wxRect GetItemRect( const wxDataViewItem & item, const wxDataViewColumn *column = NULL ) const = 0;
-    
+
     virtual bool EnableDragSource( const wxDataFormat &format );
+    virtual bool EnableDropTarget( const wxDataFormat &format );
 
 protected:
     virtual void DoSetExpanderColumn() = 0 ;
@@ -744,7 +744,9 @@ public:
         m_value(wxNullVariant),
         m_column(NULL),
         m_pos(-1,-1),
-        m_dataObject(NULL)
+        m_dataObject(NULL),
+        m_dataBuffer(NULL),
+        m_dataSize(0)
         { }
 
     wxDataViewEvent(const wxDataViewEvent& event)
@@ -755,7 +757,10 @@ public:
         m_value(event.m_value),
         m_column(event.m_column),
         m_pos(m_pos),
-        m_dataObject(event.m_dataObject)
+        m_dataObject(event.m_dataObject),
+        m_dataFormat(event.m_dataFormat),
+        m_dataBuffer(event.m_dataBuffer),
+        m_dataSize(event.m_dataSize)
         { }
 
     wxDataViewItem GetItem() const { return m_item; }
@@ -778,9 +783,17 @@ public:
     wxPoint GetPosition() const { return m_pos; }
     void SetPosition( int x, int y ) { m_pos.x = x; m_pos.y = y; }
 
-    // For DnD operations
+    // For drag operations
     void SetDataObject( wxDataObject *obj ) { m_dataObject = obj; }
-    wxDataObject *GetDataObject() { return m_dataObject; }
+    wxDataObject *GetDataObject() const { return m_dataObject; }
+
+    // For drop operations
+    void SetDataFormat( const wxDataFormat &format ) { m_dataFormat = format; }
+    wxDataFormat GetDataFormat() const { return m_dataFormat; }
+    void SetDataSize( size_t size ) { m_dataSize = size; }
+    size_t GetDataSize() const { return m_dataSize; }
+    void SetDataBuffer( void* buf ) { m_dataBuffer = buf;}
+    void *GetDataBuffer() const { return m_dataBuffer; }
 
     virtual wxEvent *Clone() const { return new wxDataViewEvent(*this); }
 
@@ -791,8 +804,13 @@ protected:
     wxVariant           m_value;
     wxDataViewColumn   *m_column;
     wxPoint             m_pos;
+
     wxDataObject       *m_dataObject;
 
+    wxDataFormat        m_dataFormat;
+    void*               m_dataBuffer;
+    size_t              m_dataSize;
+
 private:
     DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDataViewEvent)
 };
@@ -816,6 +834,8 @@ wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED,
 wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED, wxDataViewEvent )
 
 wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG, wxDataViewEvent )
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, wxDataViewEvent )
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_COMMAND_DATAVIEW_ITEM_DROP, wxDataViewEvent )
 
 typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&);
 
@@ -844,6 +864,8 @@ typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&);
 #define EVT_DATAVIEW_COLUMN_REORDERED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_REORDERED, id, fn)
 
 #define EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_BEGIN_DRAG, id, fn)
+#define EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_DROP_POSSIBLE, id, fn)
+#define EVT_DATAVIEW_ITEM_DROP(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_DROP, id, fn)
 
 #ifdef wxHAS_GENERIC_DATAVIEWCTRL
     // this symbol doesn't follow the convention for wxUSE_XXX symbols which
@@ -931,9 +953,9 @@ public:
         { if (m_data) delete m_data; m_data = data; }
     wxClientData *GetData() const
         { return m_data; }
-        
+
     wxVector<wxVariant>  m_values;
-    
+
 private:
     wxClientData    *m_data;
 };
@@ -948,7 +970,7 @@ public:
     void PrependColumn( const wxString &varianttype );
     void InsertColumn( unsigned int pos, const wxString &varianttype );
     void AppendColumn( const wxString &varianttype );
-    
+
     void AppendItem( const wxVector<wxVariant> &values, wxClientData *data = NULL );
     void PrependItem( const wxVector<wxVariant> &values, wxClientData *data = NULL );
     void InsertItem(  unsigned int row, const wxVector<wxVariant> &values, wxClientData *data = NULL );
@@ -967,7 +989,7 @@ public:
     virtual bool SetValueByRow( const wxVariant &value,
                            unsigned int row, unsigned int col );
 
-    
+
 public:
     wxVector<wxDataViewListStoreLine*> m_data;
     wxArrayString                      m_cols;
@@ -998,7 +1020,7 @@ public:
     bool AppendColumn( wxDataViewColumn *column, const wxString &varianttype );
     bool PrependColumn( wxDataViewColumn *column, const wxString &varianttype );
     bool InsertColumn( unsigned int pos, wxDataViewColumn *column, const wxString &varianttype );
-                    
+
     // overridden from base class
     virtual bool PrependColumn( wxDataViewColumn *col );
     virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col );