From 33b17306fb887b175ce62ad30af93d4dd9fd0d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sat, 21 May 2016 13:01:22 +0200 Subject: vis: add functions to query window size --- ui-curses.c | 10 ++++++++++ ui.h | 2 ++ vis.c | 8 ++++++++ vis.h | 3 +++ 4 files changed, 23 insertions(+) diff --git a/ui-curses.c b/ui-curses.c index 45238f3..f2f215a 100644 --- a/ui-curses.c +++ b/ui-curses.c @@ -938,6 +938,14 @@ static enum UiOption ui_window_options_get(UiWin *w) { return win->options; } +static int ui_window_width(UiWin *win) { + return ((UiCursesWin*)win)->width; +} + +static int ui_window_height(UiWin *win) { + return ((UiCursesWin*)win)->height; +} + static void ui_window_swap(UiWin *aw, UiWin *bw) { UiCursesWin *a = (UiCursesWin*)aw; UiCursesWin *b = (UiCursesWin*)bw; @@ -981,6 +989,8 @@ static UiWin *ui_window_new(Ui *ui, View *view, File *file, enum UiOption option .options_get = ui_window_options_get, .reload = ui_window_reload, .syntax_style = ui_window_syntax_style, + .window_width = ui_window_width, + .window_height = ui_window_height, }; if (!(win->win = newwin(0, 0, 0, 0))) { diff --git a/ui.h b/ui.h index 9061932..03857e4 100644 --- a/ui.h +++ b/ui.h @@ -80,6 +80,8 @@ struct UiWin { void (*options_set)(UiWin*, enum UiOption); enum UiOption (*options_get)(UiWin*); bool (*syntax_style)(UiWin*, int id, const char *style); + int (*window_width)(UiWin*); + int (*window_height)(UiWin*); }; #endif diff --git a/vis.c b/vis.c index 9e05a6b..6b5d458 100644 --- a/vis.c +++ b/vis.c @@ -268,6 +268,14 @@ bool vis_window_syntax_set(Win *win, const char *syntax) { return !syntax || win->lexer_name; } +int vis_window_width_get(const Win *win) { + return win->ui->window_width(win->ui); +} + +int vis_window_height_get(const Win *win) { + return win->ui->window_height(win->ui); +} + void vis_draw(Vis *vis) { vis->ui->draw(vis->ui); } diff --git a/vis.h b/vis.h index 132cc18..66e42e8 100644 --- a/vis.h +++ b/vis.h @@ -104,6 +104,9 @@ void vis_window_swap(Win*, Win*); const char *vis_window_syntax_get(Win*); bool vis_window_syntax_set(Win*, const char *name); +int vis_window_width_get(const Win*); +int vis_window_height_get(const Win*); + /* display a user prompt with a certain title and default text */ void vis_prompt_show(Vis*, const char *title); -- cgit v1.2.3