]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/dataview.h
Fix html documentation warnings.
[wxWidgets.git] / interface / wx / dataview.h
index a491490c40a5e6f4acd66abc3bb0b2bbdabcaede..81bcd5adfdec70dcd349bf110dd86e5e0cc70426 100644 (file)
@@ -2,7 +2,6 @@
 // Name:        dataview.h
 // Purpose:     interface of wxDataView* classes
 // Author:      wxWidgets team
 // Name:        dataview.h
 // Purpose:     interface of wxDataView* classes
 // Author:      wxWidgets team
-// RCS-ID:      $Id$
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -259,7 +258,7 @@ public:
     bool HasValue(const wxDataViewItem& item, unsigned col) const;
 
     /**
     bool HasValue(const wxDataViewItem& item, unsigned col) const;
 
     /**
-        Override this to indicate of @a item is a container, i.e. if
+        Override this to indicate of @a item is a container, i.e.\ if
         it can have child items.
     */
     virtual bool IsContainer(const wxDataViewItem& item) const = 0;
         it can have child items.
     */
     virtual bool IsContainer(const wxDataViewItem& item) const = 0;
@@ -340,6 +339,10 @@ public:
     virtual bool ValueChanged(const wxDataViewItem& item,
                               unsigned int col);
 
     virtual bool ValueChanged(const wxDataViewItem& item,
                               unsigned int col);
 
+    
+    virtual bool IsListModel() const;
+    virtual bool IsVirtualListModel() const;
+
 protected:
 
     /**
 protected:
 
     /**
@@ -366,7 +369,7 @@ public:
     /**
         Destructor.
     */
     /**
         Destructor.
     */
-    virtual ~wxDataViewIndexListModel();
+    virtual ~wxDataViewListModel();
 
     /**
         Compare method that sorts the items by their index.
 
     /**
         Compare method that sorts the items by their index.
@@ -420,23 +423,58 @@ public:
     /**
         Returns the number of items (or rows) in the list.
     */
     /**
         Returns the number of items (or rows) in the list.
     */
-    unsigned int GetCount() const;
-
-    /**
-        Returns the wxDataViewItem at the given @e row.
-    */
-    wxDataViewItem GetItem(unsigned int row) const;
+    unsigned int GetCount() const = 0;
 
     /**
         Returns the position of given @e item.
     */
 
     /**
         Returns the position of given @e item.
     */
-    unsigned int GetRow(const wxDataViewItem& item) const;
+    unsigned int GetRow(const wxDataViewItem& item) const = 0;
 
     /**
         Override this to allow getting values from the model.
     */
     virtual void GetValueByRow(wxVariant& variant, unsigned int row,
 
     /**
         Override this to allow getting values from the model.
     */
     virtual void GetValueByRow(wxVariant& variant, unsigned int row,
-                          unsigned int col) const = 0;
+                               unsigned int col) const = 0;
+
+    /**
+        Called in order to set a value in the model.
+    */
+    virtual bool SetValueByRow(const wxVariant& variant, unsigned int row,
+                               unsigned int col) = 0;
+};
+
+
+/**
+    @class wxDataViewIndexListModel
+
+    wxDataViewIndexListModel is a specialized data model which lets you address
+    an item by its position (row) rather than its wxDataViewItem (which you can
+    obtain from this class).
+    This model also provides its own wxDataViewIndexListModel::Compare
+    method which sorts the model's data by the index.
+
+    This model is not a virtual model since the control stores each wxDataViewItem.
+    Use wxDataViewVirtualListModel if you need to display millions of items or
+    have other reason to use a virtual control.
+
+    @see wxDataViewListModel for the API.
+    
+    @library{wxadv}
+    @category{dvc}
+*/
+
+class wxDataViewIndexListModel : public wxDataViewListModel
+{
+public:
+    /**
+        Constructor.
+    */
+    wxDataViewIndexListModel(unsigned int initial_size = 0);
+
+    /**
+       Returns the wxDataViewItem at the given @e row.
+    */
+    wxDataViewItem GetItem(unsigned int row) const;
 
     /**
         Call this after if the data has to be read again from the model.
 
     /**
         Call this after if the data has to be read again from the model.
@@ -482,41 +520,6 @@ public:
     */
     void RowsDeleted(const wxArrayInt& rows);
 
     */
     void RowsDeleted(const wxArrayInt& rows);
 
-    /**
-        Called in order to set a value in the model.
-    */
-    virtual bool SetValueByRow(const wxVariant& variant, unsigned int row,
-                          unsigned int col) = 0;
-};
-
-
-/**
-    @class wxDataViewIndexListModel
-
-    wxDataViewIndexListModel is a specialized data model which lets you address
-    an item by its position (row) rather than its wxDataViewItem (which you can
-    obtain from this class).
-    This model also provides its own wxDataViewIndexListModel::Compare
-    method which sorts the model's data by the index.
-
-    This model is not a virtual model since the control stores each wxDataViewItem.
-    Use wxDataViewVirtualListModel if you need to display millions of items or
-    have other reason to use a virtual control.
-
-    @see wxDataViewListModel for the API.
-    
-    @library{wxadv}
-    @category{dvc}
-*/
-
-class wxDataViewIndexListModel : public wxDataViewListModel
-{
-public:
-    /**
-        Constructor.
-    */
-    wxDataViewIndexListModel(unsigned int initial_size = 0);
-
 };
 
 /**
 };
 
 /**
@@ -543,6 +546,55 @@ public:
     */
     wxDataViewVirtualListModel(unsigned int initial_size = 0);
 
     */
     wxDataViewVirtualListModel(unsigned int initial_size = 0);
 
+    /**
+       Returns the wxDataViewItem at the given @e row.
+    */
+    wxDataViewItem GetItem(unsigned int row) const;
+
+    /**
+        Call this after if the data has to be read again from the model.
+        This is useful after major changes when calling the methods below
+        (possibly thousands of times) doesn't make sense.
+    */
+    void Reset(unsigned int new_size);
+
+    /**
+        Call this after a row has been appended to the model.
+    */
+    void RowAppended();
+
+    /**
+        Call this after a row has been changed.
+    */
+    void RowChanged(unsigned int row);
+
+    /**
+        Call this after a row has been deleted.
+    */
+    void RowDeleted(unsigned int row);
+
+    /**
+        Call this after a row has been inserted at the given position.
+    */
+    void RowInserted(unsigned int before);
+
+    /**
+        Call this after a row has been prepended to the model.
+    */
+    void RowPrepended();
+
+    /**
+        Call this after a value has been changed.
+    */
+    void RowValueChanged(unsigned int row, unsigned int col);
+
+    /**
+        Call this after rows have been deleted.
+        The array will internally get copied and sorted in descending order so
+        that the rows with the highest position will be deleted first.
+    */
+    void RowsDeleted(const wxArrayInt& rows);
+
 };
 
 
 };
 
 
@@ -591,6 +643,52 @@ public:
         Call this to indicate that the item shall be displayed in italic text.
     */
     void SetItalic(bool set);
         Call this to indicate that the item shall be displayed in italic text.
     */
     void SetItalic(bool set);
+
+
+    /**
+       Returns true if the colour property has been set.
+    */
+    bool HasColour() const;
+
+    /**
+       Returns this attribute's colour.
+    */
+    const wxColour& GetColour() const;
+
+    /**
+       Returns true if any property affecting the font has been set.
+    */
+    bool HasFont() const;
+
+    /**
+       Returns value of the bold property.
+    */
+    bool GetBold() const;
+
+    /**
+       Returns value of the italics property.
+    */
+    bool GetItalic() const;
+
+    /**
+       Returns true if the background colour property has been set.
+    */
+    bool HasBackgroundColour() const;
+
+    /**
+       Returns the colour to be used for the background.
+    */
+    const wxColour& GetBackgroundColour() const;
+
+    /**
+       Returns true if none of the properties have been set.
+    */
+    bool IsDefault() const;
+
+    /**
+       Return the font based on the given one with this attribute applied to it.
+    */
+    wxFont GetEffectiveFont(const wxFont& font) const;
 };
 
 
 };
 
 
@@ -670,29 +768,29 @@ public:
 
 // events
 
 
 // events
 
-wxEventType wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED;
+wxEventType wxEVT_DATAVIEW_SELECTION_CHANGED;
 
 
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED;
+wxEventType wxEVT_DATAVIEW_ITEM_ACTIVATED;
+wxEventType wxEVT_DATAVIEW_ITEM_COLLAPSING;
+wxEventType wxEVT_DATAVIEW_ITEM_COLLAPSED;
+wxEventType wxEVT_DATAVIEW_ITEM_EXPANDING;
+wxEventType wxEVT_DATAVIEW_ITEM_EXPANDED;
+wxEventType wxEVT_DATAVIEW_ITEM_START_EDITING;
+wxEventType wxEVT_DATAVIEW_ITEM_EDITING_STARTED;
+wxEventType wxEVT_DATAVIEW_ITEM_EDITING_DONE;
+wxEventType wxEVT_DATAVIEW_ITEM_VALUE_CHANGED;
 
 
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU;
+wxEventType wxEVT_DATAVIEW_ITEM_CONTEXT_MENU;
 
 
-wxEventType wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK;
-wxEventType wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK;
-wxEventType wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED;
-wxEventType wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED;
-wxEventType wxEVT_COMMAND_DATAVIEW_CACHE_HINT;
+wxEventType wxEVT_DATAVIEW_COLUMN_HEADER_CLICK;
+wxEventType wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK;
+wxEventType wxEVT_DATAVIEW_COLUMN_SORTED;
+wxEventType wxEVT_DATAVIEW_COLUMN_REORDERED;
+wxEventType wxEVT_DATAVIEW_CACHE_HINT;
 
 
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE;
-wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_DROP;
+wxEventType wxEVT_DATAVIEW_ITEM_BEGIN_DRAG;
+wxEventType wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE;
+wxEventType wxEVT_DATAVIEW_ITEM_DROP;
 
 /**
     @class wxDataViewCtrl
 
 /**
     @class wxDataViewCtrl
@@ -733,9 +831,9 @@ wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_DROP;
            Currently only supported by the native GTK and OS X implementations
            but not by the generic one.
     @style{wxDV_HORIZ_RULES}
            Currently only supported by the native GTK and OS X implementations
            but not by the generic one.
     @style{wxDV_HORIZ_RULES}
-           Display fine rules between row if supported.
+           Display the separator lines between rows.
     @style{wxDV_VERT_RULES}
     @style{wxDV_VERT_RULES}
-           Display fine rules between columns is supported.
+           Display the separator lines between columns.
     @style{wxDV_VARIABLE_LINE_HEIGHT}
            Allow variable line heights.
            This can be inefficient when displaying large number of items.
     @style{wxDV_VARIABLE_LINE_HEIGHT}
            Allow variable line heights.
            This can be inefficient when displaying large number of items.
@@ -745,49 +843,51 @@ wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_DROP;
 
     @beginEventEmissionTable{wxDataViewEvent}
     @event{EVT_DATAVIEW_SELECTION_CHANGED(id, func)}
 
     @beginEventEmissionTable{wxDataViewEvent}
     @event{EVT_DATAVIEW_SELECTION_CHANGED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event.
+           Process a @c wxEVT_DATAVIEW_SELECTION_CHANGED event.
     @event{EVT_DATAVIEW_ITEM_ACTIVATED(id, func)}
     @event{EVT_DATAVIEW_ITEM_ACTIVATED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event. This event
+           Process a @c wxEVT_DATAVIEW_ITEM_ACTIVATED event. This event
            is triggered by double clicking an item or pressing some special key
            (usually "Enter") when it is focused.
     @event{EVT_DATAVIEW_ITEM_START_EDITING(id, func)}
            is triggered by double clicking an item or pressing some special key
            (usually "Enter") when it is focused.
     @event{EVT_DATAVIEW_ITEM_START_EDITING(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING event. This
+           Process a @c wxEVT_DATAVIEW_ITEM_START_EDITING event. This
            event can be vetoed in order to prevent editing on an item by item
            basis.
     @event{EVT_DATAVIEW_ITEM_EDITING_STARTED(id, func)}
            event can be vetoed in order to prevent editing on an item by item
            basis.
     @event{EVT_DATAVIEW_ITEM_EDITING_STARTED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_EDITING_STARTED event.
     @event{EVT_DATAVIEW_ITEM_EDITING_DONE(id, func)}
     @event{EVT_DATAVIEW_ITEM_EDITING_DONE(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE event.
+           Process a @c wxEVT_DATAVIEW_ITEM_EDITING_DONE event.
     @event{EVT_DATAVIEW_ITEM_COLLAPSING(id, func)}
     @event{EVT_DATAVIEW_ITEM_COLLAPSING(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING event.
+           Process a @c wxEVT_DATAVIEW_ITEM_COLLAPSING event.
     @event{EVT_DATAVIEW_ITEM_COLLAPSED(id, func)}
     @event{EVT_DATAVIEW_ITEM_COLLAPSED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_COLLAPSED event.
     @event{EVT_DATAVIEW_ITEM_EXPANDING(id, func)}
     @event{EVT_DATAVIEW_ITEM_EXPANDING(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING event.
+           Process a @c wxEVT_DATAVIEW_ITEM_EXPANDING event.
     @event{EVT_DATAVIEW_ITEM_EXPANDED(id, func)}
     @event{EVT_DATAVIEW_ITEM_EXPANDED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_EXPANDED event.
     @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)}
     @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_VALUE_CHANGED event.
     @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)}
     @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event
+           Process a @c wxEVT_DATAVIEW_ITEM_CONTEXT_MENU event
            generated when the user right clicks inside the control. Notice that
            this menu is generated even if the click didn't occur on any valid
            item, in this case wxDataViewEvent::GetItem() simply returns an
            invalid item.
     @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)}
            generated when the user right clicks inside the control. Notice that
            this menu is generated even if the click didn't occur on any valid
            item, in this case wxDataViewEvent::GetItem() simply returns an
            invalid item.
     @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK event.
+           Process a @c wxEVT_DATAVIEW_COLUMN_HEADER_CLICK event.
     @event{EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, func)}
     @event{EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED event.
+           Process a @c wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK event.
+           Notice that currently this event is not generated in the native OS X
+           versions of the control.
     @event{EVT_DATAVIEW_COLUMN_SORTED(id, func)}
     @event{EVT_DATAVIEW_COLUMN_SORTED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED event.
+           Process a @c wxEVT_DATAVIEW_COLUMN_SORTED event.
     @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)}
     @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED event.
+           Process a @c wxEVT_DATAVIEW_COLUMN_REORDERED event.
     @event{EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, func)}
     @event{EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG event.
+           Process a @c wxEVT_DATAVIEW_ITEM_BEGIN_DRAG event.
     @event{EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, func)}
     @event{EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE event.
+           Process a @c wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE event.
     @event{EVT_DATAVIEW_ITEM_DROP(id, func)}
     @event{EVT_DATAVIEW_ITEM_DROP(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_DROP event.
+           Process a @c wxEVT_DATAVIEW_ITEM_DROP event.
     @endEventTable
 
     Notice that this control doesn't allow to process generic mouse events such
     @endEventTable
 
     Notice that this control doesn't allow to process generic mouse events such
@@ -797,7 +897,7 @@ wxEventType wxEVT_COMMAND_DATAVIEW_ITEM_DROP;
 
     @library{wxadv}
     @category{ctrl,dvc}
 
     @library{wxadv}
     @category{ctrl,dvc}
-    @appearance{dataviewctrl.png}
+    @appearance{dataviewctrl}
 */
 class wxDataViewCtrl : public wxControl
 {
 */
 class wxDataViewCtrl : public wxControl
 {
@@ -822,6 +922,16 @@ public:
     */
     virtual ~wxDataViewCtrl();
 
     */
     virtual ~wxDataViewCtrl();
 
+    /**
+        Create the control. Useful for two step creation.
+    */
+    bool Create(wxWindow* parent, wxWindowID id,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxDataViewCtrlNameStr);
+
     /**
         Appends a wxDataViewColumn to the control. Returns @true on success.
 
     /**
         Appends a wxDataViewColumn to the control. Returns @true on success.
 
@@ -862,6 +972,25 @@ public:
                                          int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
                                          int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
+    //@{
+    /**
+        Prepends a column for rendering a bitmap. Returns the wxDataViewColumn
+        created in the function or @NULL on failure.
+    */
+    wxDataViewColumn* PrependBitmapColumn(const wxString& label,
+                                         unsigned int model_column,
+                                         wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                         int width = -1,
+                                         wxAlignment align = wxALIGN_CENTER,
+                                         int flags = wxDATAVIEW_COL_RESIZABLE);
+    wxDataViewColumn* PrependBitmapColumn(const wxBitmap& label,
+                                         unsigned int model_column,
+                                         wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                         int width = -1,
+                                         wxAlignment align = wxALIGN_CENTER,
+                                         int flags = wxDATAVIEW_COL_RESIZABLE);
+    //@}
+
     //@{
     /**
         Appends a column for rendering a date. Returns the wxDataViewColumn
     //@{
     /**
         Appends a column for rendering a date. Returns the wxDataViewColumn
@@ -884,6 +1013,28 @@ public:
                                        int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
                                        int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
+    //@{
+    /**
+        Prepends a column for rendering a date. Returns the wxDataViewColumn
+        created in the function or @NULL on failure.
+
+        @note The @a align parameter is applied to both the column header and
+              the column renderer.
+    */
+    wxDataViewColumn* PrependDateColumn(const wxString& label,
+                                       unsigned int model_column,
+                                       wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE,
+                                       int width = -1,
+                                       wxAlignment align = wxALIGN_NOT,
+                                       int flags = wxDATAVIEW_COL_RESIZABLE);
+    wxDataViewColumn* PrependDateColumn(const wxBitmap& label,
+                                       unsigned int model_column,
+                                       wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE,
+                                       int width = -1,
+                                       wxAlignment align = wxALIGN_NOT,
+                                       int flags = wxDATAVIEW_COL_RESIZABLE);
+    //@}
+
     //@{
     /**
         Appends a column for rendering text with an icon. Returns the wxDataViewColumn
     //@{
     /**
         Appends a column for rendering text with an icon. Returns the wxDataViewColumn
@@ -907,6 +1058,29 @@ public:
                                            int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
                                            int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
+    //@{
+    /**
+        Prepends a column for rendering text with an icon. Returns the wxDataViewColumn
+        created in the function or @NULL on failure.
+        This method uses the wxDataViewIconTextRenderer class.
+
+        @note The @a align parameter is applied to both the column header and
+              the column renderer.
+    */
+    wxDataViewColumn* PrependIconTextColumn(const wxString& label,
+                                           unsigned int model_column,
+                                           wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                           int width = -1,
+                                           wxAlignment align = wxALIGN_NOT,
+                                           int flags = wxDATAVIEW_COL_RESIZABLE);
+    wxDataViewColumn* PrependIconTextColumn(const wxBitmap& label,
+                                           unsigned int model_column,
+                                           wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                           int width = -1,
+                                           wxAlignment align = wxALIGN_NOT,
+                                           int flags = wxDATAVIEW_COL_RESIZABLE);
+    //@}
+
     //@{
     /**
         Appends a column for rendering a progress indicator. Returns the
     //@{
     /**
         Appends a column for rendering a progress indicator. Returns the
@@ -929,6 +1103,28 @@ public:
                                            int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
                                            int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
+    //@{
+    /**
+        Prepends a column for rendering a progress indicator. Returns the
+        wxDataViewColumn created in the function or @NULL on failure.
+
+        @note The @a align parameter is applied to both the column header and
+              the column renderer.
+    */
+    wxDataViewColumn* PrependProgressColumn(const wxString& label,
+                                           unsigned int model_column,
+                                           wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                           int width = 80,
+                                           wxAlignment align = wxALIGN_CENTER,
+                                           int flags = wxDATAVIEW_COL_RESIZABLE);
+    wxDataViewColumn* PrependProgressColumn(const wxBitmap& label,
+                                           unsigned int model_column,
+                                           wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                           int width = 80,
+                                           wxAlignment align = wxALIGN_CENTER,
+                                           int flags = wxDATAVIEW_COL_RESIZABLE);
+    //@}
+
     //@{
     /**
         Appends a column for rendering text. Returns the wxDataViewColumn
     //@{
     /**
         Appends a column for rendering text. Returns the wxDataViewColumn
@@ -951,6 +1147,28 @@ public:
                                        int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
                                        int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
+    //@{
+    /**
+        Prepends a column for rendering text. Returns the wxDataViewColumn
+        created in the function or @NULL on failure.
+
+        @note The @a align parameter is applied to both the column header and
+              the column renderer.
+    */
+    wxDataViewColumn* PrependTextColumn(const wxString& label,
+                                       unsigned int model_column,
+                                       wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                       int width = -1,
+                                       wxAlignment align = wxALIGN_NOT,
+                                       int flags = wxDATAVIEW_COL_RESIZABLE);
+    wxDataViewColumn* PrependTextColumn(const wxBitmap& label,
+                                       unsigned int model_column,
+                                       wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                       int width = -1,
+                                       wxAlignment align = wxALIGN_NOT,
+                                       int flags = wxDATAVIEW_COL_RESIZABLE);
+    //@}
+
     //@{
     /**
         Appends a column for rendering a toggle. Returns the wxDataViewColumn
     //@{
     /**
         Appends a column for rendering a toggle. Returns the wxDataViewColumn
@@ -973,6 +1191,28 @@ public:
                                          int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
                                          int flags = wxDATAVIEW_COL_RESIZABLE);
     //@}
 
+    //@{
+    /**
+        Prepends a column for rendering a toggle. Returns the wxDataViewColumn
+        created in the function or @NULL on failure.
+
+        @note The @a align parameter is applied to both the column header and
+              the column renderer.
+    */
+    wxDataViewColumn* PrependToggleColumn(const wxString& label,
+                                         unsigned int model_column,
+                                         wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                         int width = 30,
+                                         wxAlignment align = wxALIGN_CENTER,
+                                         int flags = wxDATAVIEW_COL_RESIZABLE);
+    wxDataViewColumn* PrependToggleColumn(const wxBitmap& label,
+                                         unsigned int model_column,
+                                         wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
+                                         int width = 30,
+                                         wxAlignment align = wxALIGN_CENTER,
+                                         int flags = wxDATAVIEW_COL_RESIZABLE);
+    //@}
+
     /**
         Associates a wxDataViewModel with the control.
         This increases the reference count of the model by 1.
     /**
         Associates a wxDataViewModel with the control.
         This increases the reference count of the model by 1.
@@ -989,16 +1229,6 @@ public:
     */
     virtual void Collapse(const wxDataViewItem& item);
 
     */
     virtual void Collapse(const wxDataViewItem& item);
 
-    /**
-        Create the control. Useful for two step creation.
-    */
-    bool Create(wxWindow* parent, wxWindowID id,
-                const wxPoint& pos = wxDefaultPosition,
-                const wxSize& size = wxDefaultSize,
-                long style = 0,
-                const wxValidator& validator = wxDefaultValidator,
-                const wxString& name = wxDataViewCtrlNameStr);
-
     /**
         Deletes given column.
     */
     /**
         Deletes given column.
     */
@@ -1404,7 +1634,7 @@ enum wxDataViewCellMode
         mouse click.
 
         @note Do not confuse this with item activation in wxDataViewCtrl
         mouse click.
 
         @note Do not confuse this with item activation in wxDataViewCtrl
-              and the wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event. That one is
+              and the wxEVT_DATAVIEW_ITEM_ACTIVATED event. That one is
               used for activating the item (or, to put it differently, the
               entire row) similarly to analogous messages in wxTreeCtrl and
               wxListCtrl, and the effect differs (play a song, open a file
               used for activating the item (or, to put it differently, the
               entire row) similarly to analogous messages in wxTreeCtrl and
               wxListCtrl, and the effect differs (play a song, open a file
@@ -1458,7 +1688,7 @@ enum wxDataViewCellRenderState
     - wxDataViewSpinRenderer.
     - wxDataViewChoiceRenderer.
 
     - wxDataViewSpinRenderer.
     - wxDataViewChoiceRenderer.
 
-    Additionally, the user can write own renderers by deriving from
+    Additionally, the user can write their own renderers by deriving from
     wxDataViewCustomRenderer.
 
     The ::wxDataViewCellMode and ::wxDataViewCellRenderState flags accepted
     wxDataViewCustomRenderer.
 
     The ::wxDataViewCellMode and ::wxDataViewCellRenderState flags accepted
@@ -1578,6 +1808,21 @@ public:
         editing process finished.
     */
     virtual bool Validate(wxVariant& value);
         editing process finished.
     */
     virtual bool Validate(wxVariant& value);
+
+    
+    virtual bool HasEditorCtrl() const;
+    virtual wxWindow* CreateEditorCtrl(wxWindow * parent,
+                                       wxRect labelRect,
+                                       const wxVariant& value);
+    virtual bool GetValueFromEditorCtrl(wxWindow * editor,
+                                        wxVariant& value);
+    virtual bool StartEditing( const wxDataViewItem &item, wxRect labelRect );
+    virtual void CancelEditing();
+    virtual bool FinishEditing();
+    wxWindow *GetEditorCtrl();
+
+protected:
+    wxDataViewCtrl* GetView() const;
 };
 
 
 };
 
 
@@ -1802,7 +2047,7 @@ public:
     */
     wxDataViewCustomRenderer(const wxString& varianttype = "string",
                              wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
     */
     wxDataViewCustomRenderer(const wxString& varianttype = "string",
                              wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
-                             int align = -1, bool no_init = false);
+                             int align = wxDVR_DEFAULT_ALIGNMENT);
 
     /**
         Destructor.
 
     /**
         Destructor.
@@ -1841,7 +2086,7 @@ public:
         @since 2.9.3
 
         @note Do not confuse this method with item activation in wxDataViewCtrl
         @since 2.9.3
 
         @note Do not confuse this method with item activation in wxDataViewCtrl
-              and the wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event. That one is
+              and the wxEVT_DATAVIEW_ITEM_ACTIVATED event. That one is
               used for activating the item (or, to put it differently, the
               entire row) similarly to analogous messages in wxTreeCtrl and
               wxListCtrl, and the effect differs (play a song, open a file
               used for activating the item (or, to put it differently, the
               entire row) similarly to analogous messages in wxTreeCtrl and
               wxListCtrl, and the effect differs (play a song, open a file
@@ -1933,15 +2178,26 @@ public:
     virtual bool HasEditorCtrl() const;
 
     /**
     virtual bool HasEditorCtrl() const;
 
     /**
-        Override this to react to a left click.
-        This method will only be called in @c wxDATAVIEW_CELL_ACTIVATABLE mode.
+        Override this to react to a left click.  This method will only be
+        called in @c wxDATAVIEW_CELL_ACTIVATABLE mode.  This method is
+        deprecated, please use ActivateCell instead.
     */
     */
-    virtual bool LeftClick( const wxPoint& cursor,
-                            const wxRect& cell,
+    virtual bool LeftClick( wxPoint cursor,
+                            wxRect cell,
                             wxDataViewModel * model,
                             const wxDataViewItem & item,
                             unsigned int col );
 
                             wxDataViewModel * model,
                             const wxDataViewItem & item,
                             unsigned int col );
 
+    /**
+       Override this to react to the activation of a cell.  This method is
+       deprecated, please use ActivateCell instead.
+    */
+    virtual bool Activate(wxRect cell,
+                          wxDataViewModel * model,
+                          const wxDataViewItem & item,
+                          unsigned int col);
+
+
     /**
         Override this to render the cell.
         Before this is called, wxDataViewRenderer::SetValue was called
     /**
         Override this to render the cell.
         Before this is called, wxDataViewRenderer::SetValue was called
@@ -1966,6 +2222,12 @@ public:
                            wxDataViewModel* model,
                            const wxDataViewItem & item,
                            unsigned int col);
                            wxDataViewModel* model,
                            const wxDataViewItem & item,
                            unsigned int col);
+
+protected:
+    /**
+       Helper for GetSize() implementations, respects attributes.
+    */
+    wxSize GetTextExtent(const wxString& str) const;
 };
 
 
 };
 
 
@@ -2122,6 +2384,8 @@ public:
 
     @library{wxadv}
     @category{ctrl,dvc}
 
     @library{wxadv}
     @category{ctrl,dvc}
+
+    @since 2.9.0
 */
 class wxDataViewListCtrl: public wxDataViewCtrl
 {
 */
 class wxDataViewListCtrl: public wxDataViewCtrl
 {
@@ -2337,6 +2601,13 @@ public:
     */
     void DeleteAllItems();
 
     */
     void DeleteAllItems();
 
+    /**
+        Returns the number of items (=rows) in the control
+
+        @since 2.9.4
+    */
+    unsigned int GetItemCount() const;
+
     /**
         Returns the client data associated with the item.
 
     /**
         Returns the client data associated with the item.
 
@@ -2425,7 +2696,10 @@ public:
 
     @library{wxadv}
     @category{ctrl,dvc}
 
     @library{wxadv}
     @category{ctrl,dvc}
-    @appearance{dataviewtreectrl.png}
+
+    @since 2.9.0
+
+    @appearance{dataviewtreectrl}
 */
 class wxDataViewTreeCtrl : public wxDataViewCtrl
 {
 */
 class wxDataViewTreeCtrl : public wxDataViewCtrl
 {
@@ -2710,6 +2984,13 @@ public:
     */
     void DeleteAllItems();
 
     */
     void DeleteAllItems();
 
+    /**
+        Returns the number of items (=rows) in the control
+
+        @since 2.9.4
+    */
+    unsigned int GetItemCount() const;
+
     /**
         Returns the client data associated with the item.
 
     /**
         Returns the client data associated with the item.
 
@@ -2950,43 +3231,43 @@ public:
 
     @beginEventTable{wxDataViewEvent}
     @event{EVT_DATAVIEW_SELECTION_CHANGED(id, func)}
 
     @beginEventTable{wxDataViewEvent}
     @event{EVT_DATAVIEW_SELECTION_CHANGED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event.
+           Process a @c wxEVT_DATAVIEW_SELECTION_CHANGED event.
     @event{EVT_DATAVIEW_ITEM_ACTIVATED(id, func)}
     @event{EVT_DATAVIEW_ITEM_ACTIVATED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_ACTIVATED event.
     @event{EVT_DATAVIEW_ITEM_EDITING_STARTED(id, func)}
     @event{EVT_DATAVIEW_ITEM_EDITING_STARTED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_EDITING_STARTED event.
     @event{EVT_DATAVIEW_ITEM_EDITING_DONE(id, func)}
     @event{EVT_DATAVIEW_ITEM_EDITING_DONE(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE event.
+           Process a @c wxEVT_DATAVIEW_ITEM_EDITING_DONE event.
     @event{EVT_DATAVIEW_ITEM_COLLAPSING(id, func)}
     @event{EVT_DATAVIEW_ITEM_COLLAPSING(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING event.
+           Process a @c wxEVT_DATAVIEW_ITEM_COLLAPSING event.
     @event{EVT_DATAVIEW_ITEM_COLLAPSED(id, func)}
     @event{EVT_DATAVIEW_ITEM_COLLAPSED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_COLLAPSED event.
     @event{EVT_DATAVIEW_ITEM_EXPANDING(id, func)}
     @event{EVT_DATAVIEW_ITEM_EXPANDING(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING event.
+           Process a @c wxEVT_DATAVIEW_ITEM_EXPANDING event.
     @event{EVT_DATAVIEW_ITEM_EXPANDED(id, func)}
     @event{EVT_DATAVIEW_ITEM_EXPANDED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_EXPANDED event.
     @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)}
     @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event.
+           Process a @c wxEVT_DATAVIEW_ITEM_VALUE_CHANGED event.
     @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)}
     @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event.
+           Process a @c wxEVT_DATAVIEW_ITEM_CONTEXT_MENU event.
     @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)}
     @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK event.
+           Process a @c wxEVT_DATAVIEW_COLUMN_HEADER_CLICK event.
     @event{EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, func)}
     @event{EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED event.
+           Process a @c wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK event.
     @event{EVT_DATAVIEW_COLUMN_SORTED(id, func)}
     @event{EVT_DATAVIEW_COLUMN_SORTED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED event.
+           Process a @c wxEVT_DATAVIEW_COLUMN_SORTED event.
     @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)}
     @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED event.
+           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)}
            Currently this even is only generated when using the native OSX
            version.
     @event{EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG event.
+           Process a @c wxEVT_DATAVIEW_ITEM_BEGIN_DRAG event.
     @event{EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, func)}
     @event{EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE event.
+           Process a @c wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE event.
     @event{EVT_DATAVIEW_ITEM_DROP(id, func)}
     @event{EVT_DATAVIEW_ITEM_DROP(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_ITEM_DROP event.
+           Process a @c wxEVT_DATAVIEW_ITEM_DROP event.
     @event{EVT_DATAVIEW_CACHE_HINT(id, func)}
     @event{EVT_DATAVIEW_CACHE_HINT(id, func)}
-           Process a @c wxEVT_COMMAND_DATAVIEW_CACHE_HINT event.
+           Process a @c wxEVT_DATAVIEW_CACHE_HINT event.
     @endEventTable
 
     @library{wxadv}
     @endEventTable
 
     @library{wxadv}
@@ -3030,14 +3311,14 @@ public:
 
     /**
         Can be used to determine whether the new value is going to be accepted
 
     /**
         Can be used to determine whether the new value is going to be accepted
-        in wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE handler.
+        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.
 
 
         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_COMMAND_DATAVIEW_ITEM_EDITING_DONE event handler can
+        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
         call wxNotifyEvent::Veto() to prevent this from happening.
 
         Currently support for setting this field and for vetoing the change is
@@ -3091,7 +3372,7 @@ public:
     /**
         Specify the kind of the drag operation to perform.
 
     /**
         Specify the kind of the drag operation to perform.
 
-        This method can be used inside a wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG
+        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.
         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.
@@ -3110,8 +3391,8 @@ public:
         Returns the effect the user requested to happen to the dropped data.
 
         This function can be used inside
         Returns the effect the user requested to happen to the dropped data.
 
         This function can be used inside
-        wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE and
-        wxEVT_COMMAND_DATAVIEW_ITEM_DROP handlers and returns whether the user
+        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.
 
         is trying to copy (the return value is ::wxDragCopy) or move (if the
         return value is ::wxDragMove) the data.
 
@@ -3132,5 +3413,21 @@ public:
         Return the last row that will be displayed.
     */
     int GetCacheTo() 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 );
+
 };
 
 };