| /* 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; |
| } |
| |