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

FreeBSD Manual Pages

  
 
  

home | help
notcurses_lines(3)					    notcurses_lines(3)

NAME
       notcurses_lines - operations on lines and boxes

SYNOPSIS
       #include	<notcurses/notcurses.h>

       int  ncplane_hline_interp(struct	 ncplane* n, const nccell* c, unsigned
       len, uint64_t c1, uint64_t c2);

       static inline int ncplane_hline(struct ncplane* n, const	nccell*	c, un-
       signed len);

       int ncplane_vline_interp(struct ncplane*	n, const nccell*  c,  unsigned
       len, uint64_t c1, uint64_t c2);

       static inline int ncplane_vline(struct ncplane* n, const	nccell*	c, un-
       signed len);

	      #define NCBOXMASK_TOP    0x0001
	      #define NCBOXMASK_RIGHT  0x0002
	      #define NCBOXMASK_BOTTOM 0x0004
	      #define NCBOXMASK_LEFT   0x0008
	      #define NCBOXGRAD_TOP    0x0010
	      #define NCBOXGRAD_RIGHT  0x0020
	      #define NCBOXGRAD_BOTTOM 0x0040
	      #define NCBOXGRAD_LEFT   0x0080
	      #define NCBOXCORNER_MASK 0x0300
	      #define NCBOXCORNER_SHIFT	8u

       int  ncplane_box(struct ncplane*	n, const nccell* ul, const nccell* ur,
       const nccell* ll, const nccell* lr, const nccell* hline,	const  nccell*
       vline, int ystop, int xstop, unsigned ctlword);

       static  inline  int  ncplane_box_sized(struct ncplane* n, const nccell*
       ul, const nccell* ur, const nccell* ll, const nccell* lr, const nccell*
       hline, const nccell* vline, int ylen, int xlen, unsigned	ctlword);

       static inline int ncplane_perimeter(struct ncplane*  n,	const  nccell*
       ul, const nccell* ur, const nccell* ll, const nccell* lr, const nccell*
       hline, const nccell* vline, unsigned ctlword)

       static  inline int nccells_load_box(struct ncplane* n, uint16_t styles,
       uint64_t	channels, nccell* ul, nccell* ur, nccell* ll, nccell* lr,  nc-
       cell* hl, nccell* vl, const char* gclusters);

       static  inline  int  nccells_rounded_box(struct	ncplane*  n,  uint16_t
       styles, uint64_t	channels, nccell* ul, nccell* ur, nccell* ll,  nccell*
       lr, nccell* hl, nccell* vl);

       static  inline  int  ncplane_rounded_box(struct	ncplane*  n,  uint16_t
       styles, uint64_t	channels, int ystop, int xstop,	unsigned ctlword);

       static inline int ncplane_rounded_box_sized(struct ncplane* n, uint16_t
       styles, uint64_t	channels, int ylen, int	xlen, unsigned ctlword);

       static  inline  int  nccells_double_box(struct  ncplane*	 n,   uint16_t
       styles,	uint64_t channels, nccell* ul, nccell* ur, nccell* ll, nccell*
       lr, nccell* hl, nccell* vl);

       static  inline  int  ncplane_double_box(struct  ncplane*	 n,   uint16_t
       styles, uint64_t	channels, int ystop, int xstop,	unsigned ctlword);

       static  inline int ncplane_double_box_sized(struct ncplane* n, uint16_t
       styles, uint64_t	channels, int ylen, int	xlen, unsigned ctlword);

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

       int  ncplane_gradient(struct  ncplane*  n, int y, int x,	unsigned ylen,
       unsigned	xlen,  const  char*  egc,  uint16_t  stylemask,	 uint64_t  ul,
       uint64_t	ur, uint64_t ll, uint64_t lr);

       int  ncplane_highgradient2x1(struct  ncplane* n,	int y, int x, unsigned
       ylen, unsigned xlen, uint32_t ul, uint32_t ur,  uint32_t	 ll,  uint32_t
       lr);

       int  ncplane_format(struct ncplane* n, int y, int x, unsigned ylen, un-
       signed xlen, uint16_t stylemask);

       int ncplane_stain(struct	ncplane* n, int	y, int x, unsigned  ylen,  un-
       signed xlen, uint64_t ul, uint64_t ur, uint64_t ll, uint64_t lr);

DESCRIPTION
       ncplane_polyfill_yx  starts at the specified y and x (provide -1	to use
       the cursor's position in	the relevant dimension).  The  cell  at	 these
       coordinates  is	replaced  with c.  All connected cells having the same
       content as this original	cell are replaced with	c,  recursively.   Two
       cells are connected if they are vertical	or horizontal neighbors	of one
       another.

       ncplane_gradient	 replaces  all	glyphs in the specified	area with egc,
       and colors them with the	specified gradient.  All  content  within  the
       specified area is destroyed.

       ncplane_gradient2x1  draws  a high-definition gradient in the specified
       area.  It will return an	error if UTF8 is not being used.  The gradient
       is drawn	using the UPPER	HALF BLOCK glyph, with two vertical steps  and
       one horizontal step in each cell.  Since	cells are often	about twice as
       tall  as	they are wide, this tends to result in very even color differ-
       ences.  All content within the specified	area is	destroyed.

       ncplane_format sets the attributes of every cell	in the	region	having
       its  upper-left corner at y and x (provide -1 to	use the	cursor's posi-
       tion in the relevant dimension),	and its	area defined by	ylen and  xlen
       (provide	 0  to	use all	remaining area to the right and	below, respec-
       tively).	 Channels and glyphs will be unaffected.

       ncplane_stain works the same way, but sets channels.   Standard	linear
       interpolation  is applied between the provided corner channels.	Glyphs
       and their attributes will be unaffected.

       Box- and	line-drawing is	unaffected by a	plane's	scrolling status.

RETURN VALUES
       ncplane_format, ncplane_stain,  ncplane_gradient,  ncplane_gradient2x1,
       and  ncplane_polyfill_yx	 return	 -1 if any coordinates are outside the
       plane, and otherwise the	number of cells	affected.

       ncplane_hline_interp,  ncplane_hline,  ncplane_vline_interp,  and   nc-
       plane_vline  all	return the number of glyphs drawn on success, or -1 on
       failure.	 Passing a length of 0 is an error.

SEE ALSO
       notcurses(3), notcurses_cell(3),	notcurses_plane(3)

AUTHORS
       nick black <nickblack@linux.com>

				    v3.0.16		    notcurses_lines(3)

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

home | help