Clase wxPGProperty
wxPGProperty es la clase base para todas las propiedades de wxPropertyGrid y, como tal, no está pensada para ser instanciada directamente.
Jerarquía:
En las secciones siguientes tratamos algunos temas relacionados.
Clases de propiedades suministradas listas para usar
A continuación se incluye una lista y una breve descripción de las clases de propiedades totalmente funcionales suministradas. Se encuentran en props.h o advprops.h.
- wxArrayStringProperty
- wxBoolProperty
- wxColourProperty
- wxCursorProperty
- wxDateProperty
- wxDirProperty
- wxEditEnumProperty
- wxEnumProperty
- wxFileProperty
- wxFlagsProperty
- wxFloatProperty
- wxFontProperty
- wxImageFileProperty
- wxIntProperty
- wxLongStringProperty
- wxMultiChoiceProperty
- wxPropertyCategory
- wxStringProperty
- wxSystemColourProperty
- wxUIntProperty
wxPropertyCategory
No es una propiedad real en sí misma, sino un encabezado para un grupo de propiedades. Independientemente, hereda de wxPGProperty y admite la visualización de "etiquetas" para columnas distintas de la primera. La forma más sencilla de establecer la etiqueta de categoría para la segunda columna es llamar a wxPGProperty::SetValue() con un argumento de cadena.
wxStringProperty
Propiedad de cadena simple.
Atributos especiales compatibles:
- wxPG_STRING_PASSWORD: Establecer en verdadero para mostrar el valor como asteriscos y utilizar wxTE_PASSWORD en el editor (wxTextCtrl).
- wxPG_ATTR_AUTOCOMPLETE: Establecer en verdadero para habilitar el autocompletado (utilizar un valor wxArrayString), y también es compatible con cualquier propiedad que utilice un editor basado en wxTextCtrl.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
Observaciones
wxStringProperty tiene una característica especial: si tiene el valor "<composed>" y también tiene propiedades secundarias, su valor mostrado se convierte en una composición de los valores de las propiedades secundarias, de forma similar a wxFontProperty, por ejemplo.
wxIntProperty
Deriva de wxNumericProperty y muestra el valor como un entero largo con signo. wxIntProperty admite sin problemas enteros de 64 bits (es decir, wxLongLong) en caso de desbordamiento. Para convertir de forma segura un variante a un entero, utilizar un código como este:
wxLongLong ll; ll << property->GetValue(); // o wxLongLong ll = propertyGrid->GetPropertyValueAsLong(property);
Obtención del valor de 64 bits:
wxLongLong_t value = pg->GetPropertyValueAsLongLong();
// o
wxLongLong value;
wxVariant variant = property->GetValue();
if ( variant.IsType(wxPG_VARIANT_TYPE_LONGLONG) )
value = variant.GetLongLong();
else
value = variant.GetLong();
Configuración del valor de 64 bits:
pg->SetPropertyValue(longLongVal); // o property->SetValue(WXVARIANT(longLongVal));
Atributos especiales compatibles:
- wxPG_ATTR_MIN, wxPG_ATTR_MAX para especificar el rango de valores aceptables.
- wxPG_ATTR_SPINCTRL_STEP, wxPG_ATTR_SPINCTRL_WRAP, wxPG_ATTR_SPINCTRL_MOTION: establece los parámetros del editor SpinCtrl.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxUIntProperty
Igual que wxIntProperty, pero muestra el valor como entero sin signo. Para establecer el prefijo utilizado globalmente, establecer el atributo de cadena wxPG_UINT_PREFIX. Para establecer la base utilizada globalmente, establecer el atributo entero wxPG_UINT_BASE. Independientemente del prefijo actual, entiende valores (hexadecimales) que comienzan con "0x" y "$" (aparte del modo de edición). Al igual que wxIntProperty, wxUIntProperty admite sin problemas enteros sin signo de 64 bits (es decir, wxULongLong). Se aplican las mismas reglas de seguridad de wxVariant.
Atributos especiales admitidos:
- wxPG_ATTR_MIN, wxPG_ATTR_MAX: Especifica el rango de valores aceptables.
- wxPG_UINT_BASE: Define la base. Las constantes válidas son wxPG_BASE_OCT, wxPG_BASE_DEC, wxPG_BASE_HEX y wxPG_BASE_HEXL (caracteres en minúscula). No se admiten bases arbitrarias.
- wxPG_UINT_PREFIX: Define el prefijo mostrado. Los valores posibles son wxPG_PREFIX_NONE, wxPG_PREFIX_0x y wxPG_PREFIX_DOLLAR_SIGN. Sólo wxPG_PREFIX_NONE funciona con números decimales y octales.
- wxPG_ATTR_SPINCTRL_STEP, wxPG_ATTR_SPINCTRL_WRAP, wxPG_ATTR_SPINCTRL_MOTION: Establece los parámetros del editor SpinCtrl.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
Observaciones
Para ver un ejemplo de cómo utilizar la compatibilidad con enteros de 64 bits sin interrupciones, consultar la documentación de wxIntProperty (simplemente utilizar wxULongLong en lugar de wxLongLong).
wxFloatProperty
Igual que wxStringProperty, pero convierte el texto en un número flotante de doble precisión. La precisión predeterminada de flotante a texto es de 6 decimales, pero se puede cambiar modificando el atributo wxPG_FLOAT_PRECISION.
Hay que tener en cuenta que al mostrar el valor, se omite el signo si la representación textual resultante es efectivamente cero (por ejemplo, -0,0001 con una precisión de 3 se convertirá en 0,0 en lugar de -0,0). Este comportamiento es diferente al de la biblioteca estándar de C, pero debería resultar en una mejor experiencia para el usuario final en casi todos los casos.
Atributos especiales compatibles:
- wxPG_ATTR_MIN, wxPG_ATTR_MAX: Especifica el rango de valores aceptables.
- wxPG_FLOAT_PRECISION: Establece la precisión (máxima) utilizada cuando el valor de punto flotante se representa como texto. El valor predeterminado -1 significa la representación más corta de punto flotante de 6 dígitos.
- wxPG_ATTR_SPINCTRL_STEP, wxPG_ATTR_SPINCTRL_WRAP, wxPG_ATTR_SPINCTRL_MOTION: Establece los parámetros del editor SpinCtrl.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxBoolProperty
Representa un valor booleano. Se utiiza wxChoice como control de editor, por defecto. El atributo wxPG_BOOL_USE_CHECKBOX se puede establecer en verdadero para utilizar una casilla de verificación en su lugar.
Atributos especiales compatibles:
- wxPG_BOOL_USE_CHECKBOX: si se establece en true, utiliza el editor de casillas de verificación en lugar del cuadro combinado.
- wxPG_BOOL_USE_DOUBLE_CLICK_CYCLING: si se establece en true, recorre el cuadro combinado en lugar de mostrar la lista.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxLongStringProperty
Similar a wxStringProperty, pero tiene un botón que activa un pequeño cuadro de diálogo de editor de texto. Hay que tener en cuenta que en valores de cadena largos, algunos caracteres de control se escapan: la tabulación se representa con "\t", el salto de línea con "\n", el retorno de carro con "\r" y los caracteres de barra invertida se duplican. Si otro carácter va precedido de una barra invertida, esta se omite.
También hay que tener en cuenta que, dependiendo del sistema, algunas secuencias de caracteres especiales, como por ejemplo "\r\n", pueden interpretarse y presentarse de forma diferente en el editor y, por lo tanto, es posible que dichas secuencias no sean las mismas antes y después de la edición.
Para mostrar un cuadro de diálogo personalizado al pulsar el botón, se puede crear una subclase de wxLongStringProperty y sobrescribir DisplayEditorDialog, de la siguiente manera:
bool DisplayEditorDialog( wxPropertyGrid* propGrid, wxVariant& value ) override
{
wxSize dialogSize(...tamaño del diálogo...);
wxPoint dlgPos = propGrid->GetGoodEditorDialogPosition(this, dialogSize);
// Crear el diálogo dlg en dlgPos. Usar value como el valor de la cadena inicial
...
if ( dlg.ShowModal() == wxID_OK )
{
value = dlg.GetStringValue);
return true;
}
return false;
}
Atributos especiales compatibles:
- wxPG_DIALOG_TITLE: Establece un título específico para el cuadro de diálogo del editor de texto.
wxDirProperty
Igual que wxLongStringProperty, pero el botón activa el selector de directorios.
Atributos especiales compatibles:
- wxPG_DIALOG_TITLE: Establece un título específico para el selector de directorios.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxFileProperty
Igual que wxLongStringProperty, pero el botón activa el selector de archivos. El comodín predeterminado es "Todos los archivos...", pero se puede cambiar configurando el atributo wxPG_FILE_WILDCARD.
Atributos especiales compatibles:
- wxPG_DIALOG_TITLE: establece un título específico para el cuadro de diálogo de archivos.
- wxPG_FILE_DIALOG_STYLE: Establece un estilo wxFileDialog específico para el cuadro de diálogo de archivos.
- wxPG_FILE_WILDCARD: Establece el comodín (consultar wxFileDialog para obtener detalles sobre el formato), "Todos los archivos..." es el valor predeterminado.
- wxPG_FILE_SHOW_FULL_PATH: Valor predeterminado verdadero. Cuando es falso, sólo se muestra el nombre del archivo (es decir, la unidad y el directorio están ocultos).
- wxPG_FILE_SHOW_RELATIVE_PATH: Si se establece, el nombre del archivo se muestra en relación con la cadena de ruta dada.
- wxPG_FILE_INITIAL_PATH: Establece la ruta inicial donde buscar los archivos.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxEnumProperty
Representa una única selección de una lista de opciones. Se utiliza wxOwnerDrawnComboBox para editar el valor.
wxFlagsProperty
Representa un conjunto de bits que caben en un entero largo. Se crean las subpropiedades wxBoolProperty para editar bits individuales. Se crea un Textctrl 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 wxPGProperty::SetChoices(), ya que de lo contrario no se actualizarán correctamente.
wxFlagsProperty admite los mismos atributos que wxBoolProperty.
wxArrayStringProperty
Propiedad que gestiona una lista de cadenas. Permite editar una lista de cadenas en wxTextCtrl y en un cuadro de diálogo independiente.
Atributos especiales compatibles:
- wxPG_ARRAY_DELIMITER: Establece el carácter delimitador de cadenas.
- wxPG_DIALOG_TITLE: Establece un título específico para el cuadro de diálogo del editor. El valor predeterminado es la coma (“,”).
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxDateProperty
Propiedad que representa wxDateTime. El editor predeterminado es DatePickerCtrl, aunque TextCtrl también debería funcionar.
Atributos especiales compatibles:
- wxPG_DATE_FORMAT: Determina el formato de fecha mostrado (con wxDateTime::Format). Se recomienda el valor predeterminado, ya que depende de la configuración regional.
- wxPG_DATE_PICKER_STYLE: Determina el estilo de ventana utilizado con wxDatePickerCtrl. El valor predeterminado es wxDP_DEFAULT | wxDP_SHOWCENTURY. El uso de wxDP_ALLOWNONE habilita la compatibilidad adicional con valores de propiedad no especificados.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxEditEnumProperty
Representa una cadena que se puede editar libremente o seleccionar de una lista de opciones; se utiliza un control de cuadro combinado personalizado para editar el valor.
Observaciones
Utiliza un valor int, similar a wxEnumProperty, a menos que el texto introducido por el usuario no se encuentre entre las opciones (en cuyo caso se utiliza un valor de cadena).
wxMultiChoiceProperty
Permite editar una selección múltiple de una lista de cadenas. Esta propiedad se basa en gran medida en el concepto de wxMultiChoiceDialog. Utiliza el valor wxArrayString.
Atributos especiales compatibles:
- wxPG_ATTR_MULTICHOICE_USERSTRINGMODE: Si es > 0, permite al usuario introducir manualmente cadenas que no están en la lista de opciones. Si este valor es 1, las cadenas del usuario se colocan preferiblemente delante de las opciones válidas. Si el valor es 2, esas cadenas se colocarán detrás de las opciones válidas.
- wxPG_DIALOG_TITLE: Establece un título específico para el cuadro de diálogo del editor.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxImageFileProperty
Propiedad que representa un archivo de imagen (nombre). Similar a wxFileProperty, pero tiene una miniatura de la imagen delante del nombre del archivo y genera automáticamente comodines a partir de los controladores de imágenes disponibles.
Atributos especiales compatibles:
- wxPG_DIALOG_TITLE: establece un título específico para el cuadro de diálogo del archivo.
- wxPG_FILE_DIALOG_STYLE: Establece un estilo wxFileDialog específico para el cuadro de diálogo de archivos.
- wxPG_FILE_WILDCARD: Establece un comodín (consultar wxFileDialog para obtener detalles sobre el formato), "Todos los archivos..." es el valor predeterminado.
- wxPG_FILE_SHOW_FULL_PATH: Valor predeterminado verdadero. Cuando es falso, sólo se muestra el nombre del archivo (es decir, la unidad y el directorio están ocultos).
- wxPG_FILE_SHOW_RELATIVE_PATH: Si se establece, el nombre del archivo se muestra en relación con la cadena de ruta dada.
- wxPG_FILE_INITIAL_PATH: Establece la ruta inicial donde buscar los archivos.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxColourProperty
Editor alternativo útil: Choice.
Representa un wxColour. Se utiliza un wxButton para activar un cuadro de diálogo de selección de color. Existen varias posibilidades de subclases con esta clase. Consultar la sección wxSystemColourProperty más abajo para obtener más detalles.
Atributos especiales compatibles:
- wxPG_COLOUR_HAS_ALPHA: si se establece en true, permite al usuario editar el componente de color alfa.
Ver también identificadores de atributos de propiedad wxPropertyGrid.
wxFontProperty
Representa un wxFont. Se utilizan varias subpropiedades para editar subvalores individuales.
Atributos especiales compatibles:
- wxPG_DIALOG_TITLE: Establece un título específico para el cuadro de diálogo de fuentes.
wxSystemColourProperty
Representa un wxColour y un índice de color del sistema. Se utiliza un wxChoice para editar el valor. La lista desplegable contiene imágenes en color. Hay que tener en cuenta que el tipo de valor es wxColourPropertyValue en lugar de wxColour (que utiliza wxColourProperty).
class wxColourPropertyValue : public wxObject
{
public:
// Un valor entero relacionado con el color, cuyo significado
// exacto depende de la propiedad con la que se utilice.
//
// Para wxSystemColourProperty:
// Cualquiera de wxSYS_COLOUR_XXX, o cualquier color web
// (utilizart la macro wxPG_TO_WEB_COLOUR - (actualmente no
// compatible)), o wxPG_COLOUR_CUSTOM.
wxUint32 m_type;
// Color resultante. Debe ser correcto independientemente del tipo.
wxColour m_colour;
};
En wxSystemColourProperty y su clase derivada wxColourProperty hay varias características de subclases. Para establecer una lista básica de nombres de colores, llamar a wxPGProperty::SetChoices().
// Anular en la clase derivada para personalizar cómo se traducen // los colores a cadenas. virtual wxString ColourToString( const wxColour& col, int index ) const; // Devuelve el índice de la entrada que activa el cuadro de diálogo del // selector de color (el valor predeterminado es el último). virtual int GetCustomColourIndex() const; // Función auxiliar para mostrar el cuadro de diálogo de color. bool QueryColourFromUser( wxVariant& variant ) const; // Devuelve el color para la opción dada. // La función predeterminada devuelve wxSystemSettings::GetColour(index). virtual wxColour GetColour( int index ) const;
wxCursorProperty
Representa un wxCursor. Se utiliza un wxChoice para editar el valor. La lista desplegable tiene imágenes de cursor en algunas plataformas (wxMSW).
Funciones miembro
~wxPGProperty()
virtual wxPGProperty::~wxPGProperty()
Destructor virtual.
Es habitual que las propiedades derivadas lo implementen.
wxPGProperty()
wxPGProperty::wxPGProperty()
Constructor predeterminado.
Está protegido porque wxPGProperty es sólo una clase base para otras clases de propiedades.
wxPGProperty()
Constructor.
Está protegido porque wxPGProperty es sólo una clase base para otras clases de propiedades. Las clases de propiedades no abstractas deben tener un constructor de este estilo:
MyProperty( const wxString& label, const wxString& name, const T& value )
: wxPGProperty(label, name)
{
// La forma generalmente recomendada de establecer el valor inicial
// (ya que debería funcionar prácticamente en el 100 % de los casos).
wxVariant variant;
variant << value;
SetValue(variant);
// Si tiene propiedades secundarias privadas, crearlas aquí.
// Por ejemplo:
// AddPrivateChild( new wxStringProperty("Subprop 1",
// wxPG_LABEL,
// value.GetSubProp1()));
}
AdaptiveSetCell()
void wxPGProperty::AdaptiveSetCell( unsigned int firstCol, unsigned int lastCol, const wxPGCell & preparedCell, const wxPGCell & srcData, wxPGCellData * unmodCellData, wxPGFlags ignoreWithFlags, bool recursively )
Establece la propiedad de la celda de manera que se reduzca el número de copias exclusivas de los datos de la celda.
Se utiliza, por ejemplo, al establecer el mismo color de fondo para varias propiedades.
Parámetros
- firstCol
- Primera columna a la que afecta.
- lastCol
- Última columna a la que afecta.
- preparedCell
- Celda preparada previamente que se utiliza para aquellas cuyos datos coincidían con unmodCellData.
- srcData
- Si unmodCellData no coincidió, los datos válidos de la celda se fusionan en la celda (por lo general, generando una nueva copia exclusiva de los datos de la celda).
- unmodCellData
- Si los datos de la celda coinciden con esto, su celda ahora se establece en preparedCell.
- ignoreWithFlags
- Se omiten las propiedades con cualquiera de estas banderas.
- recursively
- Si es verdadero, aplicar esta operación de forma recursiva en las propiedades secundarias.
AdaptListToValue()
Adapta la variante de la lista al valor adecuado mediante llamadas consecutivas a ChildChanged().
AddChoice()
int wxPGProperty::AddChoice( const wxString & label, int value = wxPG_INVALID_VALUE )
Añade una nueva opción a la lista de opciones de la propiedad.
Parámetros
- label
- Etiqueta de la opción añadida.
- value
- Valor de la nueva opción. No especificar si se desea que sea igual al índice de la opción.
Valor de retorno
Índice de la opción añadida.
AddPrivateChild()
void wxPGProperty::AddPrivateChild(wxPGProperty * prop)
Añade una propiedad secundaria privada.
Si se utiliza en lugar de wxPropertyGridInterface::Insert() o wxPropertyGridInterface::AppendIn(), el tipo principal de la propiedad se configurará automáticamente como wxPGFlags::Aggregate. En otras palabras, todas las propiedades de esta propiedad pasarán a ser privadas.
AppendChild()
wxPGProperty* wxPGProperty::AppendChild(wxPGProperty * childProperty)
Utilizar esta función miembro para añadir hijos independientes (es decir, normales) a una propiedad.
Valor de retorno
La propiedad secundaria añadida.
Observaciones
wxPropertyGrid no se actualiza automáticamente con esta función.
AreAllChildrenSpecified()
bool wxPGProperty::AreAllChildrenSpecified(const wxVariant * pendingList = nullptr) const
Determina, de forma recursiva, si todos los hijos no están sin especificar.
Parámetros
- pendingList
- Asume que los miembros de esta lista wxVariant son valores de sustitución pendientes.
AreChildrenComponents()
bool wxPGProperty::AreChildrenComponents() const
Devuelve verdadero si los hijos de esta propiedad son valores de componente (por ejemplo, el tamaño de los puntos, el nombre de la cara y is_underlined son valores de componente de una fuente).
ChangeFlag()
void wxPGProperty::ChangeFlag( wxPGFlags flag, bool set )
Establece o borra el indicador de propiedad dado.
Principalmente para uso interno.
Observaciones
Establecer un indicador de propiedad nunca tiene ningún efecto secundario y está destinado casi exclusivamente para uso interno. Por lo tanto, por ejemplo, si se desea desactivar una propiedad, llamar a
Enable(false)
en lugar de establecer el indicador wxPGFlags::Disabled.
ChildChanged()
virtual wxVariant wxPGProperty::ChildChanged( wxVariant & thisValue, int childIndex, wxVariant & childValue ) const
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 solo 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;
...
}
// Devolver el data alterado
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 (se 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 en wxFlagsProperty y wxFontProperty.
ClearCells()
void wxPGProperty::ClearCells( wxPGFlags ignoreWithFlags, bool recursively )
Borrar las celdas asociadas a la propiedad.
Parámetros
- ignoreWithFlags
- No se borrarán las celdas de las propiedades que tengan estas banderas activadas.
- recursively
- Si es verdadero, aplicar esta operación de forma recursiva en las propiedades secundarias.
DeleteChildren()
void wxPGProperty::DeleteChildren()
Elimina los hijos de la propiedad.
DeleteChoice()
void wxPGProperty::DeleteChoice(int index)
Elimina la entrada del control wxPGChoices y del editor de la propiedad (si está activo).
Si se elimina el elemento seleccionado, el valor se establece en "sin especificar".
DoAddChild()
void wxPGProperty::DoAddChild( wxPGProperty * prop, int index = -1, bool correct_mode = true )
Esto es utilizado por Insert, etc.
DoGetAttribute()
Devuelve el valor de un atributo.
Sobrescribir si se necesita un manejo personalizado de los atributos.
La implementación predeterminada simplemente devuelve el variant nullptr.
DoGetEditorClass()
virtual const wxPGEditor* wxPGProperty::DoGetEditorClass() const
Devuelve un puntero a una instancia del editor utilizado.
DoGetValidator()
virtual wxValidator* wxPGProperty::DoGetValidator() const
Devuelve el puntero al wxValidator que debe utilizarse con el editor de esta propiedad (nullptr si no hay validador).
Si se establece el validador explícitamente mediante SetPropertyValidator, se anulará esta configuración.
En la mayoría de los casos, un código como este debería funcionar correctamente (se utilizan macros para mantener una instancia de validador real, por lo que en la segunda llamada la función sale dentro de la primera macro):
wxValidator* wxMyPropertyClass::DoGetValidator () const
{
WX_PG_DOGETVALIDATOR_ENTRY()
wxMyValidator* validator = new wxMyValidator(...);
... preparar validador...
WX_PG_DOGETVALIDATOR_EXIT(validator)
}
Observaciones
Se puede obtener el validador de nombres de archivo común devolviendo wxFileProperty::GetClassValidator(). wxDirProperty, por ejemplo, lo utiliza.
Reimplementado en wxDirProperty, wxFileProperty, wxFloatProperty, wxUIntProperty y wxIntProperty.
DoGetValue()
virtual wxVariant wxPGProperty::DoGetValue() const
Anular para devolver un valor distinto de m_value como valor.
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 en wxArrayStringProperty, wxFileProperty, wxEditorDialogProperty, wxFlagsProperty, wxBoolProperty, wxFloatProperty, wxUIntProperty, wxNumericProperty, wxStringProperty, wxDateProperty y wxSystemColourProperty.
Empty()
void wxPGProperty::Empty()
Elimina todas las propiedades secundarias.
Enable()
void wxPGProperty::Enable(bool enable = true)
Activa o desactiva la propiedad.
Las propiedades desactivadas suelen aparecer con texto gris.
Parámetros
- enable
- Si es falso, la propiedad se desactiva.
EnableCommonValue()
void wxPGProperty::EnableCommonValue(bool enable = true)
Llamada para habilitar o deshabilitar el uso de valores comunes (valores enteros que se pueden seleccionar para las propiedades en lugar de sus valores normales) para esta propiedad.
Los valores comunes están deshabilitados de forma predeterminada para todas las propiedades.
EnsureCells()
void wxPGProperty::EnsureCells(unsigned int column)
Se asegura de que m_cells tenga un tamaño igual a column+1 (o más).
GenerateComposedValue()
wxString wxPGProperty::GenerateComposedValue() const
Compone texto a partir de los valores de las propiedades secundarias.
GetAttribute()
Devuelve el valor del atributo de propiedad, variant nula si no se encuentra.
Observaciones
Para los atributos integrados, devuelve una variant nula si se establece el estilo adicional wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES.
GetAttribute()
Devuelve el atributo nombrado, como cadena, si se encuentra.
De lo contrario, se devuelve defVal.
Observaciones
Para los atributos integrados, devuelve defVal si se establece el estilo adicional wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES.
GetAttributeAsDouble()
double wxPGProperty::GetAttributeAsDouble( const wxString & name, double defVal ) const
Devuelve el atributo nombrado, como flotante de precisión doble, si se encuentra.
De lo contrario, se devuelve defVal.
Observaciones
Para los atributos integrados, devuelve defVal si se establece el estilo adicional wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES.
GetAttributeAsLong()
long wxPGProperty::GetAttributeAsLong( const wxString & name, long defVal ) const
Devuelve el atributo nombrado, como un entero largo, si se encuentra.
De lo contrario, se devuelve defVal.
Observaciones
Para los atributos integrados, devuelve defVal si se establece el estilo adicional wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES.
GetAttributes()
const wxPGAttributeStorage& wxPGProperty::GetAttributes() const
Devuelve un almacenamiento similar a un mapa de los atributos de la propiedad.
Observaciones
Si se establece el estilo adicional wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES, los atributos integrados no se incluyen en el almacenamiento.
GetAttributesAsList()
wxVariant wxPGProperty::GetAttributesAsList() const
Devuelve los atributos como una lista wxVariant.
Observaciones
Si se establece el estilo adicional wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES, los atributos integrados no se incluyen en la lista.
GetBaseName()
const wxString& wxPGProperty::GetBaseName() const
Devuelve el nombre base de la propiedad (es decir, el nombre del padre no se añade en ningún caso).
GetCell()
wxPGCell& wxPGProperty::GetCell(unsigned int column)
Devuelve wxPGCell de la columna dada, creando una si es necesario.
GetCell()
const wxPGCell& wxPGProperty::GetCell(unsigned int column) const
GetCellRenderer()
virtual wxPGCellRenderer* wxPGProperty::GetCellRenderer(int column) const
Devuelve la instancia wxPGCellRenderer utilizada para la columna de propiedad dada (etiqueta=0, valor=1).
La implementación predeterminada devuelve el renderizador del editor para todas las columnas.
GetChildCount()
unsigned int wxPGProperty::GetChildCount() const
Devuelve el número de propiedades secundarias.
GetChildrenHeight()
int wxPGProperty::GetChildrenHeight( int lh, int iMax = -1 ) const
Devuelve la altura de los hijos, de forma recursiva y teniendo en cuenta el estado expandido/colapsado.
Parámetros
- lh
- Altura de línea. Pasa aquí el resultado de GetGrid()->GetRowHeight().
- iMax
- Sólo se utiliza (internamente) al buscar las posiciones y de las propiedades.
GetChoices()
const wxPGChoices& wxPGProperty::GetChoices() const
Devuelve una referencia de sólo lectura a la lista de opciones de la propiedad.
GetChoiceSelection()
virtual int wxPGProperty::GetChoiceSelection() const
Devuelve la opción seleccionada actualmente.
Sólo se aplica a 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, booleanos y cadenas suelen hacerlo.
Reimplementado en wxFlagsProperty y wxEnumProperty.
GetClientData()
void* wxPGProperty::GetClientData() const
Devuelve los datos del cliente (void*) de una propiedad.
GetClientObject()
wxClientData* wxPGProperty::GetClientObject() const
Obtiene el objeto cliente gestionado de una propiedad.
GetColumnEditor()
const wxPGEditor* wxPGProperty::GetColumnEditor(int column) const
Devuelve el editor utilizado para una columna determinada.
nullptr si no hay editor.
GetCommonValue()
int wxPGProperty::GetCommonValue() const
Devuelve el valor común seleccionado para esta propiedad.
-1 para ninguno.
GetDefaultValue()
wxVariant wxPGProperty::GetDefaultValue() const
Devuelve el valor predeterminado de la propiedad.
Si el tipo de valor de la propiedad no es uno integrado y no se ha definido el atributo "DefaultValue", esta función suele devolver el variant Null.
GetDepth()
unsigned int wxPGProperty::GetDepth() const
GetDisplayedCommonValueCount()
int wxPGProperty::GetDisplayedCommonValueCount() const
Devuelve el número de valores comunes mostrados para esta propiedad.
GetDisplayedString()
wxString wxPGProperty::GetDisplayedString() const
Devuelve el texto mostrado de la propiedad.
GetEditorClass()
const wxPGEditor* wxPGProperty::GetEditorClass() const
Devuelve wxPGEditor que se utilizará y creará cuando se seleccione la propiedad.
Devuelve un valor más preciso que DoGetEditorClass().
GetEditorDialog()
virtual wxPGEditorDialogAdapter* wxPGProperty::GetEditorDialog() const
Devuelve una instancia de una nueva instancia de wxPGEditorDialogAdapter, que se utiliza cuando el usuario pulsa el botón (opcional) situado junto al control del editor.
La implementación predeterminada devuelve nullptr (es decir, no se genera ninguna acción cuando se pulsa el botón).
Reimplementado en wxEditorDialogProperty.
GetFlagsAsString()
Obtiene indicadores como una cadena delimitada por "|".
Hay que tener en cuenta que los nombres de los indicadores no van precedidos de "wxPGFlags".
Parámetros
- flagsMask
- La cadena sólo incluirá los indicadores combinados por este parámetro.
GetGrid()
wxPropertyGrid* wxPGProperty::GetGrid() const
Devuelve la cuadrícula de propiedades donde se encuentra la propiedad.
GetGridIfDisplayed()
wxPropertyGrid* wxPGProperty::GetGridIfDisplayed() const
Devuelve el propietario wxPropertyGrid, pero sólo si hay uno actualmente en una página que muestra esta propiedad.
GetHelpString()
const wxString& wxPGProperty::GetHelpString() const
Devuelve el texto de ayuda o descripción de la propiedad.
GetHintText()
wxString wxPGProperty::GetHintText() const
Devuelve el texto de sugerencia de la propiedad (que se muestra en la celda de valor vacía).
GetImageOffset()
int wxPGProperty::GetImageOffset(int imageWidth) const
Convierte el ancho de la imagen en un desplazamiento completo de la imagen, con márgenes.
GetIndexInParent()
unsigned int wxPGProperty::GetIndexInParent() const
Devuelve la posición en la matriz principal.
GetItemAtY()
wxPGProperty* wxPGProperty::GetItemAtY(unsigned int y) const
Devuelve la propiedad en la coordenada y virtual dada.
GetLabel()
const wxString& wxPGProperty::GetLabel() const
Devuelve la etiqueta de la propiedad.
GetLastVisibleSubItem()
const wxPGProperty* wxPGProperty::GetLastVisibleSubItem() const
Devuelve la última propiedad secundaria visible, de forma recursiva.
GetMainParent()
wxPGProperty* wxPGProperty::GetMainParent() const
Devuelve el padre de nivel más alto que no sea categoría ni raíz.
Útil cuando se tienen propiedades anidadas con hijos.
Observaciones
Si el padre inmediato es raíz o categoría, devolverá la propia propiedad.
GetMaxLength()
int wxPGProperty::GetMaxLength() const
Devuelve la longitud máxima permitida del texto que el usuario puede introducir en el editor de texto de la propiedad.
Observaciones
Se devuelve 0 si la longitud no está limitada explícitamente y el texto puede ser tan largo como lo permita el widget de control de texto nativo subyacente.
GetName()
wxString wxPGProperty::GetName() const
Devuelve el nombre de la propiedad con todos los padres (que no sean de categoría ni raíz).
GetOrCreateCell()
wxPGCell& wxPGProperty::GetOrCreateCell(unsigned int column)
Devuelve el wxPGCell de la columna dada, creando una si es necesario.
GetParent()
wxPGProperty* wxPGProperty::GetParent() const
Devuelve el padre de la propiedad.
GetPropertyByName()
wxPGProperty* wxPGProperty::GetPropertyByName(const wxString & name) const
Devuelve la propiedad secundaria (directa) con el nombre dado (o nullptr si no se encuentra).
Parámetros
- name
- Nombre de la propiedad secundaria que se busca.
GetPropertyByNameWH()
wxPGProperty* wxPGProperty::GetPropertyByNameWH( const wxString & name, unsigned int hintIndex ) const
Devuelve la propiedad secundaria (directa) con el nombre dado (o nullptr si no se encuentra), con el índice sugerido.
Parámetros
- name
- Nombre de la propiedad secundaria que se busca.
- hintIndex
- Comienza a buscar la propiedad secundaria en este índice.
Observaciones
No admite el ámbito (es decir, la notación Parent.Child).
GetValidator()
wxValidator* wxPGProperty::GetValidator() const
Obtiene la versión asignable del validador de la propiedad.
GetValue()
wxVariant wxPGProperty::GetValue() const
Devuelve el valor de la propiedad.
GetValueAsString()
virtual wxString wxPGProperty::GetValueAsString(wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null) const
Devuelve la representación textual del valor de la propiedad.
Parámetros
- 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
En versiones anteriores, esta función se sobrescribía para convertir el valor de la propiedad en una representación de cadena. Ahora esta función la gestiona ValueToString(), y sobrescribirla provocará un error de assert en tiempo de ejecución.
Reimplementada en wxPropertyCategory.
GetValueImage()
wxBitmap* wxPGProperty::GetValueImage() const
Devuelve el mapa de bits que aparece junto al texto del valor.
Sólo devuelve un mapa de bits no nulo si se ha establecido uno con SetValueImage().
GetValueType()
wxString wxPGProperty::GetValueType() const
Devuelve el tipo de valor utilizado por esta propiedad.
GetY()
int wxPGProperty::GetY() const
Devuelve la coordenada a la parte superior y de la propiedad.
Hay que tener en cuenta que no se tiene en cuenta la posición de las barras de desplazamiento.
HasAnyChild()
bool wxPGProperty::HasAnyChild() const
Comprueba si hay alguna propiedad secundaria.
HasFlag()
bool wxPGProperty::HasFlag(wxPGFlags flag) const
Devuelve verdadero si la propiedad tiene el indicador establecido.
HasFlagsExact()
bool wxPGProperty::HasFlagsExact(wxPGFlags flags) const
Devuelve verdadero si la propiedad tiene todos los indicadores especificados establecidos.
HasVisibleChildren()
bool wxPGProperty::HasVisibleChildren() const
Devuelve verdadero si la propiedad tiene al menos un elemento secundario visible.
Hide()
bool wxPGProperty::Hide( bool hide, wxPGPropertyValuesFlags flags = wxPGPropertyValuesFlags::Recurse )
Oculta o muestra la propiedad.
Parámetros
- hide
- true para ocultar, false para mostrar.
- flags
- De forma predeterminada, los cambios se aplican de forma recursiva. Establecer este parámetro en wxPGPropertyValuesFlags::DontRecurse para evitarlo.
Index()
int wxPGProperty::Index(const wxPGProperty * p) const
Devuelve el índice de la propiedad secundaria dada.
wxNOT_FOUND si la propiedad dada no es secundaria de esta.
InsertChild()
wxPGProperty* wxPGProperty::InsertChild( int index, wxPGProperty * childProperty )
Utilizar esta función miembro para añadir hijos independientes (es decir, normales) a una propiedad.
Valor de retorno
La propiedad secundaria insertada.
Observaciones
wxPropertyGrid no se actualiza automáticamente con esta función.
InsertChoice()
int wxPGProperty::InsertChoice( const wxString & label, int index, int value = wxPG_INVALID_VALUE )
Inserta una nueva opción en la lista de opciones de la propiedad.
Parámetros
- label
- Texto para la nueva opción.
- index
- Posición de inserción. Utilizar wxNOT_FOUND para añadir.
- value
- Valor para la nueva opción. No especificarlo si se desea que sea igual al índice de la opción.
IntToValue()
virtual bool wxPGProperty::IntToValue( wxVariant & variant, int number, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null ) const
Convierte un entero (posiblemente una selección) 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.
- number
- Entero que se va a traducir a variante.
- flags
- Si se establece wxPGPropValFormatFlags::FullValue, devuelve el valor completo y almacenable en lugar del valor visible.
Valor de retorno
Devuelve verdadero si el valor wxVariant resultante era diferente.
Observaciones
Si no se supone que la propiedad utilice choice, spinctrl u otro editor con valores basados en enteros, no es necesario implementar este método.
La implementación predeterminada simplemente asigna el entero dado a m_value.
Si la propiedad utiliza el control choice y muestra un cuadro de diálogo en algunos elementos de elección, es preferible mostrar ese cuadro de diálogo en IntToValue en lugar de en OnEvent.
Es posible que se desee tener en cuenta que m_value es una variante Null si el valor de la propiedad no está especificado (lo que normalmente sólo ocurre si ha habilitado explícitamente ese comportamiento de clasificación).
Reimplementado en wxEnumProperty, wxBoolProperty, wxUIntProperty, wxIntProperty y wxSystemColourProperty.
IsCategory()
bool wxPGProperty::IsCategory() const
Devuelve verdadero si esta propiedad es realmente una wxPropertyCategory.
IsChildSelected()
bool wxPGProperty::IsChildSelected(bool recursive = false) const
Devuelve verdadero si la propiedad secundaria está seleccionada.
IsEnabled()
bool wxPGProperty::IsEnabled() const
Devuelve verdadero si la propiedad está habilitada.
IsExpanded()
bool wxPGProperty::IsExpanded() const
Devuelve verdadero si la propiedad tiene hijos visibles.
IsRoot()
bool wxPGProperty::IsRoot() const
Devuelve verdadero si esta propiedad es realmente una wxRootProperty.
IsSomeParent()
bool wxPGProperty::IsSomeParent(wxPGProperty * candidateParent) const
Devuelve verdadero si candidateParent es algún antecesor de esta propiedad.
Usarlo, por ejemplo, para detectar si el elemento se encuentra dentro de una sección colapsada.
IsSubProperty()
bool wxPGProperty::IsSubProperty() const
Devuelve verdadero si se trata de una subpropiedad.
IsTextEditable()
bool wxPGProperty::IsTextEditable() const
Devuelve verdadero si la propiedad tiene wxTextCtrl editable cuando se selecciona.
Observaciones
Aunque las propiedades deshabilitadas no se muestran en el editor, aquí siguen devolviendo verdadero, ya que la deshabilitación se considera una condición temporal (a diferencia de ser de sólo lectura o tener habilitada la edición limitada).
IsValueUnspecified()
bool wxPGProperty::IsValueUnspecified() const
Devuelve verdadero si el valor de la propiedad se considera no especificado.
Esto suele significar que el valor es una variante nula.
IsVisible()
bool wxPGProperty::IsVisible() const
Devuelve verdadero si todos los padres están expandidos.
Item()
wxPGProperty* wxPGProperty::Item(unsigned int i) const
Devuelve la propiedad secundaria en el índice i.
Last()
wxPGProperty* wxPGProperty::Last() const
Devuelve la última subpropiedad.
OnCustomPaint()
virtual void wxPGProperty::OnCustomPaint( wxDC & dc, const wxRect & rect, wxPGPaintData & paintdata )
Anular para pintar una imagen delante del texto del valor de la propiedad o del elemento de la lista desplegable (pero sólo si también se anula wxPGProperty::OnMeasureImage).
Si OnMeasureImage() de la propiedad devuelve un tamaño cuya altura es != 0 pero menor que la altura de la fila ( < 0 tiene un significado especial), wxPropertyGrid llama a este método para dibujar una imagen personalizada en un área limitada delante del control del editor o del texto/gráficos del valor, y si el control tiene una lista desplegable, la imagen también se dibuja allí (incluso en el caso de que OnMeasureImage() devuelva una altura mayor que la altura de la fila).
Nota: Lo siguiente se aplica cuando OnMeasureImage() devuelve una altura "flexible" (utilizando la macro wxPG_FLEXIBLE_SIZE(W,H)), lo que implica elementos de altura variable: Si (rect.x+rect.width) es < 0, entonces se trata de una llamada a un elemento de medida, lo que significa que dc no es válido y lo único que se debe hacer es establecer paintdata.m_drawnHeight en la altura de la imagen del elemento en el índice paintdata.m_choiceItem. Esta llamada se puede realizar incluso una vez cada vez que se muestra el menú desplegable.
Parámetros
- dc
- wxDC sobre el que pintar.
- rect
- Cuadro reservado para gráficos personalizados. Incluye el rectángulo circundante, si lo hay. Si x+width es < 0, entonces se trata de una llamada a un elemento de medida (véase más arriba).
- paintdata
- Estructura wxPGPaintData con muchos datos útiles sobre el elemento pintado.
struct wxPGPaintData
{
// wxPropertyGrid.
const wxPropertyGrid* m_parent;
// Normalmente -1, de lo contrario, índice del elemento de la lista desplegable que se debe dibujar.
int m_choiceItem;
// Establecer el ancho dibujado en OnCustomPaint (opcional).
int m_drawnWidth;
// En una llamada a un elemento de medida, establecer en la altura del elemento en el índice m_choiceItem.
int m_drawnHeight;
};
Observaciones
- En realidad, se puede superar el ancho del rectángulo, pero si se hace, paintdata.m_drawnWidth debe establecerse en el ancho total dibujado en píxeles.
- Por motivos técnicos, la altura del rectángulo será la predeterminada, incluso si se ha especificado una altura personalizada durante la llamada de medición.
- Se garantiza que el pincel será del color de fondo predeterminado. Ya se ha utilizado para borrar el fondo del área que se está pintando. Se puede modificar.
- Se garantiza que el lápiz será de 1 de ancho y de color "negro" (o el color adecuado) para dibujar el rectángulo del marco. También se puede cambiar.
Reimplementado en wxImageFileProperty, wxCursorProperty y wxSystemColourProperty.
OnEvent()
virtual bool wxPGProperty::OnEvent( wxPropertyGrid * propgrid, wxWindow * wnd_primary, wxEvent & event )
Los eventos recibidos por los widgets del editor se procesan aquí.
Hay que tener en cuenta que la clase del editor suele procesar la mayoría de los eventos. Algunos, como los eventos de pulsación de botones de la clase TextCtrlAndButton, se pueden gestionar aquí. Además, si se desea una gestión personalizada de los eventos habituales, también se puede hacer (por ejemplo, wxSystemColourProperty gestiona de forma personalizada wxEVT_CHOICE para mostrar el cuadro de diálogo del selector de color cuando se realiza una selección "personalizada").
Si el evento provoca un cambio en el valor, se debe llamar a SetValueInEvent() para establecer el nuevo valor.
El parámetro event es el wxEvent asociado.
Valor de retorno
Debe devolver true si se debe informar de cualquier cambio en el valor.
Observaciones
Si la propiedad utiliza un control de selección y muestra un cuadro de diálogo en algunos elementos de selección, es preferible mostrar ese cuadro de diálogo en IntToValue en lugar de en OnEvent.
Reimplementado en wxSystemColourProperty.
OnMeasureImage()
virtual wxSize wxPGProperty::OnMeasureImage(int item = -1) const
Devuelve el tamaño de la imagen pintada personalizada delante de la propiedad.
Este método debe sobrescribirse para devolver un valor no predeterminado si se va a llamar a OnCustomPaint.
Parámetros
- item
- Normalmente -1, pero puede ser un índice de la lista de elementos de la propiedad.
Observaciones
El comportamiento predeterminado es devolver wxSize(0,0), lo que significa que no hay imagen.
El ancho o alto predeterminado de la imagen se indica con la dimensión -1.
También se puede devolver wxPG_DEFAULT_IMAGE_SIZE, que es igual a wxDefaultSize.
Reimplementado en wxImageFileProperty, wxCursorProperty y wxSystemColourProperty.
OnSetValue()
virtual void wxPGProperty::OnSetValue()
Esta función virtual se invoca después de establecer m_value.
Observaciones
Si m_value se ha establecido en la variante Null (es decir, valor no especificado), no se invocará 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 realiza ninguna acción.
Reimplementada en wxEditEnumProperty, wxArrayStringProperty, wxFileProperty, wxFlagsProperty, wxEnumProperty, wxStringProperty, wxDateProperty, wxMultiChoiceProperty, wxImageFileProperty, wxSystemColourProperty y wxFontProperty.
OnValidationFailure()
virtual void wxPGProperty::OnValidationFailure(wxVariant & pendingValue)
Se llama cada vez que falla la validación con un valor pendiente determinado.
Observaciones
Si implementa en una clase de propiedad personalizada, recordar llamar también a la implementación base, ya que pueden utilizarla para revertir la propiedad al estado anterior al cambio.
RecreateEditor()
bool wxPGProperty::RecreateEditor()
Si se crea el editor de la propiedad, esto fuerza su recreación.
Útil en SetAttribute, etc. Devuelve verdadero si realmente hizo algo.
RefreshChildren()
virtual void wxPGProperty::RefreshChildren()
Actualiza los valores de las propiedades secundarias.
Se llama automáticamente después de establecer el valor.
Reimplementado en wxFlagsProperty y wxFontProperty.
RefreshEditor()
void wxPGProperty::RefreshEditor()
Si el editor de la propiedad está activo, actualiza su valor.
SetAttribute()
Establece un atributo para esta propiedad.
Parámetros
- name
- Identificador de texto del atributo. Consultar Identificadores de atributos de propiedad de wxPropertyGrid.
- value
- Valor del atributo.
Observaciones
Establecer el valor del atributo en la variante Null simplemente lo eliminará del conjunto de atributos de la propiedad.
SetAttributes()
void wxPGProperty::SetAttributes(const wxPGAttributeStorage & attributes)
SetAutoUnspecified()
void wxPGProperty::SetAutoUnspecified(bool enable = true)
Establece si el usuario puede cambiar el valor de la propiedad a no especificado modificando el valor del control del editor (normalmente borrándolo).
Actualmente, esto puede funcionar con las siguientes propiedades: wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty.
Parámetros
- enable
- Si se habilita o deshabilita este comportamiento (está deshabilitado por defecto).
SetBackgroundColour()
void wxPGProperty::SetBackgroundColour( const wxColour & colour, wxPGPropertyValuesFlags flags = wxPGPropertyValuesFlags::Recurse )
Establece el color de fondo de la propiedad.
Parámetros
- color
- Color de fondo que se va a utilizar.
- flags
- El valor predeterminado es wxPGPropertyValuesFlags::Recurse, lo que hace que el color se establezca de forma recursiva. Omitir esta bandera para establecer sólo el color de la propiedad en cuestión y no el de ninguna de sus propiedades secundarias.
Observaciones
A diferencia de wxPropertyGridInterface::SetPropertyBackgroundColour(), esto no actualiza automáticamente la visualización.
SetCell()
void wxPGProperty::SetCell( int column, const wxPGCell & cell )
Establece la información de celda para una columna determinada.
SetChoices()
bool wxPGProperty::SetChoices(wxPGChoices & choices)
Establece un nuevo conjunto de opciones para la propiedad.
Observaciones
Esta operación deselecciona la propiedad y borra su valor.
SetChoiceSelection()
void wxPGProperty::SetChoiceSelection(int newValue)
Establece la opción seleccionada y cambia el valor de la propiedad.
Intenta conservar el tipo de valor, aunque actualmente, si no es una cadena, se fuerza a entero.
Si newValue es wxNOT_FOUND (-1), el valor de la propiedad se restablece a no especificado, como si se hubiera llamado a SetValueToUnspecified().
SetClientData()
void wxPGProperty::SetClientData(void * clientData)
Establece los datos del cliente (void*) de una propiedad.
Observaciones
Estos datos del cliente sin tipo deben eliminarse manualmente.
SetClientObject()
void wxPGProperty::SetClientObject(wxClientData * clientObject)
Establece el objeto cliente de una propiedad.
SetCommonValue()
void wxPGProperty::SetCommonValue(int commonValue)
Establece el valor común seleccionado para esta propiedad.
-1 para ninguno.
SetDefaultColours()
void wxPGProperty::SetDefaultColours(wxPGPropertyValuesFlags flags = wxPGPropertyValuesFlags::Recurse)
Establece los colores predeterminados del texto y el fondo de la propiedad.
Parámetros
- flags
- El valor predeterminado es wxPGPropertyValuesFlags::Recurse, lo que hace que los colores se establezcan de forma recursiva. Omitir esta bandera para establecer sólo los colores de la propiedad en cuestión y no los de sus elementos secundarios.
Observaciones
A diferencia de wxPropertyGridInterface::SetPropertyColoursToDefault(), esto no actualiza automáticamente la visualización.
SetDefaultValue()
void wxPGProperty::SetDefaultValue(wxVariant & value)
Establece el valor predeterminado de una propiedad.
Sinónimo de
SetAttribute("DefaultValue", value);
SetEditor()
void wxPGProperty::SetEditor(const wxPGEditor * editor)
Establece el editor para una propiedad.
Parámetros
- editor
- Para editores integrados, utilizar wxPGEditor_X, donde X es el nombre del editor integrado (TextCtrl, Choice, etc. Consultar la documentación de wxPGEditor para obtener la lista completa).
Para editores personalizados, utilizar el puntero que ha recibido de wxPropertyGrid::RegisterEditorClass().
SetEditor()
void wxPGProperty::SetEditor(const wxString & editorName)
Establece el editor de una propiedad, por nombre de editor.
SetExpanded()
void wxPGProperty::SetExpanded(bool expanded)
SetFlagRecursively()
void wxPGProperty::SetFlagRecursively( wxPGFlags flag, bool set )
Establece o borra el indicador de propiedad dado, de forma recursiva.
Esta función está destinada principalmente al uso interno.
SetFlagsFromString()
void wxPGProperty::SetFlagsFromString(const wxString & str)
Establece indicadores a partir de una cadena delimitada por "|".
Hay que tener en cuenta que los nombres de los indicadores no van precedidos de "wxPGFlags".
SetHelpString()
void wxPGProperty::SetHelpString(const wxString & helpString)
Establece la cadena de ayuda de la propiedad, que se muestra, por ejemplo, en el cuadro de texto de descripción de wxPropertyGridManager.
SetLabel()
void wxPGProperty::SetLabel(const wxString & label)
Establece la etiqueta de la propiedad.
Observaciones
Las propiedades bajo el mismo padre pueden tener las mismas etiquetas. Sin embargo, los nombres de las propiedades deben seguir siendo únicos. A diferencia de wxPropertyGridInterface::SetPropertyLabel(), esto no actualiza automáticamente la visualización.
SetMaxLength()
bool wxPGProperty::SetMaxLength(int maxLen)
Establece la longitud máxima del texto que el usuario puede introducir en el editor de texto asociado a la propiedad.
No afecta a la representación textual del valor ya almacenado cuando se establece el límite, ni afecta a la longitud de la representación textual del valor establecido mediante programación, por ejemplo, con SetValue() o wxPropertyGridInterface::SetPropertyValue(). Si maxLen es 0, la longitud no está limitada y el texto puede ser tan largo como lo permita el widget de control de texto nativo subyacente.
Valor de retorno
Devuelve true si se ha establecido la longitud máxima.
SetModifiedStatus()
void wxPGProperty::SetModifiedStatus(bool modified)
Establece el indicador "¿está modificado?" de la propiedad.
Afecta a los hijos de forma recursiva.
SetName()
void wxPGProperty::SetName(const wxString & newName)
Establece un nuevo nombre (base) para la propiedad.
SetParentalType()
void wxPGProperty::SetParentalType(wxPGFlags flag)
Cambia el tipo de padre que es esta propiedad para sus hijos.
Parámetros
- flag
- Utilizar uno de los siguientes valores: wxPGFlags::MiscParent (para padres genéricos), wxPGFlags::Category (para categorías) o wxPGFlags::Aggregate (para clases de propiedades derivadas con hijos privados).
Observaciones
Por lo general, no es necesario llamar a esta función.
SetTextColour()
void wxPGProperty::SetTextColour( const wxColour & colour, wxPGPropertyValuesFlags flags = wxPGPropertyValuesFlags::Recurse )
Establece el color del texto de la propiedad.
Parámetros
- color
- Color del texto que se va a utilizar.
- flags
- El valor predeterminado es wxPGPropertyValuesFlags::Recurse, lo que hace que el color se establezca de forma recursiva. Omitir esta bandera para establecer sólo el color de la propiedad en cuestión y no el de ninguna de sus propiedades secundarias.
Observaciones
A diferencia de wxPropertyGridInterface::SetPropertyTextColour(), esto no actualiza automáticamente la visualización.
SetValidator()
void wxPGProperty::SetValidator(const wxValidator & validator)
Establece wxValidator para una propiedad.
SetValue()
void wxPGProperty::SetValue( wxVariant value, wxVariant * pList = nullptr, wxPGSetValueFlags flags = wxPGSetValueFlags::RefreshEditor )
Llamar para establecer el valor de la propiedad.
A diferencia de los métodos de wxPropertyGrid, esto no actualiza automáticamente la visualización.
Observaciones
Utilizar wxPropertyGrid::ChangePropertyValue() si se necesita ejecutar el proceso de validación y enviar el evento de cambio de propiedad.
Si se necesita cambiar el valor de la propiedad en un evento, basándose en la entrada del usuario, utilizar SetValueInEvent() en su lugar.
Parámetros
- value
- El valor que se va a establecer.
- pList
- Puntero a la variante de lista que contiene los valores secundarios. Se utiliza para indicar qué elementos secundarios deben marcarse como modificados. Normalmente se utiliza nullptr.
- flags
- wxPGSetValueFlags::RefreshEditor está establecido por defecto, para actualizar el editor y volver a dibujar las propiedades.
SetValueFromInt()
bool wxPGProperty::SetValueFromInt( long value, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null )
Convierte un entero en un valor y, si tiene éxito, llama a SetValue() sobre él.
El comportamiento predeterminado es no hacer nada.
Parámetros
- valor
- Entero del que obtener el valor.
- indicadores
- Si tiene wxPGPropValFormatFlags::FullValue, entonces el valor dado es un valor real y no un índice.
Valor de retorno
true si se ha cambiado el valor.
SetValueFromString()
bool wxPGProperty::SetValueFromString( const wxString & text, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::ProgrammaticValue )
Convierte una cadena en un valor y, si tiene éxito, llama a SetValue() sobre ella.
El comportamiento predeterminado es no hacer nada.
Parámetros
- text
- Cadena de la que se obtiene el valor.
- flags
- Si se establece wxPGPropValFormatFlags::FullValue, la función establece el valor completo y almacenable en lugar del valor visible (pueden ser diferentes). La bandera wxPGPropValFormatFlags::ProgrammaticValue se utiliza para indicar que el valor se establece mediante programación (es decir, la operación no es provocada por la entrada del usuario). Si se establece wxPGPropValFormatFlags::ReportError, se debe realizar una acción especial si la cadena no se ha podido convertir correctamente a un valor válido (por ejemplo, se puede establecer un valor especial en este caso).
Valor de retorno
true si se ha cambiado el valor.
SetValueImage()
void wxPGProperty::SetValueImage(wxBitmapBundle & bmp)
Establece wxBitmap tomado del primero de wxBitmapBundle.
Este mapa de bits puede ser ignorado por los renderizadores de celdas personalizados.
SetValueInEvent()
void wxPGProperty::SetValueInEvent(const wxVariant & value) const
Llamar a esta función en OnEvent(), OnButtonClick(), etc. para cambiar el valor de la propiedad en función de la entrada del usuario.
Observaciones
Este método es const, ya que en realidad no modifica el valor, sino que envía la variante dada como valor pendiente, almacenado en wxPropertyGrid.
SetValueToUnspecified()
void wxPGProperty::SetValueToUnspecified()
Establece el valor de la propiedad como no especificado (es decir, variante Null).
SetWasModified()
void wxPGProperty::SetWasModified(bool set = true)
Llamar con false en OnSetValue() para cancelar los cambios de valor después de todo (es decir, cancelar el true devuelto por StringToValue() o IntToValue()).
StringToValue()
virtual bool wxPGProperty::StringToValue( wxVariant & variant, const wxString & text, wxPGPropValFormatFlags flags = wxPGPropValFormatFlags::Null ) 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 sólo ocurre si ha habilitado explícitamente ese comportamiento de clasificación).
Reimplementado en wxArrayStringProperty, wxDirProperty, wxLongStringProperty, wxFileProperty, wxEditEnumProperty, wxEnumProperty, wxBoolProperty, wxFloatProperty, wxUIntProperty, wxIntProperty, wxStringProperty, wxDateProperty, wxMultiChoiceProperty, wxSystemColourProperty, wxFlagsProperty y wxPGRootProperty.
UpdateParentValues()
wxPGProperty* wxPGProperty::UpdateParentValues()
Actualiza los valores compuestos de las propiedades no categóricas principales, de forma recursiva.
Devuelve la propiedad superior actualizada.
Observaciones
No se debe llamar a SetValue() (ya que se puede llamar en él).
UsesAutoUnspecified()
bool wxPGProperty::UsesAutoUnspecified() const
Devuelve verdadero si la cuadrícula contenedora utiliza wxPG_EX_AUTO_UNSPECIFIED_VALUES.
ValidateValue()
virtual bool wxPGProperty::ValidateValue( wxVariant & value, wxPGValidationInfo & validationInfo ) const
Implementar esta función en la clase derivada para comprobar el valor.
Devolver true si está bien. Devolver false impide que se produzcan eventos de cambio de propiedad.
Observaciones
La implementación predeterminada siempre devuelve true.
Reimplementado en wxEditEnumProperty, wxEnumProperty, wxFloatProperty, wxUIntProperty y wxIntProperty.
ValueToString()
virtual wxString wxPGProperty::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 en wxArrayStringProperty, wxDirProperty, wxLongStringProperty, wxFileProperty, wxFlagsProperty, wxEnumProperty, wxBoolProperty, wxFloatProperty, wxUIntProperty, wxIntProperty, wxStringProperty, wxDateProperty, wxMultiChoiceProperty, wxCursorProperty, wxColourProperty, wxSystemColourProperty, wxFontProperty y wxPropertyCategory.
Datos miembro
m_clientData
void* wxPGProperty::m_clientData
Este miembro es público, por lo que el código envolvente de enlaces de lenguaje de scripting puede acceder a él libremente.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject.