aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar koral <koral@mailoo.org>2011-02-10 14:39:15 +0100
committerGravatar koral <koral@mailoo.org>2011-02-10 14:39:15 +0100
commitaa565b52f9f82b6c137b2af2178d7ffb9297f310 (patch)
treeccd8ffdaa221efa69049c4bcc78195042b1541e0 /src
parentd08b19e722e263d0f4cf6454e55414014b97b235 (diff)
Moves menu functions in a dedicated source file.
Diffstat (limited to 'src')
-rw-r--r--src/menu.c192
-rw-r--r--src/menu.h18
-rw-r--r--src/uzbl-core.c173
-rw-r--r--src/uzbl-core.h19
4 files changed, 215 insertions, 187 deletions
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 <webkit/webkit.h>
+
+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 <glib/gstdio.h>
@@ -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: */