GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
gp_keymap.h
1// SPDX-License-Identifier: LGPL-2.1-or-later
2/*
3 * Copyright (C) 2009-2022 Cyril Hrubis <metan@ucw.cz>
4 */
5
6/*
7
8 Keymap takes key press events and generates unicode letter events.
9
10 */
11
12#ifndef INPUT_GP_KEYMAP_H
13#define INPUT_GP_KEYMAP_H
14
15#include <input/gp_types.h>
16
17struct gp_keymap {
18 /*
19 * @self A keymap
20 * @queue An event queue to push unicode events to
21 * @ev A key event
22 * @return non-zero if event was dead-key zero otherwise.
23 */
24 int (*event_key)(gp_keymap *self, gp_ev_queue *queue, gp_event *ev);
25 void *priv;
26 void *priv2;
27};
28
29static inline int gp_keymap_event_key(gp_keymap *self, gp_ev_queue *queue, gp_event *ev)
30{
31 return self->event_key(self, queue, ev);
32}
33
34gp_keymap *gp_keymap_load(const char *name);
35
36gp_keymap *gp_keymap_json_load(const char *json_str);
37
38void gp_keymap_free(gp_keymap *self);
39
40#endif /* INPUT_GP_KEYMAP_H */