c7ecf159699c733dc9be6ecbb33c0a4492e6c4a0
[retroray] / src / rtk.h
1 #ifndef RTK_H_
2 #define RTK_H_
3
4 struct image;
5
6 /* widget type */
7 enum { RTK_ANY, RTK_WIN, RTK_BUTTON, RTK_LABEL, RTK_CHECKBOX, RTK_SLIDER };
8 /* window layout */
9 enum { RTK_NONE, RTK_VBOX, RTK_HBOX };
10
11 typedef union rtk_widget rtk_widget;
12
13 typedef void (*rtk_callback)(rtk_widget*, void*);
14
15 rtk_widget *rtk_create_widget(void);
16 void rtk_free_widget(rtk_widget *w);
17
18 int rtk_type(rtk_widget *w);
19
20 void rtk_move(rtk_widget *w, int x, int y);
21 void rtk_pos(rtk_widget *w, int *xptr, int *yptr);
22 void rtk_resize(rtk_widget *w, int xsz, int ysz);
23 void rtk_size(rtk_widget *w, int *xptr, int *yptr);
24
25 int rtk_set_text(rtk_widget *w, const char *str);
26 const char *rtk_get_text(rtk_widget *w);
27
28 void rtk_set_callback(rtk_widget *w, rtk_callback cbfunc, void *cls);
29
30 /* window functions */
31 void rtk_win_layout(rtk_widget *w, int layout);
32 void rtk_win_clear(rtk_widget *w);
33 void rtk_win_add(rtk_widget *par, rtk_widget *child);
34 void rtk_win_rm(rtk_widget *par, rtk_widget *child);
35 int rtk_win_has(rtk_widget *par, rtk_widget *child);
36
37 rtk_widget *rtk_create_window(rtk_widget *par, const char *title, int x, int y, int w, int h);
38 rtk_widget *rtk_create_button(rtk_widget *par, const char *str, rtk_callback cbfunc);
39 rtk_widget *rtk_create_iconbutton(rtk_widget *par, struct image *img, rtk_callback cbfunc);
40 rtk_widget *rtk_create_label(rtk_widget *par, const char *text);
41 rtk_widget *rtk_create_checkbox(rtk_widget *par, const char *text, int chk, rtk_callback cbfunc);
42
43 #endif  /* RTK_H_ */