ltk

Socket-based GUI for X11 (WIP)
git clone git://lumidify.org/ltk.git (fast, but not encrypted)
git clone https://lumidify.org/git/ltk.git (encrypted, but very slow)
Log | Files | Refs | README | LICENSE

config.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 */