C-Menu 0.2.9
A User Interface Toolkit
Loading...
Searching...
No Matches
ui_notcurses_compat.h
Go to the documentation of this file.
1#ifndef UI_NOTCURSES_COMPAT_H
2#define UI_NOTCURSES_COMPAT_H 1
3
4/** @file ui_notcurses_compat.h
5 @ingroup ui_notcurses
6 @brief Non-portable escape hatch for the NotCurses backend.
7
8 @warning Including this header couples application code to the NotCurses
9 backend. Use only when NotCurses-specific functionality is required and
10 portability to other backends (e.g., NCurses) is not needed. These
11 functions are intentionally not declared in ui_backend.h.
12*/
13
14#include "../include/ui_backend.h"
15#include <notcurses/notcurses.h>
16
17/** @brief Return the raw @c struct notcurses* for the NotCurses session.
18 @param ui The UiRuntime returned by ui_init().
19 @return The NotCurses context pointer, or NULL if @p ui is NULL.
20*/
21struct notcurses *ui_notcurses_get_nc();
22
23/** @brief Return the raw @c struct ncplane* underlying a surface.
24 @param s The UiSurface to inspect.
25 @return The ncplane pointer, or NULL if @p s is NULL.
26*/
27struct ncplane *ui_notcurses_surface_get_plane(const UiSurface *s, uint w);
28
29#endif
bool f_curses_open
Definition sig.c:33
#define min(x, y)
min macro evaluates two expressions, returning least result
Definition cm.h:91
const wchar_t * bw_sp
Definition ui_ncurses.c:52
void ui_render()
Definition ui_ncurses.c:800
int ui_cursor_move(UiSurface *s, uint w, uint y, uint x)
Definition ui_ncurses.c:727
wchar_t * border_rounded
Definition ui_ncurses.c:41
UiRuntime * ui_init(const UiConfig *config)
Definition ui_ncurses.c:261
void ui_getyx(UiSurface *s, uint w, uint *lines, uint *cols)
Definition ui_ncurses.c:668
int ui_surface_hide(UiSurface *s, uint w)
Definition ui_ncurses.c:614
const wchar_t * bw_ran
Definition ui_ncurses.c:57
int ui_bkgdset(UiSurface *s, uint w, const UiCell *cell)
Definition ui_ncurses.c:760
int ui_mice_enable(int mask)
UiSurface * ui_surface_new(uint w, UiSurface *parent, uint p, uint lines, uint cols, uint y, uint x)
Definition ui_ncurses.c:414
int ui_setscrreg(UiSurface *s, uint w, uint top, uint bottom)
Definition ui_ncurses.c:662
int ui_scrollok(UiSurface *s, uint w, bool enable)
Definition ui_ncurses.c:626
NcPlane * stdplane
const wchar_t * bw_rbr
Definition ui_ncurses.c:51
int ui_add_color_rgb(RGB *rgb)
Definition ui_ncurses.c:138
const wchar_t * bw_ua
Definition ui_ncurses.c:55
int ui_wclear(UiSurface *s, uint w)
Definition ui_ncurses.c:574
uint COLS
Definition ui_backend.h:266
const wchar_t * bw_chk
Definition ui_ncurses.c:59
BorderWide bw
Definition ui_ncurses.c:46
int ui_bkgd(UiSurface *s, uint w, const UiCell *cell)
Definition ui_ncurses.c:753
#define UI_SFC_MAX
Definition ui_backend.h:24
const wchar_t * bw_rtl
Definition ui_ncurses.c:48
const wchar_t * bw_rtr
Definition ui_ncurses.c:49
const wchar_t * bw_lan
Definition ui_ncurses.c:58
#define UI_PAIRS
Definition ui_backend.h:40
int ui_suspend()
Definition ui_ncurses.c:398
struct notcurses_options NotCursesOptions
Definition ui_backend.h:253
void ui_surface_destroy(UiSurface *s)
Definition ui_ncurses.c:377
int ui_surface_move(UiSurface *s, uint w, uint y, uint x)
Definition ui_ncurses.c:542
int ui_idlok(UiSurface *s, uint w, bool enable)
Definition ui_ncurses.c:644
const wchar_t * bw_ra
Definition ui_ncurses.c:53
void ui_update_panels()
Definition ui_ncurses.c:804
STDRGB std_color[]
Definition ui_ncurses.c:62
int ui_wmove(UiSurface *s, uint w, uint y, uint x)
Definition ui_ncurses.c:732
UiSurface * ui_surface[UI_SFC_MAX]
Definition ui_ncurses.c:28
const wchar_t * bw_h09
Definition ui_ncurses.c:60
int ui_werase(UiSurface *s, uint w)
Definition ui_ncurses.c:560
void ui_get_screen_size(uint *lines, uint *cols)
Definition ui_ncurses.c:692
int ui_erase()
Definition ui_ncurses.c:590
UiRuntime * ui
RGB ui_hex_to_rgb(char *s)
Definition ui_ncurses.c:174
void ui_shutdown()
Definition ui_ncurses.c:344
int ui_wscrl(UiSurface *s, uint w, int rows)
int win_ptr
Definition ui_ncurses.c:30
int ui_mousemask(int mask)
uint LINES
UiSurface * stdsfc
Definition ui_ncurses.c:36
int sfc_ptr
Definition nckeys.c:47
UiCell ui_cell_from_ucp(const wchar_t *ucp, const uint32_t *fg, const uint32_t *bg)
Definition ui_ncurses.c:239
int ui_curs_set(int visibility)
Definition ui_ncurses.c:737
int ui_top_panel(UiSurface *s, uint w)
Definition ui_ncurses.c:607
int ui_resume()
Definition ui_ncurses.c:403
struct ncplane NcPlane
Definition ui_backend.h:251
uint ui_pair_cnt
Definition ui_ncurses.c:34
int ui_wnoutrefresh(UiSurface *s, uint w)
Definition ui_ncurses.c:811
struct nccell UiCell
Definition ui_backend.h:250
int ui_surface_resize(UiSurface *s, uint w, uint lines, uint cols)
Definition ui_ncurses.c:550
uint16_t UiPairIdx
Definition ui_backend.h:36
const wchar_t * bw_la
Definition ui_ncurses.c:54
uint ui_color_cnt
Definition ui_ncurses.c:33
void ui_endwin()
Definition ui_ncurses.c:341
wchar_t * border_heavy
Definition ui_ncurses.c:43
int ui_surface_show(UiSurface *s, uint w)
Definition ui_ncurses.c:598
int ui_clear()
Definition ui_ncurses.c:594
UiSurface * ui_box_surface_new(UiSurface *parent, uint p, uint lines, uint cols, uint y, uint x, char *title)
Definition ui_ncurses.c:453
int ui_keypad(UiSurface *s, uint w, bool enable)
Definition ui_ncurses.c:635
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 surfa...
Definition ui_ncurses.c:713
const wchar_t * bw_da
Definition ui_ncurses.c:56
wchar_t * border_double
Definition ui_ncurses.c:42
int ui_idcok(UiSurface *s, uint w, bool enable)
Definition ui_ncurses.c:653
uint16_t UiStyle
Definition ui_backend.h:35
#define UI_COLORS
Definition ui_backend.h:39
void ui_get_caps(UiCaps *caps)
Query the capabilities of the active backend.
Definition ui_ncurses.c:88
@ UI_BACKEND_NOTCURSES
Definition ui_backend.h:157
UiBackend ui_get_backend()
Return which backend is powering this runtime.
Definition ui_ncurses.c:84
int ui_surface_addpad(UiSurface *s, uint w, uint view_win, uint lines, uint cols)
Definition ui_ncurses.c:509
void ui_getmaxyx(UiSurface *s, uint w, uint *lines, uint *cols)
Definition ui_ncurses.c:676
const wchar_t * bw_rbl
Definition ui_ncurses.c:50
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 surfa...
Definition ui_ncurses.c:703
int ui_surface_addwin(UiSurface *s, uint w, uint p, uint lines, uint cols, uint y, uint x)
Definition ui_ncurses.c:523
int ui_chg_color(uint16_t color_idx, uint32_t *color)
Definition ui_ncurses.c:206
#define XLEN
#define WA_NORMAL
int ui_get_pair(uint16_t pair, uint *fg, uint *bg)
UiPair * ui_pair
UiConfig * ui_config
UiCell bkgd_cell
uint ui_init_color_hex(char *s)
UiColor * ui_color
struct notcurses * ui_notcurses_get_nc()
Return the raw struct notcurses* for the NotCurses session.
NcPlane * ui_notcurses_surface_get_plane(const UiSurface *s, uint w)
Return the raw struct ncplane* underlying a surface.
uint64_t ui_get_channels_from_pair(uint16_t pair)
int ui_pair_content(uint pair, uint *fg, uint *bg)
Definition ui_ncurses.c:194
int ui_getmaxx(UiSurface *s, uint w)
Definition ui_ncurses.c:686
int ui_bkgrndset(UiSurface *s, uint w, const UiCell *cell)
Definition ui_ncurses.c:774
int ui_init_color(uint color, uint r, uint g, uint b)
Definition ui_ncurses.c:189
int ui_init_pair(uint pair, uint fg, uint bg)
Definition ui_ncurses.c:202
uint ui_add_pair(uint fg, uint bg)
Definition ui_ncurses.c:105
int ui_getcchar(const UiCell *uc, wchar_t *wstr, attr_t *attrs, uint16_t *pair, void *opts)
Definition ui_ncurses.c:784
int ui_color_content(uint color, uint *r, uint *g, uint *b)
Definition ui_ncurses.c:179
int ui_getmaxy(UiSurface *s, uint w)
Definition ui_ncurses.c:681
int ui_bkgrnd(UiSurface *s, uint w, const UiCell *cell)
Definition ui_ncurses.c:767
wchar_t * border_single
Definition ui_ncurses.c:40
int ui_setcchar(cchar_t *wch, const wchar_t *wc, const attr_t attrs, short pair, const void *opts)
Definition ui_ncurses.c:792
wchar_t * border_none
Definition ui_ncurses.c:44
#define MAXLEN
Definition curskeys.c:15
UiCell cell_nt
Definition dwin.c:94
char em1[MAXLEN]
Definition dwin.c:143
char em2[MAXLEN]
Definition dwin.c:144
int border_draw(UiSurface *sfc)
Definition dwin.c:581
void apply_gamma(RGB *rgb)
Apply gamma correction to RGB color.
Definition dwin.c:307
char em0[MAXLEN]
Definition dwin.c:142
UiCell cell_box
Definition dwin.c:98
int border_title(UiSurface *sfc, char *title)
Draw a box with a title around the specified window.
Definition dwin.c:676
int display_error(char *msg0, char *msg1, char *msg2, char *msg3)
Display an error message window or print to stderr.
Definition dwin.c:778
size_t strnz__cpy(char *, const char *, size_t)
safer alternative to strncpy
Definition futil.c:537
size_t ssnprintf(char *, size_t, const char *,...)
ssnprintf was designed to be a safer alternative to snprintf.
Definition futil.c:413
bool cursor_visible
Definition ui_backend.h:145
const char * tty_path
Definition ui_backend.h:147
bool enable_mouse
Definition ui_backend.h:143
char border_style
Definition ui_backend.h:146
bool enable_alt_screen
Definition ui_backend.h:144
bool palette256
Definition ui_backend.h:170
bool mouse
Definition ui_backend.h:171
int color_pairs
Definition ui_backend.h:174
bool truecolor
Definition ui_backend.h:169
bool unicode
Definition ui_backend.h:172
bool resize
Definition ui_backend.h:173
wchar_t str[11]
Definition ui_backend.h:185
uint8_t g
Definition ui_backend.h:261
uint8_t r
Definition ui_backend.h:260
uint8_t b
Definition ui_backend.h:262
uint32_t u32
Definition ui_backend.h:288
wchar_t u16[2]
Definition ui_backend.h:289
struct notcurses * nc
unsigned int cols
unsigned int lines
struct UiSurface * parent
struct UiRuntime * runtime
struct UiSurfaceMeta meta[SUB_SFC_MAX]
uint32_t color
uint64_t channels
Definition nccell.h:8
uint16_t stylemask
Definition nccell.h:7
uint8_t width
Definition nccell.h:6
uint32_t gcluster
Definition nccell.h:4