Annotation of previous/src/gui-sdl/dlgHardDisk.c, revision 1.1.1.2

1.1       root        1: /*
                      2:   Hatari - dlgHardDisk.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: const char DlgHardDisk_fileid[] = "Hatari dlgHardDisk.c : " __DATE__ " " __TIME__;
                      8: 
                      9: #include <assert.h>
                     10: #include "main.h"
                     11: #include "configuration.h"
                     12: #include "dialog.h"
                     13: #include "sdlgui.h"
                     14: #include "file.h"
                     15: 
                     16: 
1.1.1.2 ! root       17: #define DISKDLG_CDROM0             3
        !            18: #define DISKDLG_SCSIEJECT0         4
        !            19: #define DISKDLG_SCSIBROWSE0        5
        !            20: #define DISKDLG_SCSINAME0          6
        !            21: 
        !            22: #define DISKDLG_CDROM1             8
        !            23: #define DISKDLG_SCSIEJECT1         9
        !            24: #define DISKDLG_SCSIBROWSE1        10
        !            25: #define DISKDLG_SCSINAME1          11
        !            26: 
        !            27: #define DISKDLG_CDROM2             13
        !            28: #define DISKDLG_SCSIEJECT2         14
        !            29: #define DISKDLG_SCSIBROWSE2        15
        !            30: #define DISKDLG_SCSINAME2          16
        !            31: 
        !            32: #define DISKDLG_CDROM3             18
        !            33: #define DISKDLG_SCSIEJECT3         19
        !            34: #define DISKDLG_SCSIBROWSE3        20
        !            35: #define DISKDLG_SCSINAME3          21
        !            36: 
        !            37: #define DISKDLG_CDROM4             23
        !            38: #define DISKDLG_SCSIEJECT4         24
        !            39: #define DISKDLG_SCSIBROWSE4        25
        !            40: #define DISKDLG_SCSINAME4          26
        !            41: 
        !            42: #define DISKDLG_CDROM5             28
        !            43: #define DISKDLG_SCSIEJECT5         29
        !            44: #define DISKDLG_SCSIBROWSE5        30
        !            45: #define DISKDLG_SCSINAME5          31
        !            46: 
        !            47: #define DISKDLG_CDROM6             33
        !            48: #define DISKDLG_SCSIEJECT6         34
        !            49: #define DISKDLG_SCSIBROWSE6        35
        !            50: #define DISKDLG_SCSINAME6          36
        !            51: 
        !            52: #define DISKDLG_EXIT               37
1.1       root       53: 
                     54: 
                     55: /* The disks dialog: */
                     56: static SGOBJ diskdlg[] =
                     57: {
1.1.1.2 ! root       58:     { SGBOX, 0, 0, 0,0, 64,29, NULL },
        !            59:        { SGTEXT, 0, 0, 27,1, 10,1, "SCSI disks" },
1.1       root       60: 
1.1.1.2 ! root       61:        { SGTEXT, 0, 0, 2,3, 14,1, "SCSI Disk 0:" },
        !            62:     { SGCHECKBOX, 0, 0, 36, 3, 8, 1, "CD-ROM" },
1.1       root       63:        { SGBUTTON, 0, 0, 46,3, 7,1, "Eject" },
                     64:        { SGBUTTON, 0, 0, 54,3, 8,1, "Browse" },
                     65:        { SGTEXT, 0, 0, 3,4, 58,1, NULL },
1.1.1.2 ! root       66:    
        !            67:     { SGTEXT, 0, 0, 2, 6, 14,1, "SCSI Disk 1:" },
        !            68:     { SGCHECKBOX, 0, 0, 36, 6, 8, 1, "CD-ROM" },
        !            69:        { SGBUTTON, 0, 0, 46,6, 7,1, "Eject" },
        !            70:        { SGBUTTON, 0, 0, 54,6, 8,1, "Browse" },
        !            71:        { SGTEXT, 0, 0, 3,7, 58,1, NULL },
1.1       root       72: 
1.1.1.2 ! root       73:     { SGTEXT, 0, 0, 2, 9, 14,1, "SCSI Disk 2:" },
        !            74:     { SGCHECKBOX, 0, 0, 36, 9, 8, 1, "CD-ROM" },
1.1       root       75:        { SGBUTTON, 0, 0, 46,9, 7,1, "Eject" },
                     76:        { SGBUTTON, 0, 0, 54,9, 8,1, "Browse" },
1.1.1.2 ! root       77:     { SGTEXT, 0, 0, 3,10, 58,1, NULL },
1.1       root       78: 
1.1.1.2 ! root       79:     { SGTEXT, 0, 0, 2, 12, 14,1, "SCSI Disk 3:" },
        !            80:     { SGCHECKBOX, 0, 0, 36, 12, 8, 1, "CD-ROM" },
        !            81:        { SGBUTTON, 0, 0, 46,12, 7,1, "Eject" },
        !            82:        { SGBUTTON, 0, 0, 54,12, 8,1, "Browse" },
        !            83:     { SGTEXT, 0, 0, 3,13, 58,1, NULL },
        !            84: 
        !            85:     { SGTEXT, 0, 0, 2, 15, 14,1, "SCSI Disk 4:" },
        !            86:     { SGCHECKBOX, 0, 0, 36, 15, 8, 1, "CD-ROM" },
        !            87:        { SGBUTTON, 0, 0, 46,15, 7,1, "Eject" },
        !            88:        { SGBUTTON, 0, 0, 54,15, 8,1, "Browse" },
        !            89:     { SGTEXT, 0, 0, 3,16, 58,1, NULL },
        !            90: 
        !            91:     { SGTEXT, 0, 0, 2, 18, 14,1, "SCSI Disk 5:" },
        !            92:     { SGCHECKBOX, 0, 0, 36, 18, 8, 1, "CD-ROM" },
        !            93:        { SGBUTTON, 0, 0, 46,18, 7,1, "Eject" },
        !            94:        { SGBUTTON, 0, 0, 54,18, 8,1, "Browse" },
        !            95:     { SGTEXT, 0, 0, 3,19, 58,1, NULL },
        !            96: 
        !            97:     { SGTEXT, 0, 0, 2, 21, 14,1, "SCSI Disk 6:" },
        !            98:     { SGCHECKBOX, 0, 0, 36, 21, 8, 1, "CD-ROM" },
        !            99:        { SGBUTTON, 0, 0, 46,21, 7,1, "Eject" },
        !           100:        { SGBUTTON, 0, 0, 54,21, 8,1, "Browse" },
        !           101:     { SGTEXT, 0, 0, 3,22, 58,1, NULL },
1.1       root      102: 
                    103: 
1.1.1.2 ! root      104:     { SGBUTTON, SG_DEFAULT, 0, 22,26, 20,1, "Back to main menu" },
1.1       root      105:        { -1, 0, 0, 0,0, 0,0, NULL }
                    106: };
                    107: 
                    108: 
                    109: /**
                    110:  * Let user browse given directory, set directory if one selected.
                    111:  * return false if none selected, otherwise return true.
                    112:  */
1.1.1.2 ! root      113: /*static bool DlgDisk_BrowseDir(char *dlgname, char *confname, int maxlen)
1.1       root      114: {
                    115:        char *str, *selname;
                    116: 
                    117:        selname = SDLGui_FileSelect(confname, NULL, false);
                    118:        if (selname)
                    119:        {
                    120:                strcpy(confname, selname);
                    121:                free(selname);
                    122: 
                    123:                str = strrchr(confname, PATHSEP);
                    124:                if (str != NULL)
                    125:                        str[1] = 0;
                    126:                File_CleanFileName(confname);
                    127:                File_ShrinkName(dlgname, confname, maxlen);
                    128:                return true;
                    129:        }
                    130:        return false;
1.1.1.2 ! root      131: }*/
1.1       root      132: 
                    133: 
                    134: /**
                    135:  * Show and process the hard disk dialog.
                    136:  */
                    137: void DlgHardDisk_Main(void)
                    138: {
1.1.1.2 ! root      139:     int but;
        !           140:     char dlgname_scsi[ESP_MAX_DEVS][64];
        !           141:     int dialog_offset = DISKDLG_SCSINAME1 - DISKDLG_SCSINAME0;
1.1       root      142: 
                    143:        SDLGui_CenterDlg(diskdlg);
                    144: 
                    145:        /* Set up dialog to actual values: */
                    146: 
1.1.1.2 ! root      147:        /* SCSI hard disk image: */
        !           148:     int target;
        !           149:     for (target = 0; target < ESP_MAX_DEVS; target++) {
        !           150:         if (ConfigureParams.SCSI.target[target].bAttached) {
        !           151:             File_ShrinkName(dlgname_scsi[target], ConfigureParams.SCSI.target[target].szImageName,
        !           152:                             diskdlg[DISKDLG_SCSINAME0+target*dialog_offset].w);
        !           153:         } else {
        !           154:             dlgname_scsi[target][0] = '\0';
        !           155:         }
        !           156:         diskdlg[DISKDLG_SCSINAME0+target*dialog_offset].txt = dlgname_scsi[target];
        !           157:     }
        !           158: 
        !           159:     /* CD-ROM true or false? */
        !           160:     for (target = 0; target < ESP_MAX_DEVS; target++) {
        !           161:         if (ConfigureParams.SCSI.target[target].bCDROM)
        !           162:             diskdlg[DISKDLG_CDROM0+target*dialog_offset].state |= SG_SELECTED;
        !           163:         else
        !           164:             diskdlg[DISKDLG_CDROM0+target*dialog_offset].state &= ~SG_SELECTED;
        !           165:     }
1.1       root      166: 
1.1.1.2 ! root      167:     
1.1       root      168:        /* Draw and process the dialog */
                    169:        do
                    170:        {
                    171:                but = SDLGui_DoDialog(diskdlg, NULL);
                    172:                switch (but)
                    173:                {
1.1.1.2 ! root      174:             case DISKDLG_SCSIEJECT0:
        !           175:                 ConfigureParams.SCSI.target[0].bAttached = false;
        !           176:                 ConfigureParams.SCSI.target[0].szImageName[0] = '\0';
        !           177:                 dlgname_scsi[0][0] = '\0';
        !           178:                 break;
        !           179:             case DISKDLG_SCSIBROWSE0:
        !           180:                 if (SDLGui_FileConfSelect(dlgname_scsi[0], ConfigureParams.SCSI.target[0].szImageName, diskdlg[DISKDLG_SCSINAME0].w, false))
        !           181:                     ConfigureParams.SCSI.target[0].bAttached = true;
        !           182:                 break;
        !           183:                 
        !           184:             case DISKDLG_SCSIEJECT1:
        !           185:                 ConfigureParams.SCSI.target[1].bAttached = false;
        !           186:                 ConfigureParams.SCSI.target[1].szImageName[0] = '\0';
        !           187:                 dlgname_scsi[1][0] = '\0';
        !           188:                 break;
        !           189:             case DISKDLG_SCSIBROWSE1:
        !           190:                 if (SDLGui_FileConfSelect(dlgname_scsi[1], ConfigureParams.SCSI.target[1].szImageName, diskdlg[DISKDLG_SCSINAME1].w, false))
        !           191:                     ConfigureParams.SCSI.target[1].bAttached = true;
        !           192:                 break;
        !           193: 
        !           194:             case DISKDLG_SCSIEJECT2:
        !           195:                 ConfigureParams.SCSI.target[2].bAttached = false;
        !           196:                 ConfigureParams.SCSI.target[2].szImageName[0] = '\0';
        !           197:                 dlgname_scsi[2][0] = '\0';
        !           198:                 break;
        !           199:             case DISKDLG_SCSIBROWSE2:
        !           200:                 if (SDLGui_FileConfSelect(dlgname_scsi[2], ConfigureParams.SCSI.target[2].szImageName, diskdlg[DISKDLG_SCSINAME2].w, false))
        !           201:                     ConfigureParams.SCSI.target[2].bAttached = true;
        !           202:                 break;
        !           203: 
        !           204:             case DISKDLG_SCSIEJECT3:
        !           205:                 ConfigureParams.SCSI.target[3].bAttached = false;
        !           206:                 ConfigureParams.SCSI.target[3].szImageName[3] = '\0';
        !           207:                 dlgname_scsi[3][0] = '\0';
        !           208:                 break;
        !           209:             case DISKDLG_SCSIBROWSE3:
        !           210:                 if (SDLGui_FileConfSelect(dlgname_scsi[3], ConfigureParams.SCSI.target[3].szImageName, diskdlg[DISKDLG_SCSINAME3].w, false))
        !           211:                     ConfigureParams.SCSI.target[3].bAttached = true;
        !           212:                 break;
        !           213: 
        !           214:             case DISKDLG_SCSIEJECT4:
        !           215:                 ConfigureParams.SCSI.target[4].bAttached = false;
        !           216:                 ConfigureParams.SCSI.target[4].szImageName[4] = '\0';
        !           217:                 dlgname_scsi[4][0] = '\0';
        !           218:                 break;
        !           219:             case DISKDLG_SCSIBROWSE4:
        !           220:                 if (SDLGui_FileConfSelect(dlgname_scsi[4], ConfigureParams.SCSI.target[4].szImageName, diskdlg[DISKDLG_SCSINAME4].w, false))
        !           221:                     ConfigureParams.SCSI.target[4].bAttached = true;
        !           222:                 break;
        !           223:                 
        !           224:             case DISKDLG_SCSIEJECT5:
        !           225:                 ConfigureParams.SCSI.target[5].bAttached = false;
        !           226:                 ConfigureParams.SCSI.target[5].szImageName[0] = '\0';
        !           227:                 dlgname_scsi[5][0] = '\0';
        !           228:                 break;
        !           229:             case DISKDLG_SCSIBROWSE5:
        !           230:                 if (SDLGui_FileConfSelect(dlgname_scsi[5], ConfigureParams.SCSI.target[5].szImageName, diskdlg[DISKDLG_SCSINAME5].w, false))
        !           231:                     ConfigureParams.SCSI.target[5].bAttached = true;
        !           232:                 break;
        !           233:                 
        !           234:             case DISKDLG_SCSIEJECT6:
        !           235:                 ConfigureParams.SCSI.target[6].bAttached = false;
        !           236:                 ConfigureParams.SCSI.target[6].szImageName[0] = '\0';
        !           237:                 dlgname_scsi[6][0] = '\0';
        !           238:                 break;
        !           239:             case DISKDLG_SCSIBROWSE6:
        !           240:                 if (SDLGui_FileConfSelect(dlgname_scsi[6], ConfigureParams.SCSI.target[6].szImageName, diskdlg[DISKDLG_SCSINAME6].w, false))
        !           241:                     ConfigureParams.SCSI.target[6].bAttached = true;
        !           242:                 break;
        !           243:         }
1.1       root      244:        }
                    245:        while (but != DISKDLG_EXIT && but != SDLGUI_QUIT
                    246:                && but != SDLGUI_ERROR && !bQuitProgram);
1.1.1.2 ! root      247:     
        !           248:     /* Read values from dialog: */
        !           249:     for (target = 0; target < ESP_MAX_DEVS; target++) {
        !           250:         ConfigureParams.SCSI.target[target].bCDROM = (diskdlg[DISKDLG_CDROM0+target*dialog_offset].state & SG_SELECTED);
        !           251:     }
1.1       root      252: }
1.1.1.2 ! root      253: 

unix.superglobalmegacorp.com

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