--- hatari/src/gui-sdl/dlgMain.c 2019/04/01 07:13:51 1.1.1.6 +++ hatari/src/gui-sdl/dlgMain.c 2019/04/09 08:47:28 1.1.1.9 @@ -6,7 +6,7 @@ The main dialog. */ -const char DlgMain_rcsid[] = "Hatari $Id: dlgMain.c,v 1.1.1.6 2019/04/01 07:13:51 root Exp $"; +const char DlgMain_fileid[] = "Hatari dlgMain.c : " __DATE__ " " __TIME__; #include "main.h" #include "configuration.h" @@ -16,62 +16,66 @@ const char DlgMain_rcsid[] = "Hatari $Id #define MAINDLG_ABOUT 2 -#define MAINDLG_DISKS 3 +#define MAINDLG_SYSTEM 3 #define MAINDLG_ROM 4 -#define MAINDLG_SCREEN 5 -#define MAINDLG_SOUND 6 -#define MAINDLG_CPU 7 -#define MAINDLG_MEMORY 8 -#define MAINDLG_JOY 9 -#define MAINDLG_KEYBD 10 -#define MAINDLG_DEVICES 11 -#define MAINDLG_LOADCFG 12 -#define MAINDLG_SAVECFG 13 -#define MAINDLG_NORESET 14 -#define MAINDLG_RESET 15 -#define MAINDLG_OK 16 -#define MAINDLG_CANCEL 17 +#define MAINDLG_MEMORY 5 +#define MAINDLG_FLOPPYS 6 +#define MAINDLG_HARDDISK 7 +#define MAINDLG_SCREEN 8 +#define MAINDLG_SOUND 9 +#define MAINDLG_JOY 10 +#define MAINDLG_KEYBD 11 +#define MAINDLG_DEVICES 12 +#define MAINDLG_LOADCFG 13 +#define MAINDLG_SAVECFG 14 +#define MAINDLG_NORESET 15 +#define MAINDLG_RESET 16 +#define MAINDLG_OK 17 #define MAINDLG_QUIT 18 +#define MAINDLG_CANCEL 19 /* The main dialog: */ static SGOBJ maindlg[] = { - { SGBOX, 0, 0, 0,0, 36,22, NULL }, - { SGTEXT, 0, 0, 10,1, 16,1, "Hatari main menu" }, - { SGBUTTON, 0, 0, 4,4, 12,1, "About" }, - { SGBUTTON, 0, 0, 4,6, 12,1, "Disks" }, - { SGBUTTON, 0, 0, 4,8, 12,1, "ROM" }, - { SGBUTTON, 0, 0, 4,10, 12,1, "Screen" }, - { SGBUTTON, 0, 0, 4,12, 12,1, "Sound" }, - { SGBUTTON, 0, 0, 20,4, 12,1, "System" }, - { SGBUTTON, 0, 0, 20,6, 12,1, "Memory" }, - { SGBUTTON, 0, 0, 20,8, 12,1, "Joysticks" }, - { SGBUTTON, 0, 0, 20,10, 12,1, "Keyboard" }, - { SGBUTTON, 0, 0, 20,12, 12,1, "Devices" }, - { SGBUTTON, 0, 0, 3,15, 14,1, "Load config." }, - { SGBUTTON, 0, 0, 19,15, 14,1, "Save config." }, - { SGRADIOBUT, 0, 0, 2,18, 10,1, "No Reset" }, - { SGRADIOBUT, 0, 0, 2,20, 10,1, "Reset ST" }, - { SGBUTTON, SG_DEFAULT, 0, 14,18, 8,3, "Okay" }, - { SGBUTTON, SG_CANCEL, 0, 25,20, 8,1, "Cancel" }, - { SGBUTTON, 0, 0, 25,18, 8,1, "Quit" }, + { SGBOX, 0, 0, 0,0, 50,19, NULL }, + { SGTEXT, 0, 0, 17,1, 16,1, "Hatari main menu" }, + { SGBUTTON, 0, 0, 2,4, 14,1, "About" }, + { SGBUTTON, 0, 0, 2,6, 14,1, "System" }, + { SGBUTTON, 0, 0, 2,8, 14,1, "ROM" }, + { SGBUTTON, 0, 0, 2,10, 14,1, "Memory" }, + { SGBUTTON, 0, 0, 18,4, 14,1, "Floppy disks" }, + { SGBUTTON, 0, 0, 18,6, 14,1, "Hard disks" }, + { SGBUTTON, 0, 0, 18,8, 14,1, "Screen" }, + { SGBUTTON, 0, 0, 18,10, 14,1, "Sound" }, + { SGBUTTON, 0, 0, 34,4, 14,1, "Joysticks" }, + { SGBUTTON, 0, 0, 34,6, 14,1, "Keyboard" }, + { SGBUTTON, 0, 0, 34,8, 14,1, "Devices" }, + { SGBUTTON, 0, 0, 7,13, 16,1, "Load config." }, + { SGBUTTON, 0, 0, 27,13, 16,1, "Save config." }, + { SGRADIOBUT, 0, 0, 3,15, 10,1, "No Reset" }, + { SGRADIOBUT, 0, 0, 3,17, 10,1, "Reset machine" }, + { SGBUTTON, SG_DEFAULT, 0, 21,15, 8,3, "OK" }, + { SGBUTTON, 0, 0, 36,15, 10,1, "Quit" }, + { SGBUTTON, SG_CANCEL, 0, 36,17, 10,1, "Cancel" }, { -1, 0, 0, 0,0, 0,0, NULL } }; -/*-----------------------------------------------------------------------*/ -/* - This functions sets up the actual font and then displays the main dialog. -*/ -int Dialog_MainDlg(BOOL *bReset) +/** + * This functions sets up the actual font and then displays the main dialog. + */ +int Dialog_MainDlg(bool *bReset, bool *bLoadedSnapshot) { int retbut; - BOOL bOldMouseVisibility; + bool bOldMouseVisibility; int nOldMouseX, nOldMouseY; + *bReset = false; + *bLoadedSnapshot = false; + if (SDLGui_SetScreen(sdlscrn)) - return FALSE; + return false; SDL_GetMouseState(&nOldMouseX, &nOldMouseY); bOldMouseVisibility = SDL_ShowCursor(SDL_QUERY); @@ -90,8 +94,11 @@ int Dialog_MainDlg(BOOL *bReset) case MAINDLG_ABOUT: Dialog_AboutDlg(); break; - case MAINDLG_DISKS: - Dialog_DiskDlg(); + case MAINDLG_FLOPPYS: + DlgFloppy_Main(); + break; + case MAINDLG_HARDDISK: + DlgHardDisk_Main(); break; case MAINDLG_ROM: DlgRom_Main(); @@ -102,11 +109,16 @@ int Dialog_MainDlg(BOOL *bReset) case MAINDLG_SOUND: Dialog_SoundDlg(); break; - case MAINDLG_CPU: + case MAINDLG_SYSTEM: Dialog_SystemDlg(); break; case MAINDLG_MEMORY: - Dialog_MemDlg(); + if (Dialog_MemDlg()) + { + /* Memory snapshot has been loaded - leave GUI immediately */ + *bLoadedSnapshot = true; + return true; + } break; case MAINDLG_JOY: Dialog_JoyDlg(); @@ -118,13 +130,13 @@ int Dialog_MainDlg(BOOL *bReset) Dialog_DeviceDlg(); break; case MAINDLG_LOADCFG: - Dialog_LoadParams(); + Configuration_Load(NULL); break; case MAINDLG_SAVECFG: - Dialog_SaveParams(); + Configuration_Save(); break; case MAINDLG_QUIT: - bQuitProgram = TRUE; + bQuitProgram = true; break; } } @@ -133,9 +145,7 @@ int Dialog_MainDlg(BOOL *bReset) if (maindlg[MAINDLG_RESET].state & SG_SELECTED) - *bReset = TRUE; - else - *bReset = FALSE; + *bReset = true; SDL_ShowCursor(bOldMouseVisibility); Main_WarpMouse(nOldMouseX, nOldMouseY);