X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae3c17b4013e80b99976c750c19fca47729517f6..dd72e7678d1f4fd36c4753373b2b22b59491f5a7:/interface/wx/dataview.h diff --git a/interface/wx/dataview.h b/interface/wx/dataview.h index 533e8ec36b..d43c8944b6 100644 --- a/interface/wx/dataview.h +++ b/interface/wx/dataview.h @@ -8,7 +8,6 @@ /** @class wxDataViewIconText - @wxheader{dataview.h} wxDataViewIconText is used by wxDataViewIconTextRenderer @@ -33,7 +32,7 @@ public: /** Gets the icon. */ - const wxIcon GetIcon() const; + const wxIcon& GetIcon() const; /** Gets the text. @@ -55,7 +54,6 @@ public: /** @class wxDataViewEvent - @wxheader{dataview.h} wxDataViewEvent - the event class for the wxDataViewCtrl notifications @@ -89,7 +87,7 @@ public: Returns a pointer to the wxDataViewColumn from which the event was emitted or @NULL. */ - wxDataViewColumn* GetDataViewColumn(); + wxDataViewColumn* GetDataViewColumn() const; /** Returns the wxDataViewModel associated with the event. @@ -104,7 +102,7 @@ public: /** Returns a reference to a value. */ - const wxVariant GetValue() const; + const wxVariant& GetValue() const; /** @@ -131,7 +129,6 @@ public: /** @class wxDataViewModel - @wxheader{dataview.h} wxDataViewModel is the base class for all data model to be displayed by a wxDataViewCtrl. @@ -226,7 +223,7 @@ public: /** Destructor. This should not be called directly. Use DecRef() instead. */ - ~wxDataViewModel(); + virtual ~wxDataViewModel(); /** Adds a wxDataViewModelNotifier @@ -270,29 +267,28 @@ public: /** Override this to indicate the number of columns in the model. */ - virtual unsigned int GetColumnCount() const; + virtual unsigned int GetColumnCount() const = 0; /** Override this to indicate what type of data is stored in the column specified by @e col. This should return a string indicating the type of data as reported by wxVariant. */ - virtual wxString GetColumnType(unsigned int col) const; + virtual wxString GetColumnType(unsigned int col) const = 0; /** Override this to indicate which wxDataViewItem representing the parent of @a item or an invalid wxDataViewItem if the the root item is the parent item. */ - virtual wxDataViewItem GetParent(const wxDataViewItem& item) const; + virtual wxDataViewItem GetParent(const wxDataViewItem& item) const = 0; /** Override this to indicate the value of @e item A wxVariant is used to store the data. */ - virtual void GetValue(wxVariant& variant, - const wxDataViewItem& item, - unsigned int col) const; + virtual void GetValue(wxVariant& variant, const wxDataViewItem& item, + unsigned int col) const = 0; /** Override this method to indicate if a container item merely @@ -317,7 +313,7 @@ public: 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; + virtual bool IsContainer(const wxDataViewItem& item) const = 0; /** Call this to inform the model that an item has been added @@ -377,9 +373,8 @@ public: Afterwards ValueChanged() has to be called! */ - virtual bool SetValue(const wxVariant& variant, - const wxDataViewItem& item, - unsigned int col); + virtual bool SetValue(const wxVariant& variant, const wxDataViewItem& item, + unsigned int col) = 0; /** Call this to inform this model that a value in the model has @@ -397,15 +392,14 @@ public: /** @class wxDataViewIndexListModel - @wxheader{dataview.h} 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 + + 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. @@ -424,7 +418,7 @@ public: /** Destructor. */ - ~wxDataViewIndexListModel(); + virtual ~wxDataViewIndexListModel(); /** Compare method that sorts the items by their index. @@ -514,7 +508,6 @@ public: /** @class wxDataViewVirtualListModel - @wxheader{dataview.h} wxDataViewVirtualListModel is a specialized data model which lets you address an item by its position (row) rather than its @@ -543,7 +536,6 @@ public: /** @class wxDataViewItemAttr - @wxheader{dataview.h} This class is used to indicate to a wxDataViewCtrl that a certain Item() has extra font attributes @@ -585,7 +577,6 @@ public: /** @class wxDataViewItem - @wxheader{dataview.h} wxDataViewItem is a small opaque class that represents an item in a wxDataViewCtrl in a @@ -632,7 +623,6 @@ public: /** @class wxDataViewCtrl - @wxheader{dataview.h} wxDataViewCtrl is a control to display data either in a tree like fashion or in a tabular form or both. @@ -680,6 +670,37 @@ public: Allow variable line heights. This can be inefficient when displaying large number of items. @endStyleTable + @beginEventTable{wxDataViewEvent} + @event{EVT_DATAVIEW_SELECTION_CHANGED(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED event. + @event{EVT_DATAVIEW_ITEM_ACTIVATED(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED event. + @event{EVT_DATAVIEW_ITEM_EDITING_STARTED(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED event. + @event{EVT_DATAVIEW_ITEM_EDITING_DONE(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE event. + @event{EVT_DATAVIEW_ITEM_COLLAPSING(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING event. + @event{EVT_DATAVIEW_ITEM_COLLAPSED(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED event. + @event{EVT_DATAVIEW_ITEM_EXPANDING(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING event. + @event{EVT_DATAVIEW_ITEM_EXPANDED(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED event. + @event{EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED event. + @event{EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU event. + @event{EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, func)} + Process a 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. + @event{EVT_DATAVIEW_COLUMN_SORTED(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED event. + @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)} + Process a wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED event. + @endEventTable + @library{wxadv} @category{ctrl,dvc} @@ -691,7 +712,7 @@ public: Default Constructor. */ wxDataViewCtrl(); - + /** Constructor. Calls Create(). */ @@ -704,7 +725,7 @@ public: /** Destructor. */ - ~wxDataViewCtrl(); + virtual ~wxDataViewCtrl(); /** Appends a wxDataViewColumn to the control. Returns @true on success. @@ -724,7 +745,7 @@ public: Inserts a wxDataViewColumn to the control. Returns @true on success. */ virtual bool InsertColumn(unsigned int pos, wxDataViewColumn* col); - + //@{ /** Appends a column for rendering a bitmap. Returns the wxDataViewColumn @@ -748,7 +769,7 @@ public: /** Appends a column for rendering a date. Returns the wxDataViewColumn created in the function or @NULL on failure. - + NB: The @e align parameter is applied to both the column header and the column renderer. */ @@ -771,7 +792,7 @@ public: Appends 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. - + NB: The @e align parameter is applied to both the column header and the column renderer. */ @@ -793,7 +814,7 @@ public: /** Appends a column for rendering a progress indicator. Returns the wxDataViewColumn created in the function or @NULL on failure. - + NB: The @e align parameter is applied to both the column header and the column renderer. */ @@ -815,7 +836,7 @@ public: /** Appends a column for rendering text. Returns the wxDataViewColumn created in the function or @NULL on failure. - + NB: The @e align parameter is applied to both the column header and the column renderer. */ @@ -837,7 +858,7 @@ public: /** Appends a column for rendering a toggle. Returns the wxDataViewColumn created in the function or @NULL on failure. - + NB: The @e align parameter is applied to both the column header and the column renderer. */ @@ -874,7 +895,7 @@ public: /** Collapses the item. */ - void Collapse(const wxDataViewItem& item); + virtual void Collapse(const wxDataViewItem& item); /** Create the control. Useful for two step creation. @@ -899,7 +920,7 @@ public: /** Expands the item. */ - void Expand(const wxDataViewItem& item); + virtual void Expand(const wxDataViewItem& item); /** Returns pointer to the column. @a pos refers to the @@ -938,18 +959,18 @@ public: Returns pointer to the data model associated with the control (if any). */ - virtual wxDataViewModel* GetModel() const; + wxDataViewModel* GetModel(); /** Returns first selected item or an invalid item if none is selected. */ - wxDataViewItem GetSelection() const; + virtual wxDataViewItem GetSelection() const; /** Fills @a sel with currently selected items and returns their number. */ - int GetSelections(wxDataViewItemArray& sel) const; + virtual int GetSelections(wxDataViewItemArray& sel) const; /** Returns the wxDataViewColumn currently responsible for sorting @@ -966,17 +987,17 @@ public: /** Return @true if the item is selected. */ - bool IsSelected(const wxDataViewItem& item) const; + virtual bool IsSelected(const wxDataViewItem& item) const; /** Select the given item. */ - void Select(const wxDataViewItem& item); + virtual void Select(const wxDataViewItem& item); /** Select all items. */ - void SelectAll(); + virtual void SelectAll(); /** Set which column shall contain the tree-like expanders. @@ -991,25 +1012,24 @@ public: /** Sets the selection to the array of wxDataViewItems. */ - void SetSelections(const wxDataViewItemArray& sel); + virtual void SetSelections(const wxDataViewItemArray& sel); /** Unselect the given item. */ - void Unselect(const wxDataViewItem& item); + virtual void Unselect(const wxDataViewItem& item); /** Unselect all item. This method only has effect if multiple selections are allowed. */ - void UnselectAll(); + virtual void UnselectAll(); }; /** @class wxDataViewModelNotifier - @wxheader{dataview.h} A wxDataViewModelNotifier instance is owned by a wxDataViewModel @@ -1031,12 +1051,12 @@ public: /** Destructor. */ - ~wxDataViewModelNotifier(); + virtual ~wxDataViewModelNotifier(); /** Called by owning model. */ - bool Cleared(); + virtual bool Cleared() = 0; /** Get owning wxDataViewModel. @@ -1052,7 +1072,7 @@ public: /** Called by owning model. */ - bool ItemChanged(const wxDataViewItem& item); + virtual bool ItemChanged(const wxDataViewItem& item) = 0; /** Called by owning model. @@ -1069,7 +1089,7 @@ public: /** Called by owning model. */ - bool ItemsChanged(const wxDataViewItemArray& items); + virtual bool ItemsChanged(const wxDataViewItemArray& items); /** Called by owning model. @@ -1080,7 +1100,7 @@ public: /** Called by owning model. */ - void Resort(); + virtual void Resort() = 0; /** Set owner of this notifier. Used internally. @@ -1090,14 +1110,13 @@ public: /** Called by owning model. */ - bool ValueChanged(const wxDataViewItem& item, unsigned int col); + virtual bool ValueChanged(const wxDataViewItem& item, unsigned int col) = 0; }; /** @class wxDataViewRenderer - @wxheader{dataview.h} This class is used by wxDataViewCtrl to render the individual cells. One instance of a renderer class is owned by a wxDataViewColumn. There @@ -1155,7 +1174,7 @@ class wxDataViewRenderer : public wxObject { public: /** - Constructor. + Constructor. */ wxDataViewRenderer(const wxString& varianttype, wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, @@ -1169,29 +1188,29 @@ public: /** Returns the cell mode. */ - virtual wxDataViewCellMode GetMode(); + virtual wxDataViewCellMode GetMode() const; /** Returns pointer to the owning wxDataViewColumn. */ - virtual wxDataViewColumn* GetOwner() const; + wxDataViewColumn* GetOwner() const; /** This methods retrieves the value from the renderer in order to transfer the value back to the data model. Returns @e @false on failure. */ - virtual bool GetValue(wxVariant& value); + virtual bool GetValue(wxVariant& value) const = 0; /** Returns a string with the type of the wxVariant supported by this renderer. */ - virtual wxString GetVariantType(); + wxString GetVariantType() const; /** Sets the alignment of the renderer's content. The default value - of wxDVR_DEFAULT_ALIGMENT indicates that the content should + of wxDVR_DEFAULT_ALIGMENT indicates that the content should have the same alignment as the column header. The method is not implemented under OS X and the renderer always aligns its contents as the column header on that platform. The other platforms @@ -1202,13 +1221,13 @@ public: Sets the owning wxDataViewColumn. This is usually called from within wxDataViewColumn. */ - virtual void SetOwner(wxDataViewColumn* owner); + void SetOwner(wxDataViewColumn* owner); /** Set the value of the renderer (and thus its cell) to @e value. The internal code will then render this cell with this data. */ - virtual bool SetValue(const wxVariant& value); + virtual bool SetValue(const wxVariant& value) = 0; /** Before data is committed to the data model, it is passed to this @@ -1228,7 +1247,6 @@ public: /** @class wxDataViewTextRenderer - @wxheader{dataview.h} wxDataViewTextRenderer is used for rendering text. It supports in-place editing if desired. @@ -1251,7 +1269,6 @@ public: /** @class wxDataViewIconTextRenderer - @wxheader{dataview.h} The wxDataViewIconTextRenderer class is used to display text with a small icon next to it as it is typically done in a file manager. @@ -1278,7 +1295,6 @@ public: /** @class wxDataViewProgressRenderer - @wxheader{dataview.h} wxDataViewProgressRenderer @@ -1301,7 +1317,6 @@ public: /** @class wxDataViewSpinRenderer - @wxheader{dataview.h} This is a specialized renderer for rendering integer values. It supports modifying the values in-place by using a wxSpinCtrl. @@ -1326,7 +1341,6 @@ public: /** @class wxDataViewToggleRenderer - @wxheader{dataview.h} wxDataViewToggleRenderer @@ -1347,7 +1361,6 @@ public: /** @class wxDataViewDateRenderer - @wxheader{dataview.h} wxDataViewDateRenderer @@ -1368,7 +1381,6 @@ public: /** @class wxDataViewTextRendererAttr - @wxheader{dataview.h} The same as wxDataViewTextRenderer but with support for font attributes. Font attributes are currently only supported @@ -1395,7 +1407,6 @@ public: /** @class wxDataViewCustomRenderer - @wxheader{dataview.h} You need to derive a new class from wxDataViewCustomRenderer in order to write a new renderer. You need to override at least @@ -1424,12 +1435,12 @@ public: */ wxDataViewCustomRenderer(const wxString& varianttype = "string", wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); + int align = -1, bool no_init = false); /** Destructor. */ - ~wxDataViewCustomRenderer(); + virtual ~wxDataViewCustomRenderer(); /** Override this to react to double clicks or ENTER. This method will @@ -1458,7 +1469,7 @@ public: /** Return size required to show content. */ - virtual wxSize GetSize(); + virtual wxSize GetSize() const = 0; /** Overrride this so that the renderer can get the value @@ -1488,7 +1499,7 @@ public: wxDataViewRenderer::SetValue was called so that this instance knows what to render. */ - virtual bool Render(wxRect cell, wxDC* dc, int state); + virtual bool Render(wxRect cell, wxDC* dc, int state) = 0; /** This method should be called from within Render() @@ -1513,7 +1524,6 @@ public: /** @class wxDataViewBitmapRenderer - @wxheader{dataview.h} wxDataViewBitmapRenderer @@ -1535,7 +1545,6 @@ public: /** @class wxDataViewColumn - @wxheader{dataview.h} This class represents a column in a wxDataViewCtrl. One wxDataViewColumn is bound to one column in the data model, @@ -1571,18 +1580,18 @@ public: /** Destructor. */ - ~wxDataViewColumn(); + virtual ~wxDataViewColumn(); /** Returns the bitmap in the header of the column, if any. */ - const wxBitmap GetBitmap(); + const wxBitmap& GetBitmap() const; /** Returns the index of the column of the model, which this wxDataViewColumn is displaying. */ - unsigned int GetModelColumn(); + unsigned int GetModelColumn() const; /** Returns the owning wxDataViewCtrl. @@ -1593,7 +1602,7 @@ public: Returns the renderer of this wxDataViewColumn. See also wxDataViewRenderer. */ - wxDataViewRenderer* GetRenderer(); + wxDataViewRenderer* GetRenderer() const; /** Returns @true if the column is reorderable. @@ -1609,37 +1618,37 @@ public: /** Returns the width of the column. */ - int GetWidth(); + virtual int GetWidth() const; /** Returns @true, if the sort order is ascending. See also SetSortOrder() */ - bool IsSortOrderAscending(); + virtual bool IsSortOrderAscending() const; /** Set the alignment of the column header. */ - void SetAlignment(wxAlignment align); + virtual void SetAlignment(wxAlignment align); /** Set the bitmap of the column header. */ - void SetBitmap(const wxBitmap& bitmap); + virtual void SetBitmap(const wxBitmap& bitmap); /** Indicate wether the column can be reordered by the user using the mouse. This is typically implemented visually by dragging the header button around. */ - void SetReorderable(bool reorderable); + virtual void SetReorderable(bool reorderable); /** Indicate the sort order if the implementation of the wxDataViewCtrl supports it, most commonly by showing a little arrow. */ - void SetSortOrder(bool ascending); + virtual void SetSortOrder(bool ascending); /** Indicate that the column is sortable. This does @@ -1651,19 +1660,18 @@ public: no longer clickable and the sort indicator (little arrow) will disappear. */ - void SetSortable(bool sortable); + virtual void SetSortable(bool sortable); /** Set the title of the column header to @e title. */ - void SetTitle(const wxString& title); + virtual void SetTitle(const wxString& title); }; /** @class wxDataViewTreeCtrl - @wxheader{dataview.h} This class is a wxDataViewCtrl which internally uses a wxDataViewTreeStore and forwards @@ -1694,7 +1702,7 @@ public: /** Destructor. Deletes the image list if any. */ - ~wxDataViewTreeCtrl(); + virtual ~wxDataViewTreeCtrl(); /** @@ -1756,12 +1764,12 @@ public: /** Calls the identical method from wxDataViewTreeStore. */ - const wxIcon GetItemExpandedIcon(const wxDataViewItem& item) const; + const wxIcon& GetItemExpandedIcon(const wxDataViewItem& item) const; /** Calls the identical method from wxDataViewTreeStore. */ - const wxIcon GetItemIcon(const wxDataViewItem& item) const; + const wxIcon& GetItemIcon(const wxDataViewItem& item) const; /** Calls the identical method from wxDataViewTreeStore. @@ -1854,7 +1862,6 @@ public: /** @class wxDataViewTreeStore - @wxheader{dataview.h} wxDataViewTreeStore is a specialised wxDataViewModel for displaying simple trees very much like wxTreeCtrl @@ -1877,7 +1884,7 @@ public: /** Destructor. */ - ~wxDataViewTreeStore(); + virtual ~wxDataViewTreeStore(); /** Append a container. @@ -1924,12 +1931,12 @@ public: /** Returns the icon to display in expanded containers. */ - const wxIcon GetItemExpandedIcon(const wxDataViewItem& item) const; + const wxIcon& GetItemExpandedIcon(const wxDataViewItem& item) const; /** Returns the icon of the item. */ - const wxIcon GetItemIcon(const wxDataViewItem& item) const; + const wxIcon& GetItemIcon(const wxDataViewItem& item) const; /** Returns the text of the item.