X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b955766e883accfd019d7ebd8261afb8098213ef..5cbda74b6606482f5286a5599fc60f3f91995a52:/interface/wx/dataview.h diff --git a/interface/wx/dataview.h b/interface/wx/dataview.h index bfbf14018c..aebeef76e3 100644 --- a/interface/wx/dataview.h +++ b/interface/wx/dataview.h @@ -167,6 +167,33 @@ public: virtual bool GetAttr(const wxDataViewItem& item, unsigned int col, wxDataViewItemAttr& attr) const; + /** + Override this to indicate that the item should be disabled. + + Disabled items are displayed differently (e.g. grayed out) and cannot + be interacted with. + + The base class version always returns @true, thus making all items + enabled by default. + + @param item + The item whose enabled status is requested. + @param col + The column of the item whose enabled status is requested. + @return + @true if this item should be enabled, @false otherwise. + + @note Currently disabling items is fully implemented only for the + native control implementation in wxOSX/Cocoa and wxGTK. + This feature is only partially supported in the generic + version (used by wxMSW) and not supported by the wxOSX/Carbon + implementation. + + @since 2.9.2 + */ + virtual bool IsEnabled(const wxDataViewItem &item, + unsigned int col) const; + /** Override this so the control can query the child items of an item. Returns the number of items. @@ -189,7 +216,7 @@ public: /** Override this to indicate which wxDataViewItem representing the parent - of @a item or an invalid wxDataViewItem if the the root item is + of @a item or an invalid wxDataViewItem if the root item is the parent item. */ virtual wxDataViewItem GetParent(const wxDataViewItem& item) const = 0; @@ -204,7 +231,7 @@ public: /** Override this method to indicate if a container item merely acts as a headline (or for categorisation) or if it also acts a normal item with - entries for futher columns. By default returns @false. + entries for further columns. By default returns @false. */ virtual bool HasContainerColumns(const wxDataViewItem& item) const; @@ -249,7 +276,7 @@ public: /** Call this to inform the model that an item has changed. - This will eventually emit a wxEVT_DATAVIEW_ITEM_VALUE_CHANGED + This will eventually emit a @c wxEVT_DATAVIEW_ITEM_VALUE_CHANGED event (in which the column fields will not be set) to the user. */ bool ItemChanged(const wxDataViewItem& item); @@ -269,7 +296,7 @@ public: /** Call this to inform the model that several items have changed. - This will eventually emit wxEVT_DATAVIEW_ITEM_VALUE_CHANGED + This will eventually emit @c wxEVT_DATAVIEW_ITEM_VALUE_CHANGED events (in which the column fields will not be set) to the user. */ bool ItemsChanged(const wxDataViewItemArray& items); @@ -310,7 +337,7 @@ public: This is also called from wxDataViewCtrl's internal editing code, e.g. when editing a text field in the control. - This will eventually emit a wxEVT_DATAVIEW_ITEM_VALUE_CHANGED + This will eventually emit a @c wxEVT_DATAVIEW_ITEM_VALUE_CHANGED event to the user. */ virtual bool ValueChanged(const wxDataViewItem& item, @@ -371,6 +398,28 @@ public: virtual bool GetAttrByRow(unsigned int row, unsigned int col, wxDataViewItemAttr& attr) const; + /** + Override this if you want to disable specific items. + + The base class version always returns @true, thus making all items + enabled by default. + + @param row + The row of the item whose enabled status is requested. + @param col + The column of the item whose enabled status is requested. + @return + @true if the item at this row and column should be enabled, + @false otherwise. + + @note See wxDataViewModel::IsEnabled() for the current status of + support for disabling the items under different platforms. + + @since 2.9.2 + */ + virtual bool IsEnabledByRow(unsigned int row, + unsigned int col) const; + /** Returns the number of items (i.e. rows) in the list. */ @@ -618,6 +667,8 @@ public: Multiple selection mode. @style{wxDV_ROW_LINES} Use alternating colours for rows if supported by platform and theme. + 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. @style{wxDV_VERT_RULES} @@ -1035,7 +1086,7 @@ public: void SetCurrentItem(const wxDataViewItem& item); /** - Sets the indendation. + Sets the indentation. */ void SetIndent(int indent); @@ -1520,7 +1571,7 @@ public: Override this to react to double clicks or ENTER. This method will only be called in wxDATAVIEW_CELL_ACTIVATABLE mode. */ - virtual bool Activate( wxRect cell, + virtual bool Activate( const wxRect& cell, wxDataViewModel* model, const wxDataViewItem & item, unsigned int col ); @@ -1539,9 +1590,9 @@ public: } @endcode */ - virtual wxControl* CreateEditorCtrl(wxWindow* parent, - wxRect labelRect, - const wxVariant& value); + virtual wxWindow* CreateEditorCtrl(wxWindow* parent, + wxRect labelRect, + const wxVariant& value); /** Return the attribute to be used for rendering. @@ -1576,7 +1627,7 @@ public: } @endcode */ - virtual bool GetValueFromEditorCtrl(wxControl* editor, + virtual bool GetValueFromEditorCtrl(wxWindow* editor, wxVariant& value); /** @@ -1589,8 +1640,8 @@ public: Override this to react to a left click. This method will only be called in @c wxDATAVIEW_CELL_ACTIVATABLE mode. */ - virtual bool LeftClick( wxPoint cursor, - wxRect cell, + virtual bool LeftClick( const wxPoint& cursor, + const wxRect& cell, wxDataViewModel * model, const wxDataViewItem & item, unsigned int col ); @@ -1614,7 +1665,8 @@ public: /** Override this to start a drag operation. Not yet supported. */ - virtual bool StartDrag(wxPoint cursor, wxRect cell, + virtual bool StartDrag(const wxPoint& cursor, + const wxRect& cell, wxDataViewModel* model, const wxDataViewItem & item, unsigned int col); @@ -2002,7 +2054,7 @@ public: /** Sets the value in the store and update the control. - This method assumes that the a string is stored in respective + This method assumes that the string is stored in respective column. */ void SetTextValue( const wxString &value, unsigned int row, unsigned int col ); @@ -2010,7 +2062,7 @@ public: /** Returns the value from the store. - This method assumes that the a string is stored in respective + This method assumes that the string is stored in respective column. */ wxString GetTextValue( unsigned int row, unsigned int col ) const; @@ -2018,7 +2070,7 @@ public: /** Sets the value in the store and update the control. - This method assumes that the a boolean value is stored in + This method assumes that the boolean value is stored in respective column. */ void SetToggleValue( bool value, unsigned int row, unsigned int col ); @@ -2026,7 +2078,7 @@ public: /** Returns the value from the store. - This method assumes that the a boolean value is stored in + This method assumes that the boolean value is stored in respective column. */ bool GetToggleValue( unsigned int row, unsigned int col ) const; @@ -2341,23 +2393,23 @@ public: void DeleteAllItems(); /** - Overriden from wxDataViewModel + Overridden from wxDataViewModel */ virtual unsigned int GetColumnCount() const; /** - Overriden from wxDataViewModel + Overridden from wxDataViewModel */ virtual wxString GetColumnType( unsigned int col ) const; /** - Overriden from wxDataViewIndexListModel + Overridden from wxDataViewIndexListModel */ virtual void GetValueByRow( wxVariant &value, unsigned int row, unsigned int col ) const; /** - Overriden from wxDataViewIndexListModel + Overridden from wxDataViewIndexListModel */ virtual bool SetValueByRow( const wxVariant &value, unsigned int row, unsigned int col ); @@ -2367,7 +2419,7 @@ public: /** @class wxDataViewTreeStore - wxDataViewTreeStore is a specialised wxDataViewModel for stroing simple + wxDataViewTreeStore is a specialised wxDataViewModel for storing 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) @@ -2429,7 +2481,7 @@ public: int GetChildCount(const wxDataViewItem& parent) const; /** - Returns the client data asoociated with the item. + Returns the client data associated with the item. */ wxClientData* GetItemData(const wxDataViewItem& item) const; @@ -2626,7 +2678,7 @@ public: wxDataViewModel* GetModel() const; /** - Returns a the position of a context menu event in screen coordinates. + Returns the position of a context menu event in screen coordinates. */ wxPoint GetPosition() const; @@ -2641,7 +2693,7 @@ public: void SetColumn(int col); /** - For wxEVT_DATAVIEW_COLUMN_HEADER_CLICKED only. + For @c wxEVT_DATAVIEW_COLUMN_HEADER_CLICKED only. */ void SetDataViewColumn(wxDataViewColumn* col);