From 43466271e2e1cf834cd442dfcc95dfd961a31a03 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Thu, 3 Sep 2009 18:38:04 +0200 Subject: VARIABLE_SET event --- docs/TODO | 1 + uzbl.c | 6 ++++++ uzbl.h | 1 + 3 files changed, 8 insertions(+) diff --git a/docs/TODO b/docs/TODO index 3c61b14..abc5b44 100644 --- a/docs/TODO +++ b/docs/TODO @@ -3,6 +3,7 @@ * document the dispatching mechanism, all events, how to get started with sample dispatcher * add key_release callback and event * remove all binding ('bind = ' etc.) stuff and port to new system +* VARIABLE_SET for all types (but probably not useful for custom vars) = key handling (example dispatcher.sh) = * on escape: diff --git a/uzbl.c b/uzbl.c index 0765d13..40568f4 100644 --- a/uzbl.c +++ b/uzbl.c @@ -212,6 +212,7 @@ const char *event_table[LAST_EVENT] = { "COOKIE" , "NEW_WINDOW" , "SELECTION_CHANGED", + "VARIABLE_SET", }; @@ -1959,6 +1960,7 @@ set_var_value(const gchar *name, gchar *val) { char *endp = NULL; char *buf = NULL; char *invalid_chars = "^°!\"§$%&/()=?'`'+~*'#-.:,;@<>| \\{}[]¹²³¼½"; + GString *msg; if( (c = g_hash_table_lookup(uzbl.comm.proto_var, name)) ) { if(!c->writeable) return FALSE; @@ -1968,6 +1970,10 @@ set_var_value(const gchar *name, gchar *val) { buf = expand(val, 0); g_free(*c->ptr.s); *c->ptr.s = buf; + msg = g_string_new(name); + g_string_append_printf(msg, " %s", buf); + send_event(VARIABLE_SET, msg->str); + g_string_free(msg,TRUE); } else if(c->type == TYPE_INT) { buf = expand(val, 0); *c->ptr.i = (int)strtoul(buf, &endp, 10); diff --git a/uzbl.h b/uzbl.h index 986d080..7f6ef2b 100644 --- a/uzbl.h +++ b/uzbl.h @@ -190,6 +190,7 @@ enum event_type { KEY_PRESS, KEY_RELEASE, DOWNLOAD_REQ, COMMAND_EXECUTED, LINK_HOVER, TITLE_CHANGED, GEOMETRY_CHANGED, WEBINSPECTOR, COOKIE, NEW_WINDOW, SELECTION_CHANGED, + VARIABLE_SET, /* must be last entry */ LAST_EVENT -- cgit v1.2.3