+
+/**
+ @class wxDataViewIconText
+
+ wxDataViewIconText is used by wxDataViewIconTextRenderer for data transfer.
+ This class can be converted to and from a wxVariant.
+
+ @library{wxadv}
+ @category{dvc}
+*/
+class wxDataViewIconText : public wxObject
+{
+public:
+ //@{
+ /**
+ Constructor.
+ */
+ wxDataViewIconText(const wxString& text = wxEmptyString,
+ const wxIcon& icon = wxNullIcon);
+ wxDataViewIconText(const wxDataViewIconText& other);
+ //@}
+
+ /**
+ Gets the icon.
+ */
+ const wxIcon& GetIcon() const;
+
+ /**
+ Gets the text.
+ */
+ wxString GetText() const;
+
+ /**
+ Set the icon.
+ */
+ void SetIcon(const wxIcon& icon);
+
+ /**
+ Set the text.
+ */
+ void SetText(const wxString& text);
+};
+
+
+
+/**
+ @class wxDataViewEvent
+
+ This is the event class for the wxDataViewCtrl notifications.
+
+ @beginEventTable{wxDataViewEvent}
+ @event{EVT_DATAVIEW_SELECTION_CHANGED(id, func)}
+ Process a @c wxEVT_DATAVIEW_SELECTION_CHANGED event.
+ @event{EVT_DATAVIEW_ITEM_ACTIVATED(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_ACTIVATED event.
+ @event{EVT_DATAVIEW_ITEM_EDITING_STARTED(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_EDITING_STARTED event.
+ @event{EVT_DATAVIEW_ITEM_EDITING_DONE(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_EDITING_DONE event.
+ @event{EVT_DATAVIEW_ITEM_COLLAPSING(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_COLLAPSING event.
+ @event{EVT_DATAVIEW_ITEM_COLLAPSED(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_COLLAPSED event.
+ @event{EVT_DATAVIEW_ITEM_EXPANDING(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_EXPANDING event.
+ @event{EVT_DATAVIEW_ITEM_EXPANDED(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_EXPANDED event.
+ @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_VALUE_CHANGED event.
+ @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_CONTEXT_MENU event.
+ @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)}
+ Process a @c wxEVT_DATAVIEW_COLUMN_HEADER_CLICK event.
+ @event{EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, func)}
+ Process a @c wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK event.
+ @event{EVT_DATAVIEW_COLUMN_SORTED(id, func)}
+ Process a @c wxEVT_DATAVIEW_COLUMN_SORTED event.
+ @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)}
+ Process a @c wxEVT_DATAVIEW_COLUMN_REORDERED event.
+ Currently this even is only generated when using the native OSX
+ version.
+ @event{EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_BEGIN_DRAG event.
+ @event{EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE event.
+ @event{EVT_DATAVIEW_ITEM_DROP(id, func)}
+ Process a @c wxEVT_DATAVIEW_ITEM_DROP event.
+ @event{EVT_DATAVIEW_CACHE_HINT(id, func)}
+ Process a @c wxEVT_DATAVIEW_CACHE_HINT 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);
+
+ /**
+ Returns the position of the column in the control or -1
+ if no column field was set by the event emitter.
+ */
+ int GetColumn() const;
+
+ /**
+ Returns a pointer to the wxDataViewColumn from which
+ the event was emitted or @NULL.
+ */
+ wxDataViewColumn* GetDataViewColumn() const;
+
+ /**
+ Returns the wxDataViewModel associated with the event.
+ */
+ wxDataViewModel* GetModel() const;
+
+ /**
+ Returns the position of a context menu event in screen coordinates.
+ */
+ wxPoint GetPosition() const;
+
+ /**
+ Returns a reference to a value.
+ */
+ const wxVariant& GetValue() const;
+
+ /**
+ Can be used to determine whether the new value is going to be accepted
+ in wxEVT_DATAVIEW_ITEM_EDITING_DONE handler.
+
+ Returns @true if editing the item was cancelled or if the user tried to
+ enter an invalid value (refused by wxDataViewRenderer::Validate()). If
+ this method returns @false, it means that the value in the model is
+ about to be changed to the new one.
+
+ Notice that wxEVT_DATAVIEW_ITEM_EDITING_DONE event handler can
+ call wxNotifyEvent::Veto() to prevent this from happening.
+
+ Currently support for setting this field and for vetoing the change is
+ only available in the generic version of wxDataViewCtrl, i.e. under MSW
+ but not GTK nor OS X.
+
+ @since 2.9.3
+ */
+ bool IsEditCancelled() const;
+
+ /**
+ Sets the column index associated with this event.
+ */
+ void SetColumn(int col);
+
+ /**
+ For @c wxEVT_DATAVIEW_COLUMN_HEADER_CLICK only.
+ */
+ void SetDataViewColumn(wxDataViewColumn* col);
+
+ /**
+ Sets the dataview model associated with this event.
+ */
+ void SetModel(wxDataViewModel* model);
+
+ /**
+ 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 );
+
+ /**
+ Gets the wxDataFormat during a drop operation.
+ */
+ wxDataFormat GetDataFormat() const;
+
+ /**
+ Gets the data size for a drop data transfer.
+ */
+ size_t GetDataSize() const;
+
+ /**
+ Gets the data buffer for a drop data transfer.
+ */
+ void *GetDataBuffer() const;
+
+ /**
+ Specify the kind of the drag operation to perform.
+
+ This method can be used inside a wxEVT_DATAVIEW_ITEM_BEGIN_DRAG
+ handler in order to configure the drag operation. Valid values are
+ ::wxDrag_CopyOnly (default), ::wxDrag_AllowMove (allow the data to be
+ moved) and ::wxDrag_DefaultMove.
+
+ Currently it is only honoured by the generic version of wxDataViewCtrl
+ (used e.g. under MSW) and not supported by the native GTK and OS X
+ versions.
+
+ @see GetDropEffect()
+
+ @since 2.9.4
+ */
+ void SetDragFlags(int flags);
+
+ /**
+ Returns the effect the user requested to happen to the dropped data.
+
+ This function can be used inside
+ wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE and
+ wxEVT_DATAVIEW_ITEM_DROP handlers and returns whether the user
+ is trying to copy (the return value is ::wxDragCopy) or move (if the
+ return value is ::wxDragMove) the data.
+
+ Currently this is only available when using the generic version of
+ wxDataViewCtrl (used e.g. under MSW) and always returns ::wxDragNone in
+ the GTK and OS X native versions.
+
+ @since 2.9.4
+ */
+ wxDragResult GetDropEffect() const;
+
+ /**
+ Return the first row that will be displayed.
+ */
+ int GetCacheFrom() const;
+
+ /**
+ Return the last row that will be displayed.
+ */
+ int GetCacheTo() const;
+
+
+
+
+ wxDataViewItem GetItem() const;
+ void SetItem( const wxDataViewItem &item );
+ void SetEditCanceled(bool editCancelled);
+ void SetPosition( int x, int y );
+ void SetCache(int from, int to);
+ wxDataObject *GetDataObject() const;
+ void SetDataFormat( const wxDataFormat &format );
+ void SetDataSize( size_t size );
+ void SetDataBuffer( void* buf );
+ int GetDragFlags() const;
+ void SetDropEffect( wxDragResult effect );
+
+};
+