/*
3D C++ Toolkit (TDT)
Application Class
Copyright (c) 2008
John Ryland
*/
#ifndef APPLICATION_H
#define APPLICATION_H
#include <list>
#include <TDT/window.h>
#include <TDT/event.h>
namespace TDT
{
class Application
{
public:
Application(int argc, char *argv[]);
~Application();
int exec();
static Application *instance();
virtual bool eventFilter(Event event);
void dispatchEvent(Event event);
void insertWindow(Window *win);
void removeWindow(Window *win);
void addTimer(int milliSec, Window *win);
void init(int argc, char *argv[]);
void installCallbacks();
private:
static Application *app;
std::list<Window*> windows;
};
};
#endif // APPLICATION_H