1 /* Public Domain Curses */ 2 3 #include "pdcx11.h" 4 5 /*man-start************************************************************** 6 7 sb 8 -- 9 10 ### Synopsis 11 12 int sb_init(void) 13 int sb_set_horz(int total, int viewport, int cur) 14 int sb_set_vert(int total, int viewport, int cur) 15 int sb_get_horz(int *total, int *viewport, int *cur) 16 int sb_get_vert(int *total, int *viewport, int *cur) 17 int sb_refresh(void); 18 19 ### Description 20 21 These functions manipulate the scrollbar. 22 23 ### Return Value 24 25 All functions return OK on success and ERR on error. 26 27 ### Portability 28 X/Open BSD SYS V 29 sb_init - - - 30 sb_set_horz - - - 31 sb_set_vert - - - 32 sb_get_horz - - - 33 sb_get_vert - - - 34 sb_refresh - - - 35 36 **man-end****************************************************************/ 37 38 bool sb_started = FALSE; 39 40 /* sb_init() is the sb initialization routine. 41 This must be called before initscr(). */ 42 43 int sb_init(void) 44 { 45 PDC_LOG(("sb_init() - called\n")); 46 47 if (SP) 48 return ERR; 49 50 sb_started = TRUE; 51 52 return OK; 53 } 54 55 /* sb_set_horz() - Used to set horizontal scrollbar. 56 57 total = total number of columns 58 viewport = size of viewport in columns 59 cur = current column in total */ 60 61 int sb_set_horz(int total, int viewport, int cur) 62 { 63 PDC_LOG(("sb_set_horz() - called: total %d viewport %d cur %d\n", 64 total, viewport, cur)); 65 66 if (!SP) 67 return ERR; 68 69 SP->sb_total_x = total; 70 SP->sb_viewport_x = viewport; 71 SP->sb_cur_x = cur; 72 73 return OK; 74 } 75 76 /* sb_set_vert() - Used to set vertical scrollbar. 77 78 total = total number of columns on line 79 viewport = size of viewport in columns 80 cur = current column in total */ 81 82 int sb_set_vert(int total, int viewport, int cur) 83 { 84 PDC_LOG(("sb_set_vert() - called: total %d viewport %d cur %d\n", 85 total, viewport, cur)); 86 87 if (!SP) 88 return ERR; 89 90 SP->sb_total_y = total; 91 SP->sb_viewport_y = viewport; 92 SP->sb_cur_y = cur; 93 94 return OK; 95 } 96 97 /* sb_get_horz() - Used to get horizontal scrollbar. 98 99 total = total number of lines 100 viewport = size of viewport in lines 101 cur = current line in total */ 102 103 int sb_get_horz(int *total, int *viewport, int *cur) 104 { 105 PDC_LOG(("sb_get_horz() - called\n")); 106 107 if (!SP) 108 return ERR; 109 110 if (total) 111 *total = SP->sb_total_x; 112 if (viewport) 113 *viewport = SP->sb_viewport_x; 114 if (cur) 115 *cur = SP->sb_cur_x; 116 117 return OK; 118 } 119 120 /* sb_get_vert() - Used to get vertical scrollbar. 121 122 total = total number of lines 123 viewport = size of viewport in lines 124 cur = current line in total */ 125 126 int sb_get_vert(int *total, int *viewport, int *cur) 127 { 128 PDC_LOG(("sb_get_vert() - called\n")); 129 130 if (!SP) 131 return ERR; 132 133 if (total) 134 *total = SP->sb_total_y; 135 if (viewport) 136 *viewport = SP->sb_viewport_y; 137 if (cur) 138 *cur = SP->sb_cur_y; 139 140 return OK; 141 } 142 143 /* sb_refresh() - Used to draw the scrollbars. */ 144 145 int sb_refresh(void) 146 { 147 PDC_LOG(("sb_refresh() - called\n")); 148 149 if (!SP) 150 return ERR; 151 152 XCursesInstruct(CURSES_REFRESH_SCROLLBAR); 153 154 return OK; 155 } 156