initial commit
[oftp] / src / tui.h
1 #ifndef TUI_H_
2 #define TUI_H_
3
4 struct tui_widget;
5 typedef void (*tui_callback)(struct tui_widget*);
6
7 /* widget types */
8 enum { TUI_UNKNOWN, TUI_WINDOW, TUI_BUTTON, TUI_LIST };
9 /* callback types */
10 enum {
11         TUI_ONCLICK,
12         TUI_ONMODIFY,
13         TUI_NUM_CALLBACKS
14 };
15
16 int tui_init(void);
17 void tui_shutdown(void);
18
19 struct tui_widget *tui_widget(int type);
20 void tui_free(struct tui_widget *w);
21
22 void tui_set_callback(struct tui_widget *w, int type, tui_callback func, void *cls);
23
24 struct tui_widget *tui_window(const char *title, int x, int y, int w, int h);
25 struct tui_widget *tui_button(const char *title, int x, int y, tui_callback cbfunc, void *cbdata);
26 struct tui_widget *tui_list(const char *title, int x, int y, int w, int h, tui_callback cbfunc, void *cbdata);
27
28 void tui_clear_list(struct tui_widget *w);
29 void tui_add_list_item(struct tui_widget *w, const char *text);
30
31
32 #endif  /* TUI_H_ */