|
C-Menu 0.2.9
A User Interface Toolkit
|
NCurses UI backend — lifecycle, surface management, and capabilities. More...
#include "cm.h"#include "ui_ncurses_internal.h"#include <locale.h>#include <stdint.h>#include <stdlib.h>#include <string.h>#include <unistd.h>Go to the source code of this file.
Macros | |
| #define | _XOPEN_SOURCE_EXTENDED 1 |
Functions | |
| void | fast_exit (UiSurface *s) |
| int | ui_add_color_rgb (RGB *rgb) |
| uint | ui_add_pair (uint fg, uint bg) |
| int | ui_bkgd (UiSurface *s, uint w, const UiCell *cell) |
| int | ui_bkgdset (UiSurface *s, uint w, const UiCell *cell) |
| int | ui_bkgrnd (UiSurface *s, uint w, const UiCell *cell) |
| int | ui_bkgrndset (UiSurface *s, uint w, const UiCell *cell) |
| UiSurface * | ui_box_surface_new (UiSurface *parent, uint p, uint lines, uint cols, uint y, uint x, char *wtitle) |
| UiCell | ui_cell_from_ucp (const wchar_t *ucp, const uint32_t *fg, const uint32_t *bg) |
| int | ui_chg_color (uint16_t color_idx, uint32_t *color) |
| int | ui_chg_pair (uint pair, uint fg, uint bg) |
| int | ui_clear () |
| int | ui_color_content (uint color, uint *r, uint *g, uint *b) |
| int | ui_curs_set (int visibility) |
| int | ui_cursor_enable (UiSurface *s, uint w, bool visible) |
| Disable (visible = false) or enable (visibile = true) the cursor at its current position on the surface and plane specified. | |
| int | ui_cursor_enable_yx (UiSurface *s, uint w, uint y, uint x, bool visible) |
| Disable (visible = false) or enable (visibile = true) the cursor at a specified position on the surface and plane specified. Include workaround for NotCurses cursor position bug. | |
| int | ui_cursor_move (UiSurface *s, uint w, uint y, uint x) |
| int | ui_doupdate () |
| void | ui_endwin () |
| int | ui_erase () |
| UiBackend | ui_get_backend () |
| Return which backend is powering this runtime. | |
| void | ui_get_caps (UiCaps *caps) |
| Query the capabilities of the active backend. | |
| uint32_t | ui_get_color (uint16_t color_idx) |
| void | ui_get_screen_size (uint *lines, uint *cols) |
| int | ui_getcchar (const UiCell *uc, wchar_t *wstr, attr_t *attrs, uint16_t *pair, void *opts) |
| int | ui_getmaxx (UiSurface *s, uint w) |
| int | ui_getmaxy (UiSurface *s, uint w) |
| void | ui_getmaxyx (UiSurface *s, uint w, uint *lines, uint *cols) |
| void | ui_getyx (UiSurface *s, uint w, uint *lines, uint *cols) |
| RGB | ui_hex_to_rgb (char *s) |
| int | ui_idcok (UiSurface *s, uint w, bool enable) |
| int | ui_idlok (UiSurface *s, uint w, bool enable) |
| struct UiRuntime * | ui_init (const UiConfig *cfg) |
| int | ui_init_color (uint color, uint r, uint g, uint b) |
| int | ui_init_pair (uint pair, uint fg, uint bg) |
| int | ui_keypad (UiSurface *s, uint w, bool enable) |
| SCREEN * | ui_ncurses_get_screen () |
| PANEL * | ui_ncurses_surface_get_panel (const UiSurface *s, uint w) |
Return the raw NCurses PANEL* underlying a surface. | |
| WINDOW * | ui_ncurses_surface_get_win (const UiSurface *s, uint w) |
Return the raw NCurses WINDOW* underlying a surface. | |
| int | ui_pair_content (uint pair, uint *fg, uint *bg) |
| int | ui_pair_from_hex (const char *fg, const char *bg) |
| void | ui_render () |
| int | ui_resume () |
| int | ui_scrollok (UiSurface *s, uint w, bool enable) |
| int | ui_setcchar (cchar_t *wch, const wchar_t *wc, const attr_t attrs, short pair, const void *opts) |
| int | ui_setscrreg (UiSurface *s, uint w, uint top, uint bottom) |
| void | ui_shutdown () |
| int | ui_surface_addpad (UiSurface *s, uint w, uint view_win, uint lines, uint cols) |
| int | ui_surface_addwin (UiSurface *s, uint w, uint p, uint lines, uint cols, uint y, uint x) |
| void | ui_surface_destroy (UiSurface *s) |
| int | ui_surface_hide (UiSurface *s, uint w) |
| int | ui_surface_move (UiSurface *s, uint w, uint y, uint x) |
| UiSurface * | ui_surface_new (uint w, UiSurface *parent, uint p, uint lines, uint cols, uint y, uint x) |
| int | ui_surface_resize (UiSurface *s, uint w, uint lines, uint cols) |
| int | ui_surface_show (UiSurface *s, uint w) |
| int | ui_suspend () |
| int | ui_top_panel (UiSurface *s, uint w) |
| void | ui_update_panels () |
| int | ui_wclear (UiSurface *s, uint w) |
| int | ui_werase (UiSurface *s, uint w) |
| int | ui_wmove (UiSurface *s, uint w, uint y, uint x) |
| int | ui_wnoutrefresh (UiSurface *s, uint w) |
| int | ui_wscrl (UiSurface *s, uint w, uint n) |
Variables | |
| wchar_t * | border_double = L"═║╠╣╦╩╬╔╗╚╝" |
| wchar_t * | border_heavy = L"━┃┣┫┳┻╋┏┓┗┛" |
| wchar_t * | border_none = L" " |
| wchar_t * | border_rounded = L"─│├┤┬┴┼╭╮╰╯" |
| wchar_t * | border_single = L"─│├┤┬┴┼┌┐└┘" |
| BorderWide | bw |
| const wchar_t * | bw_chk = L"\x2611" |
| const wchar_t * | bw_da = L"\x2193" |
| const wchar_t * | bw_h09 = L"\x23BD" |
| const wchar_t * | bw_la = L"\x2190" |
| const wchar_t * | bw_lan = L"\x276E" |
| const wchar_t * | bw_ra = L"\x2192" |
| const wchar_t * | bw_ran = L"\x276F" |
| const wchar_t * | bw_rbl = L"\x2570" |
| const wchar_t * | bw_rbr = L"\x256f" |
| const wchar_t * | bw_rtl = L"\x256d" |
| const wchar_t * | bw_rtr = L"\x256e" |
| const wchar_t * | bw_sp = L"\x20" |
| const wchar_t * | bw_ua = L"\x2191" |
| int | sfc_ptr = -1 |
| STDRGB | std_color [] |
| UiSurface * | stdsfc |
| UiRuntime * | ui = NULL |
| uint | ui_color_cnt = 0 |
| uint | ui_pair_cnt = 0 |
| UiSurface * | ui_surface [UI_SFC_MAX] |
| int | win_ptr = -1 |
NCurses UI backend — lifecycle, surface management, and capabilities.
Implements all UiRuntime and UiSurface operations declared in ui_backend.h using the NCurses / panelw library.
When compiled as part of the main C-Menu build (UAL_LEGACY_COMPAT defined), the legacy globals screen and tty_fp from dwin.c are kept in sync so that code not yet migrated to the UAL API continues to work.
Definition in file ui_ncurses.c.
| #define _XOPEN_SOURCE_EXTENDED 1 |
Definition at line 13 of file ui_ncurses.c.
| void fast_exit | ( | UiSurface * | s | ) |
Definition at line 490 of file ui_ncurses.c.
References SUB_SFC_MAX.
| int ui_add_color_rgb | ( | RGB * | rgb | ) |
Definition at line 138 of file ui_ncurses.c.
| uint ui_add_pair | ( | uint | fg, |
| uint | bg ) |
Definition at line 105 of file ui_ncurses.c.
Referenced by initialize_cells(), parse_ansi(), parse_ansi_str(), ui_cell_from_ucp(), ui_getcchar(), and ui_pair_from_hex().
Definition at line 753 of file ui_ncurses.c.
Definition at line 760 of file ui_ncurses.c.
Definition at line 767 of file ui_ncurses.c.
Definition at line 774 of file ui_ncurses.c.
| UiSurface * ui_box_surface_new | ( | UiSurface * | parent, |
| uint | p, | ||
| uint | lines, | ||
| uint | cols, | ||
| uint | y, | ||
| uint | x, | ||
| char * | wtitle ) |
Definition at line 453 of file ui_ncurses.c.
| UiCell ui_cell_from_ucp | ( | const wchar_t * | ucp, |
| const uint32_t * | fg, | ||
| const uint32_t * | bg ) |
Definition at line 239 of file ui_ncurses.c.
| int ui_chg_color | ( | uint16_t | color_idx, |
| uint32_t * | color ) |
Definition at line 206 of file ui_ncurses.c.
| int ui_chg_pair | ( | uint | pair, |
| uint | fg, | ||
| uint | bg ) |
Definition at line 132 of file ui_ncurses.c.
| int ui_clear | ( | ) |
Definition at line 594 of file ui_ncurses.c.
| int ui_color_content | ( | uint | color, |
| uint * | r, | ||
| uint * | g, | ||
| uint * | b ) |
Definition at line 179 of file ui_ncurses.c.
Referenced by ui_add_color_rgb(), ui_get_channels_from_pair(), and ui_setcchar().
| int ui_curs_set | ( | int | visibility | ) |
Definition at line 737 of file ui_ncurses.c.
| int ui_cursor_enable | ( | UiSurface * | s, |
| uint | w, | ||
| bool | visible ) |
Disable (visible = false) or enable (visibile = true) the cursor at its current position on the surface and plane specified.
Definition at line 713 of file ui_ncurses.c.
| int ui_cursor_enable_yx | ( | UiSurface * | s, |
| uint | w, | ||
| uint | y, | ||
| uint | x, | ||
| bool | visible ) |
Disable (visible = false) or enable (visibile = true) the cursor at a specified position on the surface and plane specified. Include workaround for NotCurses cursor position bug.
Definition at line 703 of file ui_ncurses.c.
| int ui_cursor_move | ( | UiSurface * | s, |
| uint | w, | ||
| uint | y, | ||
| uint | x ) |
Definition at line 727 of file ui_ncurses.c.
| int ui_doupdate | ( | ) |
Definition at line 807 of file ui_ncurses.c.
| void ui_endwin | ( | ) |
Definition at line 341 of file ui_ncurses.c.
| int ui_erase | ( | ) |
Definition at line 590 of file ui_ncurses.c.
| UiBackend ui_get_backend | ( | ) |
Return which backend is powering this runtime.
Definition at line 84 of file ui_ncurses.c.
| void ui_get_caps | ( | UiCaps * | caps | ) |
Query the capabilities of the active backend.
| ui | The UiRuntime returned by ui_init(). |
| caps | Output structure filled with capability flags. |
Definition at line 88 of file ui_ncurses.c.
| uint32_t ui_get_color | ( | uint16_t | color_idx | ) |
| void ui_get_screen_size | ( | uint * | lines, |
| uint * | cols ) |
Definition at line 784 of file ui_ncurses.c.
Referenced by fmt_line(), log_cc_buf(), and mbstr_to_cellstr().
| int ui_getmaxx | ( | UiSurface * | s, |
| uint | w ) |
Definition at line 686 of file ui_ncurses.c.
Referenced by border_draw(), border_title(), border_ysplit(), and border_ysplit_text().
| int ui_getmaxy | ( | UiSurface * | s, |
| uint | w ) |
Definition at line 681 of file ui_ncurses.c.
Referenced by assign_chyron_win(), and border_draw().
| void ui_getmaxyx | ( | UiSurface * | s, |
| uint | w, | ||
| uint * | lines, | ||
| uint * | cols ) |
Definition at line 676 of file ui_ncurses.c.
| void ui_getyx | ( | UiSurface * | s, |
| uint | w, | ||
| uint * | lines, | ||
| uint * | cols ) |
Definition at line 668 of file ui_ncurses.c.
| RGB ui_hex_to_rgb | ( | char * | s | ) |
| int ui_idcok | ( | UiSurface * | s, |
| uint | w, | ||
| bool | enable ) |
Definition at line 653 of file ui_ncurses.c.
| int ui_idlok | ( | UiSurface * | s, |
| uint | w, | ||
| bool | enable ) |
Definition at line 644 of file ui_ncurses.c.
Definition at line 261 of file ui_ncurses.c.
| int ui_init_color | ( | uint | color, |
| uint | r, | ||
| uint | g, | ||
| uint | b ) |
Definition at line 189 of file ui_ncurses.c.
Referenced by ui_add_color_rgb().
| int ui_init_pair | ( | uint | pair, |
| uint | fg, | ||
| uint | bg ) |
Definition at line 202 of file ui_ncurses.c.
| int ui_keypad | ( | UiSurface * | s, |
| uint | w, | ||
| bool | enable ) |
Definition at line 635 of file ui_ncurses.c.
| SCREEN * ui_ncurses_get_screen | ( | ) |
Definition at line 821 of file ui_ncurses.c.
References ui.
| PANEL * ui_ncurses_surface_get_panel | ( | const UiSurface * | s, |
| uint | w ) |
Return the raw NCurses PANEL* underlying a surface.
s is NULL. Definition at line 833 of file ui_ncurses.c.
| WINDOW * ui_ncurses_surface_get_win | ( | const UiSurface * | s, |
| uint | w ) |
Return the raw NCurses WINDOW* underlying a surface.
| s | The UiSurface to inspect. |
s is NULL. Definition at line 827 of file ui_ncurses.c.
| int ui_pair_content | ( | uint | pair, |
| uint * | fg, | ||
| uint * | bg ) |
Definition at line 194 of file ui_ncurses.c.
Referenced by parse_ansi_str(), and ui_add_pair().
| int ui_pair_from_hex | ( | const char * | fg, |
| const char * | bg ) |
Definition at line 230 of file ui_ncurses.c.
References ui_add_color_rgb(), and ui_add_pair().
| void ui_render | ( | ) |
Definition at line 800 of file ui_ncurses.c.
| int ui_resume | ( | ) |
Definition at line 403 of file ui_ncurses.c.
| int ui_scrollok | ( | UiSurface * | s, |
| uint | w, | ||
| bool | enable ) |
Definition at line 626 of file ui_ncurses.c.
| int ui_setcchar | ( | cchar_t * | wch, |
| const wchar_t * | wc, | ||
| const attr_t | attrs, | ||
| short | pair, | ||
| const void * | opts ) |
Definition at line 792 of file ui_ncurses.c.
Referenced by fmt_line(), and mbstr_to_cellstr().
| int ui_setscrreg | ( | UiSurface * | s, |
| uint | w, | ||
| uint | top, | ||
| uint | bottom ) |
Definition at line 662 of file ui_ncurses.c.
| void ui_shutdown | ( | ) |
Definition at line 344 of file ui_ncurses.c.
| int ui_surface_addpad | ( | UiSurface * | s, |
| uint | w, | ||
| uint | view_win, | ||
| uint | lines, | ||
| uint | cols ) |
Definition at line 509 of file ui_ncurses.c.
| int ui_surface_addwin | ( | UiSurface * | s, |
| uint | w, | ||
| uint | p, | ||
| uint | lines, | ||
| uint | cols, | ||
| uint | y, | ||
| uint | x ) |
Definition at line 523 of file ui_ncurses.c.
| void ui_surface_destroy | ( | UiSurface * | s | ) |
| int ui_surface_hide | ( | UiSurface * | s, |
| uint | w ) |
Definition at line 614 of file ui_ncurses.c.
| int ui_surface_move | ( | UiSurface * | s, |
| uint | w, | ||
| uint | y, | ||
| uint | x ) |
| UiSurface * ui_surface_new | ( | uint | w, |
| UiSurface * | parent, | ||
| uint | p, | ||
| uint | lines, | ||
| uint | cols, | ||
| uint | y, | ||
| uint | x ) |
Definition at line 414 of file ui_ncurses.c.
| int ui_surface_resize | ( | UiSurface * | s, |
| uint | w, | ||
| uint | lines, | ||
| uint | cols ) |
| int ui_surface_show | ( | UiSurface * | s, |
| uint | w ) |
Definition at line 598 of file ui_ncurses.c.
| int ui_suspend | ( | ) |
Definition at line 398 of file ui_ncurses.c.
| int ui_top_panel | ( | UiSurface * | s, |
| uint | w ) |
Definition at line 607 of file ui_ncurses.c.
| void ui_update_panels | ( | ) |
Definition at line 804 of file ui_ncurses.c.
| int ui_wclear | ( | UiSurface * | s, |
| uint | w ) |
Definition at line 574 of file ui_ncurses.c.
| int ui_werase | ( | UiSurface * | s, |
| uint | w ) |
Definition at line 560 of file ui_ncurses.c.
| int ui_wmove | ( | UiSurface * | s, |
| uint | w, | ||
| uint | y, | ||
| uint | x ) |
Definition at line 732 of file ui_ncurses.c.
| int ui_wnoutrefresh | ( | UiSurface * | s, |
| uint | w ) |
Definition at line 811 of file ui_ncurses.c.
| int ui_wscrl | ( | UiSurface * | s, |
| uint | w, | ||
| uint | n ) |
Definition at line 741 of file ui_ncurses.c.
References ui_render().
| wchar_t* border_double = L"═║╠╣╦╩╬╔╗╚╝" |
Definition at line 42 of file ui_ncurses.c.
| wchar_t* border_heavy = L"━┃┣┫┳┻╋┏┓┗┛" |
Definition at line 43 of file ui_ncurses.c.
| wchar_t * border_none = L" " |
Definition at line 44 of file ui_ncurses.c.
| wchar_t* border_rounded = L"─│├┤┬┴┼╭╮╰╯" |
BOX WIDE UNICODE CODEPOINTS
Definition at line 41 of file ui_ncurses.c.
| wchar_t * border_single = L"─│├┤┬┴┼┌┐└┘" |
BOX WIDE UNICODE CODEPOINTS
Definition at line 40 of file ui_ncurses.c.
| BorderWide bw |
Definition at line 46 of file ui_ncurses.c.
| const wchar_t* bw_chk = L"\x2611" |
left_angle
Definition at line 59 of file ui_ncurses.c.
| const wchar_t* bw_da = L"\x2193" |
large down arrow
Definition at line 56 of file ui_ncurses.c.
| const wchar_t* bw_h09 = L"\x23BD" |
horizontal line 9
Definition at line 60 of file ui_ncurses.c.
| const wchar_t* bw_la = L"\x2190" |
large left arrow
Definition at line 54 of file ui_ncurses.c.
| const wchar_t* bw_lan = L"\x276E" |
left_angle
Definition at line 58 of file ui_ncurses.c.
| const wchar_t* bw_ra = L"\x2192" |
large right arrow
Definition at line 53 of file ui_ncurses.c.
| const wchar_t* bw_ran = L"\x276F" |
right_angle
Definition at line 57 of file ui_ncurses.c.
| const wchar_t* bw_rbl = L"\x2570" |
rounded bottom left
Definition at line 50 of file ui_ncurses.c.
| const wchar_t* bw_rbr = L"\x256f" |
rounded bottom right
Definition at line 51 of file ui_ncurses.c.
| const wchar_t* bw_rtl = L"\x256d" |
rounded top left
Definition at line 48 of file ui_ncurses.c.
| const wchar_t* bw_rtr = L"\x256e" |
rounded top right
Definition at line 49 of file ui_ncurses.c.
| const wchar_t* bw_sp = L"\x20" |
space
Definition at line 52 of file ui_ncurses.c.
| const wchar_t* bw_ua = L"\x2191" |
large up arrow
Definition at line 55 of file ui_ncurses.c.
| int sfc_ptr = -1 |
Definition at line 31 of file ui_ncurses.c.
| STDRGB std_color[] |
Definition at line 62 of file ui_ncurses.c.
| UiSurface* stdsfc |
Definition at line 36 of file ui_ncurses.c.
| UiRuntime* ui = NULL |
Definition at line 27 of file ui_ncurses.c.
| uint ui_color_cnt = 0 |
Definition at line 33 of file ui_ncurses.c.
| uint ui_pair_cnt = 0 |
Definition at line 34 of file ui_ncurses.c.
| UiSurface* ui_surface[UI_SFC_MAX] |
Definition at line 28 of file ui_ncurses.c.
| int win_ptr = -1 |
Definition at line 30 of file ui_ncurses.c.