aboutsummaryrefslogtreecommitdiff
path: root/include/mgui/scrollview.h
blob: 76ae6d50dc605078d46fb248371e037840ac0dc5 (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
#ifndef MGUI_SCROLLVIEW_H
#define MGUI_SCROLLVIEW_H

#include "widget.h"

typedef struct {
    mgui_widget widget;
    mgui_widget *child;
    mgl_vec2i position;
    mgl_vec2i scroll;
    mgl_vec2f mouse_scroll;
    mgl_vec2f scrollbar_pos;
    mgl_vec2f scrollbar_size;
    mgl_vec2f scrollbar_move_prev_pos;
    bool moving_scrollbar;
} mgui_scrollview;

mgui_scrollview* mgui_scrollview_create(void);
void mgui_scrollview_destroy(mgui_scrollview *scrollview);
mgui_widget* mgui_scrollview_to_widget(mgui_scrollview *list);
mgui_scrollview* mgui_widget_to_scrollview(mgui_widget *widget);

void mgui_scrollview_set_child(mgui_scrollview *self, mgui_widget *child);
void mgui_scrollview_set_position(mgui_scrollview *self, mgl_vec2i position);
void mgui_scrollview_calculate_size(mgui_scrollview *self, mgl_vec2i max_size);
void mgui_scrollview_set_size(mgui_scrollview *self, mgl_vec2i size);
void mgui_scrollview_on_event(mgui_scrollview *self, mgl_window *window, mgl_event *event);
void mgui_scrollview_draw(mgui_scrollview *self, mgl_window *window);

#endif /* MGUI_SCROLLVIEW_H */