Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1813 → Rev 1814

/programs/emulator/e80/trunk/system/msgbox.c
0,0 → 1,167
 
///=============================
 
#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
 
///=============================
 
#define LANG_EN
 
#ifdef LANG_RU
char BTN_OK[]={"OK"};
char BTN_CANCEL[]={"Žâ¬¥­ "};
char BTN_ABORT[]={"à¥ªà â¨âì"};
char BTN_RETRY[]={"®¢â®à¨âì"};
char BTN_INGNORE[]={"ˆ£­®à¨à®¢ âì"};
char BTN_NO[]={"¥â"};
#endif
 
#ifdef LANG_EN
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);
}
 
 
}
 
///=============================