\"      $NetBSD: curses_cursor.3,v 1.9 2017/01/05 09:46:32 wiz Exp $
\"
\" Copyright (c) 2002
\"      Brett Lymn ([email protected], [email protected])
\"
\" This code is donated to the NetBSD Foundation by the Author.
\"
\" Redistribution and use in source and binary forms, with or without
\" modification, are permitted provided that the following conditions
\" are met:
\" 1. Redistributions of source code must retain the above copyright
\"    notice, this list of conditions and the following disclaimer.
\" 2. Redistributions in binary form must reproduce the above copyright
\"    notice, this list of conditions and the following disclaimer in the
\"    documentation and/or other materials provided with the distribution.
\" 3. The name of the Author may not be used to endorse or promote
\"    products derived from this software without specific prior written
\"    permission.
\"
\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
\" SUCH DAMAGE.
\"
\"
Dd December 31, 2016
Dt CURSES 3
Os
Sh NAME
Nm curses_cursor ,
Nm getcury ,
Nm getcurx ,
Nm getsyx ,
Nm getyx ,
Nm getbegy ,
Nm getbegx ,
Nm getbegyx ,
Nm getmaxy ,
Nm getmaxx ,
Nm getmaxyx ,
Nm getpary ,
Nm getparx ,
Nm getparyx ,
Nm move ,
Nm setsyx ,
Nm wmove ,
Nm mvcur ,
Nm wcursyncup
Nd curses cursor and window location and positioning routines
Sh LIBRARY
Lb libcurses
Sh SYNOPSIS
In curses.h
Ft int
Fn getcury "WINDOW *win"
Ft int
Fn getcurx "WINDOW *win"
Ft int
Fn getsyx "int y" "int x"
Ft void
Fn getyx "WINDOW *win" "int y" "int x"
Ft int
Fn getbegy "WINDOW *win"
Ft int
Fn getbegx "WINDOW *win"
Ft void
Fn getbegyx "WINDOW *win" "int y" "int x"
Ft int
Fn getmaxy "WINDOW *win"
Ft int
Fn getmaxx "WINDOW *win"
Ft void
Fn getmaxyx "WINDOW *win" "int y" "int x"
Ft int
Fn getpary "WINDOW *win"
Ft int
Fn getparx "WINDOW *win"
Ft void
Fn getparyx "WINDOW *win" "int y" "int x"
Ft int
Fn move "int y" "int x"
Ft int
Fn setsyx "int y" "int x"
Ft int
Fn wmove "WINDOW *win" "int y" "int x"
Ft int
Fn mvcur "int oldy" "int oldx" "int y" "int x"
Ft void
Fn wcursyncup "WINDOW *win"
Sh DESCRIPTION
These functions and macros locate and position cursors and windows.
Pp
The
Fn getcury
and
Fn getcurx
functions get the current row and column positions, respectively, of the cursor in
the window
Fa win .
The
Fn getyx
macro sets the values of
Fa y
and
Fa x
to the current row and column positions of the cursor in the window
Fa win .
Pp
The
Fn getsyx
macro sets the values of
Fa y
and
Fa x
of the current window if
Fn is_leaveok
is false, otherwise \-1, \-1.
The
Fn setsyx
macro sets the row and column positions, respectively, of the cursor in the
current window to the values of
Fa y
and
Fa x .
If both
Fa y
and
Fa x
are both \-1 then
Fn leaveok
is set.
Pp
The origin row and columns of a window
Fa win
can be
determined by calling the
Fn getbegy
and
Fn getbegx
functions, respectively, and the maximum row and column for the window can be
found by calling the functions
Fn getmaxy
and
Fn getmaxx ,
respectively.
The
Fn getbegyx
and
Fn getmaxyx
macros set the values of
Fa y
and
Fa x
to the origin and maximum row and column positions, respectively, for the window
Fa win .
Pp
The
Fn getpary
and
Fn getparx
functions return the row and column position of the given subwindow relative to
the window's parent.
The macro
Fn getparyx
sets the values of
Fa y
and
Fa x
to the origin of the subwindow relative to the window's parent.
Pp
The
Fn move
function positions the cursor on the current window at the position given by
Fa y ,
Fa x .
The cursor position is not changed on the screen until the next
Fn refresh .
Pp
The
Fn wmove
function is the same as the
Fn move
function, excepting that the cursor is moved in the window specified by
Fa win .
Pp
The function
Fn mvcur
moves the cursor to
Fa y ,
Fa x
on the screen.
The arguments
Fa oldy ,
Fa oldx
define the previous cursor position for terminals that do not support
absolute cursor motions.
The curses library may optimise the cursor motion based on these values.
If the
Fn mvcur
succeeds then the curses internal structures are updated with the new
position of the cursor.
If the destination arguments for
Fn mvcur
exceed the terminal bounds an error will be returned and the cursor
position will be unchanged.
Pp
The
Fn wcursyncup
function sets the cursor positions of all ancestors of
Fa win
to that of
Fa win .
Sh RETURN VALUES
Functions returning pointers will return
Dv NULL
if an error is detected.
The functions that return an int will return one of the following
values:
Pp
Bl -tag -width ERR -compact
It Er OK
The function completed successfully.
It Er ERR
An error occurred in the function.
El
Sh SEE ALSO
Xr curses_refresh 3
Sh STANDARDS
The
Nx
Curses library complies with the X/Open Curses specification, part of
the Single Unix Specification.
The
Fn getbegx ,
Fn getbegy ,
Fn getcurx ,
Fn getcury ,
Fn getmaxx ,
Fn getmaxy ,
Fn getparx ,
and
Fn getpary
functions are extensions.
Sh HISTORY
The Curses package appeared in
Bx 4.0 .
The
Fn getsyx
and
Fn setsyx
functions are
Em ncurses
extensions to the Curses library and were added in
Nx 8.0 .