diff options
author | Robert Manea <gotmor@gmail.com> | 2009-10-19 17:28:03 +0200 |
---|---|---|
committer | Robert Manea <gotmor@gmail.com> | 2009-10-19 17:28:03 +0200 |
commit | f4f51de768759334b093634741b1e871ba0b9f19 (patch) | |
tree | 4e07f27feb1d9602088e4a65cd129fcf82a13b06 /uzbl-core.c | |
parent | ca4d8aa5ade15615ae2cbc4560560cf735cbb2e1 (diff) |
refactor menu_* commands and functions
Diffstat (limited to 'uzbl-core.c')
-rw-r--r-- | uzbl-core.c | 57 |
1 files changed, 31 insertions, 26 deletions
diff --git a/uzbl-core.c b/uzbl-core.c index 02ba08c..5d4447b 100644 --- a/uzbl-core.c +++ b/uzbl-core.c @@ -693,13 +693,14 @@ update_gui(WebKitWebView *page, GArray *argv, GString *result) { } void -add_to_menu(GArray *argv, GPtrArray **p) { +add_to_menu(GArray *argv, guint context) { + GUI *g = &uzbl.gui; MenuItem *m; gchar *item_cmd = NULL; gchar **split = g_strsplit(argv_idx(argv, 0), "=", 2); - if(!*p) - *p = g_ptr_array_new(); + if(!g->menu_items) + g->menu_items = g_ptr_array_new(); if(split[1]) item_cmd = g_strdup(split[1]); @@ -708,8 +709,9 @@ add_to_menu(GArray *argv, GPtrArray **p) { m = malloc(sizeof(MenuItem)); m->name = g_strdup(split[0]); m->cmd = g_strdup(item_cmd?item_cmd:""); + m->context = context; m->issep = FALSE; - g_ptr_array_add(*p, m); + g_ptr_array_add(g->menu_items, m); } else g_free(item_cmd); @@ -722,7 +724,7 @@ menu_add(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - add_to_menu(argv, &uzbl.gui.menu_items); + add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); } @@ -731,7 +733,7 @@ menu_add_link(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - add_to_menu(argv, &uzbl.gui.menu_items_link); + add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK); } void @@ -739,16 +741,17 @@ menu_add_image(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - add_to_menu(argv, &uzbl.gui.menu_items_image); + add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); } void -add_separator_to_menu(GArray *argv, GPtrArray **p) { +add_separator_to_menu(GArray *argv, guint context) { + GUI *g = &uzbl.gui; MenuItem *m; gchar *sep_name; - if(!*p) - *p = g_ptr_array_new(); + if(!g->menu_items) + g->menu_items = g_ptr_array_new(); if(!argv_idx(argv, 0)) return; @@ -756,10 +759,11 @@ add_separator_to_menu(GArray *argv, GPtrArray **p) { sep_name = argv_idx(argv, 0); m = malloc(sizeof(MenuItem)); - m->name = g_strdup(sep_name); - m->cmd = NULL; - m->issep = TRUE; - g_ptr_array_add(*p, m); + m->name = g_strdup(sep_name); + m->cmd = NULL; + m->context = context; + m->issep = TRUE; + g_ptr_array_add(g->menu_items, m); } void @@ -767,7 +771,7 @@ menu_add_separator(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - add_separator_to_menu(argv, &uzbl.gui.menu_items); + add_separator_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); } void @@ -775,23 +779,24 @@ menu_add_separator_link(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - add_separator_to_menu(argv, &uzbl.gui.menu_items_link); + add_separator_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK); } void menu_add_separator_image(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - add_separator_to_menu(argv, &uzbl.gui.menu_items_image); + add_separator_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); } void -remove_from_menu(GArray *argv, GPtrArray **p) { +remove_from_menu(GArray *argv, guint context) { + GUI *g = &uzbl.gui; MenuItem *mi; gchar *name = NULL; guint i=0; - if(!*p) + if(!g->menu_items) return; if(!argv_idx(argv, 0)) @@ -799,14 +804,14 @@ remove_from_menu(GArray *argv, GPtrArray **p) { else name = argv_idx(argv, 0); - for(i=0; i < (*p)->len; i++) { - mi = g_ptr_array_index(*p, i); + for(i=0; i < g->menu_items->len; i++) { + mi = g_ptr_array_index(g->menu_items, i); - if(!strcmp(name, mi->name)) { + if((context == mi->context) && !strcmp(name, mi->name)) { g_free(mi->name); g_free(mi->cmd); g_free(mi); - g_ptr_array_remove_index(*p, i); + g_ptr_array_remove_index(g->menu_items, i); } } } @@ -816,7 +821,7 @@ menu_remove(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - remove_from_menu(argv, &uzbl.gui.menu_items); + remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); } void @@ -824,7 +829,7 @@ menu_remove_link(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - remove_from_menu(argv, &uzbl.gui.menu_items_link); + remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK); } void @@ -832,7 +837,7 @@ menu_remove_image(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; - remove_from_menu(argv, &uzbl.gui.menu_items_image); + remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); } void |