From 938bd5f58b1703ac1fa511ca1e02ec2662581107 Mon Sep 17 00:00:00 2001 From: "simon.kagstrom" Date: Thu, 21 May 2009 08:47:27 +0000 Subject: [PATCH] Show a dialogue on panics --- src/gui-sdl/gui-sdl.c | 11 ++++++++++- src/gui-sdl/menu.c | 7 +++++++ src/gui-sdl/menu.h | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/gui-sdl/gui-sdl.c b/src/gui-sdl/gui-sdl.c index e5191ff..a3a121f 100644 --- a/src/gui-sdl/gui-sdl.c +++ b/src/gui-sdl/gui-sdl.c @@ -491,7 +491,16 @@ void gui_message (const char *format,...) va_start (parms,format); vsprintf ( msg, format, parms); va_end (parms); -// msgYesNo(msg, 0, 24, 24); + + if (!menu_is_inited()) + { + /* Some error message at startup - just quit */ + SDL_Surface *screen = SDL_SetVideoMode(640, 480, 16, 0); + if (!screen) + return; /* Deep trouble! */ + menu_init(screen); + } + msgYesNo(msg, 0, 24, 24); write_log (msg); } diff --git a/src/gui-sdl/menu.c b/src/gui-sdl/menu.c index 9f09573..608a6f8 100644 --- a/src/gui-sdl/menu.c +++ b/src/gui-sdl/menu.c @@ -53,6 +53,7 @@ static SDL_Surface *real_screen; #define IS_TEXT(p_msg) ( (p_msg)[0] == '#' || (p_msg)[0] == ' ' ) #define IS_MARKER(p_msg) ( (p_msg)[0] == '@' ) +static int is_inited = 0; static TTF_Font *menu_font; static TTF_Font *menu_font64; #if defined(GEKKO) @@ -992,4 +993,10 @@ void menu_init(SDL_Surface *screen) menu_font64 = read_font(FONT_ALT_PATH); real_screen = screen; + is_inited = 1; +} + +int menu_is_inited(void) +{ + return is_inited; } diff --git a/src/gui-sdl/menu.h b/src/gui-sdl/menu.h index 5915f19..99737be 100644 --- a/src/gui-sdl/menu.h +++ b/src/gui-sdl/menu.h @@ -44,4 +44,6 @@ extern int msgYesNo(char *text, int def,int x, int y); void menu_init(SDL_Surface *screen); +int menu_is_inited(void); + #endif /* !__MENU_H__ */