Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00025
00028
00029 #ifndef THOR_ACTIONCONTEXT_HPP
00030 #define THOR_ACTIONCONTEXT_HPP
00031
00032
00033 namespace sf
00034 {
00035
00036 class Window;
00037 class Event;
00038
00039 }
00040
00041
00042 namespace thor
00043 {
00044
00047
00053 template <typename ActionIdentifier>
00054 struct ActionContext
00055 {
00056
00057 ActionContext(sf::Window& window, const sf::Event* event, const ActionIdentifier& actionId)
00058 : Window(&window)
00059 , Event(event)
00060 , ActionId(actionId)
00061 {
00062 }
00063
00066 sf::Window* Window;
00067
00080 const sf::Event* Event;
00081
00084 ActionIdentifier ActionId;
00085 };
00086
00088
00089
00090
00091 template <typename ActionIdentifier>
00092 ActionIdentifier ExtractEventIdentifier(const ActionContext<ActionIdentifier>& event)
00093 {
00094 return event.ActionId;
00095 }
00096
00097 }
00098
00099 #endif // THOR_ACTIONCONTEXT_HPP