URI: 
       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 */