Add wxGrid::RefreshAttr() method to force attribute refresh.

A cached attribute may continue to be used even though the attribute returned
by a custom wxGridCellAttrProvider has changed so add a method to force wxGrid
to update the attribute by forgetting the cached copy.

Closes #12406.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-08-30 22:18:52 +00:00
parent bb612373c0
commit b99450eecb
3 changed files with 38 additions and 0 deletions

View File

@@ -3846,6 +3846,31 @@ public:
*/
bool InsertRows(int pos = 0, int numRows = 1, bool updateLabels = true);
/**
Invalidates the cached attribute for the given cell.
For efficiency reasons, wxGrid may cache the recently used attributes
(currently it caches only the single most recently used one, in fact)
which can result in the cell appearance not being refreshed even when
the attribute returned by your custom wxGridCellAttrProvider-derived
class has changed. To force the grid to refresh the cell attribute,
this function may be used. Notice that calling it will not result in
actually redrawing the cell, you still need to call
wxWindow::RefreshRect() to invalidate the area occupied by the cell in
the window to do this. Also note that you don't need to call this
function if you store the attributes in wxGrid itself, i.e. use its
SetAttr() and similar methods, it is only useful when using a separate
custom attributes provider.
@param row
The row of the cell whose attribute needs to be queried again.
@param col
The column of the cell whose attribute needs to be queried again.
@since 2.9.2
*/
void RefreshAttr(int row, int col);
/**
Sets the cell attributes for all cells in the specified column.