Annotation of researchv9/jerq/src/lib/jj/movy.c, revision 1.1.1.1

1.1       root        1: /*% cyntax -j % && 3cc -go #.m %
                      2:  * movy -- jerq movie editor
                      3:  */
                      4: #include <jerq.h>
                      5: #include <jerqio.h>
                      6: #define        NWIN    40
                      7: struct win{
                      8:        Bitmap *image;
                      9:        struct winfns *f;
                     10:        void *private;
                     11: }win[NWIN];
                     12: int nwin=0;
                     13: struct winfns{
                     14:        int (*input)();
                     15:        int (*output)();
                     16: };
                     17: int nframe=0;
                     18: main(){
                     19:        register i;
                     20:        request(KBD|MOUSE);
                     21:        for(;;){
                     22:                if(button3())
                     23:                        menu3();
                     24:                if(nwin)
                     25:                        (*win[0].f->input)(&win[0]);
                     26:                for(i=0;i!=nwin;i++)
                     27:                        (*win[i].f->output)(&win[i]);
                     28:                wait(CPU);
                     29:        }
                     30: }
                     31: #include <menu.h>
                     32: /*
                     33:  * Button 3 menu:
                     34:  *     M3              M3new           M3frame
                     35:  *     +-------+       +--------+
                     36:  *     |New  ->|-----> |playback|
                     37:  *     |Delete |       |exposure|      +---+
                     38:  *     |Move   |       |frame ->|----> | 1 |
                     39:  *     |Exit   |       +--------+      | 2 |
                     40:  *     +-------+                       | 3 |
                     41:  *                                     | 4 |
                     42:  *                                     | . |
                     43:  *                                     | . |
                     44:  *                                     | . |
                     45:  *                                     +---+
                     46:  */
                     47: M3framegen(n){
                     48:        static NMitem item;
                     49:        static char name[10]={0, 0, 0, 0, 0, HitFrame};
                     50:        if(++n<1 || nframe<n)
                     51:                item.text=0;
                     52:        else{
                     53:                sprintf(name, "%d", n);
                     54:                item.text=name;
                     55:                item.data=n;
                     56:        }
                     57:        return &item;
                     58: }
                     59: NMenu M3frame={0, M3framegen};
                     60: NMitem M3newitems={
                     61: {"playback", 0, 0, 0, 0, HitPlayback},
                     62: {"exposure", 0, 0, 0, 0, HitExposure},
                     63: {"frame, 0, M3frame},
                     64: 0
                     65: };
                     66: NMenu M3new={M3newitems};
                     67: NMitem M3items[]={
                     68:        {"New", 0, M3new},
                     69:        {"Delete", 0, 0, 0, 0, HitDelete},
                     70:        {"Move", 0, 0, 0, 0, HitMove},
                     71:        {"Exit", 0, 0, 0, 0, HitExit},
                     72:        0
                     73: };
                     74: NMenu M3={M3items};
                     75: menu3(){
                     76:        mhit(&M3, 3);
                     77: }
                     78:        cursswitch(t);
                     79:        return button(b);
                     80: }

unix.superglobalmegacorp.com

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