configparser.h (2328B)
1 #ifndef _CONFIGPARSER_H_ 2 #define _CONFIGPARSER_H_ 3 4 #include "common.h" 5 #include "uglycrap.h" 6 #include "keys_command.h" 7 #include "keys_basic.h" 8 9 typedef struct { 10 int scrollbar_width; 11 int scrollbar_step; 12 int text_size; 13 int highlight_search; 14 int extra_line_spacing; 15 XftColor text_fg; 16 XftColor text_bg; 17 XftColor cursor_fg; 18 XftColor cursor_bg; 19 XftColor selection_fg; 20 XftColor selection_bg; 21 XftColor bar_fg; 22 XftColor bar_bg; 23 XftColor bar_cursor; 24 XftColor scrollbar_fg; 25 XftColor scrollbar_bg; 26 const char *text_font; 27 const char *bar_fmt; 28 } ledit_theme; 29 30 typedef struct { 31 char *text; /* for keys that correspond with text */ 32 unsigned int mods; /* modifier mask */ 33 KeySym keysym; /* for other keys, e.g. arrow keys */ 34 ledit_mode modes; /* modes in which this keybinding is functional */ 35 basic_key_cb *cb; /* callback */ 36 } basic_key_mapping; 37 38 typedef struct { 39 char *text; /* for keys that correspond with text */ 40 unsigned int mods; /* modifier mask */ 41 KeySym keysym; /* for other keys, e.g. arrow keys */ 42 command_mode modes; /* substitute, etc. */ 43 command_key_cb *cb; /* callback */ 44 } command_key_mapping; 45 46 typedef struct { 47 char *text; /* text typed to call command */ 48 command_cb *cb; /* callback */ 49 } command_mapping; 50 51 typedef struct { 52 basic_key_mapping *keys; 53 size_t num_keys; 54 size_t alloc_keys; 55 } basic_key_array; 56 57 typedef struct { 58 command_key_mapping *keys; 59 size_t num_keys; 60 size_t alloc_keys; 61 } command_key_array; 62 63 typedef struct { 64 command_mapping *cmds; 65 size_t num_cmds; 66 size_t alloc_cmds; 67 } command_array; 68 69 /* Note: The config is initialized immediately when ledit starts, so these 70 * should not return NULL (unless an invalid language index is given), but 71 * it's still better to check just in case. */ 72 73 /* Note: The returned pointers are invalidated if the config is reloaded. */ 74 75 ledit_theme *config_get_theme(void); 76 basic_key_array *config_get_basic_keys(size_t lang_index); 77 command_key_array *config_get_command_keys(size_t lang_index); 78 command_array *config_get_commands(size_t lang_index); 79 int config_get_language_index(char *lang, size_t *idx_ret); 80 int config_loadfile(ledit_common *common, char *filename, char **errstr); 81 void config_cleanup(ledit_common *common); 82 char *config_get_language_string(size_t lang_index); 83 84 #endif