diff -urp libsexy-0.1.11.orig/libsexy/sexy-icon-entry.c libsexy-0.1.11/libsexy/sexy-icon-entry.c --- libsexy-0.1.11.orig/libsexy/sexy-icon-entry.c 2007-03-17 23:30:00.000000000 -0400 +++ libsexy-0.1.11/libsexy/sexy-icon-entry.c 2009-11-15 18:21:08.560177737 -0500 @@ -468,9 +468,10 @@ static GdkPixbuf * get_pixbuf_from_icon(SexyIconEntry *entry, SexyIconEntryPosition icon_pos) { GdkPixbuf *pixbuf = NULL; - gchar *stock_id; + const gchar *stock_id; SexyIconInfo *icon_info = &entry->priv->icons[icon_pos]; GtkIconSize size; + int w, h; switch (gtk_image_get_storage_type(GTK_IMAGE(icon_info->icon))) { @@ -480,11 +481,17 @@ get_pixbuf_from_icon(SexyIconEntry *entr break; case GTK_IMAGE_STOCK: - gtk_image_get_stock(GTK_IMAGE(icon_info->icon), &stock_id, &size); + gtk_image_get_stock(GTK_IMAGE(icon_info->icon), (char**)&stock_id, &size); pixbuf = gtk_widget_render_icon(GTK_WIDGET(entry), stock_id, size, NULL); break; + case GTK_IMAGE_ICON_NAME: + gtk_image_get_icon_name (GTK_IMAGE(icon_info->icon), &stock_id, &size); + gtk_icon_size_lookup (size, &w, &h); + pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), stock_id, size, 0, NULL); + break; + default: return NULL; } @@ -655,7 +662,8 @@ update_icon(GObject *obj, GParamSpec *pa if (strcmp(name, "pixbuf") && strcmp(name, "stock") && strcmp(name, "image") && strcmp(name, "pixmap") && - strcmp(name, "icon_set") && strcmp(name, "pixbuf_animation")) + strcmp(name, "icon-set") && strcmp(name, "pixbuf-animation") && + strcmp(name, "icon-name")) { return; } diff -urp libsexy-0.1.11.orig/tests/test-icon-entry.c libsexy-0.1.11/tests/test-icon-entry.c --- libsexy-0.1.11.orig/tests/test-icon-entry.c 2006-09-02 17:26:55.000000000 -0400 +++ libsexy-0.1.11/tests/test-icon-entry.c 2009-11-15 18:21:08.560913305 -0500 @@ -21,7 +21,7 @@ main(int argc, char **argv) g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); - table = gtk_table_new(2, 4, FALSE); + table = gtk_table_new(2, 5, FALSE); gtk_widget_show(table); gtk_container_add(GTK_CONTAINER(window), table); gtk_table_set_row_spacings(GTK_TABLE(table), 6); @@ -128,6 +128,27 @@ main(int argc, char **argv) gtk_table_attach(GTK_TABLE(table), icon_entry, 1, 2, 4, 5, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + /* + * Goto URL + */ + label = gtk_label_new("URL:"); + gtk_widget_show(label); + gtk_table_attach(GTK_TABLE(table), label, 0, 1, 5, 6, + GTK_FILL, GTK_FILL, 0, 0); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + + icon_entry = sexy_icon_entry_new(); + gtk_widget_show(icon_entry); + gtk_table_attach(GTK_TABLE(table), icon_entry, 1, 2, 5, 6, + GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); + + icon = gtk_image_new_from_icon_name ("stock_internet", GTK_ICON_SIZE_MENU); + gtk_widget_show(icon); + sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(icon_entry), + SEXY_ICON_ENTRY_SECONDARY, + GTK_IMAGE(icon)); + sexy_icon_entry_set_icon_highlight(SEXY_ICON_ENTRY(icon_entry), + SEXY_ICON_ENTRY_PRIMARY, TRUE); gtk_main(); return 0;