Expand description
The C API, including structs, constants, functions and type aliases.
Includes also both automatically imported functions by bindgen, and manually wrapped and reimplemented global functions.
Re-exports§
pub use libc;libc
Modules§
- ffi
- Rust FFI bindings, automatically generated with bindgen.
Structs§
- nccapabilities
- Capabilities, derived from terminfo, environment variables, and queries
- nccell
- An nccell corresponds to a single character cell on some plane, which can be occupied by a single grapheme cluster (some root spacing glyph, along with possible combining characters, which might span multiple columns). At any cell, we can have a theoretically arbitrarily long UTF-8 EGC, a foreground color, a background color, and an attribute set. Valid grapheme cluster contents include:
- ncdirect
- ncdplot
- ncfadectx
- ncfdplane
- ncfdplane_
options - read from an fd until EOF (or beyond, if follow is set), invoking the user’s callback each time. runs in its own context. on EOF or error, the finalizer callback will be invoked, and the user ought destroy the ncfdplane. the data is not guaranteed to be nul-terminated, and may contain arbitrary zeroes.
- ncinput
- An input event. Cell coordinates are currently defined only for mouse events. It is not guaranteed that we can set the modifiers for a given ncinput. We encompass single Unicode codepoints, not complete EGCs. FIXME for abi4, combine the bools into |modifiers|
- ncmenu
- ncmenu_
item - Menus. Horizontal menu bars are supported, on the top and/or bottom rows. If the menu bar is longer than the screen, it will be only partially visible. Menus may be either visible or invisible by default. In the event of a plane resize, menus will be automatically moved/resized. Elements can be dynamically enabled or disabled at all levels (menu, section, and item),
- ncmenu_
options - ncmenu_
section - ncmselector_
item - ncmultiselector
- ncmultiselector_
options - multiselection widget – a selector supporting multiple selections.
- ncpalette
- Palette API. Some terminals only support 256 colors, but allow the full palette to be specified with arbitrary RGB colors. In all cases, it’s more performant to use indexed colors, since it’s much less data to write to the terminal. If you can limit yourself to 256 colors, that’s probably best.
- ncplane
- ncplane_
options - ncplot_
options - ncprogbar
- ncprogbar_
options - ncreader
- ncreader_
options - ncreel
- ncreel_
options - ncselector
- ncselector_
item - selection widget – an ncplane with a title header and a body section. the body section supports infinite scrolling up and down.
- ncselector_
options - ncstats
- whenever a new field is added here, ensure we add the proper rule to notcurses_stats_reset(), so that values are preserved in the stash stats.
- ncsubproc
- ncsubproc_
options - nctab
- nctabbed
- nctabbed_
options - nctablet
- nctree
- nctree_
item - each item has a curry, and zero or more subitems.
- nctree_
options - ncuplot
- ncvgeom
- describes all geometries of an ncvisual: those which are inherent, and those dependent upon a given rendering regime. pixy and pixx are the true internal pixel geometry, taken directly from the load (and updated by ncvisual_resize()). cdimy/cdimx are the cell-pixel geometry at the time of this call (it can change with a font change, in which case all values other than pixy/pixx are invalidated). rpixy/rpixx are the pixel geometry as handed to the blitter, following any scaling. scaley/scalex are the number of input pixels drawn to a single cell; when using NCBLIT_PIXEL, they are equivalent to cdimy/cdimx. rcelly/rcellx are the cell geometry as written by the blitter, following any padding (there is padding whenever rpix{y, x} is not evenly divided by scale{y, x}, and also sometimes for Sixel). maxpixely/maxpixelx are defined only when NCBLIT_PIXEL is used, and specify the largest bitmap that the terminal is willing to accept. blitter is the blitter which will be used, a function of the requested blitter and the blitters actually supported by this environment. if no ncvisual was supplied, only cdimy/cdimx are filled in.
- ncvisual
- ncvisual_
options - notcurses
- notcurses_
options - Configuration for notcurses_init().
Constants§
- NCALIGN_
BOTTOM NcAlign_u32Bottom alignment.- NCALIGN_
CENTER NcAlign_u32Center alignment.- NCALIGN_
LEFT NcAlign_u32Left alignment.- NCALIGN_
RIGHT NcAlign_u32Right alignment.- NCALIGN_
TOP NcAlign_u32Top alignment.- NCALIGN_
UNALIGNED NcAlign_u32Nothing unaligned should be rendered.- NCALPHA_
BLEND NcAlpha_u32bits indicatingNcCell’s foreground or background color will be a composite between its color and theNcCells’ corresponding colors underneath it.- NCALPHA_
HIGHCONTRAST NcAlpha_u32bits indicatingNcCell’s foreground color will be high-contrast (relative to the computed background). Background cannot be high-contrast.- NCALPHA_
OPAQUE NcAlpha_u32bits indicatingNcCell’s foreground or background color is used unchanged.- NCALPHA_
TRANSPARENT NcAlpha_u32bits indicatingNcCell’s foreground or background color is derived entirely from theNcCells underneath it.- NCBLIT_
1x1 NcBlitter_u32mode using: space, compatible with ASCII.- NCBLIT_
2x1 NcBlitter_u32mode using: halves + 1x1 (space). ▄▀- NCBLIT_
2x2 NcBlitter_u32mode using: quadrants + 2x1. ▗▐ ▖▀▟▌▙- NCBLIT_
3x2 NcBlitter_u32mode using: sextants. 🬀🬁🬂🬃🬄🬅🬆🬇🬈🬉🬊🬋🬌🬍🬎🬏🬐🬑🬒🬓🬔🬕🬖🬗🬘🬙🬚🬛🬜🬝🬞🬟🬠🬡🬢🬣🬤🬥🬦🬧🬨🬩🬪🬫🬬🬭🬮🬯🬰🬱🬲🬳🬴🬵🬶🬷🬸🬹🬺🬻- NCBLIT_
4x1 NcBlitter_u32mode using: four vertical levels. █▆▄▂- NCBLIT_
8x1 NcBlitter_u32mode using: eight vertical levels. █▇▆▅▄▃▂▁- NCBLIT_
BRAILLE NcBlitter_u32mode using: 4 rows, 2 cols (braille). ⡀⡄⡆⡇⢀⣀⣄⣆⣇⢠⣠⣤⣦⣧⢰⣰⣴⣶⣷⢸⣸⣼⣾⣿- NCBLIT_
DEFAULT NcBlitter_u32mode where the blitter is automatically chosen.- NCBLIT_
PIXEL - Sixel/Pixel mode.
- NCBOXCORNER_
MASK NcBoxMask_u32corner mask to control the drawing of boxes corners.- NCBOXCORNER_
SHIFT NcBoxMask_u32the number of bitsNCBOXCORNER_MASKis shifted.- NCBOXGRAD_
BOTTOM NcBoxMask_u32bottom gradient mask.- NCBOXGRAD_
LEFT NcBoxMask_u32left gradient mask.- NCBOXGRAD_
RIGHT NcBoxMask_u32right gradient mask.- NCBOXGRAD_
TOP NcBoxMask_u32top gradient mask.- NCBOXMASK_
BOTTOM NcBoxMask_u32bottom border mask.- NCBOXMASK_
LEFT NcBoxMask_u32left border mask.- NCBOXMASK_
RIGHT NcBoxMask_u32right border mask.- NCBOXMASK_
TOP NcBoxMask_u32top border mask.- NCDIRECT_
OPTION_ DRAIN_ INPUT NcDirectFlag_u64flag that indicates input may be freely dropped.- NCDIRECT_
OPTION_ INHIBIT_ CBREAK NcDirectFlag_u64flag to avoid placing the terminal into cbreak mode (disabling echo and line buffering)- NCDIRECT_
OPTION_ INHIBIT_ SETLOCALE NcDirectFlag_u64flag to avoid calling setlocale(LC_ALL, NULL)- NCDIRECT_
OPTION_ NO_ QUIT_ SIGHANDLERS NcDirectFlag_u64flag that inhibits registration of theSIGINT,SIGSEGV,SIGABRT&SIGQUITsignal handlers.- NCDIRECT_
OPTION_ VERBOSE NcDirectFlag_u64flag that enables showing detailed information.- NCDIRECT_
OPTION_ VERY_ VERBOSE NcDirectFlag_u64flag that enables showing all diagnostics (equivalent toNCLOGLEVEL_TRACE). ImpliesNCDIRECT_OPTION_VERBOSE.- NCKEY_
BACKSPACE - NCKEY_
BEGIN - NCKEY_
BUTTO N1 - NCKEY_
BUTTO N2 - NCKEY_
BUTTO N3 - NCKEY_
BUTTO N4 - scrollwheel up
- NCKEY_
BUTTO N5 - scrollwheel down
- NCKEY_
BUTTO N6 - NCKEY_
BUTTO N7 - NCKEY_
BUTTO N8 - NCKEY_
BUTTO N9 - NCKEY_
BUTTO N10 - NCKEY_
BUTTO N11 - NCKEY_
CANCEL - NCKEY_
CAPS_ LOCK - NCKEY_
CENTER - NCKEY_
CLOSE - NCKEY_
CLS - “clear-screen or erase”
- NCKEY_
COMMAND - NCKEY_
COPY - NCKEY_
DEL - NCKEY_
DLEFT - down + left on keypad
- NCKEY_
DOWN - NCKEY_
DRIGHT - NCKEY_
END - NCKEY_
ENTER - NCKEY_
EOF - Indicates that we have reached the end of input. Any further calls will continue to return this immediately.
- NCKEY_
ESC - NCKEY_
EXIT - NCKEY_
F00 - NCKEY_
F01 - NCKEY_
F02 - NCKEY_
F03 - NCKEY_
F04 - NCKEY_
F05 - NCKEY_
F06 - NCKEY_
F07 - NCKEY_
F08 - NCKEY_
F09 - NCKEY_
F10 - NCKEY_
F11 - NCKEY_
F12 - NCKEY_
F13 - NCKEY_
F14 - NCKEY_
F15 - NCKEY_
F16 - NCKEY_
F17 - NCKEY_
F18 - NCKEY_
F19 - NCKEY_
F20 - NCKEY_
F21 - NCKEY_
F22 - NCKEY_
F23 - NCKEY_
F24 - NCKEY_
F25 - NCKEY_
F26 - NCKEY_
F27 - NCKEY_
F28 - NCKEY_
F29 - NCKEY_
F30 - NCKEY_
F31 - NCKEY_
F32 - NCKEY_
F33 - NCKEY_
F34 - NCKEY_
F35 - NCKEY_
F36 - NCKEY_
F37 - NCKEY_
F38 - NCKEY_
F39 - NCKEY_
F40 - NCKEY_
F41 - NCKEY_
F42 - NCKEY_
F43 - NCKEY_
F44 - NCKEY_
F45 - NCKEY_
F46 - NCKEY_
F47 - NCKEY_
F48 - NCKEY_
F49 - NCKEY_
F50 - NCKEY_
F51 - NCKEY_
F52 - NCKEY_
F53 - NCKEY_
F54 - NCKEY_
F55 - NCKEY_
F56 - NCKEY_
F57 - NCKEY_
F58 - NCKEY_
F59 - NCKEY_
F60 - NCKEY_
HOME - NCKEY_
INS - NCKEY_
INVALID - NCKEY_
L3SHIFT AltGrin european keyboards- NCKEY_
L5SHIFT - NCKEY_
LALT - NCKEY_
LCTRL - NCKEY_
LEFT - NCKEY_
LHYPER - NCKEY_
LMETA - NCKEY_
LSHIFT - NCKEY_
LSUPER - NCKEY_
MEDIA_ FF - NCKEY_
MEDIA_ LVOL - NCKEY_
MEDIA_ MUTE - NCKEY_
MEDIA_ NEXT - NCKEY_
MEDIA_ PAUSE - NCKEY_
MEDIA_ PLAY - NCKEY_
MEDIA_ PPAUSE - NCKEY_
MEDIA_ PREV - NCKEY_
MEDIA_ RECORD - NCKEY_
MEDIA_ REV - NCKEY_
MEDIA_ REWIND - NCKEY_
MEDIA_ RVOL - NCKEY_
MEDIA_ STOP - NCKEY_
MENU - NCKEY_
MOD_ ALT - NCKEY_
MOD_ CAPSLOCK - NCKEY_
MOD_ CTRL - NCKEY_
MOD_ HYPER - NCKEY_
MOD_ META - NCKEY_
MOD_ NUMLOCK - NCKEY_
MOD_ SHIFT - NCKEY_
MOD_ SUPER - NCKEY_
MOTION - no buttons pressed
- NCKEY_
NUM_ LOCK - NCKEY_
PAUSE - NCKEY_
PGDOWN - NCKEY_
PGUP - NCKEY_
PRINT - NCKEY_
PRINT_ SCREEN - NCKEY_
RALT - NCKEY_
RCTRL - NCKEY_
REFRESH - NCKEY_
RESIZE - we received SIGWINCH
- NCKEY_
RETURN - Alias of
NCKEY_ENTER. - NCKEY_
RHYPER - NCKEY_
RIGHT - NCKEY_
RMETA - NCKEY_
RSHIFT - NCKEY_
RSUPER - NCKEY_
SCROLL_ DOWN - Alias of
NCKEY_BUTTON5. - NCKEY_
SCROLL_ LOCK - NCKEY_
SCROLL_ UP - Alias of
NCKEY_BUTTON4. - NCKEY_
SIGNAL - we received SIGCONT
- NCKEY_
SPACE - NCKEY_
TAB - NCKEY_
ULEFT - up + left on keypad
- NCKEY_
UP - NCKEY_
URIGHT - NCLOGLEVEL_
DEBUG NcLogLevel_i32this is honestly a bit much.- NCLOGLEVEL_
ERROR NcLogLevel_i32we can’t keep doin’ this, but we can do other things.- NCLOGLEVEL_
FATAL NcLogLevel_i32we’re hanging around, but we’ve had a horrible fault.- NCLOGLEVEL_
INFO NcLogLevel_i32“detailed information.- NCLOGLEVEL_
PANIC NcLogLevel_i32print diagnostics immediately related to crashing.- NCLOGLEVEL_
SILENT NcLogLevel_i32default. print nothing once fullscreen service begins.- NCLOGLEVEL_
TRACE NcLogLevel_i32there’s probably a better way to do what you want.- NCLOGLEVEL_
VERBOSE NcLogLevel_i32“detailed information.- NCLOGLEVEL_
WARNING NcLogLevel_i32you probably don’t want what’s happening to happen.- NCMENU_
OPTION_ BOTTOM NcMenuOptionsflag: Bottom row (as opposed to top row).- NCMENU_
OPTION_ HIDING NcMenuOptionsflag: Hides the menu when not unrolled.- NCMETRIC_
BPREFIXCOLUMNS - NCMETRIC_
BPREFIXSTRLEN - NCMETRIC_
IPREFIXCOLUMNS - NCMETRIC_
IPREFIXSTRLEN - NCMETRIC_
PREFIXCOLUMNS - NCMETRIC_
PREFIXSTRLEN - NCMICE_
ALL_ EVENTS NcMiceEvents_u32flag that enables all mice events.- NCMICE_
BUTTON_ EVENTS NcMiceEvents_u32flag that enables mice button* events- NCMICE_
DRAG_ EVENTS NcMiceEvents_u32flag that enables mice drag events- NCMICE_
MOVE_ EVENTS NcMiceEvents_u32flag that enables mice move events- NCMICE_
NO_ EVENTS NcMiceEvents_u32flag that disables all mice events.- NCOPTION_
CLI_ MODE NcFlag_u64flag set composed ofNCOPTION_NO_ALTERNATE_SCREEN|NCOPTION_NO_CLEAR_BITMAPS|NCOPTION_PRESERVE_CURSOR|NCOPTION_SCROLLING.- NCOPTION_
DRAIN_ INPUT NcFlag_u64flag that indicates input may be freely dropped.- NCOPTION_
INHIBIT_ SETLOCALE NcFlag_u64flag to avoid calling setlocale().- NCOPTION_
NO_ ALTERNATE_ SCREEN NcFlag_u64flag to avoid entering alternate mode.- NCOPTION_
NO_ CLEAR_ BITMAPS NcFlag_u64flag to avoid trying to clear any preexisting bitmaps.- NCOPTION_
NO_ FONT_ CHANGES NcFlag_u64flag to avoid modifying the font.- NCOPTION_
NO_ QUIT_ SIGHANDLERS NcFlag_u64flag to avoid handlingSIGINT,SIGSEGV,SIGABRT,SIGQUIT.- NCOPTION_
NO_ WINCH_ SIGHANDLER NcFlag_u64flag to avoid handlingSIGWINCH.- NCOPTION_
PRESERVE_ CURSOR NcFlag_u64flag to initialize the standard plane’s virtual cursor to match the physical cursor at context creation time.- NCOPTION_
SCROLLING NcFlag_u64flag to prepare the standard plane in scrolling mode, useful for CLIs. This is equivalent to callingncplane_set_scrolling(notcurses_stdplane(nc), true).- NCOPTION_
SUPPRESS_ BANNERS NcFlag_u64flag to avoid printing banners.- NCPALETTE_
SIZE - The supported palette-indexed colors number is up to 8 bits.
- NCPIXEL_
ITER M2 NcPixelImpl_u32iTerm2.- NCPIXEL_
KITTY_ ANIMATED NcPixelImpl_u32Kitty with animation but not reflexive composition.- NCPIXEL_
KITTY_ SELFREF NcPixelImpl_u32Kitty with reflexive composition.- NCPIXEL_
KITTY_ STATIC NcPixelImpl_u32Kitty prior to C=1 and animation.- NCPIXEL_
LINUXFB NcPixelImpl_u32Linux framebuffer.- NCPIXEL_
NONE NcPixelImpl_u32No pixel support.- NCPIXEL_
SIXEL NcPixelImpl_u32Sixel.- NCPLANE_
OPTION_ AUTOGROW NcPlaneFlag_u64flag that enables automatic growth of the plane to accommodate output.- NCPLANE_
OPTION_ FIXED NcPlaneFlag_u64flag to avoid scrolling alongside its parent.- NCPLANE_
OPTION_ HORALIGNED NcPlaneFlag_u64Horizontal alignment relative to the parent plane.- NCPLANE_
OPTION_ MARGINALIZED NcPlaneFlag_u64flag to maximize relative to the parent plane, modulo the provided margins.- NCPLANE_
OPTION_ VERALIGNED NcPlaneFlag_u64flag for vertical alignment relative to the parent plane.- NCPLANE_
OPTION_ VSCROLL NcPlaneFlag_u64flag that enables vertical scrolling of the plane to accommodate output.- NCPLOT_
OPTION_ DETECTMAXONLY - Use domain detection only for max
- NCPLOT_
OPTION_ EXPONENTIALD - Exponential dependent axis
- NCPLOT_
OPTION_ LABELTICKSD - Show labels for dependent axis
- NCPLOT_
OPTION_ NODEGRADE - Use domain detection only for max
- NCPLOT_
OPTION_ VERTICALI - Independent axis is vertical
- NCPROGBAR_
OPTION_ RETROGRADE NcProgBarOptionsflag to indicate proceeding left/down.- NCREADER_
OPTION_ CURSOR - Makes the terminal cursor visible across the lifetime of the ncreader, and have the ncreader manage the cursor’s placement.
- NCREADER_
OPTION_ HORSCROLL - Enables horizontal scrolling. Virtual lines can then grow arbitrarily long.
- NCREADER_
OPTION_ NOCMDKEYS - Disables all editing shortcuts. By default, emacs-style keys are available.
- NCREADER_
OPTION_ VERSCROLL - Enables vertical scrolling. You can then use arbitrarily many virtual lines.
- NCREEL_
OPTION_ CIRCULAR - is navigation circular (does moving down from the last tablet move to the first, and vice versa)? only meaningful when infinitescroll is true. if infinitescroll is false, this must be false.
- NCREEL_
OPTION_ INFINITESCROLL - is scrolling infinite (can one move down or up forever, or is an end reached?). if true, ‘circular’ specifies how to handle the special case of an incompletely-filled reel.
- NCRESULT_
ERR NcResult_i32ERROR value.- NCRESULT_
MAX NcResult_i32MAX value.- NCRESULT_
OK NcResult_i32OK value.- NCSCALE_
NONE NcScale_u32mode that maintains the original size.- NCSCALE_
NONE_ HIRES NcScale_u32mode that maintains the original size, admitting high-resolution blitters that don’t preserve the aspect ratio.- NCSCALE_
SCALE NcScale_u32mode that maintains the aspect ratio.- NCSCALE_
SCALE_ HIRES NcScale_u32mode that maintains the aspect ratio, admitting high-resolution blitters that don’t preserve the aspect ratio.- NCSCALE_
STRETCH NcScale_u32mode that throws away the aspect ratio.- NCSTYLE_
BOLD NcStyle_u16Bold.- NCSTYLE_
ITALIC NcStyle_u16Italic.- NCSTYLE_
MASK NcStyle_u16mask.- NCSTYLE_
NONE NcStyle_u16None.- NCSTYLE_
STRUCK NcStyle_u16Struck.- NCSTYLE_
UNDERCURL NcStyle_u16Undercurl.- NCSTYLE_
UNDERLINE NcStyle_u16Underline.- NCTABBED_
OPTION_ BOTTOM - To display the tab list at the bottom instead of at the top of the plane.
- NCTYPE_
PRESS NcInputType_u32Press input type event.- NCTYPE_
RELEASE NcInputType_u32Release input type event.- NCTYPE_
REPEAT NcInputType_u32Repeat input type event.- NCTYPE_
UNKNOWN NcInputType_u32Unknown input type event.- NCVISUAL_
OPTION_ ADDALPHA NcVisualFlag_u64flag to treat as transparent the color specified in thetranscolorfield.- NCVISUAL_
OPTION_ BLEND NcVisualFlag_u64flag usesNcAlpha::Blendwith theNcVisual.- NCVISUAL_
OPTION_ CHILDPLANE NcVisualFlag_u64flag to indicate that thenfield ofncvisual_optionsrefers not to the plane onto which you’d like to blit, but the parent of a new plane.- NCVISUAL_
OPTION_ HORALIGNED NcVisualFlag_u64flag to indicate X is an alignment, not absolute.- NCVISUAL_
OPTION_ NODEGRADE NcVisualFlag_u64flag to fail rather than gracefully degrade.- NCVISUAL_
OPTION_ NOINTERPOLATE NcVisualFlag_u64flag to use non-interpolative scaling.- NCVISUAL_
OPTION_ VERALIGNED NcVisualFlag_u64flag to indicate Y is an alignment, not absolute.- NC_
BGDEFAULT_ MASK - If this bit is set, we are not using the default background color
- NC_
BG_ ALPHA_ MASK - Extract these bits to get the (background)
NcAlphamask. - NC_
BG_ PALETTE - If this bit and
NC_BGDEFAULT_MASKare set, we’re using a palette-indexed background color - NC_
BG_ RGB_ MASK - Extract these bits to get the background
NcRgbvalue - NC_
NOBACKGROUND_ MASK - Does this glyph completely obscure the background?
- PRETERUNICODEBASE
- Offset for
NCKEY_*values.
Functions§
- ncblit_
bgrx ⚠ - Same as ncblit_rgba(), but for BGRx.
- ncblit_
rgb_ ⚠loose - Supply an alpha value [0..255] to be applied throughout. linesize must be a multiple of 4 for this RGBx data.
- ncblit_
rgb_ ⚠packed - Supply an alpha value [0..255] to be applied throughout.
- ncblit_
rgba ⚠ - Blit a flat array ‘data’ of RGBA 32-bit values to the ncplane ‘vopts->n’, which mustn’t be NULL. the blit begins at ‘vopts->y’ and ‘vopts->x’ relative to the specified plane. Each source row ought occupy ‘linesize’ bytes (this might be greater than ‘vopts->lenx’ * 4 due to padding or partial blits). A subregion of the input can be specified with the ‘begy’x’begx’ and ‘leny’x’lenx’ fields from ‘vopts’. Returns the number of pixels blitted, or -1 on error.
- nccapability_
canchangecolor - Can we set the “hardware” palette?
- nccell_
bchannel - Gets the background alpha and coloring bits from the cell
NcChannels_u64as anNcChannel_u32. - nccell_
bg_ alpha - Gets the background
NcAlpha_u32from anNcCell(shifted to LSBs). - nccell_
bg_ default_ p - Is the background
NcChannel_u32of thisNcCellusing the “default background color”? - nccell_
bg_ palindex - Gets the
NcPaletteIndexof the backgroundNcChannel_u32of theNcCell. - nccell_
bg_ palindex_ p - Is the background
NcChannel_u32of thisNcCellusing anNcPaletteIndexindexedNcPalettecolor? - nccell_
bg_ rgb - Gets the background
NcRgb_u32from anNcCell(shifted to LSBs). - nccell_
bg_ rgb8 - Gets the background components of an
NcCell, and returns theNcChannel_u32(which can have some extra bits set). - nccell_
channels - Gets the alpha and coloring bits from the cell
NcChannels_u64. - nccell_
cols - Returns the number of columns occupied by
cell. - nccell_
double_ wide_ p - Does the
NcCellcontain an East Asian Wide codepoint? - nccell_
duplicate ⚠ - Duplicate ‘c’ into ‘targ’; both must be/will be bound to ‘n’. Returns -1 on failure, and 0 on success.
- nccell_
extended_ ⚠gcluster - return a pointer to the NUL-terminated EGC referenced by ‘c’. this pointer can be invalidated by any further operation on the plane ‘n’, so…watch out!
- nccell_
extract libc - Saves the
NcStyle_u16and theNcChannels_u64, and returns theEGC, of anNcCell. - nccell_
fchannel - Gets the foreground alpha and coloring bits from the cell
NcChannels_u64as anNcChannel_u32. - nccell_
fg_ alpha - Gets the foreground
NcAlpha_u32from anNcCell(shifted to LSBs). - nccell_
fg_ default_ p - Is the foreground
NcChannel_u32of thisNcCellusing the “default foreground color”? - nccell_
fg_ palindex - Gets the
NcPaletteIndexof the foregroundNcChannel_u32of theNcCell. - nccell_
fg_ palindex_ p - Is the foreground
NcChannel_u32of thisNcCellusing anNcPaletteIndexindexedNcPalettecolor? - nccell_
fg_ rgb - Gets the foreground
NcRgb_u32from anNcCell(shifted to LSBs). - nccell_
fg_ rgb8 - Gets the foreground components of an
NcCell, and returns theNcChannel_u32(which can have some extra bits set). - nccell_
init - Initializes (zeroes out) an
NcCell. - nccell_
load ⚠ - Breaks the UTF-8 string in ‘gcluster’ down, setting up the nccell ‘c’. Returns the number of bytes copied out of ‘gcluster’, or -1 on failure. The styling of the cell is left untouched, but any resources are released.
- nccell_
off_ styles - Removes the specified
NcStyle_u16bits from anNcCell’s existing spec. - nccell_
on_ styles - Adds the specified
NcStyle_u16bits to anNcCell’s existing spec., whether they’re actively supported or not. - nccell_
prime - Same as
nccell_load, plus blasts the styling withstyleandchannels. - nccell_
release ⚠ - Release resources held by the nccell ‘c’.
- nccell_
set_ bchannel - Sets the background alpha and coloring bits of the cell from an
NcChannel_u32, returning the newNcChannels_u64. - nccell_
set_ bg_ alpha - Sets the background
NcAlpha_u32of anNcCell. - nccell_
set_ bg_ default - Indicates to use the “default color” for the background
NcChannel_u32of anNcCell. - nccell_
set_ bg_ palindex - Sets an
NcCell’s backgroundNcPaletteIndex. - nccell_
set_ bg_ rgb - Sets the background
NcRgb_u32of anNcCell, and marks it as not using the default color. - nccell_
set_ bg_ rgb8 - Sets the background components of the
NcCell, and marks it as not using the “default color”. - nccell_
set_ channels - Sets the alpha and coloring bits of the cell from an
NcChannels_u64, returning the newNcChannels_u64. - nccell_
set_ fchannel - Sets the foreground alpha and coloring bits of the cell from an
NcChannel_u32, returning the newNcChannels_u64. - nccell_
set_ fg_ alpha - Sets the foreground
NcAlpha_u32of anNcCell. - nccell_
set_ fg_ default - Indicates to use the “default color” for the foreground
NcChannel_u32of anNcCell. - nccell_
set_ fg_ palindex - Sets an
NcCell’s foregroundNcPaletteIndex. - nccell_
set_ fg_ rgb - Sets the foreground
NcRgb_u32of anNcCell, and marks it as not using the default color. - nccell_
set_ fg_ rgb8 - Sets the foreground components of the
NcCell, and marks it as not using the “default color”. - nccell_
set_ styles - Sets just the specified
NcStyle_u16bits for anNcCell, whether they’re actively supported or not. - nccell_
strdup libc - Copies the UTF8-encoded
EGCout of theNcCell, whether simple or complex. - nccell_
styles - Gets the
NcStyle_u16bits from anNcCell. - nccell_
wide_ left_ p - Is this the left half of a wide character?
- nccell_
wide_ right_ p - Is this the right half of a wide character?
- nccellcmp
libc - Returns true if the two cells are distinct
EGCs, attributes, or channels. - nccells_
ascii_ box nccells_load_boxwith ASCII characters.- nccells_
double_ box nccells_load_boxwith double line box-drawing characters.- nccells_
heavy_ box nccells_load_boxwith heavy line box-drawing characters.- nccells_
light_ box nccells_load_boxwith light line box-drawing characters.- nccells_
load_ box - Loads up six cells with the
EGCs necessary to draw a box. - nccells_
rounded_ box nccells_load_boxwith round line box-drawing characters.- ncchannel_
alpha - Gets the
NcAlpha_u32from anNcChannel_u32. - ncchannel_
b - Gets the blue component from an
NcChannel_u32. - ncchannel_
default_ p - Is this
NcChannel_u32using the “default color” rather than RGB/palette-indexed? - ncchannel_
g - Gets the green component from an
NcChannel_u32. - ncchannel_
palindex - Gets the
NcPaletteIndexfrom theNcChannel_u32. - ncchannel_
palindex_ p - Is this
NcChannel_u32using palette-indexed color rather than RGB? - ncchannel_
r - Gets the red component from an
NcChannel_u32. - ncchannel_
rgb - Gets the
NcRgb_u32of anNcChannel_u32. - ncchannel_
rgb8 - Gets the three RGB components from an
NcChannel_u32, and returns it. - ncchannel_
rgb_ p - Returns true if this
NcChannel_u32is using RGB color. - ncchannel_
set - Sets the
NcRgb_u32of anNcChannel_u32, and marks it as NOT using the “default color”, retaining the other bits unchanged. - ncchannel_
set_ alpha - Sets the
NcAlpha_u32of anNcChannel_u32. - ncchannel_
set_ b - Sets the blue component of an
NcChannel_u32, and returns it. - ncchannel_
set_ default - Marks an
NcChannel_u32as using its “default color”. Sets alpha asOPAQUE. - ncchannel_
set_ g - Sets the green component of an
NcChannel_u32, and returns it. - ncchannel_
set_ not_ default - Marks an
NcChannel_u32as NOT using its “default color”, retaining the other bits unchanged. - ncchannel_
set_ palindex - Sets the
NcPaletteIndexof theNcChannel_u32, and the channel into palette indexed mode. - ncchannel_
set_ r - Sets the red component of an
NcChannel_u32, and returns it. - ncchannel_
set_ rgb8 - Sets the three RGB components an
NcChannel_u32, and marks it as NOT using the “default color”, retaining the other bits unchanged. - ncchannels_
bchannel - Gets the background alpha and coloring bits as an
NcChannel_u32from aNcChannels_u64. - ncchannels_
bg_ alpha - Gets the background
NcAlpha_u32from anNcChannels_u64, shifted to LSBs. - ncchannels_
bg_ default_ p - Is the background using the “default background color”?
- ncchannels_
bg_ palindex - Gets the
NcPaletteIndexfrom the backgroundNcChannel_u32. - ncchannels_
bg_ palindex_ p - Is the background of an
NcChannels_u64using an indexedNcPalettecolor? - ncchannels_
bg_ rgb - Gets the background
NcRgb_u32from anNcChannels_u64, shifted to LSBs. - ncchannels_
bg_ rgb8 - Gets the three background RGB components from an
NcChannels_u64, and returns the backgroundNcChannel_u32(which can have some extra bits set). - ncchannels_
bg_ rgb_ p - Returns true if the background channel is set to RGB color.
- ncchannels_
channels - Gets the alpha and coloring bits as an
NcChannels_u64. - ncchannels_
combine - Combines two
NcChannel_u32s into anNcChannels_u64. - ncchannels_
fchannel - Gets the foreground alpha and coloring bits as an
NcChannel_u32from anNcChannels_u64. - ncchannels_
fg_ alpha - Gets the foreground
NcAlpha_u32from anNcChannels_u64, shifted to LSBs. - ncchannels_
fg_ default_ p - Is the foreground of an
NcChannels_u64using the “default foreground color”? - ncchannels_
fg_ palindex - Gets the
NcPaletteIndexfrom the foregroundNcChannel_u32. - ncchannels_
fg_ palindex_ p - Is the foreground of an
NcChannels_u64using an indexedNcPalettecolor? - ncchannels_
fg_ rgb - Gets the foreground
NcRgb_u32from anNcChannels_u64, shifted to LSBs. - ncchannels_
fg_ rgb8 - Gets the three foreground RGB components from an
NcChannels_u64, and returns the foregroundNcChannel_u32(which can have some extra bits set). - ncchannels_
fg_ rgb_ p - Returns true if the foreground channel is set to RGB color.
- ncchannels_
reverse - Returns the
NcChannels_u64with the fore- and background’s color information swapped, but without touching housekeeping bits. - ncchannels_
set_ bchannel - Sets the background alpha and coloring bits of the
NcChannels_u64from anNcChannel_u32. - ncchannels_
set_ bg_ alpha - Sets the
NcAlpha_u32of the backgroundNcChannel_u32of anNcChannels_u64. - ncchannels_
set_ bg_ default - Marks the background of an
NcChannels_u64as using its “default color”, which also marks it opaque, and returns the newNcChannels_u64. - ncchannels_
set_ bg_ not_ default - Marks the background of an
NcChannels_u64as NOT using its “default color”, retaining the other bits unchanged, and returns the newNcChannels_u64. - ncchannels_
set_ bg_ palindex - Sets the background of an
NcChannels_u64as using an indexedNcPalettecolor. - ncchannels_
set_ bg_ rgb - Sets the foreground
NcRgb_u32of anNcChannels_u64, and marks it as NOT using the “default color”, retaining the other bits unchanged. - ncchannels_
set_ bg_ rgb8 - Sets the three background RGB components of an
NcChannels_u64, and marks it as NOT using the “default color”, retaining the other bits unchanged. - ncchannels_
set_ channels - Sets the alpha and coloring bits of an
NcChannels_u64from anotherNcChannels_u64. - ncchannels_
set_ default - Marks both the foreground and background of an
NcChannels_u64as using their “default color”, which also marks them opaque, and returns the newNcChannels_u64. - ncchannels_
set_ fchannel - Sets the foreground alpha and coloring bits of the
NcChannels_u64from anNcChannel_u32. - ncchannels_
set_ fg_ alpha - Sets the
NcAlpha_u32of the foregroundNcChannel_u32of anNcChannels_u64. - ncchannels_
set_ fg_ default - Marks the foreground of an
NcChannels_u64as using its “default color”, which also marks it opaque, and returns the newNcChannels_u64. - ncchannels_
set_ fg_ not_ default - Marks the foreground of an
NcChannels_u64as NOT using its “default color”, retaining the other bits unchanged, and returns the newNcChannels_u64. - ncchannels_
set_ fg_ palindex - Sets the foreground of an
NcChannels_u64as using an indexedNcPalettecolor. - ncchannels_
set_ fg_ rgb - Sets the foreground
NcRgb_u32of anNcChannels_u64, and marks it as NOT using the “default color”, retaining the other bits unchanged. - ncchannels_
set_ fg_ rgb8 - Sets the three foreground RGB components of an
NcChannels_u64, and marks it as NOT using the “default color”, retaining the other bits unchanged. - ncchannels_
set_ not_ default - Marks both the foreground and background of an
NcChannels_u64as NOT using their “default color”, retaining the other bits unchanged, and returns the newNcChannels_u64. - ncdirect_
box ⚠ - Draw a box with its upper-left corner at the current cursor position, having dimensions |ylen|x|xlen|. See ncplane_box() for more information. The minimum box size is 2x2, and it cannot be drawn off-screen. |wchars| is an array of 6 wide characters: UL, UR, LL, LR, HL, VL.
- ncdirect_
canbraille - Can we reliably use Unicode Braille?
- ncdirect_
canchangecolor - Can we set the “hardware” palette? Requires the “ccc” terminfo capability.
- ncdirect_
canfade - Can we fade? Fading requires either the “rgb” or “ccc” terminfo capability.
- ncdirect_
canget_ ⚠cursor - Is there support for acquiring the cursor’s current position? Requires the u7 terminfo capability, and that we are connected to an actual terminal.
- ncdirect_
canhalfblock - Can we reliably use Unicode halfblocks?
- ncdirect_
canopen_ images - Can we open images? This requires being built against FFmpeg.
- ncdirect_
canopen_ videos - Can we load videos? This requires being built against FFmpeg.
- ncdirect_
canquadrant - Can we reliably use Unicode quadrants?
- ncdirect_
cansextant - Can we reliably use Unicode 13 sextants?
- ncdirect_
cantruecolor - Can we directly specify RGB values per cell, or only use palettes?
- ncdirect_
canutf8 ⚠ - Is our encoding UTF-8? Requires LANG being set to a UTF8 locale.
- ncdirect_
capabilities - Returns the detected
NcCapabilities. - ncdirect_
check_ ⚠pixel_ support - Can we blit pixel-accurate bitmaps?
- ncdirect_
clear ⚠ - Clear the screen.
- ncdirect_
core_ ⚠init - The same as ncdirect_init(), but without any multimedia functionality, allowing for a svelter binary. Link with notcurses-core if this is used.
- ncdirect_
cursor_ ⚠disable - ncdirect_
cursor_ ⚠down - ncdirect_
cursor_ ⚠enable - ncdirect_
cursor_ ⚠left - ncdirect_
cursor_ ⚠move_ yx - Move the cursor in direct mode. -1 to retain current location on that axis.
- ncdirect_
cursor_ ⚠pop - ncdirect_
cursor_ ⚠push - Push or pop the cursor location to the terminal’s stack. The depth of this stack, and indeed its existence, is terminal-dependent.
- ncdirect_
cursor_ ⚠right - ncdirect_
cursor_ ⚠up - ncdirect_
cursor_ ⚠yx - Get the cursor position, when supported. This requires writing to the terminal, and then reading from it. If the terminal doesn’t reply, or doesn’t reply in a way we understand, the results might be deleterious.
- ncdirect_
detected_ ⚠terminal - Capabilites
- ncdirect_
dim_ ⚠x - Get the current number of columns/rows.
- ncdirect_
dim_ ⚠y - ncdirect_
double_ ⚠box - ncdirect_box() with the double box-drawing characters
- ncdirect_
flush ⚠ - Force a flush. Returns 0 on success, -1 on failure.
- ncdirect_
get ⚠ - Provide a NULL ‘ts’ to block at length, a ‘ts’ of 0 for non-blocking operation, and otherwise an absolute deadline in terms of CLOCK_MONOTONIC. Returns a single Unicode code point, a synthesized special key constant, or (uint32_t)-1 on error. Returns 0 on a timeout. If an event is processed, the return value is the ‘id’ field from that event. ‘ni’ may be NULL.
- ncdirect_
get_ blocking - Reads input blocking until an event is processed or a signal is received.
- ncdirect_
get_ nblock - Reads input without blocking.
- ncdirect_
hline_ interp - Draws horizontal lines using the specified
NcChannels_u64s, interpolating between them as we go. - ncdirect_
init ⚠ - Initialize a direct-mode Notcurses context on the connected terminal at ‘fp’. ‘fp’ must be a tty. You’ll usually want stdout. Direct mode supports a limited subset of Notcurses routines which directly affect ‘fp’, and neither supports nor requires notcurses_render(). This can be used to add color and styling to text in the standard output paradigm. ‘flags’ is a bitmask over NCDIRECT_OPTION_*. Returns NULL on error, including any failure initializing terminfo.
- ncdirect_
inputready_ ⚠fd - Get a file descriptor suitable for input event poll()ing. When this descriptor becomes available, you can call ncdirect_get_nblock(), and input ought be ready. This file descriptor is not necessarily the file descriptor associated with stdin (but it might be!).
- ncdirect_
off_ ⚠styles - ncdirect_
on_ ⚠styles - ncdirect_
palette_ ⚠size - Returns the number of simultaneous colors claimed to be supported, or 1 if there is no color support. Note that several terminal emulators advertise more colors than they actually support, downsampling internally.
- ncdirect_
putegc ⚠ - Output a single EGC (this might be several characters) from |utf8|, according to the channels |channels|. On success, the number of columns thought to have been used is returned, and if |sbytes| is not NULL, the number of bytes consumed will be written there.
- ncdirect_
putstr ⚠ - Output the string |utf8| according to the channels |channels|. Note that ncdirect_putstr() does not explicitly flush output buffers, so it will not necessarily be immediately visible. Returns EOF on error.
- ncdirect_
raster_ ⚠frame - Takes the result of ncdirect_render_frame() and writes it to the output, freeing it on all paths.
- ncdirect_
readline ⚠ - Read a (heap-allocated) newline-delimited chunk of text, after printing the prompt. The newline itself, if present, is included. Returns NULL on error.
- ncdirect_
render_ ⚠frame - Render an image using the specified blitter and scaling, but do not write the result. The image may be arbitrarily many rows – the output will scroll – but will only occupy the column of the cursor, and those to the right. To actually write (and free) this, invoke ncdirect_raster_frame(). ‘maxx’ and ‘maxy’ (cell geometry, not pixel), if greater than 0, are used for scaling; the terminal’s geometry is otherwise used.
- ncdirect_
render_ ⚠image - Display an image using the specified blitter and scaling. The image may be arbitrarily many rows – the output will scroll – but will only occupy the column of the cursor, and those to the right. The render/raster process can be split by using ncdirect_render_frame() and ncdirect_raster_frame().
- ncdirect_
rounded_ ⚠box - ncdirect_box() with the rounded box-drawing characters
- ncdirect_
set_ ⚠bg_ default - ncdirect_
set_ ⚠bg_ palindex - ncdirect_
set_ ⚠bg_ rgb - ncdirect_
set_ bg_ rgb8 - Sets the background component components.
- ncdirect_
set_ ⚠fg_ default - ncdirect_
set_ ⚠fg_ palindex - ncdirect_
set_ ⚠fg_ rgb - Direct mode. This API can be used to colorize and stylize output generated outside of notcurses, without ever calling notcurses_render(). These should not be intermixed with standard Notcurses rendering.
- ncdirect_
set_ fg_ rgb8 - Sets the foreground component components.
- ncdirect_
set_ ⚠styles - ncplane_styles_*() analogues
- ncdirect_
stop ⚠ - Release ‘nc’ and any associated resources. 0 on success, non-0 on failure.
- ncdirect_
stream ⚠ - Load successive frames from a file, invoking ‘streamer’ on each.
- ncdirect_
styles ⚠ - ncdirect_
supported_ ⚠styles - Returns a 16-bit bitmask of supported curses-style attributes (NCSTYLE_UNDERLINE, NCSTYLE_BOLD, etc.) The attribute is only indicated as supported if the terminal can support it together with color. For more information, see the “ncv” capability in terminfo(5).
- ncdirect_
vline_ interp - Draws horizontal lines using the specified
NcChannels_u64s, interpolating between them as we go. - ncdirectf_
free ⚠ - Free a ncdirectf returned from ncdirectf_from_file().
- ncdirectf_
from_ ⚠file - Load media from disk, but do not yet render it (presumably because you want to get its geometry via ncdirectf_geom(), or to use the same file with ncdirect_render_loaded_frame() multiple times). You must destroy the result with ncdirectf_free();
- ncdirectf_
geom ⚠ - Having loaded the frame ‘frame’, get the geometry of a potential render.
- ncdirectf_
render ⚠ - Same as ncdirect_render_frame(), except ‘frame’ must already have been loaded. A loaded frame may be rendered in different ways before it is destroyed.
- ncdplot_
add_ ⚠sample - ncdplot_
create ⚠ - ncdplot_
destroy ⚠ - ncdplot_
plane ⚠ - ncdplot_
sample ⚠ - ncdplot_
set_ ⚠sample - ncfadectx_
free ⚠ - Release the resources associated with ‘nctx’.
- ncfadectx_
iterations ⚠ - Return the number of iterations through which ‘nctx’ will fade.
- ncfadectx_
setup ⚠ - Rather than the simple ncplane_fade{in/out}(), ncfadectx_setup() can be paired with a loop over ncplane_fade{in/out}_iteration() + ncfadectx_free().
- ncfdplane_
create ⚠ - Create an ncfdplane around the fd ‘fd’. Consider this function to take ownership of the file descriptor, which will be closed in ncfdplane_destroy().
- ncfdplane_
destroy ⚠ - ncfdplane_
plane ⚠ - ncinput_
alt_ p - Returns true if the
Altmodifier is present. - ncinput_
capslock_ p - Returns true if the
CapsLockmodifier is present. - ncinput_
ctrl_ p - Returns true if the
Ctrlmodifier is present. - ncinput_
equal_ p - Returns true if the two
NcInputare data-equivalent. - ncinput_
hyper_ p - Returns true if the
Hypermodifier is present. - ncinput_
meta_ p - Returns true if the
Metamodifier is present. - ncinput_
nomod_ p - Is this
NcInputfree of modifiers (alt, control, shift)? - ncinput_
numlock_ p - Returns true if the
NumLockmodifier is present. - ncinput_
shift_ p - Returns true if the
Shiftmodifier is present. - ncinput_
super_ p - Returns true if the
Supermodifier is present. - nckey_
mouse_ p - Is the event a synthesized mouse event?
- nckey_
synthesized_ p - Is this
u32number a synthesized event? - ncmenu_
create ⚠ - Create a menu with the specified options, bound to the specified plane.
- ncmenu_
destroy ⚠ - Destroy a menu created with ncmenu_create().
- ncmenu_
item_ ⚠set_ status - Disable or enable a menu item. Returns 0 if the item was found.
- ncmenu_
mouse_ ⚠selected - Return the item description corresponding to the mouse click ‘click’. The item must be on an actively unrolled section, and the click must be in the area of a valid item. If ‘ni’ is not NULL, and the selected item has a shortcut, ‘ni’ will be filled in with the shortcut.
- ncmenu_
nextitem ⚠ - Move to the previous/next item within the currently unrolled section. If no section is unrolled, the first section will be unrolled.
- ncmenu_
nextsection ⚠ - Unroll the previous/next section (relative to current unrolled). If no section is unrolled, the first section will be unrolled.
- ncmenu_
offer_ ⚠input - Offer the input to the ncmenu. If it’s relevant, this function returns true, and the input ought not be processed further. If it’s irrelevant to the menu, false is returned. Relevant inputs include:
- ncmenu_
plane ⚠ - Return the ncplane backing this ncmenu.
- ncmenu_
previtem ⚠ - ncmenu_
prevsection ⚠ - ncmenu_
rollup ⚠ - Roll up any unrolled menu section, and hide the menu if using hiding.
- ncmenu_
selected ⚠ - Return the selected item description, or NULL if no section is unrolled. If ‘ni’ is not NULL, and the selected item has a shortcut, ‘ni’ will be filled in with that shortcut–this can allow faster matching.
- ncmenu_
unroll ⚠ - Unroll the specified menu section, making the menu visible if it was invisible, and rolling up any menu section that is already unrolled.
- ncmetric
- Takes an arbitrarily large number, and prints it into a fixed-size buffer by adding the necessary SI suffix.
- ncmultiselector_
create ⚠ - ncmultiselector_
destroy ⚠ - Destroy the ncmultiselector.
- ncmultiselector_
offer_ ⚠input - Offer the input to the ncmultiselector. If it’s relevant, this function returns true, and the input ought not be processed further. If it’s irrelevant to the multiselector, false is returned. Relevant inputs include:
- ncmultiselector_
plane ⚠ - Return a reference to the ncmultiselector’s underlying ncplane.
- ncmultiselector_
selected ⚠ - Return selected vector. An array of bools must be provided, along with its length. If that length doesn’t match the itemcount, it is an error.
- ncpalette_
free ⚠ - Free the palette store ‘p’.
- ncpalette_
get - Returns the
NcRgb_u32value from anNcChannel_u32entry inside anNcPalette. - ncpalette_
get_ rgb8 - Extracts the RGB components from an
NcChannel_u32entry inside anNcPalette, and returns theNcChannel_u32. - ncpalette_
new ⚠ - Create a new palette store. It will be initialized with notcurses’ best knowledge of the currently configured palette.
- ncpalette_
set - Sets the
NcRgb_u32value of anNcChannel_u32entry inside anNcPalette. - ncpalette_
set_ rgb8 - Sets the RGB components of an
NcChannel_u32entry inside anNcPalette. - ncpalette_
use ⚠ - Attempt to configure the terminal with the provided palette ‘p’. Does not transfer ownership of ‘p’; ncpalette_free() can (ought) still be called.
- ncpile_
bottom ⚠ - Return the bottommost plane of the pile containing ‘n’.
- ncpile_
create ⚠ - Same as ncplane_create(), but creates a new pile. The returned plane will be the top, bottom, and root of this new pile.
- ncpile_
rasterize ⚠ - Make the physical screen match the last rendered frame from the pile of which ‘n’ is a part. This is a blocking call. Don’t call this before the pile has been rendered (doing so will likely result in a blank screen).
- ncpile_
render ⚠ - Renders the pile of which ‘n’ is a part. Rendering this pile again will blow away the render. To actually write out the render, call ncpile_rasterize().
- ncpile_
render_ ⚠to_ buffer - Perform the rendering and rasterization portion of ncpile_render() and ncpile_rasterize(), but do not write the resulting buffer out to the terminal. Using this function, the user can control the writeout process. The returned buffer must be freed by the caller.
- ncpile_
render_ ⚠to_ file - Write the last rendered frame, in its entirety, to ‘fp’. If a frame has not yet been rendered, nothing will be written.
- ncpile_
top ⚠ - Return the topmost plane of the pile containing ‘n’.
- ncpixel
- Constructs a libav-compatible ABGR pixel from RGB components.
- ncpixel_
a - Extracts the 8-bit alpha component from an ABGR pixel.
- ncpixel_
b - Extracts the 8 bit blue component from an ABGR pixel.
- ncpixel_
g - Extracts the 8 bit green component from an ABGR pixel.
- ncpixel_
r - Extracts the 8 bit red component from an ABGR pixel.
- ncpixel_
set_ a - Sets the 8-bit alpha component of an ABGR pixel.
- ncpixel_
set_ b - Sets the 8-bit blue component of an ABGR pixel.
- ncpixel_
set_ g - Sets the 8-bit green component of an ABGR pixel.
- ncpixel_
set_ r - Sets the 8-bit red component of an ABGR pixel.
- ncpixel_
set_ rgb8 - Sets the RGB components of an ABGR pixel.
- ncplane_
above ⚠ - Return the plane above this one, or NULL if this is at the top.
- ncplane_
abs_ ⚠x - ncplane_
abs_ ⚠y - ncplane_
abs_ ⚠yx - Get the origin of plane ‘n’ relative to its pile. Either or both of ‘x’ and ‘y’ may be NULL.
- ncplane_
as_ ⚠rgba - Create an RGBA flat array from the selected region of the ncplane ‘nc’. Start at the plane’s ‘begy’x’begx’ coordinate (which must lie on the plane), continuing for ‘leny’x’lenx’ cells. Either or both of ‘leny’ and ‘lenx’ can be specified as 0 to go through the boundary of the plane. Only glyphs from the specified ncblitset may be present. If ‘pxdimy’ and/or ‘pxdimx’ are non-NULL, they will be filled in with the total pixel geometry.
- ncplane_
ascii_ box - Like
ncplane_boxusing only ASCII characters. - ncplane_
at_ ⚠cursor - Retrieve the current contents of the cell under the cursor. The EGC is returned, or NULL on error. This EGC must be free()d by the caller. The stylemask and channels are written to ‘stylemask’ and ‘channels’, respectively.
- ncplane_
at_ ⚠cursor_ cell - Retrieve the current contents of the cell under the cursor into ‘c’. This cell is invalidated if the associated plane is destroyed. Returns the number of bytes in the EGC, or -1 on error.
- ncplane_
at_ ⚠yx - Retrieve the current contents of the specified cell. The EGC is returned, or NULL on error. This EGC must be free()d by the caller. The stylemask and channels are written to ‘stylemask’ and ‘channels’, respectively. The return represents how the cell will be used during rendering, and thus integrates any base cell where appropriate. If called upon the secondary columns of a wide glyph, the EGC will be returned (i.e. this function does not distinguish between the primary and secondary columns of a wide glyph). If called on a sprixel plane, its control sequence is returned for all valid locations.
- ncplane_
at_ ⚠yx_ cell - Retrieve the current contents of the specified cell into ‘c’. This cell is invalidated if the associated plane is destroyed. Returns the number of bytes in the EGC, or -1 on error. Unlike ncplane_at_yx(), when called upon the secondary columns of a wide glyph, the return can be distinguished from the primary column (nccell_wide_right_p(c) will return true). It is an error to call this on a sprixel plane (unlike ncplane_at_yx()).
- ncplane_
autogrow_ ⚠p - ncplane_
base ⚠ - Extract the ncplane’s base nccell into ‘c’. The reference is invalidated if ‘ncp’ is destroyed.
- ncplane_
bchannel - Gets the background alpha and coloring bits from an
NcPlaneas anNcChannel_u32. - ncplane_
below ⚠ - Return the plane below this one, or NULL if this is at the bottom.
- ncplane_
bg_ alpha - Gets the background
NcAlpha_u32from theNcPlane, shifted to LSBs. - ncplane_
bg_ default_ p - Is the plane’s background using the “default background color”?
- ncplane_
bg_ rgb - Gets the background
NcRgb_u32from anNcPlane, shifted to LSBs. - ncplane_
bg_ rgb8 - Gets the background RGB componentss from an
NcPlane, and returns the backgroundNcChannel_u32. - ncplane_
box ⚠ - Draw a box with its upper-left corner at the current cursor position, and its lower-right corner at ‘ystop’x’xstop’. The 6 cells provided are used to draw the upper-left, ur, ll, and lr corners, then the horizontal and vertical lines. ‘ctlword’ is defined in the least significant byte, where bits [7, 4] are a gradient mask, and [3, 0] are a border mask:
- ncplane_
box_ sized - Draws a box with its upper-left corner at the current cursor position,
having dimensions
len_y*len_x. - ncplane_
center_ ⚠abs - Find the center coordinate of a plane, preferring the top/left in the case of an even number of rows/columns (in such a case, there will be one more cell to the bottom/right of the center than the top/left). The center is then modified relative to the plane’s origin.
- ncplane_
channels - Gets the
NcChannels_u64of anNcPlane. - ncplane_
contents ⚠ - Create a flat string from the EGCs of the selected region of the ncplane ‘n’. Start at the plane’s ‘begy’x’begx’ coordinate (which must lie on the plane), continuing for ‘leny’x’lenx’ cells. Either or both of ‘leny’ and ‘lenx’ can be specified as 0 to go through the boundary of the plane. -1 can be specified for ‘begx’/‘begy’ to use the current cursor location.
- ncplane_
create ⚠ - Create a new ncplane bound to plane ‘n’, at the offset ‘y’x’x’ (relative to the origin of ‘n’) and the specified size. The number of ‘rows’ and ‘cols’ must both be positive. This plane is initially at the top of the z-buffer, as if ncplane_move_top() had been called on it. The void* ‘userptr’ can be retrieved (and reset) later. A ‘name’ can be set, used in debugging.
- ncplane_
cursor_ ⚠move_ rel - Move the cursor relative to the current cursor position (the cursor needn’t be visible). Returns -1 on error, including target position exceeding the plane’s dimensions.
- ncplane_
cursor_ ⚠move_ yx - Move the cursor to the specified position (the cursor needn’t be visible). Pass -1 as either coordinate to hold that axis constant. Returns -1 if the move would place the cursor outside the plane.
- ncplane_
cursor_ x - Returns the current row of the cursor within this
NcPlane. - ncplane_
cursor_ y - Returns the current row of the cursor within this
NcPlane. - ncplane_
cursor_ ⚠yx - Get the current position of the cursor within n. y and/or x may be NULL.
- ncplane_
destroy ⚠ - Destroy the specified ncplane. None of its contents will be visible after the next call to notcurses_render(). It is an error to attempt to destroy the standard plane.
- ncplane_
dim_ x - Gets the columns of the
NcPlane. - ncplane_
dim_ y - Gets the rows of the
NcPlane. - ncplane_
dim_ ⚠yx - Return the dimensions of this ncplane. y or x may be NULL.
- ncplane_
double_ box - Like
ncplane_boxwith the double box-drawing characters. - ncplane_
double_ box_ sized - Like
ncplane_box_sizedwith the double box-drawing characters. - ncplane_
dup ⚠ - Duplicate an existing ncplane. The new plane will have the same geometry, will duplicate all content, and will start with the same rendering state. The new plane will be immediately above the old one on the z axis, and will be bound to the same parent (unless ‘n’ is a root plane, in which case the new plane will be bound to it). Bound planes are not duplicated; the new plane is bound to the parent of ‘n’, but has no bound planes.
- ncplane_
erase ⚠ - Erase every cell in the ncplane (each cell is initialized to the null glyph and the default channels/styles). All cells associated with this ncplane are invalidated, and must not be used after the call, excluding the base cell. The cursor is homed. The plane’s active attributes are unaffected.
- ncplane_
erase_ ⚠region - Erase every cell in the region starting at {ystart, xstart} and having size {|ylen|x|xlen|} for non-zero lengths. If ystart and/or xstart are -1, the current cursor position along that axis is used; other negative values are an error. A negative ylen means to move up from the origin, and a negative xlen means to move left from the origin. A positive ylen moves down, and a positive xlen moves right. A value of 0 for the length erases everything along that dimension. It is an error if the starting coordinate is not in the plane, but the ending coordinate may be outside the plane.
- ncplane_
fadein ⚠ - Fade the ncplane in over the specified time. Load the ncplane with the target cells without rendering, then call this function. When it’s done, the ncplane will have reached the target levels, starting from zeroes.
- ncplane_
fadein_ ⚠iteration - Fade in through ‘iter’ iterations, where ‘iter’ < ‘ncfadectx_iterations(nctx)’.
- ncplane_
fadeout ⚠ - Fade the ncplane out over the provided time, calling ‘fader’ at each iteration. Requires a terminal which supports truecolor, or at least palette modification (if the terminal uses a palette, our ability to fade planes is limited, and affected by the complexity of the rest of the screen).
- ncplane_
fadeout_ ⚠iteration - Fade out through ‘iter’ iterations, where ‘iter’ < ‘ncfadectx_iterations(nctx)’.
- ncplane_
fchannel - Gets the foreground alpha and coloring bits from an
NcPlaneas anNcChannel_u32. - ncplane_
fg_ alpha - Gets the foreground
NcAlpha_u32from theNcPlane, shifted to LSBs. - ncplane_
fg_ default_ p - Is the plane’s foreground using the “default foreground color”?
- ncplane_
fg_ rgb - Gets the foreground
NcRgb_u32from anNcPlane, shifted to LSBs. - ncplane_
fg_ rgb8 - Gets the foreground RGB components from an
NcPlane. and returns the backgroundNcChannel_u32. - ncplane_
format ⚠ - Set the given style throughout the specified region, keeping content and channels unchanged. The upper left corner is at ‘y’, ‘x’, and -1 may be specified to indicate the cursor’s position in that dimension. The area is specified by ‘ylen’, ‘xlen’, and 0 may be specified to indicate everything remaining to the right and below, respectively. It is an error for any coordinate to be outside the plane. Returns the number of cells set, or -1 on failure.
- ncplane_
gradient - Draws a gradient with its upper-left corner at the current cursor position,
stopping at
end_y×end_x. - ncplane_
gradient2x1 ⚠ - Do a high-resolution gradient using upper blocks and synced backgrounds. This doubles the number of vertical gradations, but restricts you to half blocks (appearing to be full blocks). Returns the number of cells filled on success, or -1 on error.
- ncplane_
greyscale ⚠ - Convert the plane’s content to greyscale.
- ncplane_
halign - Returns the column at which
numcolscolumns ought start in order to be aligned according toalignwithin theplane. - ncplane_
hline - Draws horizontal lines using the specified NcCell, starting at the current cursor position.
- ncplane_
hline_ ⚠interp - Draw horizontal or vertical lines using the specified cell, starting at the current cursor position. The cursor will end at the cell following the last cell output (even, perhaps counter-intuitively, when drawing vertical lines), just as if ncplane_putc() was called at that spot. Return the number of cells drawn on success. On error, return the negative number of cells drawn. A length of 0 is an error, resulting in a return of -1.
- ncplane_
home ⚠ - Move the cursor to 0, 0. Can’t fail.
- ncplane_
mergedown ⚠ - Merge the ncplane ‘src’ down onto the ncplane ‘dst’. This is most rigorously defined as “write to ‘dst’ the frame that would be rendered were the entire stack made up only of the specified subregion of ‘src’ and, below it, the subregion of ‘dst’ having the specified origin. Supply -1 to indicate the current cursor position in the relevant dimension. Merging is independent of the position of ‘src’ viz ‘dst’ on the z-axis. It is an error to define a subregion that is not entirely contained within ‘src’. It is an error to define a target origin such that the projected subregion is not entirely contained within ‘dst’. Behavior is undefined if ‘src’ and ‘dst’ are equivalent. ‘dst’ is modified, but ‘src’ remains unchanged. Neither ‘src’ nor ‘dst’ may have sprixels. Lengths of 0 mean “everything left”.
- ncplane_
mergedown_ ⚠simple - Merge the entirety of ‘src’ down onto the ncplane ‘dst’. If ‘src’ does not intersect with ‘dst’, ‘dst’ will not be changed, but it is not an error.
- ncplane_
move_ ⚠above - Splice ncplane ‘n’ out of the z-buffer, and reinsert it above ‘above’. Returns non-zero if ‘n’ is already in the desired location. ‘n’ and ‘above’ must not be the same plane. If ‘above’ is NULL, ‘n’ is moved to the bottom of its pile.
- ncplane_
move_ ⚠below - Splice ncplane ‘n’ out of the z-buffer, and reinsert it below ‘below’. Returns non-zero if ‘n’ is already in the desired location. ‘n’ and ‘below’ must not be the same plane. If ‘below’ is NULL, ‘n’ is moved to the top of its pile.
- ncplane_
move_ bottom - Relocates this
NcPlaneat the bottom of the z-buffer. - ncplane_
move_ ⚠family_ above - Splice ncplane ‘n’ and its bound planes out of the z-buffer, and reinsert them above or below ‘targ’. Relative order will be maintained between the reinserted planes. For a plane E bound to C, with z-ordering A B C D E, moving the C family to the top results in C E A B D, while moving it to the bottom results in A B D C E.
- ncplane_
move_ ⚠family_ below - ncplane_
move_ family_ bottom - Splices this plane and its bound planes out of the z-buffer, and reinserts them at the bottom.
- ncplane_
move_ family_ top - Splices this plane and its bound planes out of the z-buffer, and reinserts them at the top.
- ncplane_
move_ top - Relocates this
NcPlaneat the top of the z-buffer. - ncplane_
move_ ⚠yx - Move this plane relative to the standard plane, or the plane to which it is bound (if it is bound to a plane). It is an error to attempt to move the standard plane.
- ncplane_
moverel - Moves this
NcPlanerelative to its current location. - ncplane_
notcurses ⚠ - Extract the Notcurses context to which this plane is attached.
- ncplane_
notcurses_ ⚠const - ncplane_
off_ ⚠styles - Remove the specified styles from the ncplane’s existing spec.
- ncplane_
on_ ⚠styles - Add the specified styles to the ncplane’s existing spec.
- ncplane_
parent ⚠ - Get the plane to which the plane ‘n’ is bound, if any.
- ncplane_
parent_ ⚠const - ncplane_
perimeter - Draws the perimeter around
plane. - ncplane_
perimeter_ double - Like
ncplane_perimeterwith the double box-drawing characters. - ncplane_
perimeter_ rounded - Like
ncplane_perimeterwith the rounded box-drawing characters. - ncplane_
pixel_ ⚠geom - Retrieve pixel geometry for the display region (‘pxy’, ‘pxx’), each cell (‘celldimy’, ‘celldimx’), and the maximum displayable bitmap (‘maxbmapy’, ‘maxbmapx’). If bitmaps are not supported, or if there is no artificial limit on bitmap size, ‘maxbmapy’ and ‘maxbmapx’ will be 0. Any of the geometry arguments may be NULL.
- ncplane_
polyfill_ ⚠yx - Starting at the specified coordinate, if its glyph is different from that of ‘c’, ‘c’ is copied into it, and the original glyph is considered the fill target. We do the same to all cardinally-connected cells having this same fill target. Returns the number of cells polyfilled. An invalid initial y, x is an error. Returns the number of cells filled, or -1 on error.
- ncplane_
pulse ⚠ - Pulse the plane in and out until the callback returns non-zero, relying on the callback ‘fader’ to initiate rendering. ‘ts’ defines the half-period (i.e. the transition from black to full brightness, or back again). Proper use involves preparing (but not rendering) an ncplane, then calling ncplane_pulse(), which will fade in from black to the specified colors.
- ncplane_
putc - Replaces the
NcCellat the current location with the providedcell, advancing the cursor by its width (but not past the end of the plane). - ncplane_
putc_ ⚠yx - Replace the cell at the specified coordinates with the provided cell ‘c’, and advance the cursor by the width of the cell (but not past the end of the plane). On success, returns the number of columns the cursor was advanced. ‘c’ must already be associated with ‘n’. On failure, -1 is returned.
- ncplane_
putchar - Replaces the
NcCellat the current location with the providedchar, using the current style. - ncplane_
putchar_ stained - Replaces the
NcCellat the current location with the providedchar, while retaining the previous style. - ncplane_
putchar_ yx - Replaces the
NcCellat the specified coordinates with the providedchar, using the current style. - ncplane_
putegc - Replaces the
NcCellat the current location with the providedegc, using the current style. - ncplane_
putegc_ stained - Replaces the
NcCellat the current location with the providedegc, while retaining the previous style. - ncplane_
putegc_ yx - Replaces the
NcCellat the specified coordinates with the providedegc, using the current style. - ncplane_
putnstr - Writes a string to the current location, using the current style,
and no more than
num_bytesbytes will be written. - ncplane_
putnstr_ ⚠aligned - ncplane_
putnstr_ yx - Writes a series of EGCs to the provided location, using the current style,
and no more than
num_bytesbytes will be written. - ncplane_
putstr - Writes a string to the current location, using the current style.
- ncplane_
putstr_ aligned - Writes a string to the provided location, using the current style
and
NcAlign_u32ed on x. - ncplane_
putstr_ stained - Writes a string to the current location, retaining the previous style.
- ncplane_
putstr_ yx - Writes a string to the provided location, using the current style.
- ncplane_
puttext ⚠ - Write the specified text to the plane, breaking lines sensibly, beginning at the specified line. Returns the number of columns written. When breaking a line, the line will be cleared to the end of the plane (the last line will not be so cleared). The number of bytes written from the input is written to ‘*bytes’ if it is not NULL. Cleared columns are included in the return value, but not included in the number of bytes written. Leaves the cursor at the end of output. A partial write will be accomplished as far as it can; determine whether the write completed by inspecting ‘*bytes’. Can output to multiple rows even in the absence of scrolling, but not more rows than are available. With scrolling enabled, arbitrary amounts of data can be emitted. All provided whitespace is preserved – ncplane_puttext() followed by an appropriate ncplane_contents() will read back the original output.
- ncplane_
putwegc_ ⚠stained - Replace the EGC underneath us, but retain the styling. The current styling of the plane will not be changed.
- ncplane_
putwstr_ ⚠stained - ncplane_
qrcode ⚠ - Draw a QR code at the current position on the plane. If there is insufficient room to draw the code here, or there is any other error, non-zero will be returned. Otherwise, the QR code “version” (size) is returned. The QR code is (version * 4 + 17) columns wide, and ⌈version * 4 + 17⌉ rows tall (the properly-scaled values are written back to ‘*ymax’ and ‘*xmax’).
- ncplane_
reparent ⚠ - Plane ‘n’ will be unbound from its parent plane, and will be made a bound child of ‘newparent’. It is an error if ‘n’ or ‘newparent’ are NULL. If ‘newparent’ is equal to ‘n’, ‘n’ becomes the root of a new pile, unless ‘n’ is already the root of a pile, in which case this is a no-op. Returns ‘n’. The standard plane cannot be reparented. Any planes bound to ‘n’ are reparented to the previous parent of ‘n’.
- ncplane_
reparent_ ⚠family - The same as ncplane_reparent(), except any planes bound to ‘n’ come along with it to its new destination. Their z-order is maintained. If ‘newparent’ is an ancestor of ‘n’, NULL is returned, and no changes are made.
- ncplane_
resize ⚠ - Resize the specified ncplane. The four parameters ‘keepy’, ‘keepx’, ‘keepleny’, and ‘keeplenx’ define a subset of the ncplane to keep, unchanged. This may be a region of size 0, though none of these four parameters may be negative. ‘keepx’ and ‘keepy’ are relative to the ncplane. They must specify a coordinate within the ncplane’s totality. ‘yoff’ and ‘xoff’ are relative to ‘keepy’ and ‘keepx’, and place the upper-left corner of the resized ncplane. Finally, ‘ylen’ and ‘xlen’ are the dimensions of the ncplane after resizing. ‘ylen’ must be greater than or equal to ‘keepleny’, and ‘xlen’ must be greater than or equal to ‘keeplenx’. It is an error to attempt to resize the standard plane. If either of ‘keepleny’ or ‘keeplenx’ is non-zero, both must be non-zero.
- ncplane_
resize_ ⚠marginalized - resize the plane to its parent’s size, attempting to enforce the margins supplied along with NCPLANE_OPTION_MARGINALIZED.
- ncplane_
resize_ ⚠maximize - resize the plane to the visual region’s size (used for the standard plane).
- ncplane_
resize_ ⚠placewithin - move the plane such that it is entirely within its parent, if possible. no resizing is performed.
- ncplane_
resize_ ⚠realign - realign the plane ‘n’ against its parent, using the alignments specified with NCPLANE_OPTION_HORALIGNED and/or NCPLANE_OPTION_VERALIGNED.
- ncplane_
resize_ simple - Resizes the plane, retaining what data we can (everything, unless we’re shrinking in some dimension). Keep the origin where it is.
- ncplane_
resizecb ⚠ - Returns the ncplane’s current resize callback.
- ncplane_
rotate_ ⚠ccw - ncplane_
rotate_ ⚠cw - Rotate the plane π/2 radians clockwise or counterclockwise. This cannot be performed on arbitrary planes, because glyphs cannot be arbitrarily rotated. The glyphs which can be rotated are limited: line-drawing characters, spaces, half blocks, and full blocks. The plane must have an even number of columns. Use the ncvisual rotation for a more flexible approach.
- ncplane_
rounded_ box - Like
ncplane_boxwith the rounded box-drawing characters. - ncplane_
rounded_ box_ sized - Like
ncplane_box_sizedwith the rounded box-drawing characters. - ncplane_
scrolling_ ⚠p - ncplane_
scrollup ⚠ - Effect |r| scroll events on the plane |n|. Returns an error if |n| is not a scrolling plane, and otherwise returns the number of lines scrolled.
- ncplane_
scrollup_ ⚠child - Scroll |n| up until |child| is no longer hidden beneath it. Returns an error if |child| is not a child of |n|, or |n| is not scrolling, or |child| is fixed. Returns the number of scrolling events otherwise (might be 0). If the child plane is not fixed, it will likely scroll as well.
- ncplane_
set_ ⚠autogrow - By default, planes are created with autogrow disabled. Autogrow can be dynamically controlled with ncplane_set_autogrow(). Returns true if autogrow was previously enabled, or false if it was disabled.
- ncplane_
set_ ⚠base - Set the ncplane’s base nccell. It will be used for purposes of rendering anywhere that the ncplane’s gcluster is 0. Note that the base cell is not affected by ncplane_erase(). ‘egc’ must be an extended grapheme cluster. Returns the number of bytes copied out of ‘gcluster’, or -1 on failure.
- ncplane_
set_ ⚠base_ cell - Set the ncplane’s base nccell to ‘c’. The base cell is used for purposes of rendering anywhere that the ncplane’s gcluster is 0. Note that the base cell is not affected by ncplane_erase(). ‘c’ must not be a secondary cell from a multicolumn EGC.
- ncplane_
set_ bchannel - Sets the background alpha and coloring bits of an
NcPlanefrom anNcChannel_u32, and returns the newNcChannels_u64. - ncplane_
set_ ⚠bg_ alpha - ncplane_
set_ ⚠bg_ default - ncplane_
set_ bg_ not_ default - Marks the background as NOT using the “default color”,
and returns the new
NcChannels_u64. - ncplane_
set_ ⚠bg_ palindex - ncplane_
set_ ⚠bg_ rgb - ncplane_
set_ ⚠bg_ rgb8 - ncplane_
set_ channels - Sets the
NcChannels_u64of anNcPlane. - ncplane_
set_ default - Marks both the foreground and background as using the “default color”,
and returns the new
NcChannels_u64. - ncplane_
set_ fchannel - Sets the background alpha and coloring bits of an
NcPlanefrom anNcChannel_u32, and returns the newNcChannels_u64. - ncplane_
set_ ⚠fg_ alpha - Set the alpha parameters for ncplane ‘n’.
- ncplane_
set_ ⚠fg_ default - Use the default color for the foreground/background.
- ncplane_
set_ fg_ not_ default - Marks the foreground as NOT using the “default color”,
and returns the new
NcChannels_u64. - ncplane_
set_ ⚠fg_ palindex - Set the ncplane’s foreground palette index, set the foreground palette index bit, set it foreground-opaque, and clear the foreground default color bit.
- ncplane_
set_ ⚠fg_ rgb - Same, but with rgb assembled into a channel (i.e. lower 24 bits).
- ncplane_
set_ ⚠fg_ rgb8 - Set the current fore/background color using RGB specifications. If the terminal does not support directly-specified 3x8b cells (24-bit “TrueColor”, indicated by the “RGB” terminfo capability), the provided values will be interpreted in some lossy fashion. None of r, g, or b may exceed 255. “HP-like” terminals require setting foreground and background at the same time using “color pairs”; Notcurses will manage color pairs transparently.
- ncplane_
set_ not_ default - Marks both the foreground and background as NOT using the “default color”,
and returns the new
NcChannels_u64. - ncplane_
set_ ⚠resizecb - Replace the ncplane’s existing resizecb with ‘resizecb’ (which may be NULL). The standard plane’s resizecb may not be changed.
- ncplane_
set_ ⚠scrolling - All planes are created with scrolling disabled. Scrolling can be dynamically controlled with ncplane_set_scrolling(). Returns true if scrolling was previously enabled, or false if it was disabled.
- ncplane_
set_ ⚠styles - Set the specified style bits for the ncplane ‘n’, whether they’re actively supported or not.
- ncplane_
set_ ⚠userptr - Manipulate the opaque user pointer associated with this plane. ncplane_set_userptr() returns the previous userptr after replacing it with ‘opaque’. the others simply return the userptr.
- ncplane_
stain ⚠ - Set the given channels throughout the specified region, keeping content and channels unchanged. The upper left corner is at ‘y’, ‘x’, and -1 may be specified to indicate the cursor’s position in that dimension. The area is specified by ‘ylen’, ‘xlen’, and 0 may be specified to indicate everything remaining to the right and below, respectively. It is an error for any coordinate to be outside the plane. Returns the number of cells set, or -1 on failure.
- ncplane_
styles ⚠ - Get the current styling for the ncplane ‘n’.
- ncplane_
translate ⚠ - provided a coordinate relative to the origin of ‘src’, map it to the same absolute coordinate relative to the origin of ‘dst’. either or both of ‘y’ and ‘x’ may be NULL. if ‘dst’ is NULL, it is taken to be the standard plane.
- ncplane_
translate_ ⚠abs - Fed absolute ‘y’/‘x’ coordinates, determine whether that coordinate is within the ncplane ‘n’. If not, return false. If so, return true. Either way, translate the absolute coordinates relative to ‘n’. If the point is not within ‘n’, these coordinates will not be within the dimensions of the plane.
- ncplane_
userptr ⚠ - ncplane_
valign - Returns the row at which
numrowsrows ought start in order to be aligned according toalignwithin this NcPlane. - ncplane_
vline - Draws vertical lines using the specified
cell, starting at the current cursor position. - ncplane_
vline_ ⚠interp - ncplane_
x ⚠ - ncplane_
y ⚠ - ncplane_
yx ⚠ - Get the origin of plane ‘n’ relative to its bound plane, or pile (if ‘n’ is a root plane). To get absolute coordinates, use ncplane_abs_yx().
- ncprogbar_
create ⚠ - Takes ownership of the ncplane ‘n’, which will be destroyed by ncprogbar_destroy(). The progress bar is initially at 0%.
- ncprogbar_
destroy ⚠ - Destroy the progress bar and its underlying ncplane.
- ncprogbar_
plane ⚠ - Return a reference to the ncprogbar’s underlying ncplane.
- ncprogbar_
progress ⚠ - Get the progress bar’s completion, a double on [0, 1].
- ncprogbar_
set_ ⚠progress - Set the progress bar’s completion, a double 0 <= ‘p’ <= 1.
- ncreader_
clear ⚠ - empty the ncreader of any user input, and home the cursor.
- ncreader_
contents ⚠ - return a heap-allocated copy of the current (UTF-8) contents.
- ncreader_
create ⚠ - ncreaders provide freeform input in a (possibly multiline) region, supporting optional readline keybindings. takes ownership of ‘n’, destroying it on any error (ncreader_destroy() otherwise destroys the ncplane).
- ncreader_
destroy ⚠ - destroy the reader and its bound plane. if ‘contents’ is not NULL, the UTF-8 input will be heap-duplicated and written to ‘contents’.
- ncreader_
move_ ⚠down - ncreader_
move_ ⚠left - Atttempt to move in the specified direction. Returns 0 if a move was successfully executed, -1 otherwise. Scrolling is taken into account.
- ncreader_
move_ ⚠right - ncreader_
move_ ⚠up - ncreader_
offer_ ⚠input - Offer the input to the ncreader. If it’s relevant, this function returns true, and the input ought not be processed further. Almost all inputs are relevant to an ncreader, save synthesized ones.
- ncreader_
plane ⚠ - ncreader_
write_ ⚠egc - Destructively write the provided EGC to the current cursor location. Move the cursor as necessary, scrolling if applicable.
- ncreel_
add ⚠ - Add a new nctablet to the provided ncreel ‘nr’, having the callback object ‘opaque’. Neither, either, or both of ‘after’ and ‘before’ may be specified. If neither is specified, the new tablet can be added anywhere on the reel. If one or the other is specified, the tablet will be added before or after the specified tablet. If both are specified, the tablet will be added to the resulting location, assuming it is valid (after->next == before->prev); if it is not valid, or there is any other error, NULL will be returned.
- ncreel_
create ⚠ - Take over the ncplane ‘nc’ and use it to draw a reel according to ‘popts’. The plane will be destroyed by ncreel_destroy(); this transfers ownership.
- ncreel_
del ⚠ - Delete the tablet specified by t from the ncreel ‘nr’. Returns -1 if the tablet cannot be found.
- ncreel_
destroy ⚠ - Destroy an ncreel allocated with ncreel_create().
- ncreel_
focused ⚠ - Return the focused tablet, if any tablets are present. This is not a copy; be careful to use it only for the duration of a critical section.
- ncreel_
next ⚠ - Change focus to the next tablet, if one exists
- ncreel_
offer_ ⚠input - Offer input ‘ni’ to the ncreel ‘nr’. If it’s relevant, this function returns true, and the input ought not be processed further. If it’s irrelevant to the reel, false is returned. Relevant inputs include:
- ncreel_
plane ⚠ - Returns the ncplane on which this ncreel lives.
- ncreel_
prev ⚠ - Change focus to the previous tablet, if one exists
- ncreel_
redraw ⚠ - Redraw the ncreel ‘nr’ in its entirety. The reel will be cleared, and tablets will be lain out, using the focused tablet as a fulcrum. Tablet drawing callbacks will be invoked for each visible tablet.
- ncreel_
tabletcount ⚠ - Return the number of nctablets in the ncreel ‘nr’.
- ncresizecb_
to_ c - Converts
NcResizeCbtoNcResizeCbUnsafe. - ncresizecb_
to_ rust - Converts
NcResizeCbUnsafetoNcResizeCb. - ncselector_
additem ⚠ - Dynamically add or delete items. It is usually sufficient to supply a static list of items via ncselector_options->items.
- ncselector_
create ⚠ - ncselector_
delitem ⚠ - ncselector_
destroy ⚠ - Destroy the ncselector.
- ncselector_
nextitem ⚠ - ncselector_
offer_ ⚠input - Offer the input to the ncselector. If it’s relevant, this function returns true, and the input ought not be processed further. If it’s irrelevant to the selector, false is returned. Relevant inputs include:
- ncselector_
plane ⚠ - Return a reference to the ncselector’s underlying ncplane.
- ncselector_
previtem ⚠ - Move up or down in the list. A reference to the newly-selected item is returned, or NULL if there are no items in the list.
- ncselector_
selected ⚠ - Return reference to the selected option, or NULL if there are no items.
- ncstrwidth⚠
- Returns the number of columns occupied by the longest valid prefix of a multibyte (UTF-8) string. If an invalid character is encountered, -1 will be returned, and the number of valid bytes and columns will be written into *|validbytes| and *|validwidth| (assuming them non-NULL). If the entire string is valid, *|validbytes| and *|validwidth| reflect the entire string.
- ncsubproc_
createv ⚠ - see exec(2). p-types use $PATH. e-type passes environment vars.
- ncsubproc_
createvp ⚠ - ncsubproc_
createvpe ⚠ - ncsubproc_
destroy ⚠ - ncsubproc_
plane ⚠ - nctab_
cb ⚠ - Returns the tab callback.
- nctab_
move ⚠ - Move ‘t’ after ‘after’ (if not NULL) and before ‘before’ (if not NULL). If both ‘after’ and ‘before’ are NULL, the function returns -1, otherwise it returns 0.
- nctab_
move_ ⚠left - Move ‘t’ to the right by one tab, looping around to become the last tab if needed.
- nctab_
move_ ⚠right - Move ‘t’ to the right by one tab, looping around to become leftmost if needed.
- nctab_
name ⚠ - Returns the tab name. This is not a copy and it should not be stored.
- nctab_
name_ ⚠width - Returns the width (in columns) of the tab’s name.
- nctab_
next ⚠ - Returns the tab to the right of ‘t’. This does not change which tab is selected.
- nctab_
prev ⚠ - Returns the tab to the left of ‘t’. This does not change which tab is selected.
- nctab_
set_ ⚠cb - Set the tab callback function for ‘t’. Returns the previous tab callback.
- nctab_
set_ ⚠name - Change the name of ‘t’. Returns -1 if ‘newname’ is NULL, and 0 otherwise.
- nctab_
set_ ⚠userptr - Set the user pointer of ‘t’. Returns the previous user pointer.
- nctab_
userptr ⚠ - Returns the tab’s user pointer.
- nctabbed_
add ⚠ - Add a new tab to ‘nt’ with the given tab callback, name, and user pointer. If both ‘before’ and ‘after’ are NULL, the tab is inserted after the selected tab. Otherwise, it gets put after ‘after’ (if not NULL) and before ‘before’ (if not NULL). If both ‘after’ and ‘before’ are given, they must be two neighboring tabs (the tab list is circular, so the last tab is immediately before the leftmost tab), otherwise the function returns NULL. If ‘name’ is NULL or a string containing illegal characters, the function returns NULL. On all other failures the function also returns NULL. If it returns NULL, none of the arguments are modified, and the widget state is not altered.
- nctabbed_
channels ⚠ - Write the channels for tab headers, the selected tab header, and the separator to ‘*hdrchan’, ‘*selchan’, and ‘*sepchan’ respectively.
- nctabbed_
content_ ⚠plane - Returns the tab content plane.
- nctabbed_
create ⚠ - Creates a new nctabbed widget, associated with the given ncplane ‘n’, and with additional options given in ‘opts’. When ‘opts’ is NULL, it acts as if it were called with an all-zero opts. The widget takes ownership of ‘n’, and destroys it when the widget is destroyed. Returns the newly created widget. Returns NULL on failure, also destroying ‘n’.
- nctabbed_
del ⚠ - Remove a tab ‘t’ from ‘nt’. Its neighboring tabs become neighbors to each other. If ‘t’ if the selected tab, the tab after ‘t’ becomes selected. Likewise if ‘t’ is the leftmost tab, the tab after ‘t’ becomes leftmost. If ‘t’ is the only tab, there will no more be a selected or leftmost tab, until a new tab is added. Returns -1 if ‘t’ is NULL, and 0 otherwise.
- nctabbed_
destroy ⚠ - Destroy an nctabbed widget. All memory belonging to ‘nt’ is deallocated, including all tabs and their names. The plane associated with ‘nt’ is also destroyed. Calling this with NULL does nothing.
- nctabbed_
ensure_ ⚠selected_ header_ visible - Make sure the tab header of the currently selected tab is at least partially visible. (by rotating tabs until at least one column is displayed) Does nothing if there are no tabs.
- nctabbed_
leftmost ⚠ - Returns the leftmost tab, or NULL if there are no tabs.
- nctabbed_
next ⚠ - Select the tab after the currently selected tab, and return the newly selected tab. Returns NULL if there are no tabs.
- nctabbed_
plane ⚠ - Returns the plane associated to ‘nt’.
- nctabbed_
prev ⚠ - Select the tab before the currently selected tab, and return the newly selected tab. Returns NULL if there are no tabs.
- nctabbed_
redraw ⚠ - Redraw the widget. This calls the tab callback of the currently selected tab to draw tab contents, and draws tab headers. The tab content plane is not modified by this function, apart from resizing the plane is necessary.
- nctabbed_
rotate ⚠ - Rotate the tabs of ‘nt’ right by ‘amt’ tabs, or ‘-amt’ tabs left if ‘amt’ is negative. Tabs are rotated only by changing the leftmost tab; the selected tab stays the same. If there are no tabs, nothing happens.
- nctabbed_
select ⚠ - Change the selected tab to be ‘t’. Returns the previously selected tab.
- nctabbed_
selected ⚠ - Returns the currently selected tab, or NULL if there are no tabs.
- nctabbed_
separator ⚠ - Returns the tab separator. This is not a copy and it should not be stored. This can be NULL, if the separator was set to NULL in ncatbbed_create() or nctabbed_set_separator().
- nctabbed_
separator_ ⚠width - Returns the tab separator width, or zero if there is no separator.
- nctabbed_
set_ ⚠hdrchan - Set the tab headers channel for ‘nt’.
- nctabbed_
set_ ⚠selchan - Set the selected tab header channel for ‘nt’.
- nctabbed_
set_ ⚠separator - Change the tab separator for ‘nt’. Returns -1 if ‘separator’ is not NULL and is not a valid string, and 0 otherwise.
- nctabbed_
set_ ⚠sepchan - Set the tab separator channel for ‘nt’.
- nctabbed_
tabcount ⚠ - Returns the number of tabs in the widget.
- nctablet_
plane ⚠ - Access the ncplane associated with nctablet ‘t’, if one exists.
- nctablet_
userptr ⚠ - Returns a pointer to a user pointer associated with this nctablet.
- nctree_
add ⚠ - Insert |add| into the nctree |n| at |spec|. The path up to the last element must already exist. If an item already exists at the path, it will be moved to make room for |add|.
- nctree_
create ⚠ - |opts| may not be NULL, since it is necessary to define a callback function.
- nctree_
del ⚠ - Delete the item at |spec|, including any subitems.
- nctree_
destroy ⚠ - Destroy the nctree.
- nctree_
focused ⚠ - Return the focused item, if any items are present. This is not a copy; be careful to use it only for the duration of a critical section.
- nctree_
goto ⚠ - Go to the item specified by the array |spec| (a spec is a series of unsigned values, each identifying a subelement in the hierarchy thus far, terminated by UINT_MAX). If the spec is invalid, NULL is returned, and the depth of the first invalid spec is written to *|failspec|. Otherwise, the true depth is written to *|failspec|, and the curry is returned (|failspec| is necessary because the curry could itself be NULL).
- nctree_
next ⚠ - Change focus to the next item.
- nctree_
offer_ ⚠input - Offer input ‘ni’ to the nctree ‘n’. If it’s relevant, this function returns true, and the input ought not be processed further. If it’s irrelevant to the tree, false is returned. Relevant inputs include:
- nctree_
plane ⚠ - Returns the ncplane on which this nctree lives.
- nctree_
prev ⚠ - Change focus to the previous item.
- nctree_
redraw ⚠ - Redraw the nctree ‘n’ in its entirety. The tree will be cleared, and items will be lain out, using the focused item as a fulcrum. Item-drawing callbacks will be invoked for each visible item.
- ncuplot_
add_ ⚠sample - Add to or set the value corresponding to this x. If x is beyond the current x window, the x window is advanced to include x, and values passing beyond the window are lost. The first call will place the initial window. The plot will be redrawn, but notcurses_render() is not called.
- ncuplot_
create ⚠ - Use the provided plane ‘n’ for plotting according to the options ‘opts’. The plot will make free use of the entirety of the plane. For domain autodiscovery, set miny == maxy == 0. ncuplot holds uint64_ts, while ncdplot holds doubles.
- ncuplot_
destroy ⚠ - ncuplot_
plane ⚠ - Return a reference to the ncplot’s underlying ncplane.
- ncuplot_
sample ⚠ - ncuplot_
set_ ⚠sample - ncvisual_
at_ ⚠yx - Get the specified pixel from the specified ncvisual.
- ncvisual_
blit ⚠ - Render the decoded frame according to the provided options (which may be NULL). The plane used for rendering depends on vopts->n and vopts->flags. If NCVISUAL_OPTION_CHILDPLANE is set, vopts->n must not be NULL, and the plane will always be created as a child of vopts->n. If this flag is not set, and vopts->n is NULL, a new plane is created as root of a new pile. If the flag is not set and vopts->n is not NULL, we render to vopts->n. A subregion of the visual can be rendered using ‘begx’, ‘begy’, ‘lenx’, and ‘leny’. Negative values for any of these are an error. It is an error to specify any region beyond the boundaries of the frame. Returns the (possibly newly-created) plane to which we drew. Pixels may not be blitted to the standard plane.
- ncvisual_
decode ⚠ - extract the next frame from an ncvisual. returns 1 on end of file, 0 on success, and -1 on failure.
- ncvisual_
decode_ ⚠loop - decode the next frame ala ncvisual_decode(), but if we have reached the end, rewind to the first frame of the ncvisual. a subsequent ‘ncvisual_blit()’ will render the first frame, as if the ncvisual had been closed and reopened. the return values remain the same as those of ncvisual_decode().
- ncvisual_
destroy ⚠ - Destroy an ncvisual. Rendered elements will not be disrupted, but the visual can be neither decoded nor rendered any further.
- ncvisual_
from_ ⚠bgra - ncvisual_from_rgba(), but ‘bgra’ is arranged as BGRA. note that this is a byte-oriented layout, despite being bunched in 32-bit pixels; the lowest memory address ought be B, and A is reached by adding 3 to that address. It is an error if ‘rows’, ‘cols’, or ‘rowstride’ are not positive, if ‘rowstride’ is not a multiple of 4, or if ‘rowstride’ is less than ‘cols’ * 4.
- ncvisual_
from_ ⚠file - Open a visual at ‘file’, extract a codec and parameters, decode the first image to memory.
- ncvisual_
from_ ⚠palidx - ncvisual_from_rgba(), but ‘data’ is ‘pstride’-byte palette-indexed pixels, arranged in ‘rows’ lines of ‘rowstride’ bytes each, composed of ‘cols’ pixels. ‘palette’ is an array of at least ‘palsize’ ncchannels. It is an error if ‘rows’, ‘cols’, ‘rowstride’, or ‘pstride’ are not positive, if ‘rowstride’ is not a multiple of ‘pstride’, or if ‘rowstride’ is less than ‘cols’ * ‘pstride’.
- ncvisual_
from_ ⚠plane - Promote an ncplane ‘n’ to an ncvisual. The plane may contain only spaces, half blocks, and full blocks. The latter will be checked, and any other glyph will result in a NULL being returned. This function exists so that planes can be subjected to ncvisual transformations. If possible, it’s better to create the ncvisual from memory using ncvisual_from_rgba(). Lengths of 0 are interpreted to mean “all available remaining area”.
- ncvisual_
from_ ⚠rgb_ loose - ncvisual_from_rgba(), but the pixels are 4-byte RGBx. A is filled in throughout using ‘alpha’. It is an error if ‘rows’, ‘cols’, or ‘rowstride’ are not positive, if ‘rowstride’ is not a multiple of 4, or if ‘rowstride’ is less than ‘cols’ * 4.
- ncvisual_
from_ ⚠rgb_ packed - ncvisual_from_rgba(), but the pixels are 3-byte RGB. A is filled in throughout using ‘alpha’. It is an error if ‘rows’, ‘rowstride’, or ‘cols’ is not positive, if ‘rowstride’ is not a multiple of 3, or if ‘rowstride’ is less than ‘cols’ * 3.
- ncvisual_
from_ ⚠rgba - Prepare an ncvisual, and its underlying plane, based off RGBA content in memory at ‘rgba’. ‘rgba’ is laid out as ‘rows’ lines, each of which is ‘rowstride’ bytes in length. Each line has ‘cols’ 32-bit 8bpc RGBA pixels followed by possible padding (there will be ‘rowstride’ - ‘cols’ * 4 bytes of padding). The total size of ‘rgba’ is thus (‘rows’ * ‘rowstride’) bytes, of which (‘rows’ * ‘cols’ * 4) bytes are actual non-padding data. It is an error if any argument is not positive, if ‘rowstride’ is not a multiple of 4, or if ‘rowstride’ is less than ‘cols’ * 4.
- ncvisual_
from_ ⚠sixel - Construct an ncvisual from a nul-terminated Sixel control sequence.
- ncvisual_
geom ⚠ - all-purpose ncvisual geometry solver. one or both of ‘nc’ and ‘n’ must be non-NULL. if ‘nc’ is NULL, only pixy/pixx will be filled in, with the true pixel geometry of ‘n’. if ‘n’ is NULL, only cdimy/cdimx, blitter, scaley/scalex, and maxpixely/maxpixelx are filled in. cdimy/cdimx and maxpixely/maxpixelx are only ever filled in if we know them.
- ncvisual_
media_ ⚠defblitter - Get the default media (not plot) blitter for this environment when using the specified scaling method. Currently, this means:
- ncvisual_
polyfill_ ⚠yx - Polyfill at the specified location within the ncvisual ‘n’, using ‘rgba’.
- ncvisual_
resize ⚠ - Scale the visual to ‘rows’ X ‘columns’ pixels, using the best scheme available. This is a lossy transformation, unless the size is unchanged.
- ncvisual_
resize_ ⚠noninterpolative - Scale the visual to ‘rows’ X ‘columns’ pixels, using non-interpolative (naive) scaling. No new colors will be introduced as a result.
- ncvisual_
rotate ⚠ - Rotate the visual ‘rads’ radians. Only M_PI/2 and -M_PI/2 are supported at the moment, but this might change in the future.
- ncvisual_
set_ ⚠yx - Set the specified pixel in the specified ncvisual.
- ncvisual_
simple_ ⚠streamer - Shut up and display my frames! Provide as an argument to ncvisual_stream(). If you’d like subtitles to be decoded, provide an ncplane as the curry. If the curry is NULL, subtitles will not be displayed.
- ncvisual_
stream ⚠ - Stream the entirety of the media, according to its own timing. Blocking, obviously. streamer may be NULL; it is otherwise called for each frame, and its return value handled as outlined for streamcb. If streamer() returns non-zero, the stream is aborted, and that value is returned. By convention, return a positive number to indicate intentional abort from within streamer(). ‘timescale’ allows the frame duration time to be scaled. For a visual naturally running at 30FPS, a ‘timescale’ of 0.1 will result in 300FPS, and a ‘timescale’ of 10 will result in 3FPS. It is an error to supply ‘timescale’ less than or equal to 0.
- ncvisual_
subtitle_ ⚠plane - If a subtitle ought be displayed at this time, return a new plane (bound to ‘parent’ containing the subtitle, which might be text or graphics (depending on the input format).
- notcurses_
accountname ⚠ - Returns a heap-allocated copy of the user name under which we are running.
- notcurses_
align - Returns the offset into
avail_uat whichuought be output given the requirements ofalign. - notcurses_
at_ ⚠yx - Retrieve the contents of the specified cell as last rendered. Returns the EGC or NULL on error. This EGC must be free()d by the caller. The stylemask and channels are written to ‘stylemask’ and ‘channels’, respectively.
- notcurses_
bottom - Returns the bottommost
NcPlaneon the standard pile, of which there is always at least one. - notcurses_
canbraille - Returns true if we can reliably use Unicode Braille.
- notcurses_
canchangecolor - Returns true if it’s possible to set the “hardware” palette.
- notcurses_
canfade - Returns true if fading is possible.
- notcurses_
canhalfblock - Returns true if we can reliably use Unicode half blocks.
- notcurses_
canopen_ ⚠images - Can we load images? This requires being built against FFmpeg/OIIO.
- notcurses_
canopen_ ⚠videos - Can we load videos? This requires being built against FFmpeg.
- notcurses_
canpixel - Returns true if we can blit pixel-accurate bitmaps.
- notcurses_
canquadrant - Returns true if we can reliably use Unicode quadrant blocks.
- notcurses_
cansextant - Returns true if we can reliably use Unicode 13 sextants.
- notcurses_
cantruecolor - Returns true if it’s possible to directly specify RGB values per cell, or false if it’s only possible to use palettes.
- notcurses_
canutf8 - Returns true if the encoding is UTF-8.
- notcurses_
capabilities ⚠ - notcurses_
check_ ⚠pixel_ support - Can we blit pixel-accurate bitmaps?
- notcurses_
core_ ⚠init - The same as notcurses_init(), but without any multimedia functionality, allowing for a svelter binary. Link with notcurses-core if this is used.
- notcurses_
cursor_ ⚠disable - Disable the hardware cursor. It is an error to call this while the cursor is already disabled.
- notcurses_
cursor_ ⚠enable - Enable or disable the terminal’s cursor, if supported, placing it at ‘y’, ‘x’. Immediate effect (no need for a call to notcurses_render()). It is an error if ‘y’, ‘x’ lies outside the standard plane. Can be called while already visible to move the cursor.
- notcurses_
cursor_ ⚠yx - Get the current location of the terminal’s cursor, whether visible or not.
- notcurses_
debug ⚠ - Dump selected Notcurses state to the supplied ‘debugfp’. Output is freeform, newline-delimited, and subject to change. It includes geometry of all planes, from all piles. No line has more than 80 columns’ worth of output.
- notcurses_
default_ ⚠background - Get the default background color, if it is known. Returns -1 on error (unknown background). On success, returns 0, writing the RGB value to ‘bg’ (if non-NULL) and setting ‘bgtrans’ high iff the background color is treated as transparent.
- notcurses_
default_ ⚠foreground - Get the default foreground color, if it is known. Returns -1 on error (unknown foreground). On success, returns 0, writing the RGB value to ‘fg’ (if non-NULL)
- notcurses_
detected_ ⚠terminal - Returns the name (and sometimes version) of the terminal, as Notcurses has been best able to determine.
- notcurses_
drop_ ⚠planes - Destroy all ncplanes other than the stdplane.
- notcurses_
enter_ ⚠alternate_ screen - Shift to the alternate screen, if available. If already using the alternate screen, this returns 0 immediately. If the alternate screen is not available, this returns -1 immediately. Entering the alternate screen turns off scrolling for the standard plane.
- notcurses_
get ⚠ - Read a UTF-32-encoded Unicode codepoint from input. This might only be part of a larger EGC. Provide a NULL ‘ts’ to block at length, and otherwise a timespec specifying an absolute deadline calculated using CLOCK_MONOTONIC. Returns a single Unicode code point, or a synthesized special key constant, or (uint32_t)-1 on error. Returns 0 on a timeout. If an event is processed, the return value is the ‘id’ field from that event. ‘ni’ may be NULL.
- notcurses_
get_ blocking - Reads input blocking until an event is processed or a signal is received (including resize events)
- notcurses_
get_ nblock - Reads input without blocking.
- notcurses_
getvec ⚠ - Acquire up to ‘vcount’ ncinputs at the vector ‘ni’. The number read will be returned, or -1 on error without any reads, 0 on timeout.
- notcurses_
hostname ⚠ - Returns a heap-allocated copy of the local host name.
- notcurses_
init ⚠ - Initialize a Notcurses context on the connected terminal at ‘fp’. ‘fp’ must be a tty. You’ll usually want stdout. NULL can be supplied for ‘fp’, in which case /dev/tty will be opened. Returns NULL on error, including any failure initializing terminfo.
- notcurses_
inputready_ ⚠fd - Get a file descriptor suitable for input event poll()ing. When this descriptor becomes available, you can call notcurses_get_nblock(), and input ought be ready. This file descriptor is not necessarily the file descriptor associated with stdin (but it might be!).
- notcurses_
leave_ ⚠alternate_ screen - Exit the alternate screen. Immediately returns 0 if not currently using the alternate screen.
- notcurses_
lex_ ⚠blitter - Lex a blitter.
- notcurses_
lex_ ⚠margins - Lex a margin argument according to the standard Notcurses definition. There can be either a single number, which will define all margins equally, or there can be four numbers separated by commas.
- notcurses_
lex_ ⚠scalemode - Lex a scaling mode (one of “none”, “stretch”, “scale”, “hires”, “scalehi”, or “inflate”).
- notcurses_
linesigs_ ⚠disable - Disable signals originating from the terminal’s line discipline, i.e. SIGINT (^C), SIGQUIT (^), and SIGTSTP (^Z). They are enabled by default.
- notcurses_
linesigs_ ⚠enable - Restore signals originating from the terminal’s line discipline, i.e. SIGINT (^C), SIGQUIT (^), and SIGTSTP (^Z), if disabled.
- notcurses_
mice_ disable - Disables all mice tracking.
- notcurses_
mice_ ⚠enable - Enable mice events according to ‘eventmask’; an eventmask of 0 will disable all mice tracking. On failure, -1 is returned. On success, 0 is returned, and mouse events will be published to notcurses_get().
- notcurses_
osversion ⚠ - Returns a heap-allocated copy of human-readable OS name and version.
- notcurses_
palette_ ⚠size - Returns the number of simultaneous colors claimed to be supported, or 1 if there is no color support. Note that several terminal emulators advertise more colors than they actually support, downsampling internally.
- notcurses_
refresh ⚠ - Refresh the physical screen to match what was last rendered (i.e., without reflecting any changes since the last call to notcurses_render()). This is primarily useful if the screen is externally corrupted, or if an NCKEY_RESIZE event has been read and you’re not yet ready to render. The current screen geometry is returned in ‘y’ and ‘x’, if they are not NULL.
- notcurses_
render - Renders and rasterizes the standard pile in one shot. Blocking call.
- notcurses_
stats ⚠ - Acquire an atomic snapshot of the Notcurses object’s stats.
- notcurses_
stats_ ⚠alloc - Allocate an ncstats object. Use this rather than allocating your own, since future versions of Notcurses might enlarge this structure.
- notcurses_
stats_ ⚠reset - Reset all cumulative stats (immediate ones, such as fbbytes, are not reset), first copying them into |*stats| (if |stats| is not NULL).
- notcurses_
stddim_ yx - notcurses_stdplane, plus free bonus dimensions written to non-NULL y/x!
- notcurses_
stddim_ yx_ const - notcurses_stdplane_const, plus free bonus dimensions written to non-NULL y/x!
- notcurses_
stdplane ⚠ - Get a reference to the standard plane (one matching our current idea of the terminal size) for this terminal. The standard plane always exists, and its origin is always at the uppermost, leftmost cell of the terminal.
- notcurses_
stdplane_ ⚠const - notcurses_
stop ⚠ - Destroy a Notcurses context. A NULL ‘nc’ is a no-op.
- notcurses_
str_ ⚠blitter - Get the name of a blitter.
- notcurses_
str_ ⚠scalemode - Get the name of a scaling mode.
- notcurses_
supported_ ⚠styles - Returns a 16-bit bitmask of supported curses-style attributes (NCSTYLE_UNDERLINE, NCSTYLE_BOLD, etc.) The attribute is only indicated as supported if the terminal can support it together with color. For more information, see the “ncv” capability in terminfo(5).
- notcurses_
term_ dim_ yx - Returns our current idea of the terminal dimensions in rows and cols.
- notcurses_
top - Returns the topmost
NcPlaneon the standard pile, of which there is always at least one. - notcurses_
version ⚠ - Get a human-readable string describing the running Notcurses version.
- notcurses_
version_ ⚠components - Cannot be inline, as we want to get the versions of the actual Notcurses library we loaded, not what we compile against.
Type Aliases§
- NcAlign_
u32 - Alignment within an
NcPlaneor terminal. - NcAlpha_
u32 - 2 bits of alpha (surrounded by context dependent bits)
part of an
NcChannel. - NcBlitter_
u32 - The blitter mode to use for rasterizing an
NcVisual. - NcBox
Mask_ u32 - Controls the drawing of borders, gradients and corners.
- NcChannel_
u32 - 32 bits of context-dependent info containing
NcRgb_u32 - NcChannels_
u64 - 64 bits containing a foreground and background
NcChannel_u32. - NcDirect
Flag_ u64 - A bitmask of
NcDirectflags. - NcFlag_
u64 - A bitmask of
Ncflags. - NcInput
Type_ u32 - The type of the
NcInputevent. - NcLog
Level_ i32 - Log level for
NcOptions. - NcMice
Events_ u32 - A bitmask for mice input events.
- NcPixel
Impl_ u32 - Pixel blitting implementations, informative only.
- NcPixel_
u32 - An ABGR pixel.
- NcPlane
Flag_ u64 - A bitmask of flags for
NcPlaneOptions. - NcResize
CbUnsafe - The unsafe version of
NcResizeCbexpected by the notcurses C API. - NcResult_
i32 - The int value used to return errors.
- NcRgb_
u32 - 24 bits broken into 3x RGB components.
- NcRgba_
u32 - 32 bits broken into 3x RGB components plus one alpha component.
- NcScale_
u32 - Indicates how to scale an
NcVisualduring rendering. - NcStyle_
u16 - Styling attribute flags.
- NcVGeom
- Describes all geometries of an
NcVisual. - NcVisual
Flag_ u64