#include "../include/mgui/mgui.h" #include "../include/mgui/list.h" #include "../include/mgui/scrollview.h" #include "../include/mgui/button.h" #include "../include/mgui/label.h" #include "../include/mgui/richtext.h" #include "../include/mgui/image.h" #include #include #include #include #include static mgui_list* create_list_item(const char *image_filepath, const char *title, const char *description) { mgui_list *container = mgui_list_create(MGUI_LIST_HORIZONITAL); //mgui_list_set_spacing(container, 10); mgui_list_append(container, mgui_image_to_widget(mgui_image_create(image_filepath))); mgui_list *list = mgui_list_create(MGUI_LIST_VERTICAL); mgui_list_append(container, mgui_list_to_widget(list)); mgui_list_append(list, mgui_richtext_to_widget(mgui_richtext_create(title, strlen(title), 30))); mgui_list_append(list, mgui_richtext_to_widget(mgui_richtext_create(description, strlen(description), 24))); return container; } int main() { if(mgl_init() != 0) return 1; mgui_init(); mgl_window window; if(mgl_window_create(&window, "mgl", &(mgl_window_create_params){ .size = { 1280, 720 } }) != 0) return 1; mgui_list *root = mgui_list_create(MGUI_LIST_VERTICAL); mgui_widget *root_widget = mgui_list_to_widget(root); mgui_list_append(root, mgui_list_to_widget(create_list_item(NULL, "Title", "Description"))); mgui_scrollview *scrollview = mgui_scrollview_create(); mgui_widget_set_expand(mgui_scrollview_to_widget(scrollview), false, true); //mgui_widget_set_margin(mgui_scrollview_to_widget(scrollview), (mgui_margin){ 20, 20, 20, 20 }); mgui_list_append(root, mgui_scrollview_to_widget(scrollview)); mgui_list *list = mgui_list_create(MGUI_LIST_VERTICAL); mgui_scrollview_set_child(scrollview, mgui_list_to_widget(list)); //mgui_list_set_spacing(list, 30); for(int i = 0; i < 60; ++i) { char text[256]; snprintf(text, sizeof(text), "hello world 東京\nNext line %d", i); mgui_list_append(list, mgui_list_to_widget(create_list_item(NULL, "User", text))); } char text[256]; snprintf(text, sizeof(text), "hello world 東京 %d", 333); mgui_list_append(list, mgui_list_to_widget(create_list_item("depends/mgl/tests/X11.png", "User", text))); mgui_list_append(root, mgui_list_to_widget(create_list_item(NULL, "Bottom", "bottom"))); mgl_event event; while(mgl_window_is_open(&window)) { while(mgl_window_poll_event(&window, &event)) { mgui_on_event(root_widget, &window, &event); } mgl_window_clear(&window, (mgl_color){ 18, 21, 26, 255 }); mgui_draw(root_widget, &window); mgl_window_display(&window); } mgui_widget_destroy(root_widget); mgl_window_deinit(&window); mgui_deinit(); mgl_deinit(); return 0; }