SDK Multiplataforma en C logo

SDK Multiplataforma en C

ListBox

❮ Anterior
Siguiente ❯

Funciones

ListBox*listbox_create (void)
voidlistbox_OnDown (...)
voidlistbox_OnSelect (...)
voidlistbox_size (...)
voidlistbox_checkbox (...)
voidlistbox_multisel (...)
voidlistbox_add_elem (...)
voidlistbox_set_elem (...)
voidlistbox_clear (...)
voidlistbox_color (...)
voidlistbox_select (...)
voidlistbox_check (...)
uint32_tlistbox_count (...)
const char_t*listbox_text (...)
bool_tlistbox_selected (...)
bool_tlistbox_checked (...)

Los ListBox son controles que muestran una serie de elementos a modo de lista (Figura 1), (Figura 2), (Figura 3). Dependiendo de como se configure podremos seleccionar uno o varios elementos o visualizar checkboxes para marcarlos. El control habilita barras de scroll cuando sea necesario y permite la navegación con el teclado. En ¡Hola ListBox! tienes un ejemplo de uso.

  • Utiliza listbox_create parar crear un control de lista.
  • Utiliza listbox_add_elem para añadir un elemento.
  • Utiliza listbox_multisel para habilitar la selección múltiple.
  • Utiliza listbox_checkbox para habilitar los checkboxes.
  • Utiliza listbox_OnSelect para responder a la selección.
  • Captura de varios controles ListBox en Windows.
    Figura 1: Controles ListBox en Windows.
    Captura de varios controles ListBox en macOS.
    Figura 2: Controles ListBox en macOS.
    Captura de varios controles ListBox en Linux.
    Figura 3: Controles ListBox en Linux.
❮ Anterior
Siguiente ❯

listbox_create ()

Crea un nuevo control de lista.

ListBox*
listbox_create(void);

Retorna

El ListBox recién creado.


listbox_OnDown ()

Establece un manejador para la pulsación de un botón del ratón.

void
listbox_OnDown(ListBox *listbox,
               Listener *listener);
1
2
3
4
5
6
7
8
9
static void i_OnDown(App *app, Event *e)
{
    const EvMouse *p = event_params(e, EvMouse);
    bool_t *r = event_result(e, bool_t);
    p->tag      // Clicked row (UINT32_MAX) if any.
    *r = FALSE; // Avoid item selection.
}
...
listbox_OnDown(list, listener(app, i_OnDown, App));
listbox

El ListBox.

listener

Función callback que se llamará cuando se pulse un botón.

Observaciones

Este evento se procesa antes que listbox_OnSelect. En el campo tag de EvMouse se recibirá el número del elemento sobre el que se hizo clic o UINT32_MAX si corresponde a un área vacía del ListBox. Si el evento retorna FALSE en event_result, se evitará la selección del elemento (TRUE por defecto). Ver Eventos GUI.


listbox_OnSelect ()

Establece un manejador para la selección de un nuevo elemento.

void
listbox_OnSelect(ListBox *listbox,
                 Listener *listener);
1
2
3
4
5
6
7
static void i_OnSelect(App *app, Event *e)
{
    const EvButton *p = event_params(e, EvButton);
    do_something_onselect(app, p->index);
}
...
listbox_OnSelect(list, listener(app, i_OnSelect, App));
listbox

El ListBox.

listener

Función callback que se llamará tras seleccionar un nuevo elemento de la lista.

Observaciones

Ver Eventos GUI.


listbox_size ()

Establece el tamaño por defecto de la lista.

void
listbox_size(ListBox *listbox,
             const S2Df size);
listbox

El ListBox.

size

El tamaño.

Observaciones

Corresponde al Dimensionado natural del control. Por defecto 128x128.


listbox_checkbox ()

Muestra u oculta los checkboxes a la izquierda de los elementos.

void
listbox_checkbox(ListBox *listbox,
                 const bool_t show);
listbox

El ListBox.

show

TRUE para visualizarlos.


listbox_multisel ()

Habilita la selección múltiple.

void
listbox_multisel(ListBox *listbox,
                 const bool_t multisel);
listbox

El ListBox.

multisel

TRUE para permitir varios elementos seleccionados al mismo tiempo.


listbox_add_elem ()

Añade un nuevo elemento.

void
listbox_add_elem(ListBox *listbox,
                 const char_t *text,
                 const Image *image);
listbox

El ListBox.

text

El texto del elemento en UTF-8 o el identificador del recurso. Recursos.

image

Icono asociado al elemento o el identificador del recurso.


listbox_set_elem ()

Edita un elemento de la lista.

void
listbox_set_elem(ListBox *listbox,
                 const uint32_t index,
                 const char_t *text,
                 const Image *image);
listbox

El ListBox.

index

El índice del elemento a sustituir.

text

El texto del elemento en UTF-8 o el identificador del recurso. Recursos.

image

Icono asociado al elemento o el identificador del recurso.


listbox_clear ()

Elimina todos los elementos de la lista.

void
listbox_clear(ListBox *listbox);
listbox

El ListBox.


listbox_color ()

Establece el color del texto de un elemento.

void
listbox_color(ListBox *listbox,
              const uint32_t index,
              const color_t color);
listbox

El ListBox.

index

El índice del elemento.

color

El color. Por defecto kCOLOR_DEFAULT.


listbox_select ()

Selecciona un elemento desde el código del programa.

void
listbox_select(ListBox *listbox,
               const uint32_t index,
               const bool_t select);
listbox

El ListBox.

index

El índice del elemento a seleccionar.

select

Seleccionar o de-seleccionar.

Observaciones

Si la selección múltiple no está habilitada, seleccionar un elemento implica de-seleccionar todos los demás.


listbox_check ()

Marca o desmarca el check del elemento desde el código del programa.

void
listbox_check(ListBox *listbox,
              const uint32_t index,
              const bool_t check);
listbox

El ListBox.

index

El índice del elemento.

check

Marcar o desmarcar.

Observaciones

Marcar un elemento es independiente de seleccionarlo. Se pueden marcar los elementos aunque los checkboxes no estén visibles. Ver listbox_checkbox.


listbox_count ()

Devuelve el número de elementos de la lista.

uint32_t
listbox_count(const ListBox *listbox);
listbox

El ListBox.

Retorna

El número de elementos.


listbox_text ()

Devuelve el texto de un elemento.

const char_t*
listbox_text(const ListBox *listbox,
             const uint32_t index);
listbox

El ListBox.

index

El índice del elemento.

Retorna

El texto en UTF-8 terminado en carácter nulo '\0'.


listbox_selected ()

Devuelve si un elemento está o no seleccionado.

bool_t
listbox_selected(const ListBox *listbox,
                 const uint32_t index);
listbox

El ListBox.

index

El índice del elemento.

Retorna

El estado de la selección.


listbox_checked ()

Devuelve si un elemento está o no marcado.

bool_t
listbox_checked(const ListBox *listbox,
                const uint32_t index);
listbox

El ListBox.

index

El índice del elemento.

Retorna

El estado del checkbox.

Observaciones

Marcar un elemento es independiente de seleccionarlo. Se pueden marcar los elementos aunque los checkboxes no estén visibles. Ver listbox_checkbox.

❮ Anterior
Siguiente ❯