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; }