Merge pull request #457 from vivien/text-variable
[tig.git] / include / tig / draw.h
blobab8249e03b26f0e2feefa2d3c7d506efb2679f44
1 /* Copyright (c) 2006-2015 Jonas Fonseca <jonas.fonseca@gmail.com>
3 * This program is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU General Public License as
5 * published by the Free Software Foundation; either version 2 of
6 * the License, or (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #ifndef TIG_DRAW_H
15 #define TIG_DRAW_H
17 #include "tig/tig.h"
18 #include "tig/line.h"
19 #include "tig/view.h"
20 #include "tig/refdb.h"
21 #include "tig/util.h"
23 enum align {
24 ALIGN_LEFT,
25 ALIGN_RIGHT
28 #define VIEW_MAX_LEN(view) ((view)->width + (view)->pos.col - (view)->col)
30 bool draw_text(struct view *view, enum line_type type, const char *string);
31 bool PRINTF_LIKE(3, 4) draw_formatted(struct view *view, enum line_type type, const char *format, ...);
32 bool draw_graphic(struct view *view, enum line_type type, const chtype graphic[], size_t size, bool separator);
33 bool draw_field(struct view *view, enum line_type type, const char *text, int width, enum align align, bool trim);
34 bool draw_lineno(struct view *view, struct view_column *column, unsigned int lineno);
35 bool view_column_draw(struct view *view, struct line *line, unsigned int lineno);
37 void redraw_view(struct view *view);
38 void redraw_view_from(struct view *view, int lineno);
39 void redraw_view_dirty(struct view *view);
40 bool draw_view_line(struct view *view, unsigned int lineno);
42 #endif
43 /* vim: set ts=8 sw=8 noexpandtab: */