From 4fba2ab2ddda75a05c70ac95531504edfafdf8c8 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Tue, 20 Sep 2011 20:47:19 +0000 Subject: Add TXT_MessageBox convenience function. Subversion-branch: /branches/v2-branch Subversion-revision: 2388 --- src/setup/joystick.c | 16 +++------------- textscreen/txt_window.c | 23 +++++++++++++++++++++++ textscreen/txt_window.h | 10 ++++++++++ 3 files changed, 36 insertions(+), 13 deletions(-) diff --git a/src/setup/joystick.c b/src/setup/joystick.c index 48074121..064ff99d 100644 --- a/src/setup/joystick.c +++ b/src/setup/joystick.c @@ -270,19 +270,9 @@ static int CalibrationEventCallback(SDL_Event *event, void *user_data) static void NoJoystick(void) { - txt_window_t *window; - - window = TXT_NewWindow(NULL); - - TXT_AddWidget(window, - TXT_NewLabel("No joysticks could be opened.\n\n" - "Try configuring your joystick from within\n" - "your OS first.")); - - TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL); - TXT_SetWindowAction(window, TXT_HORIZ_CENTER, - TXT_NewWindowEscapeAction(window)); - TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL); + TXT_MessageBox(NULL, "No joysticks could be opened.\n\n" + "Try configuring your joystick from within\n" + "your OS first."); joystick_index = -1; SetJoystickButtonLabel(); diff --git a/textscreen/txt_window.c b/textscreen/txt_window.c index cd8a6c7a..8cbddb55 100644 --- a/textscreen/txt_window.c +++ b/textscreen/txt_window.c @@ -20,10 +20,12 @@ // #include +#include #include #include "doomkeys.h" +#include "txt_label.h" #include "txt_desktop.h" #include "txt_gui.h" #include "txt_main.h" @@ -472,3 +474,24 @@ void TXT_SetMouseListener(txt_window_t *window, window->mouse_listener_data = user_data; } +txt_window_t *TXT_MessageBox(char *title, char *message, ...) +{ + txt_window_t *window; + char buf[256]; + va_list args; + + va_start(args, message); + vsnprintf(buf, sizeof(buf), message, args); + va_end(args); + + window = TXT_NewWindow(title); + TXT_AddWidget(window, TXT_NewLabel(buf)); + + TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL); + TXT_SetWindowAction(window, TXT_HORIZ_CENTER, + TXT_NewWindowEscapeAction(window)); + TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL); + + return window; +} + diff --git a/textscreen/txt_window.h b/textscreen/txt_window.h index e183cf6d..bfae2a9a 100644 --- a/textscreen/txt_window.h +++ b/textscreen/txt_window.h @@ -176,6 +176,16 @@ void TXT_SetMouseListener(txt_window_t *window, TxtWindowMousePress mouse_listener, void *user_data); +/** + * Open a window displaying a message. + * + * @param title Title of the window. + * @param message The message to display in the window. + * @return The new window. + */ + +txt_window_t *TXT_MessageBox(char *title, char *message, ...); + #endif /* #ifndef TXT_WINDOW_T */ -- cgit v1.2.3