#ifndef MGUI_LIST_H #define MGUI_LIST_H #include "widget.h" #include #include typedef struct mgl_window mgl_window; typedef struct mgl_event mgl_event; typedef enum { MGUI_LIST_HORIZONITAL, MGUI_LIST_VERTICAL } mgui_list_direction; typedef struct { mgui_widget widget; mgui_list_direction direction; mgl_vec2i position; mgl_color background_color; mgui_widget **items; size_t items_capacity; size_t num_items; } mgui_list; mgui_list* mgui_list_create(mgui_list_direction direction); mgui_widget* mgui_list_to_widget(mgui_list *list); mgui_list* mgui_widget_to_list(mgui_widget *widget); void mgui_list_set_position(mgui_list *self, mgl_vec2i position); void mgui_list_set_width(mgui_list *self, int width); void mgui_list_set_background_color(mgui_list *self, mgl_color color); void mgui_list_append(mgui_list *self, mgui_widget *widget); void mgui_list_on_event(mgui_list *self, mgl_window *window, mgl_event *event); /* Returns the size of the widget */ mgl_vec2i mgui_list_draw(mgui_list *self, mgl_window *window); #endif /* MGUI_LIST_H */