Elaztek Developer Hub
Blamite Game Engine - Strings  00369.02.19.23.2014.blamite
A library containing general purpose utilities and classes for use in multiple projects.
events.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 #include <string>
5 
6 #include "BlamEvent.h"
7 
8 #ifdef STRINGS_EXPORTS
9 #define STRINGS_API __declspec(dllexport)
10 #else
11 #define STRINGS_API __declspec(dllimport)
12 #endif
13 
16 class KeyPressEvent;
17 class MouseClickEvent;
18 class MouseMoveEvent;
19 class NewFrameEvent;
20 class TickEvent;
21 class LogMessageEvent;
22 
23 class EditorTickEvent;
24 
37 {
38 private:
39  std::vector<BlamEventType> subscribed_events;
40  int priority = 0;
41 
42 public:
43  std::string name = "";
44 
51  void Subscribe(BlamEventType type);
52 
54 
60  std::vector<BlamEventType> GetSubscribedEvents();
61 
69  bool IsSubscribed(BlamEventType type);
70 
78  void SetPriority(int new_priority);
79 
85  int GetPriority();
86 
94 
102 
109  virtual void OnKeyPressEvent(KeyPressEvent* event) {}
110 
117  virtual void OnMouseClickEvent(MouseClickEvent* event) {}
118 
125  virtual void OnMouseMoveEvent(MouseMoveEvent* event) {}
126 
133  virtual void OnTickEvent(TickEvent* event) {}
134 
141  virtual void OnNewFrameEvent(NewFrameEvent* event) {}
142 
149  virtual void OnLogMessageEvent(LogMessageEvent* event) {}
150 
157  virtual void OnEditorTickEvent(EditorTickEvent* event) {}
158 };
159 
164 {
173  STRINGS_API void FireEvent(BlamEvent* event);
174 
183  STRINGS_API void RegisterListener(BlamEventListener* listener, std::string name);
184 
193 
198 
207  STRINGS_API void ResortListeners(BlamEventListener* requesting_listener);
208 
214  STRINGS_API std::vector<BlamEventListener*> GetListeners();
215 }
CharacterInputEvent
Class representing a character input event.
Definition: CharacterInputEvent.h:16
BlamEventListener::OnMouseClickEvent
virtual void OnMouseClickEvent(MouseClickEvent *event)
Called when the listener is subscribed to Mouse Click events, and a new MouseClickEvent is fired.
Definition: events.h:117
BlamStrings::Events::GetListeners
STRINGS_API std::vector< BlamEventListener * > GetListeners()
Retrieves a list of currently registered listeners.
Definition: events.cpp:173
BlamEventListener::OnEditorTickEvent
virtual void OnEditorTickEvent(EditorTickEvent *event)
Called when the listener is subscribed to Editor Tick events, and a new EditorTickEvent is fired.
Definition: events.h:157
BlamEventListener::OnLogMessageEvent
virtual void OnLogMessageEvent(LogMessageEvent *event)
Called when the listener is subscribed to Log Message events, and a new LogMessageEvent is fired.
Definition: events.h:149
BlamStrings::Events
Namespace for handling things related to Events.
Definition: events.h:163
BlamEvent.h
ConfigurationReloadEvent
Class representing a configuration reload event.
Definition: ConfigurationReloadEvent.h:19
BlamEventListener::OnKeyPressEvent
virtual void OnKeyPressEvent(KeyPressEvent *event)
Called when the listener is subscribed to Key Press events, and a new KeyPressEvent is fired.
Definition: events.h:109
BlamStrings::Events::FireEvent
STRINGS_API void FireEvent(BlamEvent *event)
Fires an event.
Definition: events.cpp:79
KeyPressEvent
Class representing a virtual key press.
Definition: KeyPressEvent.h:18
BlamEvent
Class representing a generic event.
Definition: BlamEvent.h:32
BlamEventListener::OnNewFrameEvent
virtual void OnNewFrameEvent(NewFrameEvent *event)
Called when the listener is subscribed to New Frame events, and a new NewFrameEvent is fired.
Definition: events.h:141
BlamEventListener::OnCharacterInputEvent
virtual void OnCharacterInputEvent(CharacterInputEvent *event)
Called when the listener is subscribed to Character Input events, and a new CharacterInputEvent is fi...
Definition: events.h:93
TickEvent
Class representing an engine tick event.
Definition: TickEvent.h:18
BlamStrings::Events::ResortListeners
STRINGS_API void ResortListeners(BlamEventListener *requesting_listener)
Re-sorts the list of registered listeners after a priority modification.
Definition: events.cpp:166
BlamStrings::Events::UnregisterListener
STRINGS_API void UnregisterListener(BlamEventListener *listener)
Unregisters a an event listener.
Definition: events.cpp:118
MouseMoveEvent
Class representing a mouse movement event.
Definition: MouseMoveEvent.h:16
MouseClickEvent
Class representing a mouse button press.
Definition: MouseClickEvent.h:18
LogMessageEvent
Class representing a log message event.
Definition: LogMessage.h:18
BlamEventType
BlamEventType
Enumerator listing all possible event types.
Definition: BlamEvent.h:12
BlamEventListener::OnTickEvent
virtual void OnTickEvent(TickEvent *event)
Called when the listener is subscribed to Tick events, and a new TickEvent is fired.
Definition: events.h:133
STRINGS_API
#define STRINGS_API
Definition: events.h:11
BlamStrings::Events::RegisterListener
STRINGS_API void RegisterListener(BlamEventListener *listener, std::string name)
Registers a an event listener.
Definition: events.cpp:109
EditorTickEvent
Class representing an editor tick event.
Definition: EditorTickEvent.h:18
BlamEventListener
Class representing an Event Listener.
Definition: events.h:36
BlamStrings::Events::UnregisterListeners
STRINGS_API void UnregisterListeners()
Unregisters all listeners.
Definition: events.cpp:136
BlamEventListener::OnMouseMoveEvent
virtual void OnMouseMoveEvent(MouseMoveEvent *event)
Called when the listener is subscribed to Mouse Move events, and a new MouseMoveEvent is fired.
Definition: events.h:125
NewFrameEvent
Class representing an engine frame event.
Definition: NewFrameEvent.h:19
BlamEventListener::OnConfigurationReloadEvent
virtual void OnConfigurationReloadEvent(ConfigurationReloadEvent *event)
Called when the listener is subscribed to configuration reload events, and a new ConfigurationReloadE...
Definition: events.h:101