Change-Id: If881ec130833c7e7e62caa3d31e350a531f5bc8e Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/12398 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
			
				
	
	
		
			157 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Public Domain Curses */
 | |
| 
 | |
| #include <curspriv.h>
 | |
| 
 | |
| RCSID("$Id: outopts.c,v 1.39 2008/07/14 12:22:13 wmcbrine Exp $")
 | |
| 
 | |
| /*man-start**************************************************************
 | |
| 
 | |
|   Name:                                                         outopts
 | |
| 
 | |
|   Synopsis:
 | |
|         int clearok(WINDOW *win, bool bf);
 | |
|         int idlok(WINDOW *win, bool bf);
 | |
|         void idcok(WINDOW *win, bool bf);
 | |
|         void immedok(WINDOW *win, bool bf);
 | |
|         int leaveok(WINDOW *win, bool bf);
 | |
|         int setscrreg(int top, int bot);
 | |
|         int wsetscrreg(WINDOW *win, int top, int bot);
 | |
|         int scrollok(WINDOW *win, bool bf);
 | |
| 
 | |
|         int raw_output(bool bf);
 | |
| 
 | |
|   Description:
 | |
|         With clearok(), if bf is TRUE, the next call to wrefresh() with
 | |
|         this window will clear the screen completely and redraw the
 | |
|         entire screen.
 | |
| 
 | |
|         immedok(), called with a second argument of TRUE, causes an
 | |
|         automatic wrefresh() every time a change is made to the
 | |
|         specified window.
 | |
| 
 | |
|         Normally, the hardware cursor is left at the location of the
 | |
|         window being refreshed.  leaveok() allows the cursor to be
 | |
|         left wherever the update happens to leave it.  It's useful
 | |
|         for applications where the cursor is not used, since it reduces
 | |
|         the need for cursor motions.  If possible, the cursor is made
 | |
|         invisible when this option is enabled.
 | |
| 
 | |
|         wsetscrreg() sets a scrolling region in a window; "top" and
 | |
|         "bot" are the line numbers for the top and bottom margins. If
 | |
|         this option and scrollok() are enabled, any attempt to move off
 | |
|         the bottom margin will cause all lines in the scrolling region
 | |
|         to scroll up one line. setscrreg() is the stdscr version.
 | |
| 
 | |
|         idlok() and idcok() do nothing in PDCurses, but are provided for
 | |
|         compatibility with other curses implementations.
 | |
| 
 | |
|         raw_output() enables the output of raw characters using the
 | |
|         standard *add* and *ins* curses functions (that is, it disables
 | |
|         translation of control characters).
 | |
| 
 | |
|   Return Value:
 | |
|         All functions return OK on success and ERR on error.
 | |
| 
 | |
|   Portability                                X/Open    BSD    SYS V
 | |
|         clearok                                 Y       Y       Y
 | |
|         idlok                                   Y       Y       Y
 | |
|         idcok                                   Y       -      4.0
 | |
|         immedok                                 Y       -      4.0
 | |
|         leaveok                                 Y       Y       Y
 | |
|         setscrreg                               Y       Y       Y
 | |
|         wsetscrreg                              Y       Y       Y
 | |
|         scrollok                                Y       Y       Y
 | |
|         raw_output                              -       -       -
 | |
| 
 | |
| **man-end****************************************************************/
 | |
| 
 | |
| int clearok(WINDOW *win, bool bf)
 | |
| {
 | |
|     PDC_LOG(("clearok() - called\n"));
 | |
| 
 | |
|     if (!win)
 | |
|         return ERR;
 | |
| 
 | |
|     win->_clear = bf;
 | |
| 
 | |
|     return OK;
 | |
| }
 | |
| 
 | |
| int idlok(WINDOW *win, bool bf)
 | |
| {
 | |
|     PDC_LOG(("idlok() - called\n"));
 | |
| 
 | |
|     return OK;
 | |
| }
 | |
| 
 | |
| void idcok(WINDOW *win, bool bf)
 | |
| {
 | |
|     PDC_LOG(("idcok() - called\n"));
 | |
| }
 | |
| 
 | |
| void immedok(WINDOW *win, bool bf)
 | |
| {
 | |
|     PDC_LOG(("immedok() - called\n"));
 | |
| 
 | |
|     if (win)
 | |
|         win->_immed = bf;
 | |
| }
 | |
| 
 | |
| int leaveok(WINDOW *win, bool bf)
 | |
| {
 | |
|     PDC_LOG(("leaveok() - called\n"));
 | |
| 
 | |
|     if (!win)
 | |
|         return ERR;
 | |
| 
 | |
|     win->_leaveit = bf;
 | |
| 
 | |
|     curs_set(!bf);
 | |
| 
 | |
|     return OK;
 | |
| }
 | |
| 
 | |
| int setscrreg(int top, int bottom)
 | |
| {
 | |
|     PDC_LOG(("setscrreg() - called: top %d bottom %d\n", top, bottom));
 | |
| 
 | |
|     return wsetscrreg(stdscr, top, bottom);
 | |
| }
 | |
| 
 | |
| int wsetscrreg(WINDOW *win, int top, int bottom)
 | |
| {
 | |
|     PDC_LOG(("wsetscrreg() - called: top %d bottom %d\n", top, bottom));
 | |
| 
 | |
|     if (win && 0 <= top && top <= win->_cury &&
 | |
|         win->_cury <= bottom && bottom < win->_maxy)
 | |
|     {
 | |
|         win->_tmarg = top;
 | |
|         win->_bmarg = bottom;
 | |
| 
 | |
|         return OK;
 | |
|     }
 | |
|     else
 | |
|         return ERR;
 | |
| }
 | |
| 
 | |
| int scrollok(WINDOW *win, bool bf)
 | |
| {
 | |
|     PDC_LOG(("scrollok() - called\n"));
 | |
| 
 | |
|     if (!win)
 | |
|         return ERR;
 | |
| 
 | |
|     win->_scroll = bf;
 | |
| 
 | |
|     return OK;
 | |
| }
 | |
| 
 | |
| int raw_output(bool bf)
 | |
| {
 | |
|     PDC_LOG(("raw_output() - called\n"));
 | |
| 
 | |
|     SP->raw_out = bf;
 | |
| 
 | |
|     return OK;
 | |
| }
 |