Annotation of researchv10dc/630/src/newframe.c, revision 1.1

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: }

unix.superglobalmegacorp.com

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