propgrid/props.h

Clase wxFlagsProperty

Representa un conjunto de bits que cabe en un entero largo.

Jerarquía:

Jerarquía de wxFlagsProperty

Las subpropiedades wxBoolProperty se crean para editar bits individuales. Textctrl se crea para editar manualmente los indicadores como texto; una secuencia continua de espacios, comas y puntos y comas se considera un separador de identificadores de indicadores. Nota: Al cambiar las "opciones" (es decir, las etiquetas de los indicadores) de wxFlagsProperty, se deberá utilizar SetPropertyChoices; de lo contrario, no se actualizarán correctamente.

Funciones miembro

wxFlagsProperty()

wxFlagsProperty::wxFlagsProperty( const wxString & label, const wxString & name, const wxChar *const * labels, const long * values = nullptr, long value = 0 )

Constructor.

wxFlagsProperty()

wxFlagsProperty::wxFlagsProperty( const wxString & label, const wxString & name, wxPGChoices & choices, long value = 0 )

Constructor.

wxFlagsProperty()

wxFlagsProperty::wxFlagsProperty( const wxString & label = wxPG_LABEL, const wxString & name = wxPG_LABEL, const wxArrayString & labels = wxArrayString(), const wxArrayInt & values = wxArrayInt(), int value = 0 )

Constructor.

~wxFlagsProperty()

virtual wxFlagsProperty::~wxFlagsProperty()

Destructor.

ChildChanged()

virtual wxVariant wxFlagsProperty::ChildChanged( wxVariant & thisValue, int childIndex, wxVariant

Se invoca después de que se haya modificado el valor de una propiedad secundaria.

Debe devolver el nuevo valor de toda la propiedad (después de cualquier modificación justificada por el nuevo valor de la propiedad secundaria).

Hay que tener en cuenta que esta función se suele invocar en el momento en que el valor de esta propiedad, o de una propiedad secundaria determinada, aún está pendiente de cambio y, por lo tanto, no se debe confiar en el resultado de GetValue() o m_value.

Ejemplo de implementación en pseudocódigo:

wxVariant MyProperty::ChildChanged( wxVariant& thisValue,
                                    int childIndex,
                                    wxVariant& childValue ) const
{
    // Obtener referencia al tipo real de datos almacenados en la variante 
    // (TFromVariant sólo existe si se utilizaron las macros wxVariant de 
    // wxPropertyGrid para crear la clase variante).
    T& data = TFromVariant(thisValue);
 
    // Copiar childValue en data.
    switch ( childIndex )
    {
        case 0:
            data.SetSubProp1( childvalue.GetLong() );
            break;
        case 1:
            data.SetSubProp2( childvalue.GetString() );
            break;
        ...
    }
 
    // Retornar los datos alterados
    return data;
}
Parámetros
thisValue
Valor de esta propiedad. Se debe devolver el valor modificado (en versiones anteriores de wxPropertyGrid sólo era necesario volver a escribir el valor en este argumento).
childIndex
Índice del elemento secundario modificado (puede utilizar Item(childIndex) para obtener la propiedad secundaria).
childValue
(Pendiente) valor de la propiedad secundaria.
Valor de retorno

Valor modificado de toda la propiedad.

Reimplementado desde wxPGProperty

DoSetAttribute()

Reimplementar esta función miembro para añadir un tratamiento especial para los atributos de esta propiedad.

Valor de retorno

Devuelve false para que el atributo se almacene automáticamente en m_attributes. La implementación predeterminada simplemente hace eso y nada más.

Observaciones

Para establecer realmente los valores de los atributos de la propiedad desde la aplicación, utilizar wxPGProperty::SetAttribute() en su lugar.

Reimplementado desde wxPGProperty.

GetChoiceSelection()

virtual int wxFlagsProperty::GetChoiceSelection() const

Devuelve la opción seleccionada actualmente.

Sólo se aplica a las propiedades que tienen opciones.

Debe reimplementarse en la clase derivada si el valor de la propiedad no se asigna directamente a una opción. Los enteros como índice, los valores booleanos y las cadenas suelen hacerlo.

Reimplementado desde wxPGProperty.

GetItemCount()

size_t wxFlagsProperty::GetItemCount() const

GetLabel()

const wxString& wxFlagsProperty::GetLabel(size_t ind) const

IdToBit()

long wxFlagsProperty::IdToBit(const wxString & id) const

Init()

void wxFlagsProperty::Init(long value)

OnSetValue()

virtual void wxFlagsProperty::OnSetValue()

Esta función virtual se llama después de establecer m_value.

Observaciones
  • Si m_value se ha establecido en la variante Null (es decir, valor no especificado), no se llamará a OnSetValue().
  • m_value puede ser de cualquier tipo de variante. Normalmente, las propiedades sólo admiten internamente un tipo de variante, por lo que OnSetValue() ofrece una buena oportunidad para convertir los valores admitidos en el tipo interno.
  • La implementación predeterminada no hace nada.

Reimplementado desde wxPGProperty.

RefreshChildren()

virtual void wxFlagsProperty::RefreshChildren()

Actualiza los valores de las propiedades secundarias.

Se llama automáticamente después de establecer el valor.

Reimplementado desde wxPGProperty.

StringToValue()

virtual bool wxFlagsProperty::StringToValue( wxVariant & variant, const wxString & text, wxPGPropValFormatFlags flags ) const

Convierte el texto en un valor wxVariant adecuado para esta propiedad.

Parámetros
variant
Al entrar en la función, este es el valor antiguo (no debería ser wxVariant nulo en casos normales). El valor traducido debe asignarse de nuevo a él.
text
Texto que se va a traducir a variante.
flags
Si se establece wxPGPropValFormatFlags::FullValue, devuelve el valor completo y almacenable en lugar del valor visible (pueden ser diferentes). Si se establece wxPGPropValFormatFlags::CompositeFragment, el texto se interpreta como parte del valor de cadena de la propiedad compuesta (tal y como lo genera ValueToString() llamado con esta misma bandera).
Valor de retorno

Devuelve verdadero si el valor wxVariant resultante era diferente.

Observaciones

La implementación predeterminada convierte los tokens delimitados por punto y coma en valores secundarios. Sólo funciona para propiedades con elementos secundarios.

Es posible que se desee tener en cuenta que m_value es una variante nula si el valor de la propiedad no está especificado (lo que normalmente solo ocurre si ha habilitado explícitamente ese comportamiento de clasificación).

Reimplementado desde wxPGProperty.

ValueToString()

virtual wxString wxFlagsProperty::ValueToString( wxVariant & value, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null ) const

Convierte el valor de la propiedad en una representación de texto.

Parámetros
value
Valor que se va a convertir.
flags
Si wxPGPropValFormatFlags::Null (valor predeterminado), se devuelve la cadena mostrada. Si se establece wxPGPropValFormatFlags::FullValue, devuelve el valor completo de la cadena almacenable en lugar del valor visualizable. Si se establece wxPGPropValFormatFlags::EditableValue, devuelve el valor de la cadena que debe ser editable en textctrl. Si se establece wxPGPropValFormatFlags::CompositeFragment, devuelve el texto adecuado para mostrar como parte de la representación de texto compuesto de la propiedad de cadena.
Observaciones

La implementación predeterminada llama a GenerateComposedValue().

Reimplementado desde wxPGProperty.

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxPGProperty y wxObject.