X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8eff6c56f09d20b1f18ee842efa16864d43ba930..97d13342cc2ac77e21c38115cc6ebecac930f92a:/interface/wx/dataview.h diff --git a/interface/wx/dataview.h b/interface/wx/dataview.h index 91af033806..79db099c1f 100644 --- a/interface/wx/dataview.h +++ b/interface/wx/dataview.h @@ -58,7 +58,8 @@ to the data in the list model. Currently wxWidgets provides the following models apart from the base model: - wxDataViewIndexListModel, wxDataViewVirtualListModel, wxDataViewTreeStore. + wxDataViewIndexListModel, wxDataViewVirtualListModel, wxDataViewTreeStore, + wxDataViewListStore. Note that wxDataViewModel is reference counted, derives from wxObjectRefData and cannot be deleted directly as it can be shared by several wxDataViewCtrls. @@ -66,14 +67,14 @@ associating the model with a control like this: @code - wxDataViewCtrl *musicCtrl = new wxDataViewCtrl( this, ID_MUSIC_CTRL ); + wxDataViewCtrl *musicCtrl = new wxDataViewCtrl( this, wxID_ANY ); wxDataViewModel *musicModel = new MyMusicModel; - m_musicCtrl-AssociateModel( musicModel ); - musicModel-DecRef(); // avoid memory leak !! + m_musicCtrl->AssociateModel( musicModel ); + musicModel->DecRef(); // avoid memory leak !! + // add columns now @endcode - @library{wxadv} @category{dvc} */ @@ -106,7 +107,7 @@ public: virtual int Compare(const wxDataViewItem& item1, const wxDataViewItem& item2, unsigned int column, - bool ascending); + bool ascending) const; /** Override this to indicate that the item has special font attributes. @@ -484,8 +485,12 @@ public: wxDataViewCtrl is a control to display data either in a tree like fashion or in a tabular form or both. + If you only need to display a simple tree structure with an API more like the older wxTreeCtrl class, then the specialized wxDataViewTreeCtrl can be used. + Likewise, if you only want to display simple table structure you can use + the specialized wxDataViewListCtrl class. Both wxDataViewTreeCtrl and + wxDataViewListCtrl can be used without defining your own wxDataViewModel. A wxDataViewItem is used to represent a (visible) item in the control. @@ -517,38 +522,48 @@ public: Display fine rules between columns is supported. @style{wxDV_VARIABLE_LINE_HEIGHT} Allow variable line heights. - This can be inefficient when displaying large number of items. + This can be inefficient when displaying large number of items. @endStyleTable - @beginEventTable{wxDataViewEvent} + @beginEventEmissionTable{wxDataViewEvent} @event{EVT_DATAVIEW_SELECTION_CHANGED(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event. + Process a @c wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event. @event{EVT_DATAVIEW_ITEM_ACTIVATED(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event. + @event{EVT_DATAVIEW_ITEM_START_EDITING(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED event. This + event can be vetoed in order to prevent editing on an item by item + basis. Still experimental. @event{EVT_DATAVIEW_ITEM_EDITING_STARTED(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED event. @event{EVT_DATAVIEW_ITEM_EDITING_DONE(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE event. @event{EVT_DATAVIEW_ITEM_COLLAPSING(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING event. @event{EVT_DATAVIEW_ITEM_COLLAPSED(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED event. @event{EVT_DATAVIEW_ITEM_EXPANDING(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING event. @event{EVT_DATAVIEW_ITEM_EXPANDED(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED event. @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event. @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event. + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event. @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICKED event. + Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICKED event. @event{EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED event. + Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED event. @event{EVT_DATAVIEW_COLUMN_SORTED(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED event. + Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED event. @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)} - Process a wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED event. + Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED event. + @event{EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG event. + @event{EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE event. + @event{EVT_DATAVIEW_ITEM_DROP(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_DROP event. @endEventTable @library{wxadv} @@ -758,6 +773,16 @@ public: */ virtual bool DeleteColumn(wxDataViewColumn* column); + /** + Enable drag operations using the given @a format. + */ + virtual bool EnableDragSource( const wxDataFormat &format ); + + /** + Enable drop operations using the given @a format. + */ + virtual bool EnableDropTarget( const wxDataFormat &format ); + /** Call this to ensure that the given item is visible. */ @@ -1352,7 +1377,7 @@ public: Override this and make it return @true in order to indicate that this renderer supports in-place editing. */ - virtual bool HasEditorCtrl(); + virtual bool HasEditorCtrl() const; /** Overrride this to react to a left click. @@ -1413,6 +1438,7 @@ public: /** The flags used by wxDataViewColumn. + Can be combined together. */ enum wxDataViewColumnFlags { @@ -1434,12 +1460,25 @@ enum wxDataViewColumnFlags @library{wxadv} @category{dvc} */ -class wxDataViewColumn : public wxHeaderColumn +class wxDataViewColumn : public wxSettableHeaderColumn { public: - //@{ /** - Constructors. + Constructs a text column. + + @param title + The title of the column. + @param renderer + The class which will render the contents of this column. + @param model_column + The index of the model's column which is associated with this object. + @param width + The width of the column. + The @c wxDVC_DEFAULT_WIDTH value is the fixed default value. + @param align + The alignment of the column title. + @param flags + One or more flags of the ::wxDataViewColumnFlags enumeration. */ wxDataViewColumn(const wxString& title, wxDataViewRenderer* renderer, @@ -1447,13 +1486,30 @@ public: int width = wxDVC_DEFAULT_WIDTH, wxAlignment align = wxALIGN_CENTER, int flags = wxDATAVIEW_COL_RESIZABLE); + + /** + Constructs a bitmap column. + + @param bitmap + The bitmap of the column. + @param renderer + The class which will render the contents of this column. + @param model_column + The index of the model's column which is associated with this object. + @param width + The width of the column. + The @c wxDVC_DEFAULT_WIDTH value is the fixed default value. + @param align + The alignment of the column title. + @param flags + One or more flags of the ::wxDataViewColumnFlags enumeration. + */ wxDataViewColumn(const wxBitmap& bitmap, wxDataViewRenderer* renderer, unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH, wxAlignment align = wxALIGN_CENTER, int flags = wxDATAVIEW_COL_RESIZABLE); - //@} /** Returns the index of the column of the model, which this @@ -1476,6 +1532,245 @@ public: +/** + @class wxDataViewListCtrl + + This class is a wxDataViewCtrl which internally uses a wxDataViewListStore + and forwards most of its API to that class. + + The purpose of this class is to offer a simple way to display and + edit a small table of data without having to write your own wxDataViewModel. + + @code + wxDataViewListCtrl *listctrl = new wxDataViewListCtrl( parent, wxID_ANY ); + + listctrl->AppendToggleColumn( "Toggle" ); + listctrl->AppendTextColumn( "Text" ); + + wxVector data; + data.push_back( wxVariant(true) ); + data.push_back( wxVariant("row 1") ); + listctrl->AppendItem( data ); + + data.clear(); + data.push_back( wxVariant(false) ); + data.push_back( wxVariant("row 3") ); + listctrl->AppendItem( data ); + @endcode + + @beginStyleTable + See wxDataViewCtrl for the list of supported styles. + @endStyleTable + + @beginEventEmissionTable + See wxDataViewCtrl for the list of events emitted by this class. + @endEventTable + + @library{wxadv} + @category{ctrl,dvc} +*/ +class wxDataViewListCtrl: public wxDataViewCtrl +{ +public: + /** + Default ctor. + */ + wxDataViewListCtrl(); + + /** + Constructor. Calls Create(). + */ + wxDataViewListCtrl( wxWindow *parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxDV_ROW_LINES, + const wxValidator& validator = wxDefaultValidator ); + + /** + Destructor. Deletes the image list if any. + */ + ~wxDataViewListCtrl(); + + /** + Creates the control and a wxDataViewListStore as its internal model. + */ + bool Create( wxWindow *parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxDV_ROW_LINES, + const wxValidator& validator = wxDefaultValidator ); + + //@{ + /** + Returns the store. + */ + wxDataViewListStore *GetStore(); + const wxDataViewListStore *GetStore() const; + //@} + + /** + @name Column management functions + */ + //@{ + + /** + Appends a column to the control and additionally appends a + column to the store with the type string. + */ + virtual void AppendColumn( wxDataViewColumn *column ); + + /** + Appends a column to the control and additionally appends a + column to the list store with the type @a varianttype. + */ + void AppendColumn( wxDataViewColumn *column, const wxString &varianttype ); + + /** + Appends a text column to the control and the store. + + See wxDataViewColumn::wxDataViewColumn for more info about + the parameters. + */ + wxDataViewColumn *AppendTextColumn( const wxString &label, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, + int width = -1, wxAlignment align = wxALIGN_LEFT, + int flags = wxDATAVIEW_COL_RESIZABLE ); + + /** + Appends a toggle column to the control and the store. + + See wxDataViewColumn::wxDataViewColumn for more info about + the parameters. + */ + wxDataViewColumn *AppendToggleColumn( const wxString &label, + wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, + int width = -1, wxAlignment align = wxALIGN_LEFT, + int flags = wxDATAVIEW_COL_RESIZABLE ); + + /** + Appends a progress column to the control and the store. + + See wxDataViewColumn::wxDataViewColumn for more info about + the parameters. + */ + wxDataViewColumn *AppendProgressColumn( const wxString &label, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, + int width = -1, wxAlignment align = wxALIGN_LEFT, + int flags = wxDATAVIEW_COL_RESIZABLE ); + + /** + Appends an icon-and-text column to the control and the store. + + See wxDataViewColumn::wxDataViewColumn for more info about + the parameters. + */ + wxDataViewColumn *AppendIconTextColumn( const wxString &label, + wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, + int width = -1, wxAlignment align = wxALIGN_LEFT, + int flags = wxDATAVIEW_COL_RESIZABLE ); + + /** + Inserts a column to the control and additionally inserts a + column to the store with the type string. + */ + virtual void InsertColumn( unsigned int pos, wxDataViewColumn *column ); + + /** + Inserts a column to the control and additionally inserts a + column to the list store with the type @a varianttype. + */ + void InsertColumn( unsigned int pos, wxDataViewColumn *column, + const wxString &varianttype ); + + /** + Prepends a column to the control and additionally prepends a + column to the store with the type string. + */ + virtual void PrependColumn( wxDataViewColumn *column ); + + /** + Prepends a column to the control and additionally prepends a + column to the list store with the type @a varianttype. + */ + void PrependColumn( wxDataViewColumn *column, const wxString &varianttype ); + + //@} + + + /** + @name Item management functions + */ + //@{ + + /** + Appends an item (=row) to the control and store. + */ + void AppendItem( const wxVector &values, wxClientData *data = NULL ); + + /** + Prepends an item (=row) to the control and store. + */ + void PrependItem( const wxVector &values, wxClientData *data = NULL ); + + /** + Inserts an item (=row) to the control and store. + */ + void InsertItem( unsigned int row, const wxVector &values, wxClientData *data = NULL ); + + /** + Delete the row at position @a row. + */ + void DeleteItem( unsigned row ); + + /** + Delete all items (= all rows). + */ + void DeleteAllItems(); + + /** + Sets the value in the store and update the control. + */ + void SetValue( const wxVariant &value, unsigned int row, unsigned int col ); + + /** + Returns the value from the store. + */ + void GetValue( wxVariant &value, unsigned int row, unsigned int col ); + + /** + Sets the value in the store and update the control. + + This method assumes that the a string is stored in respective + column. + */ + void SetTextValue( const wxString &value, unsigned int row, unsigned int col ); + + /** + Returns the value from the store. + + This method assumes that the a string is stored in respective + column. + */ + wxString GetTextValue( unsigned int row, unsigned int col ) const; + + /** + Sets the value in the store and update the control. + + This method assumes that the a boolean value is stored in + respective column. + */ + void SetToggleValue( bool value, unsigned int row, unsigned int col ); + + /** + Returns the value from the store. + + This method assumes that the a boolean value is stored in + respective column. + */ + bool GetToggleValue( unsigned int row, unsigned int col ) const; + + //@} +}; + + /** @class wxDataViewTreeCtrl @@ -1483,8 +1778,16 @@ public: and forwards most of its API to that class. Additionally, it uses a wxImageList to store a list of icons. - The main purpose of this class is to look like a wxTreeCtrl to make a transition - from it to the wxDataViewCtrl class simpler. + The main purpose of this class is to represent a possible replacement for + wxTreeCtrl. + + @beginStyleTable + See wxDataViewCtrl for the list of supported styles. + @endStyleTable + + @beginEventEmissionTable + See wxDataViewCtrl for the list of events emitted by this class. + @endEventTable @library{wxadv} @category{ctrl,dvc} @@ -1513,7 +1816,7 @@ public: virtual ~wxDataViewTreeCtrl(); /** - @todo docme + Appends a container to the given @a parent. */ wxDataViewItem AppendContainer(const wxDataViewItem& parent, const wxString& text, @@ -1522,7 +1825,7 @@ public: wxClientData* data = NULL); /** - @todo docme + Appends an item to the given @a parent. */ wxDataViewItem AppendItem(const wxDataViewItem& parent, const wxString& text, @@ -1666,17 +1969,137 @@ public: }; +/** + @class wxDataViewListStore + + wxDataViewListStore is a specialised wxDataViewModel for storing + a simple table of data. Since it derives from wxDataViewIndexListModel + its data is be accessed by row (i.e. by index) instead of only + by wxDataViewItem. + + This class actually stores the values (therefore its name) + and implements all virtual methods from the base classes so it can be + used directly without having to derive any class from it, but it is + mostly used from within wxDataViewListCtrl. + + @library{wxadv} + @category{dvc} +*/ + +class wxDataViewListStore: public wxDataViewIndexListModel +{ +public: + /** + Constructor + */ + wxDataViewListStore(); + + /** + Destructor + */ + ~wxDataViewListStore(); + + /** + Prepends a data column. + + @a variantype indicates the type of values store in the column. + + This does not automatically fill in any (default) values in + rows which exist in the store already. + */ + void PrependColumn( const wxString &varianttype ); + + /** + Inserts a data column before @a pos. + + @a variantype indicates the type of values store in the column. + + This does not automatically fill in any (default) values in + rows which exist in the store already. + */ + void InsertColumn( unsigned int pos, const wxString &varianttype ); + + /** + Appends a data column. + + @a variantype indicates the type of values store in the column. + + This does not automatically fill in any (default) values in + rows which exist in the store already. + */ + void AppendColumn( const wxString &varianttype ); + + /** + Appends an item (=row) and fills it with @a values. + + The values must match the values specifies in the column + in number and type. No (default) values are filled in + automatically. + */ + void AppendItem( const wxVector &values, wxClientData *data = NULL ); + + /** + Prepends an item (=row) and fills it with @a values. + + The values must match the values specifies in the column + in number and type. No (default) values are filled in + automatically. + */ + void PrependItem( const wxVector &values, wxClientData *data = NULL ); + + /** + Inserts an item (=row) and fills it with @a values. + + The values must match the values specifies in the column + in number and type. No (default) values are filled in + automatically. + */ + void InsertItem( unsigned int row, const wxVector &values, wxClientData *data = NULL ); + + /** + Delete the item (=row) at position @a pos. + */ + void DeleteItem( unsigned pos ); + + /** + Delete all item (=all rows) in the store. + */ + void DeleteAllItems(); + + /** + Overriden from wxDataViewModel + */ + virtual unsigned int GetColumnCount() const; + + /** + Overriden from wxDataViewModel + */ + virtual wxString GetColumnType( unsigned int col ) const; + + /** + Overriden from wxDataViewIndexListModel + */ + virtual void GetValueByRow( wxVariant &value, + unsigned int row, unsigned int col ) const; + + /** + Overriden from wxDataViewIndexListModel + */ + virtual bool SetValueByRow( const wxVariant &value, + unsigned int row, unsigned int col ); +}; + /** @class wxDataViewTreeStore - wxDataViewTreeStore is a specialised wxDataViewModel for displaying simple + wxDataViewTreeStore is a specialised wxDataViewModel for stroing simple trees very much like wxTreeCtrl does and it offers a similar API. - This class actually stores the entire tree and the values (therefore its name) + This class actually stores the entire tree and the values (therefore its name) and implements all virtual methods from the base class so it can be used directly - without having to derive any class from it. - This comes at the price of much reduced flexibility. + without having to derive any class from it, but it is mostly used from within + wxDataViewTreeCtrl. @library{wxadv} @category{dvc} @@ -1860,20 +2283,54 @@ public: This is the event class for the wxDataViewCtrl notifications. + @beginEventTable{wxDataViewEvent} + @event{EVT_DATAVIEW_SELECTION_CHANGED(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event. + @event{EVT_DATAVIEW_ITEM_ACTIVATED(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event. + @event{EVT_DATAVIEW_ITEM_EDITING_STARTED(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED event. + @event{EVT_DATAVIEW_ITEM_EDITING_DONE(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE event. + @event{EVT_DATAVIEW_ITEM_COLLAPSING(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING event. + @event{EVT_DATAVIEW_ITEM_COLLAPSED(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED event. + @event{EVT_DATAVIEW_ITEM_EXPANDING(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING event. + @event{EVT_DATAVIEW_ITEM_EXPANDED(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED event. + @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event. + @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event. + @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICKED event. + @event{EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED event. + @event{EVT_DATAVIEW_COLUMN_SORTED(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED event. + @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED event. + @event{EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG event. + @event{EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE event. + @event{EVT_DATAVIEW_ITEM_DROP(id, func)} + Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_DROP event. + @endEventTable + @library{wxadv} @category{events,dvc} */ class wxDataViewEvent : public wxNotifyEvent { public: - //@{ /** Constructor. Typically used by wxWidgets internals only. */ wxDataViewEvent(wxEventType commandType = wxEVT_NULL, int winid = 0); - wxDataViewEvent(const wxDataViewEvent& event); - //@} /** Returns the position of the column in the control or -1 @@ -1921,5 +2378,46 @@ public: Sets the value associated with this event. */ void SetValue(const wxVariant& value); + + /** + Set wxDataObject for data transfer within a drag operation. + */ + void SetDataObject( wxDataObject *obj ); + + /** + Used internally. Gets associated wxDataObject for data transfer + within a drag operation. + */ + wxDataObject *GetDataObject() const; + + /** + Used internally. Sets the wxDataFormat during a drop operation. + */ + void SetDataFormat( const wxDataFormat &format ); + + /** + Gets the wxDataFormat during a drop operation. + */ + wxDataFormat GetDataFormat() const; + + /** + Used internally. Sets the data size for a drop data transfer. + */ + void SetDataSize( size_t size ); + + /** + Gets the data size for a drop data transfer. + */ + size_t GetDataSize() const; + + /** + Used internally. Sets the data buffer for a drop data transfer. + */ + void SetDataBuffer( void* buf ); + + /** + Gets the data buffer for a drop data transfer. + */ + void *GetDataBuffer() const; };