tree 46b4d59cbfb1
authorSam Lantinga <slouken@libsdl.org>
Tue, 30 Oct 2012 10:11:25 -0700
changeset 6614 92925281e7ca
parent 6613 0a8672b04b00
child 6615 d7a463bde4d7
tree 46b4d59cbfb1 parent adac5aad395d author Edward Rudd <urkle@outoforder.cc> 1351362890 14400 committer Edward Rudd <urkle@outoforder.cc> 1351362890 14400 revision 6611 branch default add test to show off the new MessageBox API
test/Makefile.in
test/testmessage.c
--- a/test/Makefile.in	Tue Oct 30 10:07:32 2012 -0700
+++ b/test/Makefile.in	Tue Oct 30 10:11:25 2012 -0700
@@ -47,6 +47,7 @@
 	testwm2$(EXE) \
 	torturethread$(EXE) \
 	testrendercopyex$(EXE) \
+	testmessage$(EXE) \
 
 all: Makefile $(TARGETS)
 
@@ -189,7 +190,10 @@
 
 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)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/testmessage.c	Tue Oct 30 10:11:25 2012 -0700
@@ -0,0 +1,86 @@
+/*
+  Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
+
+  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 <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+
+#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);
+}