Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
notcurses_output(3)					   notcurses_output(3)

NAME
       notcurses_output	- output to ncplanes

SYNOPSIS
       #include	<notcurses/notcurses.h>

       static inline int ncplane_putc(struct ncplane* n, const nccell* c);

       int ncplane_putc_yx(struct ncplane* n, int y, int x, const nccell* c);

       static inline int ncplane_putchar(struct	ncplane* n, char c);

       static  inline  int ncplane_putchar_yx(struct ncplane* n, int y,	int x,
       char c);

       int ncplane_putchar_stained(struct ncplane* n, char c);

       static inline int ncplane_putwc(struct ncplane* n, wchar_t w);

       int ncplane_putwc_yx(struct ncplane* n, int y, int x, wchar_t w);

       static inline int ncplane_putwc_stained(struct ncplane* n, wchar_t w);

       static inline int ncplane_putegc(struct ncplane*	n, const char* gclust,
       int* sbytes);

       int ncplane_putegc_yx(struct ncplane* n,	int  y,	 int  x,  const	 char*
       gclust, int* sbytes);

       int  ncplane_putegc_stained(struct ncplane* n, const char* gclust, int*
       sbytes);

       static inline int ncplane_putwegc(struct	 ncplane*  n,  const  wchar_t*
       gclust, int* sbytes);

       static  inline  int ncplane_putwegc_yx(struct ncplane* n, int y,	int x,
       const wchar_t* gclust, int* sbytes);

       int ncplane_putwegc_stained(struct ncplane* n, const  wchar_t*  gclust,
       int* sbytes);

       int  ncplane_putstr_yx(struct  ncplane*	n,  int	 y, int	x, const char*
       gclustarr);

       static inline int ncplane_putstr(struct ncplane*	n, const char*	gclus-
       tarr);

       int  ncplane_putstr_aligned(struct  ncplane* n, int y, ncalign_e	align,
       const char* s);

       int ncplane_putstr_stained(struct ncplane* n, const char* s);

       static inline int ncplane_putwstr(struct	 ncplane*  n,  const  wchar_t*
       gclustarr);

       int  ncplane_putwstr_yx(struct ncplane* n, int y, int x,	const wchar_t*
       gclustarr);

       static inline int ncplane_putwstr_aligned(struct	 ncplane*  n,  int  y,
       ncalign_e align,	const wchar_t* gclustarr);

       int  ncplane_putwstr_stained(struct  ncplane*  n, const wchar_t*	gclus-
       tarr);

       static inline int ncplane_putnstr(struct	ncplane* n,  size_t  s,	 const
       char* gclustarr);

       int ncplane_putnstr_yx(struct ncplane* n, int y,	int x, size_t s, const
       char* gclusters);

       int  ncplane_putnstr_aligned(struct ncplane* n, int y, ncalign_e	align,
       size_t s, const char* s);

       int ncplane_vprintf_aligned(struct ncplane* n, int y, ncalign_e	align,
       const char* format, va_list ap);

       int  ncplane_vprintf_yx(struct  ncplane*	 n,  int y, int	x, const char*
       format, va_list ap);

       static inline int ncplane_vprintf(struct	ncplane* n, const  char*  for-
       mat, va_list ap);

       static inline int ncplane_printf(struct ncplane*	n, const char* format,
       ...);

       static  inline  int  ncplane_printf_yx(struct ncplane* n, int y,	int x,
       const char* format, ...);

       static inline int  ncplane_printf_aligned(struct	 ncplane*  n,  int  y,
       ncalign_e align,	const char* format, ...);

       int ncplane_cursor_move_yx(struct ncplane* n, int y, int	x);

       int  ncplane_puttext(struct  ncplane*  n, int y,	ncalign_e align, const
       char* text, size_t* bytes);

DESCRIPTION
       These functions write EGCs (Extended Grapheme Clusters) to  the	speci-
       fied struct ncplanes.  The following inputs are supported:

        ncplane_putc(): writes	a single nccell	(see notcurses_cell(3))

        ncplane_putchar(): writes a single 7-bit ASCII	character

        ncplane_putwc(): writes a single wchar_t (following UTF-8 conversion)

        ncplane_putwegc(): writes a single EGC	from an	array of wchar_t

        ncplane_putegc(): writes a single EGC from an array of	UTF-8

        ncplane_putstr(): writes a set	of EGCs	from an	array of UTF-8

        ncplane_putwstr(): writes a set of EGCs from an array of wchar_t

        ncplane_vprintf(): formatted output using va_list

        ncplane_printf(): formatted output using variadic arguments

        ncplane_puttext(): multi-line,	line-broken, aligned text

       All  of	these use the ncplane's	active styling,	save notcurses_putc(),
       which uses the nccell's styling.	 Functions accepting a single EGC  ex-
       pect  a series of wchar_t terminated by L'\0' or	a series of UTF-8 char
       terminated by '\0'.  The	EGC must be well-formed, and must not  contain
       any  cluster breaks.  For more information, consult Unicode(R) Standard
       Annex #29 (https://unicode.org/reports/tr29/).  Functions  accepting  a
       set  of	EGCs  must  consist of a series	of well-formed EGCs, broken by
       cluster breaks, terminated by the appropriate NUL terminator.

       Control characters are rejected,	aside from two exceptions: a  horizon-
       tal tab (', 0x09), and a	newline	('', 0x0a) when	the output plane is in
       scrolling  mode.	 A newline outside of scrolling	mode will be rejected.
       A tab will advance to the next tab stop,	filling	the space between with
       spaces.	Tab stops are separated	by eight columns, and the first	 char-
       acter of	each line is a tab stop.

       These functions output to the ncplane's current cursor location.	 Aside
       from ncplane_puttext(), they do not move	to the next line upon reaching
       the right extreme of the	containing plane.  If the entirety of the con-
       tent cannot be output, they will	output as much as possible.

       Each of these base functions has	two additional forms:

        ncplane_putc_aligned(), etc.: accepts a row and an alignment type

        ncplane_putc_yx(), etc.: accepts a row	and column

       If  a  positional  parameter is -1, no movement will be made along that
       axis.  Passing -1, -1 to	e.g.  ncplane_putc_yx()	is equivalent to call-
       ing the base form.  These functions are implemented by moving the  cur-
       sor,  and then performing the output.  The two steps are	atomic on suc-
       cess (it	is not possible	for another caller to move the cursor  between
       when  it	 is  positioned, and when output begins), and thus these func-
       tions  ought  generally	be  preferred  to  an  explicit	  ncplane_cur-
       sor_move_yx().

       Upon successful return, the cursor will follow the last cell output.

RETURN VALUES
       ncplane_cursor_move_yx()	returns	-1 on error (invalid coordinate), or 0
       on success.

       For output functions, a negative	return indicates an error with the in-
       puts.   Otherwise, the number of	screen columns output is returned.  It
       is entirely possible to get a short return, if there  was  insufficient
       room to output all EGCs.

SEE ALSO
       fprintf(3)    notcurses(3),    notcurses_cell(3),   notcurses_plane(3),
       stdarg(3), ascii(7), unicode(7),	utf-8(7)

AUTHORS
       nick black <nickblack@linux.com>.

				    v3.0.8		   notcurses_output(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=notcurses_output&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help