Use semantic popup icons instead of always using error

This commit is contained in:
Lior Halphon 2021-04-15 02:42:31 +03:00
parent 98a39ae49a
commit 2078c2a8fb
1 changed files with 10 additions and 9 deletions

View File

@ -58,7 +58,7 @@ static void start_capturing_logs(void)
GB_set_log_callback(&gb, log_capture_callback);
}
static const char *end_capturing_logs(bool show_popup, bool should_exit)
static const char *end_capturing_logs(bool show_popup, bool should_exit, uint32_t popup_flags)
{
GB_set_log_callback(&gb, NULL);
if (captured_log[0] == 0) {
@ -67,7 +67,7 @@ static const char *end_capturing_logs(bool show_popup, bool should_exit)
}
else {
if (show_popup) {
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error", captured_log, window);
SDL_ShowSimpleMessageBox(popup_flags, "Error", captured_log, window);
}
if (should_exit) {
exit(1);
@ -430,20 +430,21 @@ static bool handle_pending_command(void)
replace_extension(filename, strlen(filename), save_path, save_extension);
start_capturing_logs();
bool success;
if (pending_command == GB_SDL_LOAD_STATE_COMMAND) {
GB_load_state(&gb, save_path);
success = GB_load_state(&gb, save_path) == 0;
}
else {
GB_save_state(&gb, save_path);
success = GB_save_state(&gb, save_path) == 0;
}
end_capturing_logs(true, false);
end_capturing_logs(true, false, success? SDL_MESSAGEBOX_INFORMATION : SDL_MESSAGEBOX_ERROR);
return false;
}
case GB_SDL_LOAD_STATE_FROM_FILE_COMMAND:
start_capturing_logs();
GB_load_state(&gb, dropped_state_file);
end_capturing_logs(true, false);
bool success = GB_load_state(&gb, dropped_state_file) == 0;
end_capturing_logs(true, false, success? SDL_MESSAGEBOX_INFORMATION : SDL_MESSAGEBOX_ERROR);
SDL_free(dropped_state_file);
return false;
@ -483,7 +484,7 @@ static void load_boot_rom(GB_gameboy_t *gb, GB_boot_rom_t type)
if (use_built_in) {
start_capturing_logs();
GB_load_boot_rom(gb, resource_path(names[type]));
end_capturing_logs(true, false);
end_capturing_logs(true, false, SDL_MESSAGEBOX_ERROR);
}
}
@ -556,7 +557,7 @@ restart:
else {
GB_load_rom(&gb, filename);
}
end_capturing_logs(true, error);
end_capturing_logs(true, error, SDL_MESSAGEBOX_WARNING);
/* Configure battery */