|
|
1.1 ! root 1: #include <jerq.h> ! 2: #include <layer.h> ! 3: #include <queue.h> ! 4: #include <jerqproc.h> ! 5: #include "frame.h" ! 6: ! 7: Rectangle Null /* ={0,0,0,0} */; ! 8: Frame * ! 9: fralloc(r, m) ! 10: Rectangle r; ! 11: { ! 12: register Frame *t=(Frame *)Ualloc(sizeof(Frame)); ! 13: if(t){ ! 14: strzero(&t->str); ! 15: t->margin=m; ! 16: frsetrects(t, r); ! 17: } ! 18: return t; ! 19: } ! 20: frsetrects(f, r) ! 21: register Frame *f; ! 22: Rectangle r; ! 23: { ! 24: f->totalrect=r; ! 25: f->rect=inset(r, f->margin); ! 26: f->rect.corner.y-=(f->rect.corner.y-f->rect.origin.y)%newlnsz; ! 27: f->scrollrect=f->rect; ! 28: f->scrollrect.origin.x+=2; ! 29: f->scrollrect.corner.x=f->scrollrect.origin.x+SCROLLWIDTH; ! 30: f->rect.origin.x+=3*SCROLLWIDTH/2; ! 31: f->nlines=(f->rect.corner.y-f->rect.origin.y)/newlnsz; ! 32: if(f->nlines>MAXLINES) f->nlines=MAXLINES; ! 33: setcpl(f, 0, f->nlines-1); ! 34: } ! 35: frinit(t) ! 36: register Frame *t; ! 37: { ! 38: clear(t->totalrect, 1); ! 39: border(P->layer, t->totalrect, t->margin, F_OR); ! 40: strzero(&t->str); ! 41: t->s1=t->s2=0; ! 42: setcpl(t, 0, t->nlines-1); ! 43: } ! 44: frfree(f) ! 45: register Frame *f; ! 46: { ! 47: if(f==0 || f->str.s==0) ! 48: return; ! 49: gcfree(f->str.s); ! 50: free(f); ! 51: } ! 52: drawframe(f) ! 53: register Frame *f; ! 54: { ! 55: int compl; ! 56: clear(P->layer->rect, 1); ! 57: border(P->layer, P->layer->rect, f->margin, F_OR); ! 58: drawscrollbar(f); ! 59: draw(f, f->rect.origin, f->str.s, f->str.n); ! 60: compl=complete; ! 61: selectf(f, F_XOR); ! 62: complete=compl; ! 63: } ! 64: closeframe(t) ! 65: register Frame *t; ! 66: { ! 67: if(t==0 || t->str.s==0) ! 68: return; ! 69: gcfree(t->str.s); ! 70: t->str.s=0; ! 71: t->str.n=t->str.size=0; ! 72: t->totalrect=Null; ! 73: t->rect=Null; ! 74: t->scrollrect=Null; ! 75: t->str.s=0; /* Mark it available */ ! 76: } ! 77: setsel(t, n) ! 78: register Frame *t; ! 79: register n; ! 80: { ! 81: t->s1=t->s2=n; ! 82: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.