comparison lib/AuxPanel.c @ 15:89750191b165

imported patch 18_patch-AuxPanel.c.diff
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 08 Mar 2010 20:38:16 +0900
parents 92745d501b9a
children
comparison
equal deleted inserted replaced
14:5a32b68b627d 15:89750191b165
460 static void 460 static void
461 allocDisplaySegments(cpw, n) 461 allocDisplaySegments(cpw, n)
462 AuxPanelWidget cpw; 462 AuxPanelWidget cpw;
463 Cardinal n; 463 Cardinal n;
464 { 464 {
465 if (cpw->cpanel.dispauxsegmentsize > n) return; 465
466 if (cpw->cpanel.dispauxsegmentsize >= n) return;
467 /* $BI=<($7$?$$%;%0%a%s%H?t$,8=:_$NI=<(%;%0%a%s%H%5%$%:$HF1$8$J$i2?$b$7$J$$(B */
468
466 n = ((n + 3) / 4) * 4 ; 469 n = ((n + 3) / 4) * 4 ;
467 if (cpw->cpanel.dispauxsegments == NULL) { 470 if (cpw->cpanel.dispauxsegments == NULL) {
468 cpw->cpanel.dispauxsegments = 471 cpw->cpanel.dispauxsegments =
469 (DisplaySegment *)XtCalloc(n, sizeof(DisplaySegment)); 472 (DisplaySegment *)XtCalloc(n, sizeof(DisplaySegment));
470 } else { 473 } else {
588 { 591 {
589 AuxPanelWidget cpw = (AuxPanelWidget)w; 592 AuxPanelWidget cpw = (AuxPanelWidget)w;
590 Cardinal i; 593 Cardinal i;
591 DisplaySegment *dseg; 594 DisplaySegment *dseg;
592 595
593 cpw->cpanel.numauxsegments = nseg; 596 ICString *to;
597
594 allocDisplaySegments(cpw, nseg); 598 allocDisplaySegments(cpw, nseg);
595 for (i = 0, dseg = cpw->cpanel.dispauxsegments ; i < nseg ; i++, dseg++) { 599 dseg = cpw->cpanel.dispauxsegments;
596 /* $BA4=q$-49$($K$J$C$F$7$^$&!#(BICCompareSegment $B$,;H$($k$J$i(B 600 for (i = 0; i < nseg ; i++) {
597 $B;H$$$?$$$N$@$,!#(B */
598 copyString(segments +i, &dseg->seg); 601 copyString(segments +i, &dseg->seg);
599 dseg->redrawpos = 0; 602 dseg->redrawpos = 0;
600 dseg->width = 0; 603 dseg->width = 0;
604 dseg++;
601 } 605 }
606 /* $B%;%0%a%s%H?t$,8:$k>l9g!"M>J,$K$J$C$?5l%;%0%a%s%HNN0h$N3+J|(B */
607 /* $B7k6I(B buffer.c: free(buf) $B$G3+J|$5$l$k$+$i$[$C$H$$$F$b$$$$(B? */
608 for (i = nseg; i < cpw->cpanel.numauxsegments; i++) {
609 to = &dseg->seg;
610 if (to->data != NULL) {
611 XtFree(to->data);
612 to->data = NULL;
613 }
614 dseg->redrawpos = 0;
615 dseg->width = 0;
616 dseg++;
617 }
618 cpw->cpanel.numauxsegments = nseg;
619
620 /*
621 (1) allocDisplaySegments$B$O(B
622 cpw->cpanel.numauxsegments$B$r5l%;%0%a%s%H?t$@$H;W$C$F$k$+$i(B
623 cpw->cpanel.numauxsegments = nseg $B$rKAF,$G$d$C$A$c$&$H$^$:$$$N$G$O(B?
624 cpw->cpanel.numauxsegments = nseg $B$O:G8e$K$9$k!#(B
625 (2) for$B%k!<%W$O!"5l%;%0%a%s%H?t$h$j?7%;%0%a%s%H?t$,8:$k>l9g(B
626 XtFree$B$7$J$$$^$^$NI=<(%;%0%a%s%HNN0h$,=P$F$/$k!#(B
627 copyString$B$O%;%0%a%s%H?t$,8:$k>l9g$KIT0B(B
628 allocDisplaySegments$B$GBP1~$9$Y$-(B? (allocDisplaySegments$B$G(BXtFree$B$9$k(B?)
629 copyString$B$GBP1~$9$Y$-(B?
630 $B$3$3$GBP1~$9$Y$-(B?
631 (3) allocDisplaySegments$B$G(B
632 $BJQ99$5$l$k$N$O(B
633 cpw->cpanel.dispauxsegmentsize
634 cpw->cpanel.dispauxsegments XtRealloc$B$NJV$jCM(B
635 $BJQ99$5$l$J$$$1$I;H$o$l$k$N$O(B
636 cpw->cpanel.numauxsegments
637 $B$3$l$O$J$K(B? include/AuxPanelP.h$B$GDj5A$7$F$k$@$1$G%3%a%s%H$J$7(B
638 */
639
602 Layout(cpw, False, False); 640 Layout(cpw, False, False);
603 if (XtIsRealized(w)) XClearWindow(XtDisplay(w), XtWindow(w)); 641 if (XtIsRealized(w)) XClearWindow(XtDisplay(w), XtWindow(w));
604 UpdateAuxDisplay(cpw); 642 UpdateAuxDisplay(cpw);
605 return; 643 return;
606 } 644 }