|
|
1.1 root 1: #include "frame.h"
2:
3: redraw(f, pt)
4: Frame *f;
5: Point pt;
6: {
7: register Box *b;
8: int nb;
9: for(nb=0,b=f->box; nb<f->nbox; nb++, b++){
10: cklinewrap(f, &pt, b);
11: if(b->len>=0)
12: string(f->font, b->ptr, B, pt, F_XOR);
13: pt.x+=b->wid;
14: }
15: }
16: Point
17: draw(f, pt)
18: Frame *f;
19: Point pt;
20: {
21: register Box *b;
22: register nb, n;
23: for(b=f->box,nb=0; nb<f->nbox; nb++, b++){
24: cklinewrap0(f, &pt, b);
25: if(pt.y==f->r.corner.y){
26: f->nchars-=frstrlen(f, nb);
27: delbox(f, nb, f->nbox-1);
28: break;
29: }
30: if(b->len>0){
31: n=canfit(f, pt, b);
32: if(n==0)
33: panic("draw: canfit==0");
34: if(n!=b->len){
35: splitbox(f, nb, n);
36: b=&f->box[nb];
37: }
38: pt.x+=b->wid;
39: }else{
40: if(b->bc=='\n')
41: pt.x=f->left, pt.y+=f->font->height;
42: else
43: pt.x+=newwid(f, pt, b);
44: }
45: }
46: return pt;
47: }
48: frstrlen(f, nb)
49: register Frame *f;
50: register nb;
51: {
52: register n;
53: for(n=0; nb<f->nbox; nb++)
54: n+=LEN(&f->box[nb]);
55: return n;
56: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.