2011-01-30 17:48:24 +03:00
|
|
|
|
|
|
|
|
|
///=============================
|
|
|
|
|
|
|
|
|
|
#define MB_OK 0
|
|
|
|
|
#define MB_OKCANCEL 1
|
|
|
|
|
#define MB_ABORTRETRYIGNORE 2
|
|
|
|
|
#define MB_YESNOCANCEL 3
|
|
|
|
|
#define MB_YESNO 4
|
|
|
|
|
#define MB_RETRYCANCEL 5
|
|
|
|
|
|
|
|
|
|
#define IDOK 1
|
|
|
|
|
#define IDCANCEL 2
|
|
|
|
|
#define IDABORT 3
|
|
|
|
|
#define IDRETRY 4
|
|
|
|
|
#define IDIGNORE 5
|
|
|
|
|
#define IDYES 6
|
|
|
|
|
#define IDNO 7
|
|
|
|
|
|
|
|
|
|
///=============================
|
|
|
|
|
|
2011-02-08 17:43:48 +03:00
|
|
|
|
#if LANG_RUS
|
2011-01-30 17:48:24 +03:00
|
|
|
|
char BTN_OK[]={"OK"};
|
|
|
|
|
char BTN_CANCEL[]={"<EFBFBD>⬥<EFBFBD><EFBFBD>"};
|
|
|
|
|
char BTN_ABORT[]={"<EFBFBD>४<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"};
|
|
|
|
|
char BTN_RETRY[]={"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"};
|
|
|
|
|
char BTN_INGNORE[]={"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"};
|
|
|
|
|
char BTN_NO[]={"<EFBFBD><EFBFBD><EFBFBD>"};
|
2011-02-08 17:43:48 +03:00
|
|
|
|
#else
|
2011-01-30 17:48:24 +03:00
|
|
|
|
char BTN_OK[]={"OK"};
|
|
|
|
|
char BTN_CANCEL[]={"Cancel"};
|
|
|
|
|
char BTN_ABORT[]={"Abort"};
|
|
|
|
|
char BTN_RETRY[]={"Retry"};
|
|
|
|
|
char BTN_INGNORE[]={"Ignore"};
|
|
|
|
|
char BTN_NO[]={"No"};
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
///=============================
|
|
|
|
|
|
|
|
|
|
kol_struct_import *MSG_BOX_IMPORT = NULL;
|
|
|
|
|
int (* _stdcall mb_create)(char *m, char* t);
|
|
|
|
|
|
|
|
|
|
char msg[1024];
|
|
|
|
|
char thread[1024];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///=============================
|
|
|
|
|
|
|
|
|
|
char MessageBox(char *text, char *caption, int type)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int i, j;
|
|
|
|
|
|
|
|
|
|
if (MSG_BOX_IMPORT == NULL)
|
|
|
|
|
{
|
|
|
|
|
MSG_BOX_IMPORT = kol_cofflib_load("/sys/lib/Msgbox.obj");
|
|
|
|
|
if (MSG_BOX_IMPORT == NULL)
|
|
|
|
|
kol_exit();
|
|
|
|
|
|
|
|
|
|
mb_create = kol_cofflib_procload (MSG_BOX_IMPORT, "mb_create");
|
|
|
|
|
if (mb_create == NULL)
|
|
|
|
|
kol_exit();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
msg[0] = 255;
|
|
|
|
|
msg[1] = 0;
|
|
|
|
|
|
|
|
|
|
for (i = 2, j = 0; ;i++, j++)
|
|
|
|
|
{
|
|
|
|
|
msg[i] = caption[j];
|
|
|
|
|
if (0 == msg[i])
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
|
|
msg[i] = 0;
|
|
|
|
|
|
|
|
|
|
for (j = 0; ;i++, j++)
|
|
|
|
|
{
|
|
|
|
|
msg[i] = text[j];
|
|
|
|
|
if (0 == msg[i])
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
|
|
msg[i] = 0;
|
|
|
|
|
|
|
|
|
|
switch (type)
|
|
|
|
|
{
|
|
|
|
|
case MB_OK:
|
|
|
|
|
for (j = 0; ;i++, j++)
|
|
|
|
|
{
|
|
|
|
|
msg[i] = BTN_OK[j];
|
|
|
|
|
if (0 == msg[i])
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case MB_OKCANCEL:
|
|
|
|
|
for (j = 0; ;i++, j++)
|
|
|
|
|
{
|
|
|
|
|
msg[i] = BTN_OK[j];
|
|
|
|
|
if (0 == msg[i])
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
|
|
msg[i] = 0;
|
|
|
|
|
|
|
|
|
|
for (j = 0; ;i++, j++)
|
|
|
|
|
{
|
|
|
|
|
msg[i] = BTN_CANCEL[j];
|
|
|
|
|
if (0 == msg[i])
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
i++;
|
|
|
|
|
msg[i] = 0;
|
|
|
|
|
|
|
|
|
|
mb_create(msg, thread+1024);
|
|
|
|
|
|
|
|
|
|
for (;;)
|
|
|
|
|
{
|
|
|
|
|
if ( (unsigned char) msg[0] != 255 )
|
|
|
|
|
switch (type)
|
|
|
|
|
{
|
|
|
|
|
case MB_OK:
|
|
|
|
|
if (msg[0] == 1)
|
|
|
|
|
return IDOK;
|
|
|
|
|
else
|
|
|
|
|
return 0;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case MB_OKCANCEL:
|
|
|
|
|
switch(msg[0])
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
return IDOK;
|
|
|
|
|
case 2:
|
|
|
|
|
return IDCANCEL;
|
|
|
|
|
default:
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
kol_sleep(10);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///=============================
|
|
|
|
|
|