Mercurial > fife-parpg
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; +}