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

FreeBSD Manual Pages

  
 
  

home | help
curs_border(3X)			 Library calls		       curs_border(3X)

NAME
       border,	wborder, box, hline, whline, vline, wvline, mvhline, mvwhline,
       mvvline,	mvwvline - draw	borders	and lines in a curses window of	 char-
       acters

SYNOPSIS
       #include	<curses.h>

       int border(chtype ls, chtype rs,	chtype ts, chtype bs,
	     chtype tl,	chtype tr, chtype bl, chtype br);
       int wborder(WINDOW *win,	chtype ls, chtype rs,
	     chtype ts,	chtype bs, chtype tl, chtype tr,
	     chtype bl,	chtype br);

       int box(WINDOW *win, chtype verch, chtype horch);

       int hline(chtype	ch, int	n);
       int whline(WINDOW *win, chtype ch, int n);
       int mvhline(int y, int x, chtype	ch, int	n);
       int mvwhline(WINDOW *win, int y,	int x, chtype ch, int n);

       int vline(chtype	ch, int	n);
       int wvline(WINDOW *win, chtype ch, int n);
       int mvvline(int y, int x, chtype	ch, int	n);
       int mvwvline(WINDOW *win, int y,	int x, chtype ch, int n);

DESCRIPTION
       wborder	and  border draw a box at the edges of the specified window or
       stdscr, respectively.  Each chtype argument corresponds to a  geometric
       component of the	border as follows:
	      ls - left	side,
	      rs - right side,
	      ts - top side,
	      bs - bottom side,
	      tl - top left-hand corner,
	      tr - top right-hand corner,
	      bl - bottom left-hand corner, and
	      br - bottom right-hand corner.

       If  any chtype argument is 0, then curses uses forms-drawing characters
       (see addch(3X)) in the following	correspondence:
	      ACS_VLINE,
	      ACS_VLINE,
	      ACS_HLINE,
	      ACS_HLINE,
	      ACS_ULCORNER,
	      ACS_URCORNER,
	      ACS_LLCORNER, and
	      ACS_LRCORNER.

       box(win,	verch, horch) is shorthand  for	 "wborder(win,	verch,	verch,
       horch, horch, 0,	0, 0, 0)".

       whline  draws  a	horizontal line	of ch from left	to right, and wvline a
       vertical	one from top to	bottom,	stopping once n	characters  have  been
       drawn or	upon reaching the boundary of win.  These functions do not up-
       date  the  cursor  position  (beyond  any motion	directed by their "mv"
       variants).  ncurses(3X) describes the variants of these functions.

RETURN VALUE
       These functions return OK on success and	ERR on failure.

       In ncurses,

          these functions fail	if the screen is not initialized; and

          functions taking a WINDOW pointer argument fail if win  is  a  null
	   pointer.

       Functions  prefixed with	"mv" first perform cursor movement and fail if
       the position (y,	x) is outside the window boundaries.

NOTES
       Unusually, there	is no wbox function; box behaves as one	 would	expect
       wbox to,	accepting a WINDOW pointer argument.

       border, box, hline, mvhline, mvwhline, vline, mvvline, and mvwvline may
       be implemented as macros.

       Borders drawn by	these functions	are interior borders.

PORTABILITY
       These  functions	 are described in X/Open Curses	Issue 4.  It specifies
       no error	conditions for them.

       SVr4 documentation says that these functions return OK "or a  non-nega-
       tive  integer  if immedok() is set", referring to the return value from
       wrefresh, which in SVr4 returns a count of characters  written  to  the
       window if its immedok property is set; in ncurses, it does not.

       BSD curses drew boxes with horch	in every character cell	of the top and
       bottom  lines  of  the window, whereas SVr3.1 and later curses, because
       its box wrapped wborder,	used the default corner	characters.

HISTORY
       4BSD (1980) introduced box, defining it as a function.

       SVr3.1 (1987) added whline and wvline and their variants,  as  well  as
       border and wborder, redefining box as a macro wrapping the latter.

SEE ALSO
       curses(3X), curs_outopts(3X)

ncurses	6.6			  2025-10-20		       curs_border(3X)

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

home | help