]>
Commit | Line | Data |
---|---|---|
23c9e63c DD |
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 | ||
b24c88b3 RC |
19 | #if 0 |
20 | static const char *cvsid = | |
21 | "\n%%% $Id$\n"; | |
22 | #endif | |
8507f105 | 23 | |
a77b6167 MB |
24 | #include "msg.h" |
25 | ||
26 | #include "LogSingleton.h" | |
23c9e63c | 27 | #include "win32.h" |
a77b6167 | 28 | |
23c9e63c DD |
29 | #include <stdio.h> |
30 | #include <stdarg.h> | |
31 | #include "dialog.h" | |
0407753c | 32 | #include "state.h" |
23c9e63c DD |
33 | |
34 | void | |
b24c88b3 | 35 | msg (const char *fmt, ...) |
23c9e63c | 36 | { |
08cd08c3 | 37 | char buf[2000]; |
23c9e63c DD |
38 | va_list args; |
39 | va_start (args, fmt); | |
08cd08c3 | 40 | vsnprintf (buf, 2000, fmt, args); |
23c9e63c DD |
41 | OutputDebugString (buf); |
42 | } | |
43 | ||
1fd6d0a2 | 44 | static int |
ab57ceaa | 45 | mbox (HWND owner, const char *name, int type, int id, va_list args) |
23c9e63c DD |
46 | { |
47 | char buf[1000], fmt[1000]; | |
48 | ||
1fd6d0a2 | 49 | if (LoadString (hinstance, id, fmt, sizeof (fmt)) <= 0) |
23c9e63c DD |
50 | ExitProcess (0); |
51 | ||
08cd08c3 | 52 | vsnprintf (buf, 1000, fmt, args); |
a77b6167 | 53 | log (LOG_PLAIN) << "mbox " << name << ": " << buf << endLog; |
0407753c DK |
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 | } | |
ab57ceaa | 79 | return MessageBox (owner, buf, "Cygwin Setup", type); |
23c9e63c DD |
80 | } |
81 | ||
82 | void | |
ab57ceaa | 83 | note (HWND owner, int id, ...) |
23c9e63c DD |
84 | { |
85 | va_list args; | |
86 | va_start (args, id); | |
ab57ceaa | 87 | mbox (owner, "note", 0, id, args); |
23c9e63c DD |
88 | } |
89 | ||
90 | void | |
ab57ceaa | 91 | fatal (HWND owner, int id, ...) |
23c9e63c DD |
92 | { |
93 | va_list args; | |
94 | va_start (args, id); | |
ab57ceaa | 95 | mbox (owner, "fatal", 0, id, args); |
9f4a0c62 | 96 | LogSingleton::GetInstance().exit (1); |
23c9e63c DD |
97 | } |
98 | ||
99 | int | |
ab57ceaa | 100 | yesno (HWND owner, int id, ...) |
23c9e63c DD |
101 | { |
102 | va_list args; | |
103 | va_start (args, id); | |
ab57ceaa | 104 | return mbox (owner, "yesno", MB_YESNO, id, args); |
23c9e63c | 105 | } |