|
|
1.1 ! root 1: /* ! 2: Hatari - dlgMissingFile.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 DlgMissingFile_fileid[] = "Hatari dlgMissingFile.c : " __DATE__ " " __TIME__; ! 8: ! 9: #include "main.h" ! 10: #include "configuration.h" ! 11: #include "dialog.h" ! 12: #include "sdlgui.h" ! 13: #include "file.h" ! 14: #include "paths.h" ! 15: ! 16: ! 17: /* Missing ROM dialog */ ! 18: #define DLGMISSINGROM_MACHINE 3 ! 19: ! 20: #define DLGMISSINGROM_BROWSE 6 ! 21: #define DLGMISSINGROM_DEFAULT 7 ! 22: #define DLGMISSINGROM_NAME 8 ! 23: ! 24: #define DLGMISSINGROM_SELECT 9 ! 25: #define DLGMISSINGROM_QUIT 10 ! 26: ! 27: ! 28: static SGOBJ missingromdlg[] = ! 29: { ! 30: { SGBOX, 0, 0, 0,0, 52,15, NULL }, ! 31: { SGTEXT, 0, 0, 16,1, 9,1, "ROM file not found!" }, ! 32: { SGTEXT, 0, 0, 2,4, 9,1, "Please select a compatible ROM for machine type" }, ! 33: { SGTEXT, 0, 0, 2,5, 9,1, NULL }, ! 34: ! 35: { SGBOX, 0, 0, 1,7, 50,4, NULL }, ! 36: { SGTEXT, 0, 0, 2,8, 46,1, "Filename:" }, ! 37: { SGBUTTON, 0, 0, 13,8, 8,1, "Browse" }, ! 38: { SGBUTTON, 0, 0, 22,8, 9,1, "Default" }, ! 39: { SGTEXT, 0, 0, 2,9, 46,1, NULL }, ! 40: ! 41: { SGBUTTON, SG_DEFAULT, 0, 9,13, 14,1, "Select" }, ! 42: { SGBUTTON, 0, 0, 29,13, 14,1, "Quit" }, ! 43: { -1, 0, 0, 0,0, 0,0, NULL } ! 44: }; ! 45: ! 46: ! 47: /* Missing SCSI dialog */ ! 48: #define DLGMISSINGSCSI_ALERT 1 ! 49: #define DLGMISSINGSCSI_TARGET 3 ! 50: ! 51: #define DLGMISSINGSCSI_BROWSE 5 ! 52: #define DLGMISSINGSCSI_CDROM 6 ! 53: #define DLGMISSINGSCSI_NAME 7 ! 54: ! 55: #define DLGMISSINGSCSI_SELECT 8 ! 56: #define DLGMISSINGSCSI_EJECT 9 ! 57: #define DLGMISSINGSCSI_QUIT 10 ! 58: ! 59: ! 60: static SGOBJ missingscsidlg[] = ! 61: { ! 62: { SGBOX, 0, 0, 0,0, 52,15, NULL }, ! 63: { SGTEXT, 0, 0, 9,1, 9,1, NULL }, ! 64: { SGTEXT, 0, 0, 2,4, 9,1, "Please eject or select a valid disk image for" }, ! 65: { SGTEXT, 0, 0, 2,5, 9,1, NULL }, ! 66: ! 67: { SGBOX, 0, 0, 1,7, 50,4, NULL }, ! 68: { SGBUTTON, 0, 0, 2,8, 10,1, "Browse" }, ! 69: { SGCHECKBOX, 0, 0, 15,8, 8,1, "CD-ROM" }, ! 70: { SGTEXT, 0, 0, 2,9, 46,1, NULL }, ! 71: ! 72: { SGBUTTON, SG_DEFAULT, 0, 4,13, 10,1, "Select" }, ! 73: { SGBUTTON, 0, 0, 18,13, 9,1, "Eject" }, ! 74: { SGBUTTON, 0, 0, 38,13, 10,1, "Quit" }, ! 75: { -1, 0, 0, 0,0, 0,0, NULL } ! 76: }; ! 77: ! 78: ! 79: ! 80: ! 81: ! 82: ! 83: /*-----------------------------------------------------------------------*/ ! 84: /** ! 85: * Show and process the Missing ROM dialog. ! 86: */ ! 87: void DlgMissing_Rom(void) { ! 88: int but; ! 89: char szDlgMissingRom[47]; ! 90: ! 91: SDLGui_CenterDlg(missingromdlg); ! 92: ! 93: switch (ConfigureParams.System.nMachineType) { ! 94: case NEXT_CUBE030: ! 95: missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXT Computer (68030):"; ! 96: break; ! 97: case NEXT_CUBE040: ! 98: if (ConfigureParams.System.bTurbo) ! 99: missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTcube Turbo:"; ! 100: else ! 101: missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTcube:"; ! 102: break; ! 103: case NEXT_STATION: ! 104: if (ConfigureParams.System.bColor) { ! 105: if (ConfigureParams.System.bTurbo) ! 106: missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTstation Turbo Color:"; ! 107: else ! 108: missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTstation Color:"; ! 109: } else { ! 110: if (ConfigureParams.System.bTurbo) ! 111: missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTstation Turbo:"; ! 112: else ! 113: missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTstation:"; ! 114: } ! 115: break; ! 116: default: ! 117: break; ! 118: } ! 119: ! 120: szDlgMissingRom[0] = '\0'; ! 121: missingromdlg[DLGMISSINGROM_NAME].txt = szDlgMissingRom; ! 122: ! 123: do ! 124: { ! 125: but = SDLGui_DoDialog(missingromdlg, NULL); ! 126: switch (but) ! 127: { ! 128: case DLGMISSINGROM_DEFAULT: ! 129: switch (ConfigureParams.System.nMachineType) { ! 130: case NEXT_CUBE030: ! 131: sprintf(ConfigureParams.Rom.szRom030FileName, "%s%cRev_1.0_v41.BIN", ! 132: Paths_GetWorkingDir(), PATHSEP); ! 133: File_ShrinkName(szDlgMissingRom, ConfigureParams.Rom.szRom030FileName, sizeof(szDlgMissingRom)-1); ! 134: break; ! 135: ! 136: case NEXT_CUBE040: ! 137: case NEXT_STATION: ! 138: if (ConfigureParams.System.bTurbo) { ! 139: sprintf(ConfigureParams.Rom.szRomTurboFileName, "%s%cRev_3.3_v74.BIN", ! 140: Paths_GetWorkingDir(), PATHSEP); ! 141: File_ShrinkName(szDlgMissingRom, ConfigureParams.Rom.szRomTurboFileName, sizeof(szDlgMissingRom)-1); ! 142: } else { ! 143: sprintf(ConfigureParams.Rom.szRom040FileName, "%s%cRev_2.5_v66.BIN", ! 144: Paths_GetWorkingDir(), PATHSEP); ! 145: File_ShrinkName(szDlgMissingRom, ConfigureParams.Rom.szRom040FileName, sizeof(szDlgMissingRom)-1); ! 146: } ! 147: break; ! 148: ! 149: default: ! 150: break; ! 151: } ! 152: break; ! 153: ! 154: case DLGMISSINGROM_BROWSE: ! 155: /* Show and process the file selection dlg */ ! 156: switch (ConfigureParams.System.nMachineType) { ! 157: case NEXT_CUBE030: ! 158: SDLGui_FileConfSelect(szDlgMissingRom, ! 159: ConfigureParams.Rom.szRom030FileName, ! 160: sizeof(szDlgMissingRom)-1, ! 161: false); ! 162: break; ! 163: ! 164: case NEXT_CUBE040: ! 165: case NEXT_STATION: ! 166: if (ConfigureParams.System.bTurbo) { ! 167: SDLGui_FileConfSelect(szDlgMissingRom, ! 168: ConfigureParams.Rom.szRomTurboFileName, ! 169: sizeof(szDlgMissingRom)-1, ! 170: false); ! 171: } else { ! 172: SDLGui_FileConfSelect(szDlgMissingRom, ! 173: ConfigureParams.Rom.szRom040FileName, ! 174: sizeof(szDlgMissingRom)-1, ! 175: false); ! 176: } ! 177: break; ! 178: ! 179: default: ! 180: break; ! 181: } ! 182: break; ! 183: case DLGMISSINGROM_QUIT: ! 184: bQuitProgram = true; ! 185: break; ! 186: } ! 187: } ! 188: while (but != DLGMISSINGROM_SELECT && but != SDLGUI_QUIT ! 189: && but != SDLGUI_ERROR && !bQuitProgram); ! 190: } ! 191: ! 192: ! 193: /*-----------------------------------------------------------------------*/ ! 194: /** ! 195: * Show and process the Missing SCSI disk dialog. ! 196: */ ! 197: void DlgMissing_SCSIdisk(int target) ! 198: { ! 199: int but; ! 200: ! 201: char dlgname_missingscsi[47]; ! 202: char missingscsi_alert[64]; ! 203: char missingscsi_target[64]; ! 204: ! 205: SDLGui_CenterDlg(missingscsidlg); ! 206: ! 207: /* Set up dialog to actual values: */ ! 208: sprintf(missingscsi_alert, "SCSI disk %i: disk image not found!", target); ! 209: missingscsidlg[DLGMISSINGSCSI_ALERT].txt = missingscsi_alert; ! 210: ! 211: sprintf(missingscsi_target, "SCSI disk %i:", target); ! 212: missingscsidlg[DLGMISSINGSCSI_TARGET].txt = missingscsi_target; ! 213: ! 214: File_ShrinkName(dlgname_missingscsi, ConfigureParams.SCSI.target[target].szImageName, missingscsidlg[DLGMISSINGSCSI_NAME].w); ! 215: if (ConfigureParams.SCSI.target[target].bCDROM) ! 216: missingscsidlg[DLGMISSINGSCSI_CDROM].state |= SG_SELECTED; ! 217: else ! 218: missingscsidlg[DLGMISSINGSCSI_CDROM].state &= ~SG_SELECTED; ! 219: ! 220: missingscsidlg[DLGMISSINGSCSI_NAME].txt = dlgname_missingscsi; ! 221: ! 222: ! 223: /* Draw and process the dialog */ ! 224: do ! 225: { ! 226: but = SDLGui_DoDialog(missingscsidlg, NULL); ! 227: switch (but) ! 228: { ! 229: case DLGMISSINGSCSI_EJECT: ! 230: ConfigureParams.SCSI.target[target].bAttached = false; ! 231: ConfigureParams.SCSI.target[target].szImageName[0] = '\0'; ! 232: dlgname_missingscsi[0] = '\0'; ! 233: break; ! 234: case DLGMISSINGSCSI_BROWSE: ! 235: if (SDLGui_FileConfSelect(dlgname_missingscsi, ! 236: ConfigureParams.SCSI.target[target].szImageName, ! 237: missingscsidlg[DLGMISSINGSCSI_NAME].w, false)) ! 238: ConfigureParams.SCSI.target[target].bAttached = true; ! 239: break; ! 240: case DLGMISSINGSCSI_QUIT: ! 241: bQuitProgram = true; ! 242: break; ! 243: } ! 244: } ! 245: while (but != DLGMISSINGSCSI_SELECT && but != DLGMISSINGSCSI_EJECT && but != SDLGUI_QUIT ! 246: && but != SDLGUI_ERROR && !bQuitProgram); ! 247: ! 248: /* Read values from dialog: */ ! 249: ConfigureParams.SCSI.target[target].bCDROM = (missingscsidlg[DLGMISSINGSCSI_CDROM].state & SG_SELECTED); ! 250: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.