opaque(3NCURSES)

πŸ¦‹ opaque β€” obtaiiiin curses window properties πŸ’… (3NCURSES)

okay so bestie, this is the opaque(3NCURSES) page from the ncurses manual, and it's literally the page that lets you peek inside a WINDOW without, like, touching its guts directly. we love a boundaries queen πŸ‘‘


✨ NAME ✨

is_cleared, is_idlok, is_idcok, is_immedok, is_keypad, is_leaveok, is_nodelay, is_notimeout, is_pad, is_scrollok, is_subwin, is_syncok, wgetdelay, wgetparent, wgetscrreg β€” obtain curses window properties 🫢


✨ SYNOPSIS ✨

#include <curses.h>

bool is_cleared(const WINDOW *win);
bool is_idcok(const WINDOW *win);
bool is_idlok(const WINDOW *win);
bool is_immedok(const WINDOW *win);
bool is_keypad(const WINDOW *win);
bool is_leaveok(const WINDOW *win);
bool is_nodelay(const WINDOW *win);
bool is_notimeout(const WINDOW *win);
bool is_pad(const WINDOW *win);
bool is_scrollok(const WINDOW *win);
bool is_subwin(const WINDOW *win);
bool is_syncok(const WINDOW *win);

WINDOW * wgetparent(const WINDOW *win);
int wgetdelay(const WINDOW *win);
int wgetscrreg(const WINDOW *win, int *top, int *bottom);

✨ DESCRIPTION ✨

so ncurses gives you a whole lil squad of functions that just report back on the properties of a WINDOW structure. why does that matter? because it lets a WINDOW stay β€œopaque” if your application defines the NCURSES_OPAQUE preprocessor symbol. πŸ”’

and what does opaque even mean here, bestie? it means the members of the struct data types are not directly accessible β€” no sneaking in through the β€œ.” or β€œ->” operators, nope, not today πŸ™…β€β™€οΈ β€” and instead you must query and/or set them via library functions. the perks of being opaque are, like, greater abstraction and improved management of concurrent accesses to data structures, which keeps your object states coherent. it's giving ✨responsible architecture✨

is_cleared returns the value set by clearok(3NCURSES).

is_idcok returns the value set by idcok(3NCURSES).

is_idlok returns the value set by idlok(3NCURSES).

is_immedok returns the value set by immedok(3NCURSES).

is_keypad returns the value set by keypad(3NCURSES).

is_leaveok returns the value set by leaveok(3NCURSES).

is_nodelay returns the value set by nodelay(3NCURSES).

is_notimeout returns the value set by notimeout(3NCURSES).

is_pad returns TRUE if the window is a pad β€” that is, it was created by newpad(3NCURSES). πŸ›‹οΈ

is_scrollok returns the value set by scrollok(3NCURSES).

is_subwin returns TRUE if the window is a subwindow, that is, it was created by subwin(3NCURSES) or derwin(3NCURSES). 🌱

is_syncok returns the value set by syncok(3NCURSES).

wgetdelay returns the delay timeout set by wtimeout(3NCURSES). ⏳

wgetparent returns the parent WINDOW pointer for subwindows, or NULL for windows having no parent. 😒 (orphan era)

wgetscrreg stores the top and bottom rows for the scrolling margin set by wsetscrreg(3NCURSES) in the corresponding arguments, returning ERR upon failure and OK upon successful completion. πŸ“


✨ RETURN VALUE ✨

these functions return TRUE or FALSE except as noted. πŸ’–


✨ NOTES ✨

ncurses provides both a C function and a preprocessor macro for each function documented on this page. two for one, we love a bundle deal πŸŽ€


✨ EXTENSIONS ✨

these functions originated with ncurses. homegrown icon behavior πŸ’…


✨ PORTABILITY ✨

if your app is out here using ncurses extensions, bestie, you should condition their use on the visibility of the NCURSES_VERSION preprocessor macro. fr fr, check before you wreck 🫢

NetBSD curses since 10.1 (2024) supports wgetscr_reg. It also implements getscr_reg, operating on stdscr. πŸ‘€


✨ SEE ALSO ✨

ncurses(3NCURSES), inopts(3NCURSES), outopts(3NCURSES), threads(3NCURSES), window(3NCURSES)


okay that's the whole page, no cap πŸ’œ and before you go β€” this lil masterpiece is from ncurses 6.6, dated 2025-02-15, and it lives under the name opaque(3NCURSES). go query your windows responsibly, queen πŸ‘‘πŸŒΈ

πŸ“¦ where this page comes from