diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-12-24 08:21:16 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-12-24 08:21:16 +0800 |
commit | d127ec47856ee69466b909af12e5f1020a12cb15 (patch) | |
tree | e8c6dcbd55f1b143983b73878a9177883ac352e6 /src/toolbar.c | |
parent | 93079ee8ea5a7a2e89d4842c9c4cad71724a99f4 (diff) | |
download | gsoc2013-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/toolbar.c')
-rwxr-xr-x | src/toolbar.c | 77 |
1 files changed, 49 insertions, 28 deletions
diff --git a/src/toolbar.c b/src/toolbar.c index 2e2424a12..ed24eb858 100755 --- a/src/toolbar.c +++ b/src/toolbar.c @@ -24,7 +24,9 @@ #include "toolbar.h" #include "ephy-favicon-action.h" +#include "ephy-link.h" #include "ephy-go-action.h" +#include "ephy-home-action.h" #include "ephy-location-entry.h" #include "ephy-location-action.h" #include "ephy-navigation-action.h" @@ -38,9 +40,10 @@ #include "eel-gconf-extensions.h" #include "ephy-debug.h" -#include <string.h> #include <glib/gi18n.h> +#include <gtk/gtkstock.h> #include <gtk/gtkuimanager.h> +#include <string.h> static void toolbar_class_init (ToolbarClass *klass); static void toolbar_init (Toolbar *t); @@ -88,29 +91,39 @@ struct ToolbarPrivate GType toolbar_get_type (void) { - static GType type = 0; + static GType type = 0; - if (G_UNLIKELY (type == 0)) - { - static const GTypeInfo our_info = - { - sizeof (ToolbarClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) toolbar_class_init, - NULL, - NULL, /* class_data */ - sizeof (Toolbar), - 0, /* n_preallocs */ - (GInstanceInitFunc) toolbar_init - }; - - type = g_type_register_static (EGG_TYPE_EDITABLE_TOOLBAR, + if (G_UNLIKELY (type == 0)) + { + static const GTypeInfo our_info = + { + sizeof (ToolbarClass), + NULL, /* base_init */ + NULL, /* base_finalize */ + (GClassInitFunc) toolbar_class_init, + NULL, + NULL, /* class_data */ + sizeof (Toolbar), + 0, /* n_preallocs */ + (GInstanceInitFunc) toolbar_init + }; + + static const GInterfaceInfo link_info = + { + NULL, + NULL, + NULL + }; + + type = g_type_register_static (EGG_TYPE_EDITABLE_TOOLBAR, "Toolbar", &our_info, 0); - } + g_type_add_interface_static (type, + EPHY_TYPE_LINK, + &link_info); + } - return type; + return type; } static void @@ -152,12 +165,6 @@ arbitrary_url_notifier (GConfClient *client, } static void -go_location_cb (GtkAction *action, char *location, EphyWindow *window) -{ - ephy_window_load_url (window, location); -} - -static void zoom_to_level_cb (GtkAction *action, float zoom, EphyWindow *window) { ephy_window_set_zoom (window, zoom); @@ -355,6 +362,8 @@ toolbar_setup_actions (Toolbar *t) NULL); g_signal_connect (action, "activate", G_CALLBACK (window_cmd_go_up), t->priv->window); + g_signal_connect_swapped (action, "open-link", + G_CALLBACK (ephy_link_open), t); gtk_action_group_add_action (t->priv->action_group, action); g_object_unref (action); @@ -368,8 +377,8 @@ toolbar_setup_actions (Toolbar *t) "tooltip", _("Enter a web address to open, or a phrase to search for on the web"), "visible-overflown", FALSE, NULL); - g_signal_connect (action, "go_location", - G_CALLBACK (go_location_cb), t->priv->window); + g_signal_connect_swapped (action, "open-link", + G_CALLBACK (ephy_link_open), t); g_signal_connect (action, "notify::address", G_CALLBACK (sync_user_input_cb), t); gtk_action_group_add_action (t->priv->action_group, action); @@ -408,6 +417,18 @@ toolbar_setup_actions (Toolbar *t) G_CALLBACK (window_cmd_load_location), t->priv->window); gtk_action_group_add_action (t->priv->action_group, action); g_object_unref (action); + + action = g_object_new (EPHY_TYPE_HOME_ACTION, + "name", "GoHome", + "label", _("_Home"), + "stock_id", GTK_STOCK_HOME, + "tooltip", _("Go to the home page"), + "is_important", TRUE, + NULL); + g_signal_connect_swapped (action, "open-link", + G_CALLBACK (ephy_link_open), t); + gtk_action_group_add_action_with_accel (t->priv->action_group, action, "<alt>Home"); + g_object_unref (action); } static void |