| Revision 1 (by (no author), 2006/09/28 22:53:53) |
Initial import |
/// \file widgetmanager.h
/// Manages widgets
#ifndef WIDGETMANAGER_H_INCLUDED
#define WIDGETMANAGER_H_INCLUDED
#include <list>
#include <allegro.h>
#include "widget.h"
#include "widgets.h"
enum EventType {
ET_KeyDown,
ET_KeyUp,
ET_MouseMove,
ET_MousePress,
ET_MouseRelease,
ET_MouseScroll
};
struct WidgetEvent
{
EventType type;
union {
struct {
int scancode;
} key;
struct {
int x, y;
} mouseMove;
struct {
int x, y;
int buttons;
} mousePress;
struct {
int amount;
} mouseScroll;
};
};
class WidgetManager: public WidgetPanel
{
public: // Public static variables
static WidgetManager* currentlyRunning;
public: // Public static functions
static void KeyboardHandler(int scancode);
static void MouseHandler(int flags);
public: // Public variables
BITMAP* buffer;
//long long oldTime;
bool running;
std::list<WidgetEvent*> queue;
public: // Public functions
WidgetManager();
virtual ~WidgetManager();
void Begin();
void Pause();
void Stop();
void Continue();
};
#endif
// The end