#define RTK_H_
/* widget type */
-enum { RTK_ANY, RTK_WIN, RTK_BUTTON, RTK_LABEL, RTK_CHECKBOX, RTK_SLIDER };
+enum {
+ RTK_ANY,
+ RTK_WIN,
+ RTK_BUTTON,
+ RTK_LABEL,
+ RTK_CHECKBOX,
+ RTK_SLIDER,
+ RTK_SEP
+};
/* window layout */
enum { RTK_NONE, RTK_VBOX, RTK_HBOX };
+/* button mode */
+enum { RTK_PUSHBN, RTK_TOGGLEBN };
+typedef struct rtk_screen rtk_screen;
typedef union rtk_widget rtk_widget;
typedef struct rtk_icon rtk_icon;
typedef struct rtk_iconsheet rtk_iconsheet;
int x, y, width, height;
} rtk_rect;
+typedef struct rtk_icon {
+ char *name;
+ int width, height, scanlen;
+ uint32_t *pixels;
+
+ struct rtk_icon *next;
+} rtk_icon;
+
+
typedef struct rtk_draw_ops {
void (*fill)(rtk_rect *rect, uint32_t color);
void (*blit)(int x, int y, rtk_icon *icon);
void rtk_setup(rtk_draw_ops *drawop);
/* widget functions */
-
rtk_widget *rtk_create_widget(void);
void rtk_free_widget(rtk_widget *w);
int rtk_type(rtk_widget *w);
+rtk_widget *rtk_parent(rtk_widget *w);
void rtk_move(rtk_widget *w, int x, int y);
void rtk_pos(rtk_widget *w, int *xptr, int *yptr);
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_iconbutton(rtk_widget *par, rtk_icon *icon, rtk_callback cbfunc);
rtk_widget *rtk_create_label(rtk_widget *par, const char *text);
rtk_widget *rtk_create_checkbox(rtk_widget *par, const char *text, int chk, rtk_callback cbfunc);
+rtk_widget *rtk_create_separator(rtk_widget *par);
/* icon functions */
rtk_iconsheet *rtk_load_iconsheet(const char *fname);
void rtk_free_iconsheet(rtk_iconsheet *is);
rtk_icon *rtk_define_icon(rtk_iconsheet *is, const char *name, int x, int y, int w, int h);
+rtk_icon *rtk_lookup_icon(rtk_iconsheet *is, const char *name);
void rtk_draw_widget(rtk_widget *w);
+/* input events */
+int rtk_input_key(rtk_widget *w, int key, int press);
+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);
#endif /* RTK_H_ */