changeset 5024:8e55a4d362a3

[gaim-migrate @ 5361] Patch by Rob McQueen, NEWS and CREDITS updates. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Sat, 05 Apr 2003 05:01:47 +0000
parents e218d2d2b7e9
children cd6e23154510
files NEWS doc/CREDITS pixmaps/Makefile.am plugins/chatlist.c plugins/docklet/docklet.c src/about.c src/away.c src/buddy.c src/dialogs.c src/gtkconv.c src/main.c src/multi.c src/prefs.c src/prpl.c src/server.c src/stock.c src/stock.h src/ui.h src/util.c
diffstat 19 files changed, 293 insertions(+), 742 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Sat Apr 05 04:48:26 2003 +0000
+++ b/NEWS	Sat Apr 05 05:01:47 2003 +0000
@@ -8,6 +8,13 @@
 	you've got them.  It's been a cool almost 10-months of development.
 	I hope you all enjoy. Drink'em if you got'em!
 
+	Sean: I'm writing this 3 minutes before my 21st birthday.  Nobody can
+	believe we're finally ready to relase 0.60.  Many thanks to everyone
+	who helped out; I'm convinced that Gaim 0.60 is the best IM client to
+	date (only to be bested by 0.61).  There's WAY too much stuff to mention.
+	Even the ChangeLog is somewhat incomplete.  Yay, I'm 21 now!  Everyone
+	enjoy! :)
+
 0.59 (06/24/2002):
 	Rob: I guess Sean is busy at home or something and Jim is asleep.
 	I'm very tired but it's time for a release.  Enjoy.  :)
--- a/doc/CREDITS	Sat Apr 05 04:48:26 2003 +0000
+++ b/doc/CREDITS	Sat Apr 05 05:01:47 2003 +0000
@@ -73,11 +73,13 @@
 Many, many thanks to Luke Schierer who logs many hours in #gaim (as LSchiere)
 providing technical support to users and testing patches for developers.
 
+Similar thanks to Ka-Hing Cheung for also committing tons of time offering
+support and submitting patches
+
 A big thanks to the X-Chat developers, who were kind enough to
 license X-Chat under the GPL so that I could learn to be as cool
 as them. -EW
 
-OctaneZ is so cool.
-
 Thanks to Jeroen van der Vegt for the initial smiley plugin and images.
 
+And tons of thanks to all our users and testers!
--- a/pixmaps/Makefile.am	Sat Apr 05 04:48:26 2003 +0000
+++ b/pixmaps/Makefile.am	Sat Apr 05 05:01:47 2003 +0000
@@ -1,21 +1,13 @@
 SUBDIRS = protocols smileys status
-EXTRA_DIST =	about_menu.png \
-		accounts.png \
-		accounts-menu.png \
-		add.xpm				\
-		arrow_down.xpm			\
-		arrow_right.xpm			\
+
+EXTRA_DIST = \
+		about_menu.png			\
+		accounts.png			\
 		away.png			\
-		away_big.xpm			\
-		block.xpm			\
-		broken.xpm			\
-		cancel.xpm			\
-		change-bgcolor-small.png \
-		change-fgcolor-small.png \
-		close.xpm			\
+		change-bgcolor-small.png	\
+		change-fgcolor-small.png	\
 		connect.png			\
 		edit.png			\
-		fontface2.xpm			\
 		gaim.png			\
 		gaim_auth.png			\
 		gaim_cool.png			\
@@ -23,65 +15,36 @@
 		gaim_info.png			\
 		gaim_question.png		\
 		gaim_warning.png		\
-		gnome_add.xpm			\
-		gnome_preferences.xpm		\
-		gnome_remove.xpm 		\
-		group.xpm			\
-		import-menu.png \
-		insert-image-small.png \
-		insert-link-small.png \
-		insert-smiley-small.png \
-		join.xpm			\
-		login_icon.xpm			\
-		logo.png		\
-		logo.xpm			\
-		logout_icon.xpm			\
+		insert-image-small.png		\
+		insert-link-small.png		\
+		insert-smiley-small.png		\
+		logo.png			\
 		msgpend.png			\
 		msgunread.png			\
-		no_icon.xpm			\
 		offline.png			\
-		ok.xpm				\
 		online.png			\
-		panic.xpm			\
-		preferences.png	\
-		refresh.xpm			\
-		save.xpm			\
-		signon.png \
-		status-away.xpm			\
-		status-game.xpm			\
-		status-here.xpm			\
-		status-idle.xpm			\
-		tb_drag_arrow_down.xpm  \
-		tb_drag_arrow_left.xpm  \
-		tb_drag_arrow_right.xpm \
-		tb_drag_arrow_up.xpm    \
-		tb_forward.xpm			\
-		tb_redo.xpm			\
-		tb_refresh.xpm			\
-		tb_search.xpm	\
-		tb_undo.xpm			\
+		tb_drag_arrow_down.xpm		\
+		tb_drag_arrow_left.xpm		\
+		tb_drag_arrow_right.xpm		\
+		tb_drag_arrow_up.xpm		\
 		text_bigger.png			\
-		text_normal.png	\
+		text_normal.png			\
 		text_smaller.png		\
-		tmp_send.xpm			\
-		typed.png               \
-		typing.png              \
-		warn.xpm			
-
+		typed.png			\
+		typing.png
 
 gaimbuttonpixdir = $(datadir)/pixmaps/gaim/buttons
-gaimbuttonpix_DATA = edit.png accounts.png change-bgcolor-small.png change-fgcolor-small.png signon.png preferences.png insert-image-small.png text_bigger.png text_smaller.png insert-link-small.png insert-smiley-small.png text_normal.png
+gaimbuttonpix_DATA = about_menu.png accounts.png change-bgcolor-small.png change-fgcolor-small.png edit.png insert-image-small.png insert-link-small.png insert-smiley-small.png text_bigger.png text_normal.png text_smaller.png
 
 gaimdialogpixdir = $(datadir)/pixmaps/gaim/dialogs
 gaimdialogpix_DATA = gaim_error.png gaim_info.png gaim_question.png gaim_warning.png gaim_cool.png gaim_auth.png
 
-gaimmenupixdir = $(datadir)/pixmaps/gaim/menus
-gaimmenupix_DATA = insert-image-small.png about_menu.png import-menu.png accounts-menu.png insert-link-small.png
+gaimiconpixdir = $(datadir)/pixmaps/gaim/icons
+gaimiconpix_DATA = away.png connect.png msgpend.png offline.png online.png msgunread.png
 
 gaimdistpixdir = $(datadir)/pixmaps/gaim
-gaimdistpix_DATA = away.png connect.png msgpend.png offline.png online.png msgunread.png logo.png tb_drag_arrow_down.xpm tb_drag_arrow_left.xpm tb_drag_arrow_right.xpm tb_drag_arrow_up.xpm typed.png typing.png
+gaimdistpix_DATA = logo.png tb_drag_arrow_down.xpm tb_drag_arrow_left.xpm tb_drag_arrow_right.xpm tb_drag_arrow_up.xpm typed.png typing.png
 
 distpixmapdir = $(datadir)/pixmaps
 distpixmap_DATA = gaim.png
 
-
--- a/plugins/chatlist.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/plugins/chatlist.c	Sat Apr 05 05:01:47 2003 +0000
@@ -10,10 +10,6 @@
 
 #define GTK_ENABLE_BROKEN
 
-#include "pixmaps/refresh.xpm"
-#include "pixmaps/gnome_add.xpm"
-#include "pixmaps/gnome_remove.xpm"
-
 #include "proxy.h"
 #include "gaim.h"
 
@@ -309,7 +305,6 @@
 	vbox = make_frame(ret, _("Chat Rooms"));
 
 	table = gtk_table_new(4, 2, FALSE);
-	gtk_widget_show(table);
 
 	gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
 
@@ -318,13 +313,9 @@
 	sw1 = gtk_scrolled_window_new(NULL, NULL);
 	sw2 = gtk_scrolled_window_new(NULL, NULL);
 
-	ref_button = picture_button(prefs, _("Refresh"), refresh_xpm);
-	add_button = picture_button(prefs, _("Add"), gnome_add_xpm);
-	rem_button = picture_button(prefs, _("Remove"), gnome_remove_xpm);
-	gtk_widget_show(list1);
-	gtk_widget_show(sw1);
-	gtk_widget_show(list2);
-	gtk_widget_show(sw2);
+	ref_button = gaim_pixbuf_button_from_stock(_("Refresh"), GTK_STOCK_REFRESH, GAIM_BUTTON_HORIZONTAL);
+	add_button = gaim_pixbuf_button_from_stock(_("Add"), GTK_STOCK_ADD, GAIM_BUTTON_HORIZONTAL);
+	rem_button = gaim_pixbuf_button_from_stock(_("Remove"), GTK_STOCK_REMOVE, GAIM_BUTTON_HORIZONTAL);
 
 	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw1), list1);
 	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list2);
@@ -337,7 +328,6 @@
 	g_signal_connect(GTK_OBJECT(add_button), "clicked", G_CALLBACK(add_chat), cp);
 
 	label = gtk_label_new(_("List of available chats"));
-	gtk_widget_show(label);
 
 	gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
 	gtk_table_attach(GTK_TABLE(table), ref_button, 0, 1, 1, 2, GTK_SHRINK, GTK_SHRINK, 0, 0);
@@ -347,7 +337,6 @@
 
 
 	label = gtk_label_new(_("List of subscribed chats"));
-	gtk_widget_show(label);
 
 	gtk_table_attach(GTK_TABLE(table), label, 1, 2, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
 	gtk_table_attach(GTK_TABLE(table), sw2, 1, 2, 2, 3,
@@ -360,7 +349,6 @@
 	strcpy(cr->name, _("Gaim Chat"));
 	cr->exchange = 4;
 	gtk_object_set_user_data(GTK_OBJECT(item), cr);
-	gtk_widget_show(item);
 	gtk_list_append_items(GTK_LIST(list1), g_list_append(NULL, item));
 
 
@@ -368,7 +356,6 @@
 		cr = (struct chat_room *)crs->data;
 		item = gtk_list_item_new_with_label(cr->name);
 		gtk_object_set_user_data(GTK_OBJECT(item), cr);
-		gtk_widget_show(item);
 		items = g_list_append(items, item);
 
 		crs = crs->next;
--- a/plugins/docklet/docklet.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/plugins/docklet/docklet.c	Sat Apr 05 05:01:47 2003 +0000
@@ -20,7 +20,6 @@
  */
 
 /* todo (in order of importance):
-    - check removing the icon factory actually frees the icons
     - unify the queue so we can have a global away without the dialog
     - handle and update tooltips to show your current accounts/queued messages?
     - show a count of queued messages in the unified queue
@@ -57,7 +56,6 @@
 /* globals */
 static EggTrayIcon *docklet = NULL;
 static GtkWidget *image = NULL;
-static GtkIconFactory *icon_factory = NULL;
 static enum docklet_status status;
 static enum docklet_status icon;
 
@@ -94,13 +92,11 @@
 	switch (status) {
 		case offline:
 		case offline_connecting:
-			entry = gtk_menu_item_new_with_label(_("Auto-login"));
-			g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(auto_login), NULL);
-			gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
+			gaim_new_item_from_stock(menu, _("Auto-login"), GAIM_STOCK_SIGN_ON, G_CALLBACK(auto_login), NULL, 0, 0, NULL);
 			break;
 		default:
-			gaim_new_item_from_stock(menu, _("New Message.."), GTK_STOCK_CONVERT, G_CALLBACK(show_im_dialog), NULL, 0, 0, NULL);
-			gaim_new_item_from_stock(menu, _("Join A Chat..."), GTK_STOCK_JUMP_TO, G_CALLBACK(join_chat), NULL, 0, 0, NULL);
+			gaim_new_item_from_stock(menu, _("New Message.."), GAIM_STOCK_IM, G_CALLBACK(show_im_dialog), NULL, 0, 0, NULL);
+			gaim_new_item_from_stock(menu, _("Join A Chat..."), GAIM_STOCK_CHAT, G_CALLBACK(join_chat), NULL, 0, 0, NULL);
 			break;
 	}
 
@@ -154,8 +150,8 @@
 	g_signal_connect(G_OBJECT(entry), "toggled", G_CALLBACK(docklet_toggle_mute), NULL);
 	gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
 
-	gaim_new_item_from_stock(menu, _("File Transfers..."), GTK_STOCK_REVERT_TO_SAVED, G_CALLBACK(gaim_show_xfer_dialog), NULL, 0, 0, NULL);
-	gaim_new_item_from_pixbuf(menu, _("Accounts..."), "accounts-menu.png", G_CALLBACK(account_editor), NULL, 0, 0, NULL);
+	gaim_new_item_from_stock(menu, _("File Transfers..."), GAIM_STOCK_FILE_TRANSFER, G_CALLBACK(gaim_show_xfer_dialog), NULL, 0, 0, NULL);
+	gaim_new_item_from_stock(menu, _("Accounts..."), GAIM_STOCK_ACCOUNTS, G_CALLBACK(account_editor), NULL, 0, 0, NULL);
 	gaim_new_item_from_stock(menu, _("Preferences..."), GTK_STOCK_PREFERENCES, G_CALLBACK(show_prefs), NULL, 0, 0, NULL);
 
 	gaim_separator(menu);
@@ -165,9 +161,7 @@
 		case offline_connecting:
 			break;
 		default:
-			entry = gtk_menu_item_new_with_label(_("Signoff"));
-			g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(signoff_all), NULL);
-			gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
+			gaim_new_item_from_stock(menu, _("Signoff"), GTK_STOCK_CLOSE, G_CALLBACK(signoff_all), NULL, 0, 0, 0);
 			break;
 	}
 
@@ -203,23 +197,23 @@
 
 	switch (icon) {
 		case offline:
-			icon_name = "gaim-docklet-offline";
+			icon_name = GAIM_STOCK_ICON_OFFLINE;
 			break;
 		case offline_connecting:
 		case online_connecting:
-			icon_name = "gaim-docklet-connect";
+			icon_name = GAIM_STOCK_ICON_CONNECT;
 			break;
 		case online:
-			icon_name = "gaim-docklet-online";
+			icon_name = GAIM_STOCK_ICON_ONLINE;
 			break;
 		case online_pending:
-			icon_name = "gaim-docklet-msgunread";
+			icon_name = GAIM_STOCK_ICON_ONLINE_MSG;
 			break;
 		case away:
-			icon_name = "gaim-docklet-away";
+			icon_name = GAIM_STOCK_ICON_AWAY;
 			break;
 		case away_pending:
-			icon_name = "gaim-docklet-msgpend";
+			icon_name = GAIM_STOCK_ICON_AWAY_MSG;
 			break;
 	}
 
@@ -400,35 +394,7 @@
 static void gaim_new_conversation(char *who, void *data) {
 } */
 
-static void docklet_register_icon(const char *name, char *fn) {
-	gchar *filename;
-
-	filename = g_build_filename(DATADIR, "pixmaps", "gaim", fn, NULL);
-	gtk_icon_factory_add(icon_factory, name,
-		gtk_icon_set_new_from_pixbuf(gdk_pixbuf_new_from_file(filename, NULL)));
-	g_free(filename);
-}
-
-static void docklet_register_icon_factory() {
-	icon_factory = gtk_icon_factory_new();
-	
-	docklet_register_icon("gaim-docklet-offline", "offline.png");
-	docklet_register_icon("gaim-docklet-connect", "connect.png");
-	docklet_register_icon("gaim-docklet-online", "online.png");
-	docklet_register_icon("gaim-docklet-msgunread", "msgunread.png");
-	docklet_register_icon("gaim-docklet-away", "away.png");
-	docklet_register_icon("gaim-docklet-msgpend", "msgpend.png");
-
-	gtk_icon_factory_add_default(icon_factory);
-}
-
-static void docklet_unregister_icon_factory() {
-	gtk_icon_factory_remove_default(icon_factory);
-}
-
 char *gaim_plugin_init(GModule *handle) {
-	docklet_register_icon_factory();
-
 	docklet_create(NULL);
 
 	gaim_signal_connect(handle, event_signon, gaim_signon, NULL);
@@ -459,8 +425,6 @@
 
 	g_object_unref(G_OBJECT(docklet));
 	docklet = NULL;
-	
-	docklet_unregister_icon_factory();
 
 	/* do this while gaim has no other way to toggle the global mute */
 	gaim_sound_set_mute(FALSE);
--- a/src/about.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/about.c	Sat Apr 05 05:01:47 2003 +0000
@@ -65,7 +65,6 @@
 	GtkWidget *text;
 	GtkWidget *sw;
 	GtkWidget *logo;
-
 	char abouttitle[45];
 
 	if (!about) {
@@ -81,20 +80,16 @@
 		vbox = gtk_vbox_new(FALSE, 5);
 		gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
 		gtk_container_add(GTK_CONTAINER(about), vbox);
-		gtk_widget_show(vbox);
 
 		frame = gtk_frame_new("Gaim v" VERSION);
 		gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
-		gtk_widget_show(frame);
 
 		fbox = gtk_vbox_new(FALSE, 5);
 		gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
 		gtk_container_add(GTK_CONTAINER(frame), fbox);
-		gtk_widget_show(fbox);
 
-		logo = gaim_pixmap(NULL, "logo.png");
+		logo = gtk_image_new_from_stock(GAIM_STOCK_LOGO, gtk_icon_size_from_name(GAIM_ICON_SIZE_LOGO));
 		gtk_box_pack_start(GTK_BOX(fbox), logo, FALSE, FALSE, 0);
-		gtk_widget_show(logo);
 
 		sw = gtk_scrolled_window_new(NULL, NULL);
 		gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
@@ -107,7 +102,6 @@
 		gtk_widget_set_size_request(sw, -1, 350);
 		gaim_setup_imhtml(text);
 
-
 		gtk_imhtml_append_text(GTK_IMHTML(text),
 				  _("Gaim is a modular Instant Messaging client capable of "
 					  "using AIM, ICQ, Yahoo!, MSN, IRC, Jabber, Napster, "
@@ -166,10 +160,6 @@
 
 		gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)), 0);
 
-		gtk_widget_show(text);
-		gtk_widget_show(sw);
-
-
 		/* Close Button */
 
 		hbox = gtk_hbox_new(FALSE, 5);
@@ -183,15 +173,14 @@
 								 G_CALLBACK(destroy_about), G_OBJECT(about));
 		g_signal_connect(G_OBJECT(about), "destroy",
 						 G_CALLBACK(destroy_about), G_OBJECT(about));
-		gtk_widget_show(button);
 
 		/* this makes the sizes not work. */
 		/* GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); */
 		/* gtk_widget_grab_default(button); */
 
-		gtk_widget_show(button);
 	}
 
 	/* Let's give'em something to talk about -- woah woah woah */
+	gtk_widget_show_all(about);
 	gtk_window_present(GTK_WINDOW(about));
 }
--- a/src/away.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/away.c	Sat Apr 05 05:01:47 2003 +0000
@@ -31,7 +31,6 @@
 #include "gaim.h"
 #include "prpl.h"
 #include "gtkimhtml.h"
-#include "pixmaps/join.xpm"
 #include "gtklist.h"
 
 GtkWidget *imaway = NULL;
@@ -277,10 +276,11 @@
 			gtk_widget_show(awayqueue);
 		}
 
-		back = picture_button(imaway, _("I'm Back!"), join_xpm);
+		back = gaim_pixbuf_button_from_stock(_("I'm Back!"), GTK_STOCK_JUMP_TO, GAIM_BUTTON_HORIZONTAL);
 		gtk_box_pack_start(GTK_BOX(vbox), back, FALSE, FALSE, 0);
 		g_signal_connect(GTK_OBJECT(back), "clicked", G_CALLBACK(do_im_back), imaway);
 		gtk_window_set_focus(GTK_WINDOW(imaway), back);
+		gtk_widget_show(back);
 
 		awaymessage = a;
 	} else {
--- a/src/buddy.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/buddy.c	Sat Apr 05 05:01:47 2003 +0000
@@ -359,6 +359,8 @@
 
 		menuitem = gtk_image_menu_item_new_with_mnemonic(_("_Alias"));
 		g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(gtk_blist_menu_alias_cb), node);
+		image = gtk_image_new_from_stock(GAIM_STOCK_EDIT, GTK_ICON_SIZE_MENU);
+		gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
 		gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
 
 		menuitem = gtk_image_menu_item_new_with_mnemonic(_("_Remove"));
@@ -648,46 +650,36 @@
 {
 	/* Buddies menu */
 	{ N_("/_Buddies"), NULL, NULL, 0, "<Branch>" },
-		{ N_("/Buddies/New _Instant Message..."), "<CTL>I", show_im_dialog, 0,
-	  "<StockItem>", GAIM_STOCK_IM },
-	{ N_("/Buddies/Join a _Chat..."), "<CTL>C", join_chat, 0, 
-	  "<StockItem>", GAIM_STOCK_CHAT },
+	{ N_("/Buddies/New _Instant Message..."), "<CTL>I", show_im_dialog, 0, "<StockItem>", GAIM_STOCK_IM },
+	{ N_("/Buddies/Join a _Chat..."), "<CTL>C", join_chat, 0, "<StockItem>", GAIM_STOCK_CHAT },
+	{ N_("/Buddies/Get _User Info..."), "<CTL>J", show_info_dialog, 0, "<StockItem>", GAIM_STOCK_INFO },
 	{ "/Buddies/sep1", NULL, NULL, 0, "<Separator>" },
-	{ N_("/Buddies/Get _User Info..."), "<CTL>J", show_info_dialog, 0,
-	  "<StockItem>", GAIM_STOCK_INFO },
-	{ "/Buddies/sep2", NULL, NULL, 0, "<Separator>" },
 	{ N_("/Buddies/_Show Offline Buddies"), NULL, gaim_gtk_blist_edit_mode_cb, 1, "<CheckItem>"},
 	{ N_("/Buddies/Show _Empty Groups"), NULL, gaim_gtk_blist_show_empty_groups_cb, 1, "<CheckItem>"},
 	{ N_("/Buddies/_Add a Buddy..."), NULL, gaim_gtk_blist_add_buddy_cb, 0, "<StockItem>", GTK_STOCK_ADD }, 
 	{ N_("/Buddies/Add a _Group..."), NULL, show_add_group, 0, NULL},
-	{ "/Buddies/sep3", NULL, NULL, 0, "<Separator>" },
-	{ N_("/Buddies/_Signoff"), "<CTL>D", signoff_all, 0, NULL },
-	{ N_("/Buddies/_Quit"), "<CTL>Q", do_quit, 0,
-	  "<StockItem>", GTK_STOCK_QUIT },
+	{ "/Buddies/sep2", NULL, NULL, 0, "<Separator>" },
+	{ N_("/Buddies/_Signoff"), "<CTL>D", signoff_all, 0, "<StockItem>", GAIM_STOCK_SIGN_OFF },
+	{ N_("/Buddies/_Quit"), "<CTL>Q", do_quit, 0, "<StockItem>", GTK_STOCK_QUIT },
 
 	/* Tools */ 
 	{ N_("/_Tools"), NULL, NULL, 0, "<Branch>" },
 	{ N_("/Tools/_Away"), NULL, NULL, 0, "<Branch>" },
 	{ N_("/Tools/Buddy _Pounce"), NULL, NULL, 0, "<Branch>" },
-	{ N_("/Tools/sep1"), NULL, NULL, 0, "<Separator>" },
-	{ N_("/Tools/_File Transfers"), NULL, gaim_show_xfer_dialog, 0,
-	  "<StockItem>", GTK_STOCK_REVERT_TO_SAVED },
+	{ N_("/Tools/P_rotocol Actions"), NULL, NULL, 0, "<Branch>" },
+	{ "/Tools/sep1", NULL, NULL, 0, "<Separator>" },
+	{ N_("/Tools/_File Transfers..."), NULL, gaim_show_xfer_dialog, 0, "<StockItem>", GAIM_STOCK_FILE_TRANSFER },
+	{ N_("/Tools/A_ccounts..."), "<CTL>A", account_editor, 0, "<StockItem>", GAIM_STOCK_ACCOUNTS },
+	{ N_("/Tools/Preferences..."), "<CTL>P", show_prefs, 0, "<StockItem>", GTK_STOCK_PREFERENCES },
+	{ N_("/Tools/Pr_ivacy..."), NULL, show_privacy_options, 0, "<StockItem>", GAIM_STOCK_PRIVACY },
 	{ "/Tools/sep2", NULL, NULL, 0, "<Separator>" },
-	{ N_("/Tools/P_rotocol Actions"), NULL, NULL, 0, "<Branch>" },
-	{ N_("/Tools/View System _Log"), NULL, gtk_blist_show_systemlog_cb, 0, NULL },
-	{ "/Tools/sep3", NULL, NULL, 0, "<Separator>" },
-	{ N_("/Tools/A_ccounts"), "<CTL>A", account_editor, 0, NULL },
-	{ N_("/Tools/Preferences"), "<CTL>P", show_prefs, 0,
-	  "<StockItem>", GTK_STOCK_PREFERENCES },
-	{ N_("/Tools/Pr_ivacy"), NULL, show_privacy_options, 0, NULL },
+	{ N_("/Tools/View System _Log..."), NULL, gtk_blist_show_systemlog_cb, 0, NULL },
 
 	/* Help */
 	{ N_("/_Help"), NULL, NULL, 0, "<Branch>" },
-	{ N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0,
-	  "<StockItem>", GTK_STOCK_HELP },
-	{ N_("/Help/_Debug Window"), NULL, toggle_debug, 0, NULL },
-	{ N_("/Help/_About"), NULL, show_about, 0, NULL },
-
+	{ N_("/Help/Online _Help"), "F1", gtk_blist_show_onlinehelp_cb, 0, "<StockItem>", GTK_STOCK_HELP },
+	{ N_("/Help/_Debug Window..."), NULL, toggle_debug, 0, NULL },
+	{ N_("/Help/_About..."), NULL, show_about, 0,  "<StockItem>", GAIM_STOCK_ABOUT },
 };
 
 /*********************************************************
@@ -1293,7 +1285,7 @@
 	gtk_tooltips_set_tip(GTK_TOOLTIPS(gtkblist->tooltips), button, _("Join a chat room"), NULL);
 	gtk_widget_show(button);
 
-	button = gaim_pixbuf_button_from_stock(_("Away"), GAIM_STOCK_AWAY, GAIM_BUTTON_VERTICAL);
+	button = gaim_pixbuf_button_from_stock(_("Away"), GAIM_STOCK_ICON_AWAY, GAIM_BUTTON_VERTICAL);
 	gtk_box_pack_start(GTK_BOX(gtkblist->bbox), button, FALSE, FALSE, 0);
 	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
 	gtk_size_group_add_widget(sg, button);
@@ -1462,7 +1454,7 @@
 	GaimBlistNode *sibling;
 	GtkTreeIter siblingiter;
 	GdkPixbuf *groupicon = gtk_widget_render_icon(gtkblist->treeview,
-			GTK_STOCK_OPEN, GTK_ICON_SIZE_SMALL_TOOLBAR, NULL);
+			GAIM_STOCK_GROUP, GTK_ICON_SIZE_SMALL_TOOLBAR, NULL);
 	struct group *group = (struct group *)node;
 	char *esc = g_markup_escape_text(group->name, -1);
 	char *mark;
--- a/src/dialogs.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/dialogs.c	Sat Apr 05 05:01:47 2003 +0000
@@ -54,13 +54,6 @@
 #include "win32dep.h"
 #endif
 
-#include "pixmaps/gnome_preferences.xpm"
-#include "pixmaps/cancel.xpm"
-#include "pixmaps/save.xpm"
-#include "pixmaps/ok.xpm"
-#include "pixmaps/add.xpm"
-#include "pixmaps/close.xpm"
-
 #define PATHSIZE 1024
 
 GdkColor bgcolor;
@@ -360,18 +353,16 @@
 
 void show_warn_dialog(struct gaim_connection *gc, char *who)
 {
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL);
 	char *labeltext;
 	GtkWidget *hbox, *vbox;
 	GtkWidget *label;
-	GtkWidget *img = gtk_image_new_from_file(filename);
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG);
 	struct gaim_conversation *c = gaim_find_conversation(who);
 
 	struct warning *w = g_new0(struct warning, 1);
 	w->who = who;
 	w->gc = gc;
 
-	g_free(filename);
 	gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
 
 	w->window = gtk_dialog_new_with_buttons(_("Warn User"), GTK_WINDOW(c->window), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, _("_Warn"), GTK_RESPONSE_OK, NULL);
@@ -492,36 +483,33 @@
 	GtkWidget *img = NULL;
 	GtkWidget *hbox;
 	char labeltext[1024 * 2];
- 	char *filename = NULL;
+	const char *name = NULL;
 
 	/* These are the GTK stock dialog icons with our little Gaim logo on top.
 	 * Inspired by the GIMP. */
 	switch (type){
 	case GAIM_LOGO:
-		 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "gaim.png", NULL);
-		 break;
- 	case GAIM_INFO:
-	 	filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_info.png", NULL);
+		name = GAIM_STOCK_ICON_ONLINE;
+		break;
+	case GAIM_INFO:
+		name = GAIM_STOCK_DIALOG_INFO;
 		break; 
 	case GAIM_WARNING:
-	 	filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL);
-	  	break;
+		name = GAIM_STOCK_DIALOG_WARNING;
+		break;
 	case GAIM_ERROR:
-	 	filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_error.png", NULL);
-	 	break;
-		/*	 case GAIM_QUESTION:
-			 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
-			 break;
-		*/
+		name = GAIM_STOCK_DIALOG_ERROR;
+		break;
 	}
-	if (filename) {
-		img = gtk_image_new_from_file(filename);
-		g_free(filename);
+
+	if (name) {
+		img = gtk_image_new_from_stock(name, GTK_ICON_SIZE_DIALOG);
 		gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
 	}
+
 	d = gtk_dialog_new_with_buttons("", NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
 	g_signal_connect(d, "response", G_CALLBACK(gtk_widget_destroy), NULL);
-	
+
 	gtk_container_set_border_width (GTK_CONTAINER(d), 6);
 	gtk_window_set_resizable(GTK_WINDOW(d), FALSE);
 	gtk_dialog_set_has_separator(GTK_DIALOG(d), FALSE);
@@ -530,10 +518,9 @@
 
 	hbox = gtk_hbox_new(FALSE, 12);
 	gtk_container_add(GTK_CONTAINER(GTK_DIALOG(d)->vbox), hbox);
-	if (filename) {
+	if (img) {
 		gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
 	}
-	gtk_widget_show(img);
 
 	g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", primary, secondary ? secondary : "");
 	
@@ -541,17 +528,13 @@
 	gtk_label_set_markup(GTK_LABEL(label), labeltext);
 	gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
 	gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
-	gtk_widget_show(label);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 
-	gtk_widget_show(hbox);
-
-	gtk_widget_show(d);
+	gtk_widget_show_all(d);
+
 	return d;
 }
 
-
-
 static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info)
 {
 	const char *who;
@@ -612,8 +595,7 @@
 	GtkWidget *hbox;
 	GtkWidget *label;
 	struct gaim_gtk_buddy_list *gtkblist;
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_cool.png", NULL);
-	GtkWidget *img = gtk_image_new_from_file(filename);
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_COOL, GTK_ICON_SIZE_DIALOG);
 
 	gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
 
@@ -688,14 +670,11 @@
 	struct gaim_connection *c;
 	struct gaim_gtk_buddy_list *gtkblist;
 	char buf[256];
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
-	GtkWidget *img = gtk_image_new_from_file(filename);
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
 	struct getuserinfo *info = NULL;
 
 	gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
 
-	g_free(filename);
-
 	if (!imdialog) {
 		info = g_new0(struct getuserinfo, 1);
 		info->gc = connections->data;
@@ -789,8 +768,7 @@
 {
 	GtkWidget *window, *hbox, *vbox;
 	GtkWidget *label;
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
-	GtkWidget *img = gtk_image_new_from_file(filename);
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
 	GtkWidget *table, *menu, *opt;
 	GSList *g = connections;
 	struct gaim_connection *c;
@@ -800,7 +778,6 @@
 
 	gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
 
-	g_free(filename);
 	info->gc = connections->data;
 
 	window = gtk_dialog_new_with_buttons(_("Get User Info"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, GTK_DIALOG_MODAL, 
@@ -992,13 +969,11 @@
 	GtkWidget *hbox, *vbox;
 	GtkWidget *label;
 	struct gaim_gtk_buddy_list *gtkblist;
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
-	GtkWidget *img = gtk_image_new_from_file(filename);
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
 	struct addbuddy *a = g_new0(struct addbuddy, 1);
 
 	gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
 
-	g_free(filename);
 	a->gc = gc;
 
 	a->window =  gtk_dialog_new_with_buttons(_("Add Group"), GTK_WINDOW(gtkblist->window), GTK_DIALOG_MODAL, 
@@ -1102,15 +1077,12 @@
 	GtkWidget *hbox;
 	GtkWidget *vbox;
 	struct gaim_gtk_buddy_list *gtkblist;
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
-	GtkWidget *img = gtk_image_new_from_file(filename);
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
 	struct addbuddy *a = g_new0(struct addbuddy, 1);
 	a->gc = gc ? gc : connections->data;
 
 	gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
 
-	g_free(filename);
-
 	GAIM_DIALOG(a->window);
 	a->window = gtk_dialog_new_with_buttons(_("Add Buddy"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, GTK_DIALOG_MODAL,
 					GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL);
@@ -1844,19 +1816,18 @@
 
 	bot = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(fbox), bot, FALSE, FALSE, 0);
-	gtk_widget_show(bot);
-
-	b->save = picture_button(b->window, _("Save"), save_xpm);
+
+	b->save = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(bot), b->save, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(b->save), "clicked", G_CALLBACK(do_set_dir), b);
 
-	b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
+	b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(bot), b->cancel, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window);
 
 	gtk_window_set_focus(GTK_WINDOW(b->window), b->first);
 
-	gtk_widget_show(b->window);
+	gtk_widget_show_all(b->window);
 }
 
 void do_change_password(GtkWidget *widget, struct passwddlg *b)
@@ -1908,78 +1879,64 @@
 	fbox = gtk_vbox_new(FALSE, 5);
 	gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
 	gtk_container_add(GTK_CONTAINER(b->window), fbox);
-	gtk_widget_show(fbox);
 
 	frame = gtk_frame_new(_("Change Password"));
 	gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0);
-	gtk_widget_show(frame);
 
 	vbox = gtk_vbox_new(FALSE, 5);
 	gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
 	gtk_container_add(GTK_CONTAINER(frame), vbox);
-	gtk_widget_show(vbox);
 
 	g_snprintf(buf, sizeof(buf), _("Changing password for %s:"), gc->username);
 	label = gtk_label_new(buf);
 	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
-	gtk_widget_show(label);
 
 	/* First Line */
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-	gtk_widget_show(hbox);
 
 	label = gtk_label_new(_("Original Password"));
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-	gtk_widget_show(label);
 
 	b->original = gtk_entry_new();
 	gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE);
 	gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 0);
-	gtk_widget_show(b->original);
 
 	/* Next Line */
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-	gtk_widget_show(hbox);
 
 	label = gtk_label_new(_("New Password"));
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-	gtk_widget_show(label);
 
 	b->new1 = gtk_entry_new();
 	gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE);
 	gtk_box_pack_end(GTK_BOX(hbox), b->new1, FALSE, FALSE, 0);
-	gtk_widget_show(b->new1);
 
 	/* Next Line */
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-	gtk_widget_show(hbox);
 
 	label = gtk_label_new(_("New Password (again)"));
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-	gtk_widget_show(label);
 
 	b->new2 = gtk_entry_new();
 	gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE);
 	gtk_box_pack_end(GTK_BOX(hbox), b->new2, FALSE, FALSE, 0);
-	gtk_widget_show(b->new2);
 
 	/* Now do our row of buttons */
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0);
-	gtk_widget_show(hbox);
-
-	b->ok = picture_button(b->window, _("OK"), ok_xpm);
+
+	b->ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(hbox), b->ok, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(b->ok), "clicked", G_CALLBACK(do_change_password), b);
 
-	b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
+	b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window);
 
-	gtk_widget_show(b->window);
+	gtk_widget_show_all(b->window);
 }
 
 void show_set_info(struct gaim_connection *gc)
@@ -2006,19 +1963,16 @@
 	vbox = gtk_vbox_new(FALSE, 5);
 	gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
 	gtk_container_add(GTK_CONTAINER(b->window), vbox);
-	gtk_widget_show(vbox);
 
 	buf = g_malloc(256);
 	g_snprintf(buf, 256, _("Changing info for %s:"), account->username);
 	label = gtk_label_new(buf);
 	g_free(buf);
 	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
-	gtk_widget_show(label);
 
 	frame = gtk_frame_new(NULL);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 	gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
-	gtk_widget_show(frame);
 
 	b->text = gtk_text_view_new();
 	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(b->text), GTK_WRAP_WORD);
@@ -2029,23 +1983,20 @@
 	gtk_text_buffer_set_text(buffer, buf, -1);
 	g_free(buf);
 	gtk_container_add(GTK_CONTAINER(frame), b->text);
-	gtk_widget_show(b->text);
 	gtk_window_set_focus(GTK_WINDOW(b->window), b->text);
 
 	buttons = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0);
-	gtk_widget_show(buttons);
-
-	b->save = picture_button(b->window, _("Save"), save_xpm);
+
+	b->save = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(buttons), b->save, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(b->save), "clicked", G_CALLBACK(do_save_info), b);
 
-	b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
+	b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window);
 
-	gtk_widget_show(b->window);
-
+	gtk_widget_show_all(b->window);
 }
 
 /*------------------------------------------------------------------------*/
@@ -2109,7 +2060,7 @@
 		gtk_widget_set_size_request(sw, 300, 250);
 		gaim_setup_imhtml(text);
 
-		ok = picture_button(b->window, _("OK"), ok_xpm);
+		ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
 		g_signal_connect_swapped(GTK_OBJECT(ok), "clicked", G_CALLBACK(gtk_widget_destroy),
 					  GTK_OBJECT(b->window));
 		gtk_box_pack_start(GTK_BOX(bbox), ok, FALSE, FALSE, 0);
@@ -2200,10 +2151,10 @@
 	/* Build Add Button */
 
 	if (permit)
-		add = picture_button(p->window, _("Permit"), add_xpm);
+		add = gaim_pixbuf_button_from_stock(_("Permit"), GTK_STOCK_ADD, GAIM_BUTTON_HORIZONTAL);
 	else
-		add = picture_button(p->window, _("Deny"), add_xpm);
-	cancel = picture_button(p->window, _("Cancel"), cancel_xpm);
+		add = gaim_pixbuf_button_from_stock(_("Deny"), GTK_STOCK_ADD, GAIM_BUTTON_HORIZONTAL);
+	cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 
 	/* End of Cancel Button */
 	if (who != NULL)
@@ -2215,13 +2166,11 @@
 	gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5);
 
 	label = gtk_label_new(_("Add"));
-	gtk_widget_show(label);
 	gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(topbox), p->entry, FALSE, FALSE, 5);
 	/* And the boxes in the box */
 	gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
-	gtk_widget_show(topbox);
 	topbox=gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(topbox), vbox, FALSE, FALSE, 5);
 
@@ -2233,12 +2182,6 @@
 	g_signal_connect(GTK_OBJECT(p->entry), "activate", G_CALLBACK(do_add_perm), p);
 
 	/* Finish up */
-	gtk_widget_show(add);
-	gtk_widget_show(cancel);
-	gtk_widget_show(p->entry);
-	gtk_widget_show(topbox);
-	gtk_widget_show(bbox);
-	gtk_widget_show(vbox);
 	if (permit)
 		gtk_window_set_title(GTK_WINDOW(p->window), _("Add Permit"));
 	else
@@ -2247,7 +2190,7 @@
 	gtk_container_add(GTK_CONTAINER(p->window), topbox);
 	gtk_widget_realize(p->window);
 
-	gtk_widget_show(p->window);
+	gtk_widget_show_all(p->window);
 }
 
 
@@ -2388,7 +2331,6 @@
 	GAIM_DIALOG(b->window);
 	gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
 	gtk_window_set_role(GTK_WINDOW(b->window), "find_info");
-	gtk_widget_show(b->window);
 
 	dialogwindows = g_list_prepend(dialogwindows, b->window);
 
@@ -2397,8 +2339,8 @@
 
 	/* Build OK Button */
 
-	ok = picture_button(b->window, _("OK"), ok_xpm);
-	cancel = picture_button(b->window, _("Cancel"), cancel_xpm);
+	ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
+	cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 
 	bbox = gtk_hbox_new(FALSE, 5);
 	vbox = gtk_vbox_new(FALSE, 5);
@@ -2417,83 +2359,69 @@
 
 	/* Line 1 */
 	label = gtk_label_new(_("First Name"));
-	gtk_widget_show(label);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(hbox), b->firstentry, FALSE, FALSE, 0);
 
-	gtk_widget_show(hbox);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 	/* Line 2 */
 
 	label = gtk_label_new(_("Middle Name"));
-	gtk_widget_show(label);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(hbox), b->middleentry, FALSE, FALSE, 0);
 
-	gtk_widget_show(hbox);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 	/* Line 3 */
 
 	label = gtk_label_new(_("Last Name"));
-	gtk_widget_show(label);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(hbox), b->lastentry, FALSE, FALSE, 0);
 
-	gtk_widget_show(hbox);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 	/* Line 4 */
 
 	label = gtk_label_new(_("Maiden Name"));
-	gtk_widget_show(label);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(hbox), b->maidenentry, FALSE, FALSE, 0);
 
-	gtk_widget_show(hbox);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 	/* Line 5 */
 
 	label = gtk_label_new(_("City"));
-	gtk_widget_show(label);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(hbox), b->cityentry, FALSE, FALSE, 0);
 
-	gtk_widget_show(hbox);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 	/* Line 6 */
 	label = gtk_label_new(_("State"));
-	gtk_widget_show(label);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(hbox), b->stateentry, FALSE, FALSE, 0);
 
-	gtk_widget_show(hbox);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 	/* Line 7 */
 	label = gtk_label_new(_("Country"));
-	gtk_widget_show(label);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(hbox), b->countryentry, FALSE, FALSE, 0);
 
-	gtk_widget_show(hbox);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
 	/* Merge The Boxes */
@@ -2506,27 +2434,13 @@
 	g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), b->window);
 	g_signal_connect(GTK_OBJECT(ok), "clicked", G_CALLBACK(do_find_info), b);
 
-	gtk_widget_show(ok);
-	gtk_widget_show(cancel);
-	gtk_widget_show(b->firstentry);
-	gtk_widget_show(b->middleentry);
-	gtk_widget_show(b->lastentry);
-	gtk_widget_show(b->maidenentry);
-	gtk_widget_show(b->cityentry);
-	gtk_widget_show(b->stateentry);
-	gtk_widget_show(b->countryentry);
-	gtk_widget_show(bbox);
-	gtk_widget_show(vbox);
-	gtk_widget_show(frame);
-	gtk_widget_show(fbox);
-
 	gtk_window_set_title(GTK_WINDOW(b->window), _("Find Buddy By Info"));
 	gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry);
 	gtk_container_add(GTK_CONTAINER(b->window), fbox);
 	gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
 	gtk_widget_realize(b->window);
 
-	gtk_widget_show(b->window);
+	gtk_widget_show_all(b->window);
 }
 
 void show_find_email(struct gaim_connection *gc)
@@ -2571,11 +2485,11 @@
 	bbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
 
-	button = picture_button(b->window, _("OK"), ok_xpm);
+	button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_find_email), b);
 	gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
 
-	button = picture_button(b->window, _("Cancel"), cancel_xpm);
+	button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), b->window);
 	gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
 
@@ -2648,11 +2562,7 @@
 
 	if (gtkconv->dialogs.link == NULL) {
 		struct linkdlg *a = g_new0(struct linkdlg, 1);
-		char *filename = g_build_filename(DATADIR, "pixmaps", "gaim",
-										  "dialogs", "gaim_question.png", NULL);
-		GtkWidget *img = gtk_image_new_from_file(filename);
-
-		g_free(filename);
+		GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
 
 		a->c = c;
 		a->window = gtk_dialog_new_with_buttons(_("Insert Link"),
@@ -3158,42 +3068,33 @@
 
 	tbox = gtk_vbox_new(FALSE, 5);
 	gtk_container_add(GTK_CONTAINER(ca->window), tbox);
-	gtk_widget_show(tbox);
 
 	frame = gtk_frame_new(_("New away message"));
 	gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0);
-	gtk_widget_show(frame);
 
 	fbox = gtk_vbox_new(FALSE, 5);
 	gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
 	gtk_container_add(GTK_CONTAINER(frame), fbox);
-	gtk_widget_show(fbox);
 
 	titlebox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0);
-	gtk_widget_show(titlebox);
 
 	label = gtk_label_new(_("Away title: "));
 	gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0);
-	gtk_widget_show(label);
 
 	ca->entry = gtk_entry_new();
 	gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0);
 	gtk_widget_grab_focus(ca->entry);
-	gtk_widget_show(ca->entry);
 
 	frame = gtk_frame_new(NULL);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 	gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0);
-	gtk_widget_show(frame);
-	
+
 	ca->text = gtk_text_view_new();
 	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD);
-	
+
 	gtk_container_add(GTK_CONTAINER(frame), ca->text);
-	gtk_widget_show(ca->text);
-
-       
+
 	if (dummy) {
 		struct away_message *amt;
 		GtkTreeIter iter;
@@ -3218,25 +3119,24 @@
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0);
-	gtk_widget_show(hbox);
-
-	button = picture_button(ca->window, _("Save"), ok_xpm);
+
+	button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 
-	button = picture_button(ca->window, _("Save & Use"), add_xpm);
+	button = gaim_pixbuf_button_from_stock(_("Save & Use"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(su_away_mess), ca);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 
-	button = picture_button(ca->window, _("Use"), gnome_preferences_xpm);
+	button = gaim_pixbuf_button_from_stock(_("Use"), GTK_STOCK_EXECUTE, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(use_away_mess), ca);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 
-	button = picture_button(ca->window, _("Cancel"), cancel_xpm);
+	button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), ca->window);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 
-	gtk_widget_show(ca->window);
+	gtk_widget_show_all(ca->window);
 }
 
 /* smiley dialog */
@@ -3407,8 +3307,6 @@
 	/* Make the buddy name box */
 	bbox = gtk_hbox_new(FALSE, 5);
 	label = gtk_label_new(_("Buddy"));
-	gtk_widget_show(bbox);
-	gtk_widget_show(label);
 	gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 5);
 	gtk_box_pack_end(GTK_BOX(bbox), aliasentry, FALSE, FALSE, 5);
 	gtk_editable_set_editable(GTK_EDITABLE(aliasentry), FALSE);
@@ -3417,8 +3315,6 @@
 	/* And the buddy alias box */
 	bbox = gtk_hbox_new(FALSE, 5);
 	label = gtk_label_new(_("Alias"));
-	gtk_widget_show(bbox);
-	gtk_widget_show(label);
 	gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 5);
 	gtk_box_pack_end(GTK_BOX(bbox), aliasname, FALSE, FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(topbox), bbox, FALSE, FALSE, 0);
@@ -3430,8 +3326,8 @@
 	/* Put the buttons in the box */
 	bbox = gtk_hbox_new(FALSE, 5);
 
-	add = picture_button(aliasdlg, _("Alias"), add_xpm);
-	cancel = picture_button(aliasdlg, _("Cancel"), cancel_xpm);
+	add = gaim_pixbuf_button_from_stock(_("Alias"), GTK_STOCK_ADD, GAIM_BUTTON_HORIZONTAL);
+	cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
 
@@ -3445,20 +3341,13 @@
 	g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_alias_bud), b);
 	g_signal_connect(GTK_OBJECT(aliasname), "activate", G_CALLBACK(do_alias_bud), b);
 	/* Finish up */
-	gtk_widget_show(add);
-	gtk_widget_show(cancel);
-	gtk_widget_show(aliasentry);
-	gtk_widget_show(aliasname);
-	gtk_widget_show(topbox);
-	gtk_widget_show(bbox);
-	gtk_widget_show(vbox);
 	gtk_window_set_title(GTK_WINDOW(aliasdlg), _("Alias Buddy"));
 	gtk_window_set_focus(GTK_WINDOW(aliasdlg), aliasname);
 	gtk_container_add(GTK_CONTAINER(aliasdlg), vbox);
 	gtk_container_set_border_width(GTK_CONTAINER(aliasdlg), 5);
 	gtk_widget_realize(aliasdlg);
 
-	gtk_widget_show(aliasdlg);
+	gtk_widget_show_all(aliasdlg);
 }
 
 
@@ -3587,20 +3476,17 @@
 
 	hbox = gtk_hbox_new(FALSE, 0);
 	gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
-	gtk_widget_show(hbox);
-
-	button = picture_button(window, _("Okay"), ok_xpm);
+
+	button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
 	g_object_set_data(G_OBJECT(button), "log_window", g_object_get_data(G_OBJECT(w),
 				"log_window"));
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_clear_log_file), name);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
-	gtk_widget_show(button);
-
-	button = picture_button(window, _("Cancel"), cancel_xpm);
+
+	button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
-	gtk_widget_show(button);
 
 	gtk_widget_show_all(window);
 
@@ -3885,16 +3771,16 @@
 	gtk_box_pack_start(GTK_BOX(box), bbox, FALSE, FALSE, 0);
 	gtk_widget_set_sensitive(bbox, FALSE);
 
-	close_button = picture_button(window, _("Close"), cancel_xpm);
+	close_button = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(bbox), close_button, FALSE, FALSE, 5);
 	g_signal_connect(GTK_OBJECT(close_button), "clicked", G_CALLBACK(destroy_dialog), window);
 
-	clear_button = picture_button(window, _("Clear"), close_xpm);
+	clear_button = gaim_pixbuf_button_from_stock(_("Clear"), GTK_STOCK_CLEAR, GAIM_BUTTON_HORIZONTAL);
 	g_object_set_data(G_OBJECT(clear_button), "log_window", window);
 	gtk_box_pack_end(GTK_BOX(bbox), clear_button, FALSE, FALSE, 5);
 	g_signal_connect(GTK_OBJECT(clear_button), "clicked", G_CALLBACK(show_clear_log), name);
 
-	save_button = picture_button(window, _("Save"), save_xpm);
+	save_button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(bbox), save_button, FALSE, FALSE, 5);
 	g_signal_connect(GTK_OBJECT(save_button), "clicked", G_CALLBACK(show_save_log), name);
 
@@ -3967,12 +3853,9 @@
 	GtkWidget *hbox, *vbox;
 	GtkWidget *label;
 	struct gaim_gtk_buddy_list *gtkblist;
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
-	GtkWidget *img = gtk_image_new_from_file(filename);
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
 	GtkWidget *name_entry = NULL;
 
-	g_free(filename);
-
 	gtkblist = GAIM_GTK_BLIST(gaim_get_blist());
 
 	if (!rename_dialog) {
@@ -4099,13 +3982,13 @@
 		bbox = gtk_hbox_new(FALSE, 5);
 		gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0);
 
-		button = picture_button(rename_bud_dialog, _("OK"), ok_xpm);
+		button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
 		g_object_set_data(G_OBJECT(button), "buddy", b);
 		gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
 		g_signal_connect(GTK_OBJECT(button), "clicked",
 				   G_CALLBACK(do_rename_buddy), name_entry);
 
-		button = picture_button(rename_bud_dialog, _("Cancel"), cancel_xpm);
+		button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 		gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
 		g_signal_connect(GTK_OBJECT(button), "clicked",
 				   G_CALLBACK(destroy_dialog), rename_bud_dialog);
@@ -4133,57 +4016,38 @@
 	return button;
 }
 
-GtkWidget *gaim_pixbuf_toolbar_button_from_file(char *icon)
-{
-	GtkWidget *button, *image,  *bbox;
-	char *filename;
-
-	if (!icon)
-		return NULL;
-
-	button = gtk_toggle_button_new();
-	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-
-	bbox = gtk_vbox_new(FALSE, 0);
-
-	gtk_container_add (GTK_CONTAINER(button), bbox);
-	
-	filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", icon, NULL);
-	debug_printf("Loading: %s\n", filename);
-	image = gtk_image_new_from_file(filename);
-	g_free(filename);
-
-	gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0);
-
-	gtk_widget_show_all(bbox);
-	return button;
-}
-
-
 GtkWidget *
 gaim_pixbuf_button_from_stock(const char *text, const char *icon,
 							  GaimButtonStyle style)
 {
-	GtkWidget *button, *image, *label, *bbox;
+	GtkWidget *button, *image, *label, *bbox, *ibox, *lbox;
 	button = gtk_button_new();
 
-	if (style == GAIM_BUTTON_HORIZONTAL)
+	if (style == GAIM_BUTTON_HORIZONTAL) {
 			bbox = gtk_hbox_new(FALSE, 5);
-	else
-			bbox = gtk_vbox_new(FALSE, 0);
+			ibox = gtk_hbox_new(FALSE, 0);
+			lbox = gtk_hbox_new(FALSE, 0);
+	} else {
+			bbox = gtk_vbox_new(FALSE, 5);
+			ibox = gtk_vbox_new(FALSE, 0);
+			lbox = gtk_vbox_new(FALSE, 0);
+	}
 
 	gtk_container_add (GTK_CONTAINER(button), bbox);
 
+	gtk_box_pack_start_defaults(GTK_BOX(bbox), ibox);
+	gtk_box_pack_start_defaults(GTK_BOX(bbox), lbox);
+
 	if (icon) {
 		image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON);
-		gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0);
+		gtk_box_pack_end(GTK_BOX(ibox), image, FALSE, FALSE, 0);
 	}
-	
+
 	if (text) {
 		label = gtk_label_new(NULL);
 		gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text);
 		gtk_label_set_mnemonic_widget(GTK_LABEL(label), button);
-		gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0);
+		gtk_box_pack_start(GTK_BOX(lbox), label, FALSE, FALSE, 0);
 	}
 
 	gtk_widget_show_all(bbox);
@@ -4192,119 +4056,41 @@
 
 GtkWidget *gaim_pixbuf_button(char *text, char *iconfile, GaimButtonStyle style)
 {
-	GtkWidget *button, *image, *label, *bbox;
+	GtkWidget *button, *image, *label, *bbox, *ibox, *lbox;
 	button = gtk_button_new();
 
-	if (style == GAIM_BUTTON_HORIZONTAL)
+	if (style == GAIM_BUTTON_HORIZONTAL) {
 			bbox = gtk_hbox_new(FALSE, 5);
-	else
-			bbox = gtk_vbox_new(FALSE, 0);
+			ibox = gtk_hbox_new(FALSE, 0);
+			lbox = gtk_hbox_new(FALSE, 0);
+	} else {
+			bbox = gtk_vbox_new(FALSE, 5);
+			ibox = gtk_vbox_new(FALSE, 0);
+			lbox = gtk_vbox_new(FALSE, 0);
+	}
 
 	gtk_container_add (GTK_CONTAINER(button), bbox);
 
+	gtk_box_pack_start_defaults(GTK_BOX(bbox), ibox);
+	gtk_box_pack_start_defaults(GTK_BOX(bbox), lbox);
+
 	if (iconfile) {
 		char *filename;
 		filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", iconfile, NULL);
 		debug_printf("Loading: %s\n", filename);
 		image = gtk_image_new_from_file(filename);
-		gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0);
+		gtk_box_pack_end(GTK_BOX(ibox), image, FALSE, FALSE, 0);
 		g_free(filename);
 	}
-	
+
 	if (text) {
 		label = gtk_label_new(NULL);
 		gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text);
 		gtk_label_set_mnemonic_widget(GTK_LABEL(label), button);
-		gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0);
-	}
-	gtk_widget_show_all(bbox);
-	return button;
-}
-
-GtkWidget *picture_button(GtkWidget *window, char *text, char **xpm)
-{
-	GtkWidget *button;
-	GtkWidget *button_box, *button_box_2, *button_box_3;
-	GtkWidget *label;
-	GdkBitmap *mask;
-	GdkPixmap *pm;
-	GtkWidget *pixmap;
-
-	button = gtk_button_new();
-
-	button_box = gtk_hbox_new(FALSE, 5);
-	gtk_container_add(GTK_CONTAINER(button), button_box);
-
-	button_box_2 = gtk_hbox_new(FALSE, 0);
-	button_box_3 = gtk_hbox_new(FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0);
-	gtk_box_pack_start(GTK_BOX(button_box), button_box_3, TRUE, TRUE, 0);
-	pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm);
-	pixmap = gtk_image_new_from_pixmap(pm, mask);
-	gtk_box_pack_end(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0);
-
-	if (text) {
-		label = gtk_label_new(text);
-		gtk_box_pack_start(GTK_BOX(button_box_3), label, FALSE, FALSE, 2);
-		gtk_widget_show(label);
+		gtk_box_pack_start(GTK_BOX(lbox), label, FALSE, FALSE, 0);
 	}
 
-	gtk_widget_show(pixmap);
-	gtk_widget_show(button_box_2);
-	gtk_widget_show(button_box_3);
-	gtk_widget_show(button_box);
-
-/* this causes clipping on lots of buttons with long text */
-/*  gtk_widget_set_size_request(button, 75, 30);*/
-	gtk_widget_show(button);
-	g_object_unref(G_OBJECT(pm));
-	g_object_unref(G_OBJECT(mask));
-
-	return button;
-}
-
-static GtkTooltips *button_tips = NULL;
-GtkWidget *picture_button2(GtkWidget *window, char *text, char **xpm, short dispstyle)
-{
-	GtkWidget *button;
-	GtkWidget *button_box, *button_box_2;
-	GdkBitmap *mask;
-	GdkPixmap *pm;
-	GtkWidget *pixmap;
-	GtkWidget *label;
-
-	if (!button_tips)
-		button_tips = gtk_tooltips_new();
-
-	button = gtk_button_new();
-
-	button_box = gtk_hbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(button), button_box);
-
-	button_box_2 = gtk_vbox_new(FALSE, 0);
-
-	gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0);
-	gtk_widget_show(button_box_2);
-	gtk_widget_show(button_box);
-	if (dispstyle == 2 || dispstyle == 0) {
-		pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm);
-		pixmap = gtk_image_new_from_pixmap(pm, mask);
-		gtk_box_pack_start(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0);
-
-		gtk_widget_show(pixmap);
-
-		g_object_unref(G_OBJECT(pm));
-		g_object_unref(G_OBJECT(mask));
-	}
-
-	if (dispstyle == 2 || dispstyle == 1) {
-		label = gtk_label_new(text);
-		gtk_widget_show(label);
-		gtk_box_pack_end(GTK_BOX(button_box_2), label, FALSE, FALSE, 0);
-	}
-
-	gtk_tooltips_set_tip(button_tips, button, text, "Gaim");
-	gtk_widget_show(button);
+	gtk_widget_show_all(bbox);
 	return button;
 }
 
@@ -4758,36 +4544,30 @@
 
 	b->entries_frame = gtk_frame_new(b->entries_title);
 	gtk_box_pack_start(GTK_BOX (vbox), b->entries_frame, TRUE, TRUE, 5);
-	gtk_widget_show(b->entries_frame);
 	b->entries_table = NULL;
 	re_show_multi_entry_entries(&(b->entries_table), b->entries_frame, b->multi_entry_items);
 
 	b->texts_obox = gtk_vbox_new(FALSE, 0);
 	gtk_box_pack_start(GTK_BOX (vbox), b->texts_obox, TRUE, TRUE, 5);
-	gtk_widget_show(b->texts_obox);
 	b->texts_ibox = NULL;
 	re_show_multi_entry_textboxes(&(b->texts_ibox), b->texts_obox, b->multi_text_items);
 
 	hbox = gtk_hbox_new(FALSE, 0);
 	gtk_box_pack_start(GTK_BOX (vbox), hbox, FALSE, FALSE, 5);
-	gtk_widget_show(hbox);
-
-	button = picture_button(b->window, _("Save"), save_xpm);
+
+	button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect(GTK_OBJECT (button), "clicked",
 		G_CALLBACK (b->ok), (gpointer) b);
 	gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5);
-	gtk_widget_show(button);
-
-	button = picture_button(b->window, _("Cancel"), cancel_xpm);
+
+	button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 
 	/* Let "destroy handling" (set above) handle cleanup */
 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
 		G_CALLBACK (gtk_widget_destroy), GTK_OBJECT (b->window));
 	gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5);
-	gtk_widget_show(button);
-
-	gtk_widget_show(vbox);
-	gtk_widget_show(b->window);
+
+	gtk_widget_show_all(b->window);
 }
 
 
--- a/src/gtkconv.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/gtkconv.c	Sat Apr 05 05:01:47 2003 +0000
@@ -827,19 +827,12 @@
 		struct gaim_connection *gc;
 		struct gaim_window *win;
 		struct gaim_gtk_window *gtkwin;
-		char *filename;
 		GtkWidget *label;
 		GtkWidget *vbox, *hbox;
 		GtkWidget *table;
 		GtkWidget *img;
 
-		filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs",
-									"gaim_question.png", NULL);
-
-		img = gtk_image_new_from_file(filename);
-
-		g_free(filename);
-
+		img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
 
 		info = g_new0(struct InviteBuddyInfo, 1);
 		info->conv = conv;
--- a/src/main.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/main.c	Sat Apr 05 05:01:47 2003 +0000
@@ -293,7 +293,6 @@
 	GtkWidget *label;
 	GtkWidget *vbox2;
 	GList *tmp;
-	char *filename;
 
 	/* Do we already have a main window opened? If so, bring it back, baby... ribs... yeah */
 	if (mainwindow) {
@@ -315,9 +314,7 @@
 	vbox = gtk_vbox_new(FALSE, 0);
 	gtk_container_add(GTK_CONTAINER(mainwindow), vbox);
 
-	filename = g_build_filename(DATADIR, "pixmaps", "gaim", "logo.png", NULL);
-	image = gtk_image_new_from_file(filename);
-	g_free(filename);
+	image = gtk_image_new_from_stock(GAIM_STOCK_LOGO, gtk_icon_size_from_name(GAIM_ICON_SIZE_LOGO));
 	gtk_box_pack_start(GTK_BOX(vbox), image, FALSE, FALSE, 0);
 
 	vbox2 = gtk_vbox_new(FALSE, 0);
@@ -357,7 +354,7 @@
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5);
 
 	/* And now for the buttons */
-	button = gaim_pixbuf_button(_("Accounts"), "accounts.png", GAIM_BUTTON_VERTICAL);
+	button = gaim_pixbuf_button_from_stock(_("Accounts"), GAIM_STOCK_ACCOUNTS, GAIM_BUTTON_VERTICAL);
 	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
 	g_signal_connect(G_OBJECT(button), "clicked",
 					 G_CALLBACK(account_editor), mainwindow);
@@ -367,13 +364,13 @@
 	gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
 #endif
 
-	button = gaim_pixbuf_button(_("Settings"), "preferences.png", GAIM_BUTTON_VERTICAL);
+	button = gaim_pixbuf_button_from_stock(_("Preferences"), GTK_STOCK_PREFERENCES, GAIM_BUTTON_VERTICAL);
 	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
 	g_signal_connect(G_OBJECT(button), "clicked",
 					 G_CALLBACK(show_prefs), mainwindow);
 	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 
-	button = gaim_pixbuf_button(_("Sign On"), "signon.png", GAIM_BUTTON_VERTICAL);
+	button = gaim_pixbuf_button_from_stock(_("Sign On"), GAIM_STOCK_SIGN_ON, GAIM_BUTTON_VERTICAL);
 	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
 	g_signal_connect(G_OBJECT(button), "clicked",
 					 G_CALLBACK(dologin), mainwindow);
@@ -538,7 +535,7 @@
 
 #ifndef _WIN32
 	/* use the nice PNG icon for all the windows */
-	icon_path = g_build_filename(DATADIR, "pixmaps", "gaim.png", NULL);
+	icon_path = g_build_filename(DATADIR, "pixmaps", "gaim", "icons", "online.png", NULL);
 	icon = gdk_pixbuf_new_from_file(icon_path, NULL);
 	g_free(icon_path);
 	if (icon) {
--- a/src/multi.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/multi.c	Sat Apr 05 05:01:47 2003 +0000
@@ -1300,10 +1300,7 @@
 	GtkWidget *label;
 	GtkWidget *hbox, *vbox;
 	char *labeltext=NULL;
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_auth.png", NULL);
-	GtkWidget *img = gtk_image_new_from_file(filename);
-	g_free(filename);
-
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_AUTH, GTK_ICON_SIZE_DIALOG);
 
 	if (p) {
 		gtk_widget_show(p->win);
@@ -1850,7 +1847,7 @@
 
 	meter->progress = gtk_progress_bar_new ();
 
-	meter->button = gtk_button_new_with_label (_("Cancel"));
+	meter->button = gaim_pixbuf_button_from_stock (_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	g_signal_connect (GTK_OBJECT (meter->button), "clicked", G_CALLBACK (cancel_signon), meter);
 
 	gtk_table_attach (GTK_TABLE (table), graphic, 0, 1, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
@@ -1910,7 +1907,7 @@
 		gtk_table_set_row_spacings (GTK_TABLE (meter_win->table), 5);
 		gtk_table_set_col_spacings (GTK_TABLE (meter_win->table), 10);
 	
-		cancel_button = gtk_button_new_with_label (_("Cancel All"));
+		cancel_button = gaim_pixbuf_button_from_stock (_("Cancel All"), GTK_STOCK_QUIT, GAIM_BUTTON_HORIZONTAL);
 		g_signal_connect_swapped (GTK_OBJECT (cancel_button), "clicked", G_CALLBACK (loop_cancel), NULL);
 		gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (cancel_button), FALSE, FALSE, 0);
 	
--- a/src/prefs.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/prefs.c	Sat Apr 05 05:01:47 2003 +0000
@@ -1665,7 +1665,7 @@
 
 	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 
-	button = gaim_pixbuf_button(_("_Edit"), "edit.png", GAIM_BUTTON_HORIZONTAL);
+	button = gaim_pixbuf_button_from_stock(_("_Edit"), GAIM_STOCK_EDIT, GAIM_BUTTON_HORIZONTAL);
 	gtk_size_group_add_widget(sg, button);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(create_away_mess), event_view);
 	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
--- a/src/prpl.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/prpl.c	Sat Apr 05 05:01:47 2003 +0000
@@ -32,10 +32,6 @@
 #include "win32dep.h"
 #endif
 
-#include "pixmaps/ok.xpm"
-#include "pixmaps/cancel.xpm"
-#include "pixmaps/tb_forward.xpm"
-
 GSList *protocols = NULL;
 
 GtkWidget *protomenu = NULL;
@@ -206,11 +202,9 @@
 	GtkWidget *hbox;
 	GtkWidget *label;
 	char labeltext[1024 * 2];
-	char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL);
-	GtkWidget *img = gtk_image_new_from_file(filename);
+	GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
 	struct doaskstruct *doask = g_new0(struct doaskstruct, 1);
 
-	g_free(filename);
 	gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
 
 	/* This is ugly.  GTK Stock items will take a button with a label "gtk-cancel" and turn it into a 
@@ -319,11 +313,11 @@
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
-	button = picture_button(window, _("Accept"), ok_xpm);
+	button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(act_prompt), p);
 
-	button = picture_button(window, _("Cancel"), cancel_xpm);
+	button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(des_win), window);
 
@@ -522,32 +516,29 @@
 	vbox = gtk_vbox_new(FALSE, 5);
 	gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
 	gtk_container_add(GTK_CONTAINER(mn->email_win), vbox);
-	gtk_widget_show(vbox);
 
 	mn->email_label = gtk_label_new(buf);
 	gtk_label_set_text(GTK_LABEL(mn->email_label), buf);
 	gtk_label_set_line_wrap(GTK_LABEL(mn->email_label), TRUE);
 	gtk_box_pack_start(GTK_BOX(vbox), mn->email_label, FALSE, TRUE, 5);
-	gtk_widget_show(mn->email_label);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-	gtk_widget_show(hbox);
 
 	if (url) {
 		mn->url = g_strdup(url);
-		urlbut = picture_button(mn->email_win, _("Open Mail"), tb_forward_xpm);
+		urlbut = gaim_pixbuf_button_from_stock(_("Open Mail"), GTK_STOCK_JUMP_TO, GAIM_BUTTON_HORIZONTAL);
 		gtk_box_pack_end(GTK_BOX(hbox), urlbut, 0, 0, 5);
 		g_signal_connect(GTK_OBJECT(urlbut), "clicked", G_CALLBACK(open_url), mn->url);
 		g_signal_connect(GTK_OBJECT(urlbut), "clicked", G_CALLBACK(des_email_win), mn);
 	}
 
-	close = picture_button(mn->email_win, _("Close"), cancel_xpm);
+	close = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL);
 	gtk_window_set_focus(GTK_WINDOW(mn->email_win), close);
 	gtk_box_pack_end(GTK_BOX(hbox), close, 0, 0, 5);
 	g_signal_connect(GTK_OBJECT(close), "clicked", G_CALLBACK(des_email_win), mn);
 
-	gtk_widget_show(mn->email_win);
+	gtk_widget_show_all(mn->email_win);
 }
 
 struct icon_data {
@@ -827,37 +818,30 @@
 	vbox = gtk_vbox_new(FALSE, 5);
 	gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
 	gtk_container_add(GTK_CONTAINER(regdlg), vbox);
-	gtk_widget_show(vbox);
 
 	reg_list = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_start(GTK_BOX(vbox), reg_list, FALSE, FALSE, 5);
-	gtk_widget_show(reg_list);
 
 	frame = gtk_frame_new(_("Registration Information"));
 	gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5);
-	gtk_widget_show(frame);
 
 	reg_area = gtk_hbox_new(FALSE, 5);
 	gtk_container_add(GTK_CONTAINER(frame), reg_area);
-	gtk_widget_show(reg_area);
 
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
-	gtk_widget_show(hbox);
 
-	close = picture_button(regdlg, _("Close"), cancel_xpm);
+	close = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(hbox), close, FALSE, FALSE, 5);
 	g_signal_connect(GTK_OBJECT(close), "clicked", G_CALLBACK(delete_regdlg), NULL);
-	gtk_widget_show(close);
 
-	reg_reg = picture_button(regdlg, _("Register"), ok_xpm);
+	reg_reg = gaim_pixbuf_button_from_stock(_("Register"), GTK_STOCK_JUMP_TO, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(hbox), reg_reg, FALSE, FALSE, 5);
-	gtk_widget_show(reg_reg);
 
 	/* fuck me */
 	reset_reg_dlg();
 
-	gtk_widget_show(regdlg);
+	gtk_widget_show_all(regdlg);
 }
 
 static gboolean delayed_unload(void *handle) {
--- a/src/server.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/server.c	Sat Apr 05 05:01:47 2003 +0000
@@ -36,10 +36,6 @@
 #include "multi.h"
 #include "gaim.h"
 #include "sound.h"
-
-#include "pixmaps/cancel.xpm"
-#include "pixmaps/tb_search.xpm"
-
 #include "pounce.h"
 
 void serv_login(struct gaim_account *account)
@@ -1239,11 +1235,11 @@
 	hbox = gtk_hbox_new(FALSE, 5);
 	gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
 
-	button = picture_button(window, _("Close"), cancel_xpm);
+	button = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(des_popup), window);
 
-	button = picture_button(window, _("More Info"), tb_search_xpm);
+	button = gaim_pixbuf_button_from_stock(_("More Info"), GTK_STOCK_FIND, GAIM_BUTTON_HORIZONTAL);
 	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
 	g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(open_url), url);
 
--- a/src/stock.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/stock.c	Sat Apr 05 05:01:47 2003 +0000
@@ -37,29 +37,49 @@
 
 } const stock_icons[] =
 {
-	{ GAIM_STOCK_BGCOLOR,       "buttons", "change-bgcolor-small.png" },
-	{ GAIM_STOCK_BLOCK,         NULL,      GTK_STOCK_STOP             },
-	{ GAIM_STOCK_DOWNLOAD,      NULL,      GTK_STOCK_GO_DOWN          },
-	{ GAIM_STOCK_FGCOLOR,       "buttons", "change-fgcolor-small.png" },
-	{ GAIM_STOCK_FILE_CANCELED, NULL,      GTK_STOCK_CANCEL           },
-	{ GAIM_STOCK_FILE_DONE,     NULL,      GTK_STOCK_APPLY            },
-	{ GAIM_STOCK_IGNORE,        NULL,      GTK_STOCK_DIALOG_ERROR     },
-	{ GAIM_STOCK_IMAGE,         "menus",   "insert-image-small.png"   },
-	{ GAIM_STOCK_INFO,          NULL,      GTK_STOCK_FIND             },
-	{ GAIM_STOCK_INVITE,        NULL,      GTK_STOCK_JUMP_TO          },
-	{ GAIM_STOCK_LINK,          "menus",   "insert-link-small.png"    },
-	{ GAIM_STOCK_SEND,          NULL,      GTK_STOCK_CONVERT          },
-	{ GAIM_STOCK_SMILEY,        "buttons", "insert-smiley-small.png"  },
-	{ GAIM_STOCK_TEXT_BIGGER,   "buttons", "text_bigger.png"          },
-	{ GAIM_STOCK_TEXT_NORMAL,   "buttons", "text_normal.png"          },
-	{ GAIM_STOCK_TEXT_SMALLER,  "buttons", "text_smaller.png"         },
-	{ GAIM_STOCK_TYPED,         "gaim",    "typed.png"                },
-	{ GAIM_STOCK_TYPING,        "gaim",    "typing.png"               },
-	{ GAIM_STOCK_UPLOAD,        NULL,      GTK_STOCK_GO_UP            },
-	{ GAIM_STOCK_WARN,          NULL,      GTK_STOCK_DIALOG_WARNING   },
-	{ GAIM_STOCK_IM,            NULL,      GTK_STOCK_CONVERT          },
-	{ GAIM_STOCK_CHAT,          NULL,      GTK_STOCK_JUMP_TO          },
-	{ GAIM_STOCK_AWAY,          "gaim",    "away.png"                 }
+	{ GAIM_STOCK_ABOUT,           "buttons", "about_menu.png"           },
+	{ GAIM_STOCK_ACCOUNTS,        "buttons", "accounts.png"             },
+	{ GAIM_STOCK_BGCOLOR,         "buttons", "change-bgcolor-small.png" },
+	{ GAIM_STOCK_BLOCK,           NULL,      GTK_STOCK_STOP             },
+	{ GAIM_STOCK_CHAT,            NULL,      GTK_STOCK_JUMP_TO          },
+	{ GAIM_STOCK_DOWNLOAD,        NULL,      GTK_STOCK_GO_DOWN          },
+	{ GAIM_STOCK_DIALOG_AUTH,     "dialogs", "gaim_auth.png"            },
+	{ GAIM_STOCK_DIALOG_COOL,     "dialogs", "gaim_cool.png"            },
+	{ GAIM_STOCK_DIALOG_ERROR,    "dialogs", "gaim_error.png"           },
+	{ GAIM_STOCK_DIALOG_INFO,     "dialogs", "gaim_info.png"            },
+	{ GAIM_STOCK_DIALOG_QUESTION, "dialogs", "gaim_question.png"        },
+	{ GAIM_STOCK_DIALOG_WARNING,  "dialogs", "gaim_warning.png"         },
+	{ GAIM_STOCK_FGCOLOR,         "buttons", "change-fgcolor-small.png" },
+	{ GAIM_STOCK_EDIT,            "buttons", "edit.png"                 },
+	{ GAIM_STOCK_FILE_CANCELED,   NULL,      GTK_STOCK_CANCEL           },
+	{ GAIM_STOCK_FILE_DONE,       NULL,      GTK_STOCK_APPLY            },
+	{ GAIM_STOCK_FILE_TRANSFER,   NULL,      GTK_STOCK_REVERT_TO_SAVED  },
+	{ GAIM_STOCK_GROUP,           NULL,      GTK_STOCK_OPEN             },
+	{ GAIM_STOCK_ICON_AWAY,       "icons",   "away.png"                 },
+	{ GAIM_STOCK_ICON_AWAY_MSG,   "icons",   "msgpend.png"              },
+	{ GAIM_STOCK_ICON_CONNECT,    "icons",   "connect.png"              },
+	{ GAIM_STOCK_ICON_OFFLINE,    "icons",   "offline.png"              },
+	{ GAIM_STOCK_ICON_ONLINE,     "icons",   "online.png"               },
+	{ GAIM_STOCK_ICON_ONLINE_MSG, "icons",   "msgunread.png"            },
+	{ GAIM_STOCK_IGNORE,          NULL,      GTK_STOCK_DIALOG_ERROR     },
+	{ GAIM_STOCK_IM,              NULL,      GTK_STOCK_CONVERT          },
+	{ GAIM_STOCK_IMAGE,           "buttons", "insert-image-small.png"   },
+	{ GAIM_STOCK_INFO,            NULL,      GTK_STOCK_FIND             },
+	{ GAIM_STOCK_INVITE,          NULL,      GTK_STOCK_JUMP_TO          },
+	{ GAIM_STOCK_LINK,            "buttons", "insert-link-small.png"    },
+	{ GAIM_STOCK_LOGO,            "gaim",    "logo.png"                 },
+	{ GAIM_STOCK_PRIVACY,         NULL,      GTK_STOCK_PROPERTIES       },
+	{ GAIM_STOCK_SEND,            NULL,      GTK_STOCK_CONVERT          },
+	{ GAIM_STOCK_SIGN_ON,         NULL,      GTK_STOCK_EXECUTE          },
+	{ GAIM_STOCK_SIGN_OFF,        NULL,      GTK_STOCK_CLOSE            },
+	{ GAIM_STOCK_SMILEY,          "buttons", "insert-smiley-small.png"  },
+	{ GAIM_STOCK_TEXT_BIGGER,     "buttons", "text_bigger.png"          },
+	{ GAIM_STOCK_TEXT_NORMAL,     "buttons", "text_normal.png"          },
+	{ GAIM_STOCK_TEXT_SMALLER,    "buttons", "text_smaller.png"         },
+	{ GAIM_STOCK_TYPED,           "gaim",    "typed.png"                },
+	{ GAIM_STOCK_TYPING,          "gaim",    "typing.png"               },
+	{ GAIM_STOCK_UPLOAD,          NULL,      GTK_STOCK_GO_UP            },
+	{ GAIM_STOCK_WARN,            NULL,      GTK_STOCK_DIALOG_WARNING   }
 };
 
 static gint stock_icon_count = sizeof(stock_icons) / sizeof(*stock_icons);
@@ -75,8 +95,7 @@
 	if (!strcmp(dir, "gaim"))
 		filename = g_build_filename(DATADIR, "pixmaps", "gaim", base, NULL);
 	else
-		filename = g_build_filename(DATADIR, "pixmaps", "gaim",
-									dir, base, NULL);
+		filename = g_build_filename(DATADIR, "pixmaps", "gaim", dir, base, NULL);
 
 	if (!g_file_test(filename, G_FILE_TEST_EXISTS)) {
 		g_critical("Unable to load stock pixmap %s\n", base);
@@ -136,5 +155,8 @@
 
 	gtk_widget_destroy(win);
 
+	/* register logo icon size */
+	gtk_icon_size_register(GAIM_ICON_SIZE_LOGO, 210, 150);
+
 	g_object_unref(G_OBJECT(icon_factory));
 }
--- a/src/stock.h	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/stock.h	Sat Apr 05 05:01:47 2003 +0000
@@ -27,32 +27,58 @@
 /** @name Stock images                                                    */
 /**************************************************************************/
 /*@{*/
-#define GAIM_STOCK_BGCOLOR        "gaim-bgcolor"
-#define GAIM_STOCK_BLOCK          "gaim-block"
-#define GAIM_STOCK_DOWNLOAD       "gaim-download"
-#define GAIM_STOCK_FGCOLOR        "gaim-fgcolor"
-#define GAIM_STOCK_FILE_CANCELED  "gaim-file-canceled"
-#define GAIM_STOCK_FILE_DONE      "gaim-file-done"
-#define GAIM_STOCK_IGNORE         "gaim-ignore"
-#define GAIM_STOCK_IMAGE          "gaim-image"
-#define GAIM_STOCK_INFO           "gaim-info"
-#define GAIM_STOCK_INVITE         "gaim-invite"
-#define GAIM_STOCK_LINK           "gaim-link"
-#define GAIM_STOCK_SEND           "gaim-send"
-#define GAIM_STOCK_SMILEY         "gaim-smiley"
-#define GAIM_STOCK_TEXT_BIGGER    "gaim-text-bigger"
-#define GAIM_STOCK_TEXT_NORMAL    "gaim-text-normal"
-#define GAIM_STOCK_TEXT_SMALLER   "gaim-text-smaller"
-#define GAIM_STOCK_UPLOAD         "gaim-upload"
-#define GAIM_STOCK_WARN           "gaim-warn"
-#define GAIM_STOCK_TYPING         "gaim-typing"
-#define GAIM_STOCK_TYPED          "gaim-typed"
-#define GAIM_STOCK_IM             "gaim-im"
-#define GAIM_STOCK_CHAT           "gaim-chat"
-#define GAIM_STOCK_AWAY           "gaim-away"
+#define GAIM_STOCK_ABOUT           "gaim-about"
+#define GAIM_STOCK_ACCOUNTS        "gaim-accounts"
+#define GAIM_STOCK_AWAY            "gaim-away"
+#define GAIM_STOCK_BGCOLOR         "gaim-bgcolor"
+#define GAIM_STOCK_BLOCK           "gaim-block"
+#define GAIM_STOCK_CHAT            "gaim-chat"
+#define GAIM_STOCK_DIALOG_AUTH     "gaim-dialog-auth"
+#define GAIM_STOCK_DIALOG_COOL     "gaim-dialog-cool"
+#define GAIM_STOCK_DIALOG_ERROR    "gaim-dialog-error"
+#define GAIM_STOCK_DIALOG_INFO     "gaim-dialog-info"
+#define GAIM_STOCK_DIALOG_QUESTION "gaim-dialog-question"
+#define GAIM_STOCK_DIALOG_WARNING  "gaim-dialog-warning"
+#define GAIM_STOCK_DOWNLOAD        "gaim-download"
+#define GAIM_STOCK_EDIT            "gaim-edit"
+#define GAIM_STOCK_FGCOLOR         "gaim-fgcolor"
+#define GAIM_STOCK_FILE_CANCELED   "gaim-file-canceled"
+#define GAIM_STOCK_FILE_DONE       "gaim-file-done"
+#define GAIM_STOCK_FILE_TRANSFER   "gaim-file-transfer"
+#define GAIM_STOCK_GROUP           "gaim-group"
+#define GAIM_STOCK_ICON_AWAY       "gaim-icon-away"
+#define GAIM_STOCK_ICON_AWAY_MSG   "gaim-icon-away-msg"
+#define GAIM_STOCK_ICON_CONNECT    "gaim-icon-away-connect"
+#define GAIM_STOCK_ICON_OFFLINE    "gaim-icon-offline"
+#define GAIM_STOCK_ICON_ONLINE     "gaim-icon-online"
+#define GAIM_STOCK_ICON_ONLINE_MSG "gaim-icon-online-msg"
+#define GAIM_STOCK_IGNORE          "gaim-ignore"
+#define GAIM_STOCK_IM              "gaim-im"
+#define GAIM_STOCK_IMAGE           "gaim-image"
+#define GAIM_STOCK_INFO            "gaim-info"
+#define GAIM_STOCK_INVITE          "gaim-invite"
+#define GAIM_STOCK_LINK            "gaim-link"
+#define GAIM_STOCK_LOGO            "gaim-logo"
+#define GAIM_STOCK_PRIVACY         "gaim-privacy"
+#define GAIM_STOCK_SEND            "gaim-send"
+#define GAIM_STOCK_SIGN_OFF        "gaim-sign-off"
+#define GAIM_STOCK_SIGN_ON         "gaim-sign-on"
+#define GAIM_STOCK_SMILEY          "gaim-smiley"
+#define GAIM_STOCK_TEXT_BIGGER     "gaim-text-bigger"
+#define GAIM_STOCK_TEXT_NORMAL     "gaim-text-normal"
+#define GAIM_STOCK_TEXT_SMALLER    "gaim-text-smaller"
+#define GAIM_STOCK_TYPED           "gaim-typed"
+#define GAIM_STOCK_TYPING          "gaim-typing"
+#define GAIM_STOCK_UPLOAD          "gaim-upload"
+#define GAIM_STOCK_WARN            "gaim-warn"
 /*@}*/
 
 /**
+ * For getting the icon size for the logo
+ */
+#define GAIM_ICON_SIZE_LOGO        "gaim-icon-size-logo"
+
+/**
  * Sets up the gaim stock repository.
  */
 void setup_stock(void);
--- a/src/ui.h	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/ui.h	Sat Apr 05 05:01:47 2003 +0000
@@ -235,7 +235,6 @@
 extern void docklet_add();
 extern void docklet_remove();
 extern void docklet_toggle();
-extern GtkWidget *gaim_new_item(GtkWidget *, const char *);
 extern void update_idle_times();
 extern void build_imchat_box(gboolean);
 extern void show_xfer_dialog();
@@ -276,12 +275,9 @@
 extern void show_rename_group(GtkWidget *, struct group *);
 extern void show_rename_buddy(GtkWidget *, struct buddy *);
 extern void load_perl_script();
-extern GtkWidget *picture_button(GtkWidget *, char *, char **);
-extern GtkWidget *picture_button2(GtkWidget *, char *, char **, short);
 extern GtkWidget *gaim_pixbuf_button(char *, char *, GaimButtonStyle);
 extern GtkWidget *gaim_pixbuf_button_from_stock(const char *, const char *, GaimButtonStyle);
 extern GtkWidget *gaim_pixbuf_toolbar_button_from_stock(char *);
-extern GtkWidget *gaim_pixbuf_toolbar_button_from_file(char *);
 extern int file_is_dir(const char *, GtkWidget *);
 extern void update_privacy_connections();
 extern void show_privacy_options();
@@ -336,11 +332,7 @@
 extern GSList *get_proto_smileys(int protocol);
 
 /* Fucnctions in util.c */
-extern GtkWidget *gaim_pixmap(char *, char *);
-extern GdkPixbuf *gaim_pixbuf(char *, char *);
 extern GtkWidget *gaim_new_item(GtkWidget *menu, const char *str);
-extern GtkWidget *gaim_new_item_with_pixmap(GtkWidget *, const char *, char **, GtkSignalFunc, gpointer, guint, guint, char *);
 extern GtkWidget *gaim_new_item_from_stock(GtkWidget *, const char *, const char *, GtkSignalFunc, gpointer, guint, guint, char *);
-extern GtkWidget *gaim_new_item_from_pixbuf(GtkWidget *, const char *, char *, GtkSignalFunc, gpointer, guint, guint, char *);
 
 #endif /* _UI_H_ */
--- a/src/util.c	Sat Apr 05 04:48:26 2003 +0000
+++ b/src/util.c	Sat Apr 05 05:01:47 2003 +0000
@@ -1111,47 +1111,6 @@
 	return NULL;
 }
 
-GtkWidget *gaim_pixmap(char *subdir, char *iconfile) {
-		char *filename;
-		GtkWidget *image;
-
-		if (subdir != NULL)
-				filename = g_build_filename (DATADIR, "pixmaps", "gaim", subdir, iconfile, NULL);
-		else
-				filename = g_build_filename (DATADIR, "pixmaps", "gaim", iconfile, NULL);
-
-		debug_printf("Loading: %s\n", filename);
-
-		image = gtk_image_new_from_file(filename);
-
-		g_free(filename);
-
-		return image;
-}
-
-GdkPixbuf *gaim_pixbuf(char *subdir, char *iconfile) {
-		char *filename;
-		GdkPixbuf *pixbuf;
-		GError *err = NULL;
-
-		if (subdir != NULL)
-				filename = g_build_filename (DATADIR, "pixmaps", "gaim", subdir, iconfile, NULL);
-		else
-				filename = g_build_filename (DATADIR, "pixmaps", "gaim", iconfile, NULL);
-
-		debug_printf("Loading: %s\n", filename);
-
-		pixbuf = gdk_pixbuf_new_from_file(filename, &err);
-		if (!pixbuf) {
-				/* FIXME: Maybe we should handle this error */
-				g_error_free(err);
-		}
-
-		g_free(filename);
-
-		return pixbuf;
-}
-
 GtkWidget *gaim_new_item_from_stock(GtkWidget *menu, const char *str, const char *icon, GtkSignalFunc sf, gpointer data, guint accel_key, guint accel_mods, char *mod)
 {
 	GtkWidget *menuitem;
@@ -1195,105 +1154,6 @@
 	return menuitem;
 }
 
-GtkWidget *gaim_new_item_from_pixbuf(GtkWidget *menu, const char *str, char *iconname, GtkSignalFunc sf, gpointer data, guint accel_key, guint accel_mods, char *mod)
-{
-	GtkWidget *menuitem;
-	/*
-	GtkWidget *hbox;
-	GtkWidget *label;
-	*/
-	GtkWidget *image;
-
-	if (iconname == NULL)
-		menuitem = gtk_menu_item_new_with_mnemonic(_(str));
-	else 
-		menuitem = gtk_image_menu_item_new_with_mnemonic(_(str));
-
-	if (menu)
-		gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
-
-	if (sf)
-		g_signal_connect(GTK_OBJECT(menuitem), "activate", sf, data);
-
-	if (iconname != NULL) {
-		char *filename;
-
-		filename = g_build_filename (DATADIR, "pixmaps", "gaim", "menus", iconname, NULL);
-		debug_printf("Loading: %s\n", filename);
-		image = gtk_image_new_from_file(filename);
-		gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
-		g_free(filename);
-	}
-/* FIXME: this isn't right either
-	if (mod) {
-		label = gtk_label_new(mod);
-		gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 2);
-		gtk_widget_show(label);
-	}
-*/
-/*
-	if (accel_key) {
-		gtk_widget_add_accelerator(menuitem, "activate", accel, accel_key,
-					   accel_mods, GTK_ACCEL_LOCKED);
-	}
-*/
-
-	gtk_widget_show_all(menuitem);
-
-	return menuitem;
-}
-
-
-GtkWidget *gaim_new_item_with_pixmap(GtkWidget *menu, const char *str, char **xpm, GtkSignalFunc sf, gpointer data, guint accel_key, guint accel_mods, char *mod)
-{
-	GtkWidget *menuitem;
-	GtkWidget *hbox;
-	GtkWidget *label;
-	GtkWidget *pixmap;
-	GdkPixmap *pm;
-	GdkBitmap *mask;
-
-	menuitem = gtk_menu_item_new();
-	if (menu)
-		gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
-	if (sf)
-		/* passing 1 is necessary so if we sign off closing the account editor doesn't exit */
-		g_signal_connect(GTK_OBJECT(menuitem), "activate", sf, data);
-	gtk_widget_show(menuitem);
-
-	/* Create our container */
-	hbox = gtk_hbox_new(FALSE, 2);
-	gtk_container_add(GTK_CONTAINER(menuitem), hbox);
-	gtk_widget_show(hbox);
-
-	/* Create our pixmap and pack it */
-	gtk_widget_realize(menu->parent);
-	pm = gdk_pixmap_create_from_xpm_d(menu->parent->window, &mask, NULL, xpm);
-	pixmap = gtk_image_new_from_pixmap(pm, mask);
-	gtk_widget_show(pixmap);
-	g_object_unref(G_OBJECT(pm));
-	g_object_unref(G_OBJECT(mask));
-	gtk_box_pack_start(GTK_BOX(hbox), pixmap, FALSE, FALSE, 2);
-
-	/* Create our label and pack it */
-	label = gtk_label_new(str);
-	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
-	gtk_widget_show(label);
-
-	if (mod) {
-		label = gtk_label_new(mod);
-		gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 2);
-		gtk_widget_show(label);
-	}
-/*
-	if (accel_key) {
-		gtk_widget_add_accelerator(menuitem, "activate", accel, accel_key,
-					   accel_mods, GTK_ACCEL_LOCKED);
-	}
-*/
-	return menuitem;
-}
-
 GtkWidget *gaim_new_item(GtkWidget *menu, const char *str)
 {
 	GtkWidget *menuitem;