changeset 4635:42d53c416bb9

[gaim-migrate @ 4942] remove deprecated gtk calls, gtk2-ify log viewer, gtk2-ify jabber vcard dialog, and probably a cleanup or two I forgot about. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sun, 02 Mar 2003 19:21:36 +0000
parents d19872836812
children f4a707dda673
files configure.ac configure.in plugins/chatlist.c plugins/docklet/docklet.c plugins/idle.c plugins/ticker/gtkticker.c plugins/ticker/ticker.c src/about.c src/away.c src/buddy.c src/buddy_chat.c src/dialogs.c src/dnd-hints.c src/gtkconv.c src/gtkimhtml.c src/log.c src/main.c src/multi.c src/prefs.c src/protocols/toc/toc.c src/prpl.c src/server.c src/ui.h src/util.c
diffstat 24 files changed, 396 insertions(+), 385 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Sun Mar 02 18:48:02 2003 +0000
+++ b/configure.ac	Sun Mar 02 19:21:36 2003 +0000
@@ -147,7 +147,7 @@
 *** always available at http://www.gtk.org/.]))
 
 AC_PATH_PROG(gaimpath, gaim)
-CFLAGS="$CFLAGS $GTK_CFLAGS -DGTK_ENABLE_BROKEN"
+CFLAGS="$CFLAGS $GTK_CFLAGS -DGTK_DISABLE_DEPRECATED"
 
 AC_PATH_X
 
--- a/configure.in	Sun Mar 02 18:48:02 2003 +0000
+++ b/configure.in	Sun Mar 02 19:21:36 2003 +0000
@@ -138,7 +138,7 @@
 *** always available at http://www.gtk.org/.]))
 
 AC_PATH_PROG(gaimpath, gaim)
-CFLAGS="$CFLAGS $GTK_CFLAGS -DGTK_ENABLE_BROKEN"
+CFLAGS="$CFLAGS $GTK_CFLAGS -DGTK_DISABLE_DEPRECATED"
 
 AC_PATH_X
 
--- a/plugins/chatlist.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/plugins/chatlist.c	Sun Mar 02 19:21:36 2003 +0000
@@ -4,6 +4,12 @@
 #define GAIM_PLUGINS
 #endif
 
+#ifdef GTK_DISABLE_DEPRECATED
+#undef GTK_DISABLE_DEPRECATED
+#endif
+
+#define GTK_ENABLE_BROKEN
+
 #include "pixmaps/refresh.xpm"
 #include "pixmaps/gnome_add.xpm"
 #include "pixmaps/gnome_remove.xpm"
--- a/plugins/docklet/docklet.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/plugins/docklet/docklet.c	Sun Mar 02 19:21:36 2003 +0000
@@ -95,7 +95,7 @@
 		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_append(GTK_MENU(menu), entry);
+			gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
 			break;
 		default:
 			gaim_new_item_from_stock(menu, _("New Message.."), GTK_STOCK_CONVERT, G_CALLBACK(show_im_dialog), NULL, 0, 0, NULL);
@@ -122,7 +122,7 @@
 
 				entry = gtk_menu_item_new_with_label(a->name);
 				g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(do_away_message), a);
-				gtk_menu_append(GTK_MENU(docklet_awaymenu), entry);
+				gtk_menu_shell_append(GTK_MENU_SHELL(docklet_awaymenu), entry);
 
 				awy = g_slist_next(awy);
 			}
@@ -132,17 +132,17 @@
 
 			entry = gtk_menu_item_new_with_label(_("New..."));
 			g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(create_away_mess), NULL);
-			gtk_menu_append(GTK_MENU(docklet_awaymenu), entry);
+			gtk_menu_shell_append(GTK_MENU_SHELL(docklet_awaymenu), entry);
 
 			entry = gtk_menu_item_new_with_label(_("Away"));
 			gtk_menu_item_set_submenu(GTK_MENU_ITEM(entry), docklet_awaymenu);
-			gtk_menu_append(GTK_MENU(menu), entry);
+			gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
 			} break;
 		case away:
 		case away_pending:
 			entry = gtk_menu_item_new_with_label(_("Back"));
 			g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(do_im_back), NULL);
-			gtk_menu_append(GTK_MENU(menu), entry);
+			gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
 			break;
 	}
 
@@ -151,7 +151,7 @@
 	entry = gtk_check_menu_item_new_with_label(_("Mute Sounds"));
 	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(entry), gaim_sound_get_mute());
 	g_signal_connect(G_OBJECT(entry), "toggled", G_CALLBACK(docklet_toggle_mute), NULL);
-	gtk_menu_append(GTK_MENU(menu), entry);
+	gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
 
 	gaim_new_item_from_stock(menu, _("File Transfers..."), GTK_STOCK_REVERT_TO_SAVED, G_CALLBACK(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);
@@ -166,7 +166,7 @@
 		default:
 			entry = gtk_menu_item_new_with_label(_("Signoff"));
 			g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(signoff_all), NULL);
-			gtk_menu_append(GTK_MENU(menu), entry);
+			gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
 			break;
 	}
 
--- a/plugins/idle.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/plugins/idle.c	Sun Mar 02 19:21:36 2003 +0000
@@ -60,7 +60,7 @@
 		opt = gtk_menu_item_new_with_label(g->username);
 		g_signal_connect(GTK_OBJECT(opt), "activate",
 				   G_CALLBACK(sel_gc), g);
-		gtk_menu_append(GTK_MENU(menu), opt);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 		gtk_widget_show(opt);
 		c = g_slist_next(c);
 	}
--- a/plugins/ticker/gtkticker.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/plugins/ticker/gtkticker.c	Sun Mar 02 19:21:36 2003 +0000
@@ -49,26 +49,28 @@
 static GtkContainerClass *parent_class = NULL;
 
 
-GtkType
+GType
 gtk_ticker_get_type (void)
 {
-  static GtkType ticker_type = 0;
+  static GType ticker_type = 0;
 
   if (!ticker_type)
     {
-      static const GtkTypeInfo ticker_info =
+      static const GTypeInfo ticker_info =
       {
-	"GtkTicker",
-	sizeof (GtkTicker),
-	sizeof (GtkTickerClass),
-	(GtkClassInitFunc) gtk_ticker_class_init,
-	(GtkObjectInitFunc) gtk_ticker_init,
-	/* reserved_1 */ NULL,
-        /* reserved_2 */ NULL,
-        (GtkClassInitFunc) NULL,
+		  sizeof(GtkTickerClass),
+		  NULL,
+		  NULL,
+		  (GClassInitFunc) gtk_ticker_class_init,
+		  NULL,
+		  NULL,
+		  sizeof(GtkTicker),
+		  0,
+		  (GInstanceInitFunc) gtk_ticker_init
       };
 
-      ticker_type = gtk_type_unique (GTK_TYPE_CONTAINER, &ticker_info);
+      ticker_type = g_type_register_static (GTK_TYPE_CONTAINER, "GtkTicker",
+			  &ticker_info, 0);
     }
 
   return ticker_type;
@@ -120,10 +122,7 @@
 GtkWidget*
 gtk_ticker_new (void)
 {
-  GtkTicker *ticker;
-
-  ticker = gtk_type_new (GTK_TYPE_TICKER);
-  return GTK_WIDGET (ticker);
+	return GTK_WIDGET(g_object_new(GTK_TYPE_TICKER, NULL));
 }
 
 static void
--- a/plugins/ticker/ticker.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/plugins/ticker/ticker.c	Sun Mar 02 19:21:36 2003 +0000
@@ -101,7 +101,7 @@
 	if (!ticker)
 		return;
         gtk_ticker_set_spacing( GTK_TICKER( ticker ), 20 );
-        gtk_widget_set_usize( ticker, 500, -1 );
+        gtk_widget_set_size_request( ticker, 500, -1 );
         gtk_container_add( GTK_CONTAINER( tickerwindow ), ticker );
         gtk_ticker_set_interval( GTK_TICKER( ticker ), 500 );
         gtk_ticker_set_scootch( GTK_TICKER( ticker ), 10 );
@@ -215,11 +215,11 @@
 	else
 		return;
 	if ( data->pix == (GtkWidget *) NULL ) {
-		data->pix = gtk_pixmap_new( pm, bm );
+		data->pix = gtk_image_new_from_pixmap( pm, bm );
 		gtk_box_pack_start_defaults( GTK_BOX( data->hbox ), data->pix );
 	} else {
 		gtk_widget_hide( data->pix );
-		gtk_pixmap_set(GTK_PIXMAP(data->pix), pm, bm);
+		gtk_image_set_from_pixmap(GTK_IMAGE(data->pix), pm, bm);
 	}
 	gtk_widget_show( data->pix );
 }
--- a/src/about.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/about.c	Sun Mar 02 19:21:36 2003 +0000
@@ -75,7 +75,7 @@
 		g_snprintf(abouttitle, sizeof(abouttitle), _("About Gaim v%s"), VERSION);
 		gtk_window_set_title(GTK_WINDOW(about), abouttitle);
 		gtk_window_set_role(GTK_WINDOW(about), "about");
-		gtk_window_set_policy(GTK_WINDOW(about), FALSE, TRUE, TRUE);
+		gtk_window_set_resizable(GTK_WINDOW(about), TRUE);
 		gtk_widget_realize(about);
 
 		vbox = gtk_vbox_new(FALSE, 5);
--- a/src/away.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/away.c	Sun Mar 02 19:21:36 2003 +0000
@@ -233,7 +233,7 @@
 		gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER,
 					       GTK_POLICY_ALWAYS);
 		gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
-		gtk_widget_set_usize(sw, 245, 120);
+		gtk_widget_set_size_request(sw, 245, 120);
 		gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
 		gtk_widget_show(sw);
 
@@ -327,9 +327,9 @@
 	save_prefs();
 }
 
-static void set_gc_away(GtkObject *obj, struct gaim_connection *gc)
+static void set_gc_away(GObject *obj, struct gaim_connection *gc)
 {
-	struct away_message *awy = gtk_object_get_user_data(obj);
+	struct away_message *awy = g_object_get_data(obj, "away_message");
 
 	if (awy)
 		serv_set_away(gc, GAIM_AWAY_CUSTOM, awy->message);
@@ -337,9 +337,9 @@
 		serv_set_away(gc, GAIM_AWAY_CUSTOM, NULL);
 }
 
-static void set_gc_state(GtkObject *obj, struct gaim_connection *gc)
+static void set_gc_state(GObject *obj, struct gaim_connection *gc)
 {
-	char *awy = gtk_object_get_user_data(obj);
+	char *awy = g_object_get_data(obj, "away_state");
 
 	serv_set_away(gc, awy, NULL);
 }
@@ -350,44 +350,30 @@
 	GtkWidget *remmenu;
 	GtkWidget *submenu, *submenu2;
 	GtkWidget *remitem;
-	GtkWidget *label;
 	GtkWidget *sep;
 	GList *l;
-	GtkWidget *list_item;
 	GSList *awy = away_messages;
 	struct away_message *a;
 	GSList *con = connections;
 	struct gaim_connection *gc = NULL;
 	int count = 0;
 
-	if (prefs_away_list != NULL) {
-		GtkWidget *hbox;
-		gtk_list_clear_items(GTK_LIST(prefs_away_list), 0, -1);
+	if (prefs_away_store != NULL) {
+		gtk_list_store_clear(prefs_away_store);
 		while (awy) {
+			GtkTreeIter iter;
 			a = (struct away_message *)awy->data;
-			list_item = gtk_list_item_new();
-			gtk_container_add(GTK_CONTAINER(prefs_away_list), list_item);
-			g_signal_connect(GTK_OBJECT(list_item), "select",
-					   G_CALLBACK(away_list_clicked), a);
-			gtk_object_set_user_data(GTK_OBJECT(list_item), a);
-			gtk_widget_show(list_item);
-
-			hbox = gtk_hbox_new(FALSE, 5);
-			gtk_container_add(GTK_CONTAINER(list_item), hbox);
-			gtk_widget_show(hbox);
-
-			label = gtk_label_new(a->name);
-			gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
-			gtk_widget_show(label);
-
+			gtk_list_store_append(prefs_away_store, &iter);
+			gtk_list_store_set(prefs_away_store, &iter,
+					0, a->name,
+					1, a,
+					-1);
 			awy = g_slist_next(awy);
 		}
-		if (away_messages != NULL)
-			gtk_list_select_item(GTK_LIST(prefs_away_list), 0);
 	}
 
 	if (awaymenu) {
-		l = gtk_container_children(GTK_CONTAINER(awaymenu));
+		l = gtk_container_get_children(GTK_CONTAINER(awaymenu));
 
 		while (l) {
 			gtk_container_remove(GTK_CONTAINER(awaymenu), GTK_WIDGET(l->data));
@@ -398,7 +384,7 @@
 		remmenu = gtk_menu_new();
 
 		menuitem = gtk_menu_item_new_with_label(_("New Away Message"));
-		gtk_menu_append(GTK_MENU(awaymenu), menuitem);
+		gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
 		gtk_widget_show(menuitem);
 		g_signal_connect(GTK_OBJECT(menuitem), "activate", G_CALLBACK(create_away_mess),
 				   NULL);
@@ -408,7 +394,7 @@
 			a = (struct away_message *)awy->data;
 
 			remitem = gtk_menu_item_new_with_label(a->name);
-			gtk_menu_append(GTK_MENU(remmenu), remitem);
+			gtk_menu_shell_append(GTK_MENU_SHELL(remmenu), remitem);
 			gtk_widget_show(remitem);
 			g_signal_connect(GTK_OBJECT(remitem), "activate",
 					   G_CALLBACK(rem_away_mess), a);
@@ -418,14 +404,14 @@
 		}
 
 		menuitem = gtk_menu_item_new_with_label(_("Remove Away Message"));
-		gtk_menu_append(GTK_MENU(awaymenu), menuitem);
+		gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
 		gtk_widget_show(menuitem);
 		gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), remmenu);
 		gtk_widget_show(remmenu);
 
 		sep = gtk_hseparator_new();
 		menuitem = gtk_menu_item_new();
-		gtk_menu_append(GTK_MENU(awaymenu), menuitem);
+		gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
 		gtk_container_add(GTK_CONTAINER(menuitem), sep);
 		gtk_widget_set_sensitive(menuitem, FALSE);
 		gtk_widget_show(menuitem);
@@ -458,8 +444,8 @@
 					a = (struct away_message *)awy->data;
 
 					menuitem = gtk_menu_item_new_with_label(a->name);
-					gtk_object_set_user_data(GTK_OBJECT(menuitem), a);
-					gtk_menu_append(GTK_MENU(awaymenu), menuitem);
+					g_object_set_data(G_OBJECT(menuitem), "away_message", a);
+					gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
 					gtk_widget_show(menuitem);
 					g_signal_connect(GTK_OBJECT(menuitem), "activate",
 							   G_CALLBACK(do_away_message), a);
@@ -471,8 +457,8 @@
 					awy = away_messages;
 
 					menuitem = gtk_menu_item_new_with_label(msgs->data);
-					gtk_object_set_user_data(GTK_OBJECT(menuitem), msgs->data);
-					gtk_menu_append(GTK_MENU(awaymenu), menuitem);
+					g_object_set_data(G_OBJECT(menuitem), "away_state", msgs->data);
+					gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
 					gtk_widget_show(menuitem);
 
 					if (strcmp(msgs->data, GAIM_AWAY_CUSTOM)) {
@@ -488,9 +474,10 @@
 							a = (struct away_message *)awy->data;
 
 							menuitem = gtk_menu_item_new_with_label(a->name);
-							gtk_object_set_user_data(GTK_OBJECT(menuitem),
-										 a);
-							gtk_menu_append(GTK_MENU(submenu), menuitem);
+							g_object_set_data(G_OBJECT(menuitem), "away_message",
+									a);
+							gtk_menu_shell_append(GTK_MENU_SHELL(submenu),
+									menuitem);
 							gtk_widget_show(menuitem);
 							g_signal_connect(GTK_OBJECT(menuitem),
 									   "activate",
@@ -518,7 +505,7 @@
 				g_snprintf(buf, sizeof(buf), "%s (%s)",
 					   gc->username, gc->prpl->name);
 				menuitem = gtk_menu_item_new_with_label(buf);
-				gtk_menu_append(GTK_MENU(awaymenu), menuitem);
+				gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
 				gtk_widget_show(menuitem);
 
 				submenu = gtk_menu_new();
@@ -530,14 +517,14 @@
 				if ((g_list_length(msgs) == 1) &&
 				    (!strcmp(msgs->data, GAIM_AWAY_CUSTOM))) {
 					menuitem = gtk_menu_item_new_with_label(_("Back"));
-					gtk_menu_append(GTK_MENU(submenu), menuitem);
+					gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
 					gtk_widget_show(menuitem);
 					g_signal_connect(GTK_OBJECT(menuitem), "activate",
 							   G_CALLBACK(set_gc_away), gc);
 
 					sep = gtk_hseparator_new();
 					menuitem = gtk_menu_item_new();
-					gtk_menu_append(GTK_MENU(submenu), menuitem);
+					gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
 					gtk_container_add(GTK_CONTAINER(menuitem), sep);
 					gtk_widget_set_sensitive(menuitem, FALSE);
 					gtk_widget_show(menuitem);
@@ -549,8 +536,8 @@
 						a = (struct away_message *)awy->data;
 
 						menuitem = gtk_menu_item_new_with_label(a->name);
-						gtk_object_set_user_data(GTK_OBJECT(menuitem), a);
-						gtk_menu_append(GTK_MENU(submenu), menuitem);
+						g_object_set_data(G_OBJECT(menuitem), "away_message", a);
+						gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
 						gtk_widget_show(menuitem);
 						g_signal_connect(GTK_OBJECT(menuitem), "activate",
 								   G_CALLBACK(set_gc_away), gc);
@@ -562,9 +549,9 @@
 						awy = away_messages;
 
 						menuitem = gtk_menu_item_new_with_label(msgs->data);
-						gtk_object_set_user_data(GTK_OBJECT(menuitem),
+						g_object_set_data(G_OBJECT(menuitem), "away_state",
 									 msgs->data);
-						gtk_menu_append(GTK_MENU(submenu), menuitem);
+						gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
 						gtk_widget_show(menuitem);
 
 						if (strcmp(msgs->data, GAIM_AWAY_CUSTOM)) {
@@ -584,9 +571,9 @@
 								menuitem =
 								    gtk_menu_item_new_with_label(a->
 												 name);
-								gtk_object_set_user_data(GTK_OBJECT
-											 (menuitem), a);
-								gtk_menu_append(GTK_MENU(submenu2),
+								g_object_set_data(G_OBJECT(menuitem),
+										"away_message", a);
+								gtk_menu_shell_append(GTK_MENU_SHELL(submenu2),
 										menuitem);
 								gtk_widget_show(menuitem);
 								g_signal_connect(GTK_OBJECT(menuitem),
@@ -606,7 +593,7 @@
 			}
 
 			menuitem = gtk_menu_item_new_with_label(_("Set All Away"));
-			gtk_menu_append(GTK_MENU(awaymenu), menuitem);
+			gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
 			gtk_widget_show(menuitem);
 
 			submenu = gtk_menu_new();
@@ -619,8 +606,8 @@
 				a = (struct away_message *)awy->data;
 
 				menuitem = gtk_menu_item_new_with_label(a->name);
-				gtk_object_set_user_data(GTK_OBJECT(menuitem), a);
-				gtk_menu_append(GTK_MENU(submenu), menuitem);
+				g_object_set_data(G_OBJECT(menuitem), "away_message", a);
+				gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
 				gtk_widget_show(menuitem);
 				g_signal_connect(GTK_OBJECT(menuitem), "activate",
 						   G_CALLBACK(do_away_message), a);
@@ -630,7 +617,7 @@
 		}
 	}
 	if (prefs_away_menu) {
-		l = gtk_container_children(GTK_CONTAINER(prefs_away_menu));
+		l = gtk_container_get_children(GTK_CONTAINER(prefs_away_menu));
 		while (l) {
 			gtk_widget_destroy(GTK_WIDGET(l->data));
 			l = l->next;
--- a/src/buddy.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/buddy.c	Sun Mar 02 19:21:36 2003 +0000
@@ -19,6 +19,12 @@
  *
  */
 
+#ifdef GTK_DISABLE_DEPRECATED
+#undef GTK_DISABLE_DEPRECATED
+#endif
+
+#define GTK_ENABLE_BROKEN
+
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
--- a/src/buddy_chat.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/buddy_chat.c	Sun Mar 02 19:21:36 2003 +0000
@@ -52,7 +52,7 @@
 		char *sval;
 
 		for (tmp = chatentries; tmp != NULL; tmp = tmp->next) {
-			if (gtk_object_get_user_data(tmp->data)) {
+			if (g_object_get_data(tmp->data, "is_spin")) {
 				ival = g_new0(int, 1);
 				*ival = gtk_spin_button_get_value_as_int(tmp->data);
 				data = g_list_append(data, ival);
@@ -121,9 +121,9 @@
 			adjust = gtk_adjustment_new(pce->min, pce->min,
 										pce->max, 1, 10, 10);
 			spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
-			gtk_object_set_user_data(GTK_OBJECT(spin), (void *)1);
+			g_object_set_data(G_OBJECT(spin), "is_spin", GINT_TO_POINTER(TRUE));
 			chatentries = g_list_append(chatentries, spin);
-			gtk_widget_set_usize(spin, 50, -1);
+			gtk_widget_set_size_request(spin, 50, -1);
 			gtk_box_pack_end(GTK_BOX(rowbox), spin, FALSE, FALSE, 0);
 			gtk_widget_show(spin);
 		}
@@ -194,12 +194,12 @@
 		g_snprintf(buf, sizeof(buf), "%s (%s)", g->username, g->prpl->name);
 		opt = gtk_menu_item_new_with_label(buf);
 
-		gtk_object_set_user_data(GTK_OBJECT(opt), g);
+		g_object_set_data(G_OBJECT(opt), "gaim_connection", g);
 
 		g_signal_connect(G_OBJECT(opt), "activate",
 						 G_CALLBACK(joinchat_choose), g);
 
-		gtk_menu_append(GTK_MENU(menu), opt);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 		gtk_widget_show(opt);
 	}
 
@@ -251,7 +251,7 @@
 	if (!joinchat) {
 		GAIM_DIALOG(joinchat);
 		gtk_window_set_role(GTK_WINDOW(joinchat), "joinchat");
-		gtk_window_set_policy(GTK_WINDOW(joinchat), FALSE, TRUE, TRUE);
+		gtk_window_set_resizable(GTK_WINDOW(joinchat), TRUE);
 		gtk_widget_realize(joinchat);
 		g_signal_connect(G_OBJECT(joinchat), "delete_event",
 				   G_CALLBACK(destroy_join_chat), joinchat);
--- a/src/dialogs.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/dialogs.c	Sun Mar 02 19:21:36 2003 +0000
@@ -276,31 +276,31 @@
 	struct gaim_gtk_conversation *gtkconv;
 	gchar *object_data;
 
-	object_data = gtk_object_get_user_data(GTK_OBJECT(w));
+	object_data = g_object_get_data(G_OBJECT(w), "dialog_type");
 
 	gtkconv = GAIM_GTK_CONVERSATION(c);
 
 	if (GTK_IS_COLOR_SELECTION_DIALOG(w)) {
 		gaim_gtk_set_state_lock(TRUE);
 		if (w == gtkconv->dialogs.fg_color) {
-			gtk_toggle_button_set_state(
+			gtk_toggle_button_set_active(
 				GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE);
 			gtkconv->dialogs.fg_color = NULL;
 		} else {
-			gtk_toggle_button_set_state(
+			gtk_toggle_button_set_active(
 				GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE);
 			gtkconv->dialogs.bg_color = NULL;
 		}
 		gaim_gtk_set_state_lock(FALSE);
 	} else if (GTK_IS_FONT_SELECTION_DIALOG(w)) {
 		gaim_gtk_set_state_lock(TRUE);
-		gtk_toggle_button_set_state(
+		gtk_toggle_button_set_active(
 			GTK_TOGGLE_BUTTON(gtkconv->toolbar.normal_size), FALSE);
 		gaim_gtk_set_state_lock(FALSE);
 		gtkconv->dialogs.font = NULL;
 	} else if (!g_strcasecmp(object_data, "smiley dialog")) {
 		gaim_gtk_set_state_lock(TRUE);
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley),
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley),
 									FALSE);
 		gaim_gtk_set_state_lock(FALSE);
 		gtkconv->dialogs.smiley = NULL;
@@ -666,13 +666,13 @@
 	gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
 	gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
 	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-	
+
 	gtk_widget_show_all(window);
 }
 
-void show_info_select_account(GtkObject *w, struct gaim_connection *gc)
+void show_info_select_account(GObject *w, struct gaim_connection *gc)
 {
-	struct getuserinfo *info = gtk_object_get_user_data(w);
+	struct getuserinfo *info = g_object_get_data(w, "getuserinfo");
 	info->gc = gc;
 }
 
@@ -765,12 +765,12 @@
 				}
 				g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name);
 				opt = gtk_menu_item_new_with_label(buf);
-				gtk_object_set_user_data(GTK_OBJECT(opt), info);
+				g_object_set_data(G_OBJECT(opt), "getuserinfo", info);
 
 				g_signal_connect(GTK_OBJECT(opt), "activate",
 						   G_CALLBACK(show_info_select_account), c);
 
-				gtk_menu_append(GTK_MENU(menu), opt);
+				gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 				g = g->next;
 			}
 
@@ -864,12 +864,12 @@
 			}
 			g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name);
 			opt = gtk_menu_item_new_with_label(buf);
-			gtk_object_set_user_data(GTK_OBJECT(opt), info);
+			g_object_set_data(G_OBJECT(opt), "getuserinfo", info);
 
 			g_signal_connect(GTK_OBJECT(opt), "activate",
 					   G_CALLBACK(show_info_select_account), c);
 
-			gtk_menu_append(GTK_MENU(menu), opt);
+			gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 			g = g->next;
 		}
 		
@@ -1013,9 +1013,9 @@
 	gtk_widget_grab_focus(GTK_WIDGET(a->entry));
 }
 
-static void addbuddy_select_account(GtkObject *w, struct gaim_connection *gc)
+static void addbuddy_select_account(GObject *w, struct gaim_connection *gc)
 {
-	struct addbuddy *b = gtk_object_get_user_data(w);
+	struct addbuddy *b = g_object_get_data(w, "addbuddy");
 
 	/* Save our account */
 	b->gc = gc;
@@ -1040,12 +1040,12 @@
 		g_snprintf(buf, sizeof(buf), "%s (%s)", 
 				c->username, c->prpl->name);
 		opt = gtk_menu_item_new_with_label(buf);
-		gtk_object_set_user_data(GTK_OBJECT(opt), b);
+		g_object_set_data(G_OBJECT(opt), "addbuddy", b);
 		g_signal_connect(GTK_OBJECT(opt), "activate",
 				G_CALLBACK(addbuddy_select_account),
 				c);
 		gtk_widget_show(opt);
-		gtk_menu_append(GTK_MENU(menu), opt);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 
 		/* Now check to see if it's our current menu */
 		if (c == b->gc) {
@@ -1208,13 +1208,14 @@
 		opt = gtk_radio_button_new_with_label(NULL, label);
 	else
 		opt =
-		    gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(set)),
+		    gtk_radio_button_new_with_label(gtk_radio_button_get_group(
+						GTK_RADIO_BUTTON(set)),
 						    label);
 
 	g_signal_connect(GTK_OBJECT(opt), "toggled", G_CALLBACK(set_deny_mode), (void *)which);
 	gtk_widget_show(opt);
 	if (current_deny_gc->account->permdeny == which)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opt), TRUE);
 
 	return opt;
 }
@@ -1236,7 +1237,7 @@
 
 static void set_deny_type()
 {
-	GSList *bg = gtk_radio_button_group(GTK_RADIO_BUTTON(deny_type));
+	GSList *bg = gtk_radio_button_get_group(GTK_RADIO_BUTTON(deny_type));
 
 	switch (current_deny_gc->account->permdeny) {
 	case 5:
@@ -1255,7 +1256,7 @@
 		break;
 	}
 
-	gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(bg->data), TRUE);
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bg->data), TRUE);
 }
 
 void build_allow_list()
@@ -1340,7 +1341,7 @@
 		opt = gtk_menu_item_new_with_label(buf);
 		g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(deny_gc_opt), gc);
 		gtk_widget_show(opt);
-		gtk_menu_append(GTK_MENU(menu), opt);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 		if (gc == current_deny_gc)
 			found = TRUE;
 		else if (!found)
@@ -1483,13 +1484,13 @@
 	current_is_deny = TRUE;
 
 	privacy_win = pwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-	gtk_window_set_policy(GTK_WINDOW(pwin), FALSE, FALSE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(pwin), FALSE);
 	gtk_window_set_role(GTK_WINDOW(pwin), "privacy");
 	gtk_window_set_title(GTK_WINDOW(pwin), _("Gaim - Privacy"));
 	g_signal_connect(GTK_OBJECT(pwin), "destroy", G_CALLBACK(destroy_privacy), NULL);
 	gtk_widget_realize(pwin);
 
-	gtk_widget_set_usize(pwin, 0, 400);
+	gtk_widget_set_size_request(pwin, 0, 400);
 
 	box = gtk_vbox_new(FALSE, 5);
 	gtk_container_set_border_width(GTK_CONTAINER(box), 5);
@@ -1700,7 +1701,7 @@
 
 static void pounce_choose(GtkWidget *opt, struct addbp *b)
 {
-	struct gaim_account *account = gtk_object_get_user_data(GTK_OBJECT(opt));
+	struct gaim_account *account = g_object_get_data(G_OBJECT(opt), "gaim_account");
 	b->account = account;
 }
 
@@ -1726,9 +1727,9 @@
 		p = (struct prpl *)find_prpl(account->protocol);
 		g_snprintf(buf, sizeof buf, "%s (%s)", account->username, (p && p->name)?p->name:_("Unknown"));
 		opt = gtk_menu_item_new_with_label(buf);
-		gtk_object_set_user_data(GTK_OBJECT(opt), account);
+		g_object_set_data(G_OBJECT(opt), "gaim_account", account);
 		g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(pounce_choose), b);
-		gtk_menu_append(GTK_MENU(menu), opt);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 		gtk_widget_show(opt);
 
 		if (b->account == account) {
@@ -1774,7 +1775,7 @@
 
 	GAIM_DIALOG(b->window);
 	dialogwindows = g_list_prepend(dialogwindows, b->window);
-	gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
 	gtk_window_set_role(GTK_WINDOW(b->window), "new_bp");
 	gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - New Buddy Pounce"));
 	g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
@@ -1832,43 +1833,43 @@
 	gtk_container_set_border_width(GTK_CONTAINER(table), 5);
 	gtk_table_set_col_spacings(GTK_TABLE(table), 5);
 	gtk_widget_show(table);
-	
+
 	b->p_signon = gtk_check_button_new_with_label(_("Pounce on sign on"));
 	if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_signon), 
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_signon),
 		                           (edit_bp->options & OPT_POUNCE_SIGNON) ? TRUE : FALSE);
 	else
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_signon), TRUE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_signon), TRUE);
 	gtk_table_attach(GTK_TABLE(table), b->p_signon, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
 	gtk_widget_show(b->p_signon);
 
 	b->p_unaway = gtk_check_button_new_with_label(_("Pounce on return from away"));
 	if (away)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_unaway), TRUE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unaway), TRUE);
 	else if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_unaway), 
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unaway),
 					   (edit_bp->options & OPT_POUNCE_UNAWAY) ? TRUE : FALSE);
 	gtk_table_attach(GTK_TABLE(table), b->p_unaway, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, 0);
 	gtk_widget_show(b->p_unaway);
 
 	b->p_unidle = gtk_check_button_new_with_label(_("Pounce on return from idle"));
 	if (idle)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_unidle), TRUE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unidle), TRUE);
 	else if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_unidle), 
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unidle),
 				           (edit_bp->options & OPT_POUNCE_UNIDLE) ? TRUE : FALSE);
 	gtk_table_attach(GTK_TABLE(table), b->p_unidle, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
 	gtk_widget_show(b->p_unidle);
-	
+
 	b->p_typing = gtk_check_button_new_with_label(_("Pounce when buddy is typing to you"));
-	if (edit_bp)		
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_typing),
+	if (edit_bp)
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_typing),
 					   (edit_bp->options & OPT_POUNCE_TYPING) ? TRUE : FALSE);
 	gtk_table_attach(GTK_TABLE(table), b->p_typing,1,2,1,2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
 	gtk_widget_show(b->p_typing);
 
 	/* </pounce type="when"> */
-	
+
 	/* <pounce type="action"> */
 	frame = gtk_frame_new(_("Pounce Action"));
 	gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
@@ -1880,31 +1881,31 @@
 	gtk_table_set_col_spacings(GTK_TABLE(table), 5);
 	gtk_table_set_row_spacings(GTK_TABLE(table), 5);
 	gtk_widget_show(table);
-	
+
 	b->openwindow = gtk_check_button_new_with_label(_("Open IM Window"));
 	if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->openwindow), 
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->openwindow),
 			                   (edit_bp->options & OPT_POUNCE_POPUP) ? TRUE : FALSE);
 	else
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->openwindow), FALSE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->openwindow), FALSE);
 	gtk_table_attach(GTK_TABLE(table), b->openwindow, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
 	gtk_widget_show(b->openwindow);
-	
+
 	b->popupnotify = gtk_check_button_new_with_label(_("Popup Notification"));
 	if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->popupnotify), 
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->popupnotify),
 					   (edit_bp->options & OPT_POUNCE_NOTIFY) ? TRUE : FALSE);
 	else
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->popupnotify), FALSE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->popupnotify), FALSE);
 	gtk_table_attach(GTK_TABLE(table), b->popupnotify, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
 	gtk_widget_show(b->popupnotify);
 
 	b->sendim = gtk_check_button_new_with_label(_("Send Message"));
 	if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sendim), 
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sendim),
 					   (edit_bp->options & OPT_POUNCE_SEND_IM) ? TRUE : FALSE);
 	else
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sendim), TRUE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sendim), TRUE);
 	gtk_table_attach(GTK_TABLE(table), b->sendim, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
 	gtk_widget_show(b->sendim);
 
@@ -1912,7 +1913,7 @@
 	gtk_table_attach(GTK_TABLE(table), b->messentry, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
 	g_signal_connect(GTK_OBJECT(b->messentry), "activate", G_CALLBACK(do_new_bp), b);
 	if(edit_bp) {
-		gtk_widget_set_sensitive(GTK_WIDGET(b->messentry), 
+		gtk_widget_set_sensitive(GTK_WIDGET(b->messentry),
 					(edit_bp->options & OPT_POUNCE_SEND_IM) ? TRUE : FALSE);
 		gtk_entry_set_text(GTK_ENTRY(b->messentry), edit_bp->message);
 	}
@@ -1924,10 +1925,10 @@
 	b->command = gtk_check_button_new_with_label(_("Execute command on pounce"));
 	gtk_table_attach(GTK_TABLE(table), b->command, 0, 1, 2, 3, GTK_FILL, 0, 0, 0);
 	if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->command),
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->command),
 					   (edit_bp->options & OPT_POUNCE_COMMAND) ? TRUE : FALSE);
 	else
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->command), FALSE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->command), FALSE);
 	gtk_widget_show(b->command);
 
 	b->commentry = gtk_entry_new();
@@ -1943,13 +1944,13 @@
 	gtk_widget_show(b->commentry);
 	g_signal_connect(GTK_OBJECT(b->command), "clicked",
 					 G_CALLBACK(gaim_gtk_toggle_sensitive), b->commentry);
-	
+
 	b->sound = gtk_check_button_new_with_label(_("Play sound on pounce"));
 	if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sound), 
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sound),
 					   (edit_bp->options & OPT_POUNCE_SOUND) ? TRUE : FALSE);
 	else
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sound), FALSE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sound), FALSE);
 	gtk_table_attach(GTK_TABLE(table), b->sound, 0, 1, 3, 4, GTK_FILL, 0, 0, 0);
 	gtk_widget_show(b->sound);
 
@@ -1970,10 +1971,10 @@
 	b->save = gtk_check_button_new_with_label(_("Save this pounce after activation"));
 	gtk_container_set_border_width(GTK_CONTAINER(b->save), 7);
 	if(edit_bp)
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->save),
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->save),
 					   (edit_bp->options & OPT_POUNCE_SAVE) ? TRUE : FALSE);
 	else
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->save), FALSE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->save), FALSE);
 	gtk_box_pack_start(GTK_BOX(vbox), b->save, FALSE, FALSE, 0);
 	gtk_widget_show(b->save);
 
@@ -2063,7 +2064,7 @@
 	GAIM_DIALOG(b->window);
 	dialogwindows = g_list_prepend(dialogwindows, b->window);
 	gtk_window_set_role(GTK_WINDOW(b->window), "set_dir");
-	gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
 	gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set Dir Info"));
 	g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
 	gtk_widget_realize(b->window);
@@ -2246,7 +2247,7 @@
 	b->gc = gc;
 
 	GAIM_DIALOG(b->window);
-	gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
 	gtk_window_set_role(GTK_WINDOW(b->window), "change_passwd");
 	gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Password Change"));
 	g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
@@ -2254,7 +2255,7 @@
 	dialogwindows = g_list_prepend(dialogwindows, b->window);
 
 	fbox = gtk_vbox_new(FALSE, 5);
-	gtk_container_border_width(GTK_CONTAINER(fbox), 5);
+	gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
 	gtk_container_add(GTK_CONTAINER(b->window), fbox);
 	gtk_widget_show(fbox);
 
@@ -2263,7 +2264,7 @@
 	gtk_widget_show(frame);
 
 	vbox = gtk_vbox_new(FALSE, 5);
-	gtk_container_border_width(GTK_CONTAINER(vbox), 5);
+	gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
 	gtk_container_add(GTK_CONTAINER(frame), vbox);
 	gtk_widget_show(vbox);
 
@@ -2436,7 +2437,7 @@
 
 		GAIM_DIALOG(b->window);
 		gtk_window_set_title(GTK_WINDOW(b->window), "Gaim");
-		gtk_container_border_width(GTK_CONTAINER(b->window), 5);
+		gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
 		gtk_widget_realize(GTK_WIDGET(b->window));
 		g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(info_dlg_free), b);
 
@@ -2454,7 +2455,7 @@
 		text = gtk_imhtml_new(NULL, NULL);
 		b->text = text;
 		gtk_container_add(GTK_CONTAINER(sw), text);
-		gtk_widget_set_usize(sw, 300, 250);
+		gtk_widget_set_size_request(sw, 300, 250);
 		gaim_setup_imhtml(text);
 
 		ok = picture_button(b->window, _("OK"), ok_xpm);
@@ -2535,7 +2536,7 @@
 
 	GAIM_DIALOG(p->window);
 	gtk_container_set_border_width(GTK_CONTAINER(p->window), 5);
-	gtk_window_set_policy(GTK_WINDOW(p->window), FALSE, FALSE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(p->window), FALSE);
 	gtk_widget_realize(p->window);
 
 	dialogwindows = g_list_prepend(dialogwindows, p->window);
@@ -2667,7 +2668,7 @@
 
 		g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s.log",
 				   gaim_home_dir(), normalize(c->name));
-		gtk_object_set_user_data(GTK_OBJECT(gtkconv->dialogs.log),
+		g_object_set_data(G_OBJECT(gtkconv->dialogs.log), "dialog_type", 
 								 "log dialog");
 		gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkconv->dialogs.log),
 										buf);
@@ -2736,7 +2737,7 @@
 	struct findbyinfo *b = g_new0(struct findbyinfo, 1);
 	b->gc = gc;
 	GAIM_DIALOG(b->window);
-	gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
 	gtk_window_set_role(GTK_WINDOW(b->window), "find_info");
 	gtk_widget_show(b->window);
 
@@ -2873,7 +2874,7 @@
 	gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Info"));
 	gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry);
 	gtk_container_add(GTK_CONTAINER(b->window), fbox);
-	gtk_container_border_width(GTK_CONTAINER(b->window), 5);
+	gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
 	gtk_widget_realize(b->window);
 
 	gtk_widget_show(b->window);
@@ -2892,7 +2893,7 @@
 	if (g_slist_find(connections, gc))
 		b->gc = gc;
 	GAIM_DIALOG(b->window);
-	gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
 	gtk_window_set_role(GTK_WINDOW(b->window), "find_email");
 	gtk_widget_realize(b->window);
 	dialogwindows = g_list_prepend(dialogwindows, b->window);
@@ -2944,7 +2945,7 @@
 
 	if (gtkconv->toolbar.link) {
 		gaim_gtk_set_state_lock(TRUE);
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link),
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link),
 									FALSE);
 		gaim_gtk_set_state_lock(FALSE);
 	}
@@ -2979,7 +2980,7 @@
 
 	if (gtkconv->toolbar.link) {
 		gaim_gtk_set_state_lock(TRUE);
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link),
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link),
 									FALSE);
 		gaim_gtk_set_state_lock(FALSE);
 	}
@@ -3098,7 +3099,7 @@
 
 	if (gtkconv->toolbar.fgcolor && widget) {
 		gaim_gtk_set_state_lock(TRUE);
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor),
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor),
 									FALSE);
 		gaim_gtk_set_state_lock(FALSE);
 	}
@@ -3116,7 +3117,7 @@
 
 	if (gtkconv->toolbar.bgcolor && widget) {
 		gaim_gtk_set_state_lock(TRUE);
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor),
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor),
 									FALSE);
 		gaim_gtk_set_state_lock(FALSE);
 	}
@@ -3137,7 +3138,7 @@
 
 	gtk_color_selection_get_current_color(colorsel, &text_color);
 
-	c = gtk_object_get_user_data(GTK_OBJECT(colorsel));
+	c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation");
 	/* GTK_IS_EDITABLE(c->entry); huh? */
 
 	gtkconv = GAIM_GTK_CONVERSATION(c);
@@ -3167,7 +3168,7 @@
 
 	gtk_color_selection_get_current_color(colorsel, &text_color);
 
-	c = gtk_object_get_user_data(GTK_OBJECT(colorsel));
+	c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation");
 	/* GTK_IS_EDITABLE(c->entry); huh? */
 
 	gtkconv = GAIM_GTK_CONVERSATION(c);
@@ -3217,7 +3218,7 @@
 		gtkconv->dialogs.fg_color = gtk_color_selection_dialog_new(_("Select Text Color"));
 		colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel;
 		gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor);
-		gtk_object_set_user_data(GTK_OBJECT(colorsel), c);
+		g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c);
 
 		g_signal_connect(GTK_OBJECT(gtkconv->dialogs.fg_color), "delete_event",
 				   G_CALLBACK(delete_event_dialog), c);
@@ -3265,7 +3266,7 @@
 		gtkconv->dialogs.bg_color = gtk_color_selection_dialog_new(_("Select Background Color"));
 		colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel;
 		gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor);
-		gtk_object_set_user_data(GTK_OBJECT(colorsel), c);
+		g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c);
 
 		g_signal_connect(GTK_OBJECT(gtkconv->dialogs.bg_color), "delete_event",
 				   G_CALLBACK(delete_event_dialog), c);
@@ -3294,7 +3295,7 @@
 
 	if (gtkconv->toolbar.normal_size && widget) {
 		gaim_gtk_set_state_lock(TRUE);
-		gtk_toggle_button_set_state(
+		gtk_toggle_button_set_active(
 			GTK_TOGGLE_BUTTON(gtkconv->toolbar.normal_size), FALSE);
 		gaim_gtk_set_state_lock(FALSE);
 	}
@@ -3310,11 +3311,12 @@
 	   but for now only works with font face */
 	int i = 0;
 	char *fontname;
-	struct gaim_conversation *c = gtk_object_get_user_data(GTK_OBJECT(fontsel));
+	struct gaim_conversation *c = g_object_get_data(G_OBJECT(fontsel),
+			"gaim_conversation");
 
 	if (c) {
 		fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel));
-		while(fontname[i] && !isdigit(fontname[i])) { 
+		while(fontname[i] && !isdigit(fontname[i])) {
 			i++;
 		}
 		fontname[i] = 0;
@@ -3357,7 +3359,6 @@
 								DEFAULT_FONT_FACE " 12");
 		}
 
-		gtk_object_set_user_data(GTK_OBJECT(fontseld), NULL);
 		g_signal_connect(GTK_OBJECT(fontseld), "delete_event",
 				   G_CALLBACK(destroy_fontsel), NULL);
 		g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button),
@@ -3373,10 +3374,7 @@
 	if (!gtkconv->dialogs.font) {
 		gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font"));
 
-		if (font)
-			gtk_object_set_user_data(GTK_OBJECT(gtkconv->dialogs.font), c);
-		else
-			gtk_object_set_user_data(GTK_OBJECT(gtkconv->dialogs.font), NULL);
+		g_object_set_data(G_OBJECT(gtkconv->dialogs.font), "gaim_conversation", c);
 
 		if (gtkconv->fontface[0]) {
 			g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface);
@@ -3461,7 +3459,7 @@
 		opt = gtk_menu_item_new_with_label(buf);
 		g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(set_import_gc), c);
 		gtk_widget_show(opt);
-		gtk_menu_append(GTK_MENU(menu), opt);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 		g = g->next;
 	}
 
@@ -3524,8 +3522,6 @@
 
 	save_prefs();
 	do_away_menu();
-	if (prefs_away_list != NULL)
-		gtk_list_select_item(GTK_LIST(prefs_away_list), g_slist_index(away_messages, am));
 
 	return am;
 }
@@ -3607,8 +3603,8 @@
 
 	/* Set up window */
 	GAIM_DIALOG(ca->window);
-	gtk_widget_set_usize(ca->window, -1, 250);
-	gtk_container_border_width(GTK_CONTAINER(ca->window), 5);
+	gtk_widget_set_size_request(ca->window, -1, 250);
+	gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5);
 	gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess");
 	gtk_window_set_title(GTK_WINDOW(ca->window), _("Gaim - New away message"));
 	g_signal_connect(GTK_OBJECT(ca->window), "delete_event",
@@ -3708,7 +3704,7 @@
 
 	if (gtkconv->toolbar.smiley) {
 		gaim_gtk_set_state_lock(TRUE);
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley),
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley),
 									FALSE);
 		gaim_gtk_set_state_lock(FALSE);
 	}
@@ -3779,7 +3775,7 @@
 	win = GAIM_GTK_WINDOW(gaim_conversation_get_window(c))->window;
 
 	GAIM_DIALOG(dialog);
-	gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
 	gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog");
 	gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE);
 
@@ -3828,7 +3824,7 @@
 	gtk_container_set_border_width(GTK_CONTAINER(dialog), 5);
 
 	/* connect signals */
-	gtk_object_set_user_data(GTK_OBJECT(dialog), "smiley dialog");
+	g_object_set_data(G_OBJECT(dialog), "dialog_type", "smiley dialog");
 	g_signal_connect(G_OBJECT(dialog), "delete_event",
 					 G_CALLBACK(delete_event_dialog), c);
 
@@ -3862,13 +3858,12 @@
 	static GtkWidget *add = NULL;
 	GtkWidget *label;
 	GtkWidget *topbox;
-	static int a, c;
 
 	if (aliasdlg)
 		gtk_widget_destroy(aliasdlg);
 
 	GAIM_DIALOG(aliasdlg);
-	gtk_window_set_policy(GTK_WINDOW(aliasdlg), FALSE, FALSE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(aliasdlg), FALSE);
 	gtk_window_set_role(GTK_WINDOW(aliasdlg), "alias_dialog");
 	gtk_widget_realize(aliasdlg);
 	dialogwindows = g_list_prepend(dialogwindows, aliasdlg);
@@ -3886,7 +3881,7 @@
 	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_entry_set_editable(GTK_ENTRY(aliasentry), FALSE);
+	gtk_editable_set_editable(GTK_EDITABLE(aliasentry), FALSE);
 	gtk_box_pack_start(GTK_BOX(topbox), bbox, FALSE, FALSE, 0);
 
 	/* And the buddy alias box */
@@ -3916,8 +3911,8 @@
 	/* Handle closes right */
 	g_signal_connect(GTK_OBJECT(aliasdlg), "destroy", G_CALLBACK(destroy_dialog), aliasdlg);
 	g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), aliasdlg);
-	a = g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_alias_bud), b);
-	c = g_signal_connect(GTK_OBJECT(aliasname), "activate", G_CALLBACK(do_alias_bud), b);
+	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);
@@ -3952,7 +3947,7 @@
 	char *name;
 	char *tmp;
 
-	name = gtk_object_get_user_data(GTK_OBJECT(filesel));
+	name = g_object_get_data(G_OBJECT(filesel), "name");
 	tmp = gaim_user_dir();
 	g_snprintf(filename, PATHSIZE, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp,
 		   name ? normalize(name) : "system", name ? ".log" : "");
@@ -4005,7 +4000,7 @@
 			   "clicked", G_CALLBACK(do_save_log), filesel);
 	g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button),
 			   "clicked", G_CALLBACK(destroy_dialog), filesel);
-	gtk_object_set_user_data(GTK_OBJECT(filesel), name);
+	g_object_set_data(G_OBJECT(filesel), "name", name);
 
 	gtk_widget_realize(filesel);
 	gtk_widget_show(filesel);
@@ -4029,7 +4024,7 @@
 		do_error_dialog(buf, strerror(errno), GAIM_ERROR);
 	}
 
-	window = gtk_object_get_user_data(GTK_OBJECT(w));
+	window = g_object_get_data(G_OBJECT(w), "log_window");
 	destroy_dialog(NULL, window);
 }
 
@@ -4046,7 +4041,7 @@
 	gtk_window_set_role(GTK_WINDOW(window), "dialog");
 	gtk_window_set_title(GTK_WINDOW(window), _("Gaim - Clear Log"));
 	gtk_container_set_border_width(GTK_CONTAINER(window), 10);
-	gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
 	g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window);
 	gtk_widget_realize(window);
 
@@ -4064,7 +4059,8 @@
 	gtk_widget_show(hbox);
 
 	button = picture_button(window, _("Okay"), ok_xpm);
-	gtk_object_set_user_data(GTK_OBJECT(button), gtk_object_get_user_data(GTK_OBJECT(w)));
+	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);
@@ -4080,7 +4076,7 @@
 	return;
 }
 
-static void log_show_convo(GtkWidget *w, struct view_log *view)
+static void log_show_convo(struct view_log *view)
 {
 	gchar buf[BUF_LONG];
 	FILE *fp;
@@ -4105,7 +4101,7 @@
 	}
 
 	gtk_widget_set_sensitive(view->bbox, FALSE);
-	gtk_signal_disconnect_by_func(GTK_OBJECT(view->window),
+	g_signal_handlers_disconnect_by_func(G_OBJECT(view->window),
 				      G_CALLBACK(destroy_dialog), view->window);
 	block = g_signal_connect(GTK_OBJECT(view->window), "delete_event",
 				   G_CALLBACK(dont_destroy), view->window);
@@ -4143,13 +4139,24 @@
 	gtk_imhtml_append_text(GTK_IMHTML(view->layout), "<BR>", -1, view->options);
 
 	gtk_widget_set_sensitive(view->bbox, TRUE);
-	gtk_signal_disconnect(GTK_OBJECT(view->window), block);
+	g_signal_handler_disconnect(G_OBJECT(view->window), block);
 	g_signal_connect(GTK_OBJECT(view->window), "delete_event",
 			   G_CALLBACK(destroy_dialog), view->window);
 	g_string_free(string, TRUE);
 	fclose(fp);
 }
 
+static void log_select_convo(GtkTreeSelection *sel, GtkTreeModel *model)
+{
+	GValue val = { 0, };
+	GtkTreeIter iter;
+
+	if(!gtk_tree_selection_get_selected(sel, &model, &iter))
+		return;
+	gtk_tree_model_get_value(model, &iter, 1, &val);
+	log_show_convo(g_value_get_pointer(&val));
+}
+
 static void des_view_item(GtkObject *obj, struct view_log *view)
 {
 	if (view->name)
@@ -4157,9 +4164,9 @@
 	g_free(view);
 }
 
-static void des_log_win(GtkObject *win, gpointer data)
+static void des_log_win(GObject *win, gpointer data)
 {
-	char *x = gtk_object_get_user_data(win);
+	char *x = g_object_get_data(win, "log_window");
 	if (x)
 		g_free(x);
 }
@@ -4192,8 +4199,10 @@
 	GtkWidget *close_button;
 	GtkWidget *clear_button;
 	GtkWidget *save_button;
-	GtkWidget *list = NULL;
-	GList *item_list = NULL;
+	GtkListStore *list_store;
+	GtkWidget *tree_view;
+	GtkTreeSelection *sel = NULL;
+	GtkTreePath *path;
 	GtkWidget *item = NULL;
 	GtkWidget *last = NULL;
 	GtkWidget *frame;
@@ -4204,7 +4213,6 @@
 	guint block;
 	char convo_start[32];
 	long offset = 0;
-	unsigned int i = 0;
 
 	options = GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL;
 	if (convo_options & OPT_CONVO_IGNORE_COLOUR)
@@ -4215,7 +4223,7 @@
 		options ^= GTK_IMHTML_NO_SIZES;
 
 	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-	gtk_object_set_user_data(GTK_OBJECT(window), name);
+	g_object_set_data(G_OBJECT(window), "name", name);
 	g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(des_log_win), NULL);
 	gtk_window_set_role(GTK_WINDOW(window), "log");
 	if (name)
@@ -4224,7 +4232,7 @@
 		g_snprintf(buf, BUF_LONG, _("Gaim - System Log"));
 	gtk_window_set_title(GTK_WINDOW(window), buf);
 	gtk_container_set_border_width(GTK_CONTAINER(window), 10);
-	gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
 	block = g_signal_connect(GTK_OBJECT(window), "delete_event",
 				   G_CALLBACK(dont_destroy), window);
 	gtk_widget_realize(window);
@@ -4247,17 +4255,31 @@
 			return;
 		}
 
-		list = gtk_list_new();
+		list_store = gtk_list_store_new(2,
+				G_TYPE_STRING,
+				G_TYPE_POINTER);
+
+		tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store));
+
+		gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE);
+
+		gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view),
+				-1, "", gtk_cell_renderer_text_new(), "text", 0, NULL);
+
+		sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
+		g_signal_connect(G_OBJECT(sel), "changed",
+				G_CALLBACK(log_select_convo),
+				NULL);
 
 		frame = gtk_frame_new(_("Date"));
 		gtk_widget_show(frame);
 
 		sw = gtk_scrolled_window_new(NULL, NULL);
 		gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
-		gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), list);
+		gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), tree_view);
 		gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
 					       GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
-		gtk_widget_set_usize(sw, 220, 220);
+		gtk_widget_set_size_request(sw, 220, 220);
 		gtk_container_add(GTK_CONTAINER(frame), sw);
 		gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
 
@@ -4265,24 +4287,18 @@
 			if (strstr(buf, "---- New C")) {
 				int length;
 				char *temp = strchr(buf, '@');
+				GtkTreeIter iter;
 
 				if (temp == NULL || strlen(temp) < 2)
 					continue;
 
-				if (i == 1 && item_list) {
-					item_list = g_list_remove(item_list, last);
-					last = NULL;
-				}
-
-				i = 0;
-
 				temp++;
 				length = strcspn(temp, "-");
 				if (length > 31) length = 31;
 
 				offset = ftell(fp);
 				g_snprintf(convo_start, length, "%s", temp);
-				item = gtk_list_item_new_with_label(convo_start);
+				gtk_list_store_append(list_store, &iter);
 				view = g_new0(struct view_log, 1);
 				view->options = options;
 				view->offset = offset;
@@ -4290,26 +4306,26 @@
 				view->bbox = bbox;
 				view->window = window;
 				view->layout = layout;
-				g_signal_connect(GTK_OBJECT(item), "select",
-						   G_CALLBACK(log_show_convo), view);
-				g_signal_connect(GTK_OBJECT(item), "destroy",
+				gtk_list_store_set(list_store, &iter,
+						0, convo_start,
+						1, view,
+						-1);
+				g_signal_connect(G_OBJECT(window), "destroy",
 						   G_CALLBACK(des_view_item), view);
 				last = item;
-				item_list = g_list_append(item_list, item);
-
-				gtk_widget_show(item);
 			}
-			i++;
 		}
 		fclose(fp);
-		if (i == 1 && item_list)
-			item_list = g_list_remove(item_list, item);
-		
-		if (item_list)
-			gtk_list_insert_items(GTK_LIST(list), item_list, 0 );
+
+		path = gtk_tree_path_new_first();
+		gtk_tree_selection_select_path(sel, path);
+		gtk_tree_path_free(path);
+
+		g_object_unref(G_OBJECT(list_store));
 	}
 
-	gtk_signal_disconnect(GTK_OBJECT(window), block);
+
+	g_signal_handler_disconnect(GTK_OBJECT(window), block);
 	g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window);
 
 	frame = gtk_frame_new(_("Conversation"));
@@ -4319,7 +4335,7 @@
 	gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
 	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
-	gtk_widget_set_usize(sw, 390, 220);
+	gtk_widget_set_size_request(sw, 390, 220);
 	gtk_container_add(GTK_CONTAINER(frame), sw);
 	gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
 
@@ -4335,7 +4351,7 @@
 	g_signal_connect(GTK_OBJECT(close_button), "clicked", G_CALLBACK(destroy_dialog), window);
 
 	clear_button = picture_button(window, _("Clear"), close_xpm);
-	gtk_object_set_user_data(GTK_OBJECT(clear_button), window);
+	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);
 
@@ -4343,8 +4359,8 @@
 	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);
 
-	gtk_widget_show_all(window);				
-	
+	gtk_widget_show_all(window);
+
 	if (!name) {
 		view = g_new0(struct view_log, 1);
 		view->options = options;
@@ -4352,12 +4368,10 @@
 		view->bbox = bbox;
 		view->window = window;
 		view->layout = layout;
-		log_show_convo(layout, view);
+		log_show_convo(view);
 		g_signal_connect(GTK_OBJECT(layout), "destroy", G_CALLBACK(des_view_item), view);
-	} else {
-		gtk_list_select_item(GTK_LIST(list), 0);
 	}
-	
+
 	gtk_widget_set_sensitive(bbox, TRUE);
 
 	return;
@@ -4377,7 +4391,7 @@
 	if (resp == GTK_RESPONSE_OK) {
 
 		new_name = gtk_entry_get_text(GTK_ENTRY(entry));
-		g = gtk_object_get_user_data(GTK_OBJECT(entry));
+		g = g_object_get_data(G_OBJECT(entry), "group");
 
 		if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) {
 			char *prevname;
@@ -4425,7 +4439,7 @@
 	g_free(filename);
 
 	if (!rename_dialog) {
-		rename_dialog =  gtk_dialog_new_with_buttons(_("Gaim - Rename Group"), GTK_WINDOW(blist), GTK_DIALOG_MODAL, 
+		rename_dialog =  gtk_dialog_new_with_buttons(_("Gaim - Rename Group"), GTK_WINDOW(blist), GTK_DIALOG_MODAL,
 						 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
 		gtk_dialog_set_default_response (GTK_DIALOG(rename_dialog), GTK_RESPONSE_OK);
 		gtk_container_set_border_width (GTK_CONTAINER(rename_dialog), 6);
@@ -4433,7 +4447,7 @@
 		gtk_dialog_set_has_separator(GTK_DIALOG(rename_dialog), FALSE);
 		gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(rename_dialog)->vbox), 12);
 		gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), 6);
-		
+
 		hbox = gtk_hbox_new(FALSE, 12);
 		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), hbox);
 		gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
@@ -4441,27 +4455,27 @@
 
 		vbox = gtk_vbox_new(FALSE, 0);
 		gtk_container_add(GTK_CONTAINER(hbox), vbox);
-		
+
 		label = gtk_label_new(_("Please enter a new name for the selected group.\n"));
 		gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
 		gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
 		gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
-		
+
 		hbox = gtk_hbox_new(FALSE, 6);
 		gtk_container_add(GTK_CONTAINER(vbox), hbox);
-		
+
 		label = gtk_label_new(NULL);
 		gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:"));
 		gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-			
+
 		name_entry = gtk_entry_new();
 		gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE);
-		gtk_object_set_user_data(GTK_OBJECT(name_entry), g);
+		g_object_set_data(G_OBJECT(name_entry), "group", g);
 		gtk_entry_set_text(GTK_ENTRY(name_entry), g->name);
 		gtk_box_pack_start(GTK_BOX(hbox), name_entry, FALSE, FALSE, 0);
 		gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE);
 		gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(name_entry));
-	
+
 		g_signal_connect(G_OBJECT(rename_dialog), "response", G_CALLBACK(do_rename_group), name_entry);
 
 	}
@@ -4476,14 +4490,14 @@
 /*  The dialog for renaming buddies                                       */
 /*------------------------------------------------------------------------*/
 
-static void do_rename_buddy(GtkObject *obj, GtkWidget *entry)
+static void do_rename_buddy(GObject *obj, GtkWidget *entry)
 {
 	const char *new_name;
 	struct buddy *b;
 	GSList *gr;
 
 	new_name = gtk_entry_get_text(GTK_ENTRY(entry));
-	b = gtk_object_get_user_data(obj);
+	b = g_object_get_data(obj, "buddy");
 
 	if (!g_slist_find(connections, b->account->gc)) {
 		destroy_dialog(rename_bud_dialog, rename_bud_dialog);
@@ -4529,7 +4543,7 @@
 	if (!rename_bud_dialog) {
 		GAIM_DIALOG(rename_bud_dialog);
 		gtk_window_set_role(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog");
-		gtk_window_set_policy(GTK_WINDOW(rename_bud_dialog), FALSE, TRUE, TRUE);
+		gtk_window_set_resizable(GTK_WINDOW(rename_bud_dialog), TRUE);
 		gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Gaim - Rename Buddy"));
 		g_signal_connect(GTK_OBJECT(rename_bud_dialog), "destroy",
 				   G_CALLBACK(destroy_dialog), rename_bud_dialog);
@@ -4551,7 +4565,7 @@
 
 		name_entry = gtk_entry_new();
 		gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0);
-		gtk_object_set_user_data(GTK_OBJECT(name_entry), b);
+		g_object_set_data(G_OBJECT(name_entry), "buddy", b);
 		gtk_entry_set_text(GTK_ENTRY(name_entry), b->name);
 		g_signal_connect(GTK_OBJECT(name_entry), "activate",
 				   G_CALLBACK(do_rename_buddy), name_entry);
@@ -4561,7 +4575,7 @@
 		gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0);
 
 		button = picture_button(rename_bud_dialog, _("OK"), ok_xpm);
-		gtk_object_set_user_data(GTK_OBJECT(button), b);
+		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);
@@ -4776,7 +4790,7 @@
 	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_pixmap_new(pm, mask);
+	pixmap = gtk_image_new_from_pixmap(pm, mask);
 	gtk_box_pack_end(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0);
 
 	if (text) {
@@ -4791,7 +4805,7 @@
 	gtk_widget_show(button_box);
 
 /* this causes clipping on lots of buttons with long text */
-/*  gtk_widget_set_usize(button, 75, 30);*/
+/*  gtk_widget_set_size_request(button, 75, 30);*/
 	gtk_widget_show(button);
 	gdk_pixmap_unref(pm);
 	gdk_bitmap_unref(mask);
@@ -4824,7 +4838,7 @@
 	gtk_widget_show(button_box);
 	if (dispstyle == 2 || dispstyle == 0) {
 		pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm);
-		pixmap = gtk_pixmap_new(pm, mask);
+		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);
@@ -5175,12 +5189,13 @@
 				1 + col_offset, 2 + col_offset, row_num, row_num +1);
 			gtk_widget_show(label);
 
-			med->widget = gtk_entry_new_with_max_length(50);
+			med->widget = gtk_entry_new();
+			gtk_entry_set_max_length(GTK_ENTRY(med->widget), 50);
 			if(med->text != NULL) {
 				gtk_entry_set_text(GTK_ENTRY (med->widget), med->text);
 			}
 			gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible);
-			gtk_entry_set_editable(GTK_ENTRY (med->widget), med->editable);
+			gtk_editable_set_editable(GTK_EDITABLE(med->widget), med->editable);
 			gtk_table_attach(GTK_TABLE (*entries_table), med->widget,
 				2 + col_offset, 3 + col_offset, row_num, row_num +1,
 				GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 5, 0);
@@ -5200,9 +5215,8 @@
 {
 	GSList *multi_text;
 	MultiTextData *mtd;
-        GtkWidget *frame;
-	GtkWidget *hbox;
-	GtkWidget *vscrollbar;
+	GtkWidget *frame;
+	GtkWidget *sw;
 
 	if(*texts_ibox != NULL) {
 		gtk_widget_destroy(GTK_WIDGET (*texts_ibox));
@@ -5213,20 +5227,24 @@
 	for(multi_text = multi_text_items; multi_text != NULL; multi_text = multi_text->next) {
 		mtd = (MultiTextData *) multi_text->data;
 		frame = gtk_frame_new(mtd->label);
+		sw = gtk_scrolled_window_new(NULL, NULL);
+		gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
+		gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
+				GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+		gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
+				GTK_SHADOW_IN);
+		gtk_widget_set_size_request(sw, 300, 100);
+		gtk_container_add(GTK_CONTAINER (frame), sw);
 		gtk_container_add(GTK_CONTAINER (*texts_ibox), frame);
-		hbox = gtk_hbox_new(FALSE, 0);
-		gtk_container_add(GTK_CONTAINER (frame), hbox);
-		mtd->textbox = gtk_text_new(NULL, NULL);
-		gtk_text_set_editable(GTK_TEXT(mtd->textbox), TRUE);
-		gtk_text_set_word_wrap(GTK_TEXT(mtd->textbox), TRUE);
-		gtk_widget_set_usize(mtd->textbox, 300, 100);
-		gtk_text_insert(GTK_TEXT(mtd->textbox), NULL, NULL, NULL, mtd->text?mtd->text:"", -1);
-		gtk_box_pack_start(GTK_BOX (hbox), mtd->textbox, FALSE, FALSE, 0);
-		vscrollbar = gtk_vscrollbar_new (GTK_TEXT(mtd->textbox)->vadj);
-		gtk_box_pack_start(GTK_BOX (hbox), vscrollbar, FALSE, FALSE, 0);
+		mtd->textbox = gtk_text_view_new();
+		gtk_text_view_set_editable(GTK_TEXT_VIEW(mtd->textbox), TRUE);
+		gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(mtd->textbox), GTK_WRAP_WORD);
+		gtk_text_buffer_set_text(
+				gtk_text_view_get_buffer(GTK_TEXT_VIEW(mtd->textbox)),
+					mtd->text?mtd->text:"", -1);
+		gtk_container_add(GTK_CONTAINER (sw), mtd->textbox);
 		gtk_widget_show(mtd->textbox);
-		gtk_widget_show (vscrollbar);
-		gtk_widget_show(hbox);
+		gtk_widget_show(sw);
 		gtk_widget_show(frame);
 	}
 
@@ -5353,8 +5371,7 @@
 			g_free(((MultiTextData *) list->data)->text);
 		}
 		((MultiTextData *) list->data)->text =
-			gtk_editable_get_chars((GtkEditable *) (((MultiTextData *) list->data)->textbox),
-				0, -1);
+			gtk_text_view_get_text(GTK_TEXT_VIEW(((MultiTextData *) list->data)->textbox), FALSE);
 	}
 
 
--- a/src/dnd-hints.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/dnd-hints.c	Sun Mar 02 19:21:36 2003 +0000
@@ -63,14 +63,12 @@
 	gdk_pixbuf_render_pixmap_and_mask(pixbuf, &pixmap, &bitmap, 128);
 	gdk_pixbuf_unref(pixbuf);
 
-	gtk_widget_push_visual(gdk_rgb_get_visual());
 	gtk_widget_push_colormap(gdk_rgb_get_cmap());
 	win = gtk_window_new(GTK_WINDOW_POPUP);
-	pix = gtk_pixmap_new(pixmap, bitmap);
+	pix = gtk_image_new_from_pixmap(pixmap, bitmap);
 	gtk_widget_realize(win);
 	gtk_container_add(GTK_CONTAINER(win), pix);
 	gtk_widget_shape_combine_mask(win, bitmap, 0, 0);
-	gtk_widget_pop_visual();
 	gtk_widget_pop_colormap();
 
 	gdk_pixmap_unref(pixmap);
@@ -158,7 +156,7 @@
 
 	if (w && GTK_IS_WIDGET(w))
 	{
-		gtk_widget_set_uposition(w, hint_windows[id].ox + x,
+		gtk_window_move(GTK_WINDOW(w), hint_windows[id].ox + x,
 								 hint_windows[id].oy + y);
 		gtk_widget_show(w);
 	}
--- a/src/gtkconv.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/gtkconv.c	Sun Mar 02 19:21:36 2003 +0000
@@ -219,7 +219,7 @@
 	gtk_widget_show(window);
 
 	gaim_gtk_set_state_lock(TRUE);
-	gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.image),
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.image),
 								FALSE);
 	gaim_gtk_set_state_lock(FALSE);
 }
@@ -744,7 +744,7 @@
 		g_signal_connect(G_OBJECT(button), "activate",
 						 G_CALLBACK(menu_im_cb), conv);
 		g_object_set_data(G_OBJECT(button), "user_data", who);
-		gtk_menu_append(GTK_MENU(menu), button);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), button);
 		gtk_widget_show(button);
 
 		if (gaim_chat_is_user_ignored(GAIM_CHAT(conv), who))
@@ -755,7 +755,7 @@
 		g_signal_connect(G_OBJECT(button), "activate",
 						 G_CALLBACK(ignore_cb), conv);
 		g_object_set_data(G_OBJECT(button), "user_data", who);
-		gtk_menu_append(GTK_MENU(menu), button);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), button);
 		gtk_widget_show(button);
 
 		if (gc && gc->prpl->get_info) {
@@ -763,7 +763,7 @@
 			g_signal_connect(G_OBJECT(button), "activate",
 							 G_CALLBACK(menu_info_cb), conv);
 			g_object_set_data(G_OBJECT(button), "user_data", who);
-			gtk_menu_append(GTK_MENU(menu), button);
+			gtk_menu_shell_append(GTK_MENU_SHELL(menu), button);
 			gtk_widget_show(button);
 		}
 
@@ -772,7 +772,7 @@
 			g_signal_connect(G_OBJECT(button), "activate",
 							 G_CALLBACK(menu_away_cb), conv);
 			g_object_set_data(G_OBJECT(button), "user_data", who);
-			gtk_menu_append(GTK_MENU(menu), button);
+			gtk_menu_shell_append(GTK_MENU_SHELL(menu), button);
 			gtk_widget_show(button);
 		}
 
@@ -787,11 +787,11 @@
 							 G_CALLBACK(menu_add_cb), conv);
 
 			g_object_set_data(G_OBJECT(button), "user_data", who);
-			gtk_menu_append(GTK_MENU(menu), button);
+			gtk_menu_shell_append(GTK_MENU_SHELL(menu), button);
 			gtk_widget_show(button);
 		}
 		/* End Jonas */
-		
+
 		gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL,
 					   event->button, event->time);
 	}
@@ -2814,7 +2814,6 @@
 
 	/* Setup the outer pane. */
 	vpaned = gtk_vpaned_new();
-	gtk_paned_set_gutter_size(GTK_PANED(vpaned), 15);
 	gtk_widget_show(vpaned);
 
 	/* Setup the top part of the pane. */
@@ -2833,14 +2832,13 @@
 		gtk_widget_show(label);
 
 		gtkchat->topic_text = gtk_entry_new();
-		gtk_entry_set_editable(GTK_ENTRY(gtkchat->topic_text), FALSE);
+		gtk_editable_set_editable(GTK_EDITABLE(gtkchat->topic_text), FALSE);
 		gtk_box_pack_start(GTK_BOX(hbox), gtkchat->topic_text, TRUE, TRUE, 5);
 		gtk_widget_show(gtkchat->topic_text);
 	}
 
 	/* Setup the horizontal pane. */
 	hpaned = gtk_hpaned_new();
-	gtk_paned_set_gutter_size(GTK_PANED(hpaned), 15);
 	gtk_box_pack_start(GTK_BOX(vbox), hpaned, TRUE, TRUE, 5);
 	gtk_widget_show(hpaned);
 
@@ -3029,7 +3027,6 @@
 
 	/* Setup the outer pane. */
 	paned = gtk_vpaned_new();
-	gtk_paned_set_gutter_size(GTK_PANED(paned), 15);
 	gtk_widget_show(paned);
 
 	/* Setup the top part of the pane. */
@@ -3193,7 +3190,7 @@
 	/* Create the window. */
 	gtkwin->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 	gtk_window_set_role(GTK_WINDOW(gtkwin->window), "conversation");
-	gtk_window_set_policy(GTK_WINDOW(gtkwin->window), TRUE, TRUE, FALSE);
+	gtk_window_set_resizable(GTK_WINDOW(gtkwin->window), TRUE);
 	gtk_container_set_border_width(GTK_CONTAINER(gtkwin->window), 0);
 	gtk_widget_realize(gtkwin->window);
 	gtk_window_set_title(GTK_WINDOW(gtkwin->window), _("Conversations"));
@@ -4138,9 +4135,8 @@
 		if (!GTK_WIDGET_REALIZED(gtkconv->tab_label))
 			gtk_widget_realize(gtkconv->tab_label);
 
-		gtk_style_set_font(style,
-			gdk_font_ref(gtk_style_get_font(gtk_widget_get_style(
-				gtkconv->tab_label))));
+		style->font_desc = pango_font_description_copy(
+				gtk_widget_get_style(gtkconv->tab_label)->font_desc);
 
 		if (im != NULL && gaim_im_get_typing_state(im) == TYPING) {
 			style->fg[GTK_STATE_NORMAL].red   = 0x4646;
@@ -4168,7 +4164,7 @@
 		}
 
 		gtk_widget_set_style(gtkconv->tab_label, style);
-		gtk_style_unref(style);
+		g_object_unref(G_OBJECT(style));
 	}
 	else if (type == GAIM_CONV_UPDATE_TOPIC) {
 		chat = GAIM_CHAT(conv);
@@ -4371,7 +4367,7 @@
 
 	gdk_pixbuf_render_pixmap_and_mask(scale, &pm, &bm, 100);
 	gdk_pixbuf_unref(scale);
-	gtk_pixmap_set(GTK_PIXMAP(gtkconv->u.im->icon), pm, bm);
+	gtk_image_set_from_pixmap(GTK_IMAGE(gtkconv->u.im->icon), pm, bm);
 	gdk_pixmap_unref(pm);
 	gtk_widget_queue_draw(gtkconv->u.im->icon);
 
@@ -4583,7 +4579,7 @@
 					 G_CALLBACK(icon_menu), conv);
 	gtk_widget_show(event);
 
-	gtkconv->u.im->icon = gtk_pixmap_new(pm, bm);
+	gtkconv->u.im->icon = gtk_image_new_from_pixmap(pm, bm);
 	gtk_widget_set_size_request(gtkconv->u.im->icon, sf, sf);
 	gtk_container_add(GTK_CONTAINER(event), gtkconv->u.im->icon);
 	gtk_widget_show(gtkconv->u.im->icon);
--- a/src/gtkimhtml.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/gtkimhtml.c	Sun Mar 02 19:21:36 2003 +0000
@@ -217,25 +217,28 @@
 
 GtkWidget *gtk_imhtml_new(void *a, void *b)
 {
-	return GTK_WIDGET(gtk_type_new(gtk_imhtml_get_type()));
+	return GTK_WIDGET(g_object_new(gtk_imhtml_get_type(), NULL));
 }
 
-GtkType gtk_imhtml_get_type()
+GType gtk_imhtml_get_type()
 {
-	static guint imhtml_type = 0;
+	static GType imhtml_type = 0;
 
 	if (!imhtml_type) {
-		GtkTypeInfo imhtml_info = {
-			"GtkIMHtml",
+		static const GTypeInfo imhtml_info = {
+			sizeof(GtkIMHtmlClass),
+			NULL,
+			NULL,
+			(GClassInitFunc) gtk_imhtml_class_init,
+			NULL,
+			NULL,
 			sizeof (GtkIMHtml),
-			sizeof (GtkIMHtmlClass),
-			(GtkClassInitFunc) gtk_imhtml_class_init,
-			(GtkObjectInitFunc) gtk_imhtml_init,
-			NULL,
-			NULL
+			0,
+			(GInstanceInitFunc) gtk_imhtml_init
 		};
-		
-		imhtml_type = gtk_type_unique (gtk_text_view_get_type (), &imhtml_info);
+
+		imhtml_type = g_type_register_static(gtk_text_view_get_type(),
+				"GtkIMHtml", &imhtml_info, 0);
 	}
 
 	return imhtml_type;
--- a/src/log.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/log.c	Sun Mar 02 19:21:36 2003 +0000
@@ -82,9 +82,9 @@
 	}
 }
 
-static void do_save_convo(GtkObject *obj, GtkWidget *wid)
+static void do_save_convo(GObject *obj, GtkWidget *wid)
 {
-	struct gaim_conversation *c = gtk_object_get_user_data(obj);
+	struct gaim_conversation *c = g_object_get_data(obj, "gaim_conversation");
 	const char *filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(wid));
 	FILE *f;
 
@@ -118,7 +118,8 @@
 	GtkWidget *window = gtk_file_selection_new(_("Gaim - Save Conversation"));
 	g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S "%s.log", gaim_home_dir(), normalize(c->name));
 	gtk_file_selection_set_filename(GTK_FILE_SELECTION(window), buf);
-	gtk_object_set_user_data(GTK_OBJECT(GTK_FILE_SELECTION(window)->ok_button), c);
+	g_object_set_data(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button),
+			"gaim_conversation", c);
 	g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(window)->ok_button),
 			   "clicked", G_CALLBACK(do_save_convo), window);
 	g_signal_connect_swapped(GTK_OBJECT(GTK_FILE_SELECTION(window)->cancel_button),
--- a/src/main.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/main.c	Sun Mar 02 19:21:36 2003 +0000
@@ -230,7 +230,7 @@
 {
 	if (widget == name) {
 		gtk_entry_set_text(GTK_ENTRY(pass), "");
-		gtk_entry_select_region(GTK_ENTRY(GTK_COMBO(name)->entry), 0, 0);
+		gtk_editable_select_region(GTK_EDITABLE(GTK_COMBO(name)->entry), 0, 0);
 		gtk_widget_grab_focus(pass);
 	} else if (widget == pass) {
 		dologin(widget, w);
@@ -302,7 +302,7 @@
 	mainwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 
 	gtk_window_set_role(GTK_WINDOW(mainwindow), "login");
-	gtk_window_set_policy(GTK_WINDOW(mainwindow), FALSE, FALSE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(mainwindow), FALSE);
 	gtk_window_set_title(GTK_WINDOW(mainwindow), _("Gaim - Login"));
 	gtk_widget_realize(mainwindow);
 	gdk_window_set_group(mainwindow->window, mainwindow->window);
--- a/src/multi.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/multi.c	Sun Mar 02 19:21:36 2003 +0000
@@ -245,7 +245,7 @@
 static void add_columns(GtkWidget *treeview)
 {
 	GtkCellRenderer *renderer;
-	GtkTreeViewColumn *column;
+	/* GtkTreeViewColumn *column; */
 
 	/* Screennames */
 	renderer = gtk_cell_renderer_text_new();
@@ -344,7 +344,7 @@
 	GtkWidget *button;
 	struct mod_account_opt *mao = g_new0(struct mod_account_opt, 1);
 	button = gtk_check_button_new_with_label(text);
-	gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), (ma->options & option));
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), (ma->options & option));
 	gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0);
 	mao->ma = ma;
 	mao->opt = option;
@@ -400,7 +400,7 @@
 	tmp = ma->opt_entries;
 	while (tmp) {
 		GtkEntry *entry = tmp->data;
-		int pos = (int)gtk_object_get_user_data(GTK_OBJECT(entry));
+		int pos = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(entry), "position"));
 		g_snprintf(a->proto_opt[pos], sizeof(a->proto_opt[pos]), "%s",
 				   gtk_entry_get_text(entry));
 		tmp = tmp->next;
@@ -418,7 +418,9 @@
 		g_free(ma->account->gpi);
 	ma->account->gpi = NULL;
 
-	proxytype = (int)gtk_object_get_user_data(GTK_OBJECT(gtk_menu_get_active(GTK_MENU(ma->proxytype_menu))));
+	proxytype = GPOINTER_TO_INT(g_object_get_data(
+				G_OBJECT(gtk_menu_get_active(GTK_MENU(ma->proxytype_menu))),
+				"proxytype"));
 
 	if(proxytype != PROXY_USE_GLOBAL) {
 		struct gaim_proxy_info *gpi = g_new0(struct gaim_proxy_info, 1);
@@ -467,7 +469,7 @@
 
 static void set_prot(GtkWidget *opt, int proto)
 {
-	struct mod_account *ma = gtk_object_get_user_data(GTK_OBJECT(opt));
+	struct mod_account *ma = g_object_get_data(G_OBJECT(opt), "mod_account");
 	struct prpl *p, *q;
 	q = find_prpl(proto);
 	if (ma->protocol != proto) {
@@ -531,10 +533,10 @@
 			opt = gtk_menu_item_new_with_label(e->name);
 		else
 			opt = gtk_menu_item_new_with_label("Unknown");
-		gtk_object_set_user_data(GTK_OBJECT(opt), ma);
+		g_object_set_data(G_OBJECT(opt), "mod_account", ma);
 		g_signal_connect(GTK_OBJECT(opt), "activate",
 				   G_CALLBACK(set_prot), (void *)e->protocol);
-		gtk_menu_append(GTK_MENU(menu), opt);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 		gtk_widget_show(opt);
 		p = p->next;
 	}
@@ -630,7 +632,7 @@
 
 	name = gtk_entry_new();
 	gtk_entry_set_text(GTK_ENTRY(name), ma->iconfile);
-	gtk_entry_set_editable(GTK_ENTRY(name), FALSE);
+	gtk_editable_set_editable(GTK_EDITABLE(name), FALSE);
 	gtk_box_pack_start(GTK_BOX(hbox), name, TRUE, TRUE, 5);
 	gtk_widget_show(name);
 	ma->iconentry = name;
@@ -831,7 +833,7 @@
 
 		entry = gtk_entry_new();
 		gtk_box_pack_end(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
-		gtk_object_set_user_data(GTK_OBJECT(entry), (void *)puo->pos);
+		g_object_set_data(G_OBJECT(entry), "position", GINT_TO_POINTER(puo->pos));
 		if (ma->proto_opt[puo->pos][0]) {
 			debug_printf("setting text %s\n", ma->proto_opt[puo->pos]);
 			gtk_entry_set_text(GTK_ENTRY(entry), ma->proto_opt[puo->pos]);
@@ -847,15 +849,15 @@
 
 	if(p->register_user != NULL) {
 		ma->register_user = gtk_check_button_new_with_label(_("Register with server"));
-		gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(ma->register_user), FALSE);
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ma->register_user), FALSE);
 		gtk_box_pack_start(GTK_BOX(vbox), ma->register_user, FALSE, FALSE, 0);
 		gtk_widget_show(ma->register_user);
 	}
 
 }
 
-static void proxy_dropdown_set(GtkObject *w, struct mod_account *ma) {
-	int opt = (int)gtk_object_get_user_data(w);
+static void proxy_dropdown_set(GObject *w, struct mod_account *ma) {
+	int opt = GPOINTER_TO_INT(g_object_get_data(w, "proxytype"));
 	gtk_widget_set_sensitive(ma->proxy_host_box, (opt != PROXY_NONE && opt != PROXY_USE_GLOBAL));
 }
 
@@ -899,7 +901,7 @@
 	menu = gtk_menu_new();
 
 	opt = gtk_menu_item_new_with_label("Use Global Proxy Settings");
-	gtk_object_set_user_data(GTK_OBJECT(opt), (gpointer)PROXY_USE_GLOBAL);
+	g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_USE_GLOBAL));
 	g_signal_connect(G_OBJECT(opt), "activate",
 			G_CALLBACK(proxy_dropdown_set), ma);
 	gtk_widget_show(opt);
@@ -908,7 +910,7 @@
 		gtk_menu_set_active(GTK_MENU(menu), 0);
 
 	opt = gtk_menu_item_new_with_label("No Proxy");
-	gtk_object_set_user_data(GTK_OBJECT(opt), (gpointer)PROXY_NONE);
+	g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_NONE));
 	g_signal_connect(G_OBJECT(opt), "activate",
 			G_CALLBACK(proxy_dropdown_set), ma);
 	gtk_widget_show(opt);
@@ -917,7 +919,7 @@
 		gtk_menu_set_active(GTK_MENU(menu), 1);
 
 	opt = gtk_menu_item_new_with_label("SOCKS 4");
-	gtk_object_set_user_data(GTK_OBJECT(opt), (gpointer)PROXY_SOCKS4);
+	g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_SOCKS4));
 	g_signal_connect(G_OBJECT(opt), "activate",
 			G_CALLBACK(proxy_dropdown_set), ma);
 	gtk_widget_show(opt);
@@ -926,7 +928,7 @@
 		gtk_menu_set_active(GTK_MENU(menu), 2);
 
 	opt = gtk_menu_item_new_with_label("SOCKS 5");
-	gtk_object_set_user_data(GTK_OBJECT(opt), (gpointer)PROXY_SOCKS5);
+	g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_SOCKS5));
 	g_signal_connect(G_OBJECT(opt), "activate",
 			G_CALLBACK(proxy_dropdown_set), ma);
 	gtk_widget_show(opt);
@@ -935,7 +937,7 @@
 		gtk_menu_set_active(GTK_MENU(menu), 3);
 
 	opt = gtk_menu_item_new_with_label("HTTP");
-	gtk_object_set_user_data(GTK_OBJECT(opt), (gpointer)PROXY_HTTP);
+	g_object_set_data(G_OBJECT(opt), "proxytype", GINT_TO_POINTER(PROXY_HTTP));
 	g_signal_connect(G_OBJECT(opt), "activate",
 			G_CALLBACK(proxy_dropdown_set), ma);
 	gtk_widget_show(opt);
@@ -1078,16 +1080,16 @@
 	gtk_window_set_role(GTK_WINDOW(ma->mod), "account");
 	gtk_widget_realize(ma->mod);
 	gtk_window_set_title(GTK_WINDOW(ma->mod), _("Gaim - Modify Account"));
-	gtk_window_set_policy(GTK_WINDOW(ma->mod), FALSE, FALSE, TRUE);	/* nothing odd here :) */
+	gtk_window_set_resizable(GTK_WINDOW(ma->mod), FALSE);	/* nothing odd here :) */
 	g_signal_connect(GTK_OBJECT(ma->mod), "destroy", G_CALLBACK(delmod), ma);
 
 	vbox = gtk_vbox_new(FALSE, 6);
-	gtk_container_border_width(GTK_CONTAINER(vbox), 6);
+	gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
 	gtk_container_add(GTK_CONTAINER(ma->mod), vbox);
 	gtk_widget_show(vbox);
 
 	ma->main = gtk_vbox_new(FALSE, 12);
-	gtk_container_border_width(GTK_CONTAINER(ma->main), 6);
+	gtk_container_set_border_width(GTK_CONTAINER(ma->main), 6);
 	gtk_box_pack_start(GTK_BOX(vbox), ma->main, FALSE, FALSE, 0);
 	gtk_widget_show(ma->main);
 
@@ -1389,7 +1391,7 @@
 	gtk_window_set_title(GTK_WINDOW(acctedit), _("Gaim - Account Editor"));
 	gtk_window_set_role(GTK_WINDOW(acctedit), "accounteditor");
 	gtk_widget_realize(acctedit);
-	gtk_widget_set_usize(acctedit, -1, 250);
+	gtk_widget_set_size_request(acctedit, -1, 250);
 	gtk_window_set_default_size(GTK_WINDOW(acctedit), 550, 250);
 	g_signal_connect(GTK_OBJECT(acctedit), "delete_event", G_CALLBACK(on_delete_acctedit), W);
 
@@ -1480,8 +1482,8 @@
 	GtkWidget *pixmap;
 
 	create_prpl_icon (widget, gc, &gdkpixmap, &mask);
-			
-	pixmap = gtk_pixmap_new (gdkpixmap, mask);
+
+	pixmap = gtk_image_new_from_pixmap(gdkpixmap, mask);
 	gdk_pixmap_unref (gdkpixmap);
 	gdk_bitmap_unref (mask);
 	return pixmap;
@@ -1708,7 +1710,7 @@
 	gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
 
 	meter->status = gtk_statusbar_new();
-	gtk_widget_set_usize(meter->status, 250, 0);
+	gtk_widget_set_size_request(meter->status, 250, 0);
 
 	meter->progress = gtk_progress_bar_new ();
 
@@ -1751,18 +1753,18 @@
 	if (!meter_win) {
 		GtkWidget *cancel_button;
 		GtkWidget *vbox;
-				
+
 		meter_win = g_new0(struct meter_window, 1);
 		meter_win->rows=0;
-			
+
 		meter_win->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 		GAIM_DIALOG(meter_win->window);
-		gtk_window_set_policy(GTK_WINDOW(meter_win->window), 0, 0, 1);
+		gtk_window_set_resizable(GTK_WINDOW(meter_win->window), FALSE);
 		gtk_window_set_role(GTK_WINDOW(meter_win->window), "signon");
 		gtk_container_set_border_width(GTK_CONTAINER(meter_win->window), 5);
 		gtk_window_set_title (GTK_WINDOW (meter_win->window), _("Gaim Account Signon"));
 		gtk_widget_realize(meter_win->window);
-		
+
 		vbox = gtk_vbox_new (FALSE, 0);
 		gtk_container_add (GTK_CONTAINER (meter_win->window), GTK_WIDGET (vbox));
 
--- a/src/prefs.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/prefs.c	Sun Mar 02 19:21:36 2003 +0000
@@ -45,9 +45,7 @@
 #endif
 
 GtkWidget *tree_v = NULL;
-GtkWidget *prefs_away_list = NULL;
 GtkWidget *prefs_away_menu = NULL;
-GtkWidget *preftree = NULL;
 GtkWidget *fontseld = NULL;
 
 GtkListStore *prefs_away_store = NULL;
@@ -60,8 +58,6 @@
 static GtkWidget *sound_entry = NULL;
 static GtkWidget *away_text = NULL;
 static GtkListStore *smiley_theme_store = NULL;
-GtkCTreeNode *general_node = NULL;
-GtkCTreeNode *deny_node = NULL;
 GtkWidget *prefs_proxy_frame = NULL;
 GtkWidget *gaim_button(const char *, guint *, int, GtkWidget *);
 GtkWidget *gaim_labeled_spin_button(GtkWidget *, const gchar *, int*, int, int, GtkSizeGroup *);
@@ -99,6 +95,7 @@
 	if(sounddialog)
 		gtk_widget_destroy(sounddialog);
 	g_object_unref(G_OBJECT(prefs_away_store));
+	prefs_away_store = NULL;
 	while(l) {
 		plug = l->data;
 		if(plug->iter) {
@@ -1013,7 +1010,7 @@
 	sndcmd = gtk_entry_new();
 	gtk_label_set_mnemonic_widget(GTK_LABEL(label), sndcmd);
 
-	gtk_entry_set_editable(GTK_ENTRY(sndcmd), TRUE);
+	gtk_editable_set_editable(GTK_EDITABLE(sndcmd), TRUE);
 	cmd = gaim_sound_get_command();
 	if(cmd)
 		gtk_entry_set_text(GTK_ENTRY(sndcmd), cmd);
@@ -1525,7 +1522,7 @@
 	sound_entry = gtk_entry_new();
 	file = gaim_sound_get_event_file(0);
 	gtk_entry_set_text(GTK_ENTRY(sound_entry), file ? file : "(default)");
-	gtk_entry_set_editable(GTK_ENTRY(sound_entry), FALSE);
+	gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE);
 	gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, 5);
 
 	button = gtk_button_new_with_label(_("Test"));
@@ -1763,11 +1760,11 @@
 	gtk_window_set_role(GTK_WINDOW(prefs), "preferences");
 	gtk_widget_realize(prefs);
 	gtk_window_set_title(GTK_WINDOW(prefs), _("Gaim - Preferences"));
-	gtk_window_set_policy (GTK_WINDOW(prefs), FALSE, FALSE, TRUE);
+	gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE);
 	g_signal_connect(GTK_OBJECT(prefs), "destroy", G_CALLBACK(delete_prefs), NULL);
 
 	vbox = gtk_vbox_new(FALSE, 5);
-	gtk_container_border_width(GTK_CONTAINER(vbox), 5);
+	gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
 	gtk_container_add(GTK_CONTAINER(prefs), vbox);
 	gtk_widget_show(vbox);
 
@@ -2064,9 +2061,9 @@
 {
 	GtkWidget *button;
 	button = gtk_check_button_new_with_mnemonic(text);
-	gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), (*options & option));
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), (*options & option));
 	gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0);
-	gtk_object_set_user_data(GTK_OBJECT(button), options);
+	g_object_set_data(G_OBJECT(button), "options", options);
 
 	if (options == &misc_options) {
 		g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_misc_option),
@@ -2103,8 +2100,6 @@
 	return button;
 }
 
-void away_list_clicked(GtkWidget *widget, struct away_message *a)
-{}
 void default_away_menu_init(GtkWidget *omenu)
 {
 	GtkWidget *menu, *opt;
@@ -2120,7 +2115,7 @@
 		g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(set_default_away),
 				   (gpointer)index);
 		gtk_widget_show(opt);
-		gtk_menu_append(GTK_MENU(menu), opt);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
 
 		awy = awy->next;
 		index++;
@@ -2238,7 +2233,7 @@
 
 static void update_spin_value(GtkWidget *w, GtkWidget *spin)
 {
-	int *value = gtk_object_get_user_data(GTK_OBJECT(spin));
+	int *value = g_object_get_data(G_OBJECT(spin), "val");
 	*value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin));
 }
 
@@ -2259,8 +2254,8 @@
 
 	adjust = gtk_adjustment_new(*val, min, max, 1, 1, 1);
 	spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
-	gtk_object_set_user_data(GTK_OBJECT(spin), val);
-	gtk_widget_set_usize(spin, 50, -1);
+	g_object_set_data(G_OBJECT(spin), "val", val);
+	gtk_widget_set_size_request(spin, 50, -1);
 	gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
 	g_signal_connect(GTK_OBJECT(adjust), "value-changed",
 			G_CALLBACK(update_spin_value), GTK_WIDGET(spin));
@@ -2276,10 +2271,10 @@
 	return label;
 }
 
-void dropdown_set(GtkObject *w, int *option)
+void dropdown_set(GObject *w, int *option)
 {
-	int opt = (int)gtk_object_get_user_data(w);
-	int clear = (int)gtk_object_get_data(w, "clear");
+	int opt = GPOINTER_TO_INT(g_object_get_data(w, "value"));
+	int clear = GPOINTER_TO_INT(g_object_get_data(w, "clear"));
 
 	if (clear != -1) {
 		*option = *option & ~clear;
@@ -2381,8 +2376,8 @@
 		menuitems = g_list_next(menuitems);
 
 		opt = gtk_menu_item_new_with_label(text);
-		gtk_object_set_user_data(GTK_OBJECT(opt), (void *)value);
-		gtk_object_set_data(GTK_OBJECT(opt), "clear", (void *)clear);
+		g_object_set_data(G_OBJECT(opt), "value", GINT_TO_POINTER(value));
+		g_object_set_data(G_OBJECT(opt), "clear", GINT_TO_POINTER(clear));
 		g_signal_connect(GTK_OBJECT(opt), "activate",
 				   G_CALLBACK(dropdown_set), (void *)option);
 		gtk_widget_show(opt);
@@ -2436,7 +2431,7 @@
 	swid = gtk_event_box_new();
 	gtk_widget_set_style(GTK_WIDGET(swid), style);
 	g_object_unref(style);
-	gtk_widget_set_usize(GTK_WIDGET(swid), 40, -1);
+	gtk_widget_set_size_request(GTK_WIDGET(swid), 40, -1);
 	gtk_box_pack_start(GTK_BOX(box), swid, FALSE, FALSE, 5);
 	gtk_widget_show(swid);
 	return swid;
@@ -2457,7 +2452,7 @@
 
 	fontface[i] = 0;
 	g_free(fontname);
-	
+
 	gaim_conversation_foreach(gaim_gtkconv_update_font_face);
 }
 
--- a/src/protocols/toc/toc.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/protocols/toc/toc.c	Sun Mar 02 19:21:36 2003 +0000
@@ -1951,17 +1951,17 @@
 		ft->window = window = gtk_file_selection_new(_("Gaim - Save As..."));
 		g_snprintf(buf, sizeof(buf), "%s/%s", gaim_home_dir(), fr->filename ? fr->filename : "");
 		gtk_file_selection_set_filename(GTK_FILE_SELECTION(window), buf);
-		gtk_signal_connect(GTK_OBJECT(window), "destroy",
-				   GTK_SIGNAL_FUNC(cancel_callback), ft);
-		gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(ft->window)->cancel_button), "clicked",
-				   GTK_SIGNAL_FUNC(cancel_callback), ft);
+		g_signal_connect(G_OBJECT(window), "destroy",
+				G_CALLBACK(cancel_callback), ft);
+		g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(ft->window)->cancel_button),
+				"clicked", G_CALLBACK(cancel_callback), ft);
 
 		if (!strcmp(fr->UID, FILE_SEND_UID))
-			gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(window)->ok_button), "clicked",
-					   GTK_SIGNAL_FUNC(toc_send_file), ft);
+			g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button),
+					"clicked", G_CALLBACK(toc_send_file), ft);
 		else
-			gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(window)->ok_button), "clicked",
-					   GTK_SIGNAL_FUNC(toc_get_file), ft);
+			g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button),
+					"clicked", G_CALLBACK(toc_get_file), ft);
 
 		gtk_widget_show(window);
 	}
--- a/src/prpl.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/prpl.c	Sun Mar 02 19:21:36 2003 +0000
@@ -279,7 +279,7 @@
 	GAIM_DIALOG(window);
 	p->window = window;
 	gtk_window_set_role(GTK_WINDOW(window), "prompt");
-	gtk_window_set_policy(GTK_WINDOW(window), FALSE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
 	gtk_window_set_title(GTK_WINDOW(window), _("Gaim - Prompt"));
 	g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(des_prompt), p);
 	gtk_widget_realize(window);
@@ -335,10 +335,10 @@
 	if (!protomenu)
 		return;
 
-	l = gtk_container_children(GTK_CONTAINER(protomenu));
+	l = gtk_container_get_children(GTK_CONTAINER(protomenu));
 	while (l) {
 		menuitem = l->data;
-		pam = gtk_object_get_data(GTK_OBJECT(menuitem), "user_data");
+		pam = g_object_get_data(G_OBJECT(menuitem), "proto_actions_menu");
 		if (pam)
 			g_free(pam);
 		gtk_container_remove(GTK_CONTAINER(protomenu), GTK_WIDGET(menuitem));
@@ -356,7 +356,7 @@
 	if (!count) {
 		g_snprintf(buf, sizeof(buf), _("No actions available"));
 		menuitem = gtk_menu_item_new_with_label(buf);
-		gtk_menu_append(GTK_MENU(protomenu), menuitem);
+		gtk_menu_shell_append(GTK_MENU_SHELL(protomenu), menuitem);
 		gtk_widget_show(menuitem);
 		return;
 	}
@@ -376,10 +376,10 @@
 			if (act->data) {
 				struct proto_actions_menu *pam = act->data;
 				menuitem = gtk_menu_item_new_with_label(pam->label);
-				gtk_menu_append(GTK_MENU(protomenu), menuitem);
+				gtk_menu_shell_append(GTK_MENU_SHELL(protomenu), menuitem);
 				g_signal_connect(GTK_OBJECT(menuitem), "activate",
 							G_CALLBACK(proto_act), pam);
-				gtk_object_set_data(GTK_OBJECT(menuitem), "user_data", pam);
+				g_object_set_data(G_OBJECT(menuitem), "proto_actions_menu", pam);
 				gtk_widget_show(menuitem);
 			} else {
 				gaim_separator(protomenu);
@@ -397,7 +397,7 @@
 
 			g_snprintf(buf, sizeof(buf), "%s (%s)", gc->username, gc->prpl->name);
 			menuitem = gtk_menu_item_new_with_label(buf);
-			gtk_menu_append(GTK_MENU(protomenu), menuitem);
+			gtk_menu_shell_append(GTK_MENU_SHELL(protomenu), menuitem);
 			gtk_widget_show(menuitem);
 
 			submenu = gtk_menu_new();
@@ -410,10 +410,11 @@
 				if (act->data) {
 					struct proto_actions_menu *pam = act->data;
 					menuitem = gtk_menu_item_new_with_label(pam->label);
-					gtk_menu_append(GTK_MENU(submenu), menuitem);
+					gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
 					g_signal_connect(GTK_OBJECT(menuitem), "activate",
 								G_CALLBACK(proto_act), pam);
-					gtk_object_set_data(GTK_OBJECT(menuitem), "user_data", pam);
+					g_object_set_data(G_OBJECT(menuitem), "proto_actions_menu",
+							pam);
 					gtk_widget_show(menuitem);
 				} else {
 					gaim_separator(submenu);
@@ -498,7 +499,7 @@
 
 	GAIM_DIALOG(mn->email_win);
 	gtk_window_set_role(GTK_WINDOW(mn->email_win), "mail");
-	gtk_window_set_policy(GTK_WINDOW(mn->email_win), FALSE, TRUE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(mn->email_win), TRUE);
 	gtk_window_set_title(GTK_WINDOW(mn->email_win), _("Gaim - New Mail"));
 	g_signal_connect(GTK_OBJECT(mn->email_win), "destroy", G_CALLBACK(des_email_win), mn);
 	gtk_widget_realize(mn->email_win);
--- a/src/server.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/server.c	Sun Mar 02 19:21:36 2003 +0000
@@ -1175,7 +1175,7 @@
 static void des_popup(GtkWidget *w, GtkWidget *window)
 {
 	if (w == window) {
-		char *u = gtk_object_get_user_data(GTK_OBJECT(window));
+		char *u = g_object_get_data(G_OBJECT(window), "url");
 		g_free(u);
 	}
 	gtk_widget_destroy(window);
@@ -1193,18 +1193,18 @@
 
 	GAIM_DIALOG(window);
 	gtk_window_set_role(GTK_WINDOW(window), "popup");
-	gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, TRUE);
+	gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
 	gtk_window_set_title(GTK_WINDOW(window), "Gaim - Popup");
 	gtk_container_set_border_width(GTK_CONTAINER(window), 5);
 	g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(des_popup), window);
-	gtk_object_set_user_data(GTK_OBJECT(window), url);
+	g_object_set_data(G_OBJECT(window), "url", url);
 	gtk_widget_realize(window);
 
 	vbox = gtk_vbox_new(FALSE, 5);
 	gtk_container_add(GTK_CONTAINER(window), vbox);
 
 	sw = gtk_scrolled_window_new(NULL, NULL);
-	gtk_widget_set_usize(sw, wid, hei);
+	gtk_widget_set_size_request(sw, wid, hei);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
 	gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 5);
 
--- a/src/ui.h	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/ui.h	Sun Mar 02 19:21:36 2003 +0000
@@ -486,7 +486,7 @@
 extern void build_allow_list();
 extern void build_block_list();
 extern GtkWidget *make_frame(GtkWidget *, char *);
-extern GtkWidget *prefs_away_list;
+extern GtkListStore *prefs_away_store;
 extern GtkWidget *prefs_away_menu;
 extern GtkWidget *pref_fg_picture;
 extern GtkWidget *pref_bg_picture;
--- a/src/util.c	Sun Mar 02 18:48:02 2003 +0000
+++ b/src/util.c	Sun Mar 02 19:21:36 2003 +0000
@@ -1126,11 +1126,11 @@
 
 	if (icon == NULL)
 		menuitem = gtk_menu_item_new_with_mnemonic(str);
-	else 
+	else
 		menuitem = gtk_image_menu_item_new_with_mnemonic(str);
 
 	if (menu)
-		gtk_menu_append(GTK_MENU(menu), menuitem);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
 
 	if (sf)
 		g_signal_connect(GTK_OBJECT(menuitem), "activate", sf, data);
@@ -1173,7 +1173,7 @@
 		menuitem = gtk_image_menu_item_new_with_mnemonic(_(str));
 
 	if (menu)
-		gtk_menu_append(GTK_MENU(menu), menuitem);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
 
 	if (sf)
 		g_signal_connect(GTK_OBJECT(menuitem), "activate", sf, data);
@@ -1218,7 +1218,7 @@
 
 	menuitem = gtk_menu_item_new();
 	if (menu)
-		gtk_menu_append(GTK_MENU(menu), menuitem);
+		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);
@@ -1232,7 +1232,7 @@
 	/* 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_pixmap_new(pm, mask);
+	pixmap = gtk_image_new_from_pixmap(pm, mask);
 	gtk_widget_show(pixmap);
 	gdk_pixmap_unref(pm);
 	gdk_bitmap_unref(mask);
@@ -1264,7 +1264,7 @@
 
 	menuitem = gtk_menu_item_new();
 	if (menu)
-		gtk_menu_append(GTK_MENU(menu), menuitem);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
 	gtk_widget_show(menuitem);
 
 	label = gtk_label_new(str);