| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- /* PDCurses */
- #include <curspriv.h>
- /*man-start**************************************************************
- clear
- -----
- ### Synopsis
- int clear(void);
- int wclear(WINDOW *win);
- int erase(void);
- int werase(WINDOW *win);
- int clrtobot(void);
- int wclrtobot(WINDOW *win);
- int clrtoeol(void);
- int wclrtoeol(WINDOW *win);
- ### Description
- erase() and werase() copy blanks (i.e. the background chtype) to
- every cell of the window.
- clear() and wclear() are similar to erase() and werase(), but they
- also call clearok() to ensure that the the window is cleared on the
- next wrefresh().
- clrtobot() and wclrtobot() clear the window from the current cursor
- position to the end of the window.
- clrtoeol() and wclrtoeol() clear the window from the current cursor
- position to the end of the current line.
- ### Return Value
- All functions return OK on success and ERR on error.
- ### Portability
- X/Open ncurses NetBSD
- clear Y Y Y
- wclear Y Y Y
- erase Y Y Y
- werase Y Y Y
- clrtobot Y Y Y
- wclrtobot Y Y Y
- clrtoeol Y Y Y
- wclrtoeol Y Y Y
- **man-end****************************************************************/
- int wclrtoeol(WINDOW *win)
- {
- int x, y, minx;
- chtype blank, *ptr;
- PDC_LOG(("wclrtoeol() - called: Row: %d Col: %d\n",
- win->_cury, win->_curx));
- if (!win)
- return ERR;
- y = win->_cury;
- x = win->_curx;
- /* wrs (4/10/93) account for window background */
- blank = win->_bkgd;
- for (minx = x, ptr = &win->_y[y][x]; minx < win->_maxx; minx++, ptr++)
- *ptr = blank;
- if (x < win->_firstch[y] || win->_firstch[y] == _NO_CHANGE)
- win->_firstch[y] = x;
- win->_lastch[y] = win->_maxx - 1;
- PDC_sync(win);
- return OK;
- }
- int clrtoeol(void)
- {
- PDC_LOG(("clrtoeol() - called\n"));
- return wclrtoeol(stdscr);
- }
- int wclrtobot(WINDOW *win)
- {
- int savey, savex;
- PDC_LOG(("wclrtobot() - called\n"));
- if (!win)
- return ERR;
- savey = win->_cury;
- savex = win->_curx;
- /* should this involve scrolling region somehow ? */
- if (win->_cury + 1 < win->_maxy)
- {
- win->_curx = 0;
- win->_cury++;
- for (; win->_maxy > win->_cury; win->_cury++)
- wclrtoeol(win);
- win->_cury = savey;
- win->_curx = savex;
- }
- wclrtoeol(win);
- PDC_sync(win);
- return OK;
- }
- int clrtobot(void)
- {
- PDC_LOG(("clrtobot() - called\n"));
- return wclrtobot(stdscr);
- }
- int werase(WINDOW *win)
- {
- PDC_LOG(("werase() - called\n"));
- if (wmove(win, 0, 0) == ERR)
- return ERR;
- return wclrtobot(win);
- }
- int erase(void)
- {
- PDC_LOG(("erase() - called\n"));
- return werase(stdscr);
- }
- int wclear(WINDOW *win)
- {
- PDC_LOG(("wclear() - called\n"));
- if (!win)
- return ERR;
- win->_clear = TRUE;
- return werase(win);
- }
- int clear(void)
- {
- PDC_LOG(("clear() - called\n"));
- return wclear(stdscr);
- }
|