summaryrefslogtreecommitdiff
path: root/src/fe-text/statusbar.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/fe-text/statusbar.h')
-rw-r--r--src/fe-text/statusbar.h45
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