Version: 3.3.0
wxGridCellRenderer Class Referenceabstract

#include <wx/grid.h>

+ Inheritance diagram for wxGridCellRenderer:

Detailed Description

This class is responsible for actually drawing the cell in the grid.

You may pass it to the wxGridCellAttr (below) to change the format of one given cell or to wxGrid::SetDefaultRenderer() to change the view of all cells. This is an abstract class, and you will normally use one of the predefined derived classes or derive your own class from it.

Library:  wxCore
Category:  Grid Related Classes
See also
wxGridCellAutoWrapStringRenderer, wxGridCellBoolRenderer, wxGridCellDateTimeRenderer, wxGridCellEnumRenderer, wxGridCellFloatRenderer, wxGridCellNumberRenderer, wxGridCellStringRenderer

Public Member Functions

 wxGridCellRenderer ()
 
virtual wxGridCellRendererClone () const =0
 This function must be implemented in derived classes to return a copy of itself. More...
 
virtual void Draw (wxGrid &grid, wxGridCellAttr &attr, wxDC &dc, const wxRect &rect, int row, int col, bool isSelected)=0
 Draw the given cell on the provided DC inside the given rectangle using the style specified by the attribute and the default or selected state corresponding to the isSelected value. More...
 
virtual wxSize GetBestSize (wxGrid &grid, wxGridCellAttr &attr, wxDC &dc, int row, int col)=0
 Get the preferred size of the cell for its contents. More...
 
virtual int GetBestHeight (wxGrid &grid, wxGridCellAttr &attr, wxDC &dc, int row, int col, int width)
 Get the preferred height of the cell at the given width. More...
 
virtual int GetBestWidth (wxGrid &grid, wxGridCellAttr &attr, wxDC &dc, int row, int col, int height)
 Get the preferred width of the cell at the given height. More...
 
virtual wxSize GetMaxBestSize (wxGrid &grid, wxGridCellAttr &attr, wxDC &dc)
 Get the maximum possible size for a cell using this renderer, if possible. More...
 
- Public Member Functions inherited from wxSharedClientDataContainer
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...
 
- Public Member Functions inherited from wxRefCounter
 wxRefCounter ()
 Default constructor. More...
 
void DecRef ()
 Decrements the reference count associated with this shared data and, if it reaches zero, destroys this instance of wxRefCounter releasing its memory. More...
 
int GetRefCount () const
 Returns the reference count associated with this shared data. More...
 
void IncRef ()
 Increments the reference count associated with this shared data. More...
 

Protected Member Functions

void SetTextColoursAndFont (const wxGrid &grid, const wxGridCellAttr &attr, wxDC &dc, bool isSelected)
 Helper function setting the correct colours and font. More...
 
virtual ~wxGridCellRenderer ()
 The destructor is private because only DecRef() can delete us. More...
 
- Protected Member Functions inherited from wxRefCounter
virtual ~wxRefCounter ()
 Destructor. More...
 

Constructor & Destructor Documentation

◆ wxGridCellRenderer()

wxGridCellRenderer::wxGridCellRenderer ( )

◆ ~wxGridCellRenderer()

virtual wxGridCellRenderer::~wxGridCellRenderer ( )
protectedvirtual

The destructor is private because only DecRef() can delete us.

Member Function Documentation

◆ Clone()

virtual wxGridCellRenderer* wxGridCellRenderer::Clone ( ) const
pure virtual

This function must be implemented in derived classes to return a copy of itself.

◆ Draw()

virtual void wxGridCellRenderer::Draw ( wxGrid grid,
wxGridCellAttr attr,
wxDC dc,
const wxRect rect,
int  row,
int  col,
bool  isSelected 
)
pure virtual

Draw the given cell on the provided DC inside the given rectangle using the style specified by the attribute and the default or selected state corresponding to the isSelected value.

This pure virtual function has a default implementation which will prepare the DC using the given attribute: it will draw the rectangle with the background colour from attr and set the text colour and font.

◆ GetBestHeight()

virtual int wxGridCellRenderer::GetBestHeight ( wxGrid grid,
wxGridCellAttr attr,
wxDC dc,
int  row,
int  col,
int  width 
)
virtual

Get the preferred height of the cell at the given width.

Some renderers may not have a well-defined best size, but only be able to provide the best height at the given width, e.g. this is the case of the standard wxGridCellAutoWrapStringRenderer. In this case, they should override this method, in addition to GetBestSize().

See also
GetBestWidth()
Since
3.1.0

◆ GetBestSize()

virtual wxSize wxGridCellRenderer::GetBestSize ( wxGrid grid,
wxGridCellAttr attr,
wxDC dc,
int  row,
int  col 
)
pure virtual

Get the preferred size of the cell for its contents.

This method must be overridden in the derived classes to return the minimal fitting size for displaying the content of the given grid cell.

See also
GetBestHeight(), GetBestWidth()

◆ GetBestWidth()

virtual int wxGridCellRenderer::GetBestWidth ( wxGrid grid,
wxGridCellAttr attr,
wxDC dc,
int  row,
int  col,
int  height 
)
virtual

Get the preferred width of the cell at the given height.

See GetBestHeight(), this method is symmetric to it.

Since
3.1.0

◆ GetMaxBestSize()

virtual wxSize wxGridCellRenderer::GetMaxBestSize ( wxGrid grid,
wxGridCellAttr attr,
wxDC dc 
)
virtual

Get the maximum possible size for a cell using this renderer, if possible.

This function may be overridden in the derived class if it can return the maximum size needed for displaying the cells rendered it without iterating over all cells. The base class version simply returns wxDefaultSize, indicating that this is infeasible and that GetBestSize() should be called for each cell individually.

Note that this method will only be used if wxGridTableBase::CanMeasureColUsingSameAttr() is overridden to return true.

Since
3.1.4

◆ SetTextColoursAndFont()

void wxGridCellRenderer::SetTextColoursAndFont ( const wxGrid grid,
const wxGridCellAttr attr,
wxDC dc,
bool  isSelected 
)
protected

Helper function setting the correct colours and font.

This function can be useful in the derived classes Draw() implementation as it takes care of setting the appropriate colours and font for dc depending on the global grid attributes, cell attributions specified in attr and whether isSelected is true.

Simply call it before doing any drawing in the derived class version to use consistent colours and font for all cells.

Since
3.1.5