Annotation of previous/src/dialog.c, revision 1.1.1.2

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(&current, &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(&current, &ConfigureParams, bForceReset);
                     66:        } else {
                     67:                ConfigureParams = current;
                     68:        }
                     69: 
                     70:        Main_UnPauseEmulation();
                     71: 
                     72:        if (bQuitProgram)
                     73:                Main_RequestQuit();
                     74: 
                     75:        return bOKDialog;
                     76: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.