aboutsummaryrefslogtreecommitdiffstats
path: root/src/bookmarks/ephy-bookmarks-menu.c
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-12-24 08:21:16 +0800
committerChristian Persch <chpe@src.gnome.org>2004-12-24 08:21:16 +0800
commitd127ec47856ee69466b909af12e5f1020a12cb15 (patch)
treee8c6dcbd55f1b143983b73878a9177883ac352e6 /src/bookmarks/ephy-bookmarks-menu.c
parent93079ee8ea5a7a2e89d4842c9c4cad71724a99f4 (diff)
downloadgsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.gz
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.bz2
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.lz
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.xz
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.zst
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.zip
A src/ephy-home-action.c: (ephy_home_action_activate),
2004-12-24 Christian Persch <chpe@cvs.gnome.org> * lib/ephy-marshal.list: * src/Makefile.am: * src/bookmarks/ephy-bookmark-action.c: (ephy_bookmark_action_get_type), (create_tool_item), (open_in_tab_activate_cb), (open_in_window_activate_cb), (activate_cb), (connect_proxy), (ephy_bookmark_action_class_init): * src/bookmarks/ephy-bookmark-action.h: * src/bookmarks/ephy-bookmarks-menu.c: (ephy_bookmarks_menu_get_type), (add_action_for_bookmark), (ephy_bookmarks_menu_class_init): * src/bookmarks/ephy-bookmarks-menu.h: * src/bookmarks/ephy-bookmarksbar.c: (ephy_bookmarksbar_get_type), (ephy_bookmarksbar_action_request): * src/bookmarks/ephy-favorites-menu.c: (ephy_favorites_menu_get_type), (ephy_favorites_menu_rebuild): * src/bookmarks/ephy-favorites-menu.h: * src/bookmarks/ephy-topic-action.c: (ephy_topic_action_get_type), (menu_activate_cb), (open_in_tabs_activate_cb), (ephy_topic_action_class_init): * src/bookmarks/ephy-topic-action.h: A src/ephy-home-action.c: (ephy_home_action_activate), (ephy_home_action_class_init), (ephy_home_action_get_type): A src/ephy-home-action.h: A src/ephy-link-action.c: (ephy_link_action_get_type): A src/ephy-link-action.h: A src/ephy-link.c: (ephy_link_flags_get_type), (ephy_link_base_init), (ephy_link_get_type), (ephy_link_open): A src/ephy-link.h: * src/ephy-location-action.c: (ephy_location_action_get_type), (action_activated_cb), (location_url_activate_cb), (connect_proxy), (disconnect_proxy), (ephy_location_action_class_init): * src/ephy-location-action.h: * src/ephy-navigation-action.c: (ephy_navigation_action_get_type), (activate_back_or_forward_menu_item_cb), (activate_up_menu_item_cb), (build_back_or_forward_menu), (build_up_menu): * src/ephy-navigation-action.h: * src/ephy-shell.c: (ephy_shell_new_tab): * src/ephy-window.c: (setup_ui_manager), (open_link_cb), (ephy_window_init): * src/toolbar.c: (toolbar_get_type), (toolbar_setup_actions): * src/window-commands.c: * src/window-commands.h: Consolidate link opening in one place by introducing an EphyLink interface which bookmarks, topics, navigation, location, home, toolbars, bookmarks menu and favourites menu implement, forwarding the link opening to the window.
Diffstat (limited to 'src/bookmarks/ephy-bookmarks-menu.c')
-rw-r--r--src/bookmarks/ephy-bookmarks-menu.c59
1 files changed, 14 insertions, 45 deletions
diff --git a/src/bookmarks/ephy-bookmarks-menu.c b/src/bookmarks/ephy-bookmarks-menu.c
index dcb5a7eb5..48bf8b8bf 100644
--- a/src/bookmarks/ephy-bookmarks-menu.c
+++ b/src/bookmarks/ephy-bookmarks-menu.c
@@ -23,9 +23,9 @@
#include "ephy-bookmarks-menu.h"
#include "ephy-bookmark-action.h"
+#include "ephy-link.h"
#include "ephy-shell.h"
#include "ephy-node-common.h"
-#include "ephy-marshal.h"
#include "ephy-gui.h"
#include "ephy-debug.h"
@@ -68,6 +68,8 @@ struct _EphyBookmarksMenuPrivate
#define FOLDER_VERB_FORMAT "Fld%x%x"
#define FOLDER_VERB_FORMAT_LENGTH strlen (FOLDER_VERB_FORMAT) + 2 * MAXLEN + 1
+#define BMK_ACCEL_PATH_PREFIX "<Actions>/BmkActions/"
+
#define GAZILLION 200
#define UPDATE_DELAY 5000 /* ms */
#define LABEL_WIDTH_CHARS 32
@@ -79,14 +81,6 @@ enum
PROP_UI_MANAGER
};
-enum
-{
- OPEN,
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
static void ephy_bookmarks_menu_class_init (EphyBookmarksMenuClass *klass);
static void ephy_bookmarks_menu_init (EphyBookmarksMenu *menu);
@@ -111,10 +105,19 @@ ephy_bookmarks_menu_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) ephy_bookmarks_menu_init
};
+ static const GInterfaceInfo link_info =
+ {
+ NULL,
+ NULL,
+ NULL
+ };
type = g_type_register_static (G_TYPE_OBJECT,
"EphyBookmarksMenu",
&our_info, 0);
+ g_type_add_interface_static (type,
+ EPHY_TYPE_LINK,
+ &link_info);
}
return type;
@@ -184,26 +187,6 @@ ephy_bookmarks_menu_clean (EphyBookmarksMenu *menu)
}
static void
-open_bookmark_cb (GtkAction *action,
- const char *location,
- EphyBookmarksMenu *menu)
-{
- g_signal_emit (menu, signals[OPEN], 0, location,
- ephy_gui_is_middle_click ());
-}
-
-static void
-open_bookmark_in_tab_cb (GtkAction *action,
- const char *location,
- gboolean dummy,
- EphyBookmarksMenu *menu)
-{
- g_signal_emit (menu, signals[OPEN], 0, location, TRUE);
-}
-
-#define BMK_ACCEL_PATH_PREFIX "<Actions>/BmkActions/"
-
-static void
add_action_for_bookmark (EphyBookmarksMenu *menu,
EphyNode *bmk)
{
@@ -223,10 +206,8 @@ add_action_for_bookmark (EphyBookmarksMenu *menu,
gtk_action_set_accel_path (action, apath);
- g_signal_connect (action, "open",
- G_CALLBACK (open_bookmark_cb), menu);
- g_signal_connect (action, "open_in_tab",
- G_CALLBACK (open_bookmark_in_tab_cb), menu);
+ g_signal_connect_swapped (action, "open-link",
+ G_CALLBACK (ephy_link_open), menu);
gtk_action_group_add_action (menu->priv->bmk_actions, action);
g_object_unref (action);
@@ -798,18 +779,6 @@ ephy_bookmarks_menu_class_init (EphyBookmarksMenuClass *klass)
object_class->set_property = ephy_bookmarks_menu_set_property;
object_class->get_property = ephy_bookmarks_menu_get_property;
- signals[OPEN] =
- g_signal_new ("open",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (EphyBookmarksMenuClass, open),
- NULL, NULL,
- ephy_marshal_VOID__STRING_BOOLEAN,
- G_TYPE_NONE,
- 2,
- G_TYPE_STRING,
- G_TYPE_BOOLEAN);
-
g_object_class_install_property (object_class,
PROP_PATH,
g_param_spec_string ("path",