Set icons in completion as pixbufs instead of cell data functions

This commit is contained in:
Christian Dywan 2009-07-11 15:28:16 +02:00
parent 48c62d0ec6
commit 5f1792d2f1

View file

@ -76,6 +76,7 @@ enum
TITLE_COL, TITLE_COL,
VISITS_COL, VISITS_COL,
VISIBLE_COL, VISIBLE_COL,
YALIGN_COL,
N_COLS N_COLS
}; };
@ -342,7 +343,7 @@ midori_location_action_create_model (void)
{ {
GtkTreeModel* model = (GtkTreeModel*)gtk_list_store_new (N_COLS, GtkTreeModel* model = (GtkTreeModel*)gtk_list_store_new (N_COLS,
GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_INT, G_TYPE_BOOLEAN); G_TYPE_INT, G_TYPE_BOOLEAN, G_TYPE_FLOAT);
return model; return model;
} }
@ -606,23 +607,6 @@ midori_location_action_icon_released_cb (GtkWidget* widget,
g_signal_emit (action, signals[SECONDARY_ICON_RELEASED], 0, widget); g_signal_emit (action, signals[SECONDARY_ICON_RELEASED], 0, widget);
} }
static void
midori_location_entry_render_pixbuf_cb (GtkCellLayout* layout,
GtkCellRenderer* renderer,
GtkTreeModel* model,
GtkTreeIter* iter,
gpointer data)
{
GdkPixbuf* pixbuf;
gtk_tree_model_get (model, iter, FAVICON_COL, &pixbuf, -1);
if (pixbuf)
{
g_object_set (renderer, "pixbuf", pixbuf, "yalign", 0.25, NULL);
g_object_unref (pixbuf);
}
}
static void static void
midori_location_entry_render_text_cb (GtkCellLayout* layout, midori_location_entry_render_text_cb (GtkCellLayout* layout,
GtkCellRenderer* renderer, GtkCellRenderer* renderer,
@ -764,7 +748,7 @@ midori_location_action_set_item (MidoriLocationAction* location_action,
gtk_tree_model_get (location_action->model, iter, TITLE_COL, &item->title, -1); gtk_tree_model_get (location_action->model, iter, TITLE_COL, &item->title, -1);
gtk_list_store_set (GTK_LIST_STORE (location_action->model), iter, gtk_list_store_set (GTK_LIST_STORE (location_action->model), iter,
URI_COL, item->uri, TITLE_COL, item->title, -1); URI_COL, item->uri, TITLE_COL, item->title, YALIGN_COL, 0.25, -1);
gtk_tree_model_get (location_action->model, iter, FAVICON_COL, &icon, -1); gtk_tree_model_get (location_action->model, iter, FAVICON_COL, &icon, -1);
if (item->favicon) if (item->favicon)
@ -950,9 +934,8 @@ midori_location_action_completion_init (MidoriLocationAction* location_action,
renderer = gtk_cell_renderer_pixbuf_new (); renderer = gtk_cell_renderer_pixbuf_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (completion), renderer, FALSE); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (completion), renderer, FALSE);
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (completion), renderer, gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (completion), renderer,
midori_location_entry_render_pixbuf_cb, "pixbuf", FAVICON_COL, "yalign", YALIGN_COL, NULL);
NULL, NULL);
renderer = gtk_cell_renderer_text_new (); renderer = gtk_cell_renderer_text_new ();
gtk_cell_renderer_set_fixed_size (renderer, 1, -1); gtk_cell_renderer_set_fixed_size (renderer, 1, -1);
gtk_cell_renderer_text_set_fixed_height_from_font ( gtk_cell_renderer_text_set_fixed_height_from_font (
@ -1036,8 +1019,8 @@ midori_location_action_connect_proxy (GtkAction* action,
/* Setup the renderer for the favicon */ /* Setup the renderer for the favicon */
renderer = gtk_cell_renderer_pixbuf_new (); renderer = gtk_cell_renderer_pixbuf_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (entry), renderer, FALSE); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (entry), renderer, FALSE);
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (entry), gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (entry), renderer,
renderer, midori_location_entry_render_pixbuf_cb, NULL, NULL); "pixbuf", FAVICON_COL, "yalign", YALIGN_COL, NULL);
renderer = gtk_cell_renderer_text_new (); renderer = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (entry), renderer, TRUE); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (entry), renderer, TRUE);
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (entry), gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (entry),