Edit
Funciones
Edit* | edit_create (void) |
Edit* | edit_multiline (void) |
void | edit_OnFilter (...) |
void | edit_OnChange (...) |
void | edit_text (...) |
void | edit_font (...) |
void | edit_align (...) |
void | edit_passmode (...) |
void | edit_editable (...) |
void | edit_autoselect (...) |
void | edit_tooltip (...) |
void | edit_color (...) |
void | edit_color_focus (...) |
void | edit_bgcolor (...) |
void | edit_bgcolor_focus (...) |
void | edit_phtext (...) |
void | edit_phcolor (...) |
void | edit_phstyle (...) |
const char_t* | edit_get_text (...) |
Los EditBox son pequeñas cajas de texto con capacidades de edición. Al igual que los Label son de formato uniforme: La tipografía y colores afectarán a la totalidad del texto (Figura 1). Suelen utilizarse para editar campos en formularios, normalmente restringidos a una sola línea, aunque también pueden extenderse a varias de ellas. Para editar textos con múltiples atributos utilizar TextView. En ¡Hola Edit y UpDown! tienes un ejemplo de uso.
- Utiliza edit_create para crear una caja de edición.
- Utiliza edit_multiline para crear una caja de edición multilínea.
- Utiliza edit_passmode para ocultar el texto del control.
- Utiliza edit_phtext para establecer un placeholder.
- Utiliza edit_autoselect para seleccionar automáticamente todo el texto.
1. Filtrar textos
En función del valor que estemos editando, es posible que sea necesario validar el texto introducido. Esto podemos hacerlo al terminar de editar o mientras estamos escribiendo. Para el primer caso utilizaremos el evento edit_OnChange
que llamará al manejador cuando el control haya perdido el foco del teclado (Figura 2). Si queremos implementar filtros más elaborados, que corrijan el texto mientras se escribe utilizaremos el evento edit_OnFilter
. Por ejemplo, en (Listado 1) tenemos un sencillo filtro que solo permite carácteres numéricos (Figura 3).
- Utiliza edit_OnChange para validar el texto final.
- Utiliza edit_OnFilter para detectar y corregir cada pulsación del usuario.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
static void OnFilter(void *noused, Event *e) { const EvText *params = event_params(e, EvText); EvTextFilter *result = event_result(e, EvTextFilter); uint32_t i = 0, j = 0; while (params->text[i] != '\0') { if (params->text[i] >= '0' && params->text[i] <= '9') { result->text[j] = params->text[i]; j += 1; } i += 1; } result->text[j] = '\0'; result->apply = TRUE; } ... edit_OnFilter(edit1, listener(NULL, i_OnFilter, void)); |
edit_create ()
Crea un control de edición de texto.
Edit* edit_create(void);
Retorna
El edit.
edit_multiline ()
Crea un control de edición de texto que permite múltiples líneas.
Edit* edit_multiline(void);
Retorna
El edit.
edit_OnFilter ()
Establece un manejador para filtrar el texto mientras se edita.
void edit_OnFilter(Edit *edit, Listener *listener);
edit | El edit. |
listener | Función callback que se llamará tras cada pulsación de tecla. En EvTextFilter de event_result se devolverá el texto filtrado. |
Observaciones
Ver Filtrar textos y Eventos GUI.
edit_OnChange ()
Establece un manejador para detectar cuando el texto ha cambiado.
void edit_OnChange(Edit *edit, Listener *listener);
edit | El edit. |
listener | Función callback que se llamará cuando el control pierda el foco del teclado, lo que indicará el final de la edición. |
Observaciones
Ver Eventos GUI.
edit_text ()
Establece el texto del control de edición.
void edit_text(Edit *edit, const char_t *text);
edit | El edit. |
text | Cadena C UTF8 terminada en carácter nulo |
edit_font ()
Establece la fuente del control edit.
void edit_font(Edit *edit, const Font *font);
edit | El edit. |
font | Fuente tipográfica. |
edit_align ()
Establece la alineación del texto.
void edit_align(Edit *edit, const align_t align);
edit | El edit. |
align | La alineación. |
edit_passmode ()
Activa el modo contraseña, que ocultará los caracteres tecleados.
void edit_passmode(Edit *edit, const bool_t passmode);
edit | El edit. |
passmode | Activa o desactiva el modo contraseña. |
edit_editable ()
Activa o desactiva la edición en el control.
void edit_editable(Edit *edit, const bool_t is_editable);
edit | El edit. |
is_editable |
|
edit_autoselect ()
Activa o desactiva la autoselección del texto.
void edit_autoselect(Edit *edit, const bool_t autoselect);
edit | El edit. |
autoselect |
|
Observaciones
Por defecto es FALSE
.
edit_tooltip ()
Asigna un tooltip al control edit.
void edit_tooltip(Edit *edit, const char_t *text);
edit | El edit. |
text | Cadena C UTF8 terminada en carácter nulo |
edit_color ()
Establece el color del texto.
void edit_color(Edit *edit, const color_t color);
edit | El edit. |
color | El color del texto. |
Observaciones
Los valores RGB puede que no sean del todo portables. Ver Colores.
edit_color_focus ()
Establece el color del texto, cuando el control tiene el foco del teclado.
void edit_color_focus(Edit *edit, const color_t color);
edit | El edit. |
color | El color del texto. |
Observaciones
Los valores RGB puede que no sean del todo portables. Ver Colores.
edit_bgcolor ()
Establece el color de fondo.
void edit_bgcolor(Edit *edit, const color_t color);
edit | El edit. |
color | El color de fondo. |
Observaciones
Los valores RGB puede que no sean del todo portables. Ver Colores.
edit_bgcolor_focus ()
Establece el color de fondo, cuando el control tiene el foco del teclado.
void edit_bgcolor_focus(Edit *edit, const color_t color);
edit | El edit. |
color | El color de fondo. |
Observaciones
Los valores RGB puede que no sean del todo portables. Ver Colores.
edit_phtext ()
Establece un texto explicativo para cuando el control está en blanco (placeholder).
void edit_phtext(Edit *edit, const char_t *text);
edit | El edit. |
text | Cadena C UTF8 terminada en carácter nulo |
edit_phcolor ()
Establece el color del texto placeholder.
void edit_phcolor(Edit *edit, const color_t color);
edit | El edit. |
color | El color del texto. |
Observaciones
Los valores RGB puede que no sean del todo portables. Ver Colores.
edit_phstyle ()
Establece el estilo de la fuente para el placeholder.
void edit_phstyle(Edit *edit, const uint32_t fstyle);
edit | El edit. |
fstyle | Combinación de valores de fstyle_t. |
edit_get_text ()
Obtiene el texto del control.
const char_t* edit_get_text(const Edit *edit);
edit | El edit. |
Retorna
Cadena C UTF8 terminada en carácter nulo '\0'
.