Annotation of researchv9/jtools/src/sux/newframe.c, revision 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.