SDL2lazy
SlEventHandler.h
Go to the documentation of this file.
1 // part of SDL2lazy
2 // author: Ulrike Hager
3 
8 #ifndef SLEVENTHANDLER_H
9 #define SLEVENTHANDLER_H
10 
11 #include <map>
12 #include <vector>
13 #include <string>
14 
15 #include <SDL2/SDL.h>
16 
17 
18 class SlManipulation;
19 class SlRenderItem;
20 
25 {
26  public:
27  SlEventAction(){};
28  ~SlEventAction();
31  void act( std::vector<std::string> additionalParams );
32 
38  std::string name = "";
42  int destination = 0;
45  std::vector<std::string> parameters;
46 };
47 
48 
53 {
54  public:
57  SlEventObject();
63  SlEventObject(const SlEventObject&) = delete;
66  SlEventObject& operator=(const SlEventObject&) = delete;
69  void addAction(std::string name, int destination, SlManipulation* manip, std::vector<std::string> params );
72  void trigger(int mouse_x = -1, int mouse_y = -1);
73 
76  bool need_mouse_coordinates = false;
77 
78  private:
81  std::vector<SlEventAction> actions_ ;
84  int last_mouse_[2] = {-1,-1};
85 };
86 
87 
92 {
93  public:
102  SlEventHandler(const SlEventHandler&) = delete;
105  SlEventHandler& operator=(const SlEventHandler&) = delete;
108  void addAction(const std::string& key, const std::string& whatToDo, const std::string& spritename, int destination, std::vector<std::string> parameters );
111  void addManipulations(const std::map<std::string, SlManipulation*>& manip);
115  SlManipulation* getManipulation(const std::string& whatToDo);
120  int handleEvent(const SDL_Event& event);
124  void parseEvent(std::ifstream& input);
129  int pollEvent();
130 
131 
132  private:
135  std::map<std::string, SlEventObject> eventActions_;
138  std::map<std::string, SlManipulation*> manipulations_;
141  SDL_Event event_;
142 
143 };
144 
145 
146 #endif /* SLEVENTHANDLER_H */
void act(std::vector< std::string > additionalParams)
Definition: SlEventHandler.cc:24
Definition: SlManipulation.h:22
SlEventObject()
Definition: SlEventHandler.cc:46
void addAction(std::string name, int destination, SlManipulation *manip, std::vector< std::string > params)
Definition: SlEventHandler.cc:59
SlEventObject & operator=(const SlEventObject &)=delete
SlEventHandler()
Definition: SlEventHandler.cc:96
std::map< std::string, SlEventObject > eventActions_
Definition: SlEventHandler.h:135
void parseEvent(std::ifstream &input)
Definition: SlEventHandler.cc:232
SlManipulation * manipulation
Definition: SlEventHandler.h:35
Definition: SlEventHandler.h:52
Definition: SlRenderItem.h:21
void addManipulations(const std::map< std::string, SlManipulation * > &manip)
Definition: SlEventHandler.cc:136
std::vector< std::string > parameters
Definition: SlEventHandler.h:45
int destination
Definition: SlEventHandler.h:42
SlEventHandler & operator=(const SlEventHandler &)=delete
bool need_mouse_coordinates
Definition: SlEventHandler.h:76
SDL_Event event_
Definition: SlEventHandler.h:141
std::vector< SlEventAction > actions_
Definition: SlEventHandler.h:81
~SlEventObject()
Definition: SlEventHandler.cc:52
SlManipulation * getManipulation(const std::string &whatToDo)
Definition: SlEventHandler.cc:144
int handleEvent(const SDL_Event &event)
Definition: SlEventHandler.cc:156
std::string name
Definition: SlEventHandler.h:38
void addAction(const std::string &key, const std::string &whatToDo, const std::string &spritename, int destination, std::vector< std::string > parameters)
Definition: SlEventHandler.cc:109
int last_mouse_[2]
Definition: SlEventHandler.h:84
std::map< std::string, SlManipulation * > manipulations_
Definition: SlEventHandler.h:138
int pollEvent()
Definition: SlEventHandler.cc:277
~SlEventHandler()
Definition: SlEventHandler.cc:102
Definition: SlEventHandler.h:91
Definition: SlEventHandler.h:24
void trigger(int mouse_x=-1, int mouse_y=-1)
Definition: SlEventHandler.cc:76