1 /************************************************************************/
2 /*  Really Quit, Really Close dialogs.					*/
3 /************************************************************************/
4 
5 #   include	"appFrameConfig.h"
6 
7 #   include	<stddef.h>
8 #   include	<stdio.h>
9 
10 #   include	"appFrame.h"
11 #   include	"appQuestion.h"
12 #   include	"appFileChooser.h"
13 
14 #   include	<appDebugon.h>
15 
16 /************************************************************************/
17 /*									*/
18 /*  Run a 'Really Close' dialog.					*/
19 /*									*/
20 /************************************************************************/
21 
appRunReallyCloseDialog(APP_WIDGET option,EditDocument * ed)22 void appRunReallyCloseDialog(	APP_WIDGET			option,
23 				EditDocument *			ed )
24     {
25     EditApplication *		ea= ed->edApplication;
26     int				rcc;
27 
28     AppFileMessageResources *	afmr= &(ea->eaFileMessageResources);
29 
30     rcc= appQuestionRunSubjectYesNoCancelDialog( ea,
31 				ed->edToplevel.atTopWidget, option,
32 				utilMemoryBufferGetString( &(ed->edTitle) ),
33 				afmr->afmrReallyCloseQuestion );
34 
35     switch( rcc )
36 	{
37 	case AQDrespYES:
38 	    if  ( ! ea->eaSaveDocument )
39 		{ XDEB(ea->eaSaveDocument); return;	}
40 
41 	    if  ( utilMemoryBufferIsEmpty( &(ed->edFilename) ) )
42 		{
43 		appRunSaveChooser( option, ed->edToplevel.atTopWidget,
44 					APPFILE_CAN_SAVE, appDocSaveDocument,
45 					ed, ed->edPrivateData );
46 		}
47 	    else{
48 		if  ( ! appDocSaveDocument( ed, (void *)0,
49 					    ed->edToplevel.atTopWidget, option,
50 					    ed->edFormat, &(ed->edFilename) ) )
51 		    { appDocumentChanged( ed, 0 ); }
52 		}
53 
54 	    if  ( ! ed->edHasBeenChanged )
55 		{ appCloseDocument( ed );	}
56 	    break;
57 
58 	case AQDrespNO:
59 	    appCloseDocument( ed );
60 	    break;
61 
62 	case AQDrespCANCEL:
63 	case AQDrespCLOSED:
64 	    break;
65 	default:
66 	    LDEB(rcc); break;
67 	}
68 
69     return;
70     }
71 
72 /************************************************************************/
73 /*									*/
74 /*  Run a 'Really Quit' dialog.						*/
75 /*									*/
76 /************************************************************************/
77 
appRunReallyQuitDialog(APP_WIDGET option,APP_WIDGET relative,EditApplication * ea)78 int appRunReallyQuitDialog(	APP_WIDGET			option,
79 				APP_WIDGET			relative,
80 				EditApplication *		ea )
81     {
82     AppFileMessageResources *	afmr= &(ea->eaFileMessageResources);
83 
84     return appQuestionRunYesNoCancelDialog( ea,
85 					relative, option,
86 					afmr->afmrReallyQuitQuestion );
87     }
88