]> cygwin.com Git - cygwin-apps/setup.git/blob - msg.cc
* Makefile.am: Treat libgetopt++ as full-fledged SUBDIRS.
[cygwin-apps/setup.git] / msg.cc
1 /*
2 * Copyright (c) 2000, Red Hat, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * A copy of the GNU General Public License can be found at
10 * http://www.gnu.org/
11 *
12 * Written by DJ Delorie <dj@cygnus.com>
13 *
14 */
15
16 /* The purpose of this file is to centralize all the message
17 functions. */
18
19 #if 0
20 static const char *cvsid =
21 "\n%%% $Id$\n";
22 #endif
23
24 #include "msg.h"
25
26 #include "LogSingleton.h"
27 #include "win32.h"
28
29 #include <stdio.h>
30 #include <stdarg.h>
31 #include "dialog.h"
32 #include "state.h"
33
34 void
35 msg (const char *fmt, ...)
36 {
37 char buf[2000];
38 va_list args;
39 va_start (args, fmt);
40 vsnprintf (buf, 2000, fmt, args);
41 OutputDebugString (buf);
42 }
43
44 static int
45 mbox (HWND owner, const char *name, int type, int id, va_list args)
46 {
47 char buf[1000], fmt[1000];
48
49 if (LoadString (hinstance, id, fmt, sizeof (fmt)) <= 0)
50 ExitProcess (0);
51
52 vsnprintf (buf, 1000, fmt, args);
53 log (LOG_PLAIN) << "mbox " << name << ": " << buf << endLog;
54 if (unattended_mode)
55 {
56 // Return some default values.
57 log (LOG_PLAIN) << "unattended_mode is set at mbox: returning default value" << endLog;
58 switch (type & MB_TYPEMASK)
59 {
60 case MB_OK:
61 case MB_OKCANCEL:
62 return IDOK;
63 break;
64 case MB_YESNO:
65 case MB_YESNOCANCEL:
66 return IDYES;
67 break;
68 case MB_ABORTRETRYIGNORE:
69 return IDIGNORE;
70 break;
71 case MB_RETRYCANCEL:
72 return IDCANCEL;
73 break;
74 default:
75 log (LOG_PLAIN) << "unattended_mode failed for " << (type & MB_TYPEMASK) << endLog;
76 return 0;
77 }
78 }
79 return MessageBox (owner, buf, "Cygwin Setup", type);
80 }
81
82 void
83 note (HWND owner, int id, ...)
84 {
85 va_list args;
86 va_start (args, id);
87 mbox (owner, "note", 0, id, args);
88 }
89
90 void
91 fatal (HWND owner, int id, ...)
92 {
93 va_list args;
94 va_start (args, id);
95 mbox (owner, "fatal", 0, id, args);
96 LogSingleton::GetInstance().exit (1);
97 }
98
99 int
100 yesno (HWND owner, int id, ...)
101 {
102 va_list args;
103 va_start (args, id);
104 return mbox (owner, "yesno", MB_YESNO, id, args);
105 }
This page took 0.036623 seconds and 5 git commands to generate.