Clase wxControl
Esta es la clase base para un control o "widget".
Un control es generalmente una pequeña ventana que procesa la entrada del usuario y/o muestra uno o más elementos de datos.
Jerarquía:

Eventos emitidos por esta clase
Las siguientes macros manejadoras de eventos redirigen los eventos a manejadores de funciones miembro 'func' con prototipos como:
void handlerFuncName(wxClipboardTextEvent& event)
Macros para eventos emitidos por esta clase:
- EVT_TEXT_COPY(id, func)
- Parte o todo el contenido de los controles se ha copiado en el portapapeles.
- EVT_TEXT_CUT(id, func)
- Se ha cortado parte o la totalidad del contenido de los controles (es decir, se ha copiado y eliminado).
- EVT_TEXT_PASTE(id, func)
- El contenido del portapapeles se pegó en el control.
Funciones miembro públicas
wxControl()
wxControl::wxControl( wxWindow * parent, wxWindowID id, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = 0, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxControlNameStr )
Construye un control.
Parámetros
- parent
- Puntero a la ventana padre.
- id
- Identificador del control. Si es wxID_ANY, se creará un identificador automáticamente.
- pos
- Posición del control. wxDefaultPosition indica que wxWidgets debe generar una posición por defecto para el control.
- size
- Tamaño de control. wxDefaultSize indica que wxWidgets debe generar un tamaño por defecto para la ventana. Si no se puede encontrar un tamaño adecuado, la ventana tendrá un tamaño de 20x20 píxeles para que la ventana sea visible, pero obviamente no tendrá el tamaño correcto.
- style
- Estilo de control. Para estilos de ventana genéricos, consulte wxWindow.
- validator
- Validación del control.
- name
- Nombre del control.
wxControl()
wxControl::wxControl()
Constructor por defecto para permitir la creación en 2 fases.
Command()
virtual void wxControl::Command(wxCommandEvent & event)
Create()
bool wxControl::Create( wxWindow * parent, wxWindowID id, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = 0, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxControlNameStr )
Se utiliza para la construcción de cuadros de diálogo en dos pasos.
Parámetros
- parent
- Puntero a la ventana padre.
- id
- Identificador del control. Si es wxID_ANY, se creará un identificador automáticamente.
- pos
- Posición del control. wxDefaultPosition indica que wxWidgets debe generar una posición por defecto para el control.
- size
- Tamaño de control. wxDefaultSize indica que wxWidgets debe generar un tamaño por defecto para la ventana. Si no se puede encontrar un tamaño adecuado, la ventana tendrá un tamaño de 20x20 píxeles para que la ventana sea visible, pero obviamente no tendrá el tamaño correcto.
- style
- Estilo de control. Para estilos de ventana genéricos, consulte wxWindow.
- validator
- Validación del control.
- name
- Nombre del control.
Ellipsize()
static wxString wxControl::Ellipsize( const wxString & label, const wxDC & dc, wxEllipsizeMode mode, int maxWidth, int flags = wxELLIPSIZE_FLAGS_DEFAULT )
Reemplaza partes de la cadena de la etiqueta con elipsis, si es necesario, para que quepa en los píxeles de maxWidth si es posible.
hay que tener en cuenta que esta función no garantiza que la cadena devuelta sea siempre más corta que maxWidth; si maxWidth es extremadamente pequeño, el texto elipsado puede ser más grande.
Parámetros
- label
EscapeMnemonics()
static wxString wxControl::EscapeMnemonics(const wxString & text)
Escapa los caracteres mnemotécnicos especiales ("&") en la cadena dada.
Esta función puede ser útil si se necesita establecer la etiqueta de los controles en una cadena proporcionada por el usuario. Si la cadena contiene ampersands, éstos no aparecerán en la pantalla, sino que se utilizarán para indicar que el carácter que sigue al primero de ellos puede utilizarse como mnemónico de control. Aunque esto puede ser a veces deseable (por ejemplo, para permitir al usuario configurar mnemónicos de los controles), más a menudo querrá utilizar esta función antes de pasar una cadena definida por el usuario a SetLabel(). Alternativamente, si la etiqueta está completamente definida por el usuario, se puede simplemente llamar a SetLabelText() directamente - pero esta función debe usarse si la etiqueta es una combinación de una parte definida por programa que contiene los mnemónicos de los controles y una parte definida por el usuario.
Parámetros
- text
- La cadena tal y como debe aparecer en la pantalla.
Valor de retorno
La misma cadena con los ampersands duplicados.
GetLabel()
wxString wxControl::GetLabel() const
Devuelve la etiqueta del control, tal como se pasó a SetLabel().
Hay que tener en cuenta que la cadena devuelta puede contener mnemónicos (caracteres "&") si se pasaron a la función SetLabel(); utilizar GetLabelText() si no se desean.
Observese también que la cadena devuelta es siempre la cadena que se pasó a SetLabel() pero puede ser diferente de la cadena pasada a SetLabelText() (ya que esta última escapa caracteres mnemotécnicos).
Reimplementado de wxWindow.
GetLabelText()
wxString wxControl::GetLabelText() const
Devuelve la etiqueta del control sin mnemónicos.
Hay que tener en cuenta que, debido a la eliminación de los mnemónicos, la cadena devuelta puede diferir de la cadena que se pasó a SetLabel(), pero siempre debe ser la misma que se pasó a SetLabelText().
GetLabelText()
Devuelve la cadena de etiquetas dada sin mnemónicos (caracteres "&").
GetSizeFromText()
Determina el tamaño mínimo que necesita el control para mostrar el texto dado.
La función de ayuda que utiliza la combinación de GetSizeFromTextSize() y GetTextExtent() que se utilizan juntos muy a menudo:
wxSize GetSizeFromText(const wxString& text) const { return GetSizeFromTextSize(GetTextExtent(text).GetWidth()); }
Parámetros
- text
- El texto dado.
Valor de retorno
El tamaño que debe tener el control para salir del área del texto especificado. Puede devolver wxDefaultSize si este método no está implementado para este control en particular bajo la plataforma actual.
GetSizeFromTextSize()
Esta es una función miembro sobrecargada, proporcionada por conveniencia. Solo difiere de la función siguiente en los argumentos que acepta.
GetSizeFromTextSize()
wxSize wxControl::GetSizeFromTextSize( int xlen, int ylen = -1 ) const
Determina el tamaño que necesita el control para incluir el texto.
Esta función es útil sobre todo con controles que muestran pequeñas cantidades de texto que pueden ser editadas por el usuario, por ejemplo wxTextCtrl, wxComboBox, wxSearchCtrl etc. Normalmente se utiliza para dimensionar estos controles para la cantidad máxima de entrada que se supone que deben contener, por ejemplo:
// Create a control for post code entry. wxTextCtrl* postcode = new wxTextCtrl(this, ...); // And set its initial and minimal size to be big enough for // entering 5 digits. postcode->SetInitialSize( postcode->GetSizeFromTextSize( postcode->GetTextExtent("99999")));
Actualmente este método solo está implementado para wxTextCtrl, wxComboBox y wxChoice en wxMSW y wxGTK.
Parámetros
- xlen
- La extensión horizontal del área a dejar para el texto, en píxeles.
- ylen
- Extensión vertical del área que se dejará para el texto, en píxeles. Por defecto -1 significa que el componente vertical del tamaño devuelto debe ser la altura por defecto de este control.
Valor de retorno
El tamaño que debería tener el control para dejar el área del tamaño especificado para su texto. Puede devolver wxDefaultSize si este método no está implementado para este control en particular bajo la plataforma actual.
RemoveMnemonics()
Devuelve la cadena str dada sin mnemónicos (caracteres "&").
Nota: Esta función es idéntica a GetLabelText() y se proporciona principalmente por simetría con EscapeMnemonics().
SetLabel()
void wxControl::SetLabel(const wxString & label)
Establece la etiqueta del control.
Todos los caracteres "&" de la etiqueta son especiales e indican que el carácter siguiente es un mnemotécnico para este control y puede utilizarse para activarlo desde el teclado (normalmente utilizando la tecla Alt en combinación con él). Para insertar un carácter ampersand literal, es necesario duplicarlo, es decir, utilizar "&&". Si no se desea este comportamiento, utilizar SetLabelText() en su lugar.
Reimplementado de wxWindow y en wxStaticText.
SetLabelMarkup()
bool wxControl::SetLabelMarkup(const wxString & markup)
Establece la etiqueta del control en una cadena utilizando marcas.
El marcado simple soportado por esta función se puede utilizar para aplicar diferentes fuentes o colores a diferentes partes de la etiqueta del control cuando sea compatible. Si el marcado no es compatible con el control o la plataforma, simplemente se elimina y se utiliza SetLabel() con la cadena resultante.
Por ejemplo,
wxStaticText *text;
...
text->SetLabelMarkup("&Bed ∓ "
"breakfast "
"available HERE");
mostraría la cadena usando negrita, rojo y grande para las palabras correspondientes bajo wxGTK pero simplemente mostrará la cadena "Bed & breakfast available HERE" en las otras plataformas. En cualquier caso, la "B" de "Bed" aparecerá subrayada para indicar que puede utilizarse como mnemotécnica para este control.
Las etiquetas soportadas son:
Etiqueta | Descripción |
---|---|
<b> | Texto en negrita. |
<big> | Texto más grande. |
<i> | Texto en cursiva. |
<s> | Texto tachado. |
<small> | Texto más pequeño. |
<tt> | Texto monoespacio. |
<u> | Texto subrayado. |
<span> | Consultar la tabla siguiente para ver los atributos admitidos. |
Atributos <span> soportados:
Nombre | Descripción |
---|---|
foreground, fgcolor, color | Color del texto en primer plano, puede ser un nombre o un valor RGB. |
background, bgcolor | Color de fondo del texto, puede ser un nombre o un valor RGB. |
font_family, face | Nombre de la fuente. |
font_weight, weight | Valor numérico en el rango 0..900 o uno de "ultraligero", "ligero", "normal" (todos significan no negrita), "negrita", "ultra negrita" y "pesado" (todos significan negrita). |
font_style, style | O "oblicua" o "cursiva" (ambas con el mismo significado) o "normal". |
size | El tamaño de la fuente puede especificarse como "más pequeño" o "más grande" en relación con la fuente actual, como un nombre de tamaño de fuente CSS ("xx-small", "x-small", "small", "medium", "large", "x-large" o "xx-large") o como un número que indica el tamaño de la fuente en 1024 partes de un punto, es decir, 10240 para una fuente de 10pt. |
Este lenguaje de marcado es un subconjunto estricto del marcado Pango (descrito en http://library.gnome.org/devel/pango/unstable/PangoMarkupFormat.html) y las etiquetas y atributos span no documentados anteriormente no pueden utilizarse en plataformas que no sean GTK.
También hay que tener en cuenta que se necesita escapar los siguientes caracteres especiales:
Carácter especial | Escapado como |
---|---|
& | & o como && |
' | ' |
" | " |
< | < |
> | > |
Los caracteres ampersand & que no están escapados se interpretan como mnemónicos como con wxControl::SetLabel.
Parámetros
- markup
- Cadena que contiene el marcado de la etiqueta. Puede contener las etiquetas de marcado descritas anteriormente y caracteres de nueva línea, pero actualmente sólo wxGTK y wxOSX soportan etiquetas multilínea con marcado, la implementación genérica (también utilizada en wxMSW) solo maneja etiquetas de marcado de una sola línea. Hay que tener en cuenta que la cadena debe estar bien formada (por ejemplo, todas las etiquetas deben estar correctamente cerradas) y no se mostrará en nada absoluto en caso contrario.
Valor de retorno
true si se ha establecido la nueva etiqueta (incluso si se ha ignorado el marcado que contiene) o false si no se ha podido analizar el marcado. En este caso la etiqueta permanece sin cambios.
Actualmente wxButton soporta markup en todos los ports principales (wxMSW, wxGTK y wxOSX/Cocoa) mientras que wxStaticText lo soporta en wxGTK y wxOSX y su versión genérica (que puede usarse bajo MSW si se requiere soporte de markup). Está previsto ampliar el soporte a más controles en el futuro.
SetLabelText()
void wxControl::SetLabelText(const wxString & text)
Establece la etiqueta del control exactamente con la cadena dada.
A diferencia de SetLabel(), esta función muestra exactamente el texto que se le pasa en el control, sin interpretar los ampersands en él de ninguna manera. Observese que esto significa que el control no puede tener ningún mnemónico definido para él usando esta función.
Ver también
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxWindow, wxEvtHandler y wxObject.