diff ext/guichan-0.8.1/examples/openglallegrowidgets.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/openglallegrowidgets.cpp	Sun Jun 29 18:44:17 2008 +0000
@@ -0,0 +1,66 @@
+/**
+ * This is an example that shows of the widgets present in
+ * Guichan. The example uses the OpenGL back end and the
+ * Allegro 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 Allegro application with Guichan.
+// The openglallegro.hpp file is responsible for creating and deleting
+// the global Gui object.
+#include "openglallegro.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
+    {
+        openglallegro::init();
+        widgets::init();
+        openglallegro::run();
+        widgets::halt();
+        openglallegro::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;
+}
+END_OF_MAIN()