control.h

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:

Jerarquía de la clase wxControl
Jerarquía de la clase wxControl

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)

Simula el efecto de que el usuario emita una orden al elemento.

Ver también

wxCommandEvent.

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
La cadena a acortar.
dc
El DC utilizado para recuperar el ancho de los caracteres a través de la función wxDC::GetPartialTextExtents().
mode
El modo de elipsización. Este es el ajuste que determina qué parte de la cadena debe ser reemplazada por la elipsis (a menos que sea wxELLIPSIZE_NONE en cuyo caso no se hace nada). Ver los valores de la enumeración wxEllipsizeMode para más información.
maxWidth
La anchura máxima de la cadena devuelta en píxeles. Este argumento determina cuántos caracteres de la cadena deben eliminarse (y sustituirse por elipsis).
flags
Uno o más de los valores de la enumeración wxEllipsizeFlags combinados.
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()

static wxString wxControl::GetLabelText(const wxString & label)

Devuelve la cadena de etiquetas dada sin mnemónicos (caracteres "&").

GetSizeFromText()

wxSize wxControl::GetSizeFromText(const wxString & text) const

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()

wxSize wxControl::GetSizeFromTextSize(const wxSize & tsize) const

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()

static wxString wxControl::RemoveMnemonics(const wxString & str)

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:

EtiquetaDescripció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:

NombreDescripción
foreground, fgcolor, colorColor del texto en primer plano, puede ser un nombre o un valor RGB.
background, bgcolorColor de fondo del texto, puede ser un nombre o un valor RGB.
font_family, faceNombre de la fuente.
font_weight, weightValor 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, styleO "oblicua" o "cursiva" (ambas con el mismo significado) o "normal".
sizeEl 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 especialEscapado como
&&amp; o como &&
'&apos;
"&quot;
<&lt;
>&gt;

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

EscapeMnemonics().

Métodos y datos heredados

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