diff options
Diffstat (limited to 'src/ephy-navigation-action.c')
-rw-r--r-- | src/ephy-navigation-action.c | 138 |
1 files changed, 2 insertions, 136 deletions
diff --git a/src/ephy-navigation-action.c b/src/ephy-navigation-action.c index b4055393e..ed544430b 100644 --- a/src/ephy-navigation-action.c +++ b/src/ephy-navigation-action.c @@ -3,7 +3,7 @@ * Copyright © 2003, 2004 Marco Pesenti Gritti * Copyright © 2003, 2004 Christian Persch * Copyright © 2008 Jan Alonzo - * Copyright © 2009 Igalia S.L. + * Copyright © 2009, 2011 Igalia S.L. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,31 +24,20 @@ #include "config.h" #include "ephy-navigation-action.h" -#include "ephy-debug.h" -#include "ephy-embed-shell.h" -#include "ephy-favicon-cache.h" -#include "ephy-history.h" -#include "ephy-link.h" -#include "ephy-shell.h" -#include "ephy-type-builtins.h" #include "ephy-window.h" #include <gtk/gtk.h> -#include <webkit/webkit.h> #define EPHY_NAVIGATION_ACTION_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_NAVIGATION_ACTION, EphyNavigationActionPrivate)) struct _EphyNavigationActionPrivate { EphyWindow *window; - char *arrow_tooltip; - guint statusbar_cid; }; enum { PROP_0, - PROP_ARROW_TOOLTIP, PROP_WINDOW }; @@ -57,54 +46,6 @@ static void ephy_navigation_action_class_init (EphyNavigationActionClass *class) G_DEFINE_TYPE (EphyNavigationAction, ephy_navigation_action, EPHY_TYPE_LINK_ACTION) - -#define MAX_LABEL_LENGTH 48 - -static GtkWidget * -build_dropdown_menu (EphyNavigationAction *action) -{ - EphyNavigationActionClass *class = EPHY_NAVIGATION_ACTION_GET_CLASS (action); - - return class->build_dropdown_menu (action); -} - -static void -menu_activated_cb (GtkMenuToolButton *button, - EphyNavigationAction *action) -{ - GtkWidget *menu = NULL; - - LOG ("menu_activated_cb"); - - menu = build_dropdown_menu (action); - gtk_menu_tool_button_set_menu (button, menu); -} - -static void -connect_proxy (GtkAction *gaction, - GtkWidget *proxy) -{ - LOG ("Connect navigation action proxy"); - - if (GTK_IS_MENU_TOOL_BUTTON (proxy)) - { - EphyNavigationAction *action = EPHY_NAVIGATION_ACTION (gaction); - EphyNavigationActionPrivate *priv = action->priv; - GtkMenuToolButton *button = GTK_MENU_TOOL_BUTTON (proxy); - GtkWidget *menu; - - /* set dummy menu so the arrow gets sensitive */ - menu = gtk_menu_new (); - gtk_menu_tool_button_set_menu (button, menu); - gtk_menu_tool_button_set_arrow_tooltip_text (button, priv->arrow_tooltip); - - g_signal_connect (proxy, "show-menu", - G_CALLBACK (menu_activated_cb), gaction); - } - - GTK_ACTION_CLASS (ephy_navigation_action_parent_class)->connect_proxy (gaction, proxy); -} - static void ephy_navigation_action_init (EphyNavigationAction *action) { @@ -112,16 +53,6 @@ ephy_navigation_action_init (EphyNavigationAction *action) } static void -ephy_navigation_action_finalize (GObject *object) -{ - EphyNavigationAction *action = EPHY_NAVIGATION_ACTION (object); - - g_free (action->priv->arrow_tooltip); - - G_OBJECT_CLASS (ephy_navigation_action_parent_class)->finalize (object); -} - -static void ephy_navigation_action_set_property (GObject *object, guint prop_id, const GValue *value, @@ -131,10 +62,6 @@ ephy_navigation_action_set_property (GObject *object, switch (prop_id) { - case PROP_ARROW_TOOLTIP: - nav->priv->arrow_tooltip = g_value_dup_string (value); - g_object_notify (object, "tooltip"); - break; case PROP_WINDOW: nav->priv->window = EPHY_WINDOW (g_value_get_object (value)); break; @@ -151,9 +78,6 @@ ephy_navigation_action_get_property (GObject *object, switch (prop_id) { - case PROP_ARROW_TOOLTIP: - g_value_set_string (value, nav->priv->arrow_tooltip); - break; case PROP_WINDOW: g_value_set_object (value, nav->priv->window); break; @@ -166,20 +90,10 @@ ephy_navigation_action_class_init (EphyNavigationActionClass *class) GObjectClass *object_class = G_OBJECT_CLASS (class); GtkActionClass *action_class = GTK_ACTION_CLASS (class); - object_class->finalize = ephy_navigation_action_finalize; object_class->set_property = ephy_navigation_action_set_property; object_class->get_property = ephy_navigation_action_get_property; - action_class->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON; - action_class->connect_proxy = connect_proxy; - - class->build_dropdown_menu = NULL; - - g_object_class_install_property (object_class, - PROP_ARROW_TOOLTIP, - g_param_spec_string ("arrow-tooltip", NULL, NULL, - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + action_class->toolbar_item_type = GTK_TYPE_TOOL_BUTTON; g_object_class_install_property (object_class, PROP_WINDOW, @@ -197,51 +111,3 @@ _ephy_navigation_action_get_window (EphyNavigationAction *action) return action->priv->window; } - -guint -_ephy_navigation_action_get_statusbar_context_id (EphyNavigationAction *action) -{ - g_return_val_if_fail (EPHY_IS_NAVIGATION_ACTION (action), 0); - - return action->priv->statusbar_cid; -} - -GtkWidget * -_ephy_navigation_action_new_history_menu_item (const char *origtext, - const char *address) -{ - EphyFaviconCache *cache; - EphyHistory *history; - GtkWidget *item, *image; - GdkPixbuf *icon = NULL; - GtkLabel *label; - const char *icon_address; - - g_return_val_if_fail (address != NULL && origtext != NULL, NULL); - - item = gtk_image_menu_item_new_with_label (origtext); - - label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (item))); - gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END); - gtk_label_set_max_width_chars (label, MAX_LABEL_LENGTH); - - history = EPHY_HISTORY - (ephy_embed_shell_get_global_history (embed_shell)); - icon_address = ephy_history_get_icon (history, address); - - cache = EPHY_FAVICON_CACHE - (ephy_embed_shell_get_favicon_cache (embed_shell)); - icon = ephy_favicon_cache_get (cache, icon_address); - - if (icon != NULL) - { - image = gtk_image_new_from_pixbuf (icon); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); - g_object_unref (icon); - } - - gtk_widget_show (item); - - return item; -} |