]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - include/curses.wide
ncurses 5.3
[ncurses.git] / include / curses.wide
diff --git a/include/curses.wide b/include/curses.wide
new file mode 100644 (file)
index 0000000..ac03151
--- /dev/null
@@ -0,0 +1,237 @@
+
+#ifdef _XOPEN_SOURCE_EXTENDED
+
+/* $Id: curses.wide,v 1.25 2002/08/31 17:48:53 tom Exp $ */
+
+extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
+
+#define WACS_BSSB      (&_nc_wacs['l'])
+#define WACS_SSBB      (&_nc_wacs['m'])
+#define WACS_BBSS      (&_nc_wacs['k'])
+#define WACS_SBBS      (&_nc_wacs['j'])
+#define WACS_SBSS      (&_nc_wacs['u'])
+#define WACS_SSSB      (&_nc_wacs['t'])
+#define WACS_SSBS      (&_nc_wacs['v'])
+#define WACS_BSSS      (&_nc_wacs['w'])
+#define WACS_BSBS      (&_nc_wacs['q'])
+#define WACS_SBSB      (&_nc_wacs['x'])
+#define WACS_SSSS      (&_nc_wacs['n'])
+
+#define WACS_ULCORNER  WACS_BSSB
+#define WACS_LLCORNER  WACS_SSBB
+#define WACS_URCORNER  WACS_BBSS
+#define WACS_LRCORNER  WACS_SBBS
+#define WACS_RTEE      WACS_SBSS
+#define WACS_LTEE      WACS_SSSB
+#define WACS_BTEE      WACS_SSBS
+#define WACS_TTEE      WACS_BSSS
+#define WACS_HLINE     WACS_BSBS
+#define WACS_VLINE     WACS_SBSB
+#define WACS_PLUS      WACS_SSSS
+
+#define WACS_S1                (&_nc_wacs['o']) /* scan line 1 */
+#define WACS_S9        (&_nc_wacs['s']) /* scan line 9 */
+#define WACS_DIAMOND   (&_nc_wacs['`']) /* diamond */
+#define WACS_CKBOARD   (&_nc_wacs['a']) /* checker board */
+#define WACS_DEGREE    (&_nc_wacs['f']) /* degree symbol */
+#define WACS_PLMINUS   (&_nc_wacs['g']) /* plus/minus */
+#define WACS_BULLET    (&_nc_wacs['~']) /* bullet */
+
+       /* Teletype 5410v1 symbols */
+#define WACS_LARROW    (&_nc_wacs[',']) /* arrow left */
+#define WACS_RARROW    (&_nc_wacs['+']) /* arrow right */
+#define WACS_DARROW    (&_nc_wacs['.']) /* arrow down */
+#define WACS_UARROW    (&_nc_wacs['-']) /* arrow up */
+#define WACS_BOARD     (&_nc_wacs['h']) /* board of squares */
+#define WACS_LANTERN   (&_nc_wacs['i']) /* lantern symbol */
+#define WACS_BLOCK     (&_nc_wacs['0']) /* solid square block */
+
+       /* ncurses extensions */
+#define WACS_S3                (&_nc_wacs['p']) /* scan line 3 */
+#define WACS_S7                (&_nc_wacs['r']) /* scan line 7 */
+#define WACS_LEQUAL    (&_nc_wacs['y']) /* less/equal */
+#define WACS_GEQUAL    (&_nc_wacs['z']) /* greater/equal */
+#define WACS_PI                (&_nc_wacs['{']) /* Pi */
+#define WACS_NEQUAL    (&_nc_wacs['|']) /* not equal */
+#define WACS_STERLING  (&_nc_wacs['}']) /* UK pound sign */
+
+/*
+ * Function prototypes for wide-character operations.
+ *
+ * "generated" comments should include ":WIDEC" to make the corresponding
+ * functions ifdef'd in lib_gen.c
+ *
+ * "implemented" comments do not need this marker.
+ */
+
+extern NCURSES_EXPORT(int) add_wch (const cchar_t *);                  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int);         /* generated:WIDEC */
+extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *);               /* generated:WIDEC */
+extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int);            /* generated:WIDEC */
+extern NCURSES_EXPORT(int) addwstr (const wchar_t *);                  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *);                   /* generated:WIDEC */
+extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *);               /* generated:WIDEC */
+extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *);               /* generated:WIDEC */
+extern NCURSES_EXPORT(int) erasewchar (wchar_t*);                      /* implemented */
+extern NCURSES_EXPORT(int) get_wch (wint_t *);                         /* generated:WIDEC */
+extern NCURSES_EXPORT(int) get_wstr (wint_t *);                                /* generated:WIDEC */
+extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *);                      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, short*, void*);       /* implemented */
+extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int);                  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int);           /* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wch (cchar_t *);                         /* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int);                        /* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wchstr (cchar_t *);                      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) innwstr (wchar_t *, int);                   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int);           /* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_wch (const cchar_t *);                  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *);                 /* generated:WIDEC */
+extern NCURSES_EXPORT(int) inwstr (wchar_t *);                         /* generated:WIDEC */
+extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t);         /* implemented */
+extern NCURSES_EXPORT(int) killwchar (wchar_t *);                      /* implemented */
+extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int);        /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *);             /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *);            /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *);             /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int);    /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *);          /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *);     /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *);             /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *);        /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *);  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *);  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *);       /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int);    /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *);   /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *);  /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *);          /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *);    /* missing */
+extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *);   /* implemented */
+extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int);       /* missing */
+extern NCURSES_EXPORT(attr_t) term_attrs (void);                       /* implemented */
+extern NCURSES_EXPORT(int) unget_wch (const wchar_t);                  /* implemented */
+extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *);           /* implemented */
+extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, int (*)(int)); /* implemented */
+extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int);           /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *);                /* implemented */
+extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int);        /* implemented */
+extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *);     /* generated:WIDEC */
+extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int);   /* implemented */
+extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *);                /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *);         /* implemented */
+extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *);     /* implemented */
+extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*);     /* implemented */
+extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *);    /* implemented */
+extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *);              /* implemented */
+extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *);             /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *);           /* implemented */
+extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *,wint_t *, int);                /* implemented */
+extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int);        /* implemented */
+extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *);              /* implemented */
+extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int);     /* implemented */
+extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *);           /* generated:WIDEC */
+extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int);                /* implemented */
+extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int);        /* implemented */
+extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *);       /* implemented */
+extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *);      /* generated:WIDEC */
+extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *);              /* implemented */
+extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *);                   /* implemented */
+extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int);        /* implemented */
+
+/*
+ * XSI curses macros for XPG4 conformance.
+ */
+#define add_wch(c)                     wadd_wch(stdscr,c)
+#define add_wchnstr(str,n)             wadd_wchnstr(stdscr,str,n)
+#define add_wchstr(str)                        wadd_wchstr(stdscr,str)
+#define addnwstr(wstr,n)               waddnwstr(stdscr,wstr,n)
+#define addwstr(wstr)                  waddwstr(stdscr,wstr)
+#define bkgrnd(c)                      wbkgrnd(stdscr,c)
+#define bkgrndset(c)                   wbkgrndset(stdscr,c)
+#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
+#define box_set(w,v,h)                 wborder_set(w,v,v,h,h,0,0,0,0)
+#define echo_wchar(c)                  wecho_wchar(stdscr,c)
+#define get_wch(c)                     wget_wch(stdscr,c)
+#define get_wstr(t)                    wget_wstr(stdscr,t)
+#define getbkgrnd(wch)                 wgetbkgrnd(stdscr,wch)
+#define getn_wstr(t,n)                 wgetn_wstr(stdscr,t,n)
+#define hline_set(c,n)                 whline_set(stdscr,c,n)
+#define in_wch(c)                      win_wch(stdscr,c)
+#define in_wchnstr(c,n)                        win_wchnstr(stdscr,c,n)
+#define in_wchstr(c)                   win_wchstr(stdscr,c)
+#define innwstr(c,n)                   winnwstr(stdscr,c,n)
+#define ins_nwstr(t,n)                 wins_nwstr(stdscr,t,n)
+#define ins_wch(c)                     wins_wch(stdscr,c)
+#define ins_wstr(t)                    wins_wstr(stdscr,t)
+#define inwstr(c)                      winwstr(stdscr,c)
+#define vid_attr(a,pair,opts)          vidattr(a)
+#define vline_set(c,n)                 wvline_set(stdscr,c,n)
+#define wadd_wchstr(win,str)           wadd_wchnstr(win,str,-1)
+#define waddwstr(win,wstr)             waddnwstr(win,wstr,-1)
+#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
+#define wget_wstr(w,t)                 wgetn_wstr(w,t,-1)
+#define wgetbkgrnd(win,wch)            (*wch = win->_bkgrnd, OK)
+#define win_wchstr(w,c)                        win_wchnstr(w,c,-1)
+#define wins_wstr(w,t)                 wins_nwstr(w,t,-1)
+
+#define mvadd_wch(y,x,c)               mvwadd_wch(stdscr,y,x,c)
+#define mvadd_wchnstr(y,x,s,n)         mvwadd_wchnstr(stdscr,y,x,s,n)
+#define mvadd_wchstr(y,x,s)            mvwadd_wchstr(stdscr,y,x,s)
+#define mvaddnwstr(y,x,wstr,n)         mvwaddnwstr(stdscr,y,x,wstr,n)
+#define mvaddwstr(y,x,wstr)            mvwaddwstr(stdscr,y,x,wstr)
+#define mvget_wch(y,x,c)               mvwget_wch(stdscr,y,x,c)
+#define mvget_wstr(y,x,t)              mvwget_wstr(stdscr,y,x,t)
+#define mvgetn_wstr(y,x,t,n)           mvwgetn_wstr(stdscr,y,x,t,n)
+#define mvhline_set(y,x,c,n)           mvwhline_set(stdscr,y,x,c,n)
+#define mvin_wch(y,x,c)                        mvwin_wch(stdscr,y,x,c)
+#define mvin_wchnstr(y,x,c,n)          mvwin_wchnstr(stdscr,y,x,c,n)
+#define mvin_wchstr(y,x,c)             mvwin_wchstr(stdscr,y,x,c)
+#define mvinnwstr(y,x,c,n)             mvwinnwstr(stdscr,y,x,c,n)
+#define mvins_nwstr(y,x,t,n)           mvwins_nwstr(stdscr,y,x,t,n)
+#define mvins_wch(y,x,c)               mvwins_wch(stdscr,y,x,c)
+#define mvins_wstr(y,x,t)              mvwins_wstr(stdscr,y,x,t)
+#define mvinwstr(y,x,c)                        mvwinwstr(stdscr,y,x,c)
+#define mvvline_set(y,x,c,n)           mvwvline_set(stdscr,y,x,c,n)
+
+#define mvwadd_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
+#define mvwadd_wchnstr(win,y,x,s,n)    (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
+#define mvwadd_wchstr(win,y,x,s)       (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
+#define mvwaddnwstr(win,y,x,wstr,n)    (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
+#define mvwaddwstr(win,y,x,wstr)       (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
+#define mvwget_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
+#define mvwget_wstr(win,y,x,t)         (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
+#define mvwgetn_wstr(win,y,x,t,n)      (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
+#define mvwhline_set(win,y,x,c,n)      (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
+#define mvwin_wch(win,y,x,c)           (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
+#define mvwin_wchnstr(win,y,x,c,n)     (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
+#define mvwin_wchstr(win,y,x,c)                (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
+#define mvwinnwstr(win,y,x,c,n)                (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
+#define mvwins_nwstr(win,y,x,t,n)      (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
+#define mvwins_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
+#define mvwins_wstr(win,y,x,t)         (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
+#define mvwinwstr(win,y,x,c)           (wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
+#define mvwvline_set(win,y,x,c,n)      (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
+
+#endif /* _XOPEN_SOURCE_EXTENDED */