Version: 3.3.0
wxGridCellAttrProvider Class Reference

#include <wx/grid.h>

+ Inheritance diagram for wxGridCellAttrProvider:

Detailed Description

Class providing attributes to be used for the grid cells.

This class both defines an interface which grid cell attributes providers should implement – and which can be implemented differently in derived classes – and a default implementation of this interface which is often good enough to be used without modification, especially with not very large grids for which the efficiency of attributes storage hardly matters (see the discussion below).

An object of this class can be associated with a wxGrid using wxGridTableBase::SetAttrProvider() but it's not necessary to call it if you intend to use the default provider as it is used by wxGridTableBase by default anyhow.

Notice that while attributes provided by this class can be set for individual cells using SetAttr() or the entire rows or columns using SetRowAttr() and SetColAttr() they are always retrieved using GetAttr() function.

The default implementation of this class stores the attributes passed to its SetAttr(), SetRowAttr() and SetColAttr() in a straightforward way. A derived class may use its knowledge about how the attributes are used in your program to implement it much more efficiently: for example, using a special background colour for all even-numbered rows can be implemented by simply returning the same attribute from GetAttr() if the row number is even instead of having to store N/2 row attributes where N is the total number of rows in the grid.

Notice that objects of this class can't be copied.

Public Member Functions

 wxGridCellAttrProvider ()
 Trivial default constructor. More...
 
virtual ~wxGridCellAttrProvider ()
 Destructor releases any attributes held by this class. More...
 
virtual wxGridCellAttrGetAttr (int row, int col, wxGridCellAttr::wxAttrKind kind) const
 Get the attribute to use for the specified cell. More...
 
wxGridCellAttrPtr GetAttrPtr (int row, int col, wxGridCellAttr::wxAttrKind kind) const
 Get the attribute to use for the specified cell. More...
 
Setting attributes.

All these functions take ownership of the attribute passed to them, i.e. will call DecRef() on it themselves later and so it should not be destroyed by the caller. The attribute can be nullptr to reset a previously set value.

virtual void SetAttr (wxGridCellAttr *attr, int row, int col)
 Set attribute for the specified cell. More...
 
virtual void SetRowAttr (wxGridCellAttr *attr, int row)
 Set attribute for the specified row. More...
 
virtual void SetColAttr (wxGridCellAttr *attr, int col)
 Set attribute for the specified column. More...
 
Getting header renderers.

These functions return the renderers for the given row or column header label and the corner window.

Unlike cell attributes, these objects are not reference counted and are never nullptr so they are returned by reference and not pointer and DecRef() shouldn't (and can't) be called for them.

All these functions were added in wxWidgets 2.9.1.

virtual const wxGridColumnHeaderRendererGetColumnHeaderRenderer (int col)
 Return the renderer used for drawing column headers. More...
 
virtual const wxGridRowHeaderRendererGetRowHeaderRenderer (int row)
 Return the renderer used for drawing row headers. More...
 
virtual const wxGridCornerHeaderRendererGetCornerRenderer ()
 Return the renderer used for drawing the corner window. More...
 
- Public Member Functions inherited from wxClientDataContainer
 wxClientDataContainer ()
 Default constructor. More...
 
virtual ~wxClientDataContainer ()
 Destructor. More...
 
void * GetClientData () const
 Get the untyped client data. More...
 
wxClientDataGetClientObject () const
 Get a pointer to the client data object. More...
 
void SetClientData (void *data)
 Set the untyped client data. More...
 
void SetClientObject (wxClientData *data)
 Set the client data object. More...
 

Constructor & Destructor Documentation

◆ wxGridCellAttrProvider()

wxGridCellAttrProvider::wxGridCellAttrProvider ( )

Trivial default constructor.

◆ ~wxGridCellAttrProvider()

virtual wxGridCellAttrProvider::~wxGridCellAttrProvider ( )
virtual

Destructor releases any attributes held by this class.

Member Function Documentation

◆ GetAttr()

virtual wxGridCellAttr* wxGridCellAttrProvider::GetAttr ( int  row,
int  col,
wxGridCellAttr::wxAttrKind  kind 
) const
virtual

Get the attribute to use for the specified cell.

If wxGridCellAttr::Any is used as kind value, this function combines the attributes set for this cell using SetAttr() and those for its row or column (set with SetRowAttr() or SetColAttr() respectively), with the cell attribute having the highest precedence.

Notice that the caller must call DecRef() on the returned pointer if it is non-null. GetAttrPtr() method can be used to do this automatically.

Parameters
rowThe row of the cell.
colThe column of the cell.
kindThe kind of the attribute to return.
Returns
The attribute to use which should be DecRef()'d by caller or nullptr if no attributes are defined for this cell.

◆ GetAttrPtr()

wxGridCellAttrPtr wxGridCellAttrProvider::GetAttrPtr ( int  row,
int  col,
wxGridCellAttr::wxAttrKind  kind 
) const

Get the attribute to use for the specified cell.

This method is identical to GetAttr(), but returns a smart pointer, which frees the caller from the need to call DecRef() manually.

Since
3.1.4

◆ GetColumnHeaderRenderer()

virtual const wxGridColumnHeaderRenderer& wxGridCellAttrProvider::GetColumnHeaderRenderer ( int  col)
virtual

Return the renderer used for drawing column headers.

By default wxGridColumnHeaderRendererDefault is returned.

See also
wxGrid::SetUseNativeColLabels(), wxGrid::UseNativeColHeader()
Since
2.9.1

◆ GetCornerRenderer()

virtual const wxGridCornerHeaderRenderer& wxGridCellAttrProvider::GetCornerRenderer ( )
virtual

Return the renderer used for drawing the corner window.

By default wxGridCornerHeaderRendererDefault is returned.

Since
2.9.1

◆ GetRowHeaderRenderer()

virtual const wxGridRowHeaderRenderer& wxGridCellAttrProvider::GetRowHeaderRenderer ( int  row)
virtual

Return the renderer used for drawing row headers.

By default wxGridRowHeaderRendererDefault is returned.

Since
2.9.1

◆ SetAttr()

virtual void wxGridCellAttrProvider::SetAttr ( wxGridCellAttr attr,
int  row,
int  col 
)
virtual

Set attribute for the specified cell.

◆ SetColAttr()

virtual void wxGridCellAttrProvider::SetColAttr ( wxGridCellAttr attr,
int  col 
)
virtual

Set attribute for the specified column.

◆ SetRowAttr()

virtual void wxGridCellAttrProvider::SetRowAttr ( wxGridCellAttr attr,
int  row 
)
virtual

Set attribute for the specified row.