diff ext/guichan-0.8.1/examples/openglsdlwidgets.cpp @ 0:4a0efb7baf70

* Datasets becomes the new trunk and retires after that :-)
author mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
date Sun, 29 Jun 2008 18:44:17 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ext/guichan-0.8.1/examples/openglsdlwidgets.cpp	Sun Jun 29 18:44:17 2008 +0000
@@ -0,0 +1,59 @@
+/**
+ * This is an example that shows of the widgets present in
+ * Guichan. The example uses the OpenGL back end and the 
+ * SDL back end.
+ */
+
+#include <guichan.hpp>
+#include <iostream>
+
+// Here we store a global Gui object.  We make it global
+// so it's easily accessable. Of course, global variables
+// should normally be avioded when it comes to OOP, but
+// this examples is not an example that shows how to make a 
+// good and clean C++ application but merely an example
+// that shows how to use Guichan.
+namespace globals
+{
+    gcn::Gui* gui;
+}
+
+// Include code to set up an OpenGL and SDL application with Guichan.
+// The openglsdl.hpp file is responsible for creating and deleting
+// the global Gui object.
+#include "openglsdl.hpp"
+// Include code to set up a Guichan GUI with all the widgets
+// of Guichan. The code populates the global Gui object.
+#include "widgets.hpp"
+
+int main(int argc, char **argv)
+{
+    try
+    {
+        openglsdl::init();
+        widgets::init();
+        openglsdl::run();
+        widgets::halt();
+        openglsdl::halt();
+    }
+    // Catch all Guichan exceptions.
+    catch (gcn::Exception e)
+    {
+        std::cerr << e.getMessage() << std::endl;
+        return 1;
+    }
+    // Catch all Std exceptions.
+    catch (std::exception e)
+    {
+        std::cerr << "Std exception: " << e.what() << std::endl;
+        return 1;
+    }
+    // Catch all unknown exceptions.
+    catch (...)
+    {
+        std::cerr << "Unknown exception" << std::endl;
+        return 1;
+    }
+
+    return 0;
+}