Annotation of previous/src/gui-sdl/dlgGraphics.c, revision 1.1.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.