Elaztek Developer Hub
Blamite Game Engine - Strings  00367.02.08.23.1815.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 
34 {
35 private:
36  std::vector<BlamEventType> subscribed_events;
37  int priority = 0;
38 
39 public:
40  std::string name = "";
41 
48  void Subscribe(BlamEventType type);
49 
51 
57  std::vector<BlamEventType> GetSubscribedEvents();
58 
66  bool IsSubscribed(BlamEventType type);
67 
75  void SetPriority(int new_priority);
76 
82  int GetPriority();
83 
91 
99 
106  virtual void OnKeyPressEvent(KeyPressEvent* event) {}
107 
114  virtual void OnMouseClickEvent(MouseClickEvent* event) {}
115 
122  virtual void OnMouseMoveEvent(MouseMoveEvent* event) {}
123 
130  virtual void OnTickEvent(TickEvent* event) {}
131 
138  virtual void OnNewFrameEvent(NewFrameEvent* event) {}
139 
146  virtual void OnLogMessageEvent(LogMessageEvent* event) {}
147 
148 
149 
156  virtual void OnEditorTickEvent(EditorTickEvent* event) {}
157 };
158 
163 {
172  STRINGS_API void FireEvent(BlamEvent* event);
173 
182  STRINGS_API void RegisterListener(BlamEventListener* listener, std::string name);
183 
192 
197 
206  STRINGS_API void ResortListeners(BlamEventListener* requesting_listener);
207 
213  STRINGS_API std::vector<BlamEventListener*> GetListeners();
214 }
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:114
BlamStrings::Events::GetListeners
STRINGS_API std::vector< BlamEventListener * > GetListeners()
Retrieves a list of currently registered listeners.
Definition: events.cpp:155
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:156
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:146
BlamStrings::Events
Namespace for handling things related to Events.
Definition: events.h:162
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:106
BlamStrings::Events::FireEvent
STRINGS_API void FireEvent(BlamEvent *event)
Fires an event.
Definition: events.cpp:67
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:138
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:90
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:148
BlamStrings::Events::UnregisterListener
STRINGS_API void UnregisterListener(BlamEventListener *listener)
Unregisters a an event listener.
Definition: events.cpp:100
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:130
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:91
EditorTickEvent
Class representing an editor tick event.
Definition: EditorTickEvent.h:18
BlamEventListener
Class representing an Event Listener.
Definition: events.h:33
BlamStrings::Events::UnregisterListeners
STRINGS_API void UnregisterListeners()
Unregisters all listeners.
Definition: events.cpp:118
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:122
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:98