diff options
Diffstat (limited to 'src/bookmarks/ephy-bookmarks-editor.c')
-rw-r--r-- | src/bookmarks/ephy-bookmarks-editor.c | 104 |
1 files changed, 63 insertions, 41 deletions
diff --git a/src/bookmarks/ephy-bookmarks-editor.c b/src/bookmarks/ephy-bookmarks-editor.c index e50f5659e..51f5081c2 100644 --- a/src/bookmarks/ephy-bookmarks-editor.c +++ b/src/bookmarks/ephy-bookmarks-editor.c @@ -20,6 +20,7 @@ #include <gtk/gtktable.h> #include <gtk/gtklabel.h> #include <gtk/gtkstock.h> +#include <gtk/gtkscrolledwindow.h> #include <gtk/gtkhbox.h> #include <gtk/gtkvbox.h> #include <gdk/gdkkeysyms.h> @@ -105,8 +106,8 @@ static void cmd_select_all (EggAction *action, struct EphyBookmarksEditorPrivate { EphyBookmarks *bookmarks; - EphyNodeView *bm_view; - EphyNodeView *key_view; + GtkWidget *bm_view; + GtkWidget *key_view; EphyNodeFilter *bookmarks_filter; GtkWidget *search_entry; GtkWidget *menu_dock; @@ -132,10 +133,10 @@ static EggActionGroupEntry ephy_bookmark_popup_entries [] = { { "NewTopic", N_("_New Topic"), GTK_STOCK_NEW, "<control>N", NULL, G_CALLBACK (cmd_add_topic), NULL }, - { "OpenInWindow", N_("_Open In New Window"), GTK_STOCK_OPEN, "<control>O", + { "OpenInWindow", N_("_Open in New Window"), GTK_STOCK_OPEN, "<control>O", NULL, G_CALLBACK (cmd_open_bookmarks_in_browser), NULL }, - { "OpenInTab", N_("Open In New _Tab"), NULL, "<shift><control>O", + { "OpenInTab", N_("Open in New _Tab"), NULL, "<shift><control>O", NULL, G_CALLBACK (cmd_open_bookmarks_in_tabs), NULL }, { "Cut", N_("Cu_t"), GTK_STOCK_CUT, "<control>X", @@ -172,8 +173,8 @@ cmd_add_topic (EggAction *action, node = ephy_bookmarks_add_keyword (editor->priv->bookmarks, _("Type a topic")); - ephy_node_view_select_node (editor->priv->key_view, node); - ephy_node_view_edit (editor->priv->key_view); + ephy_node_view_select_node (EPHY_NODE_VIEW (editor->priv->key_view), node); + ephy_node_view_edit (EPHY_NODE_VIEW (editor->priv->key_view)); } static void @@ -187,13 +188,13 @@ static void cmd_rename (EggAction *action, EphyBookmarksEditor *editor) { - if (ephy_node_view_has_focus (editor->priv->bm_view)) + if (gtk_widget_is_focus (editor->priv->bm_view)) { - ephy_node_view_edit (editor->priv->bm_view); + ephy_node_view_edit (EPHY_NODE_VIEW (editor->priv->bm_view)); } - else if (ephy_node_view_has_focus (editor->priv->key_view)) + else if (gtk_widget_is_focus (editor->priv->key_view)) { - ephy_node_view_edit (editor->priv->key_view); + ephy_node_view_edit (EPHY_NODE_VIEW (editor->priv->key_view)); } } @@ -219,7 +220,7 @@ cmd_open_bookmarks_in_tabs (EggAction *action, GList *l; window = EPHY_WINDOW (get_target_window (editor)); - selection = ephy_node_view_get_selection (editor->priv->bm_view); + selection = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->bm_view)); for (l = selection; l; l = l->next) { @@ -245,7 +246,7 @@ cmd_open_bookmarks_in_browser (EggAction *action, GList *l; window = EPHY_WINDOW (get_target_window (editor)); - selection = ephy_node_view_get_selection (editor->priv->bm_view); + selection = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->bm_view)); for (l = selection; l; l = l->next) { @@ -266,13 +267,13 @@ static void cmd_delete (EggAction *action, EphyBookmarksEditor *editor) { - if (ephy_node_view_has_focus (editor->priv->bm_view)) + if (gtk_widget_is_focus (editor->priv->bm_view)) { - ephy_node_view_remove (editor->priv->bm_view); + ephy_node_view_remove (EPHY_NODE_VIEW (editor->priv->bm_view)); } - else if (ephy_node_view_has_focus (editor->priv->key_view)) + else if (gtk_widget_is_focus (editor->priv->key_view)) { - ephy_node_view_remove (editor->priv->key_view); + ephy_node_view_remove (EPHY_NODE_VIEW (editor->priv->key_view)); } } @@ -284,7 +285,7 @@ cmd_bookmark_properties (EggAction *action, GList *selection; GList *l; - selection = ephy_node_view_get_selection (editor->priv->bm_view); + selection = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->bm_view)); for (l = selection; l; l = l->next) { @@ -342,9 +343,9 @@ cmd_select_all (EggAction *action, { gtk_editable_select_region (GTK_EDITABLE (widget), 0, -1); } - else if (ephy_node_view_has_focus (editor->priv->bm_view)) + else if (gtk_widget_is_focus (editor->priv->bm_view)) { - ephy_node_view_select_all (editor->priv->bm_view); + ephy_node_view_select_all (EPHY_NODE_VIEW (editor->priv->bm_view)); } } @@ -416,7 +417,7 @@ ephy_bookmarks_editor_dispose (GObject *object) if (editor->priv->key_view != NULL) { - selection = ephy_node_view_get_selection (editor->priv->key_view); + selection = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->key_view)); if (selection == NULL || selection->data == NULL) { editor->priv->key_view = NULL; @@ -552,7 +553,7 @@ keyword_node_selected_cb (EphyNodeView *view, if (node == NULL) { bookmarks = ephy_bookmarks_get_bookmarks (editor->priv->bookmarks); - ephy_node_view_select_node (editor->priv->key_view, bookmarks); + ephy_node_view_select_node (EPHY_NODE_VIEW (editor->priv->key_view), bookmarks); } else { @@ -671,7 +672,8 @@ static void ephy_bookmarks_editor_construct (EphyBookmarksEditor *editor) { GtkWidget *hbox, *vbox; - EphyNodeView *bm_view, *key_view; + GtkWidget *bm_view, *key_view; + GtkWidget *scrolled_window; EphyNode *node; long selected_id; EphyNode *selected_node; @@ -726,26 +728,36 @@ ephy_bookmarks_editor_construct (EphyBookmarksEditor *editor) node = ephy_bookmarks_get_keywords (editor->priv->bookmarks); + scrolled_window = g_object_new (GTK_TYPE_SCROLLED_WINDOW, + "hadjustment", NULL, + "vadjustment", NULL, + "hscrollbar_policy", GTK_POLICY_AUTOMATIC, + "vscrollbar_policy", GTK_POLICY_AUTOMATIC, + "shadow_type", GTK_SHADOW_IN, + NULL); + gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, FALSE, TRUE, 0); + gtk_widget_show (scrolled_window); + /* Keywords View */ key_view = ephy_node_view_new (node, NULL); - ephy_node_view_enable_drag_source (key_view, + ephy_node_view_enable_drag_source (EPHY_NODE_VIEW (key_view), topic_drag_types, n_topic_drag_types, -1); - ephy_node_view_enable_drag_dest (key_view, + ephy_node_view_enable_drag_dest (EPHY_NODE_VIEW (key_view), topic_drag_dest_types, n_topic_drag_dest_types); - ephy_node_view_set_browse_mode (key_view); - ephy_node_view_add_column (key_view, _("Topics"), + ephy_node_view_set_browse_mode (EPHY_NODE_VIEW (key_view)); + ephy_node_view_add_column (EPHY_NODE_VIEW (key_view), _("Topics"), EPHY_TREE_MODEL_NODE_COL_KEYWORD, TRUE, TRUE); - gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (key_view), FALSE, TRUE, 0); - gtk_widget_set_size_request (GTK_WIDGET (key_view), 130, -1); - gtk_widget_show (GTK_WIDGET (key_view)); + gtk_container_add (GTK_CONTAINER (scrolled_window), key_view); + gtk_widget_set_size_request (key_view, 130, -1); + gtk_widget_show (key_view); editor->priv->key_view = key_view; g_signal_connect (G_OBJECT (key_view), "key_press_event", G_CALLBACK (key_pressed_cb), - editor->priv->key_view); + EPHY_NODE_VIEW (editor->priv->key_view)); g_signal_connect (G_OBJECT (key_view), "node_selected", G_CALLBACK (keyword_node_selected_cb), @@ -768,26 +780,36 @@ ephy_bookmarks_editor_construct (EphyBookmarksEditor *editor) build_search_box (editor), FALSE, FALSE, 0); + scrolled_window = g_object_new (GTK_TYPE_SCROLLED_WINDOW, + "hadjustment", NULL, + "vadjustment", NULL, + "hscrollbar_policy", GTK_POLICY_AUTOMATIC, + "vscrollbar_policy", GTK_POLICY_AUTOMATIC, + "shadow_type", GTK_SHADOW_IN, + NULL); + gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0); + gtk_widget_show (scrolled_window); + node = ephy_bookmarks_get_bookmarks (editor->priv->bookmarks); editor->priv->bookmarks_filter = ephy_node_filter_new (); /* Bookmarks View */ bm_view = ephy_node_view_new (node, editor->priv->bookmarks_filter); - ephy_node_view_set_hinted (bm_view, TRUE); - ephy_node_view_enable_drag_source (bm_view, + gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (bm_view), TRUE); + ephy_node_view_enable_drag_source (EPHY_NODE_VIEW (bm_view), bmk_drag_types, n_bmk_drag_types, EPHY_NODE_BMK_PROP_LOCATION); - ephy_node_view_add_icon_column (bm_view, EPHY_TREE_MODEL_NODE_COL_ICON); - ephy_node_view_add_column (bm_view, _("Title"), + ephy_node_view_add_icon_column (EPHY_NODE_VIEW (bm_view), EPHY_TREE_MODEL_NODE_COL_ICON); + ephy_node_view_add_column (EPHY_NODE_VIEW (bm_view), _("Title"), EPHY_TREE_MODEL_NODE_COL_BOOKMARK, TRUE, TRUE); - gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (bm_view), TRUE, TRUE, 0); - gtk_widget_show (GTK_WIDGET (bm_view)); + gtk_container_add (GTK_CONTAINER (scrolled_window), bm_view); + gtk_widget_show (bm_view); editor->priv->bm_view = bm_view; g_signal_connect (G_OBJECT (bm_view), "key_press_event", G_CALLBACK (key_pressed_cb), - editor->priv->bm_view); + EPHY_NODE_VIEW (editor->priv->bm_view)); g_signal_connect (G_OBJECT (bm_view), "node_activated", G_CALLBACK (ephy_bookmarks_editor_node_activated_cb), @@ -812,7 +834,7 @@ ephy_bookmarks_editor_construct (EphyBookmarksEditor *editor) selected_node = ephy_node_get_from_id (selected_id); if (selected_node != NULL) { - ephy_node_view_select_node (key_view, selected_node); + ephy_node_view_select_node (EPHY_NODE_VIEW (key_view), selected_node); } g_free (selected_id_str); @@ -914,7 +936,7 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor, /* Unselection */ if (node == NULL) { - selection = ephy_node_view_get_selection (editor->priv->bm_view); + selection = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->bm_view)); if (!selection) { rename = delete = properties = FALSE; @@ -945,7 +967,7 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor, } else { - if (view == editor->priv->key_view) + if (view == EPHY_NODE_VIEW (editor->priv->key_view)) { properties = FALSE; } @@ -955,7 +977,7 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor, } delete = TRUE; - selection = ephy_node_view_get_selection (editor->priv->bm_view); + selection = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->bm_view)); if (g_list_length (selection) > 1) { rename = FALSE; |