Annotation of previous/src/gui-sdl/dlgGraphics.c, revision 1.1

1.1     ! root        1: /*
        !             2:   Previous - dlgDimension.c
        !             3: 
        !             4:   This file is distributed under the GNU Public License, version 2 or at
        !             5:   your option any later version. Read the file gpl.txt for details.
        !             6: 
        !             7: */
        !             8: 
        !             9: const char DlgGraphics_fileid[] = "Previous dlgGraphics.c : " __DATE__ " " __TIME__;
        !            10: 
        !            11: #include "main.h"
        !            12: #include "configuration.h"
        !            13: #include "dialog.h"
        !            14: #include "sdlgui.h"
        !            15: #include "file.h"
        !            16: 
        !            17: 
        !            18: #define GDLG_BOARD0         5
        !            19: #define GDLG_BOARD1         7
        !            20: #define GDLG_BOARD2         9
        !            21: #define GDLG_MONOCHROME     12
        !            22: #define GDLG_COLOR          13
        !            23: #define GDLG_ALL            14
        !            24: #define GDLG_DISPLAY           17
        !            25: #define GDLG_EXIT           19
        !            26: 
        !            27: static SGOBJ graphicsdlg[] =
        !            28: {
        !            29:     { SGBOX,      0, 0, 0,  0, 56,24, NULL },
        !            30:     { SGTEXT,     0, 0, 20, 1, 16, 1, "Graphics options" },
        !            31:     
        !            32:     { SGBOX,      0, 0, 2,  3, 32, 9, NULL },
        !            33:     { SGTEXT,     0, 0, 3,  4, 21, 1, "NeXTdimension boards:" },
        !            34:     { SGTEXT,     0, 0, 4,  6, 16, 1, "Board at slot 2:" },
        !            35:     { SGBUTTON,   0, 0, 22, 6, 10, 1, "Add" },
        !            36:     { SGTEXT,     0, 0, 4,  8, 16, 1, "Board at slot 4:" },
        !            37:     { SGBUTTON,   0, 0, 22, 8, 10, 1, "Add" },
        !            38:     { SGTEXT,     0, 0, 4, 10, 16, 1, "Board at slot 6:" },
        !            39:     { SGBUTTON,   0, 0, 22,10, 10, 1, "Add" },
        !            40:        
        !            41:        { SGBOX,      0, 0, 35, 3, 19, 9, NULL },
        !            42:        { SGTEXT,     0, 0, 36, 4, 13, 1, "Show display:" },
        !            43:     { SGRADIOBUT, 0, 0, 37, 6, 12, 1, "Monochrome" },
        !            44:        { SGRADIOBUT, 0, 0, 37, 8,  7, 1, "Color" },
        !            45:        { SGRADIOBUT, 0, 0, 37,10,  5, 1, "All" },
        !            46: 
        !            47:     { SGBOX,      0, 0, 2, 13, 52, 3, NULL },
        !            48:     { SGTEXT,     0, 0, 3, 14, 13, 1, "Main display:" },
        !            49:     { SGCHECKBOX, 0, 0, 18,14, 26, 1, "Console on NeXTdimension" },
        !            50: 
        !            51:     { SGTEXT,     0, 0, 2, 18, 52, 1, "Note: NeXTdimension does not work with NeXTstations." },
        !            52:     
        !            53:     { SGBUTTON, SG_DEFAULT, 0, 17,21, 21,1, "Back to main menu" },
        !            54: 
        !            55:     { -1, 0, 0, 0,0, 0,0, NULL }
        !            56: };
        !            57: 
        !            58: 
        !            59: #define SDLG_SLOT0  2
        !            60: #define SDLG_SLOT1  3
        !            61: #define SDLG_SLOT2  4
        !            62: #define SDLG_SELECT 5
        !            63: 
        !            64: static SGOBJ slotdlg[] =
        !            65: {
        !            66:     { SGBOX,      0, 0, 0,  0, 20,12, NULL },
        !            67:     { SGTEXT,     0, 0, 4,  1, 12, 1, "Select slot:" },
        !            68:     
        !            69:     { SGRADIOBUT, 0, 0, 6,  3,  8, 1, "Slot 2" },
        !            70:     { SGRADIOBUT, 0, 0, 6,  5,  8, 1, "Slot 4" },
        !            71:     { SGRADIOBUT, 0, 0, 6,  7,  8, 1, "Slot 6" },
        !            72:     
        !            73:     { SGBUTTON, SG_DEFAULT, 0, 5,10, 10,1, "Select" },
        !            74:     
        !            75:     { -1, 0, 0, 0,0, 0,0, NULL }
        !            76: };
        !            77: 
        !            78: 
        !            79: 
        !            80: /*-----------------------------------------------------------------------*/
        !            81: /**
        !            82:  * Show and process the "Slot select" dialog.
        !            83:  */
        !            84: void Dialog_SlotSelect(int *slot)
        !            85: {
        !            86:     int but;
        !            87:     
        !            88:     SDLGui_CenterDlg(slotdlg);
        !            89:     
        !            90:     /* Set up dialog from actual values: */
        !            91:     slotdlg[SDLG_SLOT0].state &= ~SG_SELECTED;
        !            92:     slotdlg[SDLG_SLOT1].state &= ~SG_SELECTED;
        !            93:     slotdlg[SDLG_SLOT2].state &= ~SG_SELECTED;
        !            94:     
        !            95:     switch (*slot) {
        !            96:         case 0:
        !            97:             slotdlg[SDLG_SLOT0].state |= SG_SELECTED;
        !            98:             break;
        !            99:         case 1:
        !           100:             slotdlg[SDLG_SLOT1].state |= SG_SELECTED;
        !           101:             break;
        !           102:         case 2:
        !           103:             slotdlg[SDLG_SLOT2].state |= SG_SELECTED;
        !           104:             break;
        !           105:             
        !           106:         default:
        !           107:             break;
        !           108:     }
        !           109:     
        !           110:     /* Draw and process the dialog: */
        !           111:     
        !           112:     do {
        !           113:         but = SDLGui_DoDialog(slotdlg, NULL);
        !           114:     }
        !           115:     while (but != SDLG_SELECT && but != SDLGUI_QUIT
        !           116:            && but != SDLGUI_ERROR && !bQuitProgram);
        !           117:     
        !           118:     if (slotdlg[SDLG_SLOT2].state&SG_SELECTED) {
        !           119:         *slot = 2;
        !           120:     } else if (slotdlg[SDLG_SLOT1].state&SG_SELECTED) {
        !           121:         *slot = 1;
        !           122:     } else {
        !           123:         *slot = 0;
        !           124:     }
        !           125: }
        !           126: 
        !           127: 
        !           128: /*-----------------------------------------------------------------------*/
        !           129: /**
        !           130:   * Show and process the "Graphics" dialog.
        !           131:   */
        !           132: void Dialog_GraphicsDlg(void)
        !           133: {
        !           134:     int but;
        !           135:     char colordisplay[16];
        !           136:     char maindisplay[64];
        !           137:  
        !           138:        SDLGui_CenterDlg(graphicsdlg);
        !           139:  
        !           140:        /* Set up dialog from actual values: */
        !           141:     
        !           142:     if (ConfigureParams.Dimension.board[0].bEnabled) {
        !           143:         graphicsdlg[GDLG_BOARD0].txt = "Remove";
        !           144:     } else {
        !           145:         graphicsdlg[GDLG_BOARD0].txt = "Add";
        !           146:     }
        !           147: 
        !           148:     if (ConfigureParams.Dimension.board[1].bEnabled) {
        !           149:         graphicsdlg[GDLG_BOARD1].txt = "Remove";
        !           150:     } else {
        !           151:         graphicsdlg[GDLG_BOARD1].txt = "Add";
        !           152:     }
        !           153: 
        !           154:     if (ConfigureParams.Dimension.board[2].bEnabled) {
        !           155:         graphicsdlg[GDLG_BOARD2].txt = "Remove";
        !           156:     } else {
        !           157:         graphicsdlg[GDLG_BOARD2].txt = "Add";
        !           158:     }
        !           159: 
        !           160:     if (ConfigureParams.Dimension.bMainDisplay) {
        !           161:         graphicsdlg[GDLG_DISPLAY].state |= SG_SELECTED;
        !           162:     } else {
        !           163:         graphicsdlg[GDLG_DISPLAY].state &= ~SG_SELECTED;
        !           164:     }
        !           165:        
        !           166:     graphicsdlg[GDLG_COLOR].state      &= ~SG_SELECTED;
        !           167:     graphicsdlg[GDLG_MONOCHROME].state &= ~SG_SELECTED;
        !           168:     graphicsdlg[GDLG_ALL].state        &= ~SG_SELECTED;
        !           169:     
        !           170:     switch (ConfigureParams.Screen.nMonitorType) {
        !           171:         case MONITOR_TYPE_DUAL:
        !           172:             graphicsdlg[GDLG_ALL].state |= SG_SELECTED;
        !           173:             break;
        !           174:         case MONITOR_TYPE_CPU:
        !           175:             graphicsdlg[GDLG_MONOCHROME].state |= SG_SELECTED;
        !           176:             break;
        !           177:         case MONITOR_TYPE_DIMENSION:
        !           178:             graphicsdlg[GDLG_COLOR].state |= SG_SELECTED;
        !           179:             break;
        !           180:             
        !           181:         default:
        !           182:             break;
        !           183:     }
        !           184:     
        !           185:        /* Draw and process the dialog: */
        !           186: 
        !           187:     do {
        !           188:         
        !           189:         if (ConfigureParams.Dimension.bMainDisplay) {
        !           190:             sprintf(maindisplay, "Console on NeXTdimension (Slot %i)", ConfigureParams.Dimension.nMainDisplay*2+2);
        !           191:             graphicsdlg[GDLG_DISPLAY].txt = maindisplay;
        !           192:         } else {
        !           193:             graphicsdlg[GDLG_DISPLAY].txt = "Console on NeXTdimension";
        !           194:         }
        !           195:         
        !           196:         if (ConfigureParams.Screen.nMonitorType == MONITOR_TYPE_DIMENSION) {
        !           197:             sprintf(colordisplay, "Color (Slot %i)", ConfigureParams.Screen.nMonitorNum*2+2);
        !           198:             graphicsdlg[GDLG_COLOR].txt = colordisplay;
        !           199:         } else {
        !           200:             graphicsdlg[GDLG_COLOR].txt = "Color";
        !           201:         }
        !           202: 
        !           203:         
        !           204:         but = SDLGui_DoDialog(graphicsdlg, NULL);
        !           205:         
        !           206:         switch (but) {
        !           207:             case GDLG_BOARD0:
        !           208:                 if (Dialog_DimensionDlg(0)) {
        !           209:                     graphicsdlg[GDLG_BOARD0].txt = "Remove";
        !           210:                 } else {
        !           211:                     graphicsdlg[GDLG_BOARD0].txt = "Add";
        !           212:                 }
        !           213:                 break;
        !           214:                 
        !           215:             case GDLG_BOARD1:
        !           216:                 if (Dialog_DimensionDlg(1)) {
        !           217:                     graphicsdlg[GDLG_BOARD1].txt = "Remove";
        !           218:                 } else {
        !           219:                     graphicsdlg[GDLG_BOARD1].txt = "Add";
        !           220:                 }
        !           221:                 break;
        !           222:                 
        !           223:             case GDLG_BOARD2:
        !           224:                 if (Dialog_DimensionDlg(2)) {
        !           225:                     graphicsdlg[GDLG_BOARD2].txt = "Remove";
        !           226:                 } else {
        !           227:                     graphicsdlg[GDLG_BOARD2].txt = "Add";
        !           228:                 }
        !           229:                 break;
        !           230:                 
        !           231:             case GDLG_ALL:
        !           232:                 ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DUAL;
        !           233:                 break;
        !           234:                 
        !           235:             case GDLG_MONOCHROME:
        !           236:                 ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_CPU;
        !           237:                 break;
        !           238: 
        !           239:             case GDLG_COLOR:
        !           240:                 ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DIMENSION;
        !           241:                 Dialog_SlotSelect(&ConfigureParams.Screen.nMonitorNum);
        !           242:                 break;
        !           243: 
        !           244:             case GDLG_DISPLAY:
        !           245:                 if (ConfigureParams.Dimension.bMainDisplay) {
        !           246:                     ConfigureParams.Dimension.bMainDisplay = false;
        !           247:                 } else {
        !           248:                     ConfigureParams.Dimension.bMainDisplay = true;
        !           249:                     Dialog_SlotSelect(&ConfigureParams.Dimension.nMainDisplay);
        !           250:                 }
        !           251:                 break;
        !           252: 
        !           253:             default:
        !           254:                 break;
        !           255:         }
        !           256:     }
        !           257:     while (but != GDLG_EXIT && but != SDLGUI_QUIT
        !           258:            && but != SDLGUI_ERROR && !bQuitProgram);
        !           259: }

unix.superglobalmegacorp.com

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