Annotation of researchv9/jtools/src/sux/newframe.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.