From aa565b52f9f82b6c137b2af2178d7ffb9297f310 Mon Sep 17 00:00:00 2001 From: koral Date: Thu, 10 Feb 2011 14:39:15 +0100 Subject: Moves menu functions in a dedicated source file. --- src/menu.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/menu.h | 18 ++++++ src/uzbl-core.c | 173 +------------------------------------------------- src/uzbl-core.h | 19 ++---- 4 files changed, 215 insertions(+), 187 deletions(-) create mode 100644 src/menu.c create mode 100644 src/menu.h (limited to 'src') diff --git a/src/menu.c b/src/menu.c new file mode 100644 index 0000000..451b35a --- /dev/null +++ b/src/menu.c @@ -0,0 +1,192 @@ +#include "menu.h" +#include "util.h" +#include "uzbl-core.h" + +void +add_to_menu(GArray *argv, guint context) { + GUI *g = &uzbl.gui; + MenuItem *m; + gchar *item_cmd = NULL; + + if(!argv_idx(argv, 0)) + return; + + gchar **split = g_strsplit(argv_idx(argv, 0), "=", 2); + if(!g->menu_items) + g->menu_items = g_ptr_array_new(); + + if(split[1]) + item_cmd = split[1]; + + if(split[0]) { + 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(g->menu_items, m); + } + + g_strfreev(split); +} + + +void +menu_add(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); + +} + + +void +menu_add_link(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK); +} + + +void +menu_add_image(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); +} + + +void +menu_add_edit(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE); +} + + +void +add_separator_to_menu(GArray *argv, guint context) { + GUI *g = &uzbl.gui; + MenuItem *m; + gchar *sep_name; + + if(!g->menu_items) + g->menu_items = g_ptr_array_new(); + + if(!argv_idx(argv, 0)) + return; + else + sep_name = argv_idx(argv, 0); + + m = malloc(sizeof(MenuItem)); + m->name = g_strdup(sep_name); + m->cmd = NULL; + m->context = context; + m->issep = TRUE; + g_ptr_array_add(g->menu_items, m); +} + + +void +menu_add_separator(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + add_separator_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); +} + + +void +menu_add_separator_link(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + 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, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); +} + + +void +menu_add_separator_edit(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + add_separator_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE); +} + + +void +remove_from_menu(GArray *argv, guint context) { + GUI *g = &uzbl.gui; + MenuItem *mi; + gchar *name = NULL; + guint i=0; + + if(!g->menu_items) + return; + + if(!argv_idx(argv, 0)) + return; + else + name = argv_idx(argv, 0); + + for(i=0; i < g->menu_items->len; i++) { + mi = g_ptr_array_index(g->menu_items, i); + + if((context == mi->context) && !strcmp(name, mi->name)) { + g_free(mi->name); + g_free(mi->cmd); + g_free(mi); + g_ptr_array_remove_index(g->menu_items, i); + } + } +} + + +void +menu_remove(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); +} + + +void +menu_remove_link(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK); +} + + +void +menu_remove_image(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); +} + + +void +menu_remove_edit(WebKitWebView *page, GArray *argv, GString *result) { + (void) page; + (void) result; + + remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE); +} + diff --git a/src/menu.h b/src/menu.h new file mode 100644 index 0000000..8b89f2f --- /dev/null +++ b/src/menu.h @@ -0,0 +1,18 @@ +#ifndef __MENU__ +#define __MENU__ + +#include + +void menu_add(WebKitWebView *page, GArray *argv, GString *result); +void menu_add_link(WebKitWebView *page, GArray *argv, GString *result); +void menu_add_image(WebKitWebView *page, GArray *argv, GString *result); +void menu_add_edit(WebKitWebView *page, GArray *argv, GString *result); +void menu_add_separator(WebKitWebView *page, GArray *argv, GString *result); +void menu_add_separator_link(WebKitWebView *page, GArray *argv, GString *result); +void menu_add_separator_image(WebKitWebView *page, GArray *argv, GString *result); +void menu_add_separator_edit(WebKitWebView *page, GArray *argv, GString *result); +void menu_remove(WebKitWebView *page, GArray *argv, GString *result); +void menu_remove_link(WebKitWebView *page, GArray *argv, GString *result); +void menu_remove_image(WebKitWebView *page, GArray *argv, GString *result); +void menu_remove_edit(WebKitWebView *page, GArray *argv, GString *result); +#endif diff --git a/src/uzbl-core.c b/src/uzbl-core.c index fc757e7..b83e13f 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -35,6 +35,7 @@ #include "inspector.h" #include "config.h" #include "util.h" +#include "menu.h" UzblCore uzbl; @@ -648,178 +649,6 @@ set_var(WebKitWebView *page, GArray *argv, GString *result) { g_strfreev(split); } -void -add_to_menu(GArray *argv, guint context) { - GUI *g = &uzbl.gui; - MenuItem *m; - gchar *item_cmd = NULL; - - if(!argv_idx(argv, 0)) - return; - - gchar **split = g_strsplit(argv_idx(argv, 0), "=", 2); - if(!g->menu_items) - g->menu_items = g_ptr_array_new(); - - if(split[1]) - item_cmd = split[1]; - - if(split[0]) { - 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(g->menu_items, m); - } - - g_strfreev(split); -} - -void -menu_add(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); - -} - -void -menu_add_link(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK); -} - -void -menu_add_image(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); -} - -void -menu_add_edit(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - add_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE); -} - -void -add_separator_to_menu(GArray *argv, guint context) { - GUI *g = &uzbl.gui; - MenuItem *m; - gchar *sep_name; - - if(!g->menu_items) - g->menu_items = g_ptr_array_new(); - - if(!argv_idx(argv, 0)) - return; - else - sep_name = argv_idx(argv, 0); - - m = malloc(sizeof(MenuItem)); - m->name = g_strdup(sep_name); - m->cmd = NULL; - m->context = context; - m->issep = TRUE; - g_ptr_array_add(g->menu_items, m); -} - -void -menu_add_separator(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - add_separator_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); -} - -void -menu_add_separator_link(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - 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, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); -} - -void -menu_add_separator_edit(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - add_separator_to_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE); -} - -void -remove_from_menu(GArray *argv, guint context) { - GUI *g = &uzbl.gui; - MenuItem *mi; - gchar *name = NULL; - guint i=0; - - if(!g->menu_items) - return; - - if(!argv_idx(argv, 0)) - return; - else - name = argv_idx(argv, 0); - - for(i=0; i < g->menu_items->len; i++) { - mi = g_ptr_array_index(g->menu_items, i); - - if((context == mi->context) && !strcmp(name, mi->name)) { - g_free(mi->name); - g_free(mi->cmd); - g_free(mi); - g_ptr_array_remove_index(g->menu_items, i); - } - } -} - -void -menu_remove(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT); -} - -void -menu_remove_link(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK); -} - -void -menu_remove_image(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE); -} - -void -menu_remove_edit(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; - (void) result; - - remove_from_menu(argv, WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE); -} void event(WebKitWebView *page, GArray *argv, GString *result) { diff --git a/src/uzbl-core.h b/src/uzbl-core.h index 3e2f4a3..e1e24eb 100644 --- a/src/uzbl-core.h +++ b/src/uzbl-core.h @@ -10,6 +10,9 @@ * */ +#ifndef __UZBL_CORE__ +#define __UZBL_CORE__ + #define _POSIX_SOURCE #include @@ -344,20 +347,6 @@ void event(WebKitWebView *page, GArray *argv, GString *result); void init_connect_socket(); gboolean remove_socket_from_array(GIOChannel *chan); -/* Contextual menu functions */ -void menu_add(WebKitWebView *page, GArray *argv, GString *result); -void menu_add_link(WebKitWebView *page, GArray *argv, GString *result); -void menu_add_image(WebKitWebView *page, GArray *argv, GString *result); -void menu_add_edit(WebKitWebView *page, GArray *argv, GString *result); -void menu_add_separator(WebKitWebView *page, GArray *argv, GString *result); -void menu_add_separator_link(WebKitWebView *page, GArray *argv, GString *result); -void menu_add_separator_image(WebKitWebView *page, GArray *argv, GString *result); -void menu_add_separator_edit(WebKitWebView *page, GArray *argv, GString *result); -void menu_remove(WebKitWebView *page, GArray *argv, GString *result); -void menu_remove_link(WebKitWebView *page, GArray *argv, GString *result); -void menu_remove_image(WebKitWebView *page, GArray *argv, GString *result); -void menu_remove_edit(WebKitWebView *page, GArray *argv, GString *result); - gint get_click_context(); void hardcopy(WebKitWebView *page, GArray *argv, GString *result); void include(WebKitWebView *page, GArray *argv, GString *result); @@ -380,5 +369,5 @@ typedef struct { guint context; } MenuItem; - +#endif /* vi: set et ts=4: */ -- cgit v1.2.3