|
|
1.1 root 1: /*
2: Hatari - dialog.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: Code to handle our options dialog.
8: */
9: const char Dialog_fileid[] = "Hatari dialog.c : " __DATE__ " " __TIME__;
10:
11: #include "main.h"
12: #include "configuration.h"
13: #include "change.h"
14: #include "dialog.h"
15: #include "log.h"
16: #include "sdlgui.h"
17: #include "screen.h"
18:
19:
20: /*-----------------------------------------------------------------------*/
21: /**
22: * Open Property sheet Options dialog.
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: *
29: * Return true if user chooses OK, or false if cancel!
30: */
31: bool Dialog_DoProperty(void)
32: {
33: bool bOKDialog; /* Did user 'OK' dialog? */
34: bool bForceReset;
35: bool bLoadedSnapshot;
36: CNF_PARAMS current;
37:
38: Main_PauseEmulation(true);
39: bForceReset = false;
40:
41: /* Copy details (this is so can restore if 'Cancel' dialog) */
42: current = ConfigureParams;
43: ConfigureParams.Screen.bFullScreen = bInFullScreen;
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: }
52:
53: /* Check if reset is required and ask user if he really wants to continue then */
54: if (bOKDialog && !bForceReset
55: && Change_DoNeedReset(¤t, &ConfigureParams)
1.1.1.2 ! root 56: && ConfigureParams.Log.nAlertDlgLogLevel > LOG_FATAL) {
1.1 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) {
65: Change_CopyChangedParamsToConfiguration(¤t, &ConfigureParams, bForceReset);
66: } else {
67: ConfigureParams = current;
68: }
69:
70: Main_UnPauseEmulation();
71:
72: if (bQuitProgram)
73: Main_RequestQuit();
74:
75: return bOKDialog;
76: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.