aboutsummaryrefslogtreecommitdiff
path: root/vis.h
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2014-09-08 10:26:45 +0200
committerMarc André Tanner <mat@brain-dump.org>2014-09-08 10:26:45 +0200
commitcaab3855eaafdfef6083ff99416a1b6346a0cc18 (patch)
treed9dff0b60eb444dd876e3a84852acf3e77bd6001 /vis.h
parent16cc6025a0bef7875a9f3426077beecc71cabde6 (diff)
downloadvis-caab3855eaafdfef6083ff99416a1b6346a0cc18.tar.gz
vis-caab3855eaafdfef6083ff99416a1b6346a0cc18.tar.xz
Add user prompt infrastructure
This is implemented by means of an one line height editor window and a set of custom key bindings.
Diffstat (limited to 'vis.h')
-rw-r--r--vis.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/vis.h b/vis.h
index fe504ab..b35208e 100644
--- a/vis.h
+++ b/vis.h
@@ -20,6 +20,14 @@ struct VisWin {
VisWin *prev, *next; /* neighbouring windows */
};
+typedef struct {
+ VisWin *win;
+ VisWin *editor; /* active editor window before prompt is shown */
+ char *title;
+ WINDOW *titlewin;
+ bool active;
+} Prompt;
+
typedef void (*vis_statusbar_t)(WINDOW *win, bool active, const char *filename, size_t line, size_t col);
enum Reg {
@@ -47,6 +55,7 @@ struct Vis {
VisWin *win; /* currently active window */
Syntax *syntaxes; /* NULL terminated array of syntax definitions */
Register registers[REG_LAST];
+ Prompt *prompt;
void (*windows_arrange)(Vis*); /* current layout which places the windows */
vis_statusbar_t statusbar; /* configurable user hook to draw statusbar */
};
@@ -102,6 +111,13 @@ void vis_window_vsplit(Vis*, const char *filename);
void vis_window_next(Vis*);
void vis_window_prev(Vis*);
+
+char *vis_prompt_get(Vis *vis);
+void vis_prompt_set(Vis *vis, const char *line);
+void vis_prompt_show(Vis *vis, const char *title);
+void vis_prompt_hide(Vis *vis);
+
+
void vis_statusbar_set(Vis*, vis_statusbar_t);
/* library initialization code, should be run at startup */