dataview.h

Clase wxDataViewValueAdjuster

Esta clase se puede utilizar con wxDataViewRenderer::SetValueAdjuster() para personalizar la representación de los valores del modelo con renderizadores estándar.

Se puede utilizar para cambiar el valor si se muestra en una fila resaltada (es decir, en la selección), que normalmente tiene un fondo oscuro. Es útil en combinación con wxDataViewTextRenderer con marcado y se puede utilizar, por ejemplo, para eliminar los atributos de color de fondo dentro de la selección, como una alternativa ligera a la implementación de una especialización completa de wxDataViewCustomRenderer.

// Renderizador de marcado que elimina los atributos bgcolor cuando se seleccionan.
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;
        }
    };
};

Funciones miembro

MakeHighlighted()

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

Cambia el valor para la representación cuando se resalta.

Anula para personalizar el valor cuando se muestra en una fila resaltada (seleccionada), normalmente sobre un fondo oscuro.

La implementación predeterminada devuelve el valor sin modificar.

El valor pasado a este método siempre es distinto de nulo y también debe devolver un valor distinto de nulo.