|
|
1.1 ! root 1: /* ! 2: Hatari - dlgRom.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: char DlgRom_rcsid[] = "Hatari $Id: dlgRom.c,v 1.2 2004/12/09 21:06:40 thothy Exp $"; ! 8: ! 9: #include "main.h" ! 10: #include "configuration.h" ! 11: #include "dialog.h" ! 12: #include "sdlgui.h" ! 13: #include "file.h" ! 14: ! 15: ! 16: #define DLGROM_TOSBROWSE 4 ! 17: #define DLGROM_TOSNAME 5 ! 18: #define DLGROM_CARTEJECT 9 ! 19: #define DLGROM_CARTBROWSE 10 ! 20: #define DLGROM_CARTNAME 11 ! 21: #define DLGROM_EXIT 13 ! 22: ! 23: ! 24: /* The ROM dialog: */ ! 25: static SGOBJ romdlg[] = ! 26: { ! 27: { SGBOX, 0, 0, 0,0, 52,23, NULL }, ! 28: { SGBOX, 0, 0, 1,1, 50,8, NULL }, ! 29: { SGTEXT, 0, 0, 22,2, 9,1, "TOS setup" }, ! 30: { SGTEXT, 0, 0, 2,5, 25,1, "TOS image:" }, ! 31: { SGBUTTON, 0, 0, 42,5, 8,1, "Browse" }, ! 32: { SGTEXT, 0, 0, 2,7, 46,1, NULL }, ! 33: { SGBOX, 0, 0, 1,10, 50,8, NULL }, ! 34: { SGTEXT, 0, 0, 18,11, 15,1, "Cartridge setup" }, ! 35: { SGTEXT, 0, 0, 2,14, 25,1, "Cartridge image:" }, ! 36: { SGBUTTON, 0, 0, 32,14, 8,1, "Eject" }, ! 37: { SGBUTTON, 0, 0, 42,14, 8,1, "Browse" }, ! 38: { SGTEXT, 0, 0, 2,16, 46,1, NULL }, ! 39: { SGTEXT, 0, 0, 2,19, 25,1, "A reset is needed after changing these options." }, ! 40: { SGBUTTON, 0, 0, 16,21, 20,1, "Back to main menu" }, ! 41: { -1, 0, 0, 0,0, 0,0, NULL } ! 42: }; ! 43: ! 44: ! 45: /*-----------------------------------------------------------------------*/ ! 46: /* ! 47: Show and process the ROM dialog. ! 48: */ ! 49: void DlgRom_Main(void) ! 50: { ! 51: char *tmpname; ! 52: char szDlgTosName[47]; ! 53: char szDlgCartName[47]; ! 54: int but; ! 55: ! 56: tmpname = malloc(FILENAME_MAX); ! 57: if (tmpname == NULL) ! 58: return; ! 59: ! 60: SDLGui_CenterDlg(romdlg); ! 61: ! 62: File_ShrinkName(szDlgTosName, DialogParams.Rom.szTosImageFileName, sizeof(szDlgTosName)-1); ! 63: romdlg[DLGROM_TOSNAME].txt = szDlgTosName; ! 64: ! 65: File_ShrinkName(szDlgCartName, DialogParams.Rom.szCartridgeImageFileName, sizeof(szDlgCartName)-1); ! 66: romdlg[DLGROM_CARTNAME].txt = szDlgCartName; ! 67: ! 68: do ! 69: { ! 70: but = SDLGui_DoDialog(romdlg); ! 71: switch (but) ! 72: { ! 73: case DLGROM_TOSBROWSE: ! 74: strcpy(tmpname, DialogParams.Rom.szTosImageFileName); ! 75: File_MakeAbsoluteName(tmpname); ! 76: if (SDLGui_FileSelect(tmpname, NULL, FALSE)) /* Show and process the file selection dlg */ ! 77: { ! 78: strcpy(DialogParams.Rom.szTosImageFileName, tmpname); ! 79: File_ShrinkName(szDlgTosName, DialogParams.Rom.szTosImageFileName, sizeof(szDlgTosName)-1); ! 80: } ! 81: break; ! 82: ! 83: case DLGROM_CARTEJECT: ! 84: szDlgCartName[0] = 0; ! 85: DialogParams.Rom.szCartridgeImageFileName[0] = 0; ! 86: break; ! 87: ! 88: case DLGROM_CARTBROWSE: ! 89: strcpy(tmpname, DialogParams.Rom.szCartridgeImageFileName); ! 90: File_MakeAbsoluteName(tmpname); ! 91: if (SDLGui_FileSelect(tmpname, NULL, FALSE)) /* Show and process the file selection dlg */ ! 92: { ! 93: strcpy(DialogParams.Rom.szCartridgeImageFileName, tmpname); ! 94: File_ShrinkName(szDlgCartName, DialogParams.Rom.szCartridgeImageFileName, sizeof(szDlgCartName)-1); ! 95: } ! 96: break; ! 97: } ! 98: } ! 99: while (but!=DLGROM_EXIT && !bQuitProgram); ! 100: ! 101: free(tmpname); ! 102: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.