diff options
Diffstat (limited to 'src/fe-text/statusbar.h')
-rw-r--r-- | src/fe-text/statusbar.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/fe-text/statusbar.h b/src/fe-text/statusbar.h new file mode 100644 index 00000000..3ca133ef --- /dev/null +++ b/src/fe-text/statusbar.h @@ -0,0 +1,45 @@ +#ifndef __STATUSBAR_H +#define __STATUSBAR_H + +enum { + STATUSBAR_POS_UP, + STATUSBAR_POS_MIDDLE, + STATUSBAR_POS_DOWN +}; + +typedef struct { + int pos; + int line; + + int ypos; /* real position in screen at the moment */ + GSList *items; +} STATUSBAR_REC; + +typedef struct { + STATUSBAR_REC *bar; + + int xpos, size; + int right_justify; + void *func; +} SBAR_ITEM_REC; + +typedef void (*STATUSBAR_FUNC) (SBAR_ITEM_REC *item, int ypos); + +/* ypos is used only when pos == STATUSBAR_POS_MIDDLE */ +STATUSBAR_REC *statusbar_create(int pos, int ypos); +void statusbar_destroy(STATUSBAR_REC *bar); + +STATUSBAR_REC *statusbar_find(int pos, int line); + +SBAR_ITEM_REC *statusbar_item_create(STATUSBAR_REC *bar, int size, gboolean right_justify, STATUSBAR_FUNC func); +void statusbar_item_resize(SBAR_ITEM_REC *item, int size); +void statusbar_item_remove(SBAR_ITEM_REC *item); + +/* redraw statusbar, NULL = all */ +void statusbar_redraw(STATUSBAR_REC *bar); +void statusbar_item_redraw(SBAR_ITEM_REC *item); + +void statusbar_init(void); +void statusbar_deinit(void); + +#endif |