ActionContext.hpp
Go to the documentation of this file.
1 //
3 // Thor C++ Library
4 // Copyright (c) 2011-2015 Jan Haller
5 //
6 // This software is provided 'as-is', without any express or implied
7 // warranty. In no event will the authors be held liable for any damages
8 // arising from the use of this software.
9 //
10 // Permission is granted to anyone to use this software for any purpose,
11 // including commercial applications, and to alter it and redistribute it
12 // freely, subject to the following restrictions:
13 //
14 // 1. The origin of this software must not be misrepresented; you must not
15 // claim that you wrote the original software. If you use this software
16 // in a product, an acknowledgment in the product documentation would be
17 // appreciated but is not required.
18 //
19 // 2. Altered source versions must be plainly marked as such, and must not be
20 // misrepresented as being the original software.
21 //
22 // 3. This notice may not be removed or altered from any source distribution.
23 //
25 
28 
29 #ifndef THOR_ACTIONCONTEXT_HPP
30 #define THOR_ACTIONCONTEXT_HPP
31 
32 
33 namespace sf
34 {
35 
36  class Window;
37  class Event;
38 
39 } // namespace sf
40 
41 
42 namespace thor
43 {
44 
47 
53 template <typename ActionId>
55 {
56  // Constructor
57  ActionContext(sf::Window* window, const sf::Event* event, const ActionId& actionId)
58  : window(window)
59  , event(event)
60  , actionId(actionId)
61  {
62  }
63 
67  sf::Window* window;
68 
84  const sf::Event* event;
85 
88  ActionId actionId;
89 };
90 
92 
93 
94 // Extracts the ID of an ActionContext object (needed by EventSystem)
95 template <typename ActionId>
96 ActionId getEventId(const ActionContext<ActionId>& event)
97 {
98  return event.actionId;
99 }
100 
101 } // namespace thor
102 
103 #endif // THOR_ACTIONCONTEXT_HPP
Definition: Animator.hpp:42
Structure containing information about the context in which an action has occurred.
Definition: ActionContext.hpp:54
sf::Window * window
Pointer to sf::Window passed to the ActionMap::invokeCallbacks().
Definition: ActionContext.hpp:67
Definition: BigSprite.hpp:41
const sf::Event * event
Pointer to a sf::Event that contributed to this action's activation.
Definition: ActionContext.hpp:84
ActionId actionId
Identifier of the action.
Definition: ActionContext.hpp:88