summaryrefslogtreecommitdiff
path: root/Utilities/cmpdcurses/pdcurses/getyx.c
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/cmpdcurses/pdcurses/getyx.c')
-rw-r--r--Utilities/cmpdcurses/pdcurses/getyx.c142
1 files changed, 142 insertions, 0 deletions
diff --git a/Utilities/cmpdcurses/pdcurses/getyx.c b/Utilities/cmpdcurses/pdcurses/getyx.c
new file mode 100644
index 0000000000..9400076e05
--- /dev/null
+++ b/Utilities/cmpdcurses/pdcurses/getyx.c
@@ -0,0 +1,142 @@
+/* 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);
+ }
+}