ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/scrollbar-next.C
(Generate patch)

Comparing rxvt-unicode/src/scrollbar-next.C (file contents):
Revision 1.10 by pcg, Thu Apr 8 20:31:45 2004 UTC vs.
Revision 1.20 by root, Sun Jan 15 06:02:41 2006 UTC

23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 *----------------------------------------------------------------------*/ 24 *----------------------------------------------------------------------*/
25 25
26#include "../config.h" /* NECESSARY */ 26#include "../config.h" /* NECESSARY */
27#include "rxvt.h" /* NECESSARY */ 27#include "rxvt.h" /* NECESSARY */
28#include "scrollbar-next.intpro" /* PROTOS for internal routines */
29 28
30/*----------------------------------------------------------------------*/ 29/*----------------------------------------------------------------------*/
31#if defined(NEXT_SCROLLBAR) 30#if defined(NEXT_SCROLLBAR)
32 31
33#define n_stp_width 8 32#define n_stp_width 8
122 char a; 121 char a;
123 int x, y; 122 int x, y;
124 Pixmap d; 123 Pixmap d;
125 GC pointcolour; 124 GC pointcolour;
126 125
127 d = XCreatePixmap (display->display, scrollBar.win, width, height, XDEPTH); 126 d = XCreatePixmap (display->display, scrollBar.win, width, height, display->depth);
128 127
129 for (y = 0; y < height; y++) 128 for (y = 0; y < height; y++)
130 { 129 {
131 for (x = 0; x < width; x++) 130 for (x = 0; x < width; x++)
132 { 131 {
136 pointcolour = grayGC; 135 pointcolour = grayGC;
137 else if (a == '%' || a == 'd') 136 else if (a == '%' || a == 'd')
138 pointcolour = darkGC; 137 pointcolour = darkGC;
139 else /* if (a == '#' || a == 'b' || a) */ 138 else /* if (a == '#' || a == 'b' || a) */
140 pointcolour = blackGC; 139 pointcolour = blackGC;
140
141 XDrawPoint (display->display, d, pointcolour, x, y); 141 XDrawPoint (display->display, d, pointcolour, x, y);
142 } 142 }
143 } 143 }
144 return d; 144 return d;
145} 145}
149{ 149{
150 XGCValues gcvalue; 150 XGCValues gcvalue;
151 XColor xcol; 151 XColor xcol;
152 Pixmap stipple; 152 Pixmap stipple;
153 unsigned long light, dark; 153 unsigned long light, dark;
154 dDisp;
154 155
155 gcvalue.graphics_exposures = False; 156 gcvalue.graphics_exposures = False;
156 157
157 gcvalue.foreground = PixColors[Color_Black]; 158 gcvalue.foreground = pix_colors_focused[Color_Black];
158 blackGC = XCreateGC (display->display, scrollBar.win, 159 blackGC = XCreateGC (disp, scrollBar.win,
159 GCForeground | GCGraphicsExposures, &gcvalue); 160 GCForeground | GCGraphicsExposures, &gcvalue);
160 161
161 gcvalue.foreground = PixColors[Color_White]; 162 gcvalue.foreground = pix_colors_focused[Color_White];
162 whiteGC = XCreateGC (display->display, scrollBar.win, 163 whiteGC = XCreateGC (disp, scrollBar.win,
163 GCForeground | GCGraphicsExposures, &gcvalue); 164 GCForeground | GCGraphicsExposures, &gcvalue);
164 165
165 xcol.red = 0xaeba; 166 xcol.red = 0xaeba;
166 xcol.green = 0xaaaa; 167 xcol.green = 0xaaaa;
167 xcol.blue = 0xaeba; 168 xcol.blue = 0xaeba;
168 //if (!rXAllocColor (&xcol, "light gray"))//TODO//D// 169 xcol.pixel = pix_colors_focused[Color_scroll];
169 xcol.pixel = PixColors[Color_AntiqueWhite];
170 light = gcvalue.foreground = xcol.pixel; 170 light = gcvalue.foreground = xcol.pixel;
171 grayGC = XCreateGC (display->display, scrollBar.win, 171 grayGC = XCreateGC (disp, scrollBar.win,
172 GCForeground | GCGraphicsExposures, &gcvalue); 172 GCForeground | GCGraphicsExposures, &gcvalue);
173 173
174 xcol.red = 0x51aa; 174 xcol.red = 0x51aa;
175 xcol.green = 0x5555; 175 xcol.green = 0x5555;
176 xcol.blue = 0x5144; 176 xcol.blue = 0x5144;
177 //if (!rXAllocColor (&xcol, "dark gray"))//TODO//D// 177 //if (!rXAllocColor (&xcol, "dark gray"))//TODO//D//
178 xcol.pixel = PixColors[Color_Grey25]; 178 xcol.pixel = pix_colors_focused[Color_Grey25];
179 dark = gcvalue.foreground = xcol.pixel; 179 dark = gcvalue.foreground = xcol.pixel;
180 darkGC = XCreateGC (display->display, scrollBar.win, 180 darkGC = XCreateGC (disp, scrollBar.win,
181 GCForeground | GCGraphicsExposures, &gcvalue); 181 GCForeground | GCGraphicsExposures, &gcvalue);
182 182
183 stipple = XCreateBitmapFromData (display->display, scrollBar.win, 183 stipple = XCreateBitmapFromData (disp, scrollBar.win,
184 (char *)n_stp_bits, n_stp_width, 184 (char *)n_stp_bits, n_stp_width,
185 n_stp_height); 185 n_stp_height);
186 186
187 gcvalue.foreground = dark; 187 gcvalue.foreground = dark;
188 gcvalue.background = light; 188 gcvalue.background = light;
189 gcvalue.fill_style = FillOpaqueStippled; 189 gcvalue.fill_style = FillOpaqueStippled;
190 gcvalue.stipple = stipple; 190 gcvalue.stipple = stipple;
191 191
192 /* XSetWindowBackground (display->display, scrollBar.win, PixColors[Color_Red]); */ 192 /* XSetWindowBackground (disp, scrollBar.win, pix_colors_focused[Color_Red]); */
193 193
194 stippleGC = XCreateGC (display->display, scrollBar.win, 194 stippleGC = XCreateGC (disp, scrollBar.win,
195 GCForeground | GCBackground | GCStipple 195 GCForeground | GCBackground | GCStipple
196 | GCFillStyle | GCGraphicsExposures, &gcvalue); 196 | GCFillStyle | GCGraphicsExposures, &gcvalue);
197 197
198 dimple = renderPixmap (SCROLLER_DIMPLE, SCROLLER_DIMPLE_WIDTH, 198 dimple = renderPixmap (SCROLLER_DIMPLE, SCROLLER_DIMPLE_WIDTH,
199 SCROLLER_DIMPLE_HEIGHT); 199 SCROLLER_DIMPLE_HEIGHT);
210 210
211/* Draw bevel & arrows */ 211/* Draw bevel & arrows */
212void 212void
213rxvt_term::drawBevel (Drawable d, int x1, int y1, int w, int h) 213rxvt_term::drawBevel (Drawable d, int x1, int y1, int w, int h)
214{ 214{
215 int x2, y2; 215 int x2, y2;
216 dDisp;
216 217
217 x2 = x1 + w - 1; /* right point */ 218 x2 = x1 + w - 1; /* right point */
218 y2 = y1 + h - 1; /* bottom point */ 219 y2 = y1 + h - 1; /* bottom point */
219 /* white top and left */ 220 /* white top and left */
220 XDrawLine (display->display, d, whiteGC, x1, y1, x2, y1); 221 XDrawLine (disp, d, whiteGC, x1, y1, x2, y1);
221 XDrawLine (display->display, d, whiteGC, x1, y1, x1, y2); 222 XDrawLine (disp, d, whiteGC, x1, y1, x1, y2);
222 /* black bottom and right */ 223 /* black bottom and right */
223 XDrawLine (display->display, d, blackGC, x1, y2, x2, y2); 224 XDrawLine (disp, d, blackGC, x1, y2, x2, y2);
224 XDrawLine (display->display, d, blackGC, x2, y1, x2, y2); 225 XDrawLine (disp, d, blackGC, x2, y1, x2, y2);
225 /* dark inside bottom and right */ 226 /* dark inside bottom and right */
226 x1++, y1++, x2--, y2--; /* move in one point */ 227 x1++, y1++, x2--, y2--; /* move in one point */
227 XDrawLine (display->display, d, darkGC, x1, y2, x2, y2); 228 XDrawLine (disp, d, darkGC, x1, y2, x2, y2);
228 XDrawLine (display->display, d, darkGC, x2, y1, x2, y2); 229 XDrawLine (disp, d, darkGC, x2, y1, x2, y2);
229} 230}
230 231
231int 232int
232rxvt_term::scrollbar_show_next (int update, int last_top, int last_bot, int scrollbar_len) 233rxvt_term::scrollbar_show_next (int update, int last_top, int last_bot, int scrollbar_len)
233{ 234{
234 int height = scrollBar.end + SB_BUTTON_TOTAL_HEIGHT + SB_PADDING; 235 int height = scrollBar.end + SB_BUTTON_TOTAL_HEIGHT + SB_PADDING;
235 Drawable s; 236 Drawable s;
237 dDisp;
236 238
237 if ((scrollBar.init & R_SB_NEXT) == 0) 239 if ((scrollBar.init & R_SB_NEXT) == 0)
238 { 240 {
239 scrollBar.init |= R_SB_NEXT; 241 scrollBar.init |= R_SB_NEXT;
240 init_scrollbar_stuff (); 242 init_scrollbar_stuff ();
241 } 243 }
242 244
243 if (TermWin.nscrolled == 0 || !update) 245 if (top_row == 0 || !update)
244 { 246 {
245 XFillRectangle (display->display, scrollBar.win, grayGC, 0, 0, 247 XFillRectangle (disp, scrollBar.win, grayGC, 0, 0,
246 SB_WIDTH_NEXT + 1, height); 248 SB_WIDTH_NEXT + 1, height);
247 XDrawRectangle (display->display, scrollBar.win, blackGC, 0, 249 XDrawRectangle (disp, scrollBar.win, blackGC, 0,
248 -SB_BORDER_WIDTH, SB_WIDTH_NEXT, 250 -SB_BORDER_WIDTH, SB_WIDTH_NEXT,
249 height + SB_BORDER_WIDTH); 251 height + SB_BORDER_WIDTH);
250 XFillRectangle (display->display, scrollBar.win, stippleGC, 252 XFillRectangle (disp, scrollBar.win, stippleGC,
251 SB_LEFT_PADDING, 0, SB_BUTTON_WIDTH, height); 253 SB_LEFT_PADDING, 0, SB_BUTTON_WIDTH, height);
252 } 254 }
253 if (TermWin.nscrolled) 255
256 if (top_row)
254 { 257 {
255 if (last_top < scrollBar.top || !update) 258 if (last_top < scrollBar.top || !update)
256 XFillRectangle (display->display, scrollBar.win, stippleGC, 259 XFillRectangle (disp, scrollBar.win, stippleGC,
257 SB_LEFT_PADDING, SB_PADDING + last_top, 260 SB_LEFT_PADDING, SB_PADDING + last_top,
258 SB_BUTTON_WIDTH, scrollBar.top - last_top); 261 SB_BUTTON_WIDTH, scrollBar.top - last_top);
262
259 if (scrollBar.bot < last_bot || !update) 263 if (scrollBar.bot < last_bot || !update)
260 XFillRectangle (display->display, scrollBar.win, stippleGC, 264 XFillRectangle (disp, scrollBar.win, stippleGC,
261 SB_LEFT_PADDING, scrollBar.bot + SB_PADDING, 265 SB_LEFT_PADDING, scrollBar.bot + SB_PADDING,
262 SB_BUTTON_WIDTH, (last_bot - scrollBar.bot)); 266 SB_BUTTON_WIDTH, (last_bot - scrollBar.bot));
267
263 XFillRectangle (display->display, scrollBar.win, grayGC, 268 XFillRectangle (disp, scrollBar.win, grayGC,
264 SB_LEFT_PADDING, scrollBar.top + SB_PADDING, 269 SB_LEFT_PADDING, scrollBar.top + SB_PADDING,
265 SB_BUTTON_WIDTH, scrollbar_len); 270 SB_BUTTON_WIDTH, scrollbar_len);
271
266 XCopyArea (display->display, dimple, scrollBar.win, whiteGC, 0, 0, 272 XCopyArea (disp, dimple, scrollBar.win, whiteGC, 0, 0,
267 SCROLLER_DIMPLE_WIDTH, SCROLLER_DIMPLE_HEIGHT, 273 SCROLLER_DIMPLE_WIDTH, SCROLLER_DIMPLE_HEIGHT,
268 (SB_WIDTH_NEXT - SCROLLER_DIMPLE_WIDTH) / 2, 274 (SB_WIDTH_NEXT - SCROLLER_DIMPLE_WIDTH) / 2,
269 scrollBar.top + SB_BEVEL_WIDTH_UPPER_LEFT + 275 scrollBar.top + SB_BEVEL_WIDTH_UPPER_LEFT +
270 (scrollbar_len - SCROLLER_DIMPLE_HEIGHT) / 2); 276 (scrollbar_len - SCROLLER_DIMPLE_HEIGHT) / 2);
271 277
278 drawBevel (scrollBar.win, SB_BUTTON_BEVEL_X, 284 drawBevel (scrollBar.win, SB_BUTTON_BEVEL_X,
279 height - SB_BUTTON_SINGLE_HEIGHT, SB_BUTTON_WIDTH, 285 height - SB_BUTTON_SINGLE_HEIGHT, SB_BUTTON_WIDTH,
280 SB_BUTTON_HEIGHT); 286 SB_BUTTON_HEIGHT);
281 287
282 s = (scrollbar_isUp ()) ? upArrowHi : upArrow; 288 s = (scrollbar_isUp ()) ? upArrowHi : upArrow;
283 XCopyArea (display->display, s, scrollBar.win, whiteGC, 0, 0, 289 XCopyArea (disp, s, scrollBar.win, whiteGC, 0, 0,
284 ARROW_WIDTH, ARROW_HEIGHT, SB_BUTTON_FACE_X, 290 ARROW_WIDTH, ARROW_HEIGHT, SB_BUTTON_FACE_X,
285 height - SB_BUTTON_BOTH_HEIGHT + SB_BEVEL_WIDTH_UPPER_LEFT); 291 height - SB_BUTTON_BOTH_HEIGHT + SB_BEVEL_WIDTH_UPPER_LEFT);
286 292
287 s = (scrollbar_isDn ()) ? downArrowHi : downArrow; 293 s = (scrollbar_isDn ()) ? downArrowHi : downArrow;
288 XCopyArea (display->display, s, scrollBar.win, whiteGC, 0, 0, 294 XCopyArea (disp, s, scrollBar.win, whiteGC, 0, 0,
289 ARROW_WIDTH, ARROW_HEIGHT, SB_BUTTON_FACE_X, 295 ARROW_WIDTH, ARROW_HEIGHT, SB_BUTTON_FACE_X,
290 height - SB_BUTTON_SINGLE_HEIGHT + SB_BEVEL_WIDTH_UPPER_LEFT); 296 height - SB_BUTTON_SINGLE_HEIGHT + SB_BEVEL_WIDTH_UPPER_LEFT);
291 } 297 }
298
292 return 1; 299 return 1;
293} 300}
294#endif /* NEXT_SCROLLBAR */ 301#endif /* NEXT_SCROLLBAR */
295/*----------------------- end-of-file (C source) -----------------------*/ 302/*----------------------- end-of-file (C source) -----------------------*/

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines