SDK Multiplataforma en C logo

SDK Multiplataforma en C

Edit

❮ Anterior
Siguiente ❯

Funciones

Edit*edit_create (void)
Edit*edit_multiline (void)
voidedit_OnFilter (...)
voidedit_OnChange (...)
voidedit_text (...)
voidedit_font (...)
voidedit_align (...)
voidedit_passmode (...)
voidedit_editable (...)
voidedit_autoselect (...)
voidedit_tooltip (...)
voidedit_color (...)
voidedit_color_focus (...)
voidedit_bgcolor (...)
voidedit_bgcolor_focus (...)
voidedit_phtext (...)
voidedit_phcolor (...)
voidedit_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.
  • Ventana donde aparecen varias cajas de edición, a modo de formulario.
    Figura 1: Cajas de edición en diferentes plataformas.

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.
  • Muestra el cambio del foco del teclado entre dos cajas de edición.
    Figura 2: El evento OnChange se llama cuando el control pierde el foco.
    Muestra el evento tras pulsar una tecla en una caja de edición.
    Figura 3: El evento OnFilter se llama tras cada pulsación de tecla.
    Listado 1: Filtro que solo permite carácteres numéricos.
     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 '\0'.


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

TRUE permitirá editar el texto (por defecto).


edit_autoselect ()

Activa o desactiva la autoselección del texto.

void
edit_autoselect(Edit *edit,
                const bool_t autoselect);
edit

El edit.

autoselect

TRUE el texto del control será totalmente seleccionado cuando reciba el foco.

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 '\0'.


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 '\0'.


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'.

❮ Anterior
Siguiente ❯