208 lines
3.4 KiB
C++
Executable File
208 lines
3.4 KiB
C++
Executable File
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#ifdef XVT_OS
|
|
#include <xvt_os.h>
|
|
#if XVT_OS == XVT_OS_WIN
|
|
#include <windows.h>
|
|
#include <keys.h>
|
|
#else
|
|
#include <xvtility.h>
|
|
#include <applicat.h>
|
|
#endif
|
|
|
|
#endif // XVT_OS
|
|
|
|
|
|
#ifdef FOXPRO
|
|
#undef XVT_OS
|
|
#include <pro_ext.h>
|
|
#endif
|
|
|
|
#ifdef XVT_R3_API
|
|
#include <windows.h>
|
|
#endif
|
|
|
|
#include <checks.h>
|
|
|
|
#define buildmsg() char msg[256];va_list argptr;va_start(argptr,fmt);vsprintf(msg,fmt,argptr);va_end(argptr)
|
|
|
|
#ifdef XVT_OS
|
|
|
|
int fatal_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
|
|
#if XVT_OS == XVT_OS_WIN
|
|
MessageBeep(MB_ICONHAND);
|
|
MessageBox(GetFocus(), msg, "ERRORE FATALE", MB_OK | MB_ICONHAND | MB_SYSTEMMODAL);
|
|
FatalAppExit(0, "ERRORE FATALE");
|
|
#else
|
|
beep();
|
|
if (xvt_running()) xvt_fatal("%s", msg);
|
|
else
|
|
{
|
|
fprintf(stderr, "%s\n", msg);
|
|
getchar();
|
|
exit(1);
|
|
}
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int error_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
|
|
#if XVT_OS == XVT_OS_WIN
|
|
MessageBeep(MB_ICONEXCLAMATION);
|
|
MessageBox(GetFocus(), msg, "ERRORE", MB_OK | MB_ICONEXCLAMATION);
|
|
#else
|
|
beep();
|
|
if (xvt_running()) xvt_error("%s", msg);
|
|
else
|
|
{
|
|
fprintf(stderr, "%s\n", msg);
|
|
getchar();
|
|
}
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int warning_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
|
|
#if XVT_OS == XVT_OS_WIN
|
|
MessageBeep(MB_ICONQUESTION);
|
|
MessageBox(GetFocus(), msg, "ATTENZIONE", MB_OK | MB_ICONQUESTION);
|
|
#else
|
|
beep();
|
|
xvt_note("%s", msg);
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int message_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
|
|
#if XVT_OS == XVT_OS_WIN
|
|
MessageBox(GetFocus(), msg, "INFORMAZIONE", MB_OK | MB_ICONINFORMATION);
|
|
#else
|
|
xvt_note("%s", msg);
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|
|
int sorry_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
|
|
#if XVT_OS == XVT_OS_WIN
|
|
MessageBeep(MB_OK);
|
|
MessageBox(GetFocus(), msg, "SPIACENTE", MB_OK | MB_ICONINFORMATION);
|
|
#else
|
|
xvt_note("%s", msg);
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|
|
int yesno_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
|
|
#if XVT_OS == XVT_OS_WIN
|
|
int r = MessageBox(GetFocus(), msg, "RICHIESTA", MB_YESNO | MB_ICONQUESTION);
|
|
return r == IDYES;
|
|
#else
|
|
ASK_RESPONSE r = xvt_ask((char*) "Si", (char*) "No", NULL, "%s", msg);
|
|
return r == RESP_DEFAULT;
|
|
#endif
|
|
}
|
|
|
|
|
|
int yesnofatal_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
|
|
#ifdef DBG
|
|
char s[256]; sprintf(s, "%s\nContinuare ugualmente?", msg);
|
|
const int ret = yesno_box("%s", s);
|
|
if (!ret) fatal_box("");
|
|
#else
|
|
fatal_box("%s", msg);
|
|
#endif
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
|
|
int yesnocancel_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
|
|
#if XVT_OS == XVT_OS_WIN
|
|
int r = MessageBox(GetFocus(), msg, "RICHIESTA", MB_YESNOCANCEL | MB_ICONQUESTION);
|
|
if (r == IDYES) r = K_YES;
|
|
else
|
|
if (r == IDNO) r = K_NO;
|
|
else
|
|
r = K_ESC;
|
|
return r;
|
|
#else
|
|
ASK_RESPONSE r = xvt_ask((char*) "Si", (char*) "No", (char*) "Annulla", "%s", msg);
|
|
if (r == RESP_DEFAULT) r = K_YES;
|
|
else
|
|
if (r == RESP_2) r = K_NO;
|
|
else
|
|
r = K_ESC;
|
|
return r;
|
|
#endif
|
|
}
|
|
|
|
#endif // XVT_OS
|
|
|
|
|
|
#ifdef FOXPRO
|
|
|
|
int error_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
_UserError(msg);
|
|
return 0;
|
|
}
|
|
|
|
int fatal_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
_UserError(msg);
|
|
return 0;
|
|
}
|
|
|
|
int message_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
_UserError(msg);
|
|
return 0;
|
|
}
|
|
|
|
int yesnofatal_box(const char* fmt, ...)
|
|
{
|
|
buildmsg();
|
|
_UserError(msg);
|
|
return 0;
|
|
}
|
|
#endif // FOXPRO
|
|
|