+ EvSidebarBookmarksPrivate *priv;
+ GtkWidget *swindow;
+ GtkWidget *hbox;
+ GtkListStore *model;
+ GtkCellRenderer *renderer;
+ GtkTreeSelection *selection;
+
+ sidebar_bookmarks->priv = G_TYPE_INSTANCE_GET_PRIVATE (sidebar_bookmarks,
+ EV_TYPE_SIDEBAR_BOOKMARKS,
+ EvSidebarBookmarksPrivate);
+ priv = sidebar_bookmarks->priv;
+
+ gtk_box_set_spacing (GTK_BOX (sidebar_bookmarks), 6);
+
+ swindow = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swindow),
+ GTK_SHADOW_IN);
+ gtk_box_pack_start (GTK_BOX (sidebar_bookmarks), swindow, TRUE, TRUE, 0);
+ gtk_widget_show (swindow);
+
+ model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_UINT);
+ priv->tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model));
+ g_object_unref (model);
+ g_signal_connect (priv->tree_view, "query-tooltip",
+ G_CALLBACK (ev_sidebar_bookmarks_query_tooltip),
+ sidebar_bookmarks);
+ g_signal_connect (priv->tree_view,
+ "button-press-event",
+ G_CALLBACK (ev_sidebar_bookmarks_button_press),
+ sidebar_bookmarks);
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->tree_view), FALSE);
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view));
+ g_signal_connect (selection, "changed",
+ G_CALLBACK (ev_sidebar_bookmarks_selection_changed),
+ sidebar_bookmarks);
+
+ renderer = gtk_cell_renderer_text_new ();
+ g_object_set (renderer,
+ "ellipsize", PANGO_ELLIPSIZE_END,
+ "editable", TRUE,
+ NULL);
+ g_signal_connect (renderer, "edited",
+ G_CALLBACK (ev_sidebar_bookmarks_bookmark_renamed),
+ sidebar_bookmarks);
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->tree_view),
+ 0, NULL, renderer,
+ "markup", COLUMN_MARKUP,
+ NULL);
+ gtk_container_add (GTK_CONTAINER (swindow), priv->tree_view);
+ gtk_widget_show (priv->tree_view);
+
+ hbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
+
+ priv->add_button = gtk_button_new_from_stock (GTK_STOCK_ADD);
+ g_signal_connect (priv->add_button, "clicked",
+ G_CALLBACK (ev_sidebar_bookmarks_add_clicked),
+ sidebar_bookmarks);
+ gtk_widget_set_sensitive (priv->add_button, FALSE);
+ gtk_box_pack_start (GTK_BOX (hbox), priv->add_button, TRUE, TRUE, 6);
+ gtk_widget_show (priv->add_button);
+
+ priv->del_button = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
+ g_signal_connect (priv->del_button, "clicked",
+ G_CALLBACK (ev_sidebar_bookmarks_del_clicked),
+ sidebar_bookmarks);
+ gtk_widget_set_sensitive (priv->del_button, FALSE);
+ gtk_box_pack_start (GTK_BOX (hbox), priv->del_button, TRUE, TRUE, 6);
+ gtk_widget_show (priv->del_button);
+
+ gtk_box_pack_end (GTK_BOX (sidebar_bookmarks), hbox, FALSE, TRUE, 0);
+ gtk_widget_show (hbox);
+ gtk_widget_show (GTK_WIDGET (sidebar_bookmarks));
+
+ /* Popup menu */
+ priv->action_group = gtk_action_group_new ("BookmarsPopupActions");
+ gtk_action_group_set_translation_domain (priv->action_group, NULL);
+ gtk_action_group_add_actions (priv->action_group, popup_entries,
+ G_N_ELEMENTS (popup_entries),
+ sidebar_bookmarks);
+ priv->ui_manager = gtk_ui_manager_new ();
+ gtk_ui_manager_insert_action_group (priv->ui_manager,
+ priv->action_group, 0);
+ gtk_ui_manager_add_ui_from_string (priv->ui_manager, popup_menu_ui, -1, NULL);
+}