ncurses 5.6 - patch 20070818
[ncurses.git] / include / curses.h.in
index 46059a489eeab2ad8be26e01e667ecec87b1720d..895b4ff473d96aa4870283646b55ac2525a7ae6d 100644 (file)
@@ -32,7 +32,7 @@
  *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
-/* $Id: curses.h.in,v 1.173 2007/04/28 20:34:23 tom Exp $ */
+/* $Id: curses.h.in,v 1.177 2007/08/18 18:35:01 tom Exp $ */
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
@@ -712,7 +712,7 @@ extern NCURSES_EXPORT(int) standout (void);                         /* generated */
 extern NCURSES_EXPORT(int) standend (void);                            /* generated */
 extern NCURSES_EXPORT(int) start_color (void);                         /* implemented */
 extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */
-extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *,int,int,int,int);     /* implemented */
+extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */
 extern NCURSES_EXPORT(int) syncok (WINDOW *, bool);                    /* implemented */
 extern NCURSES_EXPORT(chtype) termattrs (void);                                /* implemented */
 extern NCURSES_EXPORT(char *) termname (void);                         /* implemented */
@@ -845,16 +845,18 @@ extern NCURSES_EXPORT(void) nofilter(void);
  * These extensions provide access to information stored in the WINDOW even
  * when NCURSES_OPAQUE is set:
  */
-extern NCURSES_EXPORT(bool) is_cleared (WINDOW *);     /* generated */
-extern NCURSES_EXPORT(bool) is_idcok (WINDOW *);       /* generated */
-extern NCURSES_EXPORT(bool) is_idlok (WINDOW *);       /* generated */
-extern NCURSES_EXPORT(bool) is_immedok (WINDOW *);     /* generated */
-extern NCURSES_EXPORT(bool) is_keypad (WINDOW *);      /* generated */
-extern NCURSES_EXPORT(bool) is_leaveok (WINDOW *);     /* generated */
-extern NCURSES_EXPORT(bool) is_nodelay (WINDOW *);     /* generated */
-extern NCURSES_EXPORT(bool) is_notimeout (WINDOW *);   /* generated */
-extern NCURSES_EXPORT(bool) is_scrollok (WINDOW *);    /* generated */
-extern NCURSES_EXPORT(bool) is_syncok (WINDOW *);      /* generated */
+extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *);   /* generated */
+extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *);       /* generated */
+extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *);         /* generated */
+extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *);         /* generated */
+extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *);       /* generated */
+extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *);                /* generated */
+extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *);       /* generated */
+extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *);       /* generated */
+extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *);     /* generated */
+extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *);      /* generated */
+extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *);                /* generated */
+extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */
 
 #else
 #define curses_version() NCURSES_VERSION
@@ -900,14 +902,19 @@ extern NCURSES_EXPORT(bool) is_syncok (WINDOW *); /* generated */
 #define getmaxyx(win,y,x)      (y = getmaxy(win), x = getmaxx(win))
 #define getparyx(win,y,x)      (y = getpary(win), x = getparx(win))
 
-#if !NCURSES_OPAQUE
-#define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \
-                        else getyx(newscr,(y),(x)); \
+#define getsyx(y,x) do { if (is_leaveok(newscr)) \
+                           (y) = (x) = -1; \
+                        else \
+                            getyx(newscr,(y), (x)); \
                    } while(0)
-#define setsyx(y,x) do { if((y)==-1 && (x)==-1) newscr->_leaveok=TRUE; \
-                        else {newscr->_leaveok=FALSE;wmove(newscr,(y),(x));} \
+
+#define setsyx(y,x) do { if ((y) == -1 && (x) == -1) \
+                           leaveok(newscr, TRUE); \
+                        else { \
+                           leaveok(newscr, FALSE); \
+                           wmove(newscr, (y), (x)); \
+                       } \
                    } while(0)
-#endif /* NCURSES_OPAQUE */
 
 #ifndef NCURSES_NOMACROS
 
@@ -929,15 +936,15 @@ extern NCURSES_EXPORT(bool) is_syncok (WINDOW *); /* generated */
 
 /* It seems older SYSV curses versions define these */
 #if !NCURSES_OPAQUE
-#define getattrs(win)          ((win)?(win)->_attrs:A_NORMAL)
-#define getcurx(win)           ((win)?(win)->_curx:ERR)
-#define getcury(win)           ((win)?(win)->_cury:ERR)
-#define getbegx(win)           ((win)?(win)->_begx:ERR)
-#define getbegy(win)           ((win)?(win)->_begy:ERR)
-#define getmaxx(win)           ((win)?((win)->_maxx + 1):ERR)
-#define getmaxy(win)           ((win)?((win)->_maxy + 1):ERR)
-#define getparx(win)           ((win)?(win)->_parx:ERR)
-#define getpary(win)           ((win)?(win)->_pary:ERR)
+#define getattrs(win)          ((win) ? (win)->_attrs : A_NORMAL)
+#define getcurx(win)           ((win) ? (win)->_curx : ERR)
+#define getcury(win)           ((win) ? (win)->_cury : ERR)
+#define getbegx(win)           ((win) ? (win)->_begx : ERR)
+#define getbegy(win)           ((win) ? (win)->_begy : ERR)
+#define getmaxx(win)           ((win) ? ((win)->_maxx + 1) : ERR)
+#define getmaxy(win)           ((win) ? ((win)->_maxy + 1) : ERR)
+#define getparx(win)           ((win) ? (win)->_parx : ERR)
+#define getpary(win)           ((win) ? (win)->_pary : ERR)
 #endif /* NCURSES_OPAQUE */
 
 #define wstandout(win)         (wattrset(win,A_STANDOUT))
@@ -1136,6 +1143,8 @@ NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
 #define is_notimeout(win)      ((win)->_notimeout)
 #define is_scrollok(win)       ((win)->_scroll)
 #define is_syncok(win)         ((win)->_sync)
+#define wgetparent(win)                ((win) ? (win)->_parent : 0)
+#define wgetscrreg(win,t,b)    ((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
 #endif
 #endif