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