diff options
Diffstat (limited to 'examples/dte/screen-status.c')
| -rw-r--r-- | examples/dte/screen-status.c | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/examples/dte/screen-status.c b/examples/dte/screen-status.c deleted file mode 100644 index c7ec837..0000000 --- a/examples/dte/screen-status.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "screen.h" -#include "status.h" - -void update_status_line(const Window *window) -{ - EditorState *e = window->editor; - const GlobalOptions *opts = &e->options; - InputMode mode = e->input_mode; - char lbuf[512], rbuf[512]; - sf_format(window, opts, mode, lbuf, sizeof lbuf, opts->statusline_left); - sf_format(window, opts, mode, rbuf, sizeof rbuf, opts->statusline_right); - - const ColorScheme *colors = &e->colors; - Terminal *term = &e->terminal; - TermOutputBuffer *obuf = &term->obuf; - size_t lw = u_str_width(lbuf); - size_t rw = u_str_width(rbuf); - int w = window->w; - static_assert_compatible_types(w, window->w); - term_output_reset(term, window->x, w, 0); - term_move_cursor(obuf, window->x, window->y + window->h - 1); - set_builtin_color(term, colors, BC_STATUSLINE); - - if (lw + rw <= w) { - // Both fit - term_add_str(obuf, lbuf); - term_set_bytes(term, ' ', w - lw - rw); - term_add_str(obuf, rbuf); - } else if (lw <= w && rw <= w) { - // Both would fit separately, draw overlapping - term_add_str(obuf, lbuf); - obuf->x = w - rw; - term_move_cursor(obuf, window->x + w - rw, window->y + window->h - 1); - term_add_str(obuf, rbuf); - } else if (lw <= w) { - // Left fits - term_add_str(obuf, lbuf); - term_clear_eol(term); - } else if (rw <= w) { - // Right fits - term_set_bytes(term, ' ', w - rw); - term_add_str(obuf, rbuf); - } else { - term_clear_eol(term); - } -} |
