use MessageBox() to display error messages under Win32
This commit is contained in:
parent
131e0f9630
commit
a514f7e9a2
94
src/main.c
94
src/main.c
@ -144,8 +144,8 @@ void Display_syntax(void)
|
|||||||
fputs(modes, stdout);
|
fputs(modes, stdout);
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
MessageBoxA(NULL, syntax, "GrafX2", MB_OK);
|
MessageBoxA(GFX2_Get_Window_Handle(), syntax, "GrafX2", MB_OK);
|
||||||
MessageBoxA(NULL, modes, "GrafX2", MB_OK);
|
MessageBoxA(GFX2_Get_Window_Handle(), modes, "GrafX2", MB_OK);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,7 +166,13 @@ void Error_function(int error_code, const char *filename, int line_number, const
|
|||||||
T_Palette temp_palette;
|
T_Palette temp_palette;
|
||||||
T_Palette backup_palette;
|
T_Palette backup_palette;
|
||||||
int index;
|
int index;
|
||||||
printf("Error number %d occured in file %s, line %d, function %s.\n", error_code, filename,line_number,function_name);
|
char msg_buffer[512];
|
||||||
|
|
||||||
|
snprintf(msg_buffer, sizeof(msg_buffer), "Error number %d occured in file %s, line %d, function %s.\n", error_code, filename,line_number,function_name);
|
||||||
|
fputs(msg_buffer, stderr);
|
||||||
|
#if defined(_MSC_VER) && defined(DEBUG)
|
||||||
|
OutputDebugStringA(msg_buffer);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (error_code==0)
|
if (error_code==0)
|
||||||
{
|
{
|
||||||
@ -182,46 +188,64 @@ void Error_function(int error_code, const char *filename, int line_number, const
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
const char * msg = NULL;
|
||||||
switch (error_code)
|
switch (error_code)
|
||||||
{
|
{
|
||||||
case ERROR_GUI_MISSING : printf("Error: File containing the GUI graphics is missing!\n");
|
case ERROR_GUI_MISSING : snprintf(msg_buffer, sizeof(msg_buffer), "Error: File containing the GUI graphics is missing!\n"
|
||||||
printf("This program cannot run without this file.\n");
|
"This program cannot run without this file.\n"
|
||||||
|
"\n%s", Gui_loading_error_message);
|
||||||
|
msg = msg_buffer;
|
||||||
break;
|
break;
|
||||||
case ERROR_GUI_CORRUPTED : printf("Error: File containing the GUI graphics couldn't be parsed!\n");
|
case ERROR_GUI_CORRUPTED : msg = "Error: File containing the GUI graphics couldn't be parsed!\n"
|
||||||
printf("This program cannot run without a correct version of this file.\n");
|
"This program cannot run without a correct version of this file.\n";
|
||||||
break;
|
break;
|
||||||
case ERROR_INI_MISSING : printf("Error: File gfx2def.ini is missing!\n");
|
case ERROR_INI_MISSING : msg = "Error: File gfx2def.ini is missing!\n"
|
||||||
printf("This program cannot run without this file.\n");
|
"This program cannot run without this file.\n";
|
||||||
break;
|
break;
|
||||||
case ERROR_MEMORY : printf("Error: Not enough memory!\n\n");
|
case ERROR_MEMORY : msg = "Error: Not enough memory!\n\n"
|
||||||
printf("You should try exiting other programs to free some bytes for Grafx2.\n\n");
|
"You should try exiting other programs to free some bytes for Grafx2.\n\n";
|
||||||
break;
|
break;
|
||||||
case ERROR_FORBIDDEN_MODE : printf("Error: The requested video mode has been disabled from the resolution menu!\n");
|
case ERROR_FORBIDDEN_MODE : msg = "Error: The requested video mode has been disabled from the resolution menu!\n"
|
||||||
printf("If you want to run the program in this mode, you'll have to start it with an\n");
|
"If you want to run the program in this mode, you'll have to start it with an\n"
|
||||||
printf("enabled mode, then enter the resolution menu and enable the mode you want.\n");
|
"enabled mode, then enter the resolution menu and enable the mode you want.\n"
|
||||||
printf("Check also if the 'Default_video_mode' parameter in gfx2.ini is correct.\n");
|
"Check also if the 'Default_video_mode' parameter in gfx2.ini is correct.\n";
|
||||||
break;
|
break;
|
||||||
case ERROR_FORBIDDEN_SIZE : printf("Error: The image dimensions all have to be in the range 1-9999!\n");
|
case ERROR_FORBIDDEN_SIZE : msg = "Error: The image dimensions all have to be in the range 1-9999!\n";
|
||||||
break;
|
break;
|
||||||
case ERROR_COMMAND_LINE : printf("Error: Invalid parameter or file not found.\n\n");
|
case ERROR_COMMAND_LINE : msg = "Error: Invalid parameter or file not found.\n\n";
|
||||||
Display_syntax();
|
|
||||||
break;
|
break;
|
||||||
case ERROR_SAVING_CFG : printf("Error: Write error while saving settings!\n");
|
case ERROR_SAVING_CFG : msg = "Error: Write error while saving settings!\n"
|
||||||
printf("Settings have not been saved correctly, and the gfx2.cfg file may have been\n");
|
"Settings have not been saved correctly, and the gfx2.cfg file may have been\n"
|
||||||
printf("corrupt. If so, please delete it and Grafx2 will restore default settings.\n");
|
"corrupt. If so, please delete it and Grafx2 will restore default settings.\n";
|
||||||
break;
|
break;
|
||||||
case ERROR_MISSING_DIRECTORY : printf("Error: Directory you ran the program from not found!\n");
|
case ERROR_MISSING_DIRECTORY : msg = "Error: Directory you ran the program from not found!\n";
|
||||||
break;
|
break;
|
||||||
case ERROR_INI_CORRUPTED : printf("Error: File gfx2.ini is corrupt!\n");
|
case ERROR_INI_CORRUPTED : snprintf(msg_buffer, sizeof(msg_buffer), "Error: File gfx2.ini is corrupt!\n"
|
||||||
printf("It contains bad values at line %d.\n",Line_number_in_INI_file);
|
"It contains bad values at line %d.\n"
|
||||||
printf("You can re-generate it by deleting the file and running GrafX2 again.\n");
|
"You can re-generate it by deleting the file and running GrafX2 again.\n",
|
||||||
|
Line_number_in_INI_file);
|
||||||
|
msg = msg_buffer;
|
||||||
break;
|
break;
|
||||||
case ERROR_SAVING_INI : printf("Error: Cannot rewrite file gfx2.ini!\n");
|
case ERROR_SAVING_INI : msg = "Error: Cannot rewrite file gfx2.ini!\n";
|
||||||
break;
|
break;
|
||||||
case ERROR_SORRY_SORRY_SORRY : printf("Error: Sorry! Sorry! Sorry! Please forgive me!\n");
|
case ERROR_SORRY_SORRY_SORRY : msg = "Error: Sorry! Sorry! Sorry! Please forgive me!\n";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(msg != NULL)
|
||||||
|
{
|
||||||
|
fputs(msg, stderr);
|
||||||
|
#if defined(WIN32)
|
||||||
|
#if defined(DEBUG)
|
||||||
|
OutputDebugStringA(msg);
|
||||||
|
#endif
|
||||||
|
MessageBoxA(GFX2_Get_Window_Handle(), msg, "GrafX2 error", MB_OK | MB_ICONERROR);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error_code == ERROR_COMMAND_LINE)
|
||||||
|
Display_syntax();
|
||||||
|
|
||||||
#if defined(USE_SDL) || defined(USE_SDL2)
|
#if defined(USE_SDL) || defined(USE_SDL2)
|
||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
#endif
|
#endif
|
||||||
@ -335,7 +359,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
if (Current_resolution == -1)
|
if (Current_resolution == -1)
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
if ((Video_mode[Current_resolution].State & 0x7F) == 3)
|
if ((Video_mode[Current_resolution].State & 0x7F) == 3)
|
||||||
@ -347,7 +370,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -385,7 +407,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
if (scale < 2 || scale > 256)
|
if (scale < 2 || scale > 256)
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
Set_palette_RGB_scale(scale);
|
Set_palette_RGB_scale(scale);
|
||||||
@ -393,7 +414,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -407,7 +427,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
if (scale < 1 || scale > 30)
|
if (scale < 1 || scale > 30)
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
Set_palette_Gamma(scale);
|
Set_palette_Gamma(scale);
|
||||||
@ -415,7 +434,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -429,7 +447,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -444,7 +461,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
if (tmpcp == NULL)
|
if (tmpcp == NULL)
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
setsize_height = atoi(++tmpcp);
|
setsize_height = atoi(++tmpcp);
|
||||||
@ -452,14 +468,12 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
setsize_width < 1 || setsize_width > 9999)
|
setsize_width < 1 || setsize_width > 9999)
|
||||||
{
|
{
|
||||||
Error(ERROR_FORBIDDEN_SIZE);
|
Error(ERROR_FORBIDDEN_SIZE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -469,7 +483,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
{
|
{
|
||||||
// Il y a déjà 2 noms de fichiers et on vient d'en trouver un 3ème
|
// Il y a déjà 2 noms de fichiers et on vient d'en trouver un 3ème
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
else if (File_exists(argv[index]))
|
else if (File_exists(argv[index]))
|
||||||
@ -495,7 +508,6 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Error(ERROR_COMMAND_LINE);
|
Error(ERROR_COMMAND_LINE);
|
||||||
Display_syntax();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -798,7 +810,6 @@ int Init_program(int argc,char * argv[])
|
|||||||
gfx = Load_graphics(DEFAULT_SKIN_FILENAME, &initial_gradients);
|
gfx = Load_graphics(DEFAULT_SKIN_FILENAME, &initial_gradients);
|
||||||
if (gfx == NULL)
|
if (gfx == NULL)
|
||||||
{
|
{
|
||||||
printf("%s", Gui_loading_error_message);
|
|
||||||
Error(ERROR_GUI_MISSING);
|
Error(ERROR_GUI_MISSING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -821,7 +832,8 @@ int Init_program(int argc,char * argv[])
|
|||||||
if (!(Menu_font=Load_font(Config.Font_file, 1)))
|
if (!(Menu_font=Load_font(Config.Font_file, 1)))
|
||||||
if (!(Menu_font=Load_font(DEFAULT_FONT_FILENAME, 1)))
|
if (!(Menu_font=Load_font(DEFAULT_FONT_FILENAME, 1)))
|
||||||
{
|
{
|
||||||
printf("Unable to open the default font file: %s\n", DEFAULT_FONT_FILENAME);
|
snprintf(Gui_loading_error_message, sizeof(Gui_loading_error_message),
|
||||||
|
"Unable to open the default font file: %s\n", DEFAULT_FONT_FILENAME);
|
||||||
Error(ERROR_GUI_MISSING);
|
Error(ERROR_GUI_MISSING);
|
||||||
}
|
}
|
||||||
Load_Unicode_fonts();
|
Load_Unicode_fonts();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user