Mercurial > fife-parpg
diff ext/guichan-0.8.2/examples/allegrowidgets.cpp @ 378:64738befdf3b
bringing in the changes from the build_system_rework branch in preparation for the 0.3.0 release. This commit will require the Jan2010 devkit. Clients will also need to be modified to the new way to import fife.
author | vtchill@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Mon, 11 Jan 2010 23:34:52 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ext/guichan-0.8.2/examples/allegrowidgets.cpp Mon Jan 11 23:34:52 2010 +0000 @@ -0,0 +1,65 @@ +/** + * This is an example that shows of the widgets present 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 with all the widgets +// of Guichan. The code populates the global Gui object. +#include "widgets.hpp" + +int main(int argc, char **argv) +{ + try + { + allegro::init(); + widgets::init(); + allegro::run(); + widgets::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()