Re: [evolution-patches] Bug 127812: Make Evolution use the gnome-icon-theme (all modules)



OK.  There was some delay on this patch while we tried to get all the
icons into gnome-icon-theme.  (Stop making new icons, people!  :))

I have updated the patch to work with CVS HEAD code.  I have attached
the new patch and reattached the files e-icon-factory.{c,h}.

A reminder: This patch aims to convert Evolution from built-in icons to
using the gnome-icon-theme.  It moves e-icon-factory from a shell
service to an evolution-wide e-util service.  *All* icons are generated
by calling the e_icon_factory_get_icon* family.

After applying this patch, you will need to add the attached
e-icon-factory files into e-util directory and remove them from the
shell directory.  You may also remove all the icons in art/ that are no
longer used (almost all of them -- look at the patch for
art/Makefile.am).

This means that all further new icons will need to be added to
gnome-icon-theme rather than into the art/ directory.

Let me know if anything needs to be changed!

Note: There are still a couple missing icons -- "im" and "im-nov".  See
bug #129294 for progress on that.  In addition, all icons in the art/
directory that are not being used are no longer represented.  You'll
have to go through gnome-icon-theme after this.

-mt
? e-util/e-icon-factory.c
? e-util/e-icon-factory.h
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/ChangeLog,v
retrieving revision 1.1315
diff -u -r1.1315 ChangeLog
--- ChangeLog	5 Mar 2004 19:37:17 -0000	1.1315
+++ ChangeLog	12 Mar 2004 19:10:23 -0000
@@ -1,3 +1,9 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* data/evolution.desktop.in.in: change all references to 
+	built-in icon names to gnome-icon-theme icons.  Part of 
+	GNOME bug #127812.
+
 2004-03-05  JP Rosevear <jpr ximian com>
 
 	* configure.in: bump version, requirements
Index: addressbook/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/ChangeLog,v
retrieving revision 1.1612
diff -u -r1.1612 ChangeLog
--- addressbook/ChangeLog	11 Mar 2004 01:12:38 -0000	1.1612
+++ addressbook/ChangeLog	12 Mar 2004 19:10:26 -0000
@@ -1,3 +1,25 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* gui/component/GNOME_Evolution_Addressbook.server.in.in: change
+	all references to built-in icon names to gnome-icon-theme icons.
+	Part of GNOME bug #127812.
+	* gui/component/addressbook-component.c: same.
+	* gui/component/addressbook.c: same.
+	* gui/component/ldap-config.glade: same.
+	* gui/component/select-names/e-select-names-popup.c: same.
+	* gui/contact-editor/contact-editor.glade: same.
+	* gui/contact-editor/e-contact-editor-address.c: same.
+	* gui/contact-editor/e-contact-editor-fullname.c: same.
+	* gui/contact-editor/e-contact-editor-im.c: same.
+	* gui/contact-editor/e-contact-editor.c: same.
+	* gui/contact-list-editor/contact-list-editor.glade: same.
+	* gui/contact-list-editor/e-contact-list-editor.c: same.
+	* gui/merging/eab-contact-commit-duplicate-detected.glade: same.
+	* gui/merging/eab-contact-duplicate-detected.glade: same.
+	* gui/widgets/e-minicard.c: same.
+	* gui/widgets/eab-contact-display.c: same.
+	* gui/widgets/eab-gui-util.c: same.
+
 2004-03-10  Chris Toshok  <toshok ximian com>
 
 	* gui/widgets/eab-contact-display.c (render_address): #if 0 this,
Index: addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in,v
retrieving revision 1.12
diff -u -r1.12 GNOME_Evolution_Addressbook.server.in.in
--- addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in	6 Dec 2003 23:19:00 -0000	1.12
+++ addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in	12 Mar 2004 19:10:26 -0000
@@ -61,7 +61,7 @@
 
         <oaf_attribute name="evolution:button_label" type="string" _value="Contacts"/>
         <oaf_attribute name="evolution:button_sort_order" type="string" value="-9"/>
-        <oaf_attribute name="evolution:button_icon" type="string" value="evolution-contacts.png"/>
+        <oaf_attribute name="evolution:button_icon" type="string" value="stock_addressbook"/>
 
 </oaf_server>
 
@@ -108,7 +108,7 @@
                        _value="Manager your S/Mime certificates here"/>
                                                                                           
         <oaf_attribute name="evolution2:config_item:icon_name" type="string"
-                       value="pgp-signature-ok.png"/>
+                       value="stock_lock-ok"/>
                                                                                           
         <oaf_attribute name="evolution2:config_item:priority" type="string" value="-6"/>
                                                                                           
@@ -132,7 +132,7 @@
 		_value="Configure autocomple here"/>
 
 	<oaf_attribute name="evolution2:config_item:icon_name" type="string"
-		value="folder-settings.png"/>
+		value="stock_contact"/>
 
 	<oaf_attribute name="evolution2:config_item:priority" type="string" value="-9"/>
 
Index: addressbook/gui/component/addressbook-component.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/component/addressbook-component.c,v
retrieving revision 1.117
diff -u -r1.117 addressbook-component.c
--- addressbook/gui/component/addressbook-component.c	3 Mar 2004 22:21:15 -0000	1.117
+++ addressbook/gui/component/addressbook-component.c	12 Mar 2004 19:10:26 -0000
@@ -555,14 +555,14 @@
 	list->_buffer[0].menuDescription = _("_Contact");
 	list->_buffer[0].tooltip = _("Create a new contact");
 	list->_buffer[0].menuShortcut = 'c';
-	list->_buffer[0].iconName = "evolution-contacts-mini.png";
+	list->_buffer[0].iconName = "stock_contact";
 
 	list->_buffer[1].id = "contact_list";
 	list->_buffer[1].description = _("New Contact List");
 	list->_buffer[1].menuDescription = _("Contact _List");
 	list->_buffer[1].tooltip = _("Create a new contact list");
 	list->_buffer[1].menuShortcut = 'l';
-	list->_buffer[1].iconName = "contact-list-16.png";
+	list->_buffer[1].iconName = "stock_contact-list";
 
 	return list;
 }
Index: addressbook/gui/component/addressbook.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/component/addressbook.c,v
retrieving revision 1.227
diff -u -r1.227 addressbook.c
--- addressbook/gui/component/addressbook.c	20 Feb 2004 02:20:52 -0000	1.227
+++ addressbook/gui/component/addressbook.c	12 Mar 2004 19:10:27 -0000
@@ -39,7 +39,7 @@
 #include <gal/util/e-util.h>
 
 #include "e-util/e-passwords.h"
-
+#include <e-util/e-icon-factory.h>
 #include "evolution-shell-component-utils.h"
 #include "e-activity-handler.h"
 #include "e-contact-editor.h"
@@ -55,7 +55,7 @@
 #include <libebook/e-book-async.h>
 
 /* This is used for the addressbook status bar */
-#define EVOLUTION_CONTACTS_PROGRESS_IMAGE "evolution-contacts-mini.png"
+#define EVOLUTION_CONTACTS_PROGRESS_IMAGE "stock_contact"
 static GdkPixbuf *progress_icon = NULL;
 
 #define d(x)
@@ -250,7 +250,7 @@
 		char *clientid = g_strdup_printf ("%p", view);
 
 		if (progress_icon == NULL)
-			progress_icon = gdk_pixbuf_new_from_file (EVOLUTION_IMAGESDIR "/" EVOLUTION_CONTACTS_PROGRESS_IMAGE, NULL);
+			progress_icon = e_icon_factory_get_icon (EVOLUTION_CONTACTS_PROGRESS_IMAGE, 16);
 
 		view->activity_id = e_activity_handler_operation_started (activity_handler, clientid,
 									  progress_icon, message, TRUE);
@@ -418,19 +418,19 @@
 };
 
 static EPixmap pixmaps [] = {
-	E_PIXMAP ("/menu/File/FileOps/ContactsSaveAsVCard", "save-as-16.png"),
-	E_PIXMAP ("/menu/File/Print/ContactsPrint", "print.xpm"),
-	E_PIXMAP ("/menu/File/Print/ContactsPrintPreview", "print-preview.xpm"),
-
-	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsCut", "16_cut.png"),
-	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsCopy", "16_copy.png"),
-	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsPaste", "16_paste.png"),
-	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactDelete", "evolution-trash-mini.png"),
+	E_PIXMAP ("/menu/File/FileOps/ContactsSaveAsVCard", "stock_save-as", 16),
+	E_PIXMAP ("/menu/File/Print/ContactsPrint", "stock_print", 16),
+	E_PIXMAP ("/menu/File/Print/ContactsPrintPreview", "stock_print-preview", 16),
+
+	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsCut", "stock_cut", 16),
+	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsCopy", "stock_copy", 16),
+	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactsPaste", "stock_paste", 16),
+	E_PIXMAP ("/menu/EditPlaceholder/Edit/ContactDelete", "stock_delete", 16),
 
-	E_PIXMAP ("/menu/Tools/ComponentPlaceholder/ToolSearch", "search-16.png"),
+	E_PIXMAP ("/menu/Tools/ComponentPlaceholder/ToolSearch", "stock_search", 16),
 
-	E_PIXMAP ("/Toolbar/ContactsPrint", "buttons/print.png"),
-	E_PIXMAP ("/Toolbar/ContactDelete", "buttons/delete-message.png"),
+	E_PIXMAP ("/Toolbar/ContactsPrint", "stock_print", 24),
+	E_PIXMAP ("/Toolbar/ContactDelete", "stock_delete", 24),
 
 	E_PIXMAP_END
 };
Index: addressbook/gui/component/ldap-config.glade
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/component/ldap-config.glade,v
retrieving revision 1.20
diff -u -r1.20 ldap-config.glade
--- addressbook/gui/component/ldap-config.glade	12 Feb 2004 19:11:29 -0000	1.20
+++ addressbook/gui/component/ldap-config.glade	12 Mar 2004 19:10:28 -0000
@@ -939,7 +939,7 @@
 				<widget class="Custom" id="custom1">
 				  <property name="visible">True</property>
 				  <property name="creation_function">e_create_image_widget</property>
-				  <property name="string1">stock-edit-24.png</property>
+				  <property name="string1">stock_edit</property>
 				  <property name="int1">0</property>
 				  <property name="int2">0</property>
 				  <property name="last_modification_time">Fri, 25 Apr 2003 20:27:48 GMT</property>
Index: addressbook/gui/component/select-names/e-select-names-popup.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/component/select-names/e-select-names-popup.c,v
retrieving revision 1.30
diff -u -r1.30 e-select-names-popup.c
--- addressbook/gui/component/select-names/e-select-names-popup.c	6 Jan 2004 18:38:11 -0000	1.30
+++ addressbook/gui/component/select-names/e-select-names-popup.c	12 Mar 2004 19:10:29 -0000
@@ -45,9 +45,10 @@
 #include <addressbook/gui/contact-editor/e-contact-quick-add.h>
 #include "eab-gui-util.h"
 #include "e-select-names-popup.h"
+#include <e-util/e-icon-factory.h>
 
-#define LIST_ICON_FILENAME "contact-list-16.png"
-#define CONTACT_ICON_FILENAME "evolution-contacts-mini.png"
+#define LIST_ICON_NAME "stock_contact-list"
+#define CONTACT_ICON_NAME "stock_contact"
 
 typedef struct _PopupInfo PopupInfo;
 struct _PopupInfo {
@@ -192,6 +193,7 @@
 static void
 populate_popup_contact (GtkWidget *pop, gboolean list, PopupInfo *info)
 {
+	GdkPixbuf *pixbuf;
 	GtkWidget *image;
 	EContact *contact;
 	GtkWidget *menuitem;
@@ -299,9 +301,9 @@
 	gtk_widget_show (menuitem);
 	gtk_menu_shell_prepend (GTK_MENU_SHELL (pop), menuitem);
 
-	image = gtk_image_new_from_file (list
-					 ? EVOLUTION_IMAGESDIR "/" LIST_ICON_FILENAME
-					 : EVOLUTION_IMAGESDIR "/" CONTACT_ICON_FILENAME);
+	pixbuf = e_icon_factory_get_icon (list ? LIST_ICON_NAME : CONTACT_ICON_NAME, 16);
+	image = gtk_image_new_from_pixbuf (pixbuf);
+	g_object_unref (pixbuf);
 	gtk_widget_show (image);
 	menuitem = gtk_image_menu_item_new_with_label (eab_destination_get_name (info->dest));
 	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem),
Index: addressbook/gui/contact-editor/contact-editor.glade
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-editor/contact-editor.glade,v
retrieving revision 1.49
diff -u -r1.49 contact-editor.glade
--- addressbook/gui/contact-editor/contact-editor.glade	27 Feb 2004 22:23:20 -0000	1.49
+++ addressbook/gui/contact-editor/contact-editor.glade	12 Mar 2004 19:10:30 -0000
@@ -604,7 +604,7 @@
 		<widget class="Custom" id="custom3">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">envelope.png</property>
+		  <property name="string1">stock_mail</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -624,7 +624,7 @@
 		<widget class="Custom" id="custom4">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">house.png</property>
+		  <property name="string1">stock_home</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -644,7 +644,7 @@
 		<widget class="Custom" id="custom10">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">globe.png</property>
+		  <property name="string1">gnome-globe</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -767,7 +767,7 @@
 		<widget class="Custom" id="custom6">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">briefcase.png</property>
+		  <property name="string1">stock_briefcase</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -880,7 +880,7 @@
 		<widget class="Custom" id="custom2">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">cellphone.png</property>
+		  <property name="string1">stock_cell-phone</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -900,7 +900,7 @@
 		<widget class="Custom" id="image-chooser">
 		  <property name="visible">True</property>
 		  <property name="creation_function">eab_create_image_chooser_widget</property>
-		  <property name="string1">malehead.png</property>
+		  <property name="string1">stock_person</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -2043,7 +2043,7 @@
 		<widget class="Custom" id="custom7">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">briefcase.png</property>
+		  <property name="string1">stock_briefcase</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -2063,7 +2063,7 @@
 		<widget class="Custom" id="custom8">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">malehead.png</property>
+		  <property name="string1">stock_person</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -2117,7 +2117,7 @@
 		<widget class="Custom" id="custom9">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">globe.png</property>
+		  <property name="string1">gnome-globe</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -2237,7 +2237,7 @@
 		    <widget class="Custom" id="custom13">
 		      <property name="visible">True</property>
 		      <property name="creation_function">e_create_image_widget</property>
-		      <property name="string1">im.png</property>
+		      <property name="string1">im</property>
 		      <property name="string2"></property>
 		      <property name="int1">0</property>
 		      <property name="int2">0</property>
@@ -2464,7 +2464,7 @@
 		    <widget class="Custom" id="custom12">
 		      <property name="visible">True</property>
 		      <property name="creation_function">e_create_image_widget</property>
-		      <property name="string1">globe.png</property>
+		      <property name="string1">gnome-globe</property>
 		      <property name="string2"></property>
 		      <property name="int1">0</property>
 		      <property name="int2">0</property>
@@ -2629,7 +2629,7 @@
 		    <widget class="Custom" id="custom16">
 		      <property name="visible">True</property>
 		      <property name="creation_function">e_create_image_widget</property>
-		      <property name="string1">videoconf.png</property>
+		      <property name="string1">stock_video-conferencing</property>
 		      <property name="string2"></property>
 		      <property name="int1">0</property>
 		      <property name="int2">0</property>
Index: addressbook/gui/contact-editor/e-contact-editor-address.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-editor/e-contact-editor-address.c,v
retrieving revision 1.29
diff -u -r1.29 e-contact-editor-address.c
--- addressbook/gui/contact-editor/e-contact-editor-address.c	6 Jan 2004 19:15:50 -0000	1.29
+++ addressbook/gui/contact-editor/e-contact-editor-address.c	12 Mar 2004 19:10:30 -0000
@@ -22,10 +22,10 @@
 #include <config.h>
 
 #include <e-contact-editor-address.h>
+#include <e-util/e-icon-factory.h>
 
 #include <glib.h>
 #include <libgnome/gnome-i18n.h>
-#include <libgnomeui/gnome-window-icon.h>
 #include <libgnome/gnome-util.h>
 #include <gal/widgets/e-gui-utils.h>
 #include <gtk/gtkcombo.h>
@@ -420,7 +420,7 @@
 {
 	GladeXML *gui;
 	GtkWidget *widget;
-	char *icon_path;
+	GList *icon_list;
 
 	gtk_dialog_add_buttons (GTK_DIALOG (e_contact_editor_address),
 				GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -447,9 +447,12 @@
 	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (e_contact_editor_address)->vbox), widget, TRUE, TRUE, 0);
 	g_object_unref(widget);
 
-	icon_path = g_concat_dir_and_file (EVOLUTION_IMAGESDIR, "evolution-contacts-mini.png");
-	gnome_window_icon_set_from_file (GTK_WINDOW (e_contact_editor_address), icon_path);
-	g_free (icon_path);
+	icon_list = e_icon_factory_get_icon_list ("stock_contact");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (e_contact_editor_address), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 }
 
 void
Index: addressbook/gui/contact-editor/e-contact-editor-fullname.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-editor/e-contact-editor-fullname.c,v
retrieving revision 1.26
diff -u -r1.26 e-contact-editor-fullname.c
--- addressbook/gui/contact-editor/e-contact-editor-fullname.c	27 Jan 2004 21:47:15 -0000	1.26
+++ addressbook/gui/contact-editor/e-contact-editor-fullname.c	12 Mar 2004 19:10:30 -0000
@@ -21,7 +21,7 @@
 
 #include <config.h>
 #include "e-contact-editor-fullname.h"
-#include <libgnomeui/gnome-window-icon.h>
+#include <e-util/e-icon-factory.h>
 #include <libgnome/gnome-util.h>
 #include <libgnome/gnome-i18n.h>
 #include <gtk/gtkcombo.h>
@@ -103,7 +103,7 @@
 {
 	GladeXML *gui;
 	GtkWidget *widget;
-	char *icon_path;
+	GList *icon_list;
 
 	gtk_dialog_add_buttons (GTK_DIALOG (e_contact_editor_fullname),
 				GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -126,9 +126,12 @@
 	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (e_contact_editor_fullname)->vbox), widget, TRUE, TRUE, 0);
 	g_object_unref(widget);
 
-	icon_path = g_concat_dir_and_file (EVOLUTION_IMAGESDIR, "evolution-contacts-mini.png");
-	gnome_window_icon_set_from_file (GTK_WINDOW (e_contact_editor_fullname), icon_path);
-	g_free (icon_path);
+	icon_list = e_icon_factory_get_icon_list ("stock_contact");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (e_contact_editor_fullname), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 }
 
 void
Index: addressbook/gui/contact-editor/e-contact-editor-im.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-editor/e-contact-editor-im.c,v
retrieving revision 1.5
diff -u -r1.5 e-contact-editor-im.c
--- addressbook/gui/contact-editor/e-contact-editor-im.c	9 Mar 2004 17:47:02 -0000	1.5
+++ addressbook/gui/contact-editor/e-contact-editor-im.c	12 Mar 2004 19:10:30 -0000
@@ -21,7 +21,6 @@
 
 #include <config.h>
 #include "e-contact-editor-im.h"
-#include <libgnomeui/gnome-window-icon.h>
 #include <libgnome/gnome-util.h>
 #include <libgnome/gnome-i18n.h>
 #include <gtk/gtkbox.h>
@@ -34,6 +33,7 @@
 #include <gtk/gtksizegroup.h>
 #include <gtk/gtkstock.h>
 #include <string.h>
+#include <e-util/e-icon-factory.h>
 
 static void e_contact_editor_im_init		(EContactEditorIm		 *card);
 static void e_contact_editor_im_class_init	(EContactEditorImClass	 *klass);
@@ -68,12 +68,12 @@
 };
 
 static const char *im_images[] = {
-	"im-aim.png",
-	"im-nov.png",
-	"im-jabber.png",
-	"im-yahoo.png",
-	"im-msn.png",
-	"im-icq.png"
+	"im-aim",
+	"im-nov",
+	"im-jabber",
+	"im-yahoo",
+	"im-msn",
+	"im-icq"
 };
 
 GType
@@ -176,9 +176,7 @@
 	GtkWidget *label;
 	GtkWidget *image;
 	GdkPixbuf *pixbuf;
-	GdkPixbuf *scale;
 	GtkSizeGroup *sg;
-	char *icon_path;
 	int i;
 
 	optmenu = glade_xml_get_widget(editor->gui, "optmenu-service");
@@ -198,16 +196,12 @@
 		gtk_container_add(GTK_CONTAINER(item), hbox);
 		gtk_widget_show(hbox);
 
-		icon_path = g_concat_dir_and_file(EVOLUTION_IMAGESDIR, im_images[i]);
-		pixbuf = gdk_pixbuf_new_from_file(icon_path, NULL);
-		g_free(icon_path);
+		pixbuf = e_icon_factory_get_icon(im_images[i], 16);
 
 		if (pixbuf != NULL) {
-			scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16, GDK_INTERP_BILINEAR);
-			image = gtk_image_new_from_pixbuf(scale);
+			image = gtk_image_new_from_pixbuf(pixbuf);
 
 			g_object_unref(G_OBJECT(pixbuf));
-			g_object_unref(G_OBJECT(scale));
 		}
 		else
 			image = gtk_image_new();
@@ -261,7 +255,7 @@
 {
 	GladeXML *gui;
 	GtkWidget *widget;
-	char *icon_path;
+	GList *icon_list;
 
 	gtk_dialog_add_buttons (GTK_DIALOG (e_contact_editor_im),
 				GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -295,9 +289,13 @@
 
 	gtk_widget_grab_focus(glade_xml_get_widget(gui, "entry-username"));
 
-	icon_path = g_concat_dir_and_file (EVOLUTION_IMAGESDIR, "evolution-contacts-mini.png");
-	gnome_window_icon_set_from_file (GTK_WINDOW (e_contact_editor_im), icon_path);
-	g_free (icon_path);
+	/* set the icon */
+	icon_list = e_icon_factory_get_icon_list ("stock_contact");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (e_contact_editor_im), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 }
 
 void
Index: addressbook/gui/contact-editor/e-contact-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-editor/e-contact-editor.c,v
retrieving revision 1.174
diff -u -r1.174 e-contact-editor.c
--- addressbook/gui/contact-editor/e-contact-editor.c	10 Mar 2004 22:33:34 -0000	1.174
+++ addressbook/gui/contact-editor/e-contact-editor.c	12 Mar 2004 19:10:32 -0000
@@ -34,7 +34,6 @@
 #include <gtk/gtkentry.h>
 #include <gtk/gtklabel.h>
 #include <libgnomeui/gnome-popup-menu.h>
-#include <libgnomeui/gnome-window-icon.h>
 #include <libgnome/gnome-util.h>
 #include <libgnome/gnome-i18n.h>
 
@@ -70,6 +69,8 @@
 #include "e-contact-editor-fullname.h"
 #include "e-contact-editor-marshal.h"
 
+#include <e-util/e-icon-factory.h>
+
 /* Signal IDs */
 enum {
 	CONTACT_ADDED,
@@ -1881,17 +1882,17 @@
 };
 
 EPixmap pixmaps[] = {
-	E_PIXMAP ("/commands/ContactEditorSave", "save-16.png"),
-	E_PIXMAP ("/commands/ContactEditorSaveClose", "save-16.png"),
-	E_PIXMAP ("/commands/ContactEditorSaveAs", "save-as-16.png"),
-	E_PIXMAP ("/commands/ContactEditorDelete", "evolution-trash-mini.png"),
-	E_PIXMAP ("/commands/ContactEditorPrint", "print.xpm"),
+	E_PIXMAP ("/commands/ContactEditorSave", "stock_save", 16),
+	E_PIXMAP ("/commands/ContactEditorSaveClose", "stock_save", 16),
+	E_PIXMAP ("/commands/ContactEditorSaveAs", "stock_save-as", 16),
+	E_PIXMAP ("/commands/ContactEditorDelete", "stock_delete", 16),
+	E_PIXMAP ("/commands/ContactEditorPrint", "stock_print", 16),
 #if 0 /* Envelope printing is disabled for Evolution 1.0. */
-	E_PIXMAP ("/commands/ContactEditorPrintEnvelope", "print.xpm"),
+	E_PIXMAP ("/commands/ContactEditorPrintEnvelope", "stock_print", 16),
 #endif
-	E_PIXMAP ("/Toolbar/ContactEditorSaveClose", "buttons/save-24.png"),
-	E_PIXMAP ("/Toolbar/ContactEditorDelete", "buttons/delete-message.png"),
-	E_PIXMAP ("/Toolbar/ContactEditorPrint", "buttons/print.png"),
+	E_PIXMAP ("/Toolbar/ContactEditorSaveClose", "stock_save", 24),
+	E_PIXMAP ("/Toolbar/ContactEditorDelete", "stock_delete", 24),
+	E_PIXMAP ("/Toolbar/ContactEditorPrint", "stock_print", 24),
 
 	E_PIXMAP_END
 };
@@ -1972,7 +1973,7 @@
 	GtkWidget *bonobo_win;
 	GtkWidget *wants_html;
 	BonoboUIContainer *container;
-	char *icon_path;
+	GList *icon_list;
 
 	e_contact_editor->email_info = NULL;
 	e_contact_editor->phone_info = NULL;
@@ -2105,9 +2106,12 @@
 			    GTK_SIGNAL_FUNC (app_delete_event_cb), e_contact_editor);
 
 	/* set the icon */
-	icon_path = g_build_filename (EVOLUTION_IMAGESDIR, "evolution-contacts-mini.png", NULL);
-	gnome_window_icon_set_from_file (GTK_WINDOW (e_contact_editor->app), icon_path);
-	g_free (icon_path);
+	icon_list = e_icon_factory_get_icon_list ("stock_contact");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (e_contact_editor->app), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 }
 
 void
@@ -2851,20 +2855,13 @@
 	GList *l;
 	GtkTreeIter iter;
 	GdkPixbuf *pixbuf;
-	GdkPixbuf *scale = NULL;
-	char *icon_path;
-	char *buf;
+	gchar *icon_name;
 
 	list = e_contact_get_attributes (editor->contact, field);
 
-	buf = g_strdup_printf("im-%s.png", service);
-	icon_path = g_concat_dir_and_file(EVOLUTION_IMAGESDIR, buf);
-	pixbuf = gdk_pixbuf_new_from_file(icon_path, NULL);
-	g_free(icon_path);
-	g_free(buf);
-
-	if (pixbuf != NULL)
-		scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16, GDK_INTERP_BILINEAR);
+	icon_name = g_strdup_printf ("im-%s", service);
+	pixbuf = e_icon_factory_get_icon (icon_name, 16);
+	g_free (icon_name);
 
 	for (l = list; l != NULL; l = l->next) {
 		EVCardAttribute *attr = l->data;
@@ -2892,7 +2889,7 @@
 		gtk_list_store_append(editor->im_model, &iter);
 
 		gtk_list_store_set(editor->im_model, &iter,
-				   COLUMN_IM_ICON, scale,
+				   COLUMN_IM_ICON, pixbuf,
 				   COLUMN_IM_SERVICE,  desc,
 				   COLUMN_IM_LOCATION, location,
 				   COLUMN_IM_LOCATION_TYPE, location_type,
@@ -2900,9 +2897,6 @@
 				   COLUMN_IM_SERVICE_FIELD, field,
 				   -1);
 	}
-
-	if (scale != NULL)
-		g_object_unref(G_OBJECT(scale));
 
 	if (pixbuf != NULL)
 		g_object_unref(G_OBJECT(pixbuf));
Index: addressbook/gui/contact-list-editor/contact-list-editor.glade
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-list-editor/contact-list-editor.glade,v
retrieving revision 1.10
diff -u -r1.10 contact-list-editor.glade
--- addressbook/gui/contact-list-editor/contact-list-editor.glade	30 Jan 2004 22:52:39 -0000	1.10
+++ addressbook/gui/contact-list-editor/contact-list-editor.glade	12 Mar 2004 19:10:32 -0000
@@ -81,7 +81,7 @@
 		<widget class="Custom" id="list-image">
 		  <property name="visible">True</property>
 		  <property name="creation_function">eab_create_image_chooser_widget</property>
-		  <property name="string1">evolution-contacts-plain.png</property>
+		  <property name="string1">stock_addressbook</property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
 		  <property name="last_modification_time">Sat, 23 Jun 2001 05:59:21 GMT</property>
Index: addressbook/gui/contact-list-editor/e-contact-list-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-list-editor/e-contact-list-editor.c,v
retrieving revision 1.49
diff -u -r1.49 e-contact-list-editor.c
--- addressbook/gui/contact-list-editor/e-contact-list-editor.c	18 Feb 2004 07:30:06 -0000	1.49
+++ addressbook/gui/contact-list-editor/e-contact-list-editor.c	12 Mar 2004 19:10:33 -0000
@@ -21,11 +21,11 @@
 #include <config.h>
 
 #include "e-contact-list-editor.h"
+#include <e-util/e-icon-factory.h>
 
 #include <string.h>
 #include <glib.h>
 #include <libgnome/gnome-i18n.h>
-#include <libgnomeui/gnome-window-icon.h>
 #include <bonobo/bonobo-ui-container.h>
 #include <bonobo/bonobo-ui-util.h>
 #include <bonobo/bonobo-window.h>
@@ -216,7 +216,7 @@
 	GladeXML *gui;
 	GtkWidget *bonobo_win;
 	BonoboUIContainer *container;
-	char *icon_path;
+	GList *icon_list;
 
 	editor->contact = NULL;
 	editor->changed = FALSE;
@@ -312,9 +312,12 @@
 			  G_CALLBACK (app_delete_event_cb), editor);
 
 	/* set the icon */
-	icon_path = g_build_filename (EVOLUTION_IMAGESDIR, "contact-list-16.png", NULL);
-	gnome_window_icon_set_from_file (GTK_WINDOW (editor->app), icon_path);
-	g_free (icon_path);
+	icon_list = e_icon_factory_get_icon_list ("stock_contact-list");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (editor->app), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 }
 
 static void
@@ -547,18 +550,18 @@
 };
 
 static EPixmap pixmaps[] = {
-	E_PIXMAP ("/commands/ContactListEditorSave", "save-16.png"),
-	E_PIXMAP ("/commands/ContactListEditorSaveClose", "save-16.png"),
-	E_PIXMAP ("/commands/ContactListEditorSaveAs", "save-as-16.png"),
+	E_PIXMAP ("/commands/ContactListEditorSave", "stock_save", 16),
+	E_PIXMAP ("/commands/ContactListEditorSaveClose", "stock_save", 16),
+	E_PIXMAP ("/commands/ContactListEditorSaveAs", "stock_save-as", 16),
 
-	E_PIXMAP ("/commands/ContactListEditorDelete", "evolution-trash-mini.png"),
+	E_PIXMAP ("/commands/ContactListEditorDelete", "stock_delete", 16),
 #if 0 /* Envelope printing is disabled for Evolution 1.0. */
-	E_PIXMAP ("/commands/ContactListEditorPrint", "print.xpm"),
-	E_PIXMAP ("/commands/ContactListEditorPrintEnvelope", "print.xpm"),
+	E_PIXMAP ("/commands/ContactListEditorPrint", "stock_print", 16),
+	E_PIXMAP ("/commands/ContactListEditorPrintEnvelope", "stock_print", 16),
 #endif
-	E_PIXMAP ("/Toolbar/ContactListEditorSaveClose", "buttons/save-24.png"),
-	E_PIXMAP ("/Toolbar/ContactListEditorDelete", "buttons/delete-message.png"),
-	E_PIXMAP ("/Toolbar/ContactListEditorPrint", "buttons/print.png"),
+	E_PIXMAP ("/Toolbar/ContactListEditorSaveClose", "stock_save", 24),
+	E_PIXMAP ("/Toolbar/ContactListEditorDelete", "stock_delete", 24),
+	E_PIXMAP ("/Toolbar/ContactListEditorPrint", "stock_print", 24),
 
 	E_PIXMAP_END
 };
Index: addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade,v
retrieving revision 1.2
diff -u -r1.2 eab-contact-commit-duplicate-detected.glade
--- addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade	21 Oct 2003 18:48:52 -0000	1.2
+++ addressbook/gui/merging/eab-contact-commit-duplicate-detected.glade	12 Mar 2004 19:10:33 -0000
@@ -182,7 +182,7 @@
 		<widget class="Custom" id="custom2">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">malehead.png</property>
+		  <property name="string1">stock_person</property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
 		  <property name="last_modification_time">Fri, 08 Jun 2001 00:18:39 GMT</property>
Index: addressbook/gui/merging/eab-contact-duplicate-detected.glade
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/merging/eab-contact-duplicate-detected.glade,v
retrieving revision 1.2
diff -u -r1.2 eab-contact-duplicate-detected.glade
--- addressbook/gui/merging/eab-contact-duplicate-detected.glade	21 Oct 2003 18:48:52 -0000	1.2
+++ addressbook/gui/merging/eab-contact-duplicate-detected.glade	12 Mar 2004 19:10:33 -0000
@@ -182,7 +182,7 @@
 		<widget class="Custom" id="custom2">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_widget</property>
-		  <property name="string1">malehead.png</property>
+		  <property name="string1">stock_person</property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
 		  <property name="last_modification_time">Fri, 08 Jun 2001 00:18:39 GMT</property>
Index: addressbook/gui/widgets/e-minicard.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/widgets/e-minicard.c,v
retrieving revision 1.110
diff -u -r1.110 e-minicard.c
--- addressbook/gui/widgets/e-minicard.c	14 Nov 2003 00:38:47 -0000	1.110
+++ addressbook/gui/widgets/e-minicard.c	12 Mar 2004 19:10:33 -0000
@@ -39,6 +39,7 @@
 #include "e-minicard-label.h"
 #include "e-minicard-view.h"
 #include "e-contact-editor.h"
+#include <e-util/e-icon-factory.h>
 #include "util/eab-destination.h"
 
 static void e_minicard_init		(EMinicard		 *card);
@@ -69,7 +70,7 @@
 
 #define d(x)
 
-#define LIST_ICON_FILENAME "contact-list-16.png"
+#define LIST_ICON_NAME "stock_contact-list"
 
 #define E_MINICARD_FIELD(field) ((EMinicardField *)(field))
 
@@ -241,7 +242,7 @@
 
 	minicard->contact          = NULL;
 
-	minicard->list_icon_pixbuf = gdk_pixbuf_new_from_file (EVOLUTION_IMAGESDIR "/" LIST_ICON_FILENAME, NULL);
+	minicard->list_icon_pixbuf = e_icon_factory_get_icon (LIST_ICON_NAME, 16);
 	minicard->list_icon_size   = gdk_pixbuf_get_height (minicard->list_icon_pixbuf);
 
 	minicard->editor           = NULL;
@@ -432,6 +433,9 @@
 	
 	if (e_minicard->contact)
 		g_object_unref (e_minicard->contact);
+	
+	if (e_minicard->list_icon_pixbuf)
+		g_object_unref (e_minicard->list_icon_pixbuf);
 
 	if (G_OBJECT_CLASS (parent_class)->finalize)
 		(* G_OBJECT_CLASS (parent_class)->finalize) (object);
Index: addressbook/gui/widgets/eab-contact-display.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/widgets/eab-contact-display.c,v
retrieving revision 1.6
diff -u -r1.6 eab-contact-display.c
--- addressbook/gui/widgets/eab-contact-display.c	11 Mar 2004 01:12:40 -0000	1.6
+++ addressbook/gui/widgets/eab-contact-display.c	12 Mar 2004 19:10:34 -0000
@@ -45,14 +45,14 @@
 
 #define HEADER_COLOR      "#7f7f7f"
 #define IMAGE_COL_WIDTH   "20"
-#define CONTACT_LIST_ICON "contact-list-16.png"
-#define AIM_ICON          "im-aim.png"
-#define GROUPWISE_ICON    "im-nov.png"
-#define ICQ_ICON          "im-icq.png"
-#define JABBER_ICON       "im-jabber.png"
-#define MSN_ICON          "im-msn.png"
-#define YAHOO_ICON        "im-yahoo.png"
-#define VIDEOCONF_ICON    "videoconf.png"
+#define CONTACT_LIST_ICON "stock_contact-list"
+#define AIM_ICON          "im-aim"
+#define GROUPWISE_ICON    "im-nov"
+#define ICQ_ICON          "im-icq"
+#define JABBER_ICON       "im-jabber"
+#define MSN_ICON          "im-msn"
+#define YAHOO_ICON        "im-yahoo"
+#define VIDEOCONF_ICON    "stock_video-conferencing"
 
 #define MAX_COMPACT_IMAGE_DIMENSION 48
 
@@ -74,20 +74,17 @@
 	else if (!strncmp (url, "evo-icon:", strlen ("evo-icon:"))) {
 		gchar *data;
 		gsize data_length;
-		char *filename;
+		gchar *filename;
 
-		/* make sure people can't embed ../../../../../../etc/passwd or something */
-		if (!strchr (url, '/')) {
-			filename = g_build_filename (EVOLUTION_IMAGESDIR, url + strlen ("evo-icon:"), NULL);
+		filename = e_icon_factory_get_icon_filename (url + strlen ("evo-icon:"), 16);
 
-			if (g_file_get_contents (filename, &data, &data_length, NULL))
-				gtk_html_stream_write (handle, data, data_length);
+		if (g_file_get_contents (filename, &data, &data_length, NULL))
+			gtk_html_stream_write (handle, data, data_length);
 
-			gtk_html_end (html, handle, GTK_HTML_STREAM_OK);
+		gtk_html_end (html, handle, GTK_HTML_STREAM_OK);
 
-			g_free (filename);
-			g_free (data);
-		}
+		g_free (filename);
+		g_free (data);
 	}
 }
 
Index: addressbook/gui/widgets/eab-gui-util.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/widgets/eab-gui-util.c,v
retrieving revision 1.8
diff -u -r1.8 eab-gui-util.c
--- addressbook/gui/widgets/eab-gui-util.c	11 Feb 2004 20:29:33 -0000	1.8
+++ addressbook/gui/widgets/eab-gui-util.c	12 Mar 2004 19:10:34 -0000
@@ -869,10 +869,7 @@
 	char *filename;
 	GtkWidget *w = NULL;
 	if (string1) {
-		if (*string1 == '/')
-			filename = g_strdup(string1);
-		else
-			filename = g_build_filename (EVOLUTION_IMAGESDIR, string1, NULL);
+		filename = e_icon_factory_get_icon_filename (string1, 48);
 
 		w = e_image_chooser_new ();
 		e_image_chooser_set_from_file (E_IMAGE_CHOOSER (w), filename);
Index: art/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/art/ChangeLog,v
retrieving revision 1.170
diff -u -r1.170 ChangeLog
--- art/ChangeLog	9 Mar 2004 11:11:09 -0000	1.170
+++ art/ChangeLog	12 Mar 2004 19:10:35 -0000
@@ -1,3 +1,8 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* Makefile.am: don't distribute built-in icons.  We now outsource
+	icons to gnome-icon-theme.  Part of GNOME bug #127812.
+
 2004-03-09  Jakub Steiner <jimmac ximian com>
 
 	* autocompletion.png:
Index: art/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution/art/Makefile.am,v
retrieving revision 1.116
diff -u -r1.116 Makefile.am
--- art/Makefile.am	9 Mar 2004 11:11:09 -0000	1.116
+++ art/Makefile.am	12 Mar 2004 19:10:35 -0000
@@ -1,303 +1,20 @@
 images_DATA = \
-	16_copy.png			\
-	16_customize.png		\
-	16_cut.png			\
-	16_paste.png			\
 	about-box.png			\
-	alarm.png			\
-	all_contacts.xpm		\
-	apply-filters-16.xpm		\
-	appointment-reminder.png	\
-	appointment-reminder-excl.png	\
-	autocompletion.png \
 	bcg.png				\
-	briefcase.png       		\
-	butterfly.png			\
-	calendar-and-tasks-settings.png \
-	cellphone.png       		\
-	compose-message.png		\
-	composer-settings.png		\
-	configure_16_addressbook.xpm	\
-	configure_16_calendar.xpm	\
-	configure_16_folder.xpm		\
-	configure_16_mail.xpm		\
-	connect_to_url-16.xpm		\
-	contact-is-a-list.png		\
-	contact-list-16.png		\
-	copy_16_message.xpm		\
-	edit.xpm			\
-	empty.gif			\
-	encrypt.xpm			\
-	envelope.png        		\
-	es-appointments.png		\
-	es-weather.png			\
-	evolution-calendar-mini.png 	\
-	evolution-calendar.png 		\
-	evolution-contacts-mini.png 	\
-	evolution-contacts-plain.png 	\
-	evolution-contacts.png 		\
-	evolution-inbox-mini.png 	\
-	evolution-inbox.png 		\
-	evolution-notes-mini.png 	\
-	evolution-notes.png 		\
-	evolution-tasks-mini.png 	\
-	evolution-tasks.png 		\
-	evolution-today-mini.png	\
-	evolution-today.png 		\
-	evolution-trash-mini.png 	\
-	evolution-trash.png 		\
-	evolution-junk.png		\
-	evolution-junk-mini.png		\
-	executive-summary-bg.png	\
-	executive-summary-curve.png	\
-	info-bulb.png			\
-	faq-16.png			\
-	fetch-mail.png			\
-	find_contact.xpm		\
-	find_message.xpm		\
-	flag-for-followup-16.png	\
-	flag-for-followup-done-16.png	\
-	folder-copy-16.png		\
-	folder-move-16.png		\
-	folder-settings.png		\
-	folder.png			\
-	folder-mini.png			\
-	folder.xpm			\
-	font.png			\
-	forward.xpm			\
-	globe.png           		\
-	goto-16.png			\
-	hide_deleted_messages.xpm	\
-	hide_read_messages.xpm		\
-	hide_selected_messages.xpm	\
-	house.png           		\
-	ico-calendar.png		\
-	ico-mail.png			\
-	ico-rdf.png			\
-	ico-weather.png			\
-	import.png			\
-	import.xpm			\
-	im.png \
-	im-activebuddy.png \
-	im-admin.png \
-	im-aim.png \
-	im-aol.png \
-	im-away.png \
-	im-dnd.png \
-	im-extendedaway.png \
-	im-freeforchat.png \
-	im-game.png \
-	im-hiptop.png \
-	im-icq.png \
-	im-invisible.png \
-	im-jabber.png \
-	im-login.png \
-	im-logout.png \
-	im-msn.png \
-	im-nov.png \
-	im-na.png \
-	im-notauthorized.png \
-	im-occupied.png \
-	im-offline.png \
-	im-secure.png \
-	im-wireless.png \
-	im-yahoo.png \
-	inbox.png			\
-	inbox-mini.png			\
-	ldap-mini.png			\
-	ldap-settings.png		\
-	ldap.png			\
-	mail.png			\
-	mail-accounts-settings.png	\
-	mail-config-druid-account-name.png \
-	mail-config-druid-identity.png	\
-	mail-config-druid-receive.png	\
-	mail-config-druid-send.png	\
-	mail-config-druid.png		\
-	mail-new.xpm			\
-	mail-read.xpm			\
-	malehead.png			\
-	mark-as-important-16.png	\
-	meeting-request.png		\
-	meeting-request-16.png 		\
-	monkey-16.png			\
-	move_message.xpm		\
-	myevo-appointments.png		\
-	myevo-mail-summary.png		\
-	myevo-post-it.png		\
-	myweather-clouds.png		\
-	myweather-fog.png		\
-	myweather-rain.png		\
-	myweather-snow.png		\
-	myweather-storm.png		\
-	myweather-sun.png		\
-	myweather-suncloud.png		\
-	new-message.xpm			\
-	new_all_day_event.png		\
-	new_appointment.xpm		\
-	new_contact.xpm			\
-	new_task-16.png			\
 	offline.png			\
 	online.png			\
-	open-in-new-window-16.png 	\
-	outbox.png			\
-	outbox-mini.png			\
-	pattern.png			\
-	pgp-signature-bad.png 		\
-	pgp-signature-nokey.png 	\
-	pgp-signature-ok.png 		\
-	post-message-16.png		\
-	post-reply-24.png		\
-	print-preview.xpm		\
-	print.xpm			\
-	priority-high.xpm		\
-	public-folder.png		\
-	public-folder-mini.png		\
-	rdf.png				\
-	reply.xpm			\
-	reply_to_all.xpm		\
-	save-16.png			\
-	save-as-16.png			\
-	save.xpm			\
-	schedule-meeting-16.xpm		\
-	schedule-meeting-24.png		\
-	search-16.png			\
-	search-and-replace-16.png	\
-	send-16.png                     \
-	send-later-16.png		\
-	send-receive.xpm		\
-	service-close.png		\
-	service-configure.png		\
-	service-down-disabled.png	\
-	service-down.png		\
-	service-left-disabled.png	\
-	service-left.png		\
-	service-right-disabled.png	\
-	service-right.png		\
-	service-up-disabled.png		\
-	service-up.png			\
-	settings.png			\
-	settings-16.png			\
-	show_all_messages.xpm		\
 	splash.png			\
-	stock-edit-16.png		\
-	stock-edit-24.png		\
-	stock-junk-16.png		\
-	stock-junk-24.png		\
-	stock-notjunk-16.png		\
-	stock-notjunk-24.png		\
-	summary-settings.png		\
-	summary_preferences-16.png	\
-	talking-heads.png		\
-	task.png			\
-	task.xpm			\
-	thankyou.png			\
-	timezone-16.xpm			\
-	timezone-48.png 		\
-	undelete_message-16.png		\
-	wax-seal-broken.png		\
-	wax-seal.png			\
-	work_offline.xpm		\
-	work_online-16.png		\
-	working-16.png			\
-	world_map-960.png		\
-	videoconf.png
-
-buttons_DATA = 				\
-	arrow-right-24.png		\
-	arrow-left-24.png		\
-	add-attachment.png		\
-	add-service.png			\
-	compose-message.png		\
-	copy-message.png		\
-	copy.png			\
-	cut.png				\
-	dayview.xpm			\
-	delete-message.png		\
-	fetch-mail.png			\
-	forward.png			\
-	goto-24.png  			\
-	listview.xpm			\
-	monthview.xpm  			\
-	move-message.png		\
-	next-message.png		\
-	new_appointment.png		\
-	new_task.png			\
-	paste.png			\
-	previous-message.png		\
-	print.png			\
-	print-preview-24.png		\
-	reply.png			\
-	reply-to-all.png		\
-	receive-24.png		\
-	save-24.png			\
-	send-24-receive.png		\
-	send-24.png		\
-	weekview.xpm  			\
-	workweekview.xpm		\
-	yearview.xpm
-
-glade_DATA = 					\
-	evolution.png				\
-	import.png				\
-	flag-for-followup-48.png		\
-	flag-for-followup-done-48.png		\
-	mail-config-druid-account-name.png	\
-	mail-config-druid-identity.png		\
-	mail-config-druid.png			\
-	mail-config-druid-receive.png		\
-	mail-config-druid-send.png		\
-	thankyou.png				\
-	timezone-48.png
+	world_map-960.png
 
 conduitsdir = $(imagesdir)/conduits
 conduits_DATA =				\
-	evo-16-address-conduit.png   	\
-	evo-16-todo-conduit.png     	\
-	evo-16-calendar-conduit.png  	\
 	evo-48-calendar-conduit.png	\
 	evo-48-address-conduit.png  	\
 	evo-48-todo-conduit.png
 
-install-data-local:
-	$(mkinstalldirs) $(DESTDIR)$(datadir)/pixmaps
-	$(INSTALL_DATA) $(srcdir)/evolution.png  $(DESTDIR)$(datadir)/pixmaps/evolution-$(BASE_VERSION).png
-if DEFAULT_BINARY
-	cd $(DESTDIR)$(datadir)/pixmaps && rm -f evolution.png && $(LN_S) evolution-$(BASE_VERSION).png evolution.png
-endif
-
 EXTRA_DIST = 				\
 	ChangeLog.pre-1-4		\
-	attachment.xpm			\
-	bell.xpm			\
-	check-filled.xpm		\
 	empty.xpm			\
-	evolution.png			\
 	jump.xpm			\
-	mail-need-reply.xpm		\
-	mail-new.xpm			\
-	mail-read.xpm			\
-	mail-replied.xpm		\
-	flag-for-followup.xpm		\
-	flag-for-followup-done.xpm	\
-	mark.xpm			\
-	priority-high.xpm		\
-	priority-low.xpm		\
-	recur.xpm			\
-	score-higher.xpm		\
-	score-highest.xpm		\
-	score-high.xpm			\
-	score-lower.xpm			\
-	score-lowest.xpm		\
-	score-low.xpm			\
-	score-normal.xpm		\
-	task-assigned-to.xpm		\
-	task-assigned.xpm		\
-	task-recurring.xpm		\
-	timezone-16.xpm			\
-	tree-expanded.xpm		\
-	tree-unexpanded.xpm		\
 	$(images_DATA)			\
-	$(buttons_DATA)			\
-	$(conduits_DATA)		\
-	$(glade_DATA)
+	$(conduits_DATA)
Index: calendar/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2186
diff -u -r1.2186 ChangeLog
--- calendar/ChangeLog	12 Mar 2004 09:23:37 -0000	1.2186
+++ calendar/ChangeLog	12 Mar 2004 19:10:38 -0000
@@ -1,3 +1,31 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* gui/GNOME_Evolution_Calendar.server.in.in: change
+	all references to built-in icon names to gnome-icon-theme icons.
+	Part of GNOME bug #127812.
+	* gui/calendar-commands.c: same.
+	* gui/calendar-component.c: same.
+	* gui/e-cal-view.c: same.
+	* gui/e-calendar-table.c: same.
+	* gui/e-day-view.c: same.
+	* gui/e-itip-control.c: same.
+	* gui/e-timezone-entry.c: same.
+	* gui/e-week-view.c: same.
+	* gui/tasks-component.c: same.
+	* gui/alarm-notify/alarm-notify-dialog.c: same.
+	* gui/alarm-notify/alarm-queue.c: same.
+	* gui/dialogs/comp-editor.c: same.
+	* gui/dialogs/event-editor.c: same.
+
+	* gui/e-day-view-main-item.c: use pixbufs instead of pixmaps.  Part
+	of GNOME bug #127812.
+	* gui/e-day-view-top-item.c: same.
+	* gui/e-day-view.c: same.
+	* gui/e-day-view.h: same.
+	* gui/e-week-view-event-item.c: same.
+	* gui/e-week-view.c: same.
+	* gui/e-week-view.h: same.
+
 2004-03-12  Not Zed  <NotZed Ximian com>
 
 	* gui/e-cal-model.c (ecm_initialize_value): return "" instead of
Index: calendar/gui/GNOME_Evolution_Calendar.server.in.in
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/GNOME_Evolution_Calendar.server.in.in,v
retrieving revision 1.11
diff -u -r1.11 GNOME_Evolution_Calendar.server.in.in
--- calendar/gui/GNOME_Evolution_Calendar.server.in.in	1 Dec 2003 22:14:20 -0000	1.11
+++ calendar/gui/GNOME_Evolution_Calendar.server.in.in	12 Mar 2004 19:10:39 -0000
@@ -44,7 +44,7 @@
 	<oaf_attribute name="name" type="string" _value="Evolution's Calendar component"/>
 
 	<oaf_attribute name="evolution:button_label" type="string" _value="Calendars"/>
-        <oaf_attribute name="evolution:button_icon" type="string" value="evolution-calendar.png"/>
+        <oaf_attribute name="evolution:button_icon" type="string" value="stock_calendar"/>
 	<oaf_attribute name="evolution:button_sort_order" type="string" value="-8"/>
 </oaf_server>
 
@@ -79,7 +79,7 @@
 	<oaf_attribute name="name" type="string" _value="Evolution's Tasks component"/>
 
 	<oaf_attribute name="evolution:button_label" type="string" _value="Tasks"/>
-        <oaf_attribute name="evolution:button_icon" type="string" value="evolution-tasks.png"/>
+        <oaf_attribute name="evolution:button_icon" type="string" value="stock_todo"/>
 	<oaf_attribute name="evolution:button_sort_order" type="string" value="-8"/>
 </oaf_server>
 
@@ -129,7 +129,7 @@
 		       _value="Configure your timezone, Calendar and Task List here "/>
 
 	<oaf_attribute name="evolution2:config_item:icon_name" type="string"
-		       value="evolution-calendar.png"/>
+		       value="stock_calendar-and-tasks"/>
 
 	<oaf_attribute name="evolution2:config_item:type" type="stringv">
 		<item value="calendar"/>
Index: calendar/gui/calendar-commands.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-commands.c,v
retrieving revision 1.145
diff -u -r1.145 calendar-commands.c
--- calendar/gui/calendar-commands.c	4 Mar 2004 16:46:27 -0000	1.145
+++ calendar/gui/calendar-commands.c	12 Mar 2004 19:10:39 -0000
@@ -710,11 +710,11 @@
 
 static EPixmap pixmaps [] =
 {
-	E_PIXMAP ("/Toolbar/DayView",	      "buttons/dayview.xpm"),
-	E_PIXMAP ("/Toolbar/WorkWeekView",    "buttons/workweekview.xpm"),
-	E_PIXMAP ("/Toolbar/WeekView",	      "buttons/weekview.xpm"),
-	E_PIXMAP ("/Toolbar/MonthView",	      "buttons/monthview.xpm"),
-	E_PIXMAP ("/Toolbar/ListView",	      "buttons/listview.xpm"),
+	E_PIXMAP ("/Toolbar/DayView",	      "stock_calendar-view-day",       24),
+	E_PIXMAP ("/Toolbar/WorkWeekView",    "stock_calendar-view-work-week", 24),
+	E_PIXMAP ("/Toolbar/WeekView",	      "stock_calendar-view-week",      24),
+	E_PIXMAP ("/Toolbar/MonthView",	      "stock_calendar-view-month",     24),
+	E_PIXMAP ("/Toolbar/ListView",	      "stock_calendar-view-list",      24),
 
 	E_PIXMAP_END
 };
Index: calendar/gui/calendar-component.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-component.c,v
retrieving revision 1.150
diff -u -r1.150 calendar-component.c
--- calendar/gui/calendar-component.c	2 Mar 2004 14:18:05 -0000	1.150
+++ calendar/gui/calendar-component.c	12 Mar 2004 19:10:39 -0000
@@ -48,6 +48,7 @@
 #include "dialogs/copy-source-dialog.h"
 #include "dialogs/event-editor.h"
 #include "widgets/misc/e-source-selector.h"
+#include <e-util/e-icon-factory.h>
 
 
 /* IDs for user creatable items */
@@ -244,19 +245,18 @@
 
 /* Callbacks.  */
 static void
-add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
+add_popup_menu_item (GtkMenu *menu, const char *label, const char *icon_name,
 		     GCallback callback, gpointer user_data, gboolean sensitive)
 {
 	GtkWidget *item, *image;
+	GdkPixbuf *pixbuf;
 
-	if (pixmap) {
+	if (icon_name) {
 		item = gtk_image_menu_item_new_with_label (label);
 
 		/* load the image */
-		if (g_file_test (pixmap, G_FILE_TEST_EXISTS))
-			image = gtk_image_new_from_file (pixmap);
-		else
-			image = gtk_image_new_from_stock (pixmap, GTK_ICON_SIZE_MENU);
+		pixbuf = e_icon_factory_get_icon (icon_name, 16);
+		image = gtk_image_new_from_pixbuf (pixbuf);
 
 		if (image) {
 			gtk_widget_show (image);
@@ -367,11 +367,11 @@
 	sensitive = e_source_selector_peek_primary_selection (E_SOURCE_SELECTOR (comp->priv->source_selector)) ?
 		TRUE : FALSE;
 
-	add_popup_menu_item (menu, _("New Calendar"), EVOLUTION_IMAGESDIR "/evolution-calendar-mini.png",
+	add_popup_menu_item (menu, _("New Calendar"), "stock_calendar",
 			     G_CALLBACK (new_calendar_cb), comp, TRUE);
-	add_popup_menu_item (menu, _("Copy"), EVOLUTION_IMAGESDIR "/folder-copy-16.png",
+	add_popup_menu_item (menu, _("Copy"), "stock_folder-copy",
 			     G_CALLBACK (copy_calendar_cb), comp, sensitive);
-	add_popup_menu_item (menu, _("Delete"), GTK_STOCK_DELETE, G_CALLBACK (delete_calendar_cb), comp, sensitive);
+	add_popup_menu_item (menu, _("Delete"), "stock_delete", G_CALLBACK (delete_calendar_cb), comp, sensitive);
 	add_popup_menu_item (menu, _("Properties..."), NULL, G_CALLBACK (edit_calendar_cb), comp, sensitive);
 }
 
@@ -844,28 +844,28 @@
 	list->_buffer[0].menuDescription = _("_Appointment");
 	list->_buffer[0].tooltip = _("Create a new appointment");
 	list->_buffer[0].menuShortcut = 'a';
-	list->_buffer[0].iconName = "new_appointment.xpm";
+	list->_buffer[0].iconName = "stock_new-appointment";
 
 	list->_buffer[1].id = CREATE_MEETING_ID;
 	list->_buffer[1].description = _("New meeting");
 	list->_buffer[1].menuDescription = _("M_eeting");
 	list->_buffer[1].tooltip = _("Create a new meeting request");
 	list->_buffer[1].menuShortcut = 'e';
-	list->_buffer[1].iconName = "meeting-request-16.png";
+	list->_buffer[1].iconName = "stock_new-meeting";
 
 	list->_buffer[2].id = CREATE_ALLDAY_EVENT_ID;
 	list->_buffer[2].description = _("New all day appointment");
 	list->_buffer[2].menuDescription = _("All _Day Appointment");
 	list->_buffer[2].tooltip = _("Create a new all-day appointment");
 	list->_buffer[2].menuShortcut = 'd';
-	list->_buffer[2].iconName = "new_all_day_event.png";
+	list->_buffer[2].iconName = "stock_new-24h-appointment";
 
 	list->_buffer[3].id = CREATE_CALENDAR_ID;
 	list->_buffer[3].description = _("New calendar");
 	list->_buffer[3].menuDescription = _("C_alendar");
 	list->_buffer[3].tooltip = _("Create a new calendar");
 	list->_buffer[3].menuShortcut = 'a';
-	list->_buffer[3].iconName = "evolution-calendar-mini.png";
+	list->_buffer[3].iconName = "stock_calendar";
 
 	return list;
 }
Index: calendar/gui/e-cal-view.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-cal-view.c,v
retrieving revision 1.35
diff -u -r1.35 e-cal-view.c
--- calendar/gui/e-cal-view.c	18 Feb 2004 06:47:16 -0000	1.35
+++ calendar/gui/e-cal-view.c	12 Mar 2004 19:10:40 -0000
@@ -52,9 +52,10 @@
 #include "print.h"
 #include "goto.h"
 #include "ea-calendar.h"
+#include <e-util/e-icon-factory.h>
 
 /* Used for the status bar messages */
-#define EVOLUTION_CALENDAR_PROGRESS_IMAGE "evolution-calendar-mini.png"
+#define EVOLUTION_CALENDAR_PROGRESS_IMAGE "stock_calendar"
 static GdkPixbuf *progress_icon = NULL;
 
 struct _ECalendarViewPrivate {
@@ -636,7 +637,7 @@
 		char *client_id = g_strdup_printf ("%p", cal_view);
 
 		if (progress_icon == NULL)
-			progress_icon = gdk_pixbuf_new_from_file (EVOLUTION_IMAGESDIR "/" EVOLUTION_CALENDAR_PROGRESS_IMAGE, NULL);
+			progress_icon = e_icon_factory_get_icon (EVOLUTION_CALENDAR_PROGRESS_IMAGE, 16);
 
 		cal_view->priv->activity_id = e_activity_handler_operation_started (activity_handler, client_id, progress_icon, message, TRUE);
 
@@ -1323,6 +1324,7 @@
 
 	for (i = 0; context_menu[i].name; i++) {
 		GtkWidget *pixmap_widget = NULL;
+		GdkPixbuf *pixbuf;
 
 		if (!strcmp (context_menu[i].name, _("_Copy")))
 			pixmap_widget = gtk_image_new_from_stock (GTK_STOCK_COPY, GTK_ICON_SIZE_MENU);
@@ -1336,14 +1338,26 @@
 			pixmap_widget = gtk_image_new_from_stock (GTK_STOCK_HOME, GTK_ICON_SIZE_MENU);
 		else if (!strcmp (context_menu[i].name, _("_Go to Date...")))
 			pixmap_widget = gtk_image_new_from_stock (GTK_STOCK_JUMP_TO, GTK_ICON_SIZE_MENU);
-		else if (!strcmp (context_menu[i].name, _("New _Appointment...")))
-			pixmap_widget = gtk_image_new_from_file (EVOLUTION_IMAGESDIR "/new_appointment.xpm");
-		else if (!strcmp (context_menu[i].name, _("New All Day _Event")))
-			pixmap_widget = gtk_image_new_from_file (EVOLUTION_IMAGESDIR "/new_all_day_event.png");
-		else if (!strcmp (context_menu[i].name, _("New Meeting")))
-			pixmap_widget = gtk_image_new_from_file (EVOLUTION_IMAGESDIR "/meeting-request-16.png");
-		else if (!strcmp (context_menu[i].name, _("New Task")))
-			pixmap_widget = gtk_image_new_from_file (EVOLUTION_IMAGESDIR "/new_task-16.png");
+		else if (!strcmp (context_menu[i].name, _("New _Appointment..."))) {
+			pixbuf = e_icon_factory_get_icon ("stock_new-appointment", 16);
+			pixmap_widget = gtk_image_new_from_pixbuf (pixbuf);
+			gdk_pixbuf_unref (pixbuf);
+		}
+		else if (!strcmp (context_menu[i].name, _("New All Day _Event"))) {
+			pixbuf = e_icon_factory_get_icon ("stock_new-24h-appointment", 16);
+			pixmap_widget = gtk_image_new_from_pixbuf (pixbuf);
+			gdk_pixbuf_unref (pixbuf);
+		}
+		else if (!strcmp (context_menu[i].name, _("New Meeting"))) {
+			pixbuf = e_icon_factory_get_icon ("stock_new-meeting", 16);
+			pixmap_widget = gtk_image_new_from_pixbuf (pixbuf);
+			gdk_pixbuf_unref (pixbuf);
+		}
+		else if (!strcmp (context_menu[i].name, _("New Task"))) {
+			pixbuf = e_icon_factory_get_icon ("stock_task", 16);
+			pixmap_widget = gtk_image_new_from_pixbuf (pixbuf);
+			gdk_pixbuf_unref (pixbuf);
+		}
 		else if (!strcmp (context_menu[i].name, _("_Open")))
 			pixmap_widget = gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
 		else if (!strcmp (context_menu[i].name, _("_Paste")))
Index: calendar/gui/e-calendar-table.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-calendar-table.c,v
retrieving revision 1.113
diff -u -r1.113 e-calendar-table.c
--- calendar/gui/e-calendar-table.c	5 Mar 2004 11:42:20 -0000	1.113
+++ calendar/gui/e-calendar-table.c	12 Mar 2004 19:10:41 -0000
@@ -51,14 +51,7 @@
 #include "e-cell-date-edit-text.h"
 #include "e-comp-editor-registry.h"
 #include "print.h"
-
-/* Pixmaps. */
-#include "art/task.xpm"
-#include "art/task-recurring.xpm"
-#include "art/task-assigned.xpm"
-#include "art/task-assigned-to.xpm"
-
-#include "art/check-filled.xpm"
+#include <e-util/e-icon-factory.h>
 
 extern ECompEditorRegistry *comp_editor_registry;
 
@@ -114,8 +107,8 @@
 
 /* The icons to represent the task. */
 #define E_CALENDAR_MODEL_NUM_ICONS	4
-static char** icon_xpm_data[E_CALENDAR_MODEL_NUM_ICONS] = {
-	task_xpm, task_recurring_xpm, task_assigned_xpm, task_assigned_to_xpm
+static const char* icon_names[E_CALENDAR_MODEL_NUM_ICONS] = {
+	"stock_task", "stock_task-recurring", "stock_task-assigned", "stock_task-assigned-to"
 };
 static GdkPixbuf* icon_pixbufs[E_CALENDAR_MODEL_NUM_ICONS] = { 0 };
 
@@ -487,15 +480,14 @@
 
 	if (!icon_pixbufs[0])
 		for (i = 0; i < E_CALENDAR_MODEL_NUM_ICONS; i++) {
-			icon_pixbufs[i] = gdk_pixbuf_new_from_xpm_data (
-				(const char **) icon_xpm_data[i]);
+			icon_pixbufs[i] = e_icon_factory_get_icon (icon_names[i], 16);
 		}
 
 	cell = e_cell_toggle_new (0, E_CALENDAR_MODEL_NUM_ICONS, icon_pixbufs);
 	e_table_extras_add_cell(extras, "icon", cell);
 	e_table_extras_add_pixbuf(extras, "icon", icon_pixbufs[0]);
 
-	pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) check_filled_xpm);
+	pixbuf = e_icon_factory_get_icon ("stock_check-filled", 16);
 	e_table_extras_add_pixbuf(extras, "complete", pixbuf);
 	gdk_pixbuf_unref(pixbuf);
 
@@ -1371,7 +1363,7 @@
 #endif
 
 /* Displays messages on the status bar */
-#define EVOLUTION_TASKS_PROGRESS_IMAGE "evolution-tasks-mini.png"
+#define EVOLUTION_TASKS_PROGRESS_IMAGE "stock_todo"
 static GdkPixbuf *progress_icon = NULL;
 
 void
@@ -1388,9 +1380,9 @@
 		}
         } else if (cal_table->activity_id == 0) {
                 char *client_id = g_strdup_printf ("%p", cal_table);
-                                                                                
+                                 
                 if (progress_icon == NULL)
-                        progress_icon = gdk_pixbuf_new_from_file (EVOLUTION_IMAGESDIR "/" EVOLUTION_TASKS_PROGRESS_IMAGE, NULL);
+                        progress_icon = e_icon_factory_get_icon (EVOLUTION_TASKS_PROGRESS_IMAGE, 16);
 
                 cal_table->activity_id = e_activity_handler_operation_started (activity_handler, client_id,
 									       progress_icon, message, TRUE);
Index: calendar/gui/e-day-view-main-item.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-day-view-main-item.c,v
retrieving revision 1.36
diff -u -r1.36 e-day-view-main-item.c
--- calendar/gui/e-day-view-main-item.c	7 Nov 2003 05:51:59 -0000	1.36
+++ calendar/gui/e-day-view-main-item.c	12 Mar 2004 19:10:41 -0000
@@ -644,15 +644,16 @@
 			max_icon_h = item_y + item_h - icon_y
 				- E_DAY_VIEW_EVENT_BORDER_HEIGHT;
 
-			gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-			gdk_gc_set_clip_mask (gc, day_view->reminder_mask);
-			gdk_draw_pixmap (drawable, gc,
+			gdk_gc_set_clip_mask (gc, NULL);
+			gdk_draw_pixbuf (drawable, gc,
 					 day_view->reminder_icon,
 					 0, 0, icon_x, icon_y,
 					 MIN (E_DAY_VIEW_ICON_WIDTH,
 					      max_icon_w),
 					 MIN (E_DAY_VIEW_ICON_HEIGHT,
-					      max_icon_h));
+					      max_icon_h),
+					 GDK_RGB_DITHER_NORMAL,
+					 0, 0);
 			icon_x += icon_x_inc;
 			icon_y += icon_y_inc;
 		}
@@ -663,16 +664,16 @@
 			max_icon_h = item_y + item_h - icon_y
 				- E_DAY_VIEW_EVENT_BORDER_HEIGHT;
 
-			gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-			gdk_gc_set_clip_mask (gc, day_view->recurrence_mask);
-			gdk_draw_pixmap (drawable, gc,
+			gdk_gc_set_clip_mask (gc, NULL);
+			gdk_draw_pixbuf (drawable, gc,
 					 day_view->recurrence_icon,
 					 0, 0, icon_x, icon_y,
 					 MIN (E_DAY_VIEW_ICON_WIDTH,
 					      max_icon_w),
 					 MIN (E_DAY_VIEW_ICON_HEIGHT,
-					      max_icon_h));
-
+					      max_icon_h),
+					 GDK_RGB_DITHER_NORMAL,
+					 0, 0);
 			icon_x += icon_x_inc;
 			icon_y += icon_y_inc;
 		}
@@ -683,15 +684,16 @@
 			max_icon_h = item_y + item_h - icon_y
 				- E_DAY_VIEW_EVENT_BORDER_HEIGHT;
 
-			gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-			gdk_gc_set_clip_mask (gc, day_view->timezone_mask);
-			gdk_draw_pixmap (drawable, gc,
+			gdk_gc_set_clip_mask (gc, NULL);
+			gdk_draw_pixbuf (drawable, gc,
 					 day_view->timezone_icon,
 					 0, 0, icon_x, icon_y,
 					 MIN (E_DAY_VIEW_ICON_WIDTH,
 					      max_icon_w),
 					 MIN (E_DAY_VIEW_ICON_HEIGHT,
-					      max_icon_h));
+					      max_icon_h),
+					 GDK_RGB_DITHER_NORMAL,
+					 0, 0);
 			icon_x += icon_x_inc;
 			icon_y += icon_y_inc;
 		}
@@ -703,15 +705,16 @@
 			max_icon_h = item_y + item_h - icon_y
 				- E_DAY_VIEW_EVENT_BORDER_HEIGHT;
 
-			gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-			gdk_gc_set_clip_mask (gc, day_view->meeting_mask);
-			gdk_draw_pixmap (drawable, gc,
+			gdk_gc_set_clip_mask (gc, NULL);
+			gdk_draw_pixbuf (drawable, gc,
 					 day_view->meeting_icon,
 					 0, 0, icon_x, icon_y,
 					 MIN (E_DAY_VIEW_ICON_WIDTH,
 					      max_icon_w),
 					 MIN (E_DAY_VIEW_ICON_HEIGHT,
-					      max_icon_h));
+					      max_icon_h),
+					 GDK_RGB_DITHER_NORMAL,
+					 0, 0);
 			icon_x += icon_x_inc;
 			icon_y += icon_y_inc;
 		}
Index: calendar/gui/e-day-view-top-item.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-day-view-top-item.c,v
retrieving revision 1.39
diff -u -r1.39 e-day-view-top-item.c
--- calendar/gui/e-day-view-top-item.c	7 Nov 2003 05:51:59 -0000	1.39
+++ calendar/gui/e-day-view-top-item.c	12 Mar 2004 19:10:42 -0000
@@ -528,24 +528,26 @@
 		+ E_DAY_VIEW_ICON_Y_PAD - y;
 
 	if (icon_x <= max_icon_x && e_cal_component_has_recurrences (comp)) {
-		gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-		gdk_gc_set_clip_mask (gc, day_view->recurrence_mask);
-		gdk_draw_pixmap (drawable, gc,
+		gdk_gc_set_clip_mask (gc, NULL);
+		gdk_draw_pixbuf (drawable, gc,
 				 day_view->recurrence_icon,
 				 0, 0, icon_x, icon_y,
 				 E_DAY_VIEW_ICON_WIDTH,
-				 E_DAY_VIEW_ICON_HEIGHT);
+				 E_DAY_VIEW_ICON_HEIGHT,
+				 GDK_RGB_DITHER_NORMAL,
+				 0, 0);
 		icon_x -= icon_x_inc;
 	}
 
 	if (icon_x <= max_icon_x && e_cal_component_has_alarms (comp)) {
-		gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-		gdk_gc_set_clip_mask (gc, day_view->reminder_mask);
-		gdk_draw_pixmap (drawable, gc,
+		gdk_gc_set_clip_mask (gc, NULL);
+		gdk_draw_pixbuf (drawable, gc,
 				 day_view->reminder_icon,
 				 0, 0, icon_x, icon_y,
 				 E_DAY_VIEW_ICON_WIDTH,
-				 E_DAY_VIEW_ICON_HEIGHT);
+				 E_DAY_VIEW_ICON_HEIGHT,
+				 GDK_RGB_DITHER_NORMAL,
+				 0, 0);
 		icon_x -= icon_x_inc;
 	}
 
Index: calendar/gui/e-day-view.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-day-view.c,v
retrieving revision 1.237
diff -u -r1.237 e-day-view.c
--- calendar/gui/e-day-view.c	12 Mar 2004 05:49:35 -0000	1.237
+++ calendar/gui/e-day-view.c	12 Mar 2004 19:10:46 -0000
@@ -73,12 +73,7 @@
 #include "e-day-view-layout.h"
 #include "e-day-view-main-item.h"
 #include "misc.h"
-
-/* Images */
-#include "art/bell.xpm"
-#include "art/recur.xpm"
-#include "art/timezone-16.xpm"
-#include "art/schedule-meeting-16.xpm"
+#include <e-util/e-icon-factory.h>
 
 /* The minimum amount of space wanted on each side of the date string. */
 #define E_DAY_VIEW_DATE_X_PAD	4
@@ -999,13 +994,13 @@
 	if (nfailed)
 		g_warning ("Failed to allocate all colors");
 
+	gdk_gc_set_colormap (day_view->main_gc, colormap);
 
 	/* Create the pixmaps. */
-	day_view->reminder_icon = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &day_view->reminder_mask, NULL, bell_xpm);
-	day_view->recurrence_icon = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &day_view->recurrence_mask, NULL, recur_xpm);
-	day_view->timezone_icon = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &day_view->timezone_mask, NULL, timezone_16_xpm);
-	day_view->meeting_icon = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &day_view->meeting_mask, NULL, schedule_meeting_16_xpm);
-
+	day_view->reminder_icon = e_icon_factory_get_icon ("stock_bell", E_DAY_VIEW_ICON_WIDTH);
+	day_view->recurrence_icon = e_icon_factory_get_icon ("stock_refresh", E_DAY_VIEW_ICON_WIDTH);
+	day_view->timezone_icon = e_icon_factory_get_icon ("stock_timezone", E_DAY_VIEW_ICON_WIDTH);
+	day_view->meeting_icon = e_icon_factory_get_icon ("stock_people", E_DAY_VIEW_ICON_WIDTH);
 
 
 	/* Set the canvas item colors. */
@@ -1067,10 +1062,14 @@
 	colormap = gtk_widget_get_colormap (widget);
 	gdk_colormap_free_colors (colormap, day_view->colors, E_DAY_VIEW_COLOR_LAST);
 
-	gdk_pixmap_unref (day_view->reminder_icon);
+	g_object_unref (day_view->reminder_icon);
 	day_view->reminder_icon = NULL;
-	gdk_pixmap_unref (day_view->recurrence_icon);
+	g_object_unref (day_view->recurrence_icon);
 	day_view->recurrence_icon = NULL;
+	g_object_unref (day_view->timezone_icon);
+	day_view->timezone_icon = NULL;
+	g_object_unref (day_view->meeting_icon);
+	day_view->meeting_icon = NULL;
 
 	if (GTK_WIDGET_CLASS (parent_class)->unrealize)
 		(*GTK_WIDGET_CLASS (parent_class)->unrealize)(widget);
Index: calendar/gui/e-day-view.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-day-view.h,v
retrieving revision 1.59
diff -u -r1.59 e-day-view.h
--- calendar/gui/e-day-view.h	27 Feb 2004 15:56:27 -0000	1.59
+++ calendar/gui/e-day-view.h	12 Mar 2004 19:10:46 -0000
@@ -324,14 +324,10 @@
 	GdkGC *main_gc;
 
 	/* The icons. */
-	GdkPixmap *reminder_icon;
-	GdkBitmap *reminder_mask;
-	GdkPixmap *recurrence_icon;
-	GdkBitmap *recurrence_mask;
-	GdkPixmap *timezone_icon;
-	GdkBitmap *timezone_mask;
-	GdkPixmap *meeting_icon;
-	GdkBitmap *meeting_mask;
+	GdkPixbuf *reminder_icon;
+	GdkPixbuf *recurrence_icon;
+	GdkPixbuf *timezone_icon;
+	GdkPixbuf *meeting_icon;
 
 	/* Colors for drawing. */
 	GdkColor colors[E_DAY_VIEW_COLOR_LAST];
Index: calendar/gui/e-itip-control.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-itip-control.c,v
retrieving revision 1.140
diff -u -r1.140 e-itip-control.c
--- calendar/gui/e-itip-control.c	6 Feb 2004 03:03:42 -0000	1.140
+++ calendar/gui/e-itip-control.c	12 Mar 2004 19:10:47 -0000
@@ -55,6 +55,7 @@
 #include "itip-utils.h"
 #include "e-itip-control.h"
 #include "common/authentication.h"
+#include <e-util/e-icon-factory.h>
 
 struct _EItipControlPrivate {
 	GtkWidget *html;
@@ -776,6 +777,7 @@
 {
 	EItipControlPrivate *priv;
 	GtkHTMLStream *html_stream;
+	gchar *filename;
 
 	priv = itip->priv;
 
@@ -793,7 +795,9 @@
 	/* The column for the image */
 	gtk_html_stream_printf (html_stream, "<tr><td width=48 align=\"center\" valign=\"top\" rowspan=\"8\">");
 	/* The image */
-	gtk_html_stream_printf (html_stream, "<img src=\"/meeting-request.png\"></td>");
+	filename = e_icon_factory_get_icon_filename ("stock_new-meeting", 48);
+	gtk_html_stream_printf (html_stream, "<img src=\"%s\"></td>", filename);
+	g_free (filename);
 
 	gtk_html_stream_printf (html_stream, "<td align=\"left\" valign=\"top\">");
 
@@ -826,6 +830,7 @@
 	const char *string;
 	gchar *html;
 	const gchar *const_html;
+	gchar *filename;
 
 	priv = itip->priv;
 
@@ -849,8 +854,9 @@
 	gtk_html_write (GTK_HTML (priv->html), html_stream, const_html, strlen(const_html));
 
 	/* The image */
-	const_html = "<img src=\"/meeting-request.png\"></td>";
-	gtk_html_write (GTK_HTML (priv->html), html_stream, const_html, strlen(const_html));
+	filename = e_icon_factory_get_icon_filename ("stock_new-meeting", 48);
+	gtk_html_stream_printf (html_stream, "<img src=\"%s\"></td>", filename);
+	g_free (filename);
 
 	const_html = "<td align=\"left\" valign=\"top\">";
 	gtk_html_write (GTK_HTML (priv->html), html_stream, const_html, strlen(const_html));
@@ -2005,13 +2011,10 @@
 url_requested_cb (GtkHTML *html, const gchar *url, GtkHTMLStream *handle, gpointer data)
 {	unsigned char buffer[4096];
 	int len, fd;
-        char *path;
-
-	path = g_strdup_printf ("%s/%s", EVOLUTION_IMAGESDIR, url);
 
-	if ((fd = open (path, O_RDONLY)) == -1) {
+	if ((fd = open (url, O_RDONLY)) == -1) {
 		g_warning ("%s", g_strerror (errno));
-		goto cleanup;
+		return;
 	}
 
        	while ((len = read (fd, buffer, 4096)) > 0) {
@@ -2022,14 +2025,11 @@
 		/* check to see if we stopped because of an error */
 		gtk_html_end (html, handle, GTK_HTML_STREAM_ERROR);
 		g_warning ("%s", g_strerror (errno));
-		goto cleanup;
+		return;
 	}
 	/* done with no errors */
 	gtk_html_end (html, handle, GTK_HTML_STREAM_OK);
 	close (fd);
-
- cleanup:
-	g_free (path);
 }
 
 static gboolean
Index: calendar/gui/e-timezone-entry.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-timezone-entry.c,v
retrieving revision 1.23
diff -u -r1.23 e-timezone-entry.c
--- calendar/gui/e-timezone-entry.c	10 Jan 2004 20:19:07 -0000	1.23
+++ calendar/gui/e-timezone-entry.c	12 Mar 2004 19:10:47 -0000
@@ -37,9 +37,7 @@
 #include <gal/util/e-util.h>
 #include <widgets/e-timezone-dialog/e-timezone-dialog.h>
 #include "e-timezone-entry.h"
-
-/* The timezone icon for the button. */
-#include "art/timezone-16.xpm"
+#include <e-util/e-icon-factory.h>
 
 struct _ETimezoneEntryPrivate {
 	/* The current timezone, set in e_timezone_entry_set_timezone()
@@ -115,10 +113,8 @@
 e_timezone_entry_init		(ETimezoneEntry	*tentry)
 {
 	ETimezoneEntryPrivate *priv;
-	GdkColormap *colormap;
-	GdkPixmap *timezone_icon;
-	GdkBitmap *timezone_mask;
-	GtkWidget *pixmap;
+	GtkWidget *gtk_image;
+	GdkPixbuf *gdk_pixbuf;
 
 	tentry->priv = priv = g_new0 (ETimezoneEntryPrivate, 1);
 
@@ -137,12 +133,12 @@
 	gtk_box_pack_start (GTK_BOX (tentry), priv->button, FALSE, FALSE, 6);
 	gtk_widget_show (priv->button);
 
-	colormap = gtk_widget_get_colormap (priv->button);
-	timezone_icon = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &timezone_mask, NULL, timezone_16_xpm);
-
-	pixmap = gtk_pixmap_new (timezone_icon, timezone_mask);
-	gtk_container_add (GTK_CONTAINER (priv->button), pixmap);
-	gtk_widget_show (pixmap);
+	gdk_pixbuf = e_icon_factory_get_icon ("stock_timezone", 16);
+	gtk_image = gtk_image_new_from_pixbuf (gdk_pixbuf);
+	gtk_container_add (GTK_CONTAINER (priv->button), gtk_image);
+	gtk_widget_show (gtk_image);
+	
+	g_object_unref (gdk_pixbuf);
 }
 
 
Index: calendar/gui/e-week-view-event-item.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-week-view-event-item.c,v
retrieving revision 1.45
diff -u -r1.45 e-week-view-event-item.c
--- calendar/gui/e-week-view-event-item.c	7 Nov 2003 05:51:59 -0000	1.45
+++ calendar/gui/e-week-view-event-item.c	12 Mar 2004 19:10:47 -0000
@@ -642,35 +642,38 @@
 		icon_x -= icon_x_inc * num_icons;
 
 	if (draw_reminder_icon && icon_x + E_WEEK_VIEW_ICON_WIDTH <= x2) {
-		gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-		gdk_gc_set_clip_mask (gc, week_view->reminder_mask);
-		gdk_draw_pixmap (drawable, gc,
+		gdk_gc_set_clip_mask (gc, NULL);
+		gdk_draw_pixbuf (drawable, gc,
 				 week_view->reminder_icon,
 				 0, 0, icon_x, icon_y,
 				 E_WEEK_VIEW_ICON_WIDTH,
-				 E_WEEK_VIEW_ICON_HEIGHT);
+				 E_WEEK_VIEW_ICON_HEIGHT,
+				 GDK_RGB_DITHER_NORMAL,
+				 0, 0);
 		icon_x += icon_x_inc;
 	}
 
 	if (draw_recurrence_icon && icon_x + E_WEEK_VIEW_ICON_WIDTH <= x2) {
-		gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-		gdk_gc_set_clip_mask (gc, week_view->recurrence_mask);
-		gdk_draw_pixmap (drawable, gc,
+		gdk_gc_set_clip_mask (gc, NULL);
+		gdk_draw_pixbuf (drawable, gc,
 				 week_view->recurrence_icon,
 				 0, 0, icon_x, icon_y,
 				 E_WEEK_VIEW_ICON_WIDTH,
-				 E_WEEK_VIEW_ICON_HEIGHT);
+				 E_WEEK_VIEW_ICON_HEIGHT,
+				 GDK_RGB_DITHER_NORMAL,
+				 0, 0);
 		icon_x += icon_x_inc;
 	}
 
 	if (draw_timezone_icon && icon_x + E_WEEK_VIEW_ICON_WIDTH <= x2) {
-		gdk_gc_set_clip_origin (gc, icon_x, icon_y);
-		gdk_gc_set_clip_mask (gc, week_view->timezone_mask);
-		gdk_draw_pixmap (drawable, gc,
+		gdk_gc_set_clip_mask (gc, NULL);
+		gdk_draw_pixbuf (drawable, gc,
 				 week_view->timezone_icon,
 				 0, 0, icon_x, icon_y,
 				 E_WEEK_VIEW_ICON_WIDTH,
-				 E_WEEK_VIEW_ICON_HEIGHT);
+				 E_WEEK_VIEW_ICON_HEIGHT,
+				 GDK_RGB_DITHER_NORMAL,
+				 0, 0);
 		icon_x += icon_x_inc;
 	}
 
Index: calendar/gui/e-week-view.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-week-view.c,v
retrieving revision 1.198
diff -u -r1.198 e-week-view.c
--- calendar/gui/e-week-view.c	15 Jan 2004 13:46:47 -0000	1.198
+++ calendar/gui/e-week-view.c	12 Mar 2004 19:10:51 -0000
@@ -68,11 +68,9 @@
 #include "e-week-view-main-item.h"
 #include "e-week-view-titles-item.h"
 #include "misc.h"
+#include <e-util/e-icon-factory.h>
 
 /* Images */
-#include "art/bell.xpm"
-#include "art/recur.xpm"
-#include "art/timezone-16.xpm"
 #include "art/jump.xpm"
 
 #define E_WEEK_VIEW_SMALL_FONT_PTSIZE 7
@@ -89,7 +87,6 @@
    we get from the server. */
 #define E_WEEK_VIEW_LAYOUT_TIMEOUT	100
 
-
 typedef struct {
 	EWeekView *week_view;
 	ECalModelComponent *comp_data;
@@ -554,11 +551,12 @@
 	if (nfailed)
 		g_warning ("Failed to allocate all colors");
 
+	gdk_gc_set_colormap (week_view->main_gc, colormap);
 
 	/* Create the pixmaps. */
-	week_view->reminder_icon = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &week_view->reminder_mask, NULL, bell_xpm);
-	week_view->recurrence_icon = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &week_view->recurrence_mask, NULL, recur_xpm);
-	week_view->timezone_icon = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &week_view->timezone_mask, NULL, timezone_16_xpm);
+	week_view->reminder_icon = e_icon_factory_get_icon ("stock_bell", E_WEEK_VIEW_ICON_WIDTH);
+	week_view->recurrence_icon = e_icon_factory_get_icon ("stock_refresh", E_WEEK_VIEW_ICON_WIDTH);
+	week_view->timezone_icon = e_icon_factory_get_icon ("stock_timezone", E_WEEK_VIEW_ICON_WIDTH);
 }
 
 
@@ -576,10 +574,12 @@
 	colormap = gtk_widget_get_colormap (widget);
 	gdk_colormap_free_colors (colormap, week_view->colors, E_WEEK_VIEW_COLOR_LAST);
 
-	gdk_pixmap_unref (week_view->reminder_icon);
+	g_object_unref (week_view->reminder_icon);
 	week_view->reminder_icon = NULL;
-	gdk_pixmap_unref (week_view->recurrence_icon);
+	g_object_unref (week_view->recurrence_icon);
 	week_view->recurrence_icon = NULL;
+	g_object_unref (week_view->timezone_icon);
+	week_view->timezone_icon = NULL;
 
 	if (GTK_WIDGET_CLASS (parent_class)->unrealize)
 		(*GTK_WIDGET_CLASS (parent_class)->unrealize)(widget);
Index: calendar/gui/e-week-view.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-week-view.h,v
retrieving revision 1.51
diff -u -r1.51 e-week-view.h
--- calendar/gui/e-week-view.h	9 Jan 2004 07:48:31 -0000	1.51
+++ calendar/gui/e-week-view.h	12 Mar 2004 19:10:51 -0000
@@ -278,12 +278,9 @@
 	GdkGC *main_gc;
 
 	/* The icons. */
-	GdkPixmap *reminder_icon;
-	GdkBitmap *reminder_mask;
-	GdkPixmap *recurrence_icon;
-	GdkBitmap *recurrence_mask;
-	GdkPixmap *timezone_icon;
-	GdkBitmap *timezone_mask;
+	GdkPixbuf *reminder_icon;
+	GdkPixbuf *recurrence_icon;
+	GdkPixbuf *timezone_icon;
 
 	/* Colors for drawing. */
 	GdkColor colors[E_WEEK_VIEW_COLOR_LAST];
Index: calendar/gui/tasks-component.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/tasks-component.c,v
retrieving revision 1.57
diff -u -r1.57 tasks-component.c
--- calendar/gui/tasks-component.c	11 Feb 2004 15:56:54 -0000	1.57
+++ calendar/gui/tasks-component.c	12 Mar 2004 19:10:52 -0000
@@ -45,6 +45,7 @@
 #include "dialogs/copy-source-dialog.h"
 #include "dialogs/task-editor.h"
 #include "widgets/misc/e-source-selector.h"
+#include <e-util/e-icon-factory.h>
 
 
 #define CREATE_TASK_ID      "task"
@@ -233,19 +234,18 @@
 
 /* Callbacks.  */
 static void
-add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
+add_popup_menu_item (GtkMenu *menu, const char *label, const char *icon_name,
 		     GCallback callback, gpointer user_data, gboolean sensitive)
 {
 	GtkWidget *item, *image;
+	GdkPixbuf *pixbuf;
 
-	if (pixmap) {
+	if (icon_name) {
 		item = gtk_image_menu_item_new_with_label (label);
 
 		/* load the image */
-		if (g_file_test (pixmap, G_FILE_TEST_EXISTS))
-			image = gtk_image_new_from_file (pixmap);
-		else
-			image = gtk_image_new_from_stock (pixmap, GTK_ICON_SIZE_MENU);
+		pixbuf = e_icon_factory_get_icon (icon_name, 16);
+		image = gtk_image_new_from_pixbuf (pixbuf);
 
 		if (image) {
 			gtk_widget_show (image);
@@ -358,11 +358,11 @@
 	sensitive = e_source_selector_peek_primary_selection (E_SOURCE_SELECTOR (component->priv->source_selector)) ?
 		TRUE : FALSE;
 
-	add_popup_menu_item (menu, _("New Task List"), EVOLUTION_IMAGESDIR "/evolution-tasks-mini.png",
+	add_popup_menu_item (menu, _("New Task List"), "stock_todo",
 			     G_CALLBACK (new_task_list_cb), component, TRUE);
-	add_popup_menu_item (menu, _("Copy"), EVOLUTION_IMAGESDIR "/folder-copy-16.png",
+	add_popup_menu_item (menu, _("Copy"), "stock_folder-copy",
 			     G_CALLBACK (copy_task_list_cb), component, sensitive);
-	add_popup_menu_item (menu, _("Delete"), GTK_STOCK_DELETE, G_CALLBACK (delete_task_list_cb),
+	add_popup_menu_item (menu, _("Delete"), "stock_delete", G_CALLBACK (delete_task_list_cb),
 			     component, sensitive);
 	add_popup_menu_item (menu, _("Properties..."), NULL, G_CALLBACK (edit_task_list_cb),
 			     component, sensitive);
@@ -559,14 +559,14 @@
 	list->_buffer[0].menuDescription = _("_Task");
 	list->_buffer[0].tooltip = _("Create a new task");
 	list->_buffer[0].menuShortcut = 't';
-	list->_buffer[0].iconName = "new_task-16.png";
+	list->_buffer[0].iconName = "stock_task";
 
 	list->_buffer[1].id = CREATE_TASK_LIST_ID;
 	list->_buffer[1].description = _("New task list");
 	list->_buffer[1].menuDescription = _("_Task List");
 	list->_buffer[1].tooltip = _("Create a new task list");
 	list->_buffer[1].menuShortcut = 'n';
-	list->_buffer[1].iconName = "evolution-tasks-mini.png";
+	list->_buffer[1].iconName = "stock_todo";
 
 	return list;
 }
Index: calendar/gui/alarm-notify/alarm-notify-dialog.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-notify-dialog.c,v
retrieving revision 1.26
diff -u -r1.26 alarm-notify-dialog.c
--- calendar/gui/alarm-notify/alarm-notify-dialog.c	4 Mar 2004 12:09:14 -0000	1.26
+++ calendar/gui/alarm-notify/alarm-notify-dialog.c	12 Mar 2004 19:10:52 -0000
@@ -31,7 +31,6 @@
 #if 0 
 #  include <libgnomeui/gnome-winhints.h>
 #endif
-#include <libgnomeui/gnome-window-icon.h>
 #include <glade/glade.h>
 #include <e-util/e-time-utils.h>
 #include <gtkhtml/gtkhtml.h>
@@ -40,6 +39,7 @@
 #include "alarm-notify-dialog.h"
 #include "config-data.h"
 #include "util.h"
+#include <e-util/e-icon-factory.h>
 
 
 GtkWidget *make_html_display (gchar *widget_name, char *s1, char *s2, int scroll, int shadow);
@@ -223,9 +223,14 @@
 	char *buf;
 	char *start, *end;
 	char *bg_path = "file://" EVOLUTION_IMAGESDIR "/bcg.png";
-	char *image_path = "file://" EVOLUTION_IMAGESDIR "/alarm.png";
+	gchar *image_path;
+	gchar *icon_path;
 	icaltimezone *current_zone;
 
+	icon_path = e_icon_factory_get_icon_filename ("stock_alarm", 48);
+	image_path = g_strdup_printf ("file://%s", icon_path);
+	g_free (icon_path);
+
 	/* Stringize the times */
 
 	current_zone = config_data_get_timezone ();
@@ -273,6 +278,7 @@
 
 	g_free (start);
 	g_free (end);
+	g_free (image_path);
 }
 
 /**
@@ -299,6 +305,7 @@
 	GtkHTMLStream *stream;
 	icaltimezone *current_zone;
 	char *buf, *title;
+	GList *icon_list;
 
 	g_return_val_if_fail (trigger != -1, NULL);
 
@@ -377,7 +384,12 @@
 	if (!GTK_WIDGET_REALIZED (an->dialog))
 		gtk_widget_realize (an->dialog);
 
-	gtk_window_set_icon_from_file (GTK_WINDOW (an->dialog), EVOLUTION_IMAGESDIR "/alarm.png", NULL);
+	icon_list = e_icon_factory_get_icon_list ("stock_alarm");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (an->dialog), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 
 	gtk_widget_show (an->dialog);
 	return an;
Index: calendar/gui/alarm-notify/alarm-queue.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-queue.c,v
retrieving revision 1.59
diff -u -r1.59 alarm-queue.c
--- calendar/gui/alarm-notify/alarm-queue.c	4 Mar 2004 11:38:58 -0000	1.59
+++ calendar/gui/alarm-notify/alarm-queue.c	12 Mar 2004 19:10:52 -0000
@@ -42,6 +42,7 @@
 #include <libgnomeui/gnome-dialog-util.h>
 #include <libgnomeui/gnome-uidefs.h>
 #include <e-util/eggtrayicon.h>
+#include <e-util/e-icon-factory.h>
 #include <libecal/e-cal-time-util.h>
 #include "evolution-calendar.h"
 #include "alarm.h"
@@ -919,14 +920,15 @@
 tray_icon_blink_cb (gpointer data)
 {
 	TrayIconData *tray_data = data;
-
-	/* FIXME: Use stock image equivalents when they become available */
+	GdkPixbuf *pixbuf;
 
 	tray_data->blink_state = tray_data->blink_state == TRUE ? FALSE : TRUE;
-	gtk_image_set_from_file (GTK_IMAGE (tray_data->image),
-				 tray_data->blink_state == TRUE ?
-				 EVOLUTION_IMAGESDIR "/appointment-reminder-excl.png" :
-				 EVOLUTION_IMAGESDIR "/appointment-reminder.png");
+	pixbuf = e_icon_factory_get_icon  (tray_data->blink_state == TRUE ?
+				 	   "stock_appointment-reminder-excl" :
+				 	   "stock_appointment-reminder",
+					   24);
+	gtk_image_set_from_pixbuf (GTK_IMAGE (tray_data->image), pixbuf);
+	gdk_pixbuf_unref (pixbuf);
 
 	return TRUE;
 }
@@ -947,6 +949,7 @@
 	ECalComponentText text;
 	char *str, *start_str, *end_str, *alarm_str;
 	icaltimezone *current_zone;
+	GdkPixbuf *pixbuf;
 
 	comp = cqa->alarms->comp;
 	qa = lookup_queued_alarm (cqa, alarm_id);
@@ -977,7 +980,9 @@
 
 	/* FIXME: Use stock image equivalent when it becomes available */
 	tray_icon = egg_tray_icon_new (qa->instance->auid);
-	image = gtk_image_new_from_file (EVOLUTION_IMAGESDIR "/appointment-reminder.png");
+	pixbuf = e_icon_factory_get_icon  ("stock_appointment-reminder", 24);
+	image = gtk_image_new_from_pixbuf (pixbuf);
+	gdk_pixbuf_unref (pixbuf);
 	ebox = gtk_event_box_new ();
 
 	gtk_widget_show (image);
Index: calendar/gui/dialogs/comp-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/comp-editor.c,v
retrieving revision 1.94
diff -u -r1.94 comp-editor.c
--- calendar/gui/dialogs/comp-editor.c	4 Mar 2004 15:49:36 -0000	1.94
+++ calendar/gui/dialogs/comp-editor.c	12 Mar 2004 19:10:53 -0000
@@ -33,11 +33,11 @@
 #include <libgnomeui/gnome-uidefs.h>
 #include <libgnomeui/gnome-dialog.h>
 #include <libgnomeui/gnome-dialog-util.h>
-#include <libgnomeui/gnome-window-icon.h>
 #include <libgnomeui/gnome-messagebox.h>
 #include <bonobo/bonobo-ui-container.h>
 #include <bonobo/bonobo-ui-util.h>
 #include <e-util/e-dialog-utils.h>
+#include <e-util/e-icon-factory.h>
 #include <evolution-shell-component-utils.h>
 #include "../print.h"
 #include "../comp-util.h"
@@ -124,18 +124,18 @@
 
 static EPixmap pixmaps [] =
 {
-	E_PIXMAP ("/menu/File/FileSave",			"save-16.png"),
-	E_PIXMAP ("/menu/File/FileSaveAndClose",		"save-16.png"),
-	E_PIXMAP ("/menu/File/FileSaveAs",			"save-as-16.png"),
-
-	E_PIXMAP ("/menu/File/FileDelete",			"evolution-trash-mini.png"),
-
-	E_PIXMAP ("/menu/File/FilePrint",			"print.xpm"),
-	E_PIXMAP ("/menu/File/FilePrintPreview",		"print-preview.xpm"),
-
-	E_PIXMAP ("/Toolbar/FileSaveAndClose",		        "buttons/save-24.png"),
-	E_PIXMAP ("/Toolbar/FilePrint",			        "buttons/print.png"),
-	E_PIXMAP ("/Toolbar/FileDelete",			"buttons/delete-message.png"),
+	E_PIXMAP ("/menu/File/FileSave",			"stock_save",          16),
+	E_PIXMAP ("/menu/File/FileSaveAndClose",		"stock_save",          16),
+	E_PIXMAP ("/menu/File/FileSaveAs",			"stock_save-as",       16),
+
+	E_PIXMAP ("/menu/File/FileDelete",			"stock_delete",        16),
+
+	E_PIXMAP ("/menu/File/FilePrint",			"stock_print",         16),
+	E_PIXMAP ("/menu/File/FilePrintPreview",		"stock_print-preview", 16),
+
+	E_PIXMAP ("/Toolbar/FileSaveAndClose",		        "stock_save",          24),
+	E_PIXMAP ("/Toolbar/FilePrint",			        "stock_print",         24),
+	E_PIXMAP ("/Toolbar/FileDelete",			"stock_delete",        24),
 
 	E_PIXMAP_END
 };
@@ -944,18 +944,18 @@
 	ECalComponentVType type;
 
 	if (!comp)
-		return EVOLUTION_IMAGESDIR "/evolution-calendar-mini.png";
+		return "stock_calendar";
 
 	type = e_cal_component_get_vtype (comp);
 	switch (type) {
 	case E_CAL_COMPONENT_EVENT:
-		return EVOLUTION_IMAGESDIR "/buttons/new_appointment.png";
+		return "stock_new-appointment";
 		break;
 	case E_CAL_COMPONENT_TODO:
-		return EVOLUTION_IMAGESDIR "/buttons/new_task.png";
+		return "stock_new-task";
 		break;
 	default:
-		return EVOLUTION_IMAGESDIR "/evolution-calendar-mini.png";
+		return "stock_calendar";
 	}
 }
 
@@ -988,11 +988,18 @@
 set_icon_from_comp (CompEditor *editor)
 {
 	CompEditorPrivate *priv;
-	const char *file;
+	const char *icon_name;
+	GList *icon_list;
 
 	priv = editor->priv;
-	file = make_icon_from_comp (priv->comp);
-	gnome_window_icon_set_from_file (GTK_WINDOW (editor), file);
+	icon_name = make_icon_from_comp (priv->comp);
+
+	icon_list = e_icon_factory_get_icon_list (icon_name);
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (editor), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 }
 
 static void
Index: calendar/gui/dialogs/event-editor.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/event-editor.c,v
retrieving revision 1.39
diff -u -r1.39 event-editor.c
--- calendar/gui/dialogs/event-editor.c	20 Nov 2003 15:11:40 -0000	1.39
+++ calendar/gui/dialogs/event-editor.c	12 Mar 2004 19:10:54 -0000
@@ -69,7 +69,7 @@
 static void model_row_delete_cb (GtkTreeModel *model, GtkTreePath *path, gpointer data);
 
 static EPixmap pixmaps [] = {
-	E_PIXMAP ("/Toolbar/Actions/ActionScheduleMeeting", "schedule-meeting-24.png"),
+	E_PIXMAP ("/Toolbar/Actions/ActionScheduleMeeting", "stock_people", 24),
 	E_PIXMAP_END
 };
 
Index: composer/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/composer/ChangeLog,v
retrieving revision 1.610
diff -u -r1.610 ChangeLog
--- composer/ChangeLog	7 Mar 2004 15:00:51 -0000	1.610
+++ composer/ChangeLog	12 Mar 2004 19:10:55 -0000
@@ -1,3 +1,10 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* e-msg-composer-select-file.c: change all references to 
+	built-in icon names to gnome-icon-theme icons.  Part of 
+	GNOME bug #127812.
+	* e-msg-composer.c: same.
+
 2004-03-07  Jeffrey Stedfast  <fejj ximian com>
 
 	* e-msg-composer.c (do_exit): If the subject is empty, use
Index: composer/e-msg-composer-select-file.c
===================================================================
RCS file: /cvs/gnome/evolution/composer/e-msg-composer-select-file.c,v
retrieving revision 1.26
diff -u -r1.26 e-msg-composer-select-file.c
--- composer/e-msg-composer-select-file.c	6 Oct 2003 16:56:52 -0000	1.26
+++ composer/e-msg-composer-select-file.c	12 Mar 2004 19:10:55 -0000
@@ -34,9 +34,9 @@
 #include <gtk/gtksignal.h>
 
 #include <libgnomeui/gnome-uidefs.h>
-#include <libgnomeui/gnome-window-icon.h>
 
 #include "e-msg-composer-select-file.h"
+#include <e-util/e-icon-factory.h>
 
 static GtkFileSelection *
 run_selector(EMsgComposer *composer, const char *title, int multi, gboolean *showinline_p)
@@ -44,12 +44,20 @@
 	GtkFileSelection *selection;
 	GtkWidget *showinline = NULL;
 	char *path;
+	GList *icon_list;
 
 	selection = (GtkFileSelection *)gtk_file_selection_new(title);
 	gtk_window_set_transient_for((GtkWindow *)selection, (GtkWindow *)composer);
 	gtk_window_set_wmclass((GtkWindow *)selection, "fileselection", "Evolution:composer");
 	gtk_window_set_modal((GtkWindow *)selection, TRUE);
-	gnome_window_icon_set_from_file((GtkWindow *)selection, EVOLUTION_DATADIR "/images/evolution/compose-message.png");
+	
+	icon_list = e_icon_factory_get_icon_list ("stock_mail-compose");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (selection), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
+	
 	gtk_file_selection_set_select_multiple((GtkFileSelection *)selection, multi);
 
 	/* restore last path used */
Index: composer/e-msg-composer.c
===================================================================
RCS file: /cvs/gnome/evolution/composer/e-msg-composer.c,v
retrieving revision 1.442
diff -u -r1.442 e-msg-composer.c
--- composer/e-msg-composer.c	7 Mar 2004 15:00:51 -0000	1.442
+++ composer/e-msg-composer.c	12 Mar 2004 19:10:58 -0000
@@ -104,8 +104,7 @@
 #include "e-msg-composer-select-file.h"
 
 #include "evolution-shell-component-utils.h"
-
-#include "art/attachment.xpm"
+#include <e-util/e-icon-factory.h>
 
 #include "Editor.h"
 #include "listener.h"
@@ -1969,13 +1968,13 @@
 };
 
 static EPixmap pixcache [] = {
-	E_PIXMAP ("/Toolbar/FileAttach", "buttons/add-attachment.png"),
-	E_PIXMAP ("/Toolbar/FileSend", "buttons/send-24.png"),
+	E_PIXMAP ("/Toolbar/FileAttach", "stock_attach", 24),
+	E_PIXMAP ("/Toolbar/FileSend", "stock_mail-send", 24),
 	
-/*	E_PIXMAP ("/menu/Insert/FileAttach", "buttons/add-attachment.png"), */
-	E_PIXMAP ("/commands/FileSend", "send-16.png"),
-	E_PIXMAP ("/commands/FileSave", "save-16.png"),
-	E_PIXMAP ("/commands/FileSaveAs", "save-as-16.png"),
+/*	E_PIXMAP ("/menu/Insert/FileAttach", "stock_attach", 24), */
+	E_PIXMAP ("/commands/FileSend", "stock_mail-send", 16),
+	E_PIXMAP ("/commands/FileSave", "stock_save", 16),
+	E_PIXMAP ("/commands/FileSaveAs", "stock_save-as", 16),
 	
 	E_PIXMAP_END
 };
@@ -3047,6 +3046,7 @@
 	CORBA_Environment ev;
 	GConfClient *gconf;
 	int vis;
+	GList *icon_list;
 	BonoboControlFrame *control_frame;
 	GdkPixbuf *attachment_pixbuf;
 	
@@ -3062,8 +3062,12 @@
 			  G_CALLBACK (msg_composer_destroy_notify),
 			  NULL);
 
-	gnome_window_icon_set_from_file (GTK_WINDOW (composer), EVOLUTION_IMAGESDIR
-					 "/compose-message.png");
+	icon_list = e_icon_factory_get_icon_list ("stock_mail-compose");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (composer), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 
 	/* DND support */
 	gtk_drag_dest_set (GTK_WIDGET (composer), GTK_DEST_DEFAULT_ALL,
@@ -3175,7 +3179,7 @@
 	gtk_misc_set_alignment (GTK_MISC (composer->attachment_expander_num), 1.0, 0.5);
 	expander_hbox = gtk_hbox_new (FALSE, 0);
 
-	attachment_pixbuf = gdk_pixbuf_new_from_xpm_data (attachment_xpm);
+	attachment_pixbuf = e_icon_factory_get_icon ("stock_attach", 16);
 	composer->attachment_expander_icon = gtk_image_new_from_pixbuf (attachment_pixbuf);
 	gtk_misc_set_alignment (GTK_MISC (composer->attachment_expander_icon), 1, 0.5);
 	gtk_widget_set_size_request (composer->attachment_expander_icon, 100, -1);
Index: data/evolution.desktop.in.in
===================================================================
RCS file: /cvs/gnome/evolution/data/evolution.desktop.in.in,v
retrieving revision 1.3
diff -u -r1.3 evolution.desktop.in.in
--- data/evolution.desktop.in.in	9 Feb 2004 14:46:12 -0000	1.3
+++ data/evolution.desktop.in.in	12 Mar 2004 19:10:58 -0000
@@ -2,7 +2,7 @@
 _Name=Ximian Evolution (Unstable)
 _Comment=The Ximian Evolution Groupware Suite
 Exec=evolution- BASE_VERSION@
-Icon=evolution- BASE_VERSION@.png
+Icon=evolution
 Terminal=false
 Type=Application
 Categories=GNOME;Application;Office;X-Red-Hat-Base;
Index: e-util/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/e-util/ChangeLog,v
retrieving revision 1.441
diff -u -r1.441 ChangeLog
--- e-util/ChangeLog	9 Mar 2004 21:10:41 -0000	1.441
+++ e-util/ChangeLog	12 Mar 2004 19:10:59 -0000
@@ -1,3 +1,12 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* e-icon-factory.c: (a) outsources the job of loading icons to
+	gnome-icon-theme.  Part of GNOME bug #127812.
+	* e-icon-factory.h: (a) same.
+	* Makefile.am: add e-icon-factory.{c,h}.  Part of GNOME bug #127812.
+	* e-gui-utils.c (e_create_image_widget): use e-icon-factory instead
+	of built-in icons.  Part of GNOME bug #127812.
+
 2004-03-04  William Jon McCann  <mccann jhu edu>
 
 	* e-dialog-utils.c (e_notice, e_notice_with_xid, save_ok): 
Index: e-util/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution/e-util/Makefile.am,v
retrieving revision 1.111
diff -u -r1.111 Makefile.am
--- e-util/Makefile.am	23 Jan 2004 21:03:07 -0000	1.111
+++ e-util/Makefile.am	12 Mar 2004 19:10:59 -0000
@@ -27,6 +27,7 @@
 	e-gui-utils.h				\
 	e-host-utils.h				\
 	e-html-utils.h				\
+	e-icon-factory.h			\
 	e-iterator.h				\
 	e-lang-utils.h				\
 	e-list-iterator.h			\
@@ -63,6 +64,7 @@
 	e-gui-utils.c				\
 	e-host-utils.c				\
 	e-html-utils.c				\
+	e-icon-factory.c			\
 	e-iterator.c				\
 	e-lang-utils.c				\
 	e-list-iterator.c			\
@@ -116,4 +118,4 @@
 CLEANFILES    = $(BUILT_SOURCES)
 
 dist-hook:
-	cd $(distdir); rm -f $(BUILT_SOURCES)
\ No newline at end of file
+	cd $(distdir); rm -f $(BUILT_SOURCES)
Index: e-util/e-gui-utils.c
===================================================================
RCS file: /cvs/gnome/evolution/e-util/e-gui-utils.c,v
retrieving revision 1.18
diff -u -r1.18 e-gui-utils.c
--- e-util/e-gui-utils.c	25 Feb 2004 21:15:45 -0000	1.18
+++ e-util/e-gui-utils.c	12 Mar 2004 19:10:59 -0000
@@ -14,6 +14,7 @@
 #include <string.h>
 
 #include "e-gui-utils.h"
+#include <e-util/e-icon-factory.h>
 
 #include <glib.h>
 #include <gtk/gtkalignment.h>
@@ -27,25 +28,23 @@
 
 #ifdef HAVE_LIBGNOMEUI_GNOME_ICON_LOOKUP_H
 #include <libgnomeui/gnome-icon-lookup.h>
-#else
-#include "art/empty.xpm"
 #endif
 
 GtkWidget *e_create_image_widget(gchar *name,
 				 gchar *string1, gchar *string2,
 				 gint int1, gint int2)
 {
-	char *filename;
 	GtkWidget *alignment = NULL;
 	if (string1) {
 		GtkWidget *w;
+		GdkPixbuf *pixbuf;
+
+		pixbuf = e_icon_factory_get_icon (string1, 48);
 
-		if (*string1 == '/')
-			filename = g_strdup(string1);
-		else
-			filename = g_build_filename (EVOLUTION_IMAGES, string1, NULL);
+		w = gtk_image_new_from_pixbuf (pixbuf);
+		g_object_unref (pixbuf);
 
-		w = gtk_image_new_from_file (filename);
+		gtk_misc_set_alignment (GTK_MISC (w), 0.5, 0.5);
 
 		alignment = gtk_widget_new(gtk_alignment_get_type(),
 					   "child", w,
@@ -56,7 +55,6 @@
 					   NULL);
 
 		gtk_widget_show_all (alignment);
-		g_free (filename);
 	}
 
 	return alignment;
@@ -159,7 +157,7 @@
 						      "document-icons/i-regular.png", TRUE, NULL);
 		if (!icon_path) {
 			g_warning ("Could not get any icon for %s!",mime_type);
-			return gdk_pixbuf_new_from_xpm_data((const char **)empty_xpm);
+			return e_icon_factory_get_icon (NULL, size_hint);
 		}
 	}
 #endif
Index: mail/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/mail/ChangeLog,v
retrieving revision 1.3161
diff -u -r1.3161 ChangeLog
--- mail/ChangeLog	11 Mar 2004 20:29:54 -0000	1.3161
+++ mail/ChangeLog	12 Mar 2004 19:11:02 -0000
@@ -1,3 +1,39 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* GNOME_Evolution_Mail.server.in.in: change all references to 
+	built-in icon names to gnome-icon-theme icons.  Part of GNOME bug
+	#127812.
+	* em-account-prefs.c: same.
+	* em-composer-prefs.c: same.
+	* em-folder-browser.c: same.
+	* em-folder-tree.c: same.
+	* em-folder-view.c: same.
+	* em-format-html-display.c: same.
+	* em-format-html.c: same.
+	* em-popup.c: same.
+	* local-config.glade: same.
+	* mail-component.c: same.
+	* mail-config-druid.c: same.
+	* mail-mt.c: same.
+	* mail-send-recv.c: same.
+	* message-list.c: same.
+	* message-tag-followup.c: same.
+	* message-tags.glade: same.
+
+	* local-config.glade: use e_create_image_widget instead of hardcoded
+	widgets.  Part of GNOME bug #127812.
+	* message-tags.glade: same.
+
+	* em-account-prefs.c: use pixbuf instead of pixmap.  Part of GNOME
+	bug #127812.
+	* em-account-prefs.h: same.
+	* em-composer-prefs.c: same.
+	* em-composer-prefs.h: same.
+
+	* em-format-html.c (em_format_html_file_part): only take one filename
+	param instead of a dir and base combo.  Part of GNOME bug #127812.
+	# em-format-html.h: same.
+
 2004-03-11  Jeffrey Stedfast  <fejj ximian com>
 
 	* em-folder-browser.c (emfb_set_folder): Reverted signal blocking
Index: mail/GNOME_Evolution_Mail.server.in.in
===================================================================
RCS file: /cvs/gnome/evolution/mail/GNOME_Evolution_Mail.server.in.in,v
retrieving revision 1.18
diff -u -r1.18 GNOME_Evolution_Mail.server.in.in
--- mail/GNOME_Evolution_Mail.server.in.in	12 Jan 2004 16:51:55 -0000	1.18
+++ mail/GNOME_Evolution_Mail.server.in.in	12 Mar 2004 19:11:02 -0000
@@ -31,9 +31,9 @@
 
     <oaf_attribute name="evolution:button_label" type="string" _value="Mail"/>
     <oaf_attribute name="evolution:button_sort_order" type="string" value="-10"/>
-    <oaf_attribute name="evolution:button_icon" type="string" value="evolution-inbox.png"/>
+    <oaf_attribute name="evolution:button_icon" type="string" value="stock_mail"/>
 
-    <oaf_attribute name="evolution:component_icon" type="string" value="evolution-inbox.png"/>
+    <oaf_attribute name="evolution:component_icon" type="string" value="stock_mail"/>
     <oaf_attribute name="evolution:component_display_order" type="number" value="1"/>
 
     <oaf_attribute name="evolution:uri_schemas" type="stringv">
@@ -55,7 +55,7 @@
 		   _value="Evolution Mail component"/>
 
     <oaf_attribute name="evolution:shell_component_icon" type="string"
-		   value="evolution-inbox.png"/>
+		   value="stock_mail"/>
     <oaf_attribute name="evolution:shell_component_launch_order" type="number"
 		   value="1"/>
   </oaf_server>
@@ -124,7 +124,7 @@
 		   _value="Configure your email accounts here"/>
 
     <oaf_attribute name="evolution2:config_item:icon_name" type="string"
-		   value="mail-accounts-settings.png"/>
+		   value="stock_people"/>
 
     <oaf_attribute name="evolution2:config_item:type" type="stringv">
 	<item value="mail"/>
@@ -153,7 +153,7 @@
 		   _value="Configure mail preferences, including security and message display, here"/>
 
     <oaf_attribute name="evolution2:config_item:icon_name" type="string"
-		   value="mail-config-druid.png"/>
+		   value="stock_mail"/>
     
     <oaf_attribute name="evolution2:config_item:priority" type="string" value="-9"/>
     
@@ -178,7 +178,7 @@
 		   _value="Configure spell-checking, signatures, and the message composer here"/>
 
     <oaf_attribute name="evolution2:config_item:icon_name" type="string"
-		   value="composer-settings.png"/>
+		   value="stock_mail-compose"/>
     
     <oaf_attribute name="evolution2:config_item:priority" type="string" value="-8"/>
     
Index: mail/em-account-prefs.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-account-prefs.c,v
retrieving revision 1.2
diff -u -r1.2 em-account-prefs.c
--- mail/em-account-prefs.c	13 Nov 2003 22:33:02 -0000	1.2
+++ mail/em-account-prefs.c	12 Mar 2004 19:11:03 -0000
@@ -38,9 +38,8 @@
 #include "mail-ops.h"
 #include "mail-send-recv.h"
 
-#include "art/mark.xpm"
-
 #include "em-account-prefs.h"
+#include <e-util/e-icon-factory.h>
 
 
 static void em_account_prefs_class_init (EMAccountPrefsClass *class);
@@ -95,7 +94,7 @@
 	
 	/* setup static data */
 	disabled_pixbuf = NULL;
-	enabled_pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) mark_xpm);
+	enabled_pixbuf = e_icon_factory_get_icon ("stock_mark", 16);
 }
 
 static void
@@ -104,7 +103,7 @@
 	prefs->druid = NULL;
 	prefs->editor = NULL;
 	
-	gdk_pixbuf_render_pixmap_and_mask (enabled_pixbuf, &prefs->mark_pixmap, &prefs->mark_bitmap, 128);
+	prefs->mark_pixbuf = g_object_ref (enabled_pixbuf);
 }
 
 static void
@@ -123,8 +122,7 @@
 	EMAccountPrefs *prefs = (EMAccountPrefs *) obj;
 	
 	g_object_unref (prefs->gui);
-	gdk_pixmap_unref (prefs->mark_pixmap);
-	g_object_unref (prefs->mark_bitmap);
+	g_object_unref (prefs->mark_pixbuf);
 	
         G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
Index: mail/em-account-prefs.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-account-prefs.h,v
retrieving revision 1.3
diff -u -r1.3 em-account-prefs.h
--- mail/em-account-prefs.h	1 Dec 2003 22:14:33 -0000	1.3
+++ mail/em-account-prefs.h	12 Mar 2004 19:11:03 -0000
@@ -61,8 +61,7 @@
 	GtkWidget *druid;
 	GtkWidget *editor;
 	
-	GdkPixmap *mark_pixmap;
-	GdkBitmap *mark_bitmap;
+	GdkPixbuf *mark_pixbuf;
 	
 	GtkTreeView *table;
 	
Index: mail/em-composer-prefs.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-composer-prefs.c,v
retrieving revision 1.4
diff -u -r1.4 em-composer-prefs.c
--- mail/em-composer-prefs.c	27 Feb 2004 20:17:02 -0000	1.4
+++ mail/em-composer-prefs.c	12 Mar 2004 19:11:03 -0000
@@ -41,11 +41,10 @@
 #include <gtk/gtktreeview.h>
 
 #include "widgets/misc/e-charset-picker.h"
+#include <e-util/e-icon-factory.h>
 
 #include "mail-config.h"
 
-#include "art/mark.xpm"
-
 
 #define d(x)
 
@@ -96,9 +95,7 @@
 static void
 em_composer_prefs_init (EMComposerPrefs *composer_prefs)
 {
-	composer_prefs->enabled_pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) mark_xpm);
-	gdk_pixbuf_render_pixmap_and_mask (composer_prefs->enabled_pixbuf,
-					   &composer_prefs->mark_pixmap, &composer_prefs->mark_bitmap, 128);
+	composer_prefs->enabled_pixbuf = e_icon_factory_get_icon ("stock_mark", 16);
 }
 
 static void
@@ -108,8 +105,6 @@
 	
 	g_object_unref (prefs->gui);
 	g_object_unref (prefs->enabled_pixbuf);
-	gdk_pixmap_unref (prefs->mark_pixmap);
-	g_object_unref (prefs->mark_bitmap);
 	
         G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
@@ -887,7 +882,7 @@
 	
 	prefs->spell_able_button = glade_xml_get_widget (gui, "buttonSpellCheckEnable");
 	info_pixmap = glade_xml_get_widget (gui, "pixmapSpellInfo");
-	gtk_image_set_from_file (GTK_IMAGE (info_pixmap), EVOLUTION_IMAGES "/info-bulb.png");	
+	gtk_image_set_from_stock (GTK_IMAGE (info_pixmap), GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_BUTTON);
 	if (!spell_setup_check_options (prefs)) {
 		gtk_widget_hide (GTK_WIDGET (prefs->colour));
 		gtk_widget_hide (GTK_WIDGET (prefs->language));
Index: mail/em-composer-prefs.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-composer-prefs.h,v
retrieving revision 1.3
diff -u -r1.3 em-composer-prefs.h
--- mail/em-composer-prefs.h	1 Dec 2003 22:14:33 -0000	1.3
+++ mail/em-composer-prefs.h	12 Mar 2004 19:11:03 -0000
@@ -80,8 +80,6 @@
 	char *language_str_orig;
 	GdkColor spell_error_color;
 	GdkColor spell_error_color_orig;
-	GdkPixmap *mark_pixmap;
-	GdkBitmap *mark_bitmap;
 	GdkPixbuf *enabled_pixbuf;
 	GtkWidget *spell_able_button;
 	
Index: mail/em-folder-browser.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-folder-browser.c,v
retrieving revision 1.30
diff -u -r1.30 em-folder-browser.c
--- mail/em-folder-browser.c	11 Mar 2004 20:29:57 -0000	1.30
+++ mail/em-folder-browser.c	12 Mar 2004 19:11:04 -0000
@@ -705,12 +705,12 @@
 };
 
 static EPixmap emfb_pixmaps[] = {
-	E_PIXMAP ("/commands/ChangeFolderProperties", "configure_16_folder.xpm"),
-	E_PIXMAP ("/commands/ViewHideRead", "hide_read_messages.xpm"),
-	E_PIXMAP ("/commands/ViewHideSelected", "hide_selected_messages.xpm"),
-	E_PIXMAP ("/commands/ViewShowAll", "show_all_messages.xpm"),
+	E_PIXMAP ("/commands/ChangeFolderProperties", "stock_folder-properties", 16),
+	E_PIXMAP ("/commands/ViewHideRead", "stock_mail-hide-read", 16),
+	E_PIXMAP ("/commands/ViewHideSelected", "stock_mail-hide-selected", 16),
+	E_PIXMAP ("/commands/ViewShowAll", "stock_show-all", 16),
 	
-	E_PIXMAP ("/commands/MailCompose", "new-message.xpm"),
+	E_PIXMAP ("/commands/MailCompose", "stock_mail-compose", 16),
 
 	E_PIXMAP_END
 };
Index: mail/em-folder-tree.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-folder-tree.c,v
retrieving revision 1.79
diff -u -r1.79 em-folder-tree.c
--- mail/em-folder-tree.c	11 Mar 2004 06:50:26 -0000	1.79
+++ mail/em-folder-tree.c	12 Mar 2004 19:11:05 -0000
@@ -47,6 +47,7 @@
 #include "e-util/e-mktemp.h"
 #include "e-util/e-request.h"
 #include "e-util/e-dialog-utils.h"
+#include <e-util/e-icon-factory.h>
 
 #include "mail-mt.h"
 #include "mail-ops.h"
@@ -248,11 +249,11 @@
 	char *path;
 	
 	if (!initialised) {
-		folder_icons[FOLDER_ICON_NORMAL] = gdk_pixbuf_new_from_file (EVOLUTION_ICONSDIR "/folder-mini.png", NULL);
-		folder_icons[FOLDER_ICON_INBOX] = gdk_pixbuf_new_from_file (EVOLUTION_ICONSDIR "/inbox-mini.png", NULL);
-		folder_icons[FOLDER_ICON_OUTBOX] = gdk_pixbuf_new_from_file (EVOLUTION_ICONSDIR "/outbox-mini.png", NULL);
-		folder_icons[FOLDER_ICON_TRASH] = gdk_pixbuf_new_from_file (EVOLUTION_ICONSDIR "/evolution-trash-mini.png", NULL);
-		folder_icons[FOLDER_ICON_JUNK] = gdk_pixbuf_new_from_file (EVOLUTION_ICONSDIR "/evolution-junk-mini.png", NULL);
+		folder_icons[FOLDER_ICON_NORMAL] = e_icon_factory_get_icon ("stock_folder", 16);
+		folder_icons[FOLDER_ICON_INBOX] = e_icon_factory_get_icon ("stock_inbox", 16);
+		folder_icons[FOLDER_ICON_OUTBOX] = e_icon_factory_get_icon ("stock_outbox", 16);
+		folder_icons[FOLDER_ICON_TRASH] = e_icon_factory_get_icon ("stock_delete", 16);
+		folder_icons[FOLDER_ICON_JUNK] = e_icon_factory_get_icon ("stock_spam", 16);
 		initialised = TRUE;
 	}
 	
@@ -2378,18 +2379,18 @@
 
 	{ EM_POPUP_BAR, "10.emc" },
 #endif
-	{ EM_POPUP_ITEM, "10.emc.00", N_("_Copy"), G_CALLBACK (emft_popup_copy), NULL, "folder-copy-16.png", EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_SELECT },
-	{ EM_POPUP_ITEM, "10.emc.01", N_("_Move"), G_CALLBACK (emft_popup_move), NULL, "folder-move-16.png", EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_DELETE },
+	{ EM_POPUP_ITEM, "10.emc.00", N_("_Copy"), G_CALLBACK (emft_popup_copy), NULL, "stock_folder-copy", EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_SELECT },
+	{ EM_POPUP_ITEM, "10.emc.01", N_("_Move"), G_CALLBACK (emft_popup_move), NULL, "stock_folder-move", EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_DELETE },
 	
 	{ EM_POPUP_BAR, "20.emc" },
 	/* FIXME: need to disable for nochildren folders */
-	{ EM_POPUP_ITEM, "20.emc.00", N_("_New Folder..."), G_CALLBACK (emft_popup_new_folder), NULL, "folder-mini.png", EM_POPUP_FOLDER_INFERIORS },
+	{ EM_POPUP_ITEM, "20.emc.00", N_("_New Folder..."), G_CALLBACK (emft_popup_new_folder), NULL, "stock_folder", EM_POPUP_FOLDER_INFERIORS },
 	/* FIXME: need to disable for undeletable folders */
-	{ EM_POPUP_ITEM, "20.emc.01", N_("_Delete"), G_CALLBACK (emft_popup_delete_folder), NULL, "evolution-trash-mini.png", EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_DELETE },
+	{ EM_POPUP_ITEM, "20.emc.01", N_("_Delete"), G_CALLBACK (emft_popup_delete_folder), NULL, "stock_delete", EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_DELETE },
 	{ EM_POPUP_ITEM, "20.emc.01", N_("_Rename"), G_CALLBACK (emft_popup_rename_folder), NULL, NULL, EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_DELETE },
 	
 	{ EM_POPUP_BAR, "80.emc" },
-	{ EM_POPUP_ITEM, "80.emc.00", N_("_Properties..."), G_CALLBACK (emft_popup_properties), NULL, "configure_16_folder.xpm", EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_SELECT },
+	{ EM_POPUP_ITEM, "80.emc.00", N_("_Properties..."), G_CALLBACK (emft_popup_properties), NULL, "stock_folder-properties", EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_SELECT }
 };
 
 static gboolean
Index: mail/em-folder-view.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-folder-view.c,v
retrieving revision 1.41
diff -u -r1.41 em-folder-view.c
--- mail/em-folder-view.c	8 Mar 2004 17:53:35 -0000	1.41
+++ mail/em-folder-view.c	12 Mar 2004 19:11:06 -0000
@@ -757,31 +757,31 @@
 static EMPopupItem emfv_popup_menu[] = {
 	{ EM_POPUP_ITEM, "00.emfv.00", N_("_Open"), G_CALLBACK(emfv_popup_open), NULL, NULL, 0 },
 	{ EM_POPUP_ITEM, "00.emfv.01", N_("_Edit as New Message..."), G_CALLBACK(emfv_popup_resend), NULL, NULL, EM_POPUP_SELECT_RESEND },
-	{ EM_POPUP_ITEM, "00.emfv.02", N_("_Save As..."), G_CALLBACK(emfv_popup_saveas), NULL, "save-as-16.png", 0 },
-	{ EM_POPUP_ITEM, "00.emfv.03", N_("_Print"), G_CALLBACK(emfv_popup_print), NULL, "print.xpm", 0 },
+	{ EM_POPUP_ITEM, "00.emfv.02", N_("_Save As..."), G_CALLBACK(emfv_popup_saveas), NULL, "stock_save-as", 0 },
+	{ EM_POPUP_ITEM, "00.emfv.03", N_("_Print"), G_CALLBACK(emfv_popup_print), NULL, "stock_print", 0 },
 
 	{ EM_POPUP_BAR, "10.emfv" },
-	{ EM_POPUP_ITEM, "10.emfv.00", N_("_Reply to Sender"), G_CALLBACK(emfv_popup_reply_sender), NULL, "reply.xpm", EM_POPUP_SELECT_ONE },
+	{ EM_POPUP_ITEM, "10.emfv.00", N_("_Reply to Sender"), G_CALLBACK(emfv_popup_reply_sender), NULL, "stock_mail-reply", EM_POPUP_SELECT_ONE },
 	{ EM_POPUP_ITEM, "10.emfv.01", N_("Reply to _List"), G_CALLBACK(emfv_popup_reply_list), NULL, NULL, EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_MAILING_LIST },
-	{ EM_POPUP_ITEM, "10.emfv.02", N_("Reply to _All"), G_CALLBACK(emfv_popup_reply_all), NULL, "reply_to_all.xpm", EM_POPUP_SELECT_ONE },
-	{ EM_POPUP_ITEM, "10.emfv.03", N_("_Forward"), G_CALLBACK(emfv_popup_forward), NULL, "forward.xpm", EM_POPUP_SELECT_MANY },
+	{ EM_POPUP_ITEM, "10.emfv.02", N_("Reply to _All"), G_CALLBACK(emfv_popup_reply_all), NULL, "stock_mail-reply-to-all", EM_POPUP_SELECT_ONE },
+	{ EM_POPUP_ITEM, "10.emfv.03", N_("_Forward"), G_CALLBACK(emfv_popup_forward), NULL, "stock_mail-forward", EM_POPUP_SELECT_MANY },
 
 	{ EM_POPUP_BAR, "20.emfv", NULL, NULL, NULL, NULL, EM_POPUP_SELECT_FLAG_FOLLOWUP|EM_POPUP_SELECT_FLAG_COMPLETED|EM_POPUP_SELECT_FLAG_CLEAR },
-	{ EM_POPUP_ITEM, "20.emfv.00", N_("Follo_w Up..."), G_CALLBACK(emfv_popup_flag_followup), NULL, "flag-for-followup-16.png",  EM_POPUP_SELECT_FLAG_FOLLOWUP },
+	{ EM_POPUP_ITEM, "20.emfv.00", N_("Follo_w Up..."), G_CALLBACK(emfv_popup_flag_followup), NULL, "stock_mail-flag-for-followup",  EM_POPUP_SELECT_FLAG_FOLLOWUP },
 	{ EM_POPUP_ITEM, "20.emfv.01", N_("Fla_g Completed"), G_CALLBACK(emfv_popup_flag_completed), NULL, NULL, EM_POPUP_SELECT_FLAG_COMPLETED },
 	{ EM_POPUP_ITEM, "20.emfv.02", N_("Cl_ear Flag"), G_CALLBACK(emfv_popup_flag_clear), NULL, NULL, EM_POPUP_SELECT_FLAG_CLEAR },
 	
 	{ EM_POPUP_BAR, "30.emfv" },
-	{ EM_POPUP_ITEM, "30.emfv.00", N_("Mar_k as Read"), G_CALLBACK(emfv_popup_mark_read), NULL, "mail-read.xpm", EM_POPUP_SELECT_MARK_READ },
-	{ EM_POPUP_ITEM,  "30.emfv.01", N_("Mark as _Unread"), G_CALLBACK(emfv_popup_mark_unread), NULL, "mail-new.xpm", EM_POPUP_SELECT_MARK_UNREAD },
-	{ EM_POPUP_ITEM, "30.emfv.02", N_("Mark as _Important"), G_CALLBACK(emfv_popup_mark_important), NULL, "priority-high.xpm", EM_POPUP_SELECT_MARK_IMPORTANT },
+	{ EM_POPUP_ITEM, "30.emfv.00", N_("Mar_k as Read"), G_CALLBACK(emfv_popup_mark_read), NULL, "stock_mail-open", EM_POPUP_SELECT_MARK_READ },
+	{ EM_POPUP_ITEM,  "30.emfv.01", N_("Mark as _Unread"), G_CALLBACK(emfv_popup_mark_unread), NULL, "stock_mail-unread", EM_POPUP_SELECT_MARK_UNREAD },
+	{ EM_POPUP_ITEM, "30.emfv.02", N_("Mark as _Important"), G_CALLBACK(emfv_popup_mark_important), NULL, "stock_mail-priority-high", EM_POPUP_SELECT_MARK_IMPORTANT },
 	{ EM_POPUP_ITEM, "30.emfv.03", N_("_Mark as Unimportant"), G_CALLBACK(emfv_popup_mark_unimportant), NULL, NULL, EM_POPUP_SELECT_MARK_UNIMPORTANT },
-	{ EM_POPUP_ITEM, "30.emfv.04", N_("Mark as _Junk"), G_CALLBACK(emfv_popup_mark_junk), NULL, "stock-junk-16.png", EM_POPUP_SELECT_MARK_JUNK },
-	{ EM_POPUP_ITEM, "30.emfv.05", N_("Mark as _Not Junk"), G_CALLBACK(emfv_popup_mark_nojunk), NULL, "stock-notjunk-16.png", EM_POPUP_SELECT_MARK_NOJUNK },
+	{ EM_POPUP_ITEM, "30.emfv.04", N_("Mark as _Junk"), G_CALLBACK(emfv_popup_mark_junk), NULL, "stock_spam", EM_POPUP_SELECT_MARK_JUNK },
+	{ EM_POPUP_ITEM, "30.emfv.05", N_("Mark as _Not Junk"), G_CALLBACK(emfv_popup_mark_nojunk), NULL, "stock_not-spam", EM_POPUP_SELECT_MARK_NOJUNK },
 	
 	{ EM_POPUP_BAR, "40.emfv" },
-	{ EM_POPUP_ITEM, "40.emfv.00", N_("_Delete"), G_CALLBACK(emfv_popup_delete), NULL, "evolution-trash-mini.png", EM_POPUP_SELECT_DELETE },
-	{ EM_POPUP_ITEM, "40.emfv.01", N_("U_ndelete"), G_CALLBACK(emfv_popup_undelete), NULL, "undelete_message-16.png", EM_POPUP_SELECT_UNDELETE },
+	{ EM_POPUP_ITEM, "40.emfv.00", N_("_Delete"), G_CALLBACK(emfv_popup_delete), NULL, "stock_delete", EM_POPUP_SELECT_DELETE },
+	{ EM_POPUP_ITEM, "40.emfv.01", N_("U_ndelete"), G_CALLBACK(emfv_popup_undelete), NULL, "stock_undelete", EM_POPUP_SELECT_UNDELETE },
 
 	{ EM_POPUP_BAR, "50.emfv" },
 	{ EM_POPUP_ITEM, "50.emfv.00", N_("Mo_ve to Folder..."), G_CALLBACK(emfv_popup_move) },
@@ -796,8 +796,8 @@
 	{ EM_POPUP_ITEM, "70.emfv.00", N_("Add Sender to Address_book"), G_CALLBACK(emfv_popup_add_sender), NULL, NULL, EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_ADD_SENDER },
 
 	{ EM_POPUP_BAR, "80.emfv" },	
-	{ EM_POPUP_ITEM, "80.emfv.00", N_("Appl_y Filters"), G_CALLBACK(emfv_popup_apply_filters), NULL, "apply-filters-16.xpm" },
-	{ EM_POPUP_ITEM, "80.emfv.01", N_("F_ilter Junk"), G_CALLBACK(emfv_popup_filter_junk), NULL, "stock-junk-16.png" },
+	{ EM_POPUP_ITEM, "80.emfv.00", N_("Appl_y Filters"), G_CALLBACK(emfv_popup_apply_filters), NULL, "stock_mail-filters-apply" },
+	{ EM_POPUP_ITEM, "80.emfv.01", N_("F_ilter Junk"), G_CALLBACK(emfv_popup_filter_junk), NULL, "stock_spam" },
 
 	{ EM_POPUP_BAR, "90.filter", NULL, NULL, NULL, NULL, EM_POPUP_SELECT_ONE },
 	{ EM_POPUP_SUBMENU, "90.filter.00", N_("Crea_te Rule From Message"), NULL, NULL, NULL, EM_POPUP_SELECT_ONE },
@@ -1385,42 +1385,42 @@
 	BONOBO_UI_VERB_END
 };
 static EPixmap emfv_message_pixmaps[] = {
-	E_PIXMAP ("/commands/EditCut", "16_cut.png"),
-	E_PIXMAP ("/commands/EditCopy", "16_copy.png"),
-	E_PIXMAP ("/commands/EditPaste", "16_paste.png"),
-
-	E_PIXMAP ("/commands/PrintMessage", "print.xpm"),
-	E_PIXMAP ("/commands/PrintPreviewMessage", "print-preview.xpm"),
-	E_PIXMAP ("/commands/MessageDelete", "evolution-trash-mini.png"),
-	E_PIXMAP ("/commands/MessageUndelete", "undelete_message-16.png"),
-	E_PIXMAP ("/commands/MessageCopy", "copy_16_message.xpm"),
-	E_PIXMAP ("/commands/MessageMove", "move_message.xpm"),
-	E_PIXMAP ("/commands/MessageReplyAll", "reply_to_all.xpm"),
-	E_PIXMAP ("/commands/MessageReplySender", "reply.xpm"),
-	E_PIXMAP ("/commands/MessageForward", "forward.xpm"),
-	E_PIXMAP ("/commands/MessageApplyFilters", "apply-filters-16.xpm"),
-	E_PIXMAP ("/commands/MessageFilterJunk", "stock-junk-16.png"),
-	E_PIXMAP ("/commands/MessageSearch", "search-16.png"),
-	E_PIXMAP ("/commands/MessageSaveAs", "save-as-16.png"),
-	E_PIXMAP ("/commands/MessageMarkAsRead", "mail-read.xpm"),
-	E_PIXMAP ("/commands/MessageMarkAsUnRead", "mail-new.xpm"),
-	E_PIXMAP ("/commands/MessageMarkAsImportant", "priority-high.xpm"),
-	E_PIXMAP ("/commands/MessageMarkAsJunk", "stock-junk-16.png"),
-	E_PIXMAP ("/commands/MessageMarkAsNotJunk", "stock-notjunk-16.png"),
-	E_PIXMAP ("/commands/MessageFollowUpFlag", "flag-for-followup-16.png"),
-	
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageReplySender", "buttons/reply.png"),
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageReplyAll", "buttons/reply-to-all.png"),
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageForward", "buttons/forward.png"),
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/PrintMessage", "buttons/print.png"),
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageMove", "buttons/move-message.png"),
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageCopy", "buttons/copy-message.png"),
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageDelete", "buttons/delete-message.png"),
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageMarkAsJunk", "stock-junk-24.png"),
-	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageMarkAsNotJunk", "stock-notjunk-24.png"),
-	
-	E_PIXMAP ("/Toolbar/MailNextButtons/MailNext", "buttons/next-message.png"),
-	E_PIXMAP ("/Toolbar/MailNextButtons/MailPrevious", "buttons/previous-message.png"),
+	E_PIXMAP ("/commands/EditCut", "stock_cut", 16),
+	E_PIXMAP ("/commands/EditCopy", "stock_copy", 16),
+	E_PIXMAP ("/commands/EditPaste", "stock_paste", 16),
+
+	E_PIXMAP ("/commands/PrintMessage", "stock_print", 16),
+	E_PIXMAP ("/commands/PrintPreviewMessage", "stock_print-preview", 16),
+	E_PIXMAP ("/commands/MessageDelete", "stock_delete", 16),
+	E_PIXMAP ("/commands/MessageUndelete", "stock_undelete", 16),
+	E_PIXMAP ("/commands/MessageCopy", "stock_mail-copy", 16),
+	E_PIXMAP ("/commands/MessageMove", "stock_mail-move", 16),
+	E_PIXMAP ("/commands/MessageReplyAll", "stock_mail-reply-to-all", 16),
+	E_PIXMAP ("/commands/MessageReplySender", "stock_mail-reply", 16),
+	E_PIXMAP ("/commands/MessageForward", "stock_mail-forward", 16),
+	E_PIXMAP ("/commands/MessageApplyFilters", "stock_mail-filters-apply", 16),
+	E_PIXMAP ("/commands/MessageFilterJunk", "stock_spam", 16),
+	E_PIXMAP ("/commands/MessageSearch", "stock_search", 16),
+	E_PIXMAP ("/commands/MessageSaveAs", "stock_save-as", 16),
+	E_PIXMAP ("/commands/MessageMarkAsRead", "stock_mail-open", 16),
+	E_PIXMAP ("/commands/MessageMarkAsUnRead", "stock_mail-unread", 16),
+	E_PIXMAP ("/commands/MessageMarkAsImportant", "stock_mail-priority-high", 16),
+	E_PIXMAP ("/commands/MessageMarkAsJunk", "stock_spam", 16),
+	E_PIXMAP ("/commands/MessageMarkAsNotJunk", "stock_not-spam", 16),
+	E_PIXMAP ("/commands/MessageFollowUpFlag", "stock_mail-flag-for-followup", 16),
+
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageReplySender", "stock_mail-reply", 24),
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageReplyAll", "stock_mail-reply-to-all", 24),
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageForward", "stock_mail-forward", 24),
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/PrintMessage", "stock_print", 24),
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageMove", "stock_mail-move", 24),
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageCopy", "stock_mail-copy", 24),
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageDelete", "stock_delete", 24),
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageMarkAsJunk", "stock_spam", 24),
+	E_PIXMAP ("/Toolbar/MailMessageToolbar/MessageMarkAsNotJunk", "stock_not-spam", 24),
+
+	E_PIXMAP ("/Toolbar/MailNextButtons/MailNext", "stock_next", 24),
+	E_PIXMAP ("/Toolbar/MailNextButtons/MailPrevious", "stock_previous", 24),
 
 	E_PIXMAP_END
 };
Index: mail/em-format-html-display.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-format-html-display.c,v
retrieving revision 1.34
diff -u -r1.34 em-format-html-display.c
--- mail/em-format-html-display.c	10 Mar 2004 21:47:26 -0000	1.34
+++ mail/em-format-html-display.c	12 Mar 2004 19:11:07 -0000
@@ -73,6 +73,7 @@
 #include <e-util/e-msgport.h>
 #include <e-util/e-gui-utils.h>
 #include <e-util/e-dialog-utils.h>
+#include <e-util/e-icon-factory.h>
 
 #ifdef HAVE_NSS
 #include "certificate-viewer.h"
@@ -636,18 +637,18 @@
 	const char *icon, *shortdesc, *description;
 } smime_sign_table[4] = {
 	{ NULL, N_("Unsigned"), N_("This message is not signed. There is no guarantee that this message is authentic.") },
-	{ "pgp-signature-ok.png", N_("Valid signature"), N_("This message is signed and is valid meaning that it is very likely that this message is authentic.") },
-	{ "pgp-signature-bad.png", N_("Invalid signature"), N_("The signature of this message cannot be verified, it may have been altered in transit.") },
-	{ "pgp-signature-nokey.png", N_("Valid signature, cannot verify sender"), N_("This message is signed with a valid signature, but the sender of the message cannot be verified.") },
+	{ "stock_signature-ok", N_("Valid signature"), N_("This message is signed and is valid meaning that it is very likely that this message is authentic.") },
+	{ "stock_signature-bad", N_("Invalid signature"), N_("The signature of this message cannot be verified, it may have been altered in transit.") },
+	{ "stock_signature", N_("Valid signature, cannot verify sender"), N_("This message is signed with a valid signature, but the sender of the message cannot be verified.") },
 };
 
 static const struct {
 	const char *icon, *shortdesc, *description;
 } smime_encrypt_table[4] = {
-	{ NULL, N_("Unencrypted"), N_("This message is not encrypted.  Its content may be viewed in transit across the Internet.") },
-	{ "pgp-signature-ok.png", N_("Encrypted, weak"), N_("This message is encrypted, but with a weak encryption algorithm.  It would be difficult, but not impossible for an outsider to view the content of this message in a practical amount of time.") },
-	{ "pgp-signature-ok.png", N_("Encrypted"), N_("This message is encrypted.  It would be difficult for an outsider to view the content of this message.") },
-	{ "pgp-signature-ok.png", N_("Encrypted, strong"), N_("This message is encrypted, with a strong encryption algorithm.  It would be very difficult for an outsider to view the content of this message in a practical amount of time.") },
+	{ NULL, N_("Unencrypted"), N_("This message is not encrypted.  Its content may be viewed in transit across The Internet.") },
+	{ "stock_lock-ok", N_("Encrypted, weak"), N_("This message is encrypted, but with a weak encryption algorithm.  It would be difficult, but not impossible for an outsider to view the content of this message in a practical amount of time.") },
+	{ "stock_lock-ok", N_("Encrypted"), N_("This message is encrypted.  It would be difficult for an outsider to view the content of this message.") },
+	{ "stock_lock-ok", N_("Encrypted, strong"), N_("This message is encrypted, with a strong encryption algorithm.  It would be very difficult for an outsider to view the content of this message in a practical amount of time.") },
 };
 
 struct _smime_pobject {
@@ -808,20 +809,14 @@
 	GtkWidget *icon, *button;
 	GdkPixbuf *pixbuf;
 	struct _smime_pobject *po = (struct _smime_pobject *)pobject;
-	char *file;
 	const char *name;
 
 	/* FIXME: need to have it based on encryption and signing too */
 	name = smime_sign_table[po->valid->sign.status].icon;
-	
-	file = g_build_filename(EVOLUTION_ICONSDIR, name, NULL);
-	pixbuf = gdk_pixbuf_new_from_file(file, NULL);
-	g_free(file);
-	if (pixbuf == NULL)
-		return FALSE;
 
-	/* wtf isn't this just scaled on disk? */
-	icon = gtk_image_new_from_pixbuf(gdk_pixbuf_scale_simple(pixbuf, 24, 24, GDK_INTERP_BILINEAR));
+	pixbuf = e_icon_factory_get_icon (name, 24);
+
+	icon = gtk_image_new_from_pixbuf (pixbuf);
 	g_object_unref(pixbuf);
 	gtk_widget_show(icon);
 
@@ -938,10 +933,10 @@
 static void efhd_format_prefix(EMFormat *emf, CamelStream *stream)
 {
 	const char *flag, *comp, *due;
-	CamelMimePart *iconpart;
 	time_t date;
 	char due_date[128];
 	struct tm due_tm;
+	gchar *iconpath;
 
 	if (emf->folder == NULL || emf->uid == NULL
 	    || (flag = camel_folder_get_message_user_tag(emf->folder, emf->uid, "follow-up")) == NULL
@@ -952,16 +947,21 @@
 	camel_stream_printf(stream, "<table border=1 width=\"100%%\" cellspacing=2 cellpadding=2><tr>");
 
 	comp = camel_folder_get_message_user_tag(emf->folder, emf->uid, "completed-on");
-	iconpart = em_format_html_file_part((EMFormatHTML *)emf, "image/png", EVOLUTION_ICONSDIR,
-					    comp&&comp[0]?"flag-for-followup-done-16.png":"flag-for-followup-16.png");
-	if (iconpart) {
-		char *classid;
-
-		classid = g_strdup_printf("icon:///em-format-html-display/%s/%s", emf->part_id->str, comp&&comp[0]?"comp":"uncomp");
-		camel_stream_printf(stream, "<td align=\"left\"><img src=\"%s\"></td>", classid);
-		(void)em_format_add_puri(emf, sizeof(EMFormatPURI), classid, iconpart, efhd_write_image);
-		g_free(classid);
-		camel_object_unref(iconpart);
+	iconpath = e_icon_factory_get_icon_filename (comp&&comp[0]?"stock_flag-for-followup-done":"stock_flag-for-followup", 16);
+	if (iconpath) {
+		CamelMimePart *iconpart;
+
+		iconpart = em_format_html_file_part((EMFormatHTML *)emf, "image/png", iconpath);
+		g_free (iconpath);
+		if (iconpart) {
+			char *classid;
+
+			classid = g_strdup_printf("icon:///em-format-html-display/%s/%s", emf->part_id->str, comp&&comp[0]?"comp":"uncomp");
+			camel_stream_printf(stream, "<td align=\"left\"><img src=\"%s\"></td>", classid);
+			(void)em_format_add_puri(emf, sizeof(EMFormatPURI), classid, iconpart, efhd_write_image);
+			g_free(classid);
+			camel_object_unref(iconpart);
+		}
 	}
 
 	camel_stream_printf(stream, "<td align=\"left\" width=\"100%%\">");
Index: mail/em-format-html.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-format-html.c,v
retrieving revision 1.37
diff -u -r1.37 em-format-html.c
--- mail/em-format-html.c	11 Mar 2004 16:14:23 -0000	1.37
+++ mail/em-format-html.c	12 Mar 2004 19:11:08 -0000
@@ -289,16 +289,14 @@
 }
 
 CamelMimePart *
-em_format_html_file_part(EMFormatHTML *efh, const char *mime_type, const char *path, const char *name)
+em_format_html_file_part(EMFormatHTML *efh, const char *mime_type, const char *filename)
 {
 	CamelMimePart *part;
 	CamelStream *stream;
 	CamelDataWrapper *dw;
-	char *filename;
+	gchar *basename;
 
-	filename = g_build_filename(path, name, NULL);
 	stream = camel_stream_fs_new_with_name(filename, O_RDONLY, 0);
-	g_free(filename);
 	if (stream == NULL)
 		return NULL;
 
@@ -311,7 +309,9 @@
 	part = camel_mime_part_new();
 	camel_medium_set_content_object((CamelMedium *)part, dw);
 	camel_object_unref(dw);
-	camel_mime_part_set_filename(part, name);
+	basename = g_path_get_basename (filename);
+	camel_mime_part_set_filename(part, basename);
+	g_free (basename);
 
 	return part;
 }
@@ -559,19 +559,19 @@
 static const struct {
 	const char *icon, *shortdesc;
 } smime_sign_table[4] = {
-	{ "pgp-signature-nokey.png", N_("Unsigned") },
-	{ "pgp-signature-ok.png", N_("Valid signature") },
-	{ "pgp-signature-bad.png", N_("Invalid signature") },
-	{ "pgp-signature-nokey.png", N_("Valid signature, cannot verify sender") },
+	{ NULL, N_("Unsigned") },
+	{ "stock_signature-ok", N_("Valid signature") },
+	{ "stock_signature-bad", N_("Invalid signature") },
+	{ "stock_signature", N_("Valid signature, cannot verify sender") },
 };
 
 static const struct {
 	const char *icon, *shortdesc;
 } smime_encrypt_table[4] = {
 	{ NULL, N_("Unencrypted") },
-	{ "pgp-signature-ok.png", N_("Encrypted, weak"),},
-	{ "pgp-signature-ok.png", N_("Encrypted") },
-	{ "pgp-signature-ok.png", N_("Encrypted, strong") },
+	{ "stock_lock-ok", N_("Encrypted, weak"),},
+	{ "stock_lock-ok", N_("Encrypted") },
+	{ "stock_lock-ok", N_("Encrypted, strong") },
 };
 
 /* TODO: this could probably be virtual on em-format-html
@@ -589,6 +589,7 @@
 	    && (valid->encrypt.status != CAMEL_CIPHER_VALIDITY_ENCRYPT_NONE
 		|| valid->sign.status != CAMEL_CIPHER_VALIDITY_SIGN_NONE)) {
 		char *classid;
+		gchar *iconpath;
 		CamelMimePart *iconpart;
 
 		camel_stream_printf(stream, "<table border=0 width=\"100%%\" cellpadding=3 cellspacing=0 bgcolor=%s><tr>",
@@ -596,12 +597,13 @@
 
 		classid = g_strdup_printf("smime:///em-format-html/%s/icon/signed", emf->part_id->str);
 		camel_stream_printf(stream, "<td valign=\"top\"><img src=\"%s\"></td><td valign=\"top\" width=\"100%%\">", classid);
-		iconpart = em_format_html_file_part((EMFormatHTML *)emf, "image/png",
-						    EVOLUTION_ICONSDIR, smime_sign_table[valid->sign.status].icon);
+		iconpath = e_icon_factory_get_icon_filename (smime_sign_table[valid->sign.status].icon, 48);
+		iconpart = em_format_html_file_part((EMFormatHTML *)emf, "image/png", iconpath);
 		if (iconpart) {
 			(void)em_format_add_puri(emf, sizeof(EMFormatPURI), classid, iconpart, efh_write_image);
 			camel_object_unref(iconpart);
 		}
+		g_free (iconpath);
 		g_free(classid);
 
 		if (valid->sign.status != CAMEL_CIPHER_VALIDITY_SIGN_NONE) {
Index: mail/em-format-html.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-format-html.h,v
retrieving revision 1.9
diff -u -r1.9 em-format-html.h
--- mail/em-format-html.h	6 Feb 2004 21:03:33 -0000	1.9
+++ mail/em-format-html.h	12 Mar 2004 19:11:08 -0000
@@ -137,7 +137,7 @@
 void em_format_html_set_xmailer_mask(EMFormatHTML *emf, unsigned int xmailer_mask);
 
 /* retrieves a pseudo-part icon wrapper for a file */
-struct _CamelMimePart *em_format_html_file_part(EMFormatHTML *efh, const char *mime_type, const char *path, const char *name);
+struct _CamelMimePart *em_format_html_file_part(EMFormatHTML *efh, const char *mime_type, const char *filename);
 
 /* for implementers */
 EMFormatHTMLPObject *em_format_html_add_pobject(EMFormatHTML *efh, size_t size, const char *classid, struct _CamelMimePart *part, EMFormatHTMLPObjectFunc func);
Index: mail/em-popup.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-popup.c,v
retrieving revision 1.15
diff -u -r1.15 em-popup.c
--- mail/em-popup.c	18 Feb 2004 20:22:04 -0000	1.15
+++ mail/em-popup.c	12 Mar 2004 19:11:08 -0000
@@ -44,6 +44,7 @@
 
 #include "em-popup.h"
 #include "e-util/e-msgport.h"
+#include <e-util/e-icon-factory.h>
 #include "em-utils.h"
 
 #include <camel/camel-store.h>
@@ -292,12 +293,12 @@
 		switch (item->type & EM_POPUP_TYPE_MASK) {
 		case EM_POPUP_ITEM:
 			if (item->image) {
-				char *path;
+				GdkPixbuf *pixbuf;
 				GtkWidget *image;
 
-				path = g_build_filename(EVOLUTION_IMAGES, (char *)item->image, NULL);
-				image = gtk_image_new_from_file(path);
-				g_free(path);
+				pixbuf = e_icon_factory_get_icon ((char *)item->image, 16);
+				image = gtk_image_new_from_pixbuf (pixbuf);
+				g_object_unref (pixbuf);
 
 				gtk_widget_show(image);
 				menuitem = (GtkMenuItem *)gtk_image_menu_item_new();
@@ -686,7 +687,7 @@
 static EMPopupItem emp_standard_select_popups[] = {
 	/*{ EM_POPUP_ITEM, "00.select.00", N_("_Open"), G_CALLBACK(emp_popup_open), NULL, NULL, 0 },*/
 	{ EM_POPUP_ITEM, "00.select.01", N_("_Edit as New Message..."), G_CALLBACK(emp_popup_resend), NULL, NULL, EM_POPUP_SELECT_RESEND },
-	{ EM_POPUP_ITEM, "00.select.02", N_("_Save As..."), G_CALLBACK(emp_popup_saveas), NULL, "save-as-16.png", 0 },	
+	{ EM_POPUP_ITEM, "00.select.02", N_("_Save As..."), G_CALLBACK(emp_popup_saveas), NULL, "stock_save-as", 0 },	
 };
 #endif
 
@@ -801,14 +802,14 @@
 }
 
 static EMPopupItem emp_standard_object_popups[] = {
-	{ EM_POPUP_ITEM, "00.part.00", N_("_Save As..."), G_CALLBACK(emp_part_popup_saveas), NULL, "save-as-16.png", 0 },
+	{ EM_POPUP_ITEM, "00.part.00", N_("_Save As..."), G_CALLBACK(emp_part_popup_saveas), NULL, "stock_save-as", 0 },
 	{ EM_POPUP_ITEM, "00.part.10", N_("Set as _Background"), G_CALLBACK(emp_part_popup_set_background), NULL, NULL, EM_POPUP_PART_IMAGE },
 	{ EM_POPUP_BAR, "10.part", NULL, NULL, NULL, NULL, EM_POPUP_PART_MESSAGE },
-	{ EM_POPUP_ITEM, "10.part.00", N_("_Reply to sender"), G_CALLBACK(emp_part_popup_reply_sender), NULL, "reply.xpm" , EM_POPUP_PART_MESSAGE },
+	{ EM_POPUP_ITEM, "10.part.00", N_("_Reply to sender"), G_CALLBACK(emp_part_popup_reply_sender), NULL, "stock_mail-reply" , EM_POPUP_PART_MESSAGE },
 	{ EM_POPUP_ITEM, "10.part.01", N_("Reply to _List"), G_CALLBACK(emp_part_popup_reply_list), NULL, NULL, EM_POPUP_PART_MESSAGE},
-	{ EM_POPUP_ITEM, "10.part.03", N_("Reply to _All"), G_CALLBACK(emp_part_popup_reply_all), NULL, "reply_to_all.xpm", EM_POPUP_PART_MESSAGE},
+	{ EM_POPUP_ITEM, "10.part.03", N_("Reply to _All"), G_CALLBACK(emp_part_popup_reply_all), NULL, "stock_mail-reply_to_all", EM_POPUP_PART_MESSAGE},
 	{ EM_POPUP_BAR, "20.part", NULL, NULL, NULL, NULL, EM_POPUP_PART_MESSAGE },
-	{ EM_POPUP_ITEM, "20.part.00", N_("_Forward"), G_CALLBACK(emp_part_popup_forward), NULL, "forward.xpm", EM_POPUP_PART_MESSAGE },
+	{ EM_POPUP_ITEM, "20.part.00", N_("_Forward"), G_CALLBACK(emp_part_popup_forward), NULL, "stock_mail-forward", EM_POPUP_PART_MESSAGE },
 
 };
 
Index: mail/local-config.glade
===================================================================
RCS file: /cvs/gnome/evolution/mail/local-config.glade,v
retrieving revision 1.10
diff -u -r1.10 local-config.glade
--- mail/local-config.glade	15 Apr 2003 17:29:17 -0000	1.10
+++ mail/local-config.glade	12 Mar 2004 19:11:08 -0000
@@ -65,24 +65,14 @@
 	  <property name="spacing">12</property>
 
 	  <child>
-	    <widget class="GtkAlignment" id="alignment2">
-	      <property name="visible">True</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0</property>
-	      <property name="xscale">1</property>
-	      <property name="yscale">0</property>
-
-	      <child>
-		<widget class="GtkImage" id="pixmap1">
-		  <property name="visible">True</property>
-		  <property name="pixbuf">mail-config-druid.png</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		</widget>
-	      </child>
-	    </widget>
+            <widget class="Custom" id="alignment2">
+              <property name="visible">True</property>
+              <property name="creation_function">e_create_image_widget</property>
+              <property name="string1">stock_mail-druid</property>
+              <property name="string2"></property>
+              <property name="int1">0</property>
+              <property name="int2">0</property>
+            </widget>
 	    <packing>
 	      <property name="padding">0</property>
 	      <property name="expand">True</property>
Index: mail/mail-component.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-component.c,v
retrieving revision 1.62
diff -u -r1.62 mail-component.c
--- mail/mail-component.c	11 Mar 2004 04:26:15 -0000	1.62
+++ mail/mail-component.c	12 Mar 2004 19:11:08 -0000
@@ -579,14 +579,14 @@
 	list->_buffer[0].menuDescription = _("_Mail Message");
 	list->_buffer[0].tooltip = _("Compose a new mail message");
 	list->_buffer[0].menuShortcut = 'm';
-	list->_buffer[0].iconName = "new-message.xpm";
+	list->_buffer[0].iconName = "stock_mail-compose";
 
 	list->_buffer[1].id = "folder";
 	list->_buffer[1].description = _("New Mail Folder");
 	list->_buffer[1].menuDescription = _("Mail _Folder");
 	list->_buffer[1].tooltip = _("Create a new mail folder");
 	list->_buffer[1].menuShortcut = 'f';
-	list->_buffer[1].iconName = "folder-mini.png";
+	list->_buffer[1].iconName = "stock_folder";
 
 	return list;
 }
Index: mail/mail-config-druid.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-config-druid.c,v
retrieving revision 1.104
diff -u -r1.104 mail-config-druid.c
--- mail/mail-config-druid.c	2 Dec 2003 08:09:28 -0000	1.104
+++ mail/mail-config-druid.c	12 Mar 2004 19:11:09 -0000
@@ -50,6 +50,7 @@
 
 #include <evolution-wizard.h>
 #include <e-util/e-account.h>
+#include <e-util/e-icon-factory.h>
 
 typedef enum {
 	MAIL_CONFIG_WIZARD_PAGE_NONE = -1,
@@ -354,17 +355,14 @@
 		config_wizard_set_page (mcw, mcw->page + 1);
 }
 
-
-#define WIZARD_ICON(name) (EVOLUTION_IMAGES "/mail-config-druid-" name ".png")
-
 static struct {
-	const char *page_name, *title, *icon_path;
+	const char *page_name, *title, *icon_name;
 	void (*prepare_func) (MailConfigWizard *mcw);
 	gboolean (*back_func) (MailConfigWizard *mcw);
 	gboolean (*next_func) (MailConfigWizard *mcw);
 	const char *help_text;
 } wizard_pages[] = {
-	{ "identity_page", N_("Identity"), WIZARD_ICON ("identity"),
+	{ "identity_page", N_("Identity"), "stock_contact",
 	  identity_prepare, NULL, identity_next,
 	  N_("Please enter your name and email address below. "
 	     "The \"optional\" fields below do not need to be "
@@ -372,26 +370,26 @@
 	     "information in email you send.")
 	},
 
-	{ "source_page", N_("Receiving Mail"), WIZARD_ICON ("receive"),
+	{ "source_page", N_("Receiving Mail"), "stock_mail-receive",
 	  source_prepare, NULL, source_next,
 	  N_("Please enter information about your incoming "
 	     "mail server below. If you are not sure, ask your "
 	     "system administrator or Internet Service Provider.")
 	},
 
-	{ "extra_page", N_("Receiving Mail"), WIZARD_ICON ("receive"),
+	{ "extra_page", N_("Receiving Mail"), "stock_mail-receive",
 	  extra_prepare, NULL, NULL,
 	  N_("Please select among the following options")
 	},
 
-	{ "transport_page", N_("Sending Mail"), WIZARD_ICON ("send"),
+	{ "transport_page", N_("Sending Mail"), "stock_mail-send",
 	  transport_prepare, transport_back, transport_next,
 	  N_("Please enter information about the way you will "
 	     "send mail. If you are not sure, ask your system "
 	     "administrator or Internet Service Provider.")
 	},
 
-	{ "management_page", N_("Account Management"), WIZARD_ICON ("account-name"),
+	{ "management_page", N_("Account Management"), "stock_person",
 	  management_prepare, NULL, NULL,
 	  N_("You are almost done with the mail configuration "
 	     "process. The identity, incoming mail server and "
@@ -612,6 +610,7 @@
 {
 	MailConfigWizard *mcw;
 	GtkWidget *new, *page;
+	GdkPixbuf *icon;
 	int i;
 
 	mcw = config_wizard_new ();
@@ -623,6 +622,9 @@
 	for (i = 0; i < num_wizard_pages; i++) {
 		page = glade_xml_get_widget (mcw->gui->xml,
 					     wizard_pages[i].page_name);
+		icon = e_icon_factory_get_icon (wizard_pages[i].icon_name, 48);
+		gnome_druid_page_standard_set_logo (GNOME_DRUID_PAGE_STANDARD (page), icon);
+		g_object_unref (icon);
 		g_ptr_array_add (mcw->interior_pages, page);
 		gtk_box_pack_start (GTK_BOX (GNOME_DRUID_PAGE_STANDARD (page)->vbox),
 				    get_page (mcw->gui->xml, i),
@@ -747,7 +749,7 @@
 	
 	wizard = evolution_wizard_new ();
 	for (i = 0; i < MAIL_CONFIG_WIZARD_NUM_PAGES; i++) {
-		icon = gdk_pixbuf_new_from_file (wizard_pages[i].icon_path, NULL);
+		icon = e_icon_factory_get_icon (wizard_pages[i].icon_name, 48);
 		evolution_wizard_add_page (wizard, _(wizard_pages[i].title),
 					   icon, get_page (mcw->gui->xml, i));
 		g_object_unref (icon);
Index: mail/mail-config.glade
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-config.glade,v
retrieving revision 1.131
diff -u -r1.131 mail-config.glade
--- mail/mail-config.glade	3 Mar 2004 06:39:10 -0000	1.131
+++ mail/mail-config.glade	12 Mar 2004 19:11:12 -0000
@@ -33,7 +33,6 @@
 	<widget class="GnomeDruidPageStandard" id="identity_page">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Identity</property>
-	  <property name="logo">mail-config-druid-identity.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid_identity_vbox">
@@ -54,7 +53,6 @@
 	<widget class="GnomeDruidPageStandard" id="source_page">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Receiving Email</property>
-	  <property name="logo">mail-config-druid-receive.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid_source_vbox">
@@ -75,7 +73,6 @@
 	<widget class="GnomeDruidPageStandard" id="extra_page">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Receiving Email</property>
-	  <property name="logo">mail-config-druid-receive.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid_extra_vbox">
@@ -96,7 +93,6 @@
 	<widget class="GnomeDruidPageStandard" id="transport_page">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Sending Email</property>
-	  <property name="logo">mail-config-druid-send.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid_transport_vbox">
@@ -117,7 +113,6 @@
 	<widget class="GnomeDruidPageStandard" id="management_page">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Account Management</property>
-	  <property name="logo">mail-config-druid-account-name.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid_management_vbox">
Index: mail/mail-mt.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-mt.c,v
retrieving revision 1.77
diff -u -r1.77 mail-mt.c
--- mail/mail-mt.c	19 Feb 2004 07:32:48 -0000	1.77
+++ mail/mail-mt.c	12 Mar 2004 19:11:12 -0000
@@ -21,6 +21,7 @@
 #include "camel/camel-operation.h"
 
 #include "e-activity-handler.h"
+#include <e-util/e-icon-factory.h>
 
 #include "mail-config.h"
 #include "camel/camel-url.h"
@@ -51,9 +52,6 @@
 	int activity_id;
 };
 
-/* This is used for the mail status bar, cheap and easy */
-#include "art/mail-new.xpm"
-
 static GdkPixbuf *progress_icon = NULL;
 
 /* mail_msg stuff */
@@ -893,7 +891,7 @@
 			data->activity_state = 1;
 			
 			if (progress_icon == NULL)
-				progress_icon = gdk_pixbuf_new_from_xpm_data ((const char **)mail_new_xpm);
+				progress_icon = e_icon_factory_get_icon ("stock_mail-unread", 16);
 			
 			MAIL_MT_UNLOCK (mail_msg_lock);
 			if (msg->ops->describe_msg)
Index: mail/mail-send-recv.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-send-recv.c,v
retrieving revision 1.86
diff -u -r1.86 mail-send-recv.c
--- mail/mail-send-recv.c	3 Mar 2004 06:39:13 -0000	1.86
+++ mail/mail-send-recv.c	12 Mar 2004 19:11:13 -0000
@@ -27,12 +27,11 @@
 #include <stdio.h>
 #include <string.h>
 
-/* for the dialogue stuff */
+/* for the dialog stuff */
 #include <glib.h>
 #include <gtk/gtkmain.h>
 #include <gtk/gtkdialog.h>
 #include <gtk/gtkstock.h>
-#include <libgnomeui/gnome-window-icon.h>
 
 #include "e-util/e-gtk-utils.h"
 
@@ -51,6 +50,7 @@
 #include "mail-ops.h"
 #include "mail-send-recv.h"
 #include "mail-folder-cache.h"
+#include <e-util/e-icon-factory.h>
 
 #define d(x)
 
@@ -308,6 +308,8 @@
 	char *pretty_url;
 	EAccount *account;
 	EIterator *iter;
+	GdkPixbuf *pixbuf;
+	GList *icon_list;
 	
 	gd = (GtkDialog *)send_recv_dialog = gtk_dialog_new_with_buttons(_("Send & Receive Mail"), NULL, GTK_DIALOG_NO_SEPARATOR, NULL);
 	gtk_window_set_modal ((GtkWindow *) gd, FALSE);
@@ -315,7 +317,13 @@
 	stop = (GtkButton *)e_gtk_button_new_with_icon(_("Cancel _All"), GTK_STOCK_CANCEL);
 	gtk_widget_show((GtkWidget *)stop);
 	gtk_dialog_add_action_widget(gd, (GtkWidget *)stop, GTK_RESPONSE_CANCEL);
-	gnome_window_icon_set_from_file (GTK_WINDOW (gd), EVOLUTION_ICONSDIR "/send-receive.xpm");
+	
+	icon_list = e_icon_factory_get_icon_list ("stock_mail-send-receive");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (gd), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 	
 	num_sources = 0;
 	
@@ -383,7 +391,9 @@
 		} else if (info->timeout_id == 0)
 			info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info);
 		
-		recv_icon = gtk_image_new_from_file (EVOLUTION_BUTTONSDIR "/receive-24.png");
+		pixbuf = e_icon_factory_get_icon ("stock_mail-receive", 24);
+		recv_icon = gtk_image_new_from_pixbuf (pixbuf);
+		gdk_pixbuf_unref (pixbuf);
 		
 	       	pretty_url = format_url (source->url);
 		label = (GtkLabel *)gtk_label_new (pretty_url);
@@ -436,7 +446,9 @@
 		} else if (info->timeout_id == 0)
 			info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info);
 		
-		send_icon  = gtk_image_new_from_file (EVOLUTION_BUTTONSDIR "/send-24.png");
+		pixbuf = e_icon_factory_get_icon ("stock_mail-send", 24);
+		send_icon  = gtk_image_new_from_pixbuf (pixbuf);
+		gdk_pixbuf_unref (pixbuf);
 		
 		pretty_url = format_url (destination);
 		label = (GtkLabel *)gtk_label_new (pretty_url);
Index: mail/message-list.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/message-list.c,v
retrieving revision 1.370
diff -u -r1.370 message-list.c
--- mail/message-list.c	26 Feb 2004 11:35:24 -0000	1.370
+++ mail/message-list.c	12 Mar 2004 19:11:15 -0000
@@ -61,22 +61,7 @@
 #include "mail-ops.h"
 
 #include "em-utils.h"
-
-#include "art/mail-new.xpm"
-#include "art/mail-read.xpm"
-#include "art/mail-replied.xpm"
-#include "art/attachment.xpm"
-#include "art/priority-high.xpm"
-#include "art/empty.xpm"
-#include "art/score-lowest.xpm"
-#include "art/score-lower.xpm"
-#include "art/score-low.xpm"
-#include "art/score-normal.xpm"
-#include "art/score-high.xpm"
-#include "art/score-higher.xpm"
-#include "art/score-highest.xpm"
-#include "art/flag-for-followup.xpm"
-#include "art/flag-for-followup-done.xpm"
+#include <e-util/e-icon-factory.h>
 
 /*#define TIMEIT */
 
@@ -172,28 +157,27 @@
 static guint message_list_signals [LAST_SIGNAL] = {0, };
 
 static struct {
-	char **image_base;
+	gchar *icon_name;
 	GdkPixbuf  *pixbuf;
 } states_pixmaps [] = {
-	{ mail_new_xpm,		NULL },
-	{ mail_read_xpm,	NULL },
-	{ mail_replied_xpm,	NULL },
-/* FIXME: Replace these with pixmaps for multiple_read and multiple_unread */
-    	{ mail_new_xpm,		NULL },
-    	{ mail_read_xpm,	NULL },
-	{ empty_xpm,		NULL },
-	{ attachment_xpm,	NULL },
-	{ priority_high_xpm,	NULL },
-	{ score_lowest_xpm,     NULL },
-	{ score_lower_xpm,      NULL },
-	{ score_low_xpm,        NULL },
-	{ score_normal_xpm,     NULL },
-	{ score_high_xpm,       NULL },
-	{ score_higher_xpm,     NULL },
-	{ score_highest_xpm,    NULL },
-	{ flag_for_followup_xpm,NULL },
-	{ flag_for_followup_done_xpm,NULL },
-	{ NULL,			NULL }
+	{ "stock_mail-unread",			NULL },
+	{ "stock_mail-open",			NULL },
+	{ "stock_mail-replied",			NULL },
+    { "stock_mail-unread-multiple",	NULL },
+    { "stock_mail-open-multiple",	NULL },
+	{ "",					NULL },
+	{ "stock_attach",			NULL },
+	{ "stock_mail-priority-high",	NULL },
+	{ "stock_score-lowest",			NULL },
+	{ "stock_score-lower",			NULL },
+	{ "stock_score-low",			NULL },
+	{ "stock_score-normal",			NULL },
+	{ "stock_score-high",			NULL },
+	{ "stock_score-higher",			NULL },
+	{ "stock_score-highest",		NULL },
+	{ "stock_mail-flag-for-followup",	NULL },
+	{ "stock_mail-flag-for-followup-done",	NULL },
+	{ NULL,					NULL }
 };
 
 /* FIXME: junk prefs */
@@ -1243,9 +1227,8 @@
 	if (states_pixmaps [0].pixbuf)
 		return;
 	
-	for (i = 0; states_pixmaps [i].image_base; i++){
-		states_pixmaps [i].pixbuf = gdk_pixbuf_new_from_xpm_data (
-			(const char **) states_pixmaps [i].image_base);
+	for (i = 0; states_pixmaps [i].icon_name; i++){
+		states_pixmaps [i].pixbuf = e_icon_factory_get_icon (states_pixmaps [i].icon_name, 16);
 	}
 }
 
Index: mail/message-tag-followup.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/message-tag-followup.c,v
retrieving revision 1.26
diff -u -r1.26 message-tag-followup.c
--- mail/message-tag-followup.c	18 Sep 2003 17:05:21 -0000	1.26
+++ mail/message-tag-followup.c	12 Mar 2004 19:11:15 -0000
@@ -43,11 +43,11 @@
 #include <gconf/gconf.h>
 #include <gconf/gconf-client.h>
 
-#include <libgnomeui/gnome-window-icon.h>
 #include <libgnomeui/gnome-pixmap.h>
 
 #include "message-tag-followup.h"
 #include "mail-config.h"
+#include <e-util/e-icon-factory.h>
 
 static void message_tag_followup_class_init (MessageTagFollowUpClass *class);
 static void message_tag_followup_init (MessageTagFollowUp *followup);
@@ -276,10 +276,19 @@
 	GtkWidget *widget;
 	GList *strings;
 	GladeXML *gui;
+	GList *icon_list;
+	GdkPixbuf *pixbuf;
 	int i;
 	
 	gtk_window_set_title (GTK_WINDOW (editor), _("Flag to Follow Up"));
-	gnome_window_icon_set_from_file (GTK_WINDOW (editor), EVOLUTION_IMAGES "/flag-for-followup-16.png");
+	
+	icon_list = e_icon_factory_get_icon_list ("stock_mail-flag-for-followup");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (editor), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
+	
 	gtk_container_set_border_width (GTK_CONTAINER (editor), 6);
 	
 	gui = glade_xml_new (EVOLUTION_GLADEDIR "/message-tags.glade", "followup_editor", NULL);
@@ -291,7 +300,9 @@
 	gtk_box_set_child_packing (GTK_BOX (GTK_DIALOG (editor)->vbox), widget, TRUE, TRUE, 6, GTK_PACK_START);
 	
 	widget = glade_xml_get_widget (gui, "pixmap");
-	gtk_image_set_from_file ((GtkImage *)widget, EVOLUTION_GLADEDIR "/flag-for-followup-48.png");
+	pixbuf = e_icon_factory_get_icon ("stock_mail-flag-for-followup", 48);
+	gtk_image_set_from_pixbuf ((GtkImage *)widget, pixbuf);
+	g_object_unref (pixbuf);
 	
 	followup->message_list = GTK_TREE_VIEW (glade_xml_get_widget (gui, "message_list"));
 	model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
Index: mail/message-tags.glade
===================================================================
RCS file: /cvs/gnome/evolution/mail/message-tags.glade,v
retrieving revision 1.6
diff -u -r1.6 message-tags.glade
--- mail/message-tags.glade	11 Apr 2003 21:18:08 -0000	1.6
+++ mail/message-tags.glade	12 Mar 2004 19:11:15 -0000
@@ -69,13 +69,13 @@
 	      <property name="spacing">6</property>
 
 	      <child>
-		<widget class="GtkImage" id="pixmap">
+		<widget class="Custom" id="pixmap">
 		  <property name="visible">True</property>
-		  <property name="pixbuf">flag-for-followup-48.png</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
+		  <property name="creation_function">e_create_image_widget</property>
+		  <property name="string1">stock_flag-for-followup</property>
+		  <property name="string2"></property>
+		  <property name="int1">0</property>
+		  <property name="int2">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
Index: shell/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/shell/ChangeLog,v
retrieving revision 1.1403
diff -u -r1.1403 ChangeLog
--- shell/ChangeLog	12 Mar 2004 07:58:20 -0000	1.1403
+++ shell/ChangeLog	12 Mar 2004 19:11:16 -0000
@@ -1,3 +1,31 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* e-icon-factory.c: (r) moved to e-util.  Part of GNOME bug #127812.
+	* e-icon-factory.h: (r) same.
+	* Makefile.am: remove e-icon-factory.{c,h}.  Part of GNOME bug #127812.
+
+	* GNOME_Evolution_Test.server.in.in: change all references to 
+	built-in icon names to gnome-icon-theme icons.  Part of GNOME bug
+	#127812.
+	* e-component-registry.c: same.
+	* e-shell-settings-dialog.c: same.
+	* e-shell-startup-wizard.c: same.
+	* e-shell-window-commands.c: same.
+	* e-splash.c: same.
+	* e-user-creatable-items-handler.c: same.
+	* main.c: same.
+
+	* evolution-shell-component-utils.c (e_pixmaps_update): load e_pixmaps
+	from gnome-icon-theme.  Part of GNOME bug #127812.
+	* evolution-shell-component-utils.h: same, and change E_PIXMAP to support
+	icon size.
+
+	* e-shell-importer.c (e_shell_importer_start_import): set icons for each
+	page in code instead of glade file so that we can load it from
+	gnome-icon-theme.  Part of GNOME bug #127812.
+	* evolution-startup-wizard.glade: same.
+	* import.glade: same.
+
 2004-03-12  Not Zed  <NotZed Ximian com>
 
 	* e-shell.c (detect_version): when we check the evolution dir
Index: shell/GNOME_Evolution_Test.server.in.in
===================================================================
RCS file: /cvs/gnome/evolution/shell/GNOME_Evolution_Test.server.in.in,v
retrieving revision 1.1
diff -u -r1.1 GNOME_Evolution_Test.server.in.in
--- shell/GNOME_Evolution_Test.server.in.in	11 Jan 2004 06:45:44 -0000	1.1
+++ shell/GNOME_Evolution_Test.server.in.in	12 Mar 2004 19:11:16 -0000
@@ -29,9 +29,9 @@
 
     <oaf_attribute name="evolution:button_label" type="string" _value="Test"/>
     <oaf_attribute name="evolution:button_sort_order" type="string" value="-1"/>
-    <oaf_attribute name="evolution:button_icon" type="string" value="evolution-inbox.png"/>
+    <oaf_attribute name="evolution:button_icon" type="string" value="stock_mail"/>
 
-    <oaf_attribute name="evolution:component_icon" type="string" value="evolution-inbox.png"/>
+    <oaf_attribute name="evolution:component_icon" type="string" value="stock_mail"/>
     <oaf_attribute name="evolution:component_display_order" type="number" value="1"/>
 
   </oaf_server>
Index: shell/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution/shell/Makefile.am,v
retrieving revision 1.192
diff -u -r1.192 Makefile.am
--- shell/Makefile.am	4 Feb 2004 21:08:30 -0000	1.192
+++ shell/Makefile.am	12 Mar 2004 19:11:17 -0000
@@ -101,7 +101,6 @@
 
 eshellinclude_HEADERS = 			\
 	Evolution.h				\
-	e-icon-factory.h			\
 	e-shell-corba-icon-utils.h		\
 	e-shell-utils.h				\
 	evolution-config-control.h		\
@@ -111,7 +110,6 @@
 libeshell_la_SOURCES = 				\
 	$(IDL_GENERATED)			\
 	$(MARSHAL_GENERATED)			\
-	e-icon-factory.c			\
 	e-shell-corba-icon-utils.c		\
 	e-shell-utils.c				\
 	evolution-config-control.c		\
Index: shell/e-component-registry.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-component-registry.c,v
retrieving revision 1.44
diff -u -r1.44 e-component-registry.c
--- shell/e-component-registry.c	2 Feb 2004 21:57:37 -0000	1.44
+++ shell/e-component-registry.c	12 Mar 2004 19:11:17 -0000
@@ -27,7 +27,7 @@
 #include "e-component-registry.h"
 
 #include "e-shell-utils.h"
-
+#include <e-util/e-icon-factory.h>
 #include "e-util/e-lang-utils.h"
 
 #include <libgnome/gnome-i18n.h>
@@ -173,8 +173,7 @@
 		if (icon_name == NULL) {
 			icon = NULL;
 		} else {
-			char *full_path = e_shell_get_icon_path (icon_name, TRUE);
-			icon = gdk_pixbuf_new_from_file (full_path, NULL);
+			icon = e_icon_factory_get_icon (icon_name, 24);
 		}
 
 		sort_order_string = bonobo_server_info_prop_lookup (& info_list->_buffer[i],
Index: shell/e-shell-importer.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-importer.c,v
retrieving revision 1.64
diff -u -r1.64 e-shell-importer.c
--- shell/e-shell-importer.c	7 Feb 2004 01:25:21 -0000	1.64
+++ shell/e-shell-importer.c	12 Mar 2004 19:11:18 -0000
@@ -1132,10 +1132,13 @@
 	ImportData *data = g_new0 (ImportData, 1);
 	GtkWidget *html;
 	static gboolean dialog_open = FALSE;
+	GdkPixbuf *icon;
 
 	if (dialog_open) {
 		return;
 	}
+	
+	icon = e_icon_factory_get_icon ("stock_import", 48);
 
 	dialog_open = TRUE;
 	data->window = shell_window;
@@ -1157,9 +1160,11 @@
 
 	/* Start page */
 	data->start = GNOME_DRUID_PAGE_EDGE (glade_xml_get_widget (data->wizard, "page0"));
+	gnome_druid_page_edge_set_logo (data->start, icon);
 
 	/* Intelligent or direct import page */
 	data->typedialog = glade_xml_get_widget (data->wizard, "page1");
+	gnome_druid_page_standard_set_logo (data->typedialog, icon);
 	g_signal_connect (data->typedialog, "next",
 			  G_CALLBACK (next_type_page), data);
 	data->typepage = importer_type_page_new (data);
@@ -1171,6 +1176,7 @@
 
 	/* Intelligent importer source page */
 	data->intelligent = glade_xml_get_widget (data->wizard, "page2-intelligent");
+	gnome_druid_page_standard_set_logo (data->intelligent, icon);
 	g_signal_connect (data->intelligent, "back",
 			  G_CALLBACK (back_intelligent_page), data);
 	g_signal_connect_after (data->intelligent, "prepare",
@@ -1186,10 +1192,12 @@
 
 	/* File selection and file type page */
 	data->filedialog = glade_xml_get_widget (data->wizard, "page2-file");
+	gnome_druid_page_standard_set_logo (data->filedialog, icon);
 	g_signal_connect_after (data->filedialog, "prepare",
 			  G_CALLBACK (prepare_file_page), data);
 	g_signal_connect (data->filedialog, "next",
 			  G_CALLBACK (next_file_page), data);
+	gnome_druid_page_edge_set_logo (data->finish, icon);
 	data->filepage = importer_file_page_new (data);
 
 	html = create_help ("file_html");
@@ -1218,6 +1226,8 @@
 			  G_CALLBACK (import_druid_finish), data);
 
 	g_object_weak_ref ((GObject *)data->dialog, import_druid_weak_notify, data);
+
+	g_object_unref (icon);
 
 	gtk_widget_show_all (data->dialog);
 }
Index: shell/e-shell-settings-dialog.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-settings-dialog.c,v
retrieving revision 1.27
diff -u -r1.27 e-shell-settings-dialog.c
--- shell/e-shell-settings-dialog.c	3 Nov 2003 20:15:50 -0000	1.27
+++ shell/e-shell-settings-dialog.c	12 Mar 2004 19:11:18 -0000
@@ -28,7 +28,7 @@
 #include "e-shell-settings-dialog.h"
 
 #include "e-corba-config-page.h"
-
+#include <e-util/e-icon-factory.h>
 #include "e-util/e-lang-utils.h"
 
 #include <gal/util/e-util.h>
@@ -204,11 +204,7 @@
 			if (g_path_is_absolute (icon_path)) {
 				icon = gdk_pixbuf_new_from_file (icon_path, NULL);
 			} else {
-				char *real_icon_path;
-
-				real_icon_path = g_build_filename (EVOLUTION_IMAGES, icon_path, NULL);
-				icon = gdk_pixbuf_new_from_file (real_icon_path, NULL);
-				g_free (real_icon_path);
+				icon = e_icon_factory_get_icon (icon_path, 48);
 			}
 		}
 
Index: shell/e-shell-startup-wizard.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-startup-wizard.c,v
retrieving revision 1.48
diff -u -r1.48 e-shell-startup-wizard.c
--- shell/e-shell-startup-wizard.c	10 Mar 2004 16:07:25 -0000	1.48
+++ shell/e-shell-startup-wizard.c	12 Mar 2004 19:11:19 -0000
@@ -31,7 +31,7 @@
 
 #include "e-timezone-dialog/e-timezone-dialog.h"
 #include "e-util/e-gtk-utils.h"
-
+#include <e-util/e-icon-factory.h>
 #include <gconf/gconf-client.h>
 
 #include <evolution-wizard.h>
@@ -493,6 +493,7 @@
 {
 	TimezoneDialogPage *page;
 	ETimezoneDialog *etd;
+	GdkPixbuf *pixbuf;
 	
 	g_return_val_if_fail (data != NULL, NULL);
 
@@ -500,6 +501,10 @@
 	page->page = glade_xml_get_widget (data->wizard, "timezone-page");
 	g_return_val_if_fail (page->page != NULL, NULL);
 
+	pixbuf = e_icon_factory_get_icon ("stock_timezone", 48);
+	gnome_druid_page_standard_set_logo (GNOME_DRUID_PAGE_STANDARD (page->page), pixbuf);
+	g_object_unref (pixbuf);
+
 	g_signal_connect_after (page->page, "prepare",
 				G_CALLBACK (prepare_timezone_page), data);
 	page->vbox = GTK_WIDGET (GNOME_DRUID_PAGE_STANDARD (page->page)->vbox);
@@ -722,12 +727,17 @@
 {
 	ImportDialogPage *page;
 	GtkWidget *label, *sep;
+	GdkPixbuf *pixbuf;
 	
 	g_return_val_if_fail (data != NULL, NULL);
 
 	page = g_new0 (ImportDialogPage, 1);
 	page->page = glade_xml_get_widget (data->wizard, "import-page");
 	g_return_val_if_fail (page->page != NULL, NULL);
+
+	pixbuf = e_icon_factory_get_icon ("stock_mail-import", 48);
+	gnome_druid_page_standard_set_logo (GNOME_DRUID_PAGE_STANDARD (page->page), pixbuf);
+	g_object_unref (pixbuf);
 
 	g_signal_connect_after (page->page, "prepare",
 				G_CALLBACK (prepare_importer_page), data);
Index: shell/e-shell-window-commands.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-window-commands.c,v
retrieving revision 1.12
diff -u -r1.12 e-shell-window-commands.c
--- shell/e-shell-window-commands.c	8 Mar 2004 16:58:41 -0000	1.12
+++ shell/e-shell-window-commands.c	12 Mar 2004 19:11:19 -0000
@@ -345,22 +345,22 @@
 };
 
 static EPixmap pixmaps [] = {
-	E_PIXMAP ("/commands/SendReceive", "send-receive.xpm"),
-	E_PIXMAP ("/Toolbar/SendReceive", "buttons/send-24-receive.png"),
-	E_PIXMAP ("/menu/File/FileImporter", "import.xpm"),
-	E_PIXMAP ("/menu/File/ToggleOffline", "work_offline.xpm"),
-	E_PIXMAP ("/menu/Tools/Settings", "settings-16.png"),
+	E_PIXMAP ("/commands/SendReceive", "stock_mail-send-receive", 16),
+	E_PIXMAP ("/Toolbar/SendReceive", "stock_mail-send-receive", 24),
+	E_PIXMAP ("/menu/File/FileImporter", "stock_mail-import", 16),
+	E_PIXMAP ("/menu/File/ToggleOffline", "stock_disconnect", 16),
+	E_PIXMAP ("/menu/Tools/Settings", "gnome-settings", 16),
 
 	E_PIXMAP_END
 };
 
 static EPixmap offline_pixmaps [] = {
-	E_PIXMAP ("/menu/File/ToggleOffline", "work_offline.xpm"),
+	E_PIXMAP ("/menu/File/ToggleOffline", "stock_disconnect", 16),
 	E_PIXMAP_END
 };
 
 static EPixmap online_pixmaps [] = {
-	E_PIXMAP ("/menu/File/ToggleOffline", "work_online-16.png"),
+	E_PIXMAP ("/menu/File/ToggleOffline", "stock_connect", 16),
 	E_PIXMAP_END
 };
 
Index: shell/e-splash.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-splash.c,v
retrieving revision 1.33
diff -u -r1.33 e-splash.c
--- shell/e-splash.c	17 Jul 2003 17:09:37 -0000	1.33
+++ shell/e-splash.c	12 Mar 2004 19:11:20 -0000
@@ -27,12 +27,12 @@
 #include "e-splash.h"
 
 #include "e-util/e-gtk-utils.h"
+#include <e-util/e-icon-factory.h>
 
 #include <gtk/gtkframe.h>
 #include <gtk/gtkmain.h>
 #include <gtk/gtksignal.h>
 #include <libgnomecanvas/gnome-canvas-pixbuf.h>
-#include <libgnomeui/gnome-window-icon.h>
 #include <gal/util/e-util.h>
 
 
@@ -310,6 +310,7 @@
 	ESplashPrivate *priv;
 	GtkWidget *canvas, *frame;
 	int image_width, image_height;
+	GList *icon_list;
 
 	g_return_if_fail (splash != NULL);
 	g_return_if_fail (E_IS_SPLASH (splash));
@@ -351,7 +352,14 @@
 	gtk_window_set_resizable (GTK_WINDOW (splash), FALSE);
 	gtk_window_set_default_size (GTK_WINDOW (splash), image_width, image_height);
 	gtk_window_set_wmclass (GTK_WINDOW (splash), "evolution-splash", "Evolution");
-	gnome_window_icon_set_from_file (GTK_WINDOW (splash), EVOLUTION_DATADIR "/pixmaps/evolution.png");
+	
+	icon_list = e_icon_factory_get_icon_list ("evolution");
+	if (icon_list) {
+		gtk_window_set_icon_list (GTK_WINDOW (splash), icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
+	
 	gtk_window_set_title (GTK_WINDOW (splash), "Ximian Evolution");
 
 }
Index: shell/e-user-creatable-items-handler.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-user-creatable-items-handler.c,v
retrieving revision 1.5
diff -u -r1.5 e-user-creatable-items-handler.c
--- shell/e-user-creatable-items-handler.c	14 Dec 2003 15:54:39 -0000	1.5
+++ shell/e-user-creatable-items-handler.c	12 Mar 2004 19:11:20 -0000
@@ -25,7 +25,7 @@
 #endif
 
 #include "e-user-creatable-items-handler.h"
-
+#include <e-util/e-icon-factory.h>
 #include "e-shell-utils.h"
 
 #include "widgets/misc/e-combo-button.h"
@@ -231,9 +231,7 @@
 				if (type->iconName == "") {
 					item->icon = NULL;
 				} else {
-					char *icon_path = e_shell_get_icon_path (type->iconName, TRUE);
-					item->icon = gdk_pixbuf_new_from_file (icon_path, NULL);
-					g_free (icon_path);
+					item->icon = e_icon_factory_get_icon (type->iconName, 16);
 				}
 
 				menu_items = g_slist_prepend (menu_items, item);
Index: shell/evolution-shell-component-utils.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/evolution-shell-component-utils.c,v
retrieving revision 1.14
diff -u -r1.14 evolution-shell-component-utils.c
--- shell/evolution-shell-component-utils.c	25 Mar 2003 15:48:33 -0000	1.14
+++ shell/evolution-shell-component-utils.c	12 Mar 2004 19:11:21 -0000
@@ -24,7 +24,7 @@
 #endif
 
 #include "evolution-shell-component-utils.h"
-
+#include <e-util/e-icon-factory.h>
 #include "e-util/e-dialog-utils.h"
 
 #include <string.h>
@@ -53,23 +53,14 @@
 
 	for (i = 0; pixcache [i].path; i++) {
 		if (!pixcache [i].pixbuf) {
-			char *path;
 			GdkPixbuf *pixbuf;
 
-			path = g_build_filename (EVOLUTION_IMAGES, pixcache [i].fname, NULL);
-
-			pixbuf = gdk_pixbuf_new_from_file (path, NULL);
-			if (pixbuf == NULL) {
-				g_warning ("Cannot load image -- %s", path);
-			} else {
-				pixcache [i].pixbuf = bonobo_ui_util_pixbuf_to_xml (pixbuf);
-				g_object_unref (pixbuf);
-				bonobo_ui_component_set_prop (uic,
-					pixcache [i].path, "pixname",
-					pixcache [i].pixbuf, NULL);
-			}
-
-			g_free (path);
+			pixbuf = e_icon_factory_get_icon (pixcache [i].name, pixcache [i].size);
+			pixcache [i].pixbuf = bonobo_ui_util_pixbuf_to_xml (pixbuf);
+			g_object_unref (pixbuf);
+			bonobo_ui_component_set_prop (uic,
+				pixcache [i].path, "pixname",
+				pixcache [i].pixbuf, NULL);
 		} else {
 			bonobo_ui_component_set_prop (uic, pixcache [i].path,
 						      "pixname",
Index: shell/evolution-shell-component-utils.h
===================================================================
RCS file: /cvs/gnome/evolution/shell/evolution-shell-component-utils.h,v
retrieving revision 1.5
diff -u -r1.5 evolution-shell-component-utils.h
--- shell/evolution-shell-component-utils.h	4 Apr 2002 13:35:26 -0000	1.5
+++ shell/evolution-shell-component-utils.h	12 Mar 2004 19:11:21 -0000
@@ -31,12 +31,13 @@
 
 typedef struct _EPixmap {
 	const char *path;
-	const char *fname;
+	const char *name;
+	gint       size;
 	char       *pixbuf;
 } EPixmap;
 
-#define E_PIXMAP(path,fname)	{ (path), (fname), NULL }
-#define E_PIXMAP_END		{ NULL, NULL, NULL }
+#define E_PIXMAP(path,name,size)	{ (path), (name), (size), NULL }
+#define E_PIXMAP_END			{ NULL, NULL, 0, NULL }
 
 /* Takes an array of pixmaps, terminated by E_PIXMAP_END, and loads into uic */
 void e_pixmaps_update (BonoboUIComponent *uic, EPixmap *pixcache);
Index: shell/main.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/main.c,v
retrieving revision 1.147
diff -u -r1.147 main.c
--- shell/main.c	4 Feb 2004 10:55:25 -0000	1.147
+++ shell/main.c	12 Mar 2004 19:11:22 -0000
@@ -28,7 +28,7 @@
 #include "e-util/e-gtk-utils.h"
 #include "e-util/e-bconf-map.h"
 
-#include "e-icon-factory.h"
+#include <e-util/e-icon-factory.h>
 #include "e-shell-constants.h"
 
 #include "e-shell.h"
@@ -55,7 +55,6 @@
 #include <libgnome/gnome-i18n.h>
 #include <libgnome/gnome-util.h>
 #include <libgnomeui/gnome-ui-init.h>
-#include <libgnomeui/gnome-window-icon.h>
 
 #include <bonobo/bonobo-main.h>
 #include <bonobo/bonobo-moniker-util.h>
@@ -510,6 +509,7 @@
 	poptContext popt_context;
 	const char **args;
 	char *evolution_directory;
+	GList *icon_list;
 
 	/* Make ElectricFence work.  */
 	free (malloc (10));
@@ -560,7 +560,12 @@
 	e_cursors_init ();
 	e_icon_factory_init ();
 
-	gnome_window_icon_set_default_from_file (EVOLUTION_IMAGES "/evolution-inbox.png");
+	icon_list = e_icon_factory_get_icon_list ("stock_mail");
+	if (icon_list) {
+		gtk_window_set_default_icon_list (icon_list);
+		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+		g_list_free (icon_list);
+	}
 
 	/* FIXME We shouldn't be using the old directory at all I think */
 	evolution_directory = g_build_filename (g_get_home_dir (), "evolution", NULL);
Index: shell/glade/evolution-startup-wizard.glade
===================================================================
RCS file: /cvs/gnome/evolution/shell/glade/evolution-startup-wizard.glade,v
retrieving revision 1.11
diff -u -r1.11 evolution-startup-wizard.glade
--- shell/glade/evolution-startup-wizard.glade	21 Apr 2003 19:36:00 -0000	1.11
+++ shell/glade/evolution-startup-wizard.glade	12 Mar 2004 19:11:23 -0000
@@ -36,7 +36,6 @@
 	<widget class="GnomeDruidPageStandard" id="timezone-page">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Timezone </property>
-	  <property name="logo">timezone-48.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid-vbox6">
@@ -57,7 +56,6 @@
 	<widget class="GnomeDruidPageStandard" id="import-page">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Importing Files</property>
-	  <property name="logo">import.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid-vbox7">
Index: shell/importer/import.glade
===================================================================
RCS file: /cvs/gnome/evolution/shell/importer/import.glade,v
retrieving revision 1.10
diff -u -r1.10 import.glade
--- shell/importer/import.glade	6 Feb 2004 13:44:11 -0000	1.10
+++ shell/importer/import.glade	12 Mar 2004 19:11:23 -0000
@@ -33,7 +33,6 @@
 	<widget class="GnomeDruidPageStandard" id="page1">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Importer Type</property>
-	  <property name="logo">import.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid-vbox2">
@@ -54,7 +53,6 @@
 	<widget class="GnomeDruidPageStandard" id="page2-file">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Select a File</property>
-	  <property name="logo">import.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid-vbox1">
@@ -75,7 +73,6 @@
 	<widget class="GnomeDruidPageStandard" id="page3-file">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Import Location</property>
-	  <property name="logo">import.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid-vbox3">
@@ -96,7 +93,6 @@
 	<widget class="GnomeDruidPageStandard" id="page2-intelligent">
 	  <property name="visible">True</property>
 	  <property name="title" translatable="yes">Select Importers</property>
-	  <property name="logo">import.png</property>
 
 	  <child internal-child="vbox">
 	    <widget class="GtkVBox" id="druid-vbox3">
Index: widgets/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/widgets/ChangeLog,v
retrieving revision 1.114
diff -u -r1.114 ChangeLog
--- widgets/ChangeLog	26 Feb 2004 18:24:15 -0000	1.114
+++ widgets/ChangeLog	12 Mar 2004 19:11:24 -0000
@@ -1,3 +1,10 @@
+2004-03-12  Michael Terry  <mike mterry name>
+
+	* e-combo-button.c: use GtkImage instead of GtkPixmap and use
+	e-icon-factory.  Part of GNOME bug #127812.
+	* e-title-bar.c: same.
+	* e-url-entry.c: same.
+
 2004-02-26  JP Rosevear <jpr ximian com>
 
 	* e-timezone-dialog/e-timezone-dialog.c
Index: widgets/misc/e-combo-button.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/e-combo-button.c,v
retrieving revision 1.16
diff -u -r1.16 e-combo-button.c
--- widgets/misc/e-combo-button.c	21 Jan 2004 04:18:57 -0000	1.16
+++ widgets/misc/e-combo-button.c	12 Mar 2004 19:11:25 -0000
@@ -25,13 +25,13 @@
 #endif
 
 #include "e-combo-button.h"
-#include "art/empty.xpm"
+#include <e-util/e-icon-factory.h>
 
 #include <gtk/gtkarrow.h>
 #include <gtk/gtkhbox.h>
 #include <gtk/gtklabel.h>
 #include <gtk/gtkmain.h>
-#include <gtk/gtkpixmap.h>
+#include <gtk/gtkimage.h>
 #include <gtk/gtksignal.h>
 
 #include <gal/util/e-util.h>
@@ -40,9 +40,9 @@
 struct _EComboButtonPrivate {
 	GdkPixbuf *icon;
 
-	GtkWidget *icon_pixmap;
+	GtkWidget *icon_image;
 	GtkWidget *label;
-	GtkWidget *arrow_pixmap;
+	GtkWidget *arrow_image;
 	GtkWidget *hbox;
 
 	GtkMenu *menu;
@@ -68,35 +68,18 @@
 /* Utility functions.  */
 
 static GtkWidget *
-create_pixmap_widget_from_pixbuf (GdkPixbuf *pixbuf)
+create_empty_image_widget (void)
 {
-	GtkWidget *pixmap_widget;
-	GdkPixmap *pixmap;
-	GdkBitmap *mask;
-
-	gdk_pixbuf_render_pixmap_and_mask (pixbuf, &pixmap, &mask, 128);
-
-	pixmap_widget = gtk_pixmap_new (pixmap, mask);
-
-	gdk_pixmap_unref (pixmap);
-	g_object_unref (mask);
-
-	return pixmap_widget;
-}
-
-static GtkWidget *
-create_empty_pixmap_widget (void)
-{
-	GtkWidget *pixmap_widget;
+	GtkWidget *image_widget;
 	GdkPixbuf *pixbuf;
 
-	pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)empty_xpm);
+	pixbuf = e_icon_factory_get_icon (NULL, 16);
 
-	pixmap_widget = create_pixmap_widget_from_pixbuf (pixbuf);
+	image_widget = gtk_image_new_from_pixbuf (pixbuf);
 
 	g_object_unref (pixbuf);
 
-	return pixmap_widget;
+	return image_widget;
 }
 
 static void
@@ -104,8 +87,6 @@
 	  GdkPixbuf *pixbuf)
 {
 	EComboButtonPrivate *priv;
-	GdkPixmap *pixmap;
-	GdkBitmap *mask;
 
 	priv = combo_button->priv;
 
@@ -114,19 +95,15 @@
 
 	if (pixbuf == NULL) {
 		priv->icon = NULL;
-		gtk_widget_hide (priv->icon_pixmap);
+		gtk_widget_hide (priv->icon_image);
 		return;
 	}
 
 	priv->icon = g_object_ref (pixbuf);
 
-	gdk_pixbuf_render_pixmap_and_mask (pixbuf, &pixmap, &mask, 128);
-	gtk_pixmap_set (GTK_PIXMAP (priv->icon_pixmap), pixmap, mask);
-
-	gtk_widget_show (priv->icon_pixmap);
+	gtk_image_set_from_pixbuf (GTK_IMAGE (priv->icon_image), priv->icon);
 
-	gdk_pixmap_unref (pixmap);
-	gdk_pixmap_unref (mask);
+	gtk_widget_show (priv->icon_image);
 }
 
 
@@ -156,7 +133,7 @@
 
 	separator_x = (priv->label->allocation.width
 		       + priv->label->allocation.x
-		       + priv->arrow_pixmap->allocation.x) / 2;
+		       + priv->arrow_image->allocation.x) / 2;
 
 	gtk_widget_style_get (GTK_WIDGET (widget),
 			      "focus-line-width", &focus_width,
@@ -278,9 +255,9 @@
 	priv = combo_button->priv;
 
 	if (priv) {
-		if (priv->arrow_pixmap != NULL) {
-			gtk_widget_destroy (priv->arrow_pixmap);
-			priv->arrow_pixmap = NULL;
+		if (priv->arrow_image != NULL) {
+			gtk_widget_destroy (priv->arrow_image);
+			priv->arrow_image = NULL;
 		}
 		
 		if (priv->icon != NULL) {
@@ -313,7 +290,7 @@
 		GTK_BUTTON (widget)->button_down = TRUE;
 
 		if (event->button == 3 || 
-		    event->x >= priv->arrow_pixmap->allocation.x) {
+		    event->x >= priv->arrow_image->allocation.x) {
 			/* User clicked on the right side: pop up the menu.  */
 			gtk_button_pressed (GTK_BUTTON (widget));
 
@@ -452,19 +429,19 @@
 	gtk_container_add (GTK_CONTAINER (combo_button), priv->hbox);
 	gtk_widget_show (priv->hbox);
 
-	priv->icon_pixmap = create_empty_pixmap_widget ();
-	gtk_box_pack_start (GTK_BOX (priv->hbox), priv->icon_pixmap, TRUE, TRUE, 0);
-	gtk_widget_show (priv->icon_pixmap);
+	priv->icon_image = create_empty_image_widget ();
+	gtk_box_pack_start (GTK_BOX (priv->hbox), priv->icon_image, TRUE, TRUE, 0);
+	gtk_widget_show (priv->icon_image);
 
 	priv->label = gtk_label_new ("");
 	gtk_box_pack_start (GTK_BOX (priv->hbox), priv->label, TRUE, TRUE,
 			    2 * GTK_WIDGET (combo_button)->style->xthickness);
 	gtk_widget_show (priv->label);
 
-	priv->arrow_pixmap = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
-	gtk_box_pack_start (GTK_BOX (priv->hbox), priv->arrow_pixmap, TRUE, TRUE,
+	priv->arrow_image = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
+	gtk_box_pack_start (GTK_BOX (priv->hbox), priv->arrow_image, TRUE, TRUE,
 			    GTK_WIDGET (combo_button)->style->xthickness);
-	gtk_widget_show (priv->arrow_pixmap);
+	gtk_widget_show (priv->arrow_image);
 
 	priv->icon           = NULL;
 	priv->menu           = NULL;
Index: widgets/misc/e-title-bar.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/e-title-bar.c,v
retrieving revision 1.13
diff -u -r1.13 e-title-bar.c
--- widgets/misc/e-title-bar.c	23 Jan 2003 19:30:48 -0000	1.13
+++ widgets/misc/e-title-bar.c	12 Mar 2004 19:11:26 -0000
@@ -28,14 +28,15 @@
 #include <gtk/gtkbutton.h>
 #include <gtk/gtkhbox.h>
 #include <gtk/gtklabel.h>
-#include <gtk/gtkpixmap.h>
 #include <gtk/gtksignal.h>
 #include <gtk/gtktypeutils.h>
+#include <gtk/gtkimage.h>
 
 #include <gal/util/e-util.h>
 #include "e-clipped-label.h"
 
 #include "e-title-bar.h"
+#include <e-util/e-icon-factory.h>
 
 
 enum {
@@ -46,84 +47,6 @@
 static guint signals[LAST_SIGNAL] = { 0 };
 
 
-/* The pixmaps.  */
-
-static char *close_xpm[] = {
-	"16 16 2 1",
-	" 	c none",
-	".	c #000000000000",
-        "                ",
-        "                ",
-        "                ",
-        "   ..      ..   ",
-        "   ...    ...   ",
-        "    ...  ...    ",
-        "     ......     ",
-        "      ....      ",
-        "      ....      ",
-        "     ......     ",
-        "    ...  ...    ",
-        "   ...    ...   ",
-        "   ..      ..   ",
-        "                ",
-        "                ",
-        "                "
-};
-
-static char *pin_xpm[] = {
-	"16 16 33 1",
-	" 	c None",
-	".	c #000000",
-	"+	c #74744D",
-	"@	c #B2B279",
-	"#	c #6C6C46",
-	"$	c #CACA9C",
-	"%	c #F4F4AD",
-	"&	c #85855A",
-	"*	c #B1B175",
-	"=	c #9A9A66",
-	"-	c #A9A98A",
-	";	c #B0B07B",
-	">	c #535353",
-	",	c #818181",
-	"'	c #B7B7B7",
-	")	c #D8D8D8",
-	"!	c #FFFFFF",
-	"~	c #EBEBA1",
-	"{	c #8A8A75",
-	"]	c #9F9F76",
-	"^	c #9E9E75",
-	"/	c #8A8A66",
-	"(	c #979770",
-	"_	c #6B6B46",
-	":	c #28281A",
-	"<	c #505034",
-	"[	c #666645",
-	"}	c #61614D",
-	"|	c #818155",
-	"1	c #4A4A31",
-	"2	c #4D4D34",
-	"3	c #6C6C48",
-	"4	c #5D5D3E",
-	"                ",
-	"                ",
-	"                ",
-	"      .     .   ",
-	"      ..   .+.  ",
-	"           #$   ",
-	" ......%&*=-;.  ",
-	".>,')!.~{]^/(.  ",
-	" ......_:<[}|.  ",
-	"      .1...23.  ",
-	"      ..   .4.  ",
-	"      .     .   ",
-	"                ",
-	"                ",
-	"                ",
-	"                "
-};
-	
-
 #define PARENT_TYPE GTK_TYPE_FRAME
 static GtkFrameClass *parent_class = NULL;
 
@@ -131,32 +54,32 @@
 	ETitleBarButtonMode button_mode;
 	GtkWidget *label;
 	GtkWidget *button;
-	GtkWidget *close_gtk_pixmap;
-	GtkWidget *pin_gtk_pixmap;
+	GtkWidget *close_gtk_image;
+	GtkWidget *pin_gtk_image;
 };
 
 
-/* Mode handling.  We put both the close and pin GtkPixmaps into an hbox in the
+/* Mode handling.  We put both the close and pin GtkImages into an hbox in the
    button, and hide one of them according to the mode.  */
 
 static void
-show_and_hide_pixmaps_according_to_mode (ETitleBar *title_bar)
+show_and_hide_images_according_to_mode (ETitleBar *title_bar)
 {
 	ETitleBarPrivate *priv;
 
 	priv = title_bar->priv;
 
-	if (priv->close_gtk_pixmap == NULL || priv->pin_gtk_pixmap == NULL)
+	if (priv->close_gtk_image == NULL || priv->pin_gtk_image == NULL)
 		return;
 
 	switch (priv->button_mode) {
 	case E_TITLE_BAR_BUTTON_MODE_PIN:
-		gtk_widget_hide (priv->close_gtk_pixmap);
-		gtk_widget_show (priv->pin_gtk_pixmap);
+		gtk_widget_hide (priv->close_gtk_image);
+		gtk_widget_show (priv->pin_gtk_image);
 		break;
 	case E_TITLE_BAR_BUTTON_MODE_CLOSE:
-		gtk_widget_hide (priv->pin_gtk_pixmap);
-		gtk_widget_show (priv->close_gtk_pixmap);
+		gtk_widget_hide (priv->pin_gtk_image);
+		gtk_widget_show (priv->close_gtk_image);
 		break;
 	default:
 		g_assert_not_reached ();
@@ -170,10 +93,8 @@
 button_realize_cb (GtkWidget *widget,
 		   gpointer data)
 {
-	GdkPixmap *close_pixmap;
-	GdkBitmap *close_mask;
-	GdkPixmap *pin_pixmap;
-	GdkBitmap *pin_mask;
+	GdkPixbuf *close_pixbuf;
+	GdkPixbuf *pin_pixbuf;
 	GtkWidget *hbox;
 	ETitleBar *title_bar;
 	ETitleBarPrivate *priv;
@@ -181,30 +102,26 @@
 	title_bar = E_TITLE_BAR (data);
 	priv = title_bar->priv;
 
-	if (priv->close_gtk_pixmap != NULL)
+	if (priv->close_gtk_image != NULL)
 		return;
 
-	close_pixmap = gdk_pixmap_create_from_xpm_d (GTK_WIDGET (priv->button)->window,
-						     &close_mask, NULL, close_xpm);
-	priv->close_gtk_pixmap = gtk_pixmap_new (close_pixmap, close_mask);
-
-	pin_pixmap = gdk_pixmap_create_from_xpm_d (GTK_WIDGET (priv->button)->window,
-						   &pin_mask, NULL, pin_xpm);
-	priv->pin_gtk_pixmap = gtk_pixmap_new (pin_pixmap, pin_mask);
+	close_pixbuf = e_icon_factory_get_icon ("stock_close", 16);
+	priv->close_gtk_image = gtk_image_new_from_pixbuf (close_pixbuf);
+
+	pin_pixbuf = e_icon_factory_get_icon ("stock_pin", 16);
+	priv->pin_gtk_image = gtk_image_new_from_pixbuf (pin_pixbuf);
 
 	hbox = gtk_hbox_new (TRUE, 0);
 	gtk_widget_show (hbox);
-	gtk_box_pack_start (GTK_BOX (hbox), priv->pin_gtk_pixmap, TRUE, TRUE, 0);
-	gtk_box_pack_start (GTK_BOX (hbox), priv->close_gtk_pixmap, TRUE, TRUE, 0);
+	gtk_box_pack_start (GTK_BOX (hbox), priv->pin_gtk_image, TRUE, TRUE, 0);
+	gtk_box_pack_start (GTK_BOX (hbox), priv->close_gtk_image, TRUE, TRUE, 0);
 
 	gtk_container_add (GTK_CONTAINER (priv->button), hbox);
 
-	gdk_pixmap_unref (close_pixmap);
-	g_object_unref (close_mask);
-	gdk_pixmap_unref (pin_pixmap);
-	g_object_unref (pin_mask);
+	g_object_unref (close_pixbuf);
+	g_object_unref (pin_pixbuf);
 
-	show_and_hide_pixmaps_according_to_mode (title_bar);
+	show_and_hide_images_according_to_mode (title_bar);
 }
 
 static void
@@ -286,8 +203,8 @@
 	priv->button_mode      = E_TITLE_BAR_BUTTON_MODE_CLOSE;
 	priv->label            = NULL;
 	priv->button           = NULL;
-	priv->close_gtk_pixmap = NULL;
-	priv->pin_gtk_pixmap   = NULL;
+	priv->close_gtk_image  = NULL;
+	priv->pin_gtk_image    = NULL;
 
 	title_bar->priv = priv;
 }
@@ -388,7 +305,7 @@
 		return;
 
 	priv->button_mode = button_mode;
-	show_and_hide_pixmaps_according_to_mode (title_bar);
+	show_and_hide_images_according_to_mode (title_bar);
 }
 
 ETitleBarButtonMode
Index: widgets/misc/e-url-entry.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/e-url-entry.c,v
retrieving revision 1.8
diff -u -r1.8 e-url-entry.c
--- widgets/misc/e-url-entry.c	13 Jul 2003 19:29:03 -0000	1.8
+++ widgets/misc/e-url-entry.c	12 Mar 2004 19:11:26 -0000
@@ -28,6 +28,7 @@
 #include <gtk/gtk.h>
 #include <libgnome/gnome-url.h>
 #include "e-url-entry.h"
+#include <e-util/e-icon-factory.h>
 
 struct _EUrlEntryPrivate {
 	GtkWidget *entry;
@@ -92,6 +93,7 @@
 {
 	EUrlEntryPrivate *priv;
 	GtkWidget *pixmap;
+	GdkPixbuf *pixbuf;
 
 	priv = g_new0 (EUrlEntryPrivate, 1);
 	url_entry->priv = priv;
@@ -100,7 +102,9 @@
 	gtk_box_pack_start (GTK_BOX (url_entry), priv->entry, TRUE, TRUE, 0);
 	priv->button = gtk_button_new ();
 	gtk_box_pack_start (GTK_BOX (url_entry), priv->button, FALSE, FALSE, 0);
-	pixmap = gtk_image_new_from_file (MAP_DIR "/connect_to_url-16.xpm");
+	pixbuf = e_icon_factory_get_icon ("stock_connect-to-url", 16);
+	pixmap = gtk_image_new_from_pixbuf (pixbuf);
+	g_object_unref (pixbuf);
 	gtk_container_add (GTK_CONTAINER (priv->button), pixmap);
 	gtk_widget_show (pixmap);
 
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* e-icon-factory.c - Icon factory for the Evolution components.
 *
 * Copyright (C) 2002 Ximian, Inc.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of version 2 of the GNU General Public
 * License as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public
 * License along with this program; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * Author: Ettore Perazzoli <ettore ximian com>, Michael Terry <mterry fastmail fm>
 */

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <string.h>
#include <libgnomeui/gnome-icon-theme.h>
#include <e-util/e-icon-factory.h>
#include "art/empty.xpm"


/* One icon.  Keep both a small (16x16) and a large (48x48) version around.  */
struct _Icon {
	char *name;
	GdkPixbuf *pixbuf_16;
	GdkPixbuf *pixbuf_24;
	GdkPixbuf *pixbuf_48;
};
typedef struct _Icon Icon;

/* Hash of all the icons.  */
static GHashTable     *name_to_icon = NULL;
static GnomeIconTheme *icon_theme   = NULL;
static GdkPixbuf      *empty_pixbuf = NULL;


/* Creating and destroying icons.  */

static Icon *
icon_new (const gchar *name,
	  GdkPixbuf *pixbuf_16,
	  GdkPixbuf *pixbuf_24,
	  GdkPixbuf *pixbuf_48)
{
	Icon *icon;

	icon = g_new (Icon, 1);
	icon->name      = g_strdup (name);
	icon->pixbuf_16 = pixbuf_16;
	icon->pixbuf_24 = pixbuf_24;
	icon->pixbuf_48 = pixbuf_48;

	if (pixbuf_16 != NULL)
		g_object_ref (pixbuf_16);
	if (pixbuf_24 != NULL)
		g_object_ref (pixbuf_24);
	if (pixbuf_48 != NULL)
		g_object_ref (pixbuf_48);

	return icon;
}

#if 0

/* (This is not currently used since we never prune icons out of the
   cache.)  */
static void
icon_free (Icon *icon)
{
	g_free (icon->name);

	if (icon->pixbuf_16 != NULL)
		g_object_unref (icon->pixbuf_16);
	if (icon->pixbuf_24 != NULL)
		g_object_unref (icon->pixbuf_24);
	if (icon->pixbuf_48 != NULL)
		g_object_unref (icon->pixbuf_48);

	g_free (icon);
}

#endif


/* Loading icons.  */

static Icon *
load_icon (const gchar *icon_name)
{
	GdkPixbuf *unscaled;
	GdkPixbuf *pixbuf_16;
	GdkPixbuf *pixbuf_24;
	GdkPixbuf *pixbuf_48;
	gchar *filename;
	Icon *icon;

	filename = gnome_icon_theme_lookup_icon (icon_theme, icon_name, 16, 
	                                         NULL, NULL);
	if (filename == NULL)
		return NULL;
	unscaled = gdk_pixbuf_new_from_file (filename, NULL);
	pixbuf_16 = gdk_pixbuf_scale_simple (unscaled, 16, 16, GDK_INTERP_BILINEAR);
	g_object_unref (unscaled);
	g_free (filename);
	
	filename = gnome_icon_theme_lookup_icon (icon_theme, icon_name, 24, 
	                                         NULL, NULL);
	if (filename == NULL)
		return NULL;
	unscaled = gdk_pixbuf_new_from_file (filename, NULL);
	pixbuf_24 = gdk_pixbuf_scale_simple (unscaled, 24, 24, GDK_INTERP_BILINEAR);
	g_object_unref (unscaled);
	g_free (filename);
	
	filename = gnome_icon_theme_lookup_icon (icon_theme, icon_name, 48, 
	                                         NULL, NULL);
	if (filename == NULL)
		return NULL;
	unscaled = gdk_pixbuf_new_from_file (filename, NULL);
	pixbuf_48 = gdk_pixbuf_scale_simple (unscaled, 48, 48, GDK_INTERP_BILINEAR);
	g_object_unref (unscaled);
	g_free (filename);

	icon = icon_new (icon_name, pixbuf_16, pixbuf_24, pixbuf_48);

	g_object_unref (pixbuf_16);
	g_object_unref (pixbuf_24);
	g_object_unref (pixbuf_48);

	return icon;
}


/* Public API.  */

void
e_icon_factory_init (void)
{
	if (name_to_icon != NULL) {
		/* Already initialized.  */
		return;
	}

	name_to_icon = g_hash_table_new (g_str_hash, g_str_equal);
	icon_theme   = gnome_icon_theme_new ();
	empty_pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) empty_xpm);
}

gchar *
e_icon_factory_get_icon_filename (const gchar *icon_name,
			          gint        icon_size)
{
	gchar *filename;
	
	g_return_val_if_fail (icon_name != NULL, NULL);
	g_return_val_if_fail (strcmp (icon_name, ""), NULL);
	
	filename = gnome_icon_theme_lookup_icon (icon_theme,
	                                         icon_name,
	                                         icon_size,
	                                         NULL,
	                                         NULL);
	
	return filename;
}

/* Loads the themed version of the icon name at the appropriate size.
   The returned icon is guaranteed to be the requested size and exist.  If
   the themed icon cannot be found, an empty icon is returned. */
GdkPixbuf *
e_icon_factory_get_icon (const gchar *icon_name,
			 gint        icon_size)
{
	if (icon_name != NULL && strcmp (icon_name, "")) {
		Icon *icon;

		icon = g_hash_table_lookup (name_to_icon, icon_name);
		if (icon == NULL) {
			icon = load_icon (icon_name);
			if (icon == NULL) {
				g_warning ("Icon not found -- %s", icon_name);

				/* Create an empty icon so that we don't keep spitting
				   out the same warning over and over, every time this
				   icon is requested.  */

				icon = icon_new (icon_name, NULL, NULL, NULL);
				g_hash_table_insert (name_to_icon, icon->name, icon);
			}
			else {
				g_hash_table_insert (name_to_icon, icon->name, icon);
			}
		}

		if (icon->pixbuf_16) {
			gchar *filename;
			GdkPixbuf *pixbuf, *scaled;
			
			switch (icon_size) {
			case 16:
				return g_object_ref (icon->pixbuf_16);
			
			case 24:
				return g_object_ref (icon->pixbuf_24);
			
			case 48:
				return g_object_ref (icon->pixbuf_48);
			
			default:
				/* Non-standard size.  Do a non-cached load. */
				
				filename = gnome_icon_theme_lookup_icon (icon_theme,
				                                         icon_name,
				                                         icon_size,
				                                         NULL,
				                                         NULL);
				if (filename == NULL)
					break;
				
				pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
				g_free (filename);
				if (pixbuf == NULL)
					break;
				
				scaled = gdk_pixbuf_scale_simple (pixbuf, icon_size, icon_size, GDK_INTERP_BILINEAR);
				g_object_unref (pixbuf);
				
				return scaled;
			}
		}
	}
	
	/* icon not found -- create an empty icon */
	return gdk_pixbuf_scale_simple (empty_pixbuf, icon_size, icon_size, GDK_INTERP_NEAREST);
}

GList *
e_icon_factory_get_icon_list (const gchar *icon_name)
{
	if (icon_name != NULL && strcmp (icon_name, "")) {
		Icon *icon;

		icon = g_hash_table_lookup (name_to_icon, icon_name);
		if (icon == NULL) {
			icon = load_icon (icon_name);
			if (icon == NULL) {
				g_warning ("Icon not found -- %s", icon_name);

				/* Create an empty icon so that we don't keep spitting
				   out the same warning over and over, every time this
				   icon is requested.  */

				icon = icon_new (icon_name, NULL, NULL, NULL);
				g_hash_table_insert (name_to_icon, icon->name, icon);
			}
			else {
				g_hash_table_insert (name_to_icon, icon->name, icon);
			}
		}
		
		if (icon->pixbuf_16) {
			GList *list = NULL;
			
			list = g_list_append (list, g_object_ref (icon->pixbuf_16));
			list = g_list_append (list, g_object_ref (icon->pixbuf_24));
			list = g_list_append (list, g_object_ref (icon->pixbuf_48));
			
			return list;
		}
	}
	
	/* icons not found */
	return NULL;
}
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* e-icon-factory.h - Icon factory for the Evolution shell.
 *
 * Copyright (C) 2002 Ximian, Inc.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of version 2 of the GNU General Public
 * License as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public
 * License along with this program; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * Author: Ettore Perazzoli <ettore ximian com>
 */

#ifndef _E_ICON_FACTORY_H_
#define _E_ICON_FACTORY_H_

#include <gdk-pixbuf/gdk-pixbuf.h>

void       e_icon_factory_init              (void);

gchar     *e_icon_factory_get_icon_filename (const gchar *icon_name,
				             gint        icon_size);

GdkPixbuf *e_icon_factory_get_icon          (const gchar *icon_name,
				             gint        icon_size);

GList     *e_icon_factory_get_icon_list     (const gchar *icon_name);

#endif /* _E_ICON_FACTORY_H_ */

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]