00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <extgraph.h>
00025
00026 #include "AdvDialogs.h"
00027 #include "Internal.h"
00028
00029
00030
00031 short AdvDlgMessageBox(const char *title, const char *msg, uchar textcolor, uchar button, INT_HANDLER tempint1)
00032 {
00033 void *kbq = kbd_queue();
00034 short key;
00035 const short CX = (LCD_WIDTH - 160) >> 1;
00036 const short CY = (LCD_HEIGHT - 100) >> 1;
00037
00038
00039 if (tempint1 != DUMMY_HANDLER)
00040 {
00041 GraySetInt1Handler(tempint1);
00042 }
00043
00044 SaveScreen();
00045
00046
00047
00048
00049
00050 GrayDrawRect(30+CX, 42+CY, 130+CX, 65+CY, COLOR_LIGHTGRAY, RECT_FILLED);
00051 GrayDrawRect(30+CX, 35+CY, 130+CX, 41+CY, COLOR_BLACK, RECT_FILLED);
00052 GrayFastDrawLine(31+CX, 66+CY, 131+CX, 66+CY, COLOR_BLACK);
00053 GrayFastDrawLine(131+CX, 36+CY, 131+CX, 66+CY, COLOR_BLACK);
00054
00055
00056 GrayDrawStrExt(0, 36+CY, title, A_XOR | A_CENTERED, F_4x6);
00057
00058
00059 GrayDrawColorString(TXTSTART+CX, 45+CY, msg, textcolor, TXT_STANDARD);
00060
00061
00062 if (button != B_NONE)
00063 {
00064 GraySprite16_RPLC_R(106+CX, 55+CY, 9, &gbutton[0], &gbutton[9], GRAYPLANES);
00065 GrayDrawStrExt(109-((strlen(bttext[button-1])-2)*2)+CX, 57+CY, bttext[button-1], A_NORMAL, F_4x6);
00066 }
00067
00068 GetKey(kbq, &key);
00069
00070
00071 if (tempint1 != DUMMY_HANDLER)
00072 {
00073 GraySetInt1Handler(DUMMY_HANDLER);
00074 }
00075
00076
00077
00078
00079 RestoreScreen();
00080
00081 return key;
00082 }
00083