|
|
1.1 root 1: /*
1.1.1.4 root 2: Hatari - dialog.c
3:
1.1.1.16 root 4: This file is distributed under the GNU General Public License, version 2
5: or at your option any later version. Read the file gpl.txt for details.
1.1 root 6:
1.1.1.12 root 7: Code to handle our options dialog.
1.1 root 8: */
1.1.1.13 root 9: const char Dialog_fileid[] = "Hatari dialog.c : " __DATE__ " " __TIME__;
1.1.1.3 root 10:
1.1 root 11: #include "main.h"
12: #include "configuration.h"
1.1.1.12 root 13: #include "change.h"
1.1 root 14: #include "dialog.h"
1.1.1.11 root 15: #include "log.h"
1.1.1.2 root 16: #include "sdlgui.h"
1.1.1.12 root 17: #include "screen.h"
1.1 root 18:
19:
1.1.1.2 root 20: /*-----------------------------------------------------------------------*/
1.1.1.11 root 21: /**
22: * Open Property sheet Options dialog.
1.1.1.12 root 23: *
24: * We keep all our configuration details in a structure called
25: * 'ConfigureParams'. When we open our dialog we make a backup
26: * of this structure. When the user finally clicks on 'OK',
27: * we can compare and makes the necessary changes.
28: *
1.1.1.14 root 29: * Return true if user chooses OK, or false if cancel!
1.1.1.11 root 30: */
1.1.1.12 root 31: bool Dialog_DoProperty(void)
1.1 root 32: {
1.1.1.12 root 33: bool bOKDialog; /* Did user 'OK' dialog? */
34: bool bForceReset;
1.1.1.13 root 35: bool bLoadedSnapshot;
1.1.1.12 root 36: CNF_PARAMS current;
1.1 root 37:
1.1.1.14 root 38: Main_PauseEmulation(true);
39: bForceReset = false;
1.1 root 40:
1.1.1.12 root 41: /* Copy details (this is so can restore if 'Cancel' dialog) */
42: current = ConfigureParams;
43: ConfigureParams.Screen.bFullScreen = bInFullScreen;
1.1.1.13 root 44: bOKDialog = Dialog_MainDlg(&bForceReset, &bLoadedSnapshot);
45:
46: /* If a memory snapshot has been loaded, no further changes are required */
47: if (bLoadedSnapshot)
48: {
49: Main_UnPauseEmulation();
50: return true;
51: }
1.1 root 52:
1.1.1.11 root 53: /* Check if reset is required and ask user if he really wants to continue then */
1.1.1.12 root 54: if (bOKDialog && !bForceReset
55: && Change_DoNeedReset(¤t, &ConfigureParams)
1.1.1.15 root 56: && ConfigureParams.Log.nAlertDlgLogLevel > LOG_FATAL) {
1.1.1.11 root 57: bOKDialog = DlgAlert_Query("The emulated system must be "
58: "reset to apply these changes. "
59: "Apply changes now and reset "
60: "the emulator?");
61: }
62:
63: /* Copy details to configuration */
64: if (bOKDialog) {
1.1.1.12 root 65: Change_CopyChangedParamsToConfiguration(¤t, &ConfigureParams, bForceReset);
66: } else {
67: ConfigureParams = current;
1.1.1.11 root 68: }
1.1.1.2 root 69:
1.1.1.9 root 70: Main_UnPauseEmulation();
1.1.1.2 root 71:
1.1.1.9 root 72: if (bQuitProgram)
1.1.1.17! root 73: Main_RequestQuit(0);
1.1.1.6 root 74:
1.1.1.9 root 75: return bOKDialog;
1.1 root 76: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.