Mercurial > fife-parpg
diff ext/guichan-0.8.1/examples/allegroaction.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/allegroaction.cpp Sun Jun 29 18:44:17 2008 +0000 @@ -0,0 +1,65 @@ +/** + * This is an example that demonstrates how to use actions + * in Guichan. The example uses 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 Allegro application with Guichan. +// The allegro.hpp file is responsible for creating and deleting +// the global Gui object. +#include "allegro.hpp" +// Include code to set up a Guichan GUI that demonstrates how +// to use actions in Guichan. The code populates the global Gui object. +#include "action.hpp" + +int main(int argc, char **argv) +{ + try + { + allegro::init(); + action::init(); + allegro::run(); + action::halt(); + allegro::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()