#ifndef MGUI_WIDGET_H #define MGUI_WIDGET_H #include typedef struct mgl_window mgl_window; typedef struct mgl_event mgl_event; typedef struct mgui_widget mgui_widget; typedef enum { MGUI_WIDGET_LIST, MGUI_WIDGET_SCROLLVIEW, MGUI_WIDGET_BUTTON, MGUI_WIDGET_LABEL, MGUI_WIDGET_RICHTEXT, MGUI_WIDGET_IMAGE } mgui_widget_type; typedef struct { int left; int top; int right; int bottom; } mgui_margin; struct mgui_widget { mgui_widget_type type; mgui_margin margin; }; void mgui_widget_init(mgui_widget *self, mgui_widget_type type); void mgui_widget_set_margin(mgui_widget *self, int left, int top, int right, int bottom); void mgui_widget_set_position(mgui_widget *self, mgl_vec2i position); void mgui_widget_set_width(mgui_widget *self, int width); void mgui_widget_on_event(mgui_widget *self, mgl_window *window, mgl_event *event); /* Returns the size of the widget */ mgl_vec2i mgui_widget_draw(mgui_widget *self, mgl_window *window); #endif /* MGUI_WIDGET_H */