ListBox
Funciones
ListBox* | listbox_create (void) |
void | listbox_OnDown (...) |
void | listbox_OnSelect (...) |
void | listbox_size (...) |
void | listbox_checkbox (...) |
void | listbox_multisel (...) |
void | listbox_add_elem (...) |
void | listbox_set_elem (...) |
void | listbox_font (...) |
void | listbox_clear (...) |
void | listbox_color (...) |
void | listbox_select (...) |
void | listbox_check (...) |
uint32_t | listbox_count (...) |
const char_t* | listbox_text (...) |
bool_t | listbox_selected (...) |
bool_t | listbox_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.
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 |
|
listbox_multisel ()
Habilita la selección múltiple.
void listbox_multisel(ListBox *listbox, const bool_t multisel);
listbox | El ListBox. |
multisel |
|
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_font ()
Establece la fuente de la lista.
void listbox_font(ListBox *listbox, const Font *font);
listbox | El ListBox. |
font | La fuente. |
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.