From 9033ea708d100c9c6627d53902f36e8899a8da1f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 30 Oct 2012 10:11:25 -0700 Subject: [PATCH] tree 46b4d59cbfb1 parent adac5aad395d author Edward Rudd 1351362890 14400 committer Edward Rudd 1351362890 14400 revision 6611 branch default add test to show off the new MessageBox API --- test/Makefile.in | 6 +++- test/testmessage.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 test/testmessage.c diff --git a/test/Makefile.in b/test/Makefile.in index 1cb250e6f..7e33d3edf 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -47,6 +47,7 @@ TARGETS = \ testwm2$(EXE) \ torturethread$(EXE) \ testrendercopyex$(EXE) \ + testmessage$(EXE) \ all: Makefile $(TARGETS) @@ -189,7 +190,10 @@ torturethread$(EXE): $(srcdir)/torturethread.c testrendercopyex$(EXE): $(srcdir)/testrendercopyex.c $(srcdir)/common.c $(CC) -o $@ $^ $(CFLAGS) $(LIBS) @MATHLIB@ - + +testmessage$(EXE): $(srcdir)/testmessage.c + $(CC) -o $@ $^ $(CFLAGS) $(LIBS) + clean: rm -f $(TARGETS) diff --git a/test/testmessage.c b/test/testmessage.c new file mode 100644 index 000000000..01db7475e --- /dev/null +++ b/test/testmessage.c @@ -0,0 +1,86 @@ +/* + Copyright (C) 1997-2011 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely. +*/ + +/* Simple test of the SDL MessageBox API*/ + +#include +#include +#include + +#include "SDL.h" +#include "SDL_thread.h" + +static int alive = 0; + +/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ +static void +quit(int rc) +{ + SDL_Quit(); + exit(rc); +} + +int +main(int argc, char *argv[]) +{ + int success; + + /* Load the SDL library */ + if (SDL_Init(0) < 0) { + fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); + return (1); + } + + success = SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, + "Simple MessageBox", + "This is a simple error MessageBox", + NULL); + if (success == -1) { + printf("Error Presenting MessageBox: %s\n", SDL_GetError()); + quit(1); + } + + { + const SDL_MessageBoxButtonData buttons[] = { + { + SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT, + 0, + "OK" + },{ + SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT, + 1, + "Cancel" + }, + }; + + SDL_MessageBoxData data = { + SDL_MESSAGEBOX_INFORMATION, + NULL, // no parent window + "Custom MessageBox", + "This is a custom messagebox", + 2, + buttons, + NULL // Default color scheme + }; + + int button = -1; + success = SDL_ShowMessageBox(&data, &button); + if (success == -1) { + printf("Error Presenting MessageBox: %s\n", SDL_GetError()); + quit(2); + } + printf("Pressed button: %d, %s\n", button, button == 1 ? "Cancel" : "OK"); + } + + SDL_Quit(); + return (0); +}