forked from KolibriOS/kolibrios
143 lines
3.7 KiB
C
143 lines
3.7 KiB
C
|
/* PDCurses */
|
||
|
|
||
|
#include <curspriv.h>
|
||
|
|
||
|
/*man-start**************************************************************
|
||
|
|
||
|
getyx
|
||
|
-----
|
||
|
|
||
|
### Synopsis
|
||
|
|
||
|
void getyx(WINDOW *win, int y, int x);
|
||
|
void getparyx(WINDOW *win, int y, int x);
|
||
|
void getbegyx(WINDOW *win, int y, int x);
|
||
|
void getmaxyx(WINDOW *win, int y, int x);
|
||
|
|
||
|
void getsyx(int y, int x);
|
||
|
void setsyx(int y, int x);
|
||
|
|
||
|
int getbegy(WINDOW *win);
|
||
|
int getbegx(WINDOW *win);
|
||
|
int getcury(WINDOW *win);
|
||
|
int getcurx(WINDOW *win);
|
||
|
int getpary(WINDOW *win);
|
||
|
int getparx(WINDOW *win);
|
||
|
int getmaxy(WINDOW *win);
|
||
|
int getmaxx(WINDOW *win);
|
||
|
|
||
|
### Description
|
||
|
|
||
|
The getyx() macro (defined in curses.h -- the prototypes here are
|
||
|
merely illustrative) puts the current cursor position of the
|
||
|
specified window into y and x. getbegyx() and getmaxyx() return the
|
||
|
starting coordinates and size of the specified window, respectively.
|
||
|
getparyx() returns the starting coordinates of the parent's window,
|
||
|
if the specified window is a subwindow; otherwise it sets y and x to
|
||
|
-1. These are all macros.
|
||
|
|
||
|
getsyx() gets the coordinates of the virtual screen cursor, and
|
||
|
stores them in y and x. If leaveok() is TRUE, it returns -1, -1. If
|
||
|
lines have been removed with ripoffline(), then getsyx() includes
|
||
|
these lines in its count; so, the returned y and x values should only
|
||
|
be used with setsyx().
|
||
|
|
||
|
setsyx() sets the virtual screen cursor to the y, x coordinates. If
|
||
|
either y or x is -1, leaveok() is set TRUE, else it's set FALSE.
|
||
|
|
||
|
getsyx() and setsyx() are meant to be used by a library routine that
|
||
|
manipulates curses windows without altering the position of the
|
||
|
cursor. Note that getsyx() is defined only as a macro.
|
||
|
|
||
|
getbegy(), getbegx(), getcurx(), getcury(), getmaxy(), getmaxx(),
|
||
|
getpary(), and getparx() return the appropriate coordinate or size
|
||
|
values, or ERR in the case of a NULL window.
|
||
|
|
||
|
### Portability
|
||
|
X/Open ncurses NetBSD
|
||
|
getyx Y Y Y
|
||
|
getparyx Y Y Y
|
||
|
getbegyx Y Y Y
|
||
|
getmaxyx Y Y Y
|
||
|
getsyx - Y Y
|
||
|
setsyx - Y Y
|
||
|
getbegy - Y Y
|
||
|
getbegx - Y Y
|
||
|
getcury - Y Y
|
||
|
getcurx - Y Y
|
||
|
getpary - Y Y
|
||
|
getparx - Y Y
|
||
|
getmaxy - Y Y
|
||
|
getmaxx - Y Y
|
||
|
|
||
|
**man-end****************************************************************/
|
||
|
|
||
|
int getbegy(WINDOW *win)
|
||
|
{
|
||
|
PDC_LOG(("getbegy() - called\n"));
|
||
|
|
||
|
return win ? win->_begy : ERR;
|
||
|
}
|
||
|
|
||
|
int getbegx(WINDOW *win)
|
||
|
{
|
||
|
PDC_LOG(("getbegx() - called\n"));
|
||
|
|
||
|
return win ? win->_begx : ERR;
|
||
|
}
|
||
|
|
||
|
int getcury(WINDOW *win)
|
||
|
{
|
||
|
PDC_LOG(("getcury() - called\n"));
|
||
|
|
||
|
return win ? win->_cury : ERR;
|
||
|
}
|
||
|
|
||
|
int getcurx(WINDOW *win)
|
||
|
{
|
||
|
PDC_LOG(("getcurx() - called\n"));
|
||
|
|
||
|
return win ? win->_curx : ERR;
|
||
|
}
|
||
|
|
||
|
int getpary(WINDOW *win)
|
||
|
{
|
||
|
PDC_LOG(("getpary() - called\n"));
|
||
|
|
||
|
return win ? win->_pary : ERR;
|
||
|
}
|
||
|
|
||
|
int getparx(WINDOW *win)
|
||
|
{
|
||
|
PDC_LOG(("getparx() - called\n"));
|
||
|
|
||
|
return win ? win->_parx : ERR;
|
||
|
}
|
||
|
|
||
|
int getmaxy(WINDOW *win)
|
||
|
{
|
||
|
PDC_LOG(("getmaxy() - called\n"));
|
||
|
|
||
|
return win ? win->_maxy : ERR;
|
||
|
}
|
||
|
|
||
|
int getmaxx(WINDOW *win)
|
||
|
{
|
||
|
PDC_LOG(("getmaxx() - called\n"));
|
||
|
|
||
|
return win ? win->_maxx : ERR;
|
||
|
}
|
||
|
|
||
|
void setsyx(int y, int x)
|
||
|
{
|
||
|
PDC_LOG(("setsyx() - called\n"));
|
||
|
|
||
|
if (curscr)
|
||
|
{
|
||
|
curscr->_leaveit = y == -1 || x == -1;
|
||
|
|
||
|
if (!curscr->_leaveit)
|
||
|
wmove(curscr, y, x);
|
||
|
}
|
||
|
}
|