Annotation of hatari/src/dialog.c, revision 1.1.1.12

1.1       root        1: /*
1.1.1.4   root        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.
1.1       root        6: 
1.1.1.12! root        7:   Code to handle our options dialog.
1.1       root        8: */
1.1.1.12! root        9: const char Dialog_rcsid[] = "Hatari $Id: dialog.c,v 1.73 2008/10/28 20:37:09 eerot Exp $";
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.11  root       29:  * Return TRUE if user chooses OK, or FALSE if cancel!
                     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;
        !            35:        CNF_PARAMS current;
1.1       root       36: 
1.1.1.12! root       37:        Main_PauseEmulation(TRUE);
1.1.1.9   root       38:        bForceReset = FALSE;
1.1       root       39: 
1.1.1.12! root       40:        /* Copy details (this is so can restore if 'Cancel' dialog) */
        !            41:        current = ConfigureParams;
        !            42:        ConfigureParams.Screen.bFullScreen = bInFullScreen;
1.1.1.9   root       43:        bOKDialog = Dialog_MainDlg(&bForceReset);
1.1       root       44: 
1.1.1.11  root       45:        /* Check if reset is required and ask user if he really wants to continue then */
1.1.1.12! root       46:        if (bOKDialog && !bForceReset
        !            47:            && Change_DoNeedReset(&current, &ConfigureParams)
        !            48:            && ConfigureParams.Log.nAlertDlgLogLevel >= LOG_WARN) {
1.1.1.11  root       49:                bOKDialog = DlgAlert_Query("The emulated system must be "
                     50:                                           "reset to apply these changes. "
                     51:                                           "Apply changes now and reset "
                     52:                                           "the emulator?");
                     53:        }
                     54: 
                     55:        /* Copy details to configuration */
                     56:        if (bOKDialog) {
1.1.1.12! root       57:                Change_CopyChangedParamsToConfiguration(&current, &ConfigureParams, bForceReset);
        !            58:        } else {
        !            59:                ConfigureParams = current;
1.1.1.11  root       60:        }
1.1.1.2   root       61: 
1.1.1.9   root       62:        Main_UnPauseEmulation();
1.1.1.2   root       63: 
1.1.1.9   root       64:        if (bQuitProgram)
1.1.1.11  root       65:                Main_RequestQuit();
1.1.1.6   root       66: 
1.1.1.9   root       67:        return bOKDialog;
1.1       root       68: }

unix.superglobalmegacorp.com

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