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

Comparing rxvt-unicode/src/graphics.C (file contents):
Revision 1.2 by pcg, Mon Nov 24 17:31:27 2003 UTC vs.
Revision 1.3 by pcg, Tue Nov 25 11:52:42 2003 UTC

1/*--------------------------------*-C-*---------------------------------* 1/*--------------------------------*-C-*---------------------------------*
2 * File: graphics.c 2 * File: graphics.c
3 *----------------------------------------------------------------------* 3 *----------------------------------------------------------------------*
4 * $Id: graphics.C,v 1.2 2003/11/24 17:31:27 pcg Exp $ 4 * $Id: graphics.C,v 1.3 2003/11/25 11:52:42 pcg Exp $
5 * 5 *
6 * All portions of code are copyright by their respective author/s. 6 * All portions of code are copyright by their respective author/s.
7 * Copyright (c) 1994 Rob Nation <nation@rocket.sanders.lockheed.com> 7 * Copyright (c) 1994 Rob Nation <nation@rocket.sanders.lockheed.com>
8 * - original version 8 * - original version
9 * Copyright (c) 1997 Raul Garcia Garcia <rgg@tid.es> 9 * Copyright (c) 1997 Raul Garcia Garcia <rgg@tid.es>
104 grwin->y = y; 104 grwin->y = y;
105 grwin->w = w; 105 grwin->w = w;
106 grwin->h = h; 106 grwin->h = h;
107 grwin->screen = 0; 107 grwin->screen = 0;
108 grwin->prev = NULL; 108 grwin->prev = NULL;
109 grwin->next = R->h->gr_root; 109 grwin->next = R->gr_root;
110 if (grwin->next) 110 if (grwin->next)
111 grwin->next->prev = grwin; 111 grwin->next->prev = grwin;
112 R->h->gr_root = grwin; 112 R->gr_root = grwin;
113 grwin->graphics = NULL; 113 grwin->graphics = NULL;
114 R->h->graphics_up++; 114 R->graphics_up++;
115 115
116 rxvt_tt_printf(aR_ "\033W%ld\n", (long)grwin->win); 116 rxvt_tt_printf(aR_ "\033W%ld\n", (long)grwin->win);
117} 117}
118 118
119/* ARGSUSED */ 119/* ARGSUSED */
221 if (grwin->next != NULL) 221 if (grwin->next != NULL)
222 grwin->next->prev = grwin->prev; 222 grwin->next->prev = grwin->prev;
223 if (grwin->prev != NULL) 223 if (grwin->prev != NULL)
224 grwin->prev->next = grwin->next; 224 grwin->prev->next = grwin->next;
225 else 225 else
226 R->h->gr_root = grwin->next; 226 R->gr_root = grwin->next;
227 free(grwin); 227 free(grwin);
228 228
229 R->h->graphics_up--; 229 R->graphics_up--;
230} 230}
231 231
232/* ARGSUSED */ 232/* ARGSUSED */
233/* INTPROTO */ 233/* INTPROTO */
234void 234void
325void 325void
326rxvt_Gr_ButtonReport(pR_ int but, int x, int y) 326rxvt_Gr_ButtonReport(pR_ int but, int x, int y)
327{ 327{
328 grwin_t *grwin; 328 grwin_t *grwin;
329 329
330 for (grwin = R->h->gr_root; grwin != NULL; grwin = grwin->next) 330 for (grwin = R->gr_root; grwin != NULL; grwin = grwin->next)
331 if ((x > grwin->x) 331 if ((x > grwin->x)
332 && (y > grwin->y) 332 && (y > grwin->y)
333 && ((unsigned int)x < grwin->x + grwin->w) 333 && ((unsigned int)x < grwin->x + grwin->w)
334 && ((unsigned int)y < grwin->y + grwin->h)) 334 && ((unsigned int)y < grwin->y + grwin->h))
335 break; 335 break;
360 360
361 if ((cmd == 'G') && (win_id == None)) { 361 if ((cmd == 'G') && (win_id == None)) {
362 rxvt_Gr_Geometry(aR_ NULL, NULL); 362 rxvt_Gr_Geometry(aR_ NULL, NULL);
363 return; 363 return;
364 } 364 }
365 if ((win_id == None) && (R->h->gr_last_id != None)) 365 if ((win_id == None) && (R->gr_last_id != None))
366 win_id = R->h->gr_last_id; 366 win_id = R->gr_last_id;
367 367
368 if (win_id == None) 368 if (win_id == None)
369 return; 369 return;
370 370
371 grwin = R->h->gr_root; 371 grwin = R->gr_root;
372 while ((grwin != NULL) && (grwin->win != win_id)) 372 while ((grwin != NULL) && (grwin->win != win_id))
373 grwin = grwin->next; 373 grwin = grwin->next;
374 374
375 if (grwin == NULL) 375 if (grwin == NULL)
376 return; 376 return;
434void 434void
435rxvt_Gr_scroll(pR_ int count) 435rxvt_Gr_scroll(pR_ int count)
436{ 436{
437 grwin_t *grwin, *next; 437 grwin_t *grwin, *next;
438 438
439 if ((count == 0) && (R->h->gr_prev_start == R->TermWin.view_start)) 439 if ((count == 0) && (R->gr_prev_start == R->TermWin.view_start))
440 return; 440 return;
441 441
442 R->h->gr_prev_start = R->TermWin.view_start; 442 R->gr_prev_start = R->TermWin.view_start;
443 443
444 for (grwin = R->h->gr_root; grwin != NULL; grwin = next) { 444 for (grwin = R->gr_root; grwin != NULL; grwin = next) {
445 next = grwin->next; 445 next = grwin->next;
446 grwin->y -= (count * R->TermWin.fheight); 446 grwin->y -= (count * R->TermWin.fheight);
447 if ((long)(grwin->y + grwin->h) 447 if ((long)(grwin->y + grwin->h)
448 < -(long)(R->TermWin.saveLines * R->TermWin.fheight)) 448 < -(long)(R->TermWin.saveLines * R->TermWin.fheight))
449 rxvt_Gr_DestroyWindow(aR_ grwin); 449 rxvt_Gr_DestroyWindow(aR_ grwin);
458void 458void
459rxvt_Gr_ClearScreen(pR) 459rxvt_Gr_ClearScreen(pR)
460{ 460{
461 grwin_t *grwin, *next; 461 grwin_t *grwin, *next;
462 462
463 for (grwin = R->h->gr_root; grwin != NULL; grwin = next) { 463 for (grwin = R->gr_root; grwin != NULL; grwin = next) {
464 next = grwin->next; 464 next = grwin->next;
465 if ((grwin->screen == 0) && (grwin->y + grwin->h > 0)) { 465 if ((grwin->screen == 0) && (grwin->y + grwin->h > 0)) {
466 if (grwin->y >= 0) 466 if (grwin->y >= 0)
467 rxvt_Gr_DestroyWindow(aR_ grwin); 467 rxvt_Gr_DestroyWindow(aR_ grwin);
468 else 468 else
476void 476void
477rxvt_Gr_ChangeScreen(pR) 477rxvt_Gr_ChangeScreen(pR)
478{ 478{
479 grwin_t *grwin, *next; 479 grwin_t *grwin, *next;
480 480
481 for (grwin = R->h->gr_root; grwin != NULL; grwin = next) { 481 for (grwin = R->gr_root; grwin != NULL; grwin = next) {
482 next = grwin->next; 482 next = grwin->next;
483 if (grwin->y + grwin->h > 0) { 483 if (grwin->y + grwin->h > 0) {
484 if (grwin->screen == 1) { 484 if (grwin->screen == 1) {
485 XMapWindow(R->Xdisplay, grwin->win); 485 XMapWindow(R->Xdisplay, grwin->win);
486 grwin->screen = 0; 486 grwin->screen = 0;
497void 497void
498rxvt_Gr_expose(pR_ Window win) 498rxvt_Gr_expose(pR_ Window win)
499{ 499{
500 grwin_t *grwin; 500 grwin_t *grwin;
501 501
502 for (grwin = R->h->gr_root; grwin != NULL; grwin = grwin->next) { 502 for (grwin = R->gr_root; grwin != NULL; grwin = grwin->next) {
503 if (grwin->win == win) { 503 if (grwin->win == win) {
504 rxvt_Gr_Redraw(aR_ grwin); 504 rxvt_Gr_Redraw(aR_ grwin);
505 break; 505 break;
506 } 506 }
507 } 507 }
512void 512void
513rxvt_Gr_Resize(pR_ int w __attribute__((unused)), int h) 513rxvt_Gr_Resize(pR_ int w __attribute__((unused)), int h)
514{ 514{
515 grwin_t *grwin; 515 grwin_t *grwin;
516 516
517 for (grwin = R->h->gr_root; grwin != NULL; grwin = grwin->next) { 517 for (grwin = R->gr_root; grwin != NULL; grwin = grwin->next) {
518 if (R->TermWin.height != h) { 518 if (R->TermWin.height != h) {
519 grwin->y += (R->TermWin.height - h); 519 grwin->y += (R->TermWin.height - h);
520 XMoveWindow(R->Xdisplay, grwin->win, 520 XMoveWindow(R->Xdisplay, grwin->win,
521 grwin->x, 521 grwin->x,
522 grwin->y + (R->TermWin.view_start * R->TermWin.fheight)); 522 grwin->y + (R->TermWin.view_start * R->TermWin.fheight));
529void 529void
530rxvt_Gr_reset(pR) 530rxvt_Gr_reset(pR)
531{ 531{
532 grwin_t *grwin, *next; 532 grwin_t *grwin, *next;
533 533
534 for (grwin = R->h->gr_root; grwin != NULL; grwin = next) { 534 for (grwin = R->gr_root; grwin != NULL; grwin = next) {
535 next = grwin->next; 535 next = grwin->next;
536 rxvt_Gr_DestroyWindow(aR_ grwin); 536 rxvt_Gr_DestroyWindow(aR_ grwin);
537 } 537 }
538 538
539 R->h->graphics_up = 0; 539 R->graphics_up = 0;
540} 540}
541 541
542/* EXTPROTO */ 542/* EXTPROTO */
543int 543int
544rxvt_Gr_Displayed(pR) 544rxvt_Gr_Displayed(pR)
545{ 545{
546 return R->h->graphics_up; 546 return R->graphics_up;
547} 547}
548#endif 548#endif
549/*----------------------- end-of-file (C source) -----------------------*/ 549/*----------------------- end-of-file (C source) -----------------------*/

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines