tconfig.h - ltk - Socket-based GUI for X11 (WIP)
HTML git clone git://lumidify.org/ltk.git (fast, but not encrypted)
HTML git clone https://lumidify.org/git/ltk.git (encrypted, but very slow)
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
tconfig.h (1728B)
---
1 #ifndef LTK_CONFIG_H
2 #define LTK_CONFIG_H
3
4 #include <stddef.h>
5
6 #include "eventdefs.h"
7
8 typedef enum{
9 LTK_KEY_BINDING_NOFLAGS = 0,
10 LTK_KEY_BINDING_RUN_ALWAYS = 1,
11 } ltk_key_binding_flags;
12
13 typedef struct {
14 char *text;
15 char *rawtext;
16 ltk_keysym sym;
17 ltk_mod_type mods;
18 ltk_key_binding_flags flags;
19 } ltk_keypress_binding;
20
21 typedef struct {
22 ltk_keysym sym;
23 ltk_mod_type mods;
24 ltk_key_binding_flags flags;
25 } ltk_keyrelease_binding;
26
27 typedef struct{
28 char *from;
29 char *to;
30 } ltk_keytext_mapping;
31
32 typedef struct {
33 char *lang;
34 ltk_keytext_mapping *mappings;
35 size_t mappings_alloc, mappings_len;
36 } ltk_language_mapping;
37
38 typedef struct {
39 char *line_editor;
40 char explicit_focus;
41 char all_activatable;
42 } ltk_general_config;
43
44 typedef struct {
45 ltk_language_mapping *mappings;
46 size_t mappings_alloc, mappings_len;
47 ltk_general_config general;
48 } ltk_config;
49
50 typedef int (*keypress_binding_handler)(const char *widget_name, size_t wlen, const char *name, size_t nlen, ltk_keypress_binding b);
51 typedef int (*keyrelease_binding_handler)(const char *widget_name, size_t wlen, const char *name, size_t nlen, ltk_keyrelease_binding b);
52
53 void ltk_config_cleanup(void);
54 ltk_config *ltk_config_get(void);
55 int ltk_config_get_language_index(char *lang, size_t *idx_ret);
56 ltk_language_mapping *ltk_config_get_language_mapping(size_t idx);
57 int ltk_config_parsefile(
58 const char *filename,
59 keypress_binding_handler press_handler,
60 keyrelease_binding_handler release_handler,
61 char **errstr
62 );
63 int ltk_config_load_default(
64 keypress_binding_handler press_handler,
65 keyrelease_binding_handler release_handler,
66 char **errstr
67 );
68 void ltk_keypress_binding_destroy(ltk_keypress_binding b);
69
70 #endif /* LTK_CONFIG_H */