43 #ifndef EMP_WEB_KEYPRESS_MANAGER_H 44 #define EMP_WEB_KEYPRESS_MANAGER_H 59 std::map<int, std::function<bool(const KeyboardEvent &)> > fun_map;
65 for (
auto fun_entry : fun_map) {
66 if (fun_entry.second(evt_info) ==
true) {
78 std::function<bool(const KeyboardEvent &)> callback_fun =
79 std::bind( &KeypressManager::DoCallback,
this, _1 );
80 callback_id = JSWrap( callback_fun );
83 document.addEventListener(
'keydown',
function(evt) {
84 var is_used =
emp.Callback($0, evt);
85 if (is_used == 1) evt.preventDefault();
102 if (order == -1) order = next_order;
103 if (order >= next_order) next_order = order+1;
105 fun_map[order] = cb_fun;
112 if (order == -1) order = next_order;
113 if (order >= next_order) next_order = order+1;
117 {
if (evt.keyCode == key) { cb_fun();
return true; }
return false; };
125 if (order >= next_order) next_order = order+1;
129 {
if (key_set.find((
char)evt.keyCode) == std::string::npos)
return false; cb_fun();
return true;};
135 AddKeydownCallback(key_set, cb_fun, next_order);
~KeypressManager()
Definition: KeypressManager.h:90
void AddKeydownCallback(char key, std::function< void()> cb_fun, int order=-1)
Definition: KeypressManager.h:110
int GetNextOrder() const
Definition: KeypressManager.h:94
Keyboard-specific information about web events.
Definition: events.h:99
KeypressManager()
Definition: KeypressManager.h:77
void AddKeydownCallback(const std::string &key_set, const std::function< void()> &cb_fun)
Provide a whole set of keys that should all trigger the same function; use default ordering...
Definition: KeypressManager.h:133
int GetFunCount() const
Definition: KeypressManager.h:93
Event handlers that use JQuery.
Wrap a C++ function and convert it to an integer that can be called from Javascript.
If we are in emscripten, make sure to include the header.
Definition: array.h:37
void AddKeydownCallback(const std::string &key_set, const std::function< void()> &cb_fun, int order)
Definition: KeypressManager.h:122
Definition: KeypressManager.h:57
void AddKeydownCallback(std::function< bool(const KeyboardEvent &)> cb_fun, int order=-1)
Definition: KeypressManager.h:100