ArcdpsExtension
 
Loading...
Searching...
No Matches
KeyBindHandler.h
Go to the documentation of this file.
1#pragma once
2
3#include "Singleton.h"
4
5#include <ArcdpsUnofficialExtras/KeyBindHelper.h>
6#include <functional>
7#include <Windows.h>
8
9namespace ArcdpsExtension {
17 class KeyBindHandler : public Singleton<KeyBindHandler> {
18 public:
23 using SubscriberFlags = std::underlying_type_t<SubscriberFlags_>; // enum SubscriberFlags_
24
29 using SubscriberFun = std::function<bool(const KeyBinds::Key&)>;
30
36
42 uint64_t Subscribe(Subscriber pSubscriber);
43
47 void Unsubscribe(uint64_t pId);
48
52 void UpdateKey(uint64_t pId, const KeyBinds::Key& pKey);
53
57 void UpdateKeys(const KeyBinds::Key& pOldKey, const KeyBinds::Key& pNewKey);
58
62 bool Wnd(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
63
67 static KeyBinds::Modifier GetArcdpsModifier();
68
69 private:
70 static uint64_t getNewId() {
71 static uint64_t the_id;
72 return the_id++;
73 }
74
75 std::unordered_map<uint64_t, Subscriber> mSubscribers;
76 KeyBinds::Modifier mTrackedModifier = 0;
77
78 static KeyBinds::Modifier getArcdpsModifierSingle(uint16_t pMod);
79 };
80} // namespace ArcdpsExtension
Definition KeyBindHandler.h:17
bool Wnd(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition KeyBindHandler.cpp:30
std::underlying_type_t< SubscriberFlags_ > SubscriberFlags
Definition KeyBindHandler.h:23
void UpdateKey(uint64_t pId, const KeyBinds::Key &pKey)
Definition KeyBindHandler.cpp:18
static KeyBinds::Modifier GetArcdpsModifier()
Definition KeyBindHandler.cpp:126
uint64_t Subscribe(Subscriber pSubscriber)
Definition KeyBindHandler.cpp:8
void Unsubscribe(uint64_t pId)
Definition KeyBindHandler.cpp:14
void UpdateKeys(const KeyBinds::Key &pOldKey, const KeyBinds::Key &pNewKey)
Definition KeyBindHandler.cpp:22
SubscriberFlags_
Definition KeyBindHandler.h:19
@ SubscriberFlags_ArcdpsModifier
Definition KeyBindHandler.h:21
@ SubscriberFlags_None
Definition KeyBindHandler.h:20
std::function< bool(const KeyBinds::Key &)> SubscriberFun
Definition KeyBindHandler.h:29
Definition Singleton.h:47
Definition ArcdpsExtension.h:10
Definition KeyBindHandler.h:31
SubscriberFun Fun
Definition KeyBindHandler.h:33
KeyBinds::Key Key
Definition KeyBindHandler.h:32
SubscriberFlags Flags
Definition KeyBindHandler.h:34