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>
		
			
				
	
	
		
			153 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Public Domain Curses */
 | 
						|
 | 
						|
#include "pdcx11.h"
 | 
						|
 | 
						|
RCSID("$Id: sb.c,v 1.27 2008/07/14 04:24:52 wmcbrine Exp $")
 | 
						|
 | 
						|
/*man-start**************************************************************
 | 
						|
 | 
						|
  Name:                                                          sb
 | 
						|
 | 
						|
  Synopsis:
 | 
						|
        int sb_init(void)
 | 
						|
        int sb_set_horz(int total, int viewport, int cur)
 | 
						|
        int sb_set_vert(int total, int viewport, int cur)
 | 
						|
        int sb_get_horz(int *total, int *viewport, int *cur)
 | 
						|
        int sb_get_vert(int *total, int *viewport, int *cur)
 | 
						|
        int sb_refresh(void);
 | 
						|
 | 
						|
  Description:
 | 
						|
        These functions manipulate the scrollbar.
 | 
						|
 | 
						|
  Return Value:
 | 
						|
        All functions return OK on success and ERR on error.
 | 
						|
 | 
						|
  Portability                                X/Open    BSD    SYS V
 | 
						|
        sb_init                                 -       -       -
 | 
						|
        sb_set_horz                             -       -       -
 | 
						|
        sb_set_vert                             -       -       -
 | 
						|
        sb_get_horz                             -       -       -
 | 
						|
        sb_get_vert                             -       -       -
 | 
						|
        sb_refresh                              -       -       -
 | 
						|
 | 
						|
**man-end****************************************************************/
 | 
						|
 | 
						|
bool sb_started = FALSE;
 | 
						|
 | 
						|
/* sb_init() is the sb initialization routine.
 | 
						|
   This must be called before initscr(). */
 | 
						|
 | 
						|
int sb_init(void)
 | 
						|
{
 | 
						|
    PDC_LOG(("sb_init() - called\n"));
 | 
						|
 | 
						|
    if (SP)
 | 
						|
        return ERR;
 | 
						|
 | 
						|
    sb_started = TRUE;
 | 
						|
 | 
						|
    return OK;
 | 
						|
}
 | 
						|
 | 
						|
/* sb_set_horz() - Used to set horizontal scrollbar.
 | 
						|
 | 
						|
   total = total number of columns
 | 
						|
   viewport = size of viewport in columns
 | 
						|
   cur = current column in total */
 | 
						|
 | 
						|
int sb_set_horz(int total, int viewport, int cur)
 | 
						|
{
 | 
						|
    PDC_LOG(("sb_set_horz() - called: total %d viewport %d cur %d\n",
 | 
						|
             total, viewport, cur));
 | 
						|
 | 
						|
    if (!SP)
 | 
						|
        return ERR;
 | 
						|
 | 
						|
    SP->sb_total_x = total;
 | 
						|
    SP->sb_viewport_x = viewport;
 | 
						|
    SP->sb_cur_x = cur;
 | 
						|
 | 
						|
    return OK;
 | 
						|
}
 | 
						|
 | 
						|
/* sb_set_vert() - Used to set vertical scrollbar.
 | 
						|
 | 
						|
   total = total number of columns on line
 | 
						|
   viewport = size of viewport in columns
 | 
						|
   cur = current column in total */
 | 
						|
 | 
						|
int sb_set_vert(int total, int viewport, int cur)
 | 
						|
{
 | 
						|
    PDC_LOG(("sb_set_vert() - called: total %d viewport %d cur %d\n",
 | 
						|
             total, viewport, cur));
 | 
						|
 | 
						|
    if (!SP)
 | 
						|
        return ERR;
 | 
						|
 | 
						|
    SP->sb_total_y = total;
 | 
						|
    SP->sb_viewport_y = viewport;
 | 
						|
    SP->sb_cur_y = cur;
 | 
						|
 | 
						|
    return OK;
 | 
						|
}
 | 
						|
 | 
						|
/* sb_get_horz() - Used to get horizontal scrollbar.
 | 
						|
 | 
						|
   total = total number of lines
 | 
						|
   viewport = size of viewport in lines
 | 
						|
   cur = current line in total */
 | 
						|
 | 
						|
int sb_get_horz(int *total, int *viewport, int *cur)
 | 
						|
{
 | 
						|
    PDC_LOG(("sb_get_horz() - called\n"));
 | 
						|
 | 
						|
    if (!SP)
 | 
						|
        return ERR;
 | 
						|
 | 
						|
    if (total)
 | 
						|
        *total = SP->sb_total_x;
 | 
						|
    if (viewport)
 | 
						|
        *viewport = SP->sb_viewport_x;
 | 
						|
    if (cur)
 | 
						|
        *cur = SP->sb_cur_x;
 | 
						|
 | 
						|
    return OK;
 | 
						|
}
 | 
						|
 | 
						|
/* sb_get_vert() - Used to get vertical scrollbar.
 | 
						|
 | 
						|
   total = total number of lines
 | 
						|
   viewport = size of viewport in lines
 | 
						|
   cur = current line in total */
 | 
						|
 | 
						|
int sb_get_vert(int *total, int *viewport, int *cur)
 | 
						|
{
 | 
						|
    PDC_LOG(("sb_get_vert() - called\n"));
 | 
						|
 | 
						|
    if (!SP)
 | 
						|
        return ERR;
 | 
						|
 | 
						|
    if (total)
 | 
						|
        *total = SP->sb_total_y;
 | 
						|
    if (viewport)
 | 
						|
        *viewport = SP->sb_viewport_y;
 | 
						|
    if (cur)
 | 
						|
        *cur = SP->sb_cur_y;
 | 
						|
 | 
						|
    return OK;
 | 
						|
}
 | 
						|
 | 
						|
/* sb_refresh() - Used to draw the scrollbars. */
 | 
						|
 | 
						|
int sb_refresh(void)
 | 
						|
{
 | 
						|
    PDC_LOG(("sb_refresh() - called\n"));
 | 
						|
 | 
						|
    if (!SP)
 | 
						|
        return ERR;
 | 
						|
 | 
						|
    XCursesInstruct(CURSES_REFRESH_SCROLLBAR);
 | 
						|
 | 
						|
    return OK;
 | 
						|
}
 |