xref: /freebsd/contrib/ncurses/man/curs_border_set.3x (revision 95eb4b873b6a8b527c5bd78d7191975dfca38998)
***************************************************************************
Copyright 2019-2023,2024 Thomas E. Dickey *
Copyright 2002-2011,2012 Free Software Foundation, Inc. *
*
Permission is hereby granted, free of charge, to any person obtaining a *
copy of this software and associated documentation files (the *
"Software"), to deal in the Software without restriction, including *
without limitation the rights to use, copy, modify, merge, publish, *
distribute, distribute with modifications, sublicense, and/or sell *
copies of the Software, and to permit persons to whom the Software is *
furnished to do so, subject to the following conditions: *
*
The above copyright notice and this permission notice shall be included *
in all copies or substantial portions of the Software. *
*
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
*
Except as contained in this notice, the name(s) of the above copyright *
holders shall not be used in advertising or otherwise to promote the *
sale, use or other dealings in this Software without prior written *
authorization. *
***************************************************************************

$Id: curs_border_set.3x,v 1.36 2024/04/20 21:20:07 tom Exp $
curs_border_set 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.\} .\}
NAME
\%border_set, \%wborder_set, \%box_set, \%hline_set, \%whline_set, \%mvhline_set, \%mvwhline_set, \%vline_set, \%wvline_set, \%mvvline_set, \%mvwvline_set - draw borders and lines in a curses window of wide characters
SYNOPSIS
#include <curses.h>

int border_set( const cchar_t *ls, const cchar_t *rs, const cchar_t *ts, const cchar_t *bs, const cchar_t *tl, const cchar_t *tr, const cchar_t *bl, const cchar_t *br);

int wborder_set( WINDOW *win, const cchar_t *ls, const cchar_t *rs, const cchar_t *ts, const cchar_t *bs, const cchar_t *tl, const cchar_t *tr, const cchar_t *bl, const cchar_t *br); int box_set( WINDOW *win, const cchar_t *verch, const cchar_t *horch); int hline_set( const cchar_t *wch, int n); int whline_set( WINDOW *win, const cchar_t *wch, int n); int mvhline_set( int y, int x, const cchar_t *wch, int n); int mvwhline_set( WINDOW *win, int y, int x, const cchar_t *wch, int n); int vline_set( const cchar_t *wch, int n); int wvline_set( WINDOW *win, const cchar_t *wch, int n); int mvvline_set( int y, int x, const cchar_t *wch, int n); int mvwvline_set( WINDOW *win, int y, int x, const cchar_t *wch, int n);

DESCRIPTION
The border_set and wborder_set functions draw a border around the edges of the current or specified window. These functions do not change the cursor position, and do not wrap.

Other than the window, each argument is a complex character with attributes:

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 of these arguments is zero, then the corresponding default values (defined in curses.h) are used instead:

WACS_VLINE,

WACS_VLINE,

WACS_HLINE,

WACS_HLINE,

WACS_ULCORNER,

WACS_URCORNER,

WACS_LLCORNER, and

WACS_LRCORNER.

box_set(win, verch, horch); is a shorthand for the following call:

wborder_set(win, verch, verch, horch, horch, NULL, NULL, NULL, NULL);

The *line_set functions use wch to draw a line starting at the current cursor position in the window. The line is at most n characters long or as many as fit into the window. The current cursor position is not changed.

The hline_set, mvhline_set, mvwhline_set, and whline_set functions draw a line proceeding toward the last column of the same line.

The vline_set, mvvline_set, mvwvline_set, and wvline_set functions draw a line proceeding toward the last line of the window.

RETURN VALUE
Upon successful completion, these functions return OK. Otherwise, they return ERR.

Functions using a window parameter return an error if it is null.

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

NOTES
Note that border_set, hline_set, mvhline_set, mvvline_set, mvwhline_set, mvwvline_set, and vline_set may be macros.
PORTABILITY
These functions are described in X/Open Curses, Issue 4.
SEE ALSO
\%curses(3X), \%curs_add_wch(3X), \%curs_border(3X), \%curs_outopts(3X)