SDL++
C++wrapperfortheSDLlibrary.
|
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