diff ext/guichan-0.8.1/examples/hgewidgets.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/hgewidgets.cpp	Sun Jun 29 18:44:17 2008 +0000
@@ -0,0 +1,68 @@
+/**
+ * This is an example that shows of the widgets present in
+ * Guichan. The example uses the HGE 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 it 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 HGE application with Guichan.
+// The hge.hpp file is responsible for creating and deleting
+// the global Gui object.
+#include "hge.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 WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+    HGE* hge = hgeCreate(HGE_VERSION);
+    try
+    {
+        hge::init();
+        widgets::init();
+        hge::run();
+        widgets::halt();
+        hge::halt();
+    }
+    // Catch all Guichan exceptions.
+    catch (gcn::Exception e)
+    {
+        MessageBox(NULL,  
+                   e.getMessage().c_str(),
+                   "Guichan exception",
+                   MB_OK | MB_ICONERROR | MB_SYSTEMMODAL);
+        return 1;
+    }
+    // Catch all Std exceptions.
+    catch (std::exception e)
+    {
+        MessageBox(NULL, 
+                   e.what(),
+                   "Std exception",
+                   MB_OK | MB_ICONERROR | MB_SYSTEMMODAL);
+        return 1;
+    }
+    // Catch all unknown exceptions.
+    catch (...)
+    {
+       MessageBox(NULL, 
+                  hge->System_GetErrorMessage(), 
+                  "Unknown exception", 
+                  MB_OK | MB_ICONERROR | MB_SYSTEMMODAL);
+        return 1;
+    }
+
+    return 0;
+}