|
|
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.