Annotation of previous/src/gui-sdl/dlgDimension.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 DlgDimension_fileid[] = "Previous dlgDimension.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 DLGND_ENABLE        4
                     19: #define DLGND_CUSTOMIZE     5
                     20: #define DLGND_COLOR         7
                     21: #define DLGND_MONOCHROME    8
                     22: #define DLGND_BOTH          9
                     23: #define DLGND_MEMSIZE       16
                     24: #define DLGND_BROWSE        21
                     25: #define DLGND_NAME          22
                     26: #define DLGND_EXIT          24
                     27: 
                     28: /* Variable strings */
                     29: char dimension_memory[16] = "64 MB";
                     30: 
                     31: /* Additional functions */
                     32: void print_nd_overview(void);
                     33: void update_monitor_selection(void);
                     34: void get_nd_default_values(void);
                     35: 
                     36: #define ENABLE_DUAL_SCREEN  1
                     37: 
                     38: 
                     39: static SGOBJ dimensiondlg[] =
                     40: {
                     41:     { SGBOX, 0, 0, 0,0, 58,26, NULL },
                     42:     { SGTEXT, 0, 0, 18,1, 21,1, "NeXTdimension options" },
                     43:     
                     44:     { SGBOX, 0, 0, 2,3, 26,10, NULL },
                     45:     { SGTEXT, 0, 0, 3,4, 19,1, "NeXTdimension board" },
                     46:     { SGCHECKBOX, 0, 0, 4,6, 9,1, "Enabled" },
                     47:     { SGBUTTON, 0, 0, 15,6, 11,1, "Customize" },
                     48:     
                     49:     { SGTEXT, 0, 0, 3,9, 7,1, "System display" },
                     50:     { SGRADIOBUT, 0, 0, 4,11, 7,1, "Color" },
                     51: #if ENABLE_DUAL_SCREEN
                     52:     { SGRADIOBUT, 0, 0, 12,11, 6,1, "Mono" },
                     53:     { SGRADIOBUT, 0, 0, 19,11, 6,1, "Both" },
                     54: #else
                     55:     { SGRADIOBUT, 0, 0, 12,11, 12,1, "Monochrome" },
                     56:     { SGTEXT, 0, 0, 19,11, 6,1, "" },
                     57: #endif
                     58: 
                     59:     { SGTEXT, 0, 0, 30,4, 13,1, "System overview:" },
                     60:     { SGTEXT, 0, 0, 30,6, 13,1, "CPU type:" },
                     61:     { SGTEXT, 0, 0, 44,6, 13,1, "i860 XR" },
                     62:     { SGTEXT, 0, 0, 30,7, 13,1, "CPU clock:" },
                     63:     { SGTEXT, 0, 0, 44,7, 13,1, "33 MHz" },
                     64:     { SGTEXT, 0, 0, 30,8, 13,1, "Memory size:" },
                     65:     { SGTEXT, 0, 0, 44,8, 13,1, dimension_memory },
                     66:     { SGTEXT, 0, 0, 30,9, 13,1, "NBIC:" },
                     67:     { SGTEXT, 0, 0, 44,9, 13,1, "present" },
                     68: 
                     69:     { SGBOX, 0, 0, 2,14, 54,5, NULL },
                     70:     { SGTEXT, 0, 0, 3,15, 22,1, "ROM for NeXTdimension:" },
                     71:     { SGBUTTON, 0, 0, 27,15, 8,1, "Browse" },
                     72:     { SGTEXT, 0, 0, 4,17, 50,1, NULL },
                     73: 
                     74:     { SGTEXT, 0, 0, 3,20, 52,1, "Note: NeXTdimension does not work with NeXTstations." },
                     75:     
                     76:     { SGBUTTON, SG_DEFAULT, 0, 18,23, 21,1, "Back to main menu" },
                     77: 
                     78:     { -1, 0, 0, 0,0, 0,0, NULL }
                     79: };
                     80: 
                     81: 
                     82: /* Function to set NeXTdimension memory options */
                     83: void Dialog_NDMemDlg(int *membank);
                     84: 
                     85: /* Function to print system overview */
                     86: void print_nd_overview(void) {
                     87:     sprintf(dimension_memory, "%i MB", Configuration_CheckDimensionMemory(ConfigureParams.Dimension.nMemoryBankSize));
                     88:     
                     89:     update_monitor_selection();
                     90: }
                     91: 
                     92: /* Function to select and unselect system options */
                     93: void update_monitor_selection(void) {
                     94: 
                     95: }
                     96: 
                     97: /* Function to get default values for each system */
                     98: void get_nd_default_values(void) {
                     99:     int i;
                    100:     
                    101:     for (i = 0; i < 4; i++) {
                    102:         ConfigureParams.Dimension.nMemoryBankSize[i] = 4;
                    103:     }
                    104: }
                    105: 
                    106: 
                    107: /*-----------------------------------------------------------------------*/
                    108: /**
                    109:   * Show and process the "System" dialog (specific to winUAE cpu).
                    110:   */
                    111: void Dialog_DimensionDlg(void)
                    112: {
                    113:     int but;
                    114:     char dlgname_ndrom[64];
                    115:  
                    116:        SDLGui_CenterDlg(dimensiondlg);
                    117:  
                    118:        /* Set up dialog from actual values: */
                    119:     
                    120:     if (ConfigureParams.Dimension.bEnabled) {
                    121:         dimensiondlg[DLGND_ENABLE].state |= SG_SELECTED;
                    122:     } else {
                    123:         dimensiondlg[DLGND_ENABLE].state &= ~SG_SELECTED;
                    124:     }
                    125:     
                    126:     dimensiondlg[DLGND_COLOR].state &= ~SG_SELECTED;
                    127:     dimensiondlg[DLGND_MONOCHROME].state &= ~SG_SELECTED;
                    128:     dimensiondlg[DLGND_BOTH].state &= ~SG_SELECTED;
                    129:     
                    130:     switch (ConfigureParams.Screen.nMonitorType) {
                    131: #if ENABLE_DUAL_SCREEN
                    132:         case MONITOR_TYPE_DUAL:
                    133:             dimensiondlg[DLGND_BOTH].state |= SG_SELECTED;
                    134:             break;
                    135: #endif
                    136:         case MONITOR_TYPE_CPU:
                    137:             dimensiondlg[DLGND_MONOCHROME].state |= SG_SELECTED;
                    138:             break;
                    139:         case MONITOR_TYPE_DIMENSION:
                    140:             dimensiondlg[DLGND_COLOR].state |= SG_SELECTED;
                    141:             break;
                    142:             
                    143:         default:
                    144:             break;
                    145:     }
                    146:     
                    147:     File_ShrinkName(dlgname_ndrom, ConfigureParams.Dimension.szRomFileName,
                    148:                         dimensiondlg[DLGND_NAME].w);
                    149:     dimensiondlg[DLGND_NAME].txt = dlgname_ndrom;
                    150: 
                    151:     /* System overview */
                    152:     print_nd_overview();
                    153:      
                    154:                
                    155:        /* Draw and process the dialog: */
                    156: 
                    157:     do
                    158:        {
                    159:         but = SDLGui_DoDialog(dimensiondlg, NULL);
                    160:         
                    161:         switch (but) {
                    162:             case DLGND_BROWSE:
                    163:                 SDLGui_FileConfSelect(dlgname_ndrom,
                    164:                                       ConfigureParams.Dimension.szRomFileName,
                    165:                                       dimensiondlg[DLGND_NAME].w,
                    166:                                       false);
                    167:                 break;
                    168:                 
                    169:             case DLGND_CUSTOMIZE:
                    170:                 Dialog_NDMemDlg(ConfigureParams.Dimension.nMemoryBankSize);
                    171:                 print_nd_overview();
                    172:                 break;
                    173:                 
                    174:             default:
                    175:                 break;
                    176:         }
                    177:     }
                    178:     while (but != DLGND_EXIT && but != SDLGUI_QUIT
                    179:            && but != SDLGUI_ERROR && !bQuitProgram);
                    180:     
                    181:     /* Read values from dialog */
                    182:     ConfigureParams.Dimension.bEnabled = (dimensiondlg[DLGND_ENABLE].state&SG_SELECTED)?true:false;
                    183:     if (ConfigureParams.Dimension.bEnabled) {
                    184:         ConfigureParams.System.bNBIC = true;
                    185:     }
                    186:     
                    187:     if (dimensiondlg[DLGND_COLOR].state&SG_SELECTED) {
                    188:         ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DIMENSION;
                    189: #if ENABLE_DUAL_SCREEN
                    190:     } else if (dimensiondlg[DLGND_BOTH].state&SG_SELECTED) {
                    191:         ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DUAL;
                    192: #endif
                    193:     } else {
                    194:         ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_CPU;
                    195:     }
                    196: }
                    197: 
                    198: 
                    199: #define DLGNDMEM_BANK0_4MB     4
                    200: #define DLGNDMEM_BANK0_16MB    5
                    201: #define DLGNDMEM_BANK0_NONE    6
                    202: 
                    203: #define DLGNDMEM_BANK1_4MB     9
                    204: #define DLGNDMEM_BANK1_16MB    10
                    205: #define DLGNDMEM_BANK1_NONE    11
                    206: 
                    207: #define DLGNDMEM_BANK2_4MB     14
                    208: #define DLGNDMEM_BANK2_16MB    15
                    209: #define DLGNDMEM_BANK2_NONE    16
                    210: 
                    211: #define DLGNDMEM_BANK3_4MB     19
                    212: #define DLGNDMEM_BANK3_16MB    20
                    213: #define DLGNDMEM_BANK3_NONE    21
                    214: 
                    215: #define DLGNDMEM_DEFAULT       23
                    216: #define DLGNDMEM_EXIT          24
                    217: 
                    218: 
                    219: void Dialog_NDMemDraw(int *memorybank);
                    220: void Dialog_NDMemRead(int *memorybank);
                    221: 
                    222: static SGOBJ ndmemdlg[] =
                    223: {
                    224:     { SGBOX, 0, 0, 0,0, 55,18, NULL },
                    225:     { SGTEXT, 0, 0, 18,1, 19,1, "Custom memory setup" },
                    226:     
                    227:     { SGBOX, 0, 0, 2,4, 12,7, NULL },
                    228:     { SGTEXT, 0, 0, 3,5, 14,1, "Bank0" },
                    229:     { SGRADIOBUT, 0, 0, 4,7, 6,1, "4 MB" },
                    230:     { SGRADIOBUT, 0, 0, 4,8, 7,1, "16 MB" },
                    231:     { SGRADIOBUT, 0, 0, 4,9, 6,1, "none" },
                    232:     
                    233:     { SGBOX, 0, 0, 15,4, 12,7, NULL },
                    234:     { SGTEXT, 0, 0, 16,5, 14,1, "Bank1" },
                    235:     { SGRADIOBUT, 0, 0, 17,7, 6,1, "4 MB" },
                    236:     { SGRADIOBUT, 0, 0, 17,8, 7,1, "16 MB" },
                    237:     { SGRADIOBUT, 0, 0, 17,9, 6,1, "none" },
                    238:     
                    239:     { SGBOX, 0, 0, 28,4, 12,7, NULL },
                    240:     { SGTEXT, 0, 0, 29,5, 14,1, "Bank2" },
                    241:     { SGRADIOBUT, 0, 0, 30,7, 6,1, "4 MB" },
                    242:     { SGRADIOBUT, 0, 0, 30,8, 7,1, "16 MB" },
                    243:     { SGRADIOBUT, 0, 0, 30,9, 6,1, "none" },
                    244:     
                    245:     { SGBOX, 0, 0, 41,4, 12,7, NULL },
                    246:     { SGTEXT, 0, 0, 42,5, 14,1, "Bank3" },
                    247:     { SGRADIOBUT, 0, 0, 43,7, 6,1, "4 MB" },
                    248:     { SGRADIOBUT, 0, 0, 43,8, 7,1, "16 MB" },
                    249:     { SGRADIOBUT, 0, 0, 43,9, 6,1, "none" },
                    250:     
                    251:     { SGTEXT, 0, 0, 5,12, 14,1, "Bank0 must contain at least 4 MB of memory." },
                    252:     
                    253:     { SGBUTTON, 0, 0, 15,15, 10,1, "Defaults" },
                    254:     { SGBUTTON, SG_DEFAULT, 0, 30,15, 10,1, "OK" },
                    255:     { -1, 0, 0, 0,0, 0,0, NULL }
                    256: };
                    257: 
                    258: 
                    259: 
                    260: /*-----------------------------------------------------------------------*/
                    261: /**
                    262:  * Show and process the "Memory Advanced" dialog.
                    263:  */
                    264: void Dialog_NDMemDlg(int *membank) {
                    265:     
                    266:     int but;
                    267:     
                    268:     SDLGui_CenterDlg(ndmemdlg);
                    269:     
                    270:     /* Set up dialog from actual values: */
                    271:     Dialog_NDMemDraw(membank);
                    272:     
                    273:     /* Draw and process the dialog: */
                    274:     do
                    275:     {
                    276:         but = SDLGui_DoDialog(ndmemdlg, NULL);
                    277: 
                    278:         switch (but) {
                    279:             case DLGNDMEM_DEFAULT:
                    280:                 membank[0] = membank[1] = membank[2] = membank[3] = 4;
                    281:                 Configuration_CheckDimensionMemory(membank);
                    282:                 Dialog_NDMemDraw(membank);
                    283:                 break;
                    284:             default:
                    285:                 break;
                    286:         }
                    287:     }
                    288:     while (but != DLGNDMEM_EXIT && but != SDLGUI_QUIT
                    289:            && but != SDLGUI_ERROR && !bQuitProgram);
                    290:     
                    291:     
                    292:     /* Read values from dialog: */
                    293:     Dialog_NDMemRead(membank);
                    294: }
                    295: 
                    296: 
                    297: /* Function to set up the dialog from the actual values */
                    298: void Dialog_NDMemDraw(int *bank) {
                    299:     int i, j;
                    300:     for (i = 0; i<4; i++) {
                    301:         
                    302:         for (j = (DLGNDMEM_BANK0_4MB+(5*i)); j <= (DLGNDMEM_BANK0_NONE+(5*i)); j++)
                    303:         {
                    304:             ndmemdlg[j].state &= ~SG_SELECTED;
                    305:         }
                    306:         
                    307:         switch (bank[i])
                    308:         {
                    309:             case 0:
                    310:                 ndmemdlg[DLGNDMEM_BANK0_NONE+(i*5)].state |= SG_SELECTED;
                    311:                 break;
                    312:             case 4:
                    313:                 ndmemdlg[DLGNDMEM_BANK0_4MB+(i*5)].state |= SG_SELECTED;
                    314:                 break;
                    315:             case 16:
                    316:                 ndmemdlg[DLGNDMEM_BANK0_16MB+(i*5)].state |= SG_SELECTED;
                    317:                 break;
                    318:                 
                    319:             default:
                    320:                 break;
                    321:         }
                    322:     }
                    323: }
                    324: 
                    325: 
                    326: /* Function to read the actual values from the dialog */
                    327: void Dialog_NDMemRead(int *bank) {
                    328:     int i;
                    329:     for (i = 0; i<4; i++) {
                    330:         if (ndmemdlg[(DLGNDMEM_BANK0_4MB)+(i*5)].state & SG_SELECTED)
                    331:             bank[i] = 4;
                    332:         else if (ndmemdlg[(DLGNDMEM_BANK0_16MB)+(i*5)].state & SG_SELECTED)
                    333:             bank[i] = 16;
                    334:         else
                    335:             bank[i] = 0;
                    336:     }
                    337: }

unix.superglobalmegacorp.com

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