static GtkWidget *
create_emblem_widget (NautilusEmblemSidebar *emblem_sidebar,
		      const char *name)
{
	GtkWidget *ret;
	const char *display_name;
	char *keyword;
	GdkPixbuf *pixbuf;
	NautilusIconInfo *info;

	info = nautilus_icon_info_lookup_from_name (name, NAUTILUS_ICON_SIZE_STANDARD);

	pixbuf = nautilus_icon_info_get_pixbuf_at_size (info, NAUTILUS_ICON_SIZE_STANDARD);
	
	display_name = nautilus_icon_info_get_display_name (info);
	
	keyword = nautilus_emblem_get_keyword_from_icon_name (name);
	if (display_name == NULL) {
		display_name = keyword;
	}

	ret = create_emblem_widget_with_pixbuf (emblem_sidebar, keyword,
						display_name, pixbuf);
	g_free (keyword);
	g_object_unref (info);
	return ret;
}
GtkAction *
nautilus_toolbar_action_from_menu_item (NautilusMenuItem *item)
{
	char *name, *label, *tip, *icon_name;
	gboolean sensitive, priority;
	GtkAction *action;
	GdkPixbuf *pixbuf;
	NautilusIconInfo *info;
	int icon_size;
	
	g_object_get (G_OBJECT (item), 
		      "name", &name, "label", &label, 
		      "tip", &tip, "icon", &icon_name,
		      "sensitive", &sensitive,
		      "priority", &priority,
		      NULL);
	
	action = gtk_action_new (name,
				 label,
				 tip,
				 icon_name);
	
	if (icon_name != NULL) {
		icon_size = nautilus_get_icon_size_for_stock_size (GTK_ICON_SIZE_LARGE_TOOLBAR);
		info = nautilus_icon_info_lookup_from_name (icon_name, icon_size);

		pixbuf = nautilus_icon_info_get_pixbuf_nodefault_at_size (info, icon_size);
		if (pixbuf != NULL) {
			g_object_set_data_full (G_OBJECT (action), "toolbar-icon",
						pixbuf,
						g_object_unref);
		}
		g_object_unref (info);
	}
	
	gtk_action_set_sensitive (action, sensitive);
	g_object_set (action, "is-important", priority, NULL);
	
	g_signal_connect_data (action, "activate",
			       G_CALLBACK (extension_action_callback),
			       g_object_ref (item), 
			       (GClosureNotify)g_object_unref, 0);

	g_signal_connect_object (item, "notify::sensitive",
				 G_CALLBACK (extension_action_sensitive_callback),
				 action,
				 0);

	g_free (name);
	g_free (label);
	g_free (tip);
	g_free (icon_name);

	return action;
}
GdkPixbuf *
nautilus_ui_get_menu_icon (const char *icon_name)
{
	NautilusIconInfo *info;
	GdkPixbuf *pixbuf;
	int size;

	size = nautilus_get_icon_size_for_stock_size (GTK_ICON_SIZE_MENU);

	if (g_path_is_absolute (icon_name)) {
		info = nautilus_icon_info_lookup_from_path (icon_name, size);
	} else {
		info = nautilus_icon_info_lookup_from_name (icon_name, size);
	}
	pixbuf = nautilus_icon_info_get_pixbuf_nodefault_at_size (info, size);
	g_object_unref (info);

	return pixbuf;
}