/*
    3D C++ Toolkit (TDT)
    Event Class
    Copyright (c) 2008
    John Ryland
*/
#ifndef EVENT_H
#define EVENT_H


namespace TDT
{


class Event
{
public:
    enum EventType
    {
        Show,
        Hide,
        Close,
        Resize,
        Paint,
        KeyPress,
        KeyRelease,
        MousePress,
        MouseRelease,
        MouseMove,
        FocusIn,
        FocusOut,
        Idle,
        Timer,
        OverlayDisplay
    };

    Event(EventType _type = Idle, int _x = 0, int _y = 0, int _button = 0)
        : mType(_type), mX(_x), mY(_y), mButton(_button)
    {
    }

    EventType type() { return mType; }
    int x() { return mX; }
    int y() { return mY; }
    int width() { return mX; }
    int height() { return mY; }
    int timerId() { return mX; }
    int button() { return mButton; }
    int key() { return mButton; }

private:
    EventType mType;
    int mX, mY, mButton;
};


};


#endif // EVENT_H

