X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/591cc82deb5bc6dd0af6047ecfa7ce7cf4f8d859..058f225a44d83d42ba9d773efc705badbf0e5e3c:/include/wx/dataview.h diff --git a/include/wx/dataview.h b/include/wx/dataview.h index 17d6f3e092..a4213bd6d1 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -16,23 +16,22 @@ #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 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 &values, wxClientData *data = NULL ); void PrependItem( const wxVector &values, wxClientData *data = NULL ); void InsertItem( unsigned int row, const wxVector &values, wxClientData *data = NULL ); @@ -967,7 +989,7 @@ public: virtual bool SetValueByRow( const wxVariant &value, unsigned int row, unsigned int col ); - + public: wxVector 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 );