--- previous/src/gui-sdl/dlgMissingFile.c 2018/04/24 19:28:26 1.1 +++ previous/src/gui-sdl/dlgMissingFile.c 2018/04/24 19:32:55 1.1.1.3 @@ -15,236 +15,198 @@ const char DlgMissingFile_fileid[] = "Ha /* Missing ROM dialog */ -#define DLGMISSINGROM_MACHINE 3 +#define DLGMISROM_ALERT 1 -#define DLGMISSINGROM_BROWSE 6 -#define DLGMISSINGROM_DEFAULT 7 -#define DLGMISSINGROM_NAME 8 - -#define DLGMISSINGROM_SELECT 9 -#define DLGMISSINGROM_QUIT 10 +#define DLGMISROM_BROWSE 4 +#define DLGMISROM_DEFAULT 5 +#define DLGMISROM_NAME 6 + +#define DLGMISROM_SELECT 7 +#define DLGMISROM_REMOVE 8 +#define DLGMISROM_QUIT 9 static SGOBJ missingromdlg[] = { { SGBOX, 0, 0, 0,0, 52,15, NULL }, - { SGTEXT, 0, 0, 16,1, 9,1, "ROM file not found!" }, - { SGTEXT, 0, 0, 2,4, 9,1, "Please select a compatible ROM for machine type" }, - { SGTEXT, 0, 0, 2,5, 9,1, NULL }, - - { SGBOX, 0, 0, 1,7, 50,4, NULL }, - { SGTEXT, 0, 0, 2,8, 46,1, "Filename:" }, - { SGBUTTON, 0, 0, 13,8, 8,1, "Browse" }, - { SGBUTTON, 0, 0, 22,8, 9,1, "Default" }, - { SGTEXT, 0, 0, 2,9, 46,1, NULL }, + { SGTEXT, 0, 0, 2,1, 38,1, NULL }, + { SGTEXT, 0, 0, 2,4, 43,1, "Please select a valid ROM file:" }, - { SGBUTTON, SG_DEFAULT, 0, 9,13, 14,1, "Select" }, - { SGBUTTON, 0, 0, 29,13, 14,1, "Quit" }, + { SGBOX, 0, 0, 1,6, 50,4, NULL }, + { SGBUTTON, 0, 0, 2,7, 8,1, "Browse" }, + { SGBUTTON, 0, 0, 11,7, 9,1, "Default" }, + { SGTEXT, 0, 0, 2,8, 46,1, NULL }, + + { SGBUTTON, SG_DEFAULT, 0, 4,12, 10,1, "Select" }, + { SGBUTTON, 0, 0, 16,12, 10,1, "Remove" }, + { SGBUTTON, 0, 0, 38,12, 10,1, "Quit" }, { -1, 0, 0, 0,0, 0,0, NULL } }; -/* Missing SCSI dialog */ -#define DLGMISSINGSCSI_ALERT 1 -#define DLGMISSINGSCSI_TARGET 3 +/* Missing Disk dialog */ +#define DLGMISDSK_ALERT 1 -#define DLGMISSINGSCSI_BROWSE 5 -#define DLGMISSINGSCSI_CDROM 6 -#define DLGMISSINGSCSI_NAME 7 +#define DLGMISDSK_DRIVE 4 +#define DLGMISDSK_BROWSE 5 +#define DLGMISDSK_PROTECT 6 +#define DLGMISDSK_NAME 7 -#define DLGMISSINGSCSI_SELECT 8 -#define DLGMISSINGSCSI_EJECT 9 -#define DLGMISSINGSCSI_QUIT 10 +#define DLGMISDSK_SELECT 8 +#define DLGMISDSK_REMOVE 9 +#define DLGMISDSK_QUIT 10 -static SGOBJ missingscsidlg[] = +static SGOBJ missingdiskdlg[] = { { SGBOX, 0, 0, 0,0, 52,15, NULL }, - { SGTEXT, 0, 0, 9,1, 9,1, NULL }, - { SGTEXT, 0, 0, 2,4, 9,1, "Please eject or select a valid disk image for" }, - { SGTEXT, 0, 0, 2,5, 9,1, NULL }, - - { SGBOX, 0, 0, 1,7, 50,4, NULL }, - { SGBUTTON, 0, 0, 2,8, 10,1, "Browse" }, - { SGCHECKBOX, 0, 0, 15,8, 8,1, "CD-ROM" }, - { SGTEXT, 0, 0, 2,9, 46,1, NULL }, - - { SGBUTTON, SG_DEFAULT, 0, 4,13, 10,1, "Select" }, - { SGBUTTON, 0, 0, 18,13, 9,1, "Eject" }, - { SGBUTTON, 0, 0, 38,13, 10,1, "Quit" }, + { SGTEXT, 0, 0, 6,1, 38,1, NULL }, + { SGTEXT, 0, 0, 2,4, 43,1, "Please remove or select a valid disk image:" }, + + { SGBOX, 0, 0, 1,6, 50,4, NULL }, + { SGTEXT, 0, 0, 2,7, 15,1, NULL }, + { SGBUTTON, 0, 0, 39,7, 10,1, "Browse" }, + { SGTEXT, 0, 0, 15,7, 10,1, NULL }, + { SGTEXT, 0, 0, 2,8, 46,1, NULL }, + + { SGBUTTON, SG_DEFAULT, 0, 4,12, 10,1, "Select" }, + { SGBUTTON, 0, 0, 16,12, 10,1, "Remove" }, + { SGBUTTON, 0, 0, 38,12, 10,1, "Quit" }, { -1, 0, 0, 0,0, 0,0, NULL } }; - - /*-----------------------------------------------------------------------*/ /** * Show and process the Missing ROM dialog. */ -void DlgMissing_Rom(void) { +void DlgMissing_Rom(const char* type, char *imgname, const char *defname, bool *enabled) { int but; - char szDlgMissingRom[47]; + + char dlgname_missingrom[64]; + char missingrom_alert[64]; + + bool bOldMouseVisibility; + bOldMouseVisibility = SDL_ShowCursor(SDL_QUERY); + SDL_ShowCursor(SDL_ENABLE); SDLGui_CenterDlg(missingromdlg); - switch (ConfigureParams.System.nMachineType) { - case NEXT_CUBE030: - missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXT Computer (68030):"; - break; - case NEXT_CUBE040: - if (ConfigureParams.System.bTurbo) - missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTcube Turbo:"; - else - missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTcube:"; - break; - case NEXT_STATION: - if (ConfigureParams.System.bColor) { - if (ConfigureParams.System.bTurbo) - missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTstation Turbo Color:"; - else - missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTstation Color:"; - } else { - if (ConfigureParams.System.bTurbo) - missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTstation Turbo:"; - else - missingromdlg[DLGMISSINGROM_MACHINE].txt = "NeXTstation:"; - } - break; - default: - break; + /* Set up dialog to actual values: */ + sprintf(missingrom_alert, "%s: ROM file not found!", type); + missingromdlg[DLGMISROM_ALERT].txt = missingrom_alert; + + File_ShrinkName(dlgname_missingrom, imgname, missingromdlg[DLGMISROM_NAME].w); + + missingromdlg[DLGMISROM_NAME].txt = dlgname_missingrom; + + if (*enabled) { + missingromdlg[DLGMISROM_REMOVE].type = SGBUTTON; + missingromdlg[DLGMISROM_REMOVE].txt = "Remove"; + } else { + missingromdlg[DLGMISROM_REMOVE].type = SGTEXT; + missingromdlg[DLGMISROM_REMOVE].txt = ""; } - szDlgMissingRom[0] = '\0'; - missingromdlg[DLGMISSINGROM_NAME].txt = szDlgMissingRom; + /* Draw and process the dialog */ do - { - but = SDLGui_DoDialog(missingromdlg, NULL); - switch (but) - { - case DLGMISSINGROM_DEFAULT: - switch (ConfigureParams.System.nMachineType) { - case NEXT_CUBE030: - sprintf(ConfigureParams.Rom.szRom030FileName, "%s%cRev_1.0_v41.BIN", - Paths_GetWorkingDir(), PATHSEP); - File_ShrinkName(szDlgMissingRom, ConfigureParams.Rom.szRom030FileName, sizeof(szDlgMissingRom)-1); - break; - - case NEXT_CUBE040: - case NEXT_STATION: - if (ConfigureParams.System.bTurbo) { - sprintf(ConfigureParams.Rom.szRomTurboFileName, "%s%cRev_3.3_v74.BIN", - Paths_GetWorkingDir(), PATHSEP); - File_ShrinkName(szDlgMissingRom, ConfigureParams.Rom.szRomTurboFileName, sizeof(szDlgMissingRom)-1); - } else { - sprintf(ConfigureParams.Rom.szRom040FileName, "%s%cRev_2.5_v66.BIN", - Paths_GetWorkingDir(), PATHSEP); - File_ShrinkName(szDlgMissingRom, ConfigureParams.Rom.szRom040FileName, sizeof(szDlgMissingRom)-1); - } - break; - - default: - break; - } - break; + { + but = SDLGui_DoDialog(missingromdlg, NULL); + switch (but) + { - case DLGMISSINGROM_BROWSE: - /* Show and process the file selection dlg */ - switch (ConfigureParams.System.nMachineType) { - case NEXT_CUBE030: - SDLGui_FileConfSelect(szDlgMissingRom, - ConfigureParams.Rom.szRom030FileName, - sizeof(szDlgMissingRom)-1, - false); - break; - - case NEXT_CUBE040: - case NEXT_STATION: - if (ConfigureParams.System.bTurbo) { - SDLGui_FileConfSelect(szDlgMissingRom, - ConfigureParams.Rom.szRomTurboFileName, - sizeof(szDlgMissingRom)-1, - false); - } else { - SDLGui_FileConfSelect(szDlgMissingRom, - ConfigureParams.Rom.szRom040FileName, - sizeof(szDlgMissingRom)-1, - false); - } - break; - - default: - break; - } + case DLGMISROM_BROWSE: + SDLGui_FileConfSelect(dlgname_missingrom, imgname, + missingromdlg[DLGMISROM_NAME].w, + false); + break; + case DLGMISROM_DEFAULT: + sprintf(imgname, "%s",defname); + File_ShrinkName(dlgname_missingrom, imgname, missingromdlg[DLGMISROM_NAME].w); + break; + case DLGMISROM_REMOVE: + *enabled = false; + *imgname = '\0'; break; - case DLGMISSINGROM_QUIT: + case DLGMISROM_QUIT: bQuitProgram = true; break; - } - } - while (but != DLGMISSINGROM_SELECT && but != SDLGUI_QUIT - && but != SDLGUI_ERROR && !bQuitProgram); + + default: + break; + } + } + while (but != DLGMISROM_SELECT && but != DLGMISROM_REMOVE && + but != SDLGUI_QUIT && but != SDLGUI_ERROR && !bQuitProgram); + + + SDL_ShowCursor(bOldMouseVisibility); } /*-----------------------------------------------------------------------*/ /** - * Show and process the Missing SCSI disk dialog. + * Show and process the Missing Disk dialog. */ -void DlgMissing_SCSIdisk(int target) +void DlgMissing_Disk(const char* type, int num, char *imgname, bool *inserted, bool *wp) { int but; + + char dlgname_missingdisk[64]; + char missingdisk_alert[64]; + char missingdisk_disk[64]; + + bool bOldMouseVisibility; + bOldMouseVisibility = SDL_ShowCursor(SDL_QUERY); + SDL_ShowCursor(SDL_ENABLE); - char dlgname_missingscsi[47]; - char missingscsi_alert[64]; - char missingscsi_target[64]; - - SDLGui_CenterDlg(missingscsidlg); - - /* Set up dialog to actual values: */ - sprintf(missingscsi_alert, "SCSI disk %i: disk image not found!", target); - missingscsidlg[DLGMISSINGSCSI_ALERT].txt = missingscsi_alert; - - sprintf(missingscsi_target, "SCSI disk %i:", target); - missingscsidlg[DLGMISSINGSCSI_TARGET].txt = missingscsi_target; - - File_ShrinkName(dlgname_missingscsi, ConfigureParams.SCSI.target[target].szImageName, missingscsidlg[DLGMISSINGSCSI_NAME].w); - if (ConfigureParams.SCSI.target[target].bCDROM) - missingscsidlg[DLGMISSINGSCSI_CDROM].state |= SG_SELECTED; - else - missingscsidlg[DLGMISSINGSCSI_CDROM].state &= ~SG_SELECTED; - - missingscsidlg[DLGMISSINGSCSI_NAME].txt = dlgname_missingscsi; - - - /* Draw and process the dialog */ - do - { - but = SDLGui_DoDialog(missingscsidlg, NULL); - switch (but) - { - case DLGMISSINGSCSI_EJECT: - ConfigureParams.SCSI.target[target].bAttached = false; - ConfigureParams.SCSI.target[target].szImageName[0] = '\0'; - dlgname_missingscsi[0] = '\0'; - break; - case DLGMISSINGSCSI_BROWSE: - if (SDLGui_FileConfSelect(dlgname_missingscsi, - ConfigureParams.SCSI.target[target].szImageName, - missingscsidlg[DLGMISSINGSCSI_NAME].w, false)) - ConfigureParams.SCSI.target[target].bAttached = true; + SDLGui_CenterDlg(missingdiskdlg); + + /* Set up dialog to actual values: */ + sprintf(missingdisk_alert, "%s drive %i: disk image not found!", type, num); + missingdiskdlg[DLGMISDSK_ALERT].txt = missingdisk_alert; + + sprintf(missingdisk_disk, "%s %i:", type, num); + missingdiskdlg[DLGMISDSK_DRIVE].txt = missingdisk_disk; + + File_ShrinkName(dlgname_missingdisk, imgname, missingdiskdlg[DLGMISDSK_NAME].w); + + missingdiskdlg[DLGMISDSK_NAME].txt = dlgname_missingdisk; + + + /* Draw and process the dialog */ + do + { + if (*wp) + missingdiskdlg[DLGMISDSK_PROTECT].txt = "read-only"; + else + missingdiskdlg[DLGMISDSK_PROTECT].txt = ""; + + but = SDLGui_DoDialog(missingdiskdlg, NULL); + switch (but) + { + + case DLGMISDSK_BROWSE: + SDLGui_DiskSelect(dlgname_missingdisk, imgname, missingdiskdlg[DLGMISDSK_NAME].w, wp); + break; + case DLGMISDSK_REMOVE: + *inserted = false; + *wp = false; + *imgname = '\0'; break; - case DLGMISSINGSCSI_QUIT: + case DLGMISDSK_QUIT: bQuitProgram = true; break; - } - } - while (but != DLGMISSINGSCSI_SELECT && but != DLGMISSINGSCSI_EJECT && but != SDLGUI_QUIT - && but != SDLGUI_ERROR && !bQuitProgram); + + default: + break; + } + } + while (but != DLGMISDSK_SELECT && but != DLGMISDSK_REMOVE && + but != SDLGUI_QUIT && but != SDLGUI_ERROR && !bQuitProgram); - /* Read values from dialog: */ - ConfigureParams.SCSI.target[target].bCDROM = (missingscsidlg[DLGMISSINGSCSI_CDROM].state & SG_SELECTED); + SDL_ShowCursor(bOldMouseVisibility); }