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



On Wed, 2004-01-07 at 18:18, Michael Terry wrote:
> On Wed, 2004-01-07 at 18:04, JP Rosevear wrote:
> > On Wed, 2003-12-24 at 19:59, Michael Terry wrote:
> > > This patch is a proposed fix for bug 127812.  It expands the role of
> > > e-icon-factory from being a helper class in shell to being the
> > > authoritative source for all icons inside Evolution.
> > 
> > What is the reasoning behind you moving it?  Also it would probably be
> > better to include <e-util/e-icon-factory.h> instead of fiddling with the
> > includes so e-util is directly in the include path.
> 
> OK to the e-util/e-icon-factory.h include change.  I will submit a
> revised patch with it.

Attached is my revised patch.  I also fixed a couple typos.  You still
need my e-icon-factory.{c,h} from my first mailing.

Please provide feedback about the meat and potatoes of the patch as
well.

-mt
? calendar/common/Makefile
? calendar/common/Makefile.in
? e-util/e-icon-factory.c
? e-util/e-icon-factory.h
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/ChangeLog,v
retrieving revision 1.1281
diff -u -r1.1281 ChangeLog
--- ChangeLog	5 Jan 2004 19:50:51 -0000	1.1281
+++ ChangeLog	8 Jan 2004 05:35:09 -0000
@@ -1,3 +1,8 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* data/evolution.desktop.in.in: Change icon name to be themeable.
+	Part of bug 127812.
+
 2004-01-05  JP Rosevear <jpr ximian com>
 
 	* tools/Makefile.am: Add e-util libs
Index: addressbook/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/ChangeLog,v
retrieving revision 1.1517
diff -u -r1.1517 ChangeLog
--- addressbook/ChangeLog	7 Jan 2004 20:23:51 -0000	1.1517
+++ addressbook/ChangeLog	8 Jan 2004 05:35:35 -0000
@@ -1,3 +1,26 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* gui/component/GNOME_Evolution_Addressbook.server.in.in,
+	gui/component/addressbook-component.c (impl__get_userCreatableItems),
+	gui/component/addressbook.c (set_status_message),
+	gui/component/ldap-config.glade,
+	gui/component/select-names/e-select-names-popup.c 
+	(populate_popup_contact),
+	gui/contact-editor/contact-editor.glade,
+	gui/contact-editor/e-contact-editor-address.c
+	(e_contact_editor_address_init),
+	gui/contact-editor/e-contact-editor-fullname.c
+	(e_contact_editor_fullname_init),
+	gui/contact-editor/e-contact-editor.c (e_contact_editor_init),
+	gui/contact-list-editor/contact-list-editor.glade,
+	gui/contact-list-editor/e-contact-list-editor.c
+	(e_contact_list_editor_init),
+	gui/merging/eab-contact-commit-duplicate-detected.glade,
+	gui/merging/eab-contact-duplicate-detected.glade,
+	gui/widgets/e-minicard.c (e_minicard_init, e_minicard_finalize): Use
+	gnome-icon-theme names for icons and e-icon-factory to look them up.
+	Part of bug 127812.
+
 2004-01-07  Rodney Dawes  <dobey ximian com>
 
 	* gui/component/addressbook-component.c: Move the smime_component_init
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	8 Jan 2004 05:35:38 -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.102
diff -u -r1.102 addressbook-component.c
--- addressbook/gui/component/addressbook-component.c	6 Jan 2004 21:43:06 -0000	1.102
+++ addressbook/gui/component/addressbook-component.c	8 Jan 2004 05:35:39 -0000
@@ -292,14 +292,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.222
diff -u -r1.222 addressbook.c
--- addressbook/gui/component/addressbook.c	5 Jan 2004 18:10:29 -0000	1.222
+++ addressbook/gui/component/addressbook.c	8 Jan 2004 05:35:45 -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)
@@ -248,7 +248,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);
@@ -416,19 +416,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.17
diff -u -r1.17 ldap-config.glade
--- addressbook/gui/component/ldap-config.glade	1 Dec 2003 22:00:29 -0000	1.17
+++ addressbook/gui/component/ldap-config.glade	8 Jan 2004 05:35:55 -0000
@@ -935,7 +935,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	8 Jan 2004 05:36:02 -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.42
diff -u -r1.42 contact-editor.glade
--- addressbook/gui/contact-editor/contact-editor.glade	16 Dec 2003 23:29:21 -0000	1.42
+++ addressbook/gui/contact-editor/contact-editor.glade	8 Jan 2004 05:36:13 -0000
@@ -1156,7 +1156,7 @@
 		<widget class="Custom" id="custom1">
 		  <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>
@@ -1176,7 +1176,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>
@@ -1196,7 +1196,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>
@@ -1216,7 +1216,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>
@@ -1236,7 +1236,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">stock_internet</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -1377,7 +1377,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>
@@ -2028,7 +2028,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>
@@ -2048,7 +2048,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>
@@ -2102,7 +2102,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">stock_internet</property>
 		  <property name="string2"></property>
 		  <property name="int1">0</property>
 		  <property name="int2">0</property>
@@ -2197,7 +2197,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">stock_internet</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	8 Jan 2004 05:36:14 -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.25
diff -u -r1.25 e-contact-editor-fullname.c
--- addressbook/gui/contact-editor/e-contact-editor-fullname.c	21 Oct 2003 18:48:45 -0000	1.25
+++ addressbook/gui/contact-editor/e-contact-editor-fullname.c	8 Jan 2004 05:36:15 -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.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-editor/e-contact-editor.c,v
retrieving revision 1.159
diff -u -r1.159 e-contact-editor.c
--- addressbook/gui/contact-editor/e-contact-editor.c	18 Dec 2003 22:20:17 -0000	1.159
+++ addressbook/gui/contact-editor/e-contact-editor.c	8 Jan 2004 05:36:21 -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-i18n.h>
 
 #include <bonobo/bonobo-ui-container.h>
@@ -65,6 +64,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,
@@ -1356,17 +1357,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
 };
@@ -1447,7 +1448,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;
@@ -1560,9 +1561,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
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.9
diff -u -r1.9 contact-list-editor.glade
--- addressbook/gui/contact-list-editor/contact-list-editor.glade	21 Oct 2003 18:48:48 -0000	1.9
+++ addressbook/gui/contact-list-editor/contact-list-editor.glade	8 Jan 2004 05:36:23 -0000
@@ -81,7 +81,7 @@
 		<widget class="Custom" id="list-image">
 		  <property name="visible">True</property>
 		  <property name="creation_function">e_create_image_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.47
diff -u -r1.47 e-contact-list-editor.c
--- addressbook/gui/contact-list-editor/e-contact-list-editor.c	10 Dec 2003 03:02:40 -0000	1.47
+++ addressbook/gui/contact-list-editor/e-contact-list-editor.c	8 Jan 2004 05:36:25 -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>
@@ -231,8 +231,8 @@
 	GladeXML *gui;
 	GtkWidget *bonobo_win;
 	BonoboUIContainer *container;
-	char *icon_path;
 	GdkPixbuf *pixbuf;
+	GList *icon_list;
 
 	editor->image_buf = NULL;
 	editor->contact = NULL;
@@ -341,9 +341,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
@@ -583,18 +586,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	8 Jan 2004 05:36:26 -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	8 Jan 2004 05:36:28 -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	8 Jan 2004 05:36:42 -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: art/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/art/ChangeLog,v
retrieving revision 1.159
diff -u -r1.159 ChangeLog
--- art/ChangeLog	4 Dec 2003 17:08:30 -0000	1.159
+++ art/ChangeLog	8 Jan 2004 05:36:59 -0000
@@ -1,3 +1,8 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* Makefile.am: Remove almost all the icons, because they are now
+	outsourced to gnome-icon-theme.  Part of bug 127812.
+
 2003-12-04  Radek Doulik  <rodo ximian com>
 
 	* Makefile.am (buttons_DATA): added stock junk button and notjunk
Index: art/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution/art/Makefile.am,v
retrieving revision 1.110
diff -u -r1.110 Makefile.am
--- art/Makefile.am	4 Dec 2003 17:08:30 -0000	1.110
+++ art/Makefile.am	8 Jan 2004 05:36:59 -0000
@@ -1,272 +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	\
 	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	\
-	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			\
-	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-24.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
 
-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		\
-	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
-
 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.2044
diff -u -r1.2044 ChangeLog
--- calendar/ChangeLog	7 Jan 2004 13:19:33 -0000	1.2044
+++ calendar/ChangeLog	8 Jan 2004 05:37:14 -0000
@@ -1,3 +1,32 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* gui/GNOME_Evolution_Calendar.server.in.in,
+	gui/calendar-commands.c,
+	gui/calendar-component.c (add_popup_menu_item, fill_popup_menu_cb,
+		impl__get_userCreatableItems),
+	gui/e-cal-view.c (e_calendar_view_set_status_message,
+		setup_popup_icons),
+	gui/e-calendar-table.c (e_calendar_table_set_status_message,
+		e_calendar_table_init),
+	gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event),
+	gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event),
+	gui/e-day-view.c (e_day_view_realize, e_day_view_unrealize),
+	gui/e-day-view.h,
+	gui/e-itip-control.c (write_error_html, write_html),
+	gui/e-timezone-entry.c (e_timezone_entry_init),
+	gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons),
+	gui/e-week-view.c (e_week_view_realize, e_week_view_unrealize),
+	gui/e-week-view.h,
+	gui/tasks-component.c (add_popup_menu_item, fill_popup_menu_cb,
+		impl__get_userCreatableItems),
+	gui/alarm-notify/alarm-notify-dialog.c (write_html_heading,
+		alarm_notify_dialog),
+	gui/alarm-notify/alarm-queue.c (tray_icon_blink_cb,
+		display_notification),
+	gui/dialogs/comp-editor.c (make_icon_from_comp, set_icon_from_comp),
+	gui/dialogs/event-editor.c: Use gnome-icon-theme names for icons and
+	e-icon-factory to look them up.  Part of bug 127812.
+
 2004-01-07  Rodrigo Moya <rodrigo ximian com>
 
 	* gui/alarm-notify/alarm-queue.c: added an ECalQuery for each loaded
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	8 Jan 2004 05:37:20 -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_task-list"/>
 	<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.140
diff -u -r1.140 calendar-commands.c
--- calendar/gui/calendar-commands.c	6 Jan 2004 06:04:11 -0000	1.140
+++ calendar/gui/calendar-commands.c	8 Jan 2004 05:37:23 -0000
@@ -729,11 +729,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.124
diff -u -r1.124 calendar-component.c
--- calendar/gui/calendar-component.c	6 Jan 2004 18:35:29 -0000	1.124
+++ calendar/gui/calendar-component.c	8 Jan 2004 05:37:25 -0000
@@ -44,6 +44,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 */
@@ -287,19 +288,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);
@@ -415,12 +415,12 @@
 	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, _("Rename"), NULL, G_CALLBACK (rename_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);
 }
 
 static void
@@ -656,28 +656,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.28
diff -u -r1.28 e-cal-view.c
--- calendar/gui/e-cal-view.c	29 Dec 2003 09:58:32 -0000	1.28
+++ calendar/gui/e-cal-view.c	8 Jan 2004 05:37:42 -0000
@@ -50,9 +50,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 {
@@ -541,7 +542,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);
 
@@ -1259,6 +1260,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);
@@ -1272,14 +1274,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.105
diff -u -r1.105 e-calendar-table.c
--- calendar/gui/e-calendar-table.c	6 Jan 2004 06:04:11 -0000	1.105
+++ calendar/gui/e-calendar-table.c	8 Jan 2004 05:37:45 -0000
@@ -51,14 +51,8 @@
 #include "e-cell-date-edit-text.h"
 #include "e-comp-editor-registry.h"
 #include "print.h"
+#include <e-util/e-icon-factory.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"
 
 extern ECompEditorRegistry *comp_editor_registry;
 
@@ -112,8 +106,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 };
 
@@ -485,15 +479,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);
 
@@ -1368,7 +1361,7 @@
 #endif
 
 /* Displays messages on the status bar */
-#define EVOLUTION_TASKS_PROGRESS_IMAGE "evolution-tasks-mini.png"
+#define EVOLUTION_TASKS_PROGRESS_IMAGE "stock_task-list"
 static GdkPixbuf *progress_icon = NULL;
 
 void
@@ -1385,9 +1378,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	8 Jan 2004 05:37:52 -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	8 Jan 2004 05:37:55 -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.230
diff -u -r1.230 e-day-view.c
--- calendar/gui/e-day-view.c	29 Dec 2003 09:58:32 -0000	1.230
+++ calendar/gui/e-day-view.c	8 Jan 2004 05:38:10 -0000
@@ -71,12 +71,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
@@ -991,13 +986,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. */
@@ -1059,10 +1054,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.57
diff -u -r1.57 e-day-view.h
--- calendar/gui/e-day-view.h	22 Dec 2003 15:57:21 -0000	1.57
+++ calendar/gui/e-day-view.h	8 Jan 2004 05:38:12 -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.136
diff -u -r1.136 e-itip-control.c
--- calendar/gui/e-itip-control.c	22 Dec 2003 15:57:21 -0000	1.136
+++ calendar/gui/e-itip-control.c	8 Jan 2004 05:38:16 -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;
@@ -771,6 +772,7 @@
 {
 	EItipControlPrivate *priv;
 	GtkHTMLStream *html_stream;
+	gchar *filename;
 
 	priv = itip->priv;
 
@@ -788,7 +790,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\">");
 
@@ -821,6 +825,7 @@
 	const char *string;
 	gchar *html;
 	const gchar *const_html;
+	gchar *filename;
 
 	priv = itip->priv;
 
@@ -844,8 +849,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));
Index: calendar/gui/e-timezone-entry.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-timezone-entry.c,v
retrieving revision 1.22
diff -u -r1.22 e-timezone-entry.c
--- calendar/gui/e-timezone-entry.c	8 Dec 2003 14:16:13 -0000	1.22
+++ calendar/gui/e-timezone-entry.c	8 Jan 2004 05:38:39 -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	8 Jan 2004 05:38:41 -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.195
diff -u -r1.195 e-week-view.c
--- calendar/gui/e-week-view.c	17 Dec 2003 16:30:16 -0000	1.195
+++ calendar/gui/e-week-view.c	8 Jan 2004 05:38:52 -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;
@@ -545,11 +542,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);
 }
 
 
@@ -567,10 +565,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.50
diff -u -r1.50 e-week-view.h
--- calendar/gui/e-week-view.h	7 Nov 2003 05:52:00 -0000	1.50
+++ calendar/gui/e-week-view.h	8 Jan 2004 05:38:53 -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.34
diff -u -r1.34 tasks-component.c
--- calendar/gui/tasks-component.c	6 Jan 2004 18:35:30 -0000	1.34
+++ calendar/gui/tasks-component.c	8 Jan 2004 05:39:10 -0000
@@ -45,6 +45,7 @@
 #include "dialogs/new-task-list.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"
@@ -281,19 +282,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);
@@ -409,13 +409,13 @@
 	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_task-list",
 			     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, _("Rename"), NULL, G_CALLBACK (rename_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);
 }
 
@@ -631,14 +631,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_task-list";
 
 	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.25
diff -u -r1.25 alarm-notify-dialog.c
--- calendar/gui/alarm-notify/alarm-notify-dialog.c	20 Nov 2003 15:11:39 -0000	1.25
+++ calendar/gui/alarm-notify/alarm-notify-dialog.c	8 Jan 2004 05:39:13 -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);
 
@@ -378,7 +385,13 @@
 		gtk_widget_realize (an->dialog);
 
 	gtk_window_stick (GTK_WINDOW (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.49
diff -u -r1.49 alarm-queue.c
--- calendar/gui/alarm-notify/alarm-queue.c	17 Dec 2003 11:59:47 -0000	1.49
+++ calendar/gui/alarm-notify/alarm-queue.c	8 Jan 2004 05:39:15 -0000
@@ -41,6 +41,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"
@@ -818,14 +819,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;
 }
@@ -846,6 +848,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);
@@ -876,7 +879,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.89
diff -u -r1.89 comp-editor.c
--- calendar/gui/dialogs/comp-editor.c	6 Jan 2004 16:12:31 -0000	1.89
+++ calendar/gui/dialogs/comp-editor.c	8 Jan 2004 05:39:26 -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
 };
@@ -937,18 +937,18 @@
 	ECalComponentVType type;
 
 	if (!comp)
-		return EVOLUTION_IMAGESDIR "/evolution-calendar-mini.png";
+		return EVOLUTION_IMAGESDIR "stock_calendar";
 
 	type = e_cal_component_get_vtype (comp);
 	switch (type) {
 	case E_CAL_COMPONENT_EVENT:
-		return EVOLUTION_IMAGESDIR "/buttons/new_appointment.png";
+		return EVOLUTION_IMAGESDIR "stock_new-appointment";
 		break;
 	case E_CAL_COMPONENT_TODO:
-		return EVOLUTION_IMAGESDIR "/buttons/new_task.png";
+		return EVOLUTION_IMAGESDIR "stock_new-task";
 		break;
 	default:
-		return EVOLUTION_IMAGESDIR "/evolution-calendar-mini.png";
+		return EVOLUTION_IMAGESDIR "stock_calendar";
 	}
 }
 
@@ -981,11 +981,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	8 Jan 2004 05:39:29 -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.591
diff -u -r1.591 ChangeLog
--- composer/ChangeLog	7 Jan 2004 21:11:41 -0000	1.591
+++ composer/ChangeLog	8 Jan 2004 05:43:10 -0000
@@ -1,3 +1,9 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* e-msg-composer-select-file.c (run_selector),
+	e-msg-composer.c (create_composer): Use gnome-icon-theme names for
+	icons and e-icon-factory to look them up.  Part of bug 127812.
+
 2004-01-07  Jeffrey Stedfast  <fejj ximian com>
 
 	* e-msg-composer.c (create_composer): Remove the 6-pixel border
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	8 Jan 2004 05:43:15 -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.426
diff -u -r1.426 e-msg-composer.c
--- composer/e-msg-composer.c	7 Jan 2004 21:11:41 -0000	1.426
+++ composer/e-msg-composer.c	8 Jan 2004 05:43:25 -0000
@@ -103,6 +103,7 @@
 #include "e-msg-composer-select-file.h"
 
 #include "evolution-shell-component-utils.h"
+#include <e-util/e-icon-factory.h>
 
 #include "Editor.h"
 #include "listener.h"
@@ -1935,13 +1936,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
 };
@@ -2924,6 +2925,7 @@
 	CORBA_Environment ev;
 	GConfClient *gconf;
 	int vis;
+	GList *icon_list;
 	BonoboControlFrame *control_frame;
 	
 	composer = g_object_new (E_TYPE_MSG_COMPOSER, "win_name", _("Compose a message"), NULL);
@@ -2940,9 +2942,14 @@
 	
 	gtk_window_set_default_size (GTK_WINDOW (composer),
 				     DEFAULT_WIDTH, DEFAULT_HEIGHT);
-	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,
 			   drop_types, num_drop_types, GDK_ACTION_COPY);
Index: data/evolution.desktop.in.in
===================================================================
RCS file: /cvs/gnome/evolution/data/evolution.desktop.in.in,v
retrieving revision 1.2
diff -u -r1.2 evolution.desktop.in.in
--- data/evolution.desktop.in.in	1 Dec 2003 22:37:49 -0000	1.2
+++ data/evolution.desktop.in.in	8 Jan 2004 05:43:27 -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.428
diff -u -r1.428 ChangeLog
--- e-util/ChangeLog	5 Jan 2004 10:58:53 -0000	1.428
+++ e-util/ChangeLog	8 Jan 2004 05:43:29 -0000
@@ -1,3 +1,11 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* Makefile.am: Add e-icon-factory.{c,h}.  Part of bug 127812.
+
+	* e-gui-utils.c (e_create_image_widget, e_icon_for_mime_type): Use
+	gnome-icon-theme names for icons and e-icon-factory to look them up.
+	Part of bug 127812.
+
 2004-01-05  Not Zed  <NotZed Ximian com>
 
 	* e-memory.c (e_mempool_destroy): Fix from Zan Lynx
Index: e-util/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution/e-util/Makefile.am,v
retrieving revision 1.108
diff -u -r1.108 Makefile.am
--- e-util/Makefile.am	6 Dec 2003 18:15:20 -0000	1.108
+++ e-util/Makefile.am	8 Jan 2004 05:43:29 -0000
@@ -25,6 +25,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			\
@@ -60,6 +61,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			\
Index: e-util/e-gui-utils.c
===================================================================
RCS file: /cvs/gnome/evolution/e-util/e-gui-utils.c,v
retrieving revision 1.17
diff -u -r1.17 e-gui-utils.c
--- e-util/e-gui-utils.c	23 Jul 2003 14:55:52 -0000	1.17
+++ e-util/e-gui-utils.c	8 Jan 2004 05:43:35 -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,36 +28,38 @@
 
 #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);
+
+		w = gtk_image_new_from_pixbuf (pixbuf);
+		g_object_unref (pixbuf);
 
-		if (*string1 == '/')
-			filename = g_strdup(string1);
-		else
-			filename = g_build_filename (EVOLUTION_IMAGES, string1, NULL);
+		gtk_misc_set_alignment (GTK_MISC (w), 0.5, 0.5);
 
-		w = gtk_image_new_from_file (filename);
+		if (int1)
+			int1 = 1;
+		if (int2)
+			int2 = 1;
 
 		alignment = gtk_widget_new(gtk_alignment_get_type(),
 					   "child", w,
 					   "xalign", (double) 0,
 					   "yalign", (double) 0,
-					   "xscale", (double) 0,
-					   "yscale", (double) 0,
+					   "xscale", (double) int1,
+					   "yscale", (double) int2,
 					   NULL);
 
 		gtk_widget_show_all (alignment);
-		g_free (filename);
 	}
 
 	return alignment;
@@ -159,7 +162,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.2977
diff -u -r1.2977 ChangeLog
--- mail/ChangeLog	7 Jan 2004 22:12:40 -0000	1.2977
+++ mail/ChangeLog	8 Jan 2004 05:44:18 -0000
@@ -1,3 +1,30 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* GNOME_Evolution_Mail.server.in.in,
+	em-account-prefs.c (em_account_prefs_class_init,
+		em_account_prefs_init, em_account_prefs_finalise),
+	em-account-prefs.h,
+	em-composer-prefs.c (em_composer_prefs_class_init,
+		em_composer_prefs_finalise, em_composer_prefs_construct),
+	em-composer-prefs.h,
+	em-folder-browser.c,
+	em-folder-tree.c (render_pixbuf),
+	em-folder-view.c,
+	em-format-html-display.c (efhd_xpkcs7mime_button),
+	em-format-html.c,
+	em-popup.c (em_popup_create_menu),
+	local-config.glade,
+	mail-component.c (impl__get_userCreatableItems),
+	mail-config-druid.c (mail_config_druid_new,
+		evolution_mail_config_wizard_new),
+	mail-config.glade,
+	mail-mt.c (do_op_status),
+	mail-send-recv.c (build_dialogue),
+	message-list.c (message_list_init_images),
+	message-tag-followup.c (construct),
+	message-tags.glade: Use gnome-icon-theme names for icons and
+	e-icon-factory to look them up.  Part of bug 127812.
+
 2004-01-07  Jeffrey Stedfast  <fejj ximian com>
 
 	* mail-component.c (mail_component_init): Don't migrate stuff here
Index: mail/GNOME_Evolution_Mail.server.in.in
===================================================================
RCS file: /cvs/gnome/evolution/mail/GNOME_Evolution_Mail.server.in.in,v
retrieving revision 1.16
diff -u -r1.16 GNOME_Evolution_Mail.server.in.in
--- mail/GNOME_Evolution_Mail.server.in.in	1 Dec 2003 22:14:33 -0000	1.16
+++ mail/GNOME_Evolution_Mail.server.in.in	8 Jan 2004 05:44:19 -0000
@@ -45,9 +45,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">
@@ -69,7 +69,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	8 Jan 2004 05:44:22 -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	8 Jan 2004 05:44:22 -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.1
diff -u -r1.1 em-composer-prefs.c
--- mail/em-composer-prefs.c	24 Oct 2003 19:31:22 -0000	1.1
+++ mail/em-composer-prefs.c	8 Jan 2004 05:44:25 -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);
 }
@@ -869,7 +864,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	8 Jan 2004 05:44:26 -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.13
diff -u -r1.13 em-folder-browser.c
--- mail/em-folder-browser.c	7 Jan 2004 15:58:45 -0000	1.13
+++ mail/em-folder-browser.c	8 Jan 2004 05:44:29 -0000
@@ -689,12 +689,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_mail-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.43
diff -u -r1.43 em-folder-tree.c
--- mail/em-folder-tree.c	15 Dec 2003 00:09:47 -0000	1.43
+++ mail/em-folder-tree.c	8 Jan 2004 05:44:36 -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"
@@ -226,11 +227,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;
 	}
 	
@@ -1494,16 +1495,16 @@
 
 	{ EM_POPUP_BAR, "10.emc" },
 #endif
-	{ EM_POPUP_ITEM, "10.emc.00", N_("_Copy"), G_CALLBACK (emft_popup_copy), NULL, "folder-copy-16.png", 0 },
-	{ EM_POPUP_ITEM, "10.emc.01", N_("_Move"), G_CALLBACK (emft_popup_move), NULL, "folder-move-16.png", 0 },
+	{ EM_POPUP_ITEM, "10.emc.00", N_("_Copy"), G_CALLBACK (emft_popup_copy), NULL, "stock_folder-copy", 0 },
+	{ EM_POPUP_ITEM, "10.emc.01", N_("_Move"), G_CALLBACK (emft_popup_move), NULL, "stock_folder-move", 0 },
 	
 	{ EM_POPUP_BAR, "20.emc" },
-	{ EM_POPUP_ITEM, "20.emc.00", N_("_New Folder..."), G_CALLBACK (emft_popup_new_folder), NULL, "folder-mini.png", 0 },
-	{ EM_POPUP_ITEM, "20.emc.01", N_("_Delete"), G_CALLBACK (emft_popup_delete_folder), NULL, "evolution-trash-mini.png", 0 },
+	{ EM_POPUP_ITEM, "20.emc.00", N_("_New Folder..."), G_CALLBACK (emft_popup_new_folder), NULL, "stock_folder", 0 },
+	{ EM_POPUP_ITEM, "20.emc.01", N_("_Delete"), G_CALLBACK (emft_popup_delete_folder), NULL, "stock_delete", 0 },
 	{ EM_POPUP_ITEM, "20.emc.01", N_("_Rename"), G_CALLBACK (emft_popup_rename_folder), NULL, NULL, 0 },
 	
 	{ EM_POPUP_BAR, "80.emc" },
-	{ EM_POPUP_ITEM, "80.emc.00", N_("_Properties..."), G_CALLBACK (emft_popup_properties), NULL, "configure_16_folder.xpm", 0 },
+	{ EM_POPUP_ITEM, "80.emc.00", N_("_Properties..."), G_CALLBACK (emft_popup_properties), NULL, "stock_folder-properties", 0 },
 };
 
 static gboolean
Index: mail/em-folder-view.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-folder-view.c,v
retrieving revision 1.21
diff -u -r1.21 em-folder-view.c
--- mail/em-folder-view.c	7 Jan 2004 14:29:06 -0000	1.21
+++ mail/em-folder-view.c	8 Jan 2004 05:44:41 -0000
@@ -705,31 +705,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, NULL, EM_POPUP_SELECT_MARK_JUNK },
 	{ EM_POPUP_ITEM, "30.emfv.05", N_("Mark as _Not Junk"), G_CALLBACK(emfv_popup_mark_nojunk), NULL, NULL, 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) },
@@ -1330,39 +1330,39 @@
 	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/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/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/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/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.18
diff -u -r1.18 em-format-html-display.c
--- mail/em-format-html-display.c	7 Jan 2004 14:29:06 -0000	1.18
+++ mail/em-format-html-display.c	8 Jan 2004 05:44:45 -0000
@@ -72,6 +72,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>
 
 #if defined(HAVE_NSS)
 #include <camel/camel-smime-context.h>
@@ -630,18 +631,18 @@
 	const char *icon, *shortdesc, *description;
 } smime_sign_table[4] = {
 	{ NULL, N_("Unsigned"), N_("This message is not signed.  There is no guarantee the sender of the message is authentic.") },
-	{ "pgp-signature-ok.png",N_("Valid signature"), N_("This message is signed and is valid, the sender of this message is very likely who they claim to be.") },
-	{ "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, the sender of this message is very likely who they claim to be.") },
+	{ "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.  It's 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 {
@@ -802,23 +803,17 @@
 	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 */
 	if (po->valid->sign.status == CAMEL_CIPHER_VALIDITY_SIGN_GOOD)
-		name = "pgp-signature-ok.png";
+		name = "stock_signature-ok";
 	else
-		name = "pgp-signature-bad.png";
+		name = "stock_signature-bad";
 
-	file = g_build_filename(EVOLUTION_ICONSDIR, name, NULL);
-	pixbuf = gdk_pixbuf_new_from_file(file, NULL);
-	g_free(file);
-	if (pixbuf == NULL)
-		return FALSE;
+	pixbuf = e_icon_factory_get_icon (name, 24);
 
-	/* wtf isn't this just scaled on disk? */
-	icon = gtk_image_new_from_pixbuf(gdk_pixbuf_scale_simple(pixbuf, 24, 24, GDK_INTERP_BILINEAR));
+	icon = gtk_image_new_from_pixbuf(pixbuf);
 	g_object_unref(pixbuf);
 	gtk_widget_show(icon);
 
Index: mail/em-format-html.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-format-html.c,v
retrieving revision 1.21
diff -u -r1.21 em-format-html.c
--- mail/em-format-html.c	7 Jan 2004 19:09:17 -0000	1.21
+++ mail/em-format-html.c	8 Jan 2004 05:44:49 -0000
@@ -561,19 +561,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
Index: mail/em-popup.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-popup.c,v
retrieving revision 1.9
diff -u -r1.9 em-popup.c
--- mail/em-popup.c	22 Dec 2003 14:50:57 -0000	1.9
+++ mail/em-popup.c	8 Jan 2004 05:45:00 -0000
@@ -17,6 +17,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-folder.h>
@@ -261,12 +262,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();
@@ -594,7 +595,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
 
@@ -709,14 +710,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	8 Jan 2004 05:45: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">1</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.38
diff -u -r1.38 mail-component.c
--- mail/mail-component.c	7 Jan 2004 22:12:43 -0000	1.38
+++ mail/mail-component.c	8 Jan 2004 05:45:18 -0000
@@ -390,7 +390,7 @@
 	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";
 
 	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	8 Jan 2004 05:45:20 -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.127
diff -u -r1.127 mail-config.glade
--- mail/mail-config.glade	7 Jan 2004 23:45:09 -0000	1.127
+++ mail/mail-config.glade	8 Jan 2004 05:45:40 -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.76
diff -u -r1.76 mail-mt.c
--- mail/mail-mt.c	2 Dec 2003 04:13:18 -0000	1.76
+++ mail/mail-mt.c	8 Jan 2004 05:45:45 -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 */
@@ -894,7 +892,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.80
diff -u -r1.80 mail-send-recv.c
--- mail/mail-send-recv.c	5 Jan 2004 19:03:02 -0000	1.80
+++ mail/mail-send-recv.c	8 Jan 2004 05:45:52 -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)
 
@@ -302,14 +302,20 @@
 	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);
-	
 	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;
 	
@@ -377,7 +383,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);
@@ -430,7 +438,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.361
diff -u -r1.361 message-list.c
--- mail/message-list.c	5 Jan 2004 19:32:52 -0000	1.361
+++ mail/message-list.c	8 Jan 2004 05:46:05 -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 */
 
@@ -166,28 +151,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-multiple-unread",		NULL },
+    	{ "stock_mail-multiple-open",		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 */
@@ -1225,9 +1209,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	8 Jan 2004 05:46:06 -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	8 Jan 2004 05:46:07 -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.1362
diff -u -r1.1362 ChangeLog
--- shell/ChangeLog	7 Jan 2004 14:29:07 -0000	1.1362
+++ shell/ChangeLog	8 Jan 2004 05:46:17 -0000
@@ -1,3 +1,22 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* Makefile.am: Remove e-icon-factory.{c,h}.  Part of bug 127812.
+
+	* e-component-registry.c (query_components),
+	e-shell-importer.c (e_shell_importer_start_import),
+	e-shell-settings-dialog.c (load_pages),
+	e-shell-startup-wizard.c (make_timezone_page, make_importer_page),
+	e-shell-view-menu.c,
+	e-shell-window-commands.c,
+	e-splash.c (e_splash_construct),
+	e-user-creatable-items-handler.c (ensure_menu_items),
+	evolution-shell-component-utils.c (e_pixmaps_update),
+	evolution-shell-component-utils.h,
+	evolution-test-component.c (timeout_callback_1),
+	main.c (main),
+	importer/import.glade: Use gnome-icon-theme names for icons and
+	e-icon-factory to look them up.  Part of bug 127812.
+
 2004-01-05  ERDI Gergo  <cactus cactus rulez org>
 
 	* e-task-bar.c (init): Create a separate label to the left of the
Index: shell/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution/shell/Makefile.am,v
retrieving revision 1.186
diff -u -r1.186 Makefile.am
--- shell/Makefile.am	30 Dec 2003 15:09:35 -0000	1.186
+++ shell/Makefile.am	8 Jan 2004 05:46:17 -0000
@@ -100,7 +100,6 @@
 eshellinclude_HEADERS = 			\
 	Evolution.h				\
 	e-activity-handler.h			\
-	e-icon-factory.h			\
 	e-shell-corba-icon-utils.h		\
 	e-shell-utils.h				\
 	e-task-bar.h				\
@@ -113,7 +112,6 @@
 	$(IDL_GENERATED)			\
 	$(MARSHAL_GENERATED)			\
 	e-activity-handler.c			\
-	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.43
diff -u -r1.43 e-component-registry.c
--- shell/e-component-registry.c	1 Dec 2003 22:14:42 -0000	1.43
+++ shell/e-component-registry.c	8 Jan 2004 05:46:19 -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>
@@ -169,8 +169,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.61
diff -u -r1.61 e-shell-importer.c
--- shell/e-shell-importer.c	6 Dec 2003 18:09:17 -0000	1.61
+++ shell/e-shell-importer.c	8 Jan 2004 05:46:35 -0000
@@ -1166,10 +1166,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->view = E_SHELL_VIEW (user_data);
@@ -1190,8 +1193,10 @@
 	gtk_button_set_label((GtkButton *)((GnomeDruid *)data->druid)->finish, _("_Import"));
 
 	data->start = GNOME_DRUID_PAGE_EDGE (glade_xml_get_widget (data->wizard, "page0"));
+	gnome_druid_page_edge_set_logo (data->start, icon);
 
 	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);
@@ -1202,6 +1207,7 @@
 	gtk_box_pack_start (GTK_BOX (GNOME_DRUID_PAGE_STANDARD (data->typedialog)->vbox), data->typepage->vbox, TRUE, TRUE, 0);
 
 	data->intelligent = glade_xml_get_widget (data->wizard, "page2-intelligent");
+	gnome_druid_page_standard_set_logo (data->intelligent, icon);
 	g_signal_connect (data->intelligent, "next",
 			  G_CALLBACK (next_intelligent_page), data);
 	g_signal_connect (data->intelligent, "back",
@@ -1218,6 +1224,7 @@
 	
 
 	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",
@@ -1226,6 +1233,7 @@
 			  G_CALLBACK (back_file_page), data);
 
 	data->finish = GNOME_DRUID_PAGE_EDGE (glade_xml_get_widget (data->wizard, "page3"));
+	gnome_druid_page_edge_set_logo (data->finish, icon);
 	g_signal_connect (data->finish, "back",
 			  G_CALLBACK (back_finish_page), data);
 
@@ -1242,6 +1250,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	8 Jan 2004 05:46:38 -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.45
diff -u -r1.45 e-shell-startup-wizard.c
--- shell/e-shell-startup-wizard.c	1 Dec 2003 22:14:42 -0000	1.45
+++ shell/e-shell-startup-wizard.c	8 Jan 2004 05:46:40 -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);
@@ -716,12 +721,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-view-menu.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-view-menu.c,v
retrieving revision 1.141
diff -u -r1.141 e-shell-view-menu.c
--- shell/e-shell-view-menu.c	25 Mar 2003 15:48:33 -0000	1.141
+++ shell/e-shell-view-menu.c	8 Jan 2004 05:46:42 -0000
@@ -708,30 +708,30 @@
 };
 
 static EPixmap pixmaps [] = {
-	E_PIXMAP ("/commands/SendReceive",      "send-receive.xpm"),
+	E_PIXMAP ("/commands/SendReceive",      "stock_mail-send-receive", 16),
 
-	E_PIXMAP ("/menu/File/New/Folder",	"folder.xpm"),
-	E_PIXMAP ("/menu/File/Folder/Folder",	"folder.xpm"),
-	E_PIXMAP ("/menu/File/FileImporter",	"import.xpm"),
-	E_PIXMAP ("/menu/File/ToggleOffline",	"work_offline.xpm"),
+	E_PIXMAP ("/menu/File/New/Folder",	"stock_folder", 16),
+	E_PIXMAP ("/menu/File/Folder/Folder",	"stock_folder", 16),
+	E_PIXMAP ("/menu/File/FileImporter",	"stock_mail-import", 16),
+	E_PIXMAP ("/menu/File/ToggleOffline",	"stock_disconnect", 16),
 
-	E_PIXMAP ("/menu/Tools/Settings",       "settings-16.png"), 
+	E_PIXMAP ("/menu/Tools/Settings",       "gnome-settings", 16), 
 
-	E_PIXMAP ("/Toolbar/SendReceive",       "buttons/send-24-receive.png"),
+	E_PIXMAP ("/Toolbar/SendReceive",       "stock_mail-send-receive", 24),
 
-	E_PIXMAP ("/popups/NewPopup/Folder",    "folder.xpm"),
+	E_PIXMAP ("/popups/NewPopup/Folder",    "stock_folder", 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-shell-window-commands.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-window-commands.c,v
retrieving revision 1.5
diff -u -r1.5 e-shell-window-commands.c
--- shell/e-shell-window-commands.c	18 Nov 2003 01:05:55 -0000	1.5
+++ shell/e-shell-window-commands.c	8 Jan 2004 05:46:43 -0000
@@ -277,22 +277,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	8 Jan 2004 05:46:52 -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	8 Jan 2004 05:46:57 -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	8 Jan 2004 05:47:02 -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	8 Jan 2004 05:47:02 -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/evolution-test-component.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/evolution-test-component.c,v
retrieving revision 1.40
diff -u -r1.40 evolution-test-component.c
--- shell/evolution-test-component.c	6 Feb 2003 17:26:01 -0000	1.40
+++ shell/evolution-test-component.c	8 Jan 2004 05:47:07 -0000
@@ -26,6 +26,8 @@
 #include <config.h>
 #endif
 
+#include <e-util/e-icon-factory.h>
+
 #include "evolution-shell-component.h"
 
 #include "evolution-activity-client.h"
@@ -490,7 +492,7 @@
 
 #define NUM_ACTIVITIES 10
 
-	animated_icon[0] = gdk_pixbuf_new_from_file (EVOLUTION_IMAGES "outbox-mini.png", NULL);
+	animated_icon[0] = e_icon_factory_get_icon ("stock_outbox", 16);
 	animated_icon[1] = NULL;
 
 	g_assert (animated_icon[0] != NULL);
Index: shell/main.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/main.c,v
retrieving revision 1.138
diff -u -r1.138 main.c
--- shell/main.c	30 Dec 2003 15:09:35 -0000	1.138
+++ shell/main.c	8 Jan 2004 05:47:09 -0000
@@ -25,7 +25,7 @@
 #include "e-util/e-dialog-utils.h"
 #include "e-util/e-gtk-utils.h"
 
-#include "e-icon-factory.h"
+#include <e-util/e-icon-factory.h>
 #include "e-shell-constants.h"
 #include "e-shell-window.h"	/* FIXME */
 
@@ -49,7 +49,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>
@@ -544,6 +543,7 @@
 	poptContext popt_context;
 	const char **args;
 	char *evolution_directory;
+	GList *icon_list;
 
 	/* Make ElectricFence work.  */
 	free (malloc (10));
@@ -588,7 +588,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	8 Jan 2004 05:47:10 -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.8
diff -u -r1.8 import.glade
--- shell/importer/import.glade	8 Apr 2003 15:33:02 -0000	1.8
+++ shell/importer/import.glade	8 Jan 2004 05:47:12 -0000
@@ -23,7 +23,6 @@
             <property name="text" translatable="yes">Welcome to the Evolution Import Assistant.
 With this assistant you will be guided through the process of
 importing external files into Evolution.</property>
-            <property name="logo_image">import.png</property>
             <property name="position">GNOME_EDGE_START</property>
             <property name="visible">yes</property>
           </widget>
@@ -32,7 +31,6 @@
         <child>
           <widget class="GnomeDruidPageStandard" id="page1">
             <property name="title" translatable="yes">Importer Type (step 1 of 3)</property>
-            <property name="logo">import.png</property>
             <property name="visible">yes</property>
 
             <child internal-child="vbox">
@@ -57,7 +55,6 @@
         <child>
           <widget class="GnomeDruidPageStandard" id="page2-file">
             <property name="title" translatable="yes">Select a File (step 2 of 3)</property>
-            <property name="logo">import.png</property>
             <property name="visible">yes</property>
 
             <child internal-child="vbox">
@@ -82,7 +79,6 @@
         <child>
           <widget class="GnomeDruidPageStandard" id="page2-intelligent">
             <property name="title" translatable="yes">Select Importers (step 2 of 3)</property>
-            <property name="logo">import.png</property>
             <property name="visible">yes</property>
 
             <child internal-child="vbox">
@@ -108,7 +104,6 @@
           <widget class="GnomeDruidPageEdge" id="page3">
             <property name="title" translatable="yes">Import File (step 3 of 3)</property>
             <property name="text" translatable="yes">Click &quot;Import&quot; to begin importing the file into Evolution. </property>
-            <property name="logo_image">import.png</property>
             <property name="position">GNOME_EDGE_FINISH</property>
             <property name="visible">yes</property>
           </widget>
Index: widgets/misc/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/ChangeLog,v
retrieving revision 1.254
diff -u -r1.254 ChangeLog
--- widgets/misc/ChangeLog	22 Dec 2003 17:31:46 -0000	1.254
+++ widgets/misc/ChangeLog	8 Jan 2004 05:47:30 -0000
@@ -1,3 +1,15 @@
+2004-01-07  Michael Terry <mterry fastmail fm>
+
+	* misc/e-combo-button.c (create_pixmap_widget_from_pixbuf): Removed.
+	(create_empty_pixmap_widget): Removed.
+	(create_empty_image_widget): Added, changed wording from pixmap to
+	image throughout file.
+
+	* misc/e-combo-button.c (create_empty_image_widget, set_icon),
+	misc/e-title-bar.c (button_realize_cb),
+	misc/e-url-entry.c (init): Use gnome-icon-theme names for
+	icons and e-icon-factory to look them up.  Part of bug 127812.
+
 2003-12-22  Rodney Dawes  <dobey ximian com>
 
 	Fix for bug #46349
Index: widgets/misc/e-combo-button.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/e-combo-button.c,v
retrieving revision 1.15
diff -u -r1.15 e-combo-button.c
--- widgets/misc/e-combo-button.c	22 Dec 2003 17:31:46 -0000	1.15
+++ widgets/misc/e-combo-button.c	8 Jan 2004 05:47:43 -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);
 }
 
 
@@ -162,7 +139,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,
@@ -282,9 +259,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) {
@@ -317,7 +294,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));
 
@@ -456,19 +433,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	8 Jan 2004 05:47:58 -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	8 Jan 2004 05:47:58 -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);
 

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]