Version: 3.1.3
wxDataViewValueAdjuster Class Reference

#include <wx/dataview.h>

Detailed Description

This class can be used with wxDataViewRenderer::SetValueAdjuster() to customize rendering of model values with standard renderers.

Can be used to change the value if it is shown on a highlighted row (i.e. in selection) which typically has dark background. It is useful in combination with wxDataViewTextRenderer with markup and can be used e.g. to remove background color attributes inside selection, as a lightweight alternative to implementing an entire wxDataViewCustomRenderer specialization.

// Markup renderer that removes bgcolor attributes when in selection
class DataViewMarkupRenderer : public wxDataViewTextRenderer
{
public:
DataViewMarkupRenderer()
{
EnableMarkup();
SetValueAdjuster(new Adjuster());
}
private:
class Adjuster : public wxDataViewValueAdjuster
{
public:
wxVariant MakeHighlighted(const wxVariant& value) const override
{
wxString s = value.GetString();
size_t pos = s.find(" bgcolor=\"");
if (pos != wxString::npos)
{
size_t pos2 = s.find('"', pos + 10);
s.erase(pos, pos2 - pos + 1);
return s;
}
return value;
}
};
};
Since
3.1.1

Library:  wxCore
Category:  wxDataViewCtrl Related Classes

Public Member Functions

virtual wxVariant MakeHighlighted (const wxVariant &value) const
 Change value for rendering when highlighted. More...
 

Member Function Documentation

virtual wxVariant wxDataViewValueAdjuster::MakeHighlighted ( const wxVariant value) const
virtual

Change value for rendering when highlighted.

Override to customize the value when it is shown in a highlighted (selected) row, typically on a dark background.

Default implementation returns value unmodified.