ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
selectable_list.c
Go to the documentation of this file.
3
5 if (list)
6 *list = (ui_selectable_list_t){0};
7}
8
9void ui_selectable_list_keep_visible(ui_selectable_list_t *list, int count, int rows) {
10 if (!list)
11 return;
12 ui_viewport_t viewport = {.selected = list->selected > 0 ? (size_t)list->selected : 0,
13 .first_visible = list->first_visible > 0 ? (size_t)list->first_visible : 0};
14 ui_viewport_update(&viewport, count > 0 ? (size_t)count : 0, rows > 0 ? (size_t)rows : 1);
15 list->selected = (int)viewport.selected;
16 list->first_visible = (int)viewport.first_visible;
17}
18
19void ui_selectable_list_move(ui_selectable_list_t *list, int count, int rows, int delta) {
20 if (!list || count <= 0)
21 return;
22 list->selected += delta;
23 ui_selectable_list_keep_visible(list, count, rows);
24}
void ui_selectable_list_move(ui_selectable_list_t *list, int count, int rows, int delta)
void ui_selectable_list_reset(ui_selectable_list_t *list)
void ui_selectable_list_keep_visible(ui_selectable_list_t *list, int count, int rows)
ui selectable list keeps the values that move through the subsystem: selected, first_visible....
For ui viewport, this is the live record that ties selected, first_visible, page_size together....
Definition viewport.h:10
size_t first_visible
Definition viewport.h:11
size_t selected
Definition viewport.h:11
ui_viewport_range_t ui_viewport_update(ui_viewport_t *v, size_t count, size_t rows)
Definition viewport.c:4