Annotation of previous/src/gui-sdl/dlgDimension.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 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.