/* Public Domain Curses */ #include RCSID("$Id: getyx.c,v 1.29 2008/07/15 17:13:26 wmcbrine Exp $") /*man-start************************************************************** Name: 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); int 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 y, x are -1, -1, leaveok() is set TRUE. 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 BSD SYS V getyx Y Y Y getparyx - - 4.0 getbegyx - - 3.0 getmaxyx - - 3.0 getsyx - - 3.0 setsyx - - 3.0 getbegy - - - getbegx - - - getcury - - - getcurx - - - getpary - - - getparx - - - getmaxy - - - getmaxx - - - **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; } int setsyx(int y, int x) { PDC_LOG(("setsyx() - called\n")); if(y == -1 && x == -1) { curscr->_leaveit = TRUE; return OK; } else if (y == -1 || x == -1) { return OK; } else { curscr->_leaveit = FALSE; wmove(curscr, y, x); return OK; } }