/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: curses.h.in,v 1.172 2007/03/31 20:46:06 tom Exp $ */
+/* $Id: curses.h.in,v 1.186 2008/04/05 15:30:28 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
attr_t attr;
wchar_t chars[CCHARW_MAX];
#if @NCURSES_EXT_COLORS@
+#undef NCURSES_EXT_COLORS
+#define NCURSES_EXT_COLORS @NCURSES_PATCH@
int ext_color; /* color pair, must be more than 16-bits */
#endif
}
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 */
extern NCURSES_EXPORT(int) putp (const char *); /* implemented */
#if NCURSES_TPARM_VARARGS
-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* implemented */
+extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* special */
#else
-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* implemented */
-extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* implemented */
+extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* special */
+extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* special */
#endif
/*
* These functions are extensions - not in X/Open Curses.
*/
#if @NCURSES_EXT_FUNCS@
+#undef NCURSES_EXT_FUNCS
+#define NCURSES_EXT_FUNCS @NCURSES_PATCH@
+typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
+typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
extern NCURSES_EXPORT(bool) is_term_resized (int, int);
extern NCURSES_EXPORT(char *) keybound (int, int);
extern NCURSES_EXPORT(const char *) curses_version (void);
extern NCURSES_EXPORT(int) keyok (int, bool);
extern NCURSES_EXPORT(int) resize_term (int, int);
extern NCURSES_EXPORT(int) resizeterm (int, int);
+extern NCURSES_EXPORT(int) set_escdelay (int);
+extern NCURSES_EXPORT(int) set_tabsize (int);
extern NCURSES_EXPORT(int) use_default_colors (void);
extern NCURSES_EXPORT(int) use_extended_names (bool);
extern NCURSES_EXPORT(int) use_legacy_coding (int);
+extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *);
+extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *);
extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
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
#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 (newscr) { \
+ 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 (newscr) { \
+ if ((y) == -1 && (x) == -1) \
+ leaveok(newscr, TRUE); \
+ else { \
+ leaveok(newscr, FALSE); \
+ wmove(newscr, (y), (x)); \
+ } \
+ } \
} while(0)
-#endif /* NCURSES_OPAQUE */
#ifndef NCURSES_NOMACROS
/* 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))
#define wattr_set(win,a,p,opts) ((win)->_attrs = ((a) & ~A_COLOR), \
(win)->_color = (p), \
OK)
-#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
- (void)((p) != 0 && (*(p) = (win)->_color)), \
+#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
+ (void)((p) != (void *)0 && (*(p) = (win)->_color)), \
OK)
#else
#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
-#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
- (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
+#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
+ (void)((p) != (void *)0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
OK)
#endif
#endif /* NCURSES_OPAQUE */
#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