aboutsummaryrefslogtreecommitdiff
path: root/tests/main.c
blob: 2356cb363c7a588e2cdecccacd25d77108404c00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "../include/mgui/list.h"
#include "../include/mgui/button.h"
#include "../include/mgui/label.h"
#include <mgl/mgl.h>
#include <mgl/window/window.h>
#include <mgl/window/event.h>
#include <string.h>

static mgui_list* create_list_item(const char *title, const char *description) {
    mgui_list *container = mgui_list_create(MGUI_LIST_HORIZONITAL);
    mgui_list_set_background_color(container, (mgl_color){ 255, 0, 0, 255 });
    mgui_list_append(container, mgui_button_to_widget(mgui_button_create()));

    mgui_list *list = mgui_list_create(MGUI_LIST_VERTICAL);
    mgui_list_append(container, mgui_list_to_widget(list));
    mgui_list_append(list, mgui_label_to_widget(mgui_label_create(title, strlen(title), 30)));
    mgui_list_append(list, mgui_label_to_widget(mgui_label_create(description, strlen(description), 24)));
    return container;
}

int main() {
    if(mgl_init() != 0)
        return 1;

    mgl_window window;
    if(mgl_window_create(&window, "mgl", &(mgl_window_create_params){ .size = { 1280, 720 } }) != 0)
        return 1;

    mgui_list *list = mgui_list_create(MGUI_LIST_VERTICAL);
    mgui_list_append(list, mgui_list_to_widget(create_list_item("Slashbash", "A government has a duty to its own people, first and foremost. If they don't protect their people, they are failing their duties and should be removed.")));
    mgui_list_append(list, mgui_list_to_widget(create_list_item("Andy F.", "Immigration to ANY nation is a privilege given by that nation, not a right.")));

    mgl_event event;
    while(mgl_window_is_open(&window)) {
        while(mgl_window_poll_event(&window, &event)) {
            /* TODO:
            if(event.type == MGL_EVENT_RESIZED) {
                mgui_list_set_size(list, (mgl_vec2i){ event.size.width, event.size.height });
            }*/
            mgui_list_on_event(list, &window, &event);
        }

        mgl_window_clear(&window, (mgl_color){ 0, 0, 0, 0 });
        mgui_list_draw(list, &window);
        mgl_window_display(&window);
    }

    mgl_deinit();
    return 0;
}