33 #ifndef GUI_HDR_LINKEDLIST_H 34 #define GUI_HDR_LINKEDLIST_H 41 #include "gui/gui_utils.h" 50 #if defined(GUI_INTERNAL) || __DOXYGEN__ 59 #define gui_linkedlist_multi_getdata(e) (((e) != NULL) ? (e)->element : NULL) 82 #define gui_linkedlist_hasentries(root) ((root)->first != NULL) 101 #define gui_linkedlist_iswidgetfirst(h) ((h) == NULL || (h)->list.prev == NULL) 110 #define gui_linkedlist_iswidgetlast(h) ((h) == NULL || (h)->list.next == NULL) 121 #define GUI_LINKEDLIST_WIDGETSLISTNEXT(parent, current) for ((current) = gui_linkedlist_widgetgetnext((parent), NULL); (current) != NULL; (current) = gui_linkedlist_widgetgetnext(NULL, (current))) 122 #define GUI_LINKEDLIST_WIDGETSLISTPREV(parent, current) for ((current) = gui_linkedlist_widgetgetprev((parent), NULL); (current) != NULL; (current) = gui_linkedlist_widgetgetprev(NULL, (current))) gui_linkedlist_t * gui_linkedlist_getnext_byindex_gen(gui_linkedlistroot_t *const root, uint16_t index)
Get item from linked list by index.
Definition: gui_linkedlist.c:288
void gui_linkedlist_widgetadd(gui_handle_p parent, gui_handle_p h)
Add new widget to linked list of parent widget.
Definition: gui_linkedlist.c:456
Linked list root structure for start and end widget in structure.
Definition: gui_defs.h:196
uint8_t gui_linkedlist_widgetmoveup(gui_handle_p h)
Move widget up for one in linked list.
Definition: gui_linkedlist.c:489
uint8_t gui_linkedlist_multi_moveup_gen(gui_linkedlistroot_t *const root, gui_linkedlistmulti_t *const element)
Move widget up for one on multi linked list.
Definition: gui_linkedlist.c:417
uint8_t gui_linkedlist_movedown_gen(gui_linkedlistroot_t *const root, gui_linkedlist_t *const element)
Move widget down for one on doubly linked list.
Definition: gui_linkedlist.c:195
void gui_linkedlist_add_gen(gui_linkedlistroot_t *const root, gui_linkedlist_t *const element)
Add element to doubly linked list.
Definition: gui_linkedlist.c:80
gui_linkedlistmulti_t * gui_linkedlist_multi_getnext_gen(gui_linkedlistroot_t *const root, gui_linkedlistmulti_t *const element)
Get next element structure from multi linked list.
Definition: gui_linkedlist.c:355
uint8_t gui_linkedlist_widgetmovetotop(gui_handle_p h)
Move widget to top in linked list of parent widget.
Definition: gui_linkedlist.c:641
gui_linkedlistmulti_t * gui_linkedlist_multi_getprev_gen(gui_linkedlistroot_t *const root, gui_linkedlistmulti_t *const element)
Get previous element structure from multi linked list.
Definition: gui_linkedlist.c:384
uint8_t gui_linkedlist_multi_find_remove(gui_linkedlistroot_t *const root, void *const element)
Remove element from linked list in multi linked list.
Definition: gui_linkedlist.c:432
gui_linkedlist_t * gui_linkedlist_getnext_gen(gui_linkedlistroot_t *const root, gui_linkedlist_t *const element)
Get next element structure from doubly linked list.
Definition: gui_linkedlist.c:146
uint8_t gui_linkedlist_widgetmovedown(gui_handle_p h)
Move widget down for one in linked list.
Definition: gui_linkedlist.c:504
void gui_linkedlist_widgetremove(gui_handle_p h)
Remove widget from linked list of parent widget.
Definition: gui_linkedlist.c:473
gui_linkedlist_t * gui_linkedlist_remove_gen(gui_linkedlistroot_t *const root, gui_linkedlist_t *const element)
Remove element from doubly linked list.
Definition: gui_linkedlist.c:100
Linked list structure.
Definition: gui_defs.h:177
uint8_t gui_linkedlist_multi_movedown_gen(gui_linkedlistroot_t *const root, gui_linkedlistmulti_t *const element)
Move widget down for one on multi linked list.
Definition: gui_linkedlist.c:404
gui_linkedlist_t * gui_linkedlist_getprev_gen(gui_linkedlistroot_t *const root, gui_linkedlist_t *const element)
Get previous element structure from doubly linked list.
Definition: gui_linkedlist.c:175
gui_handle_p gui_linkedlist_widgetgetnext(gui_handle_p parent, gui_handle_p h)
Get next widget from current widget handle.
Definition: gui_linkedlist.c:532
Structure used for dynamic struct allocation.
Definition: gui_defs.h:186
uint8_t gui_linkedlist_widgetmovetobottom(gui_handle_p h)
Move widget to bottom in linked list of parent widget.
Definition: gui_linkedlist.c:591
gui_linkedlistmulti_t * gui_linkedlist_multi_add_gen(gui_linkedlistroot_t *const root, void *const element)
Add element to multi linked list.
Definition: gui_linkedlist.c:307
uint8_t gui_linkedlist_moveup_gen(gui_linkedlistroot_t *const root, gui_linkedlist_t *const element)
Move widget up for one on doubly linked list.
Definition: gui_linkedlist.c:242
uint8_t gui_linkedlist_multi_remove_gen(gui_linkedlistroot_t *const root, gui_linkedlistmulti_t *element)
Remove element from linked list in multi linked list.
Definition: gui_linkedlist.c:328
gui_handle_p gui_linkedlist_widgetgetprev(gui_handle_p parent, gui_handle_p h)
Get previous widget from current widget handle.
Definition: gui_linkedlist.c:564
void gui_linkedlist_printlist(void)
Prints widget structure from root tree.
Definition: gui_linkedlist.c:687