summaryrefslogtreecommitdiff
path: root/examples/dte/screen-status.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/dte/screen-status.c')
-rw-r--r--examples/dte/screen-status.c46
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);
- }
-}