aboutsummaryrefslogtreecommitdiffhomepage
path: root/uzbl-core.c
diff options
context:
space:
mode:
authorGravatar Robert Manea <gotmor@gmail.com>2009-10-19 17:28:03 +0200
committerGravatar Robert Manea <gotmor@gmail.com>2009-10-19 17:28:03 +0200
commitf4f51de768759334b093634741b1e871ba0b9f19 (patch)
tree4e07f27feb1d9602088e4a65cd129fcf82a13b06 /uzbl-core.c
parentca4d8aa5ade15615ae2cbc4560560cf735cbb2e1 (diff)
refactor menu_* commands and functions
Diffstat (limited to 'uzbl-core.c')
-rw-r--r--uzbl-core.c57
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