HelenOS sources
termui 317 uspace/app/terminal/terminal.c termui_force_viewport_update(term->termui, 0, termui_get_rows(term->termui));
termui 433 uspace/app/terminal/terminal.c termui_put_crlf(term->termui);
termui 436 uspace/app/terminal/terminal.c termui_put_cr(term->termui);
termui 439 uspace/app/terminal/terminal.c termui_put_tab(term->termui);
termui 442 uspace/app/terminal/terminal.c termui_put_backspace(term->termui);
termui 448 uspace/app/terminal/terminal.c termui_put_glyph(term->termui, fb_font_glyph(ch, NULL), 1);
termui 485 uspace/app/terminal/terminal.c termui_clear_screen(term->termui);
termui 497 uspace/app/terminal/terminal.c termui_set_pos(term->termui, col, row);
termui 510 uspace/app/terminal/terminal.c termui_get_pos(term->termui, &icol, &irow);
termui 524 uspace/app/terminal/terminal.c *cols = termui_get_cols(term->termui);
termui 525 uspace/app/terminal/terminal.c *rows = termui_get_rows(term->termui);
termui 566 uspace/app/terminal/terminal.c termui_set_style(term->termui, cellstyle);
termui 585 uspace/app/terminal/terminal.c termui_set_style(term->termui, cellstyle);
termui 599 uspace/app/terminal/terminal.c termui_set_style(term->termui, cellstyle);
termui 608 uspace/app/terminal/terminal.c termui_set_cursor_visibility(term->termui, visible);
termui 680 uspace/app/terminal/terminal.c termui_history_scroll(term->termui, INT_MAX);
termui 702 uspace/app/terminal/terminal.c termui_wipe_screen(term->termui, 0);
termui 736 uspace/app/terminal/terminal.c c1 = min(c1, (sysarg_t) termui_get_cols(term->termui));
termui 738 uspace/app/terminal/terminal.c r1 = min(r1, (sysarg_t) termui_get_rows(term->termui));
termui 748 uspace/app/terminal/terminal.c termui_cell_t *cells = termui_get_active_row(term->termui, row);
termui 815 uspace/app/terminal/terminal.c termui_destroy(term->termui);
termui 866 uspace/app/terminal/terminal.c (void) termui_resize(term->termui, term->w / FONT_WIDTH, term->h / FONT_SCANLINES, SCROLLBACK_MAX_LINES);
termui 906 uspace/app/terminal/terminal.c const int PAGE_ROWS = (termui_get_rows(term->termui) * 2) / 3;
termui 913 uspace/app/terminal/terminal.c termui_history_scroll(term->termui,
termui 941 uspace/app/terminal/terminal.c if (termui_scrollback_is_active(term->termui))
termui 959 uspace/app/terminal/terminal.c int cols = termui_get_cols(term->termui);
termui 960 uspace/app/terminal/terminal.c int rows = termui_get_rows(term->termui);
termui 996 uspace/app/terminal/terminal.c termui_set_cursor_visibility(term->termui, true);
termui 1089 uspace/app/terminal/terminal.c term->termui = termui_create(term->w / FONT_WIDTH,
termui 1091 uspace/app/terminal/terminal.c if (!term->termui) {
termui 1097 uspace/app/terminal/terminal.c termui_set_refresh_cb(term->termui, termui_refresh_cb, term);
termui 1098 uspace/app/terminal/terminal.c termui_set_scroll_cb(term->termui, termui_scroll_cb, term);
termui 1099 uspace/app/terminal/terminal.c termui_set_update_cb(term->termui, termui_update_cb, term);
termui 1150 uspace/app/terminal/terminal.c if (term->termui != NULL)
termui 1151 uspace/app/terminal/terminal.c termui_destroy(term->termui);
termui 84 uspace/app/terminal/terminal.h termui_t *termui;
termui 40 uspace/lib/termui/include/termui.h struct termui;
termui 41 uspace/lib/termui/include/termui.h typedef struct termui termui_t;
termui 107 uspace/lib/termui/include/termui.h void termui_destroy(termui_t *termui);
termui 109 uspace/lib/termui/include/termui.h errno_t termui_resize(termui_t *termui, int cols, int rows, size_t history_lines);
termui 111 uspace/lib/termui/include/termui.h void termui_set_scroll_cb(termui_t *termui, termui_scroll_cb_t cb, void *userdata);
termui 112 uspace/lib/termui/include/termui.h void termui_set_update_cb(termui_t *termui, termui_update_cb_t cb, void *userdata);
termui 113 uspace/lib/termui/include/termui.h void termui_set_refresh_cb(termui_t *termui, termui_refresh_cb_t cb, void *userdata);
termui 115 uspace/lib/termui/include/termui.h void termui_put_lf(termui_t *termui);
termui 116 uspace/lib/termui/include/termui.h void termui_put_cr(termui_t *termui);
termui 117 uspace/lib/termui/include/termui.h void termui_put_crlf(termui_t *termui);
termui 118 uspace/lib/termui/include/termui.h void termui_put_tab(termui_t *termui);
termui 119 uspace/lib/termui/include/termui.h void termui_put_backspace(termui_t *termui);
termui 120 uspace/lib/termui/include/termui.h void termui_put_glyph(termui_t *termui, uint32_t glyph, int width);
termui 121 uspace/lib/termui/include/termui.h void termui_clear_screen(termui_t *termui);
termui 122 uspace/lib/termui/include/termui.h void termui_wipe_screen(termui_t *termui, int first_row);
termui 124 uspace/lib/termui/include/termui.h void termui_set_style(termui_t *termui, termui_cell_t style);
termui 125 uspace/lib/termui/include/termui.h void termui_set_pos(termui_t *termui, int col, int row);
termui 126 uspace/lib/termui/include/termui.h void termui_get_pos(const termui_t *termui, int *col, int *row);
termui 127 uspace/lib/termui/include/termui.h int termui_get_cols(const termui_t *termui);
termui 128 uspace/lib/termui/include/termui.h int termui_get_rows(const termui_t *termui);
termui 130 uspace/lib/termui/include/termui.h bool termui_get_cursor_visibility(const termui_t *termui);
termui 131 uspace/lib/termui/include/termui.h void termui_set_cursor_visibility(termui_t *termui, bool visible);
termui 132 uspace/lib/termui/include/termui.h termui_cell_t *termui_get_active_row(termui_t *termui, int row);
termui 133 uspace/lib/termui/include/termui.h void termui_history_scroll(termui_t *termui, int delta);
termui 134 uspace/lib/termui/include/termui.h void termui_force_viewport_update(const termui_t *termui, int first_row, int rows);
termui 135 uspace/lib/termui/include/termui.h bool termui_scrollback_is_active(const termui_t *termui);
termui 75 uspace/lib/termui/src/termui.c static int _real_row(const termui_t *termui, int row)
termui 77 uspace/lib/termui/src/termui.c row += termui->first_row;
termui 78 uspace/lib/termui/src/termui.c if (row >= termui->rows)
termui 79 uspace/lib/termui/src/termui.c row -= termui->rows;
termui 84 uspace/lib/termui/src/termui.c #define _screen_cell(termui, col, row) \
termui 85 uspace/lib/termui/src/termui.c ((termui)->screen[(termui)->cols * _real_row((termui), (row)) + (col)])
termui 87 uspace/lib/termui/src/termui.c #define _current_cell(termui) \
termui 88 uspace/lib/termui/src/termui.c _screen_cell((termui), (termui)->col, (termui)->row)
termui 90 uspace/lib/termui/src/termui.c #define _overflow_flag(termui, row) \
termui 91 uspace/lib/termui/src/termui.c ((termui)->overflow_flags[_real_row((termui), (row))])
termui 95 uspace/lib/termui/src/termui.c void termui_set_style(termui_t *termui, termui_cell_t style)
termui 97 uspace/lib/termui/src/termui.c termui->style = style;
termui 100 uspace/lib/termui/src/termui.c static void _termui_evict_row(termui_t *termui)
termui 102 uspace/lib/termui/src/termui.c if (termui->used_rows <= 0)
termui 105 uspace/lib/termui/src/termui.c bool last = !_overflow_flag(termui, 0);
termui 107 uspace/lib/termui/src/termui.c for (int col = 0; col < termui->cols; col++)
termui 108 uspace/lib/termui/src/termui.c _screen_cell(termui, col, 0).cursor = 0;
termui 111 uspace/lib/termui/src/termui.c _history_append_row(&termui->history, &_screen_cell(termui, 0, 0), last);
termui 113 uspace/lib/termui/src/termui.c _overflow_flag(termui, 0) = false;
termui 116 uspace/lib/termui/src/termui.c for (int col = 0; col < termui->cols; col++)
termui 117 uspace/lib/termui/src/termui.c _screen_cell(termui, col, 0) = termui->default_cell;
termui 119 uspace/lib/termui/src/termui.c termui->used_rows--;
termui 121 uspace/lib/termui/src/termui.c termui->row--;
termui 122 uspace/lib/termui/src/termui.c if (termui->row < 0) {
termui 123 uspace/lib/termui/src/termui.c termui->row = 0;
termui 124 uspace/lib/termui/src/termui.c termui->col = 0;
termui 127 uspace/lib/termui/src/termui.c termui->first_row++;
termui 128 uspace/lib/termui/src/termui.c if (termui->first_row >= termui->rows)
termui 129 uspace/lib/termui/src/termui.c termui->first_row -= termui->rows;
termui 131 uspace/lib/termui/src/termui.c assert(termui->first_row < termui->rows);
termui 139 uspace/lib/termui/src/termui.c termui_cell_t *termui_get_active_row(termui_t *termui, int row)
termui 142 uspace/lib/termui/src/termui.c assert(row < termui->rows);
termui 144 uspace/lib/termui/src/termui.c return &_screen_cell(termui, 0, row);
termui 147 uspace/lib/termui/src/termui.c static void _update_active_cells(termui_t *termui, int col, int row, int cells)
termui 149 uspace/lib/termui/src/termui.c int viewport_rows = _history_viewport_rows(&termui->history, termui->rows);
termui 150 uspace/lib/termui/src/termui.c int active_rows_shown = termui->rows - viewport_rows;
termui 153 uspace/lib/termui/src/termui.c if (termui->update_cb && active_rows_shown > row)
termui 154 uspace/lib/termui/src/termui.c termui->update_cb(termui->update_udata, col, row + viewport_rows, &_screen_cell(termui, col, row), cells);
termui 157 uspace/lib/termui/src/termui.c static void _update_current_cell(termui_t *termui)
termui 159 uspace/lib/termui/src/termui.c _update_active_cells(termui, termui->col, termui->row, 1);
termui 162 uspace/lib/termui/src/termui.c static void _cursor_off(termui_t *termui)
termui 164 uspace/lib/termui/src/termui.c if (termui->cursor_visible) {
termui 165 uspace/lib/termui/src/termui.c _current_cell(termui).cursor = 0;
termui 166 uspace/lib/termui/src/termui.c _update_current_cell(termui);
termui 170 uspace/lib/termui/src/termui.c static void _cursor_on(termui_t *termui)
termui 172 uspace/lib/termui/src/termui.c if (termui->cursor_visible) {
termui 173 uspace/lib/termui/src/termui.c _current_cell(termui).cursor = 1;
termui 174 uspace/lib/termui/src/termui.c _update_current_cell(termui);
termui 178 uspace/lib/termui/src/termui.c static void _advance_line(termui_t *termui)
termui 180 uspace/lib/termui/src/termui.c if (termui->row + 1 >= termui->rows) {
termui 181 uspace/lib/termui/src/termui.c size_t old_top = termui->history.viewport_top;
termui 183 uspace/lib/termui/src/termui.c _termui_evict_row(termui);
termui 185 uspace/lib/termui/src/termui.c if (old_top != termui->history.viewport_top && termui->refresh_cb)
termui 186 uspace/lib/termui/src/termui.c termui->refresh_cb(termui->refresh_udata);
termui 188 uspace/lib/termui/src/termui.c if (termui->scroll_cb && !_scrollback_active(&termui->history))
termui 189 uspace/lib/termui/src/termui.c termui->scroll_cb(termui->scroll_udata, 1);
termui 192 uspace/lib/termui/src/termui.c if (termui->rows > 1)
termui 193 uspace/lib/termui/src/termui.c termui->row++;
termui 195 uspace/lib/termui/src/termui.c if (termui->row >= termui->used_rows)
termui 196 uspace/lib/termui/src/termui.c termui->used_rows = termui->row + 1;
termui 198 uspace/lib/termui/src/termui.c assert(termui->row < termui->rows);
termui 201 uspace/lib/termui/src/termui.c void termui_put_lf(termui_t *termui)
termui 203 uspace/lib/termui/src/termui.c _cursor_off(termui);
termui 204 uspace/lib/termui/src/termui.c termui->overflow = false;
termui 205 uspace/lib/termui/src/termui.c _advance_line(termui);
termui 206 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 209 uspace/lib/termui/src/termui.c void termui_put_cr(termui_t *termui)
termui 211 uspace/lib/termui/src/termui.c _cursor_off(termui);
termui 214 uspace/lib/termui/src/termui.c if (termui->overflow && termui->row > 0) {
termui 215 uspace/lib/termui/src/termui.c termui->row--;
termui 216 uspace/lib/termui/src/termui.c _overflow_flag(termui, termui->row) = 0;
termui 219 uspace/lib/termui/src/termui.c termui->overflow = false;
termui 222 uspace/lib/termui/src/termui.c termui->col = 0;
termui 224 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 228 uspace/lib/termui/src/termui.c void termui_put_crlf(termui_t *termui)
termui 230 uspace/lib/termui/src/termui.c _cursor_off(termui);
termui 233 uspace/lib/termui/src/termui.c if (termui->overflow && termui->row > 0) {
termui 234 uspace/lib/termui/src/termui.c termui->row--;
termui 235 uspace/lib/termui/src/termui.c _overflow_flag(termui, termui->row) = 0;
termui 238 uspace/lib/termui/src/termui.c termui->overflow = false;
termui 241 uspace/lib/termui/src/termui.c _advance_line(termui);
termui 242 uspace/lib/termui/src/termui.c termui->col = 0;
termui 244 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 247 uspace/lib/termui/src/termui.c void termui_put_tab(termui_t *termui)
termui 249 uspace/lib/termui/src/termui.c _cursor_off(termui);
termui 251 uspace/lib/termui/src/termui.c termui->overflow = false;
termui 253 uspace/lib/termui/src/termui.c int new_col = (termui->col / 8 + 1) * 8;
termui 254 uspace/lib/termui/src/termui.c if (new_col >= termui->cols)
termui 255 uspace/lib/termui/src/termui.c new_col = termui->cols - 1;
termui 256 uspace/lib/termui/src/termui.c termui->col = new_col;
termui 258 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 261 uspace/lib/termui/src/termui.c void termui_put_backspace(termui_t *termui)
termui 263 uspace/lib/termui/src/termui.c _cursor_off(termui);
termui 265 uspace/lib/termui/src/termui.c termui->overflow = false;
termui 267 uspace/lib/termui/src/termui.c if (termui->col == 0) {
termui 268 uspace/lib/termui/src/termui.c if (termui->row > 0 && _overflow_flag(termui, termui->row - 1)) {
termui 269 uspace/lib/termui/src/termui.c termui->row--;
termui 270 uspace/lib/termui/src/termui.c termui->col = termui->cols - 1;
termui 271 uspace/lib/termui/src/termui.c _overflow_flag(termui, termui->row) = false;
termui 274 uspace/lib/termui/src/termui.c termui->col--;
termui 277 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 288 uspace/lib/termui/src/termui.c void termui_put_glyph(termui_t *termui, uint32_t glyph_idx, int width)
termui 290 uspace/lib/termui/src/termui.c if (termui->row >= termui->used_rows)
termui 291 uspace/lib/termui/src/termui.c termui->used_rows = termui->row + 1;
termui 293 uspace/lib/termui/src/termui.c termui_cell_t padding_cell = termui->style;
termui 295 uspace/lib/termui/src/termui.c termui_cell_t cell = termui->style;
termui 300 uspace/lib/termui/src/termui.c if (termui->col + width > termui->cols) {
termui 302 uspace/lib/termui/src/termui.c int blanks = termui->cols - termui->col;
termui 304 uspace/lib/termui/src/termui.c _screen_cell(termui, termui->col + i, termui->row) = padding_cell;
termui 306 uspace/lib/termui/src/termui.c _update_active_cells(termui, termui->col, termui->row, blanks);
termui 308 uspace/lib/termui/src/termui.c _overflow_flag(termui, termui->row) = 1;
termui 309 uspace/lib/termui/src/termui.c _advance_line(termui);
termui 310 uspace/lib/termui/src/termui.c termui->col = 0;
termui 313 uspace/lib/termui/src/termui.c _current_cell(termui) = cell;
termui 314 uspace/lib/termui/src/termui.c termui->col++;
termui 317 uspace/lib/termui/src/termui.c _current_cell(termui) = padding_cell;
termui 318 uspace/lib/termui/src/termui.c termui->col++;
termui 321 uspace/lib/termui/src/termui.c if (termui->col < termui->cols) {
termui 323 uspace/lib/termui/src/termui.c if (termui->cursor_visible)
termui 324 uspace/lib/termui/src/termui.c _current_cell(termui).cursor = 1;
termui 325 uspace/lib/termui/src/termui.c _update_active_cells(termui, termui->col - width, termui->row, width + 1);
termui 326 uspace/lib/termui/src/termui.c termui->overflow = false;
termui 329 uspace/lib/termui/src/termui.c _update_active_cells(termui, termui->col - width, termui->row, width);
termui 331 uspace/lib/termui/src/termui.c _overflow_flag(termui, termui->row) = 1;
termui 332 uspace/lib/termui/src/termui.c _advance_line(termui);
termui 333 uspace/lib/termui/src/termui.c termui->col = 0;
termui 334 uspace/lib/termui/src/termui.c termui->overflow = true;
termui 336 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 372 uspace/lib/termui/src/termui.c int termui_get_cols(const termui_t *termui)
termui 374 uspace/lib/termui/src/termui.c return termui->cols;
termui 379 uspace/lib/termui/src/termui.c int termui_get_rows(const termui_t *termui)
termui 381 uspace/lib/termui/src/termui.c return termui->rows;
termui 386 uspace/lib/termui/src/termui.c void termui_get_pos(const termui_t *termui, int *col, int *row)
termui 388 uspace/lib/termui/src/termui.c *col = termui->col;
termui 389 uspace/lib/termui/src/termui.c *row = termui->row;
termui 394 uspace/lib/termui/src/termui.c void termui_set_pos(termui_t *termui, int col, int row)
termui 399 uspace/lib/termui/src/termui.c if (col >= termui->cols)
termui 400 uspace/lib/termui/src/termui.c col = termui->cols - 1;
termui 405 uspace/lib/termui/src/termui.c if (row >= termui->rows)
termui 406 uspace/lib/termui/src/termui.c row = termui->rows - 1;
termui 408 uspace/lib/termui/src/termui.c _cursor_off(termui);
termui 410 uspace/lib/termui/src/termui.c termui->col = col;
termui 411 uspace/lib/termui/src/termui.c termui->row = row;
termui 413 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 419 uspace/lib/termui/src/termui.c void termui_clear_screen(termui_t *termui)
termui 421 uspace/lib/termui/src/termui.c _cursor_off(termui);
termui 422 uspace/lib/termui/src/termui.c termui_put_crlf(termui);
termui 424 uspace/lib/termui/src/termui.c int unused_rows = termui->rows - termui->used_rows;
termui 426 uspace/lib/termui/src/termui.c while (termui->used_rows > 0)
termui 427 uspace/lib/termui/src/termui.c _termui_evict_row(termui);
termui 431 uspace/lib/termui/src/termui.c for (int col = 0; col < termui->cols; col++) {
termui 432 uspace/lib/termui/src/termui.c _screen_cell(termui, col, row) = termui->default_cell;
termui 436 uspace/lib/termui/src/termui.c termui->row = 0;
termui 437 uspace/lib/termui/src/termui.c termui->col = 0;
termui 439 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 441 uspace/lib/termui/src/termui.c if (termui->refresh_cb)
termui 442 uspace/lib/termui/src/termui.c termui->refresh_cb(termui->refresh_udata);
termui 449 uspace/lib/termui/src/termui.c void termui_wipe_screen(termui_t *termui, int first_row)
termui 451 uspace/lib/termui/src/termui.c if (first_row >= termui->rows)
termui 457 uspace/lib/termui/src/termui.c for (int row = first_row; row < termui->rows; row++) {
termui 458 uspace/lib/termui/src/termui.c for (int col = 0; col < termui->cols; col++)
termui 459 uspace/lib/termui/src/termui.c _screen_cell(termui, col, row) = termui->default_cell;
termui 461 uspace/lib/termui/src/termui.c _overflow_flag(termui, row) = false;
termui 462 uspace/lib/termui/src/termui.c _update_active_cells(termui, 0, row, termui->cols);
termui 465 uspace/lib/termui/src/termui.c if (termui->used_rows > first_row)
termui 466 uspace/lib/termui/src/termui.c termui->used_rows = first_row;
termui 468 uspace/lib/termui/src/termui.c if (termui->row >= first_row) {
termui 469 uspace/lib/termui/src/termui.c termui->row = first_row;
termui 470 uspace/lib/termui/src/termui.c termui->col = 0;
termui 471 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 475 uspace/lib/termui/src/termui.c void termui_set_scroll_cb(termui_t *termui, termui_scroll_cb_t cb, void *userdata)
termui 477 uspace/lib/termui/src/termui.c termui->scroll_cb = cb;
termui 478 uspace/lib/termui/src/termui.c termui->scroll_udata = userdata;
termui 481 uspace/lib/termui/src/termui.c void termui_set_update_cb(termui_t *termui, termui_update_cb_t cb, void *userdata)
termui 483 uspace/lib/termui/src/termui.c termui->update_cb = cb;
termui 484 uspace/lib/termui/src/termui.c termui->update_udata = userdata;
termui 487 uspace/lib/termui/src/termui.c void termui_set_refresh_cb(termui_t *termui, termui_refresh_cb_t cb, void *userdata)
termui 489 uspace/lib/termui/src/termui.c termui->refresh_cb = cb;
termui 490 uspace/lib/termui/src/termui.c termui->refresh_udata = userdata;
termui 496 uspace/lib/termui/src/termui.c void termui_force_viewport_update(const termui_t *termui, int first_row, int rows)
termui 500 uspace/lib/termui/src/termui.c assert(first_row + rows <= termui->rows);
termui 502 uspace/lib/termui/src/termui.c if (!termui->update_cb)
termui 505 uspace/lib/termui/src/termui.c int sb_rows = _history_viewport_rows(&termui->history, termui->rows);
termui 506 uspace/lib/termui/src/termui.c int updated = _history_iter_rows(&termui->history, first_row, rows, termui->update_cb, termui->update_udata);
termui 514 uspace/lib/termui/src/termui.c termui->update_cb(termui->update_udata, 0, row, &_screen_cell(termui, 0, row - sb_rows), termui->cols);
termui 518 uspace/lib/termui/src/termui.c bool termui_scrollback_is_active(const termui_t *termui)
termui 520 uspace/lib/termui/src/termui.c return _scrollback_active(&termui->history);
termui 531 uspace/lib/termui/src/termui.c termui_t *termui = calloc(1, sizeof(termui_t));
termui 532 uspace/lib/termui/src/termui.c if (!termui)
termui 535 uspace/lib/termui/src/termui.c termui->cols = cols;
termui 536 uspace/lib/termui/src/termui.c termui->rows = rows;
termui 537 uspace/lib/termui/src/termui.c termui->history.lines.max_len = history_lines;
termui 539 uspace/lib/termui/src/termui.c termui->history.cells.max_len = SIZE_MAX;
termui 541 uspace/lib/termui/src/termui.c termui->history.cells.max_len = history_lines * cols;
termui 542 uspace/lib/termui/src/termui.c termui->history.cols = cols;
termui 544 uspace/lib/termui/src/termui.c termui->screen = calloc(cells, sizeof(termui->screen[0]));
termui 545 uspace/lib/termui/src/termui.c if (!termui->screen) {
termui 546 uspace/lib/termui/src/termui.c free(termui);
termui 550 uspace/lib/termui/src/termui.c termui->overflow_flags = calloc(rows, sizeof(termui->overflow_flags[0]));
termui 551 uspace/lib/termui/src/termui.c if (!termui->overflow_flags) {
termui 552 uspace/lib/termui/src/termui.c free(termui->screen);
termui 553 uspace/lib/termui/src/termui.c free(termui);
termui 557 uspace/lib/termui/src/termui.c return termui;
termui 560 uspace/lib/termui/src/termui.c void termui_destroy(termui_t *termui)
termui 562 uspace/lib/termui/src/termui.c free(termui->screen);
termui 563 uspace/lib/termui/src/termui.c free(termui);
termui 574 uspace/lib/termui/src/termui.c void termui_history_scroll(termui_t *termui, int delta)
termui 576 uspace/lib/termui/src/termui.c int scrolled = _history_scroll(&termui->history, delta);
termui 578 uspace/lib/termui/src/termui.c if (scrolled != 0 && termui->scroll_cb)
termui 579 uspace/lib/termui/src/termui.c termui->scroll_cb(termui->scroll_udata, scrolled);
termui 582 uspace/lib/termui/src/termui.c void termui_set_cursor_visibility(termui_t *termui, bool visible)
termui 584 uspace/lib/termui/src/termui.c if (termui->cursor_visible == visible)
termui 587 uspace/lib/termui/src/termui.c termui->cursor_visible = visible;
termui 589 uspace/lib/termui/src/termui.c _current_cell(termui).cursor = visible;
termui 590 uspace/lib/termui/src/termui.c _update_current_cell(termui);
termui 593 uspace/lib/termui/src/termui.c bool termui_get_cursor_visibility(const termui_t *termui)
termui 595 uspace/lib/termui/src/termui.c return termui->cursor_visible;
termui 598 uspace/lib/termui/src/termui.c static void _termui_put_cells(termui_t *termui, const termui_cell_t *cells, int n)
termui 601 uspace/lib/termui/src/termui.c _current_cell(termui) = cells[0];
termui 605 uspace/lib/termui/src/termui.c termui->col++;
termui 607 uspace/lib/termui/src/termui.c if (termui->col == termui->cols) {
termui 608 uspace/lib/termui/src/termui.c _overflow_flag(termui, termui->row) = 1;
termui 609 uspace/lib/termui/src/termui.c _advance_line(termui);
termui 610 uspace/lib/termui/src/termui.c termui->col = 0;
termui 611 uspace/lib/termui/src/termui.c termui->overflow = true;
termui 613 uspace/lib/termui/src/termui.c termui->overflow = false;
termui 617 uspace/lib/termui/src/termui.c if (termui->row >= termui->used_rows)
termui 618 uspace/lib/termui/src/termui.c termui->used_rows = termui->row + 1;
termui 623 uspace/lib/termui/src/termui.c errno_t termui_resize(termui_t *termui, int cols, int rows, size_t history_lines)
termui 641 uspace/lib/termui/src/termui.c termui_t old_termui = *termui;
termui 643 uspace/lib/termui/src/termui.c termui->rows = rows;
termui 644 uspace/lib/termui/src/termui.c termui->cols = cols;
termui 645 uspace/lib/termui/src/termui.c termui->row = 0;
termui 646 uspace/lib/termui/src/termui.c termui->col = 0;
termui 647 uspace/lib/termui/src/termui.c termui->used_rows = 0;
termui 648 uspace/lib/termui/src/termui.c termui->first_row = 0;
termui 649 uspace/lib/termui/src/termui.c termui->screen = new_screen;
termui 650 uspace/lib/termui/src/termui.c termui->overflow_flags = new_flags;
termui 651 uspace/lib/termui/src/termui.c termui->overflow = false;
termui 653 uspace/lib/termui/src/termui.c bool cursor_visible = termui->cursor_visible;
termui 654 uspace/lib/termui/src/termui.c termui->cursor_visible = false;
termui 656 uspace/lib/termui/src/termui.c termui->history.lines.max_len = history_lines;
termui 659 uspace/lib/termui/src/termui.c termui->history.cells.max_len = SIZE_MAX;
termui 661 uspace/lib/termui/src/termui.c termui->history.cells.max_len = history_lines * cols;
termui 664 uspace/lib/termui/src/termui.c termui->scroll_cb = NULL;
termui 665 uspace/lib/termui/src/termui.c termui->update_cb = NULL;
termui 666 uspace/lib/termui/src/termui.c termui->refresh_cb = NULL;
termui 669 uspace/lib/termui/src/termui.c const termui_cell_t *c = _history_reflow(&termui->history, cols, &recouped);
termui 673 uspace/lib/termui/src/termui.c _termui_put_cells(termui, c, recouped);
termui 683 uspace/lib/termui/src/termui.c _termui_put_cells(termui, &old_termui.screen[real_row_offset], old_termui.cols);
termui 690 uspace/lib/termui/src/termui.c _termui_put_cells(termui, &old_termui.screen[real_row_offset], len);
termui 694 uspace/lib/termui/src/termui.c _current_cell(termui).cursor = old_termui.screen[real_row_offset + len].cursor;
termui 697 uspace/lib/termui/src/termui.c termui_put_crlf(termui);
termui 704 uspace/lib/termui/src/termui.c for (int col = 0; col < termui->cols; col++) {
termui 705 uspace/lib/termui/src/termui.c for (int row = 0; row < termui->rows; row++) {
termui 706 uspace/lib/termui/src/termui.c if (_screen_cell(termui, col, row).cursor) {
termui 707 uspace/lib/termui/src/termui.c _screen_cell(termui, col, row).cursor = 0;
termui 717 uspace/lib/termui/src/termui.c termui->col = new_col;
termui 718 uspace/lib/termui/src/termui.c termui->row = new_row;
termui 720 uspace/lib/termui/src/termui.c termui->cursor_visible = cursor_visible;
termui 721 uspace/lib/termui/src/termui.c _cursor_on(termui);
termui 723 uspace/lib/termui/src/termui.c termui->scroll_cb = old_termui.scroll_cb;
termui 724 uspace/lib/termui/src/termui.c termui->update_cb = old_termui.update_cb;
termui 725 uspace/lib/termui/src/termui.c termui->refresh_cb = old_termui.refresh_cb;
termui 727 uspace/lib/termui/src/termui.c if (termui->refresh_cb)
termui 728 uspace/lib/termui/src/termui.c termui->refresh_cb(termui->refresh_udata);
HelenOS homepage, sources at GitHub