SDL++
C++wrapperfortheSDLlibrary.

event/MouseEvents.h

Go to the documentation of this file.
00001 
00021 #ifndef SDL_EVENT_MOUSEEVENTS_H
00022 #define SDL_EVENT_MOUSEEVENTS_H
00023 
00024 #include <SDL.h>
00025 
00026 #include "sdlpp/event/Components.h"
00027 #include "sdlpp/event/MultiComparator.h"
00028 #include "sdlpp/event/SimpleComparator.h"
00029 #include "sdlpp/event/Event.h"
00030 
00031 namespace sdl {
00032 namespace event {
00033     using namespace misc;
00034 
00039     struct MouseMotionBase : public EventBase {
00045         MouseMotionBase (const SDL_Event* event) : EventBase (event) {};
00046 
00052         const SDL_MouseMotionEvent& get () const { return event_->motion; }; 
00053 
00059         const SDL_MouseMotionEvent& get () { return event_->motion; };
00060     }; //MouseMotion
00061     
00066     typedef Event<SimpleComparator<SDL_MOUSEMOTION>, MouseMotionBase> MouseMotion;
00067 
00072     struct MouseButtonBase : public EventBase {
00078         MouseButtonBase (const SDL_Event* event) : EventBase (event) {};
00079 
00085         const SDL_MouseButtonEvent& get () const { return event_->button; };
00086 
00092         const SDL_MouseButtonEvent& get () { return event_->button; };
00093     }; //MouseButtonBase
00094 
00100     template<int... Buttons>
00101     struct MouseButtonPress : public Event<MultiComparator<MouseButton, SDL_MOUSEBUTTONDOWN, Buttons...>, MouseButtonBase> {
00107         explicit MouseButtonPress (const SDL_Event* event = 0) : Event<MultiComparator<MouseButton, SDL_MOUSEBUTTONDOWN, Buttons...>, MouseButtonBase> (event) {};
00108     }; //MouseButtonPress
00109 
00115     template<int... Buttons>
00116     struct MouseButtonRelease : public Event<MultiComparator<MouseButton, SDL_MOUSEBUTTONUP, Buttons...>, MouseButtonBase> {
00122         explicit MouseButtonRelease (const SDL_Event* event = 0) : Event<MultiComparator<MouseButton, SDL_MOUSEBUTTONUP, Buttons...>, MouseButtonBase> (event) {};
00123     }; //MouseButtonRelease
00124 }; //event
00125 }; //sdl
00126 
00127 #endif //SDL_EVENT_MOUSEEVENTS_H
00128 
 All Classes Namespaces Files Functions Variables Typedefs