diff options
| author | Dominik Geyer <dominik.geyer@gmx.de> | 2008-09-30 15:52:15 +0000 |
|---|---|---|
| committer | Dominik Geyer <dominik.geyer@gmx.de> | 2008-09-30 15:52:15 +0000 |
| commit | 9266f242c357df49e07f3f234548e873f4d215ae (patch) | |
| tree | fdd4c218bb9525e367ffc11de63535640359ccb7 /src/base/system.c | |
| parent | 799e82ba8b34720c14ec6a931b19b60f8f76b22b (diff) | |
| download | zcatch-9266f242c357df49e07f3f234548e873f4d215ae.tar.gz zcatch-9266f242c357df49e07f3f234548e873f4d215ae.zip | |
implemented gui_messagebox() which displays low-level message-box
Diffstat (limited to 'src/base/system.c')
| -rw-r--r-- | src/base/system.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/base/system.c b/src/base/system.c index 5a2296ed..460a4ff1 100644 --- a/src/base/system.c +++ b/src/base/system.c @@ -26,6 +26,11 @@ #include <pthread.h> #include <dirent.h> + + #if defined(CONF_PLATFORM_MACOSX) + #include <Carbon/Carbon.h> + #endif + #elif defined(CONF_FAMILY_WINDOWS) #define WIN32_LEAN_AND_MEAN #define _WIN32_WINNT 0x0501 /* required for mingw to get getaddrinfo to work */ @@ -1072,6 +1077,48 @@ void net_stats(NETSTATS *stats_inout) *stats_inout = network_stats; } +void gui_messagebox(const char *title, const char *message) +{ +#if defined(CONF_PLATFORM_MACOSX) + DialogRef theItem; + DialogItemIndex itemIndex; + + /* FIXME: really needed? can we rely on glfw? */ + /* HACK - get events without a bundle */ + ProcessSerialNumber psn; + GetCurrentProcess(&psn); + TransformProcessType(&psn,kProcessTransformToForegroundApplication); + SetFrontProcess(&psn); + /* END HACK */ + + CreateStandardAlert(kAlertStopAlert, + CFSTR(title), + CFSTR(message), + NULL, + &theItem); + + RunStandardAlert(theItem, NULL, &itemIndex); +#elif defined(CONF_FAMILY_UNIX) + static char cmd[1024]; + /* use xmessage which is available on nearly every X11 system */ + snprintf(cmd, 1024, "xmessage -center -title '%s' '%s'", + title, + message); + + system(cmd); +#elif defined(CONF_FAMILY_WINDOWS) + MessageBox(NULL, + message, + title, + MB_ICONEXCLAMATION | MB_OK); +#else + /* this is not critical */ + #warning not implemented +#endif +} + + + #if defined(__cplusplus) } #endif |