From 8a886c9fb87f56d0531736422c47606412bc5019 Mon Sep 17 00:00:00 2001 From: Barrucadu Date: Sat, 25 Apr 2009 23:18:59 +0100 Subject: Loads key bindings into two structs - internal_bindings and external_bindings. --- uzbl.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'uzbl.c') diff --git a/uzbl.c b/uzbl.c index ac693a3..a8474d1 100644 --- a/uzbl.c +++ b/uzbl.c @@ -76,6 +76,16 @@ typedef struct void (*func)(WebKitWebView*); } Command; +typedef struct +{ + const char *binding; + const char *action; +} Binding; + +static Binding internal_bindings[256]; +static Binding external_bindings[256]; +static int num_internal_bindings = 0; +static int num_external_bindings = 0; static void update_title (GtkWindow* window); @@ -292,6 +302,18 @@ GtkWidget* create_window () { return window; } +static void +add_binding (char *binding, char *action, bool internal) { + Binding bind = {binding, action}; + if (internal) { + internal_bindings[num_internal_bindings] = bind; + num_internal_bindings ++; + } else { + external_bindings[num_external_bindings] = bind; + num_external_bindings ++; + } +} + static void settings_init () { GKeyFile* config = g_key_file_new (); @@ -337,6 +359,23 @@ settings_init () { } else { printf ("Mod key disabled/\n"); } + + gchar **keysi = g_key_file_get_keys (config, "bindings_internal", NULL, NULL); + int i = 0; + for (i = 0; keysi[i]; i++) + { + gchar *binding = g_key_file_get_string(config, "bindings_internal", keysi[i], NULL); + printf("Action: %s, Binding: %s (internal)\n", g_strdup (keysi[i]), binding); + add_binding (binding, g_strdup (keysi[i]), true); + } + + gchar **keyse = g_key_file_get_keys (config, "bindings_external", NULL, NULL); + for (i = 0; keyse[i]; i++) + { + gchar *binding = g_key_file_get_string(config, "bindings_external", keyse[i], NULL); + printf("Action: %s, Binding: %s (external)\n", g_strdup (keyse[i]), binding); + add_binding (binding, g_strdup (keyse[i]), false); + } } int -- cgit v1.2.3