X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ftui.h;fp=src%2Ftui.h;h=5e3012e75a1d05074e907bf47f20510fea55db62;hb=2f4fb7c15c5017546238241ea318b16b9a032c52;hp=b5f7fafb8a1f59194d9d96b10c89a1bce1c2260d;hpb=8091cf11d15e1363d8d608fb640f4f12b0887e52;p=oftp diff --git a/src/tui.h b/src/tui.h index b5f7faf..5e3012e 100644 --- a/src/tui.h +++ b/src/tui.h @@ -1,8 +1,12 @@ #ifndef TUI_H_ #define TUI_H_ +#include + +enum { TUI_INFO, TUI_WARN, TUI_ERROR }; + struct tui_widget; -typedef void (*tui_callback)(struct tui_widget*); +typedef void (*tui_callback)(struct tui_widget*, void*); /* widget types */ enum { TUI_UNKNOWN, TUI_WINDOW, TUI_BUTTON, TUI_LIST }; @@ -19,6 +23,12 @@ void tui_shutdown(void); struct tui_widget *tui_widget(int type); void tui_free(struct tui_widget *w); +void tui_add_widget(struct tui_widget *par, struct tui_widget *w); +void tui_remove_widget(struct tui_widget *par, struct tui_widget *w); +struct tui_widget *tui_parent(struct tui_widget *w); + +void tui_draw(struct tui_widget *w); + void tui_set_callback(struct tui_widget *w, int type, tui_callback func, void *cls); struct tui_widget *tui_window(const char *title, int x, int y, int w, int h); @@ -28,5 +38,13 @@ struct tui_widget *tui_list(const char *title, int x, int y, int w, int h, tui_c void tui_clear_list(struct tui_widget *w); void tui_add_list_item(struct tui_widget *w, const char *text); +void tui_wtoscr(struct tui_widget *w, int x, int y, int *retx, int *rety); +void tui_scrtow(struct tui_widget *w, int x, int y, int *retx, int *rety); + +void tui_status(int type, const char *fmt, ...); +void tui_vstatus(int type, const char *fmt, va_list ap); +void tui_msgbox(int type, const char *title, const char *msg, ...); +void tui_vmsgbox(int type, const char *title, const char *msg, va_list ap); + #endif /* TUI_H_ */