Annotation of researchv9/jtools/src/sunlib/t5.c, revision 1.1

1.1     ! root        1: /*
        !             2:        hierarchical menu test
        !             3: dfn() [f1] gets called when moving to a pop-aside menu
        !             4:                also gets called when moving off right edge of any
        !             5:                non-heirarchical menu!--f3 gets called immediately after!
        !             6: bfn() [f2] gets called when moving back to a lower menu
        !             7:                also gets called after f3 -- once per pop-aside menu
        !             8: hfn() [f3] gets called when item is selected
        !             9: */
        !            10: 
        !            11: #include       "menu.h"
        !            12: #include       "jerq.h"
        !            13: 
        !            14: #define DEFHEIGHT 14
        !            15: #define CLEARLN        {       rectf(&display,Rpt(Drect.org,           \
        !            16:                        Pt(Drect.cor.x,Drect.org.y+DEFHEIGHT)),F_CLR);}
        !            17: #define PRINT(S)       {printf("%s\n",S);}
        !            18: #define oPRINT(S)      {       CLEARLN;                                \
        !            19:                        string(&defont,(S),&display,Drect.org,F_STORE);}                                
        !            20: void quit(), f1(), f2(), f3();
        !            21: 
        !            22: static NMenu m1, m2, m3, m4;
        !            23: NMitem item1[] = {
        !            24:                "gods", "help me please!",              0,f1,f2,f3,0,
        !            25:                "men",  "help me please!",              0,f1,f2,f3,1,
        !            26:                "art",  "help me please!",              0,f1,f2,f3,2,
        !            27:                "snarf","help me please!",              0,f1,f2,f3,3,
        !            28:                0
        !            29: };
        !            30: NMitem item2[] = {
        !            31:                "add all","help me please!",            0,f1,f2,f3,4,
        !            32:                "free all","help me please!",           &m2,f1,f2,f3,5,
        !            33:                "move","help me please!",               0,f1,f2,f3,6,
        !            34:                "top","help me please!",                0,f1,f2,f3,7,
        !            35:                "bottom","help me please!",             0,f1,f2,f3,8,
        !            36:                "mark/unmark","help me please!",        &m1,f1,f2,f3,9,
        !            37:                "free","help me please!",               0,f1,f2,f3,10,
        !            38:                "add all","help me please!",            0,f1,f2,f3,4,
        !            39:                "free all","help me please!",           &m2,f1,f2,f3,5,
        !            40:                "move","help me please!",               0,f1,f2,f3,6,
        !            41:                "top","help me please!",                0,f1,f2,f3,7,
        !            42:                "bottom","help me please!",             0,f1,f2,f3,8,
        !            43:                "mark/unmark","help me please!",        &m1,f1,f2,f3,9,
        !            44:                "free","help me please!",               0,f1,f2,f3,10,
        !            45:                "add all","help me please!",            0,f1,f2,f3,4,
        !            46:                "free all","help me please!",           &m2,f1,f2,f3,5,
        !            47:                "move","help me please!",               0,f1,f2,f3,6,
        !            48:                "top","help me please!",                0,f1,f2,f3,7,
        !            49:                "bottom","help me please!",             0,f1,f2,f3,8,
        !            50:                "mark/unmark","help me please!",        &m1,f1,f2,f3,9,
        !            51:                "free","help me please!",               0,f1,f2,f3,10,
        !            52:                0
        !            53: };
        !            54: NMitem item3[] ={
        !            55:                "save","help me please!",               0,f1,f2,f3,11,
        !            56:                "read","help me please!",               &m4,f1,f2,f3,12,
        !            57:                "quit","help me please!",               0,f1,f2,f3,13,
        !            58:                0
        !            59: };
        !            60: #ifdef old
        !            61: NMitem item1[] = {
        !            62:                "gods", "help me please!",              0,0,0,0,0,
        !            63:                "men",  "help me please!",              0,0,0,0,1,
        !            64:                "art",  "help me please!",              0,0,0,0,2,
        !            65:                "philosophy","help me please!", 0,0,0,0,3,
        !            66:                0
        !            67: };
        !            68: NMitem item2[] = {
        !            69:                "add all","help me please!",            0,0,0,0,4,
        !            70:                "free all","help me please!",           &m2,0,0,0,5,
        !            71:                "move","help me please!",               0,0,0,0,6,
        !            72:                "top","help me please!",                0,0,0,0,7,
        !            73:                "bottom","help me please!",             0,0,0,0,8,
        !            74:                "mark/unmark","help me please!",        &m1,0,0,0,9,
        !            75:                "free","help me please!",               0,0,0,0,10,
        !            76:                0
        !            77: };
        !            78: NMitem item3[] ={
        !            79:                "save","help me please!",               0,0,0,0,11,
        !            80:                "read","help me please!",               &m4,0,0,0,12,
        !            81:                "quit","help me please!",               0,0,0,0,13,
        !            82:                0
        !            83: };
        !            84: #endif
        !            85: int a = 0;
        !            86: int b = 0;
        !            87: int c = 0;
        !            88: char str[50];
        !            89: char *s = str;
        !            90: 
        !            91: NMitem*
        !            92: gen_func(n)
        !            93: int n;
        !            94: {
        !            95:        static NMitem men_item[4];
        !            96: 
        !            97:        men_item[0].text = "zero";
        !            98:        men_item[1].text = "one";
        !            99:        men_item[2].text = "two";
        !           100:        men_item[3].text = 0;
        !           101:        men_item[0].data = 0;
        !           102:        men_item[1].data = 1;
        !           103:        men_item[2].data = 2;
        !           104:        men_item[3].data = 0;
        !           105: 
        !           106:        if(n > 2)
        !           107:                return &men_item[3];
        !           108:        return &men_item[n];
        !           109: }
        !           110: 
        !           111: main (argc, argv)
        !           112: int argc;
        !           113: char **argv;
        !           114: {
        !           115:        NMitem *gen_func();
        !           116:        NMitem *temp;
        !           117: 
        !           118:        request(MOUSE);
        !           119:        initdisplay(argc, argv);
        !           120:        m1.item = item1;
        !           121:        m2.item = item2;
        !           122:        m3.item = item3;
        !           123:        m4.item = 0;
        !           124:        m4.generator = gen_func;
        !           125:        for(;;){
        !           126:                nap(1);
        !           127:                if(button1() && (temp = hmenuhit(&m1,1))){
        !           128:                        switch(temp->data){
        !           129:                        case 0:
        !           130:                                PRINT("m1, case 0");
        !           131:                                break;
        !           132:                        case 1:
        !           133:                                PRINT("m1, case 1");
        !           134:                                break;
        !           135:                        case 2:
        !           136:                                PRINT("m1, case 2");
        !           137:                                break;
        !           138:                        case 3:
        !           139:                                PRINT("m1, case 3");
        !           140:                                break;
        !           141:                        }
        !           142:                /*      while(button1())
        !           143:                                nap(1);*/
        !           144:                }
        !           145:                else if(button2() && (temp = hmenuhit(&m2,2))){
        !           146:                        switch(temp->data){
        !           147:                        case 0:
        !           148:                                PRINT("m1, case 0");
        !           149:                                break;
        !           150:                        case 1:
        !           151:                                PRINT("m1, case 1");
        !           152:                                break;
        !           153:                        case 2:
        !           154:                                PRINT("m1, case 2");
        !           155:                                break;
        !           156:                        case 3:
        !           157:                                PRINT("m1, case 3");
        !           158:                                break;
        !           159:                        case 4:
        !           160:                                PRINT("m2, case 0");
        !           161:                                break;
        !           162:                        case 5:
        !           163:                                PRINT("m2, case 1");
        !           164:                                break;
        !           165:                        case 6:
        !           166:                                PRINT("m2, case 2");
        !           167:                                break;
        !           168:                        case 7:
        !           169:                                PRINT("m2, case 3");
        !           170:                                break;
        !           171:                        case 8:
        !           172:                                PRINT("m2, case 4");
        !           173:                                break;
        !           174:                        case 9:
        !           175:                                PRINT("m2, case 5");
        !           176:                                break;
        !           177:                        case 10:
        !           178:                                PRINT("m2, case 6");
        !           179:                                break;
        !           180:                        }
        !           181:                /*      while(button2())
        !           182:                                nap(2);*/
        !           183:                }
        !           184:                else if(button3() && (temp = hmenuhit(&m3,3))){
        !           185:                        switch(temp->data){
        !           186:                        case 0:
        !           187:                                PRINT("m4, case 0");
        !           188:                                break;
        !           189:                        case 1:
        !           190:                                PRINT("m4, case 1");
        !           191:                                break;
        !           192:                        case 2:
        !           193:                                PRINT("m4, case 2");
        !           194:                                break;
        !           195:                        case 11:
        !           196:                                PRINT("m3, case 0");
        !           197:                                break;
        !           198:                        case 12:
        !           199:                                PRINT("m3, case 1");
        !           200:                                break;
        !           201:                        case 13:
        !           202:                                quit();
        !           203:                                break;
        !           204:                        }
        !           205:                /*      while(button3())
        !           206:                                nap(1);*/
        !           207:                }
        !           208:        }
        !           209: }
        !           210: 
        !           211: void
        !           212: quit()
        !           213: {
        !           214:        PRINT("quitting soon");
        !           215:        exit();
        !           216: }
        !           217: 
        !           218: void
        !           219: f1()
        !           220: {
        !           221:        sprintf(s,"f1(): a = %d",a);
        !           222:        PRINT(s);
        !           223: /*     nap(2);*/
        !           224:        a++;
        !           225: }
        !           226: 
        !           227: void
        !           228: f2()
        !           229: {
        !           230:        sprintf(s,"f2(): b = %d",b);
        !           231:        PRINT(s);
        !           232: /*     nap(2);*/
        !           233:        b++;
        !           234: }
        !           235: 
        !           236: void
        !           237: f3()
        !           238: {
        !           239:        sprintf(s,"f3(): c = %d",c);
        !           240:        PRINT(s);
        !           241: /*     nap(2);*/
        !           242:        c++;
        !           243: }

unix.superglobalmegacorp.com

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