diff options
author | Xan Lopez <xan@igalia.com> | 2011-12-15 05:20:22 +0800 |
---|---|---|
committer | Xan Lopez <xan@igalia.com> | 2011-12-15 05:20:22 +0800 |
commit | f61d7dfbcbfbfbc6b4ff4448333b72f0189a8f0c (patch) | |
tree | da51946262f5fa7d89d8ff1a884600877bd724ce /src/bookmarks | |
parent | 95c05041ab35d2ff4b13b7f86140c6d2665c9582 (diff) | |
download | gsoc2013-epiphany-f61d7dfbcbfbfbc6b4ff4448333b72f0189a8f0c.tar.gz gsoc2013-epiphany-f61d7dfbcbfbfbc6b4ff4448333b72f0189a8f0c.tar.zst gsoc2013-epiphany-f61d7dfbcbfbfbc6b4ff4448333b72f0189a8f0c.zip |
ephy-topic-action: kill unused code related to toolbar items
Diffstat (limited to 'src/bookmarks')
-rw-r--r-- | src/bookmarks/ephy-topic-action.c | 230 |
1 files changed, 2 insertions, 228 deletions
diff --git a/src/bookmarks/ephy-topic-action.c b/src/bookmarks/ephy-topic-action.c index 8d951e736..4b64882fe 100644 --- a/src/bookmarks/ephy-topic-action.c +++ b/src/bookmarks/ephy-topic-action.c @@ -36,14 +36,6 @@ #include <gtk/gtk.h> #include <string.h> -static const GtkTargetEntry dest_drag_types[] = { - { EPHY_DND_URL_TYPE, 0, 0}, -}; - -#define TOOLITEM_WIDTH_CHARS 24 -#define MENUITEM_WIDTH_CHARS 32 -#define LABEL_WIDTH_CHARS 32 - #define EPHY_TOPIC_ACTION_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_TOPIC_ACTION, EphyTopicActionPrivate)) struct _EphyTopicActionPrivate @@ -63,89 +55,6 @@ enum G_DEFINE_TYPE (EphyTopicAction, ephy_topic_action, GTK_TYPE_ACTION) static void -drag_data_received_cb (GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint time, - GtkAction *action) -{ - const char *data; - EphyBookmarks *bookmarks; - EphyNode *bookmark, *topic; - gchar **netscape_url; - - topic = ephy_topic_action_get_topic (EPHY_TOPIC_ACTION (action)); - - data = (char *) gtk_selection_data_get_data (selection_data); - bookmarks = ephy_shell_get_bookmarks (ephy_shell); - - netscape_url = g_strsplit (data, "\n", 2); - if (!netscape_url || !netscape_url[0]) - { - g_strfreev (netscape_url); - gtk_drag_finish (context, FALSE, FALSE, time); - return; - } - - bookmark = ephy_bookmarks_find_bookmark (bookmarks, netscape_url[0]); - if (bookmark == NULL) - { - bookmark = ephy_bookmarks_add (bookmarks, netscape_url[1], netscape_url[0]); - } - - g_strfreev (netscape_url); - - if (bookmark != NULL) - { - ephy_bookmarks_set_keyword (bookmarks, topic, bookmark); - gtk_drag_finish (context, TRUE, FALSE, time); - } - else - { - gtk_drag_finish (context, FALSE, FALSE, time); - } -} - -static GtkWidget * -create_tool_item (GtkAction *action) -{ - GtkWidget *item; - GtkWidget *button; - GtkWidget *arrow; - GtkWidget *hbox; - GtkWidget *label; - - item = GTK_ACTION_CLASS (ephy_topic_action_parent_class)->create_tool_item (action); - - button = gtk_toggle_button_new (); - gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); - gtk_button_set_focus_on_click (GTK_BUTTON (button), FALSE); - gtk_widget_show (button); - gtk_container_add (GTK_CONTAINER (item), button); - g_object_set_data (G_OBJECT (item), "button", button); - - arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE); - gtk_widget_show (arrow); - - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3); - gtk_widget_show (hbox); - gtk_container_add (GTK_CONTAINER (button), hbox); - - label = gtk_label_new (NULL); - gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); - gtk_label_set_max_width_chars (GTK_LABEL (label), TOOLITEM_WIDTH_CHARS); - gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, TRUE, 0); - g_object_set_data (G_OBJECT (item), "label", label); - - return item; -} - -static void ephy_topic_action_sync_label (GtkAction *action, GParamSpec *pspec, GtkWidget *proxy) @@ -159,11 +68,7 @@ ephy_topic_action_sync_label (GtkAction *action, label_text = g_value_get_string (&value); - if (GTK_IS_TOOL_ITEM (proxy)) - { - label = GTK_WIDGET (g_object_get_data (G_OBJECT (proxy), "label")); - } - else if (GTK_IS_MENU_ITEM (proxy)) + if (GTK_IS_MENU_ITEM (proxy)) { label = gtk_bin_get_child (GTK_BIN (proxy)); } @@ -278,115 +183,6 @@ menu_init_cb (GtkWidget *menuitem, } static void -button_deactivate_cb (GtkMenuShell *ms, - GtkWidget *button) -{ - GtkWidget *window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), FALSE); - - g_object_set_data (G_OBJECT (window), - "active-topic-action-button", NULL); - - /* - Currently, GObject leaks connection IDs created with - g_signal_connect_object () - See glib bug #118536 - */ - g_signal_handlers_disconnect_by_func(ms, button_deactivate_cb, button); -} - -static void -button_toggled_cb (GtkWidget *button, - EphyTopicAction *action) -{ - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) - { - GtkWidget *popup; - GtkWidget *window; - - window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW); - - g_object_set_data (G_OBJECT (window), - "active-topic-action-button", - button); - - popup = get_popup (action); - - g_signal_connect_object (popup, "deactivate", - G_CALLBACK (button_deactivate_cb), button, 0); - - /* FIXME: ephy_gui_menu_position_menu_on_toolbar? */ - gtk_menu_popup (GTK_MENU (popup), NULL, NULL, - ephy_gui_menu_position_under_widget, - button, 1, gtk_get_current_event_time ()); - } -} - -static gboolean -button_release_cb (GtkWidget *button, - GdkEventButton *event, - EphyTopicAction *action) -{ - if (event->button == 1) - { - gtk_toggle_button_set_active - (GTK_TOGGLE_BUTTON (button), FALSE); - } - - return FALSE; -} - -static gboolean -button_press_cb (GtkWidget *button, - GdkEventButton *event, - EphyTopicAction *action) -{ - if (event->button == 1) - { - if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) - { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); - - return TRUE; - } - } - - return FALSE; -} - -static gboolean -button_enter_cb (GtkWidget *button, - GdkEventCrossing *event, - EphyTopicAction *action) -{ - GtkWidget *window; - GtkWidget *active_button; - - window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW); - active_button = g_object_get_data (G_OBJECT (window), - "active-topic-action-button"); - - if (active_button && - active_button != button && - GTK_IS_TOGGLE_BUTTON (active_button) && - gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (active_button))) - { - EphyTopicAction *active_action; - GtkWidget *ancestor; - - ancestor = gtk_widget_get_ancestor (active_button, GTK_TYPE_TOOL_ITEM); - active_action = (EphyTopicAction*)gtk_activatable_get_related_action (GTK_ACTIVATABLE (ancestor)); - - erase_popup (active_action); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (active_button), FALSE); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); - } - - return FALSE; -} - -static void connect_proxy (GtkAction *action, GtkWidget *proxy) { @@ -396,28 +192,7 @@ connect_proxy (GtkAction *action, g_signal_connect_object (action, "notify::label", G_CALLBACK (ephy_topic_action_sync_label), proxy, 0); - if (GTK_IS_TOOL_ITEM (proxy)) - { - GtkWidget *button; - - button = GTK_WIDGET (g_object_get_data (G_OBJECT (proxy), "button")); - - g_signal_connect (button, "toggled", - G_CALLBACK (button_toggled_cb), action); - g_signal_connect (button, "button-press-event", - G_CALLBACK (button_press_cb), action); - g_signal_connect (button, "button-release-event", - G_CALLBACK (button_release_cb), action); - g_signal_connect (button, "enter-notify-event", - G_CALLBACK (button_enter_cb), action); - /* FIXME: what about keyboard (toggled by Space) ? */ - - g_signal_connect (button, "drag-data-received", - G_CALLBACK (drag_data_received_cb), action); - gtk_drag_dest_set (button, GTK_DEST_DEFAULT_ALL, dest_drag_types, - G_N_ELEMENTS (dest_drag_types), GDK_ACTION_COPY); - } - else if (GTK_IS_MENU_ITEM (proxy)) + if (GTK_IS_MENU_ITEM (proxy)) { g_signal_connect (proxy, "map", G_CALLBACK (menu_init_cb), action); @@ -559,7 +334,6 @@ ephy_topic_action_class_init (EphyTopicActionClass *class) GtkActionClass *action_class = GTK_ACTION_CLASS (class); action_class->toolbar_item_type = GTK_TYPE_TOOL_ITEM; - action_class->create_tool_item = create_tool_item; action_class->connect_proxy = connect_proxy; object_class->set_property = ephy_topic_action_set_property; |