ekg2
|
00001 #ifndef __EKG_BINDINGS_H 00002 #define __EKG_BINDINGS_H 00003 00004 #ifdef __cplusplus 00005 extern "C" { 00006 #endif 00007 00008 #define BINDING_FUNCTION(x) void x(const char *arg) 00009 00010 struct binding { 00011 struct binding *next; 00012 00013 char *key; 00014 00015 char *action; /* akcja */ 00016 unsigned int internal : 1; /* czy domyĹlna kombinacja? */ 00017 void (*function)(const char *arg); /* funkcja obsĹugujÄ ca */ 00018 char *arg; /* argument funkcji */ 00019 00020 char *default_action; /* domyĹlna akcja */ 00021 void (*default_function)(const char *arg); /* domyĹlna funkcja */ 00022 char *default_arg; /* domyĹlny argument */ 00023 }; 00024 00025 typedef struct binding_added { 00026 struct binding_added *next; 00027 00028 char *sequence; 00029 struct binding *binding; 00030 } binding_added_t; 00031 00032 extern struct binding *bindings; 00033 extern binding_added_t *bindings_added; 00034 00035 void binding_list(int quiet, const char *name, int all); 00036 00037 int binding_help(int a, int b); 00038 int binding_quick_list(int a, int b); 00039 00040 void binding_free(); 00041 00042 #ifdef __cplusplus 00043 } 00044 #endif 00045 00046 #endif