#ifndef RTK_H_
#define RTK_H_
+#include "sizeint.h"
+
/* widget type */
-enum { RTK_ANY, RTK_WIN, RTK_BUTTON, RTK_LABEL, RTK_CHECKBOX, RTK_SLIDER, RTK_SEP };
+enum {
+ RTK_ANY,
+ RTK_WIN,
+ RTK_BUTTON,
+ RTK_LABEL,
+ RTK_CHECKBOX,
+ RTK_SLIDER,
+ RTK_SEP
+};
/* window layout */
enum { RTK_NONE, RTK_VBOX, RTK_HBOX };
+/* window flags */
+enum {
+ RTK_WIN_FRAME = 1,
+ RTK_WIN_MOVABLE = 2,
+ RTK_WIN_RESIZABLE = 4
+};
+/* button mode */
+enum { RTK_PUSHBN, RTK_TOGGLEBN };
typedef struct rtk_screen rtk_screen;
typedef union rtk_widget rtk_widget;
void rtk_pos(rtk_widget *w, int *xptr, int *yptr);
void rtk_resize(rtk_widget *w, int xsz, int ysz);
void rtk_size(rtk_widget *w, int *xptr, int *yptr);
+void rtk_get_rect(rtk_widget *w, rtk_rect *r);
int rtk_set_text(rtk_widget *w, const char *str);
const char *rtk_get_text(rtk_widget *w);
void rtk_set_callback(rtk_widget *w, rtk_callback cbfunc, void *cls);
+void rtk_show(rtk_widget *w);
+void rtk_hide(rtk_widget *w);
+int rtk_visible(const rtk_widget *w);
+
+void rtk_invalidate(rtk_widget *w);
+void rtk_validate(rtk_widget *w);
+
/* window functions */
void rtk_win_layout(rtk_widget *w, int layout);
void rtk_win_clear(rtk_widget *w);
int rtk_win_has(rtk_widget *par, rtk_widget *child);
/* button functions */
+void rtk_bn_mode(rtk_widget *w, int mode);
void rtk_bn_set_icon(rtk_widget *w, rtk_icon *icon);
rtk_icon *rtk_bn_get_icon(rtk_widget *w);
-rtk_widget *rtk_create_window(rtk_widget *par, const char *title, int x, int y, int w, int h);
+rtk_widget *rtk_create_window(rtk_widget *par, const char *title, int x, int y,
+ int width, int height, unsigned int flags);
rtk_widget *rtk_create_button(rtk_widget *par, const char *str, rtk_callback cbfunc);
rtk_widget *rtk_create_iconbutton(rtk_widget *par, rtk_icon *icon, rtk_callback cbfunc);
rtk_widget *rtk_create_label(rtk_widget *par, const char *text);
int rtk_input_mbutton(rtk_widget *w, int bn, int press, int x, int y);
int rtk_input_mmotion(rtk_widget *w, int x, int y);
+/* misc */
+void rtk_fix_rect(rtk_rect *r);
+void rtk_rect_union(rtk_rect *a, const rtk_rect *b);
+
#endif /* RTK_H_ */