changeset 9993:bdec08a8fc5b

[gaim-migrate @ 10906] Remove away.c and away.h And get rid of some code in server.c that I'm pretty sure doesn't do anything committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Thu, 09 Sep 2004 03:36:35 +0000
parents 7596ad640b56
children e651dbb88773
files plugins/docklet/docklet.c plugins/gaim-remote/remote.c src/Makefile.am src/away.c src/away.h src/gtkblist.c src/gtkconn.c src/gtkprefs.c src/idle.c src/server.c src/sound.c
diffstat 11 files changed, 0 insertions(+), 1065 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/docklet/docklet.c	Thu Sep 09 03:20:48 2004 +0000
+++ b/plugins/docklet/docklet.c	Thu Sep 09 03:36:35 2004 +0000
@@ -40,7 +40,6 @@
 #include "sound.h"
 #include "version.h"
 
-#include "away.h"
 #include "gtkaccount.h"
 #include "gtkblist.h"
 #include "gtkft.h"
--- a/plugins/gaim-remote/remote.c	Thu Sep 09 03:20:48 2004 +0000
+++ b/plugins/gaim-remote/remote.c	Thu Sep 09 03:36:35 2004 +0000
@@ -39,7 +39,6 @@
 #include "version.h"
 
 /* XXX */
-#include "away.h"
 #include "gtkconv.h"
 #include "gtkplugin.h"
 #include "gaim.h"
--- a/src/Makefile.am	Thu Sep 09 03:20:48 2004 +0000
+++ b/src/Makefile.am	Thu Sep 09 03:36:35 2004 +0000
@@ -99,7 +99,6 @@
 gaim_coreheaders = \
 	account.h \
 	accountopt.h \
-	away.h \
 	blist.h \
 	buddyicon.h \
 	cmds.h \
@@ -139,7 +138,6 @@
 
 gaim_SOURCES = \
 	$(gaim_coresources) \
-	away.c \
 	dnd-hints.c \
 	gaim-disclosure.c \
 	gtkaccount.c \
--- a/src/away.c	Thu Sep 09 03:20:48 2004 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,920 +0,0 @@
-/*
- * gaim
- *
- * Gaim is the legal property of its developers, whose names are too numerous
- * to list here.  Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- */
-#if 0
-#include "internal.h"
-#include "gtkgaim.h"
-
-#include "conversation.h"
-#include "debug.h"
-#include "notify.h"
-#include "plugin.h"
-#include "prefs.h"
-#include "prpl.h"
-#include "status.h"
-#include "util.h"
-#include "request.h"
-
-/* XXX CORE/UI: Until we can get rid of the message queue stuff... */
-#include "away.h"
-#include "gaim.h"
-#include "gtkblist.h"
-#include "gtkdialogs.h"
-#include "gtkimhtml.h"
-#include "gtkimhtmltoolbar.h"
-#include "gtkprefs.h"
-#include "gtkutils.h"
-
-GtkWidget *imaway = NULL;
-GtkWidget *awaymenu = NULL;
-GtkWidget *awayqueue = NULL;
-GtkListStore *awayqueuestore = NULL;
-GtkWidget *awayqueuesw;
-
-GSList *message_queue = NULL;
-GSList *unread_message_queue = NULL;
-
-GSList *away_messages = NULL;
-struct away_message *awaymessage = NULL;
-
-static void dequeue_message(GtkTreeIter *iter)
-{
-	gchar *name;
-	GSList *templist;
-	GaimConversation *cnv;
-	gboolean orig_while_away;
-
-	orig_while_away = gaim_prefs_get_bool("/core/sound/while_away");
-	if (orig_while_away)
-		gaim_prefs_set_bool("/core/sound/while_away", FALSE);
-
-	gtk_tree_model_get(GTK_TREE_MODEL(awayqueuestore), iter, 0, &name, -1);
-
-	gaim_debug(GAIM_DEBUG_INFO, "away", "Dequeueing messages from %s.\n",
-			   name);
-
-	templist = message_queue;
-
-	while (templist) {
-		struct queued_message *qm = templist->data;
-		if (templist->data) {
-			if (!gaim_utf8_strcasecmp(qm->name, name)) {
-				GaimAccount *account = NULL;
-
-				if (g_list_index(gaim_accounts_get_all(), qm->account) >= 0)
-					account = qm->account;
-
-				cnv = gaim_find_conversation_with_account(name, account);
-
-				if (!cnv)
-					cnv = gaim_conversation_new(GAIM_CONV_IM, account, qm->name);
-				else
-					gaim_conversation_set_account(cnv, account);
-
-				gaim_conv_im_write(GAIM_CONV_IM(cnv), NULL, qm->message,
-						qm->flags, qm->tm);
-				g_free(qm->message);
-				g_free(qm);
-				templist = message_queue = g_slist_remove(message_queue, qm);
-
-			} else {
-				templist = templist->next;
-			}
-		}
-	}
-
-	g_free(name);
-	/* In GTK 2.2, _store_remove actually returns whether iter is valid or not
-	 * after the remove, but in GTK 2.0 it is a void function. */
-	gtk_list_store_remove(awayqueuestore, iter);
-
-	if (orig_while_away)
-		gaim_prefs_set_bool("/core/sound/while_away", orig_while_away);
-}
-
-void purge_away_queue(GSList **queue)
-{
-	GSList *q = *queue;
-	struct queued_message *qm;
-	GaimConversation *cnv;
-	GaimAccount *account;
-	gboolean orig_while_away;
-
-	orig_while_away = gaim_prefs_get_bool("/core/sound/while_away");
-	if (orig_while_away)
-		gaim_prefs_set_bool("/core/sound/while_away", FALSE);
-
-	while (q) {
-		qm = q->data;
-
-		account = NULL;
-
-		if (g_list_index(gaim_accounts_get_all(), qm->account) >= 0)
-			account = qm->account;
-
-		cnv = gaim_find_conversation_with_account(qm->name, account);
-
-		if (!cnv)
-			cnv = gaim_conversation_new(GAIM_CONV_IM, account, qm->name);
-		else
-			gaim_conversation_set_account(cnv, account);
-
-		gaim_conv_im_write(GAIM_CONV_IM(cnv), NULL, qm->message, qm->flags, qm->tm);
-
-		g_free(qm->message);
-		g_free(qm);
-
-		q->data = NULL;
-		q = q->next;
-	}
-
-	g_slist_free(*queue);
-	*queue = NULL;
-
-	if (orig_while_away)
-		gaim_prefs_set_bool("/core/sound/while_away", orig_while_away);
-}
-
-gint dequeue_cb(GtkWidget *treeview, GdkEventButton *event, gpointer data) {
-	GtkTreeIter iter;
-	GtkTreeSelection *select;
-
-	if(!(event->type == GDK_2BUTTON_PRESS && event->button == 1))
-		return FALSE; /* Double clicking on the list will dequeue that user's messages. */
-
-	select = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
-	if(gtk_tree_selection_get_selected(select, NULL, &iter))
-			dequeue_message(&iter);
-
-	return FALSE;
-}
-
-
-
-void toggle_away_queue()
-{
-	if (!awayqueue || !awayqueuesw)
-		return;
-
-	if (gaim_prefs_get_bool("/gaim/gtk/away/queue_messages")) {
-		gtk_widget_show(awayqueue);
-		gtk_widget_show(awayqueuesw);
-	} else {
-		gtk_widget_hide(awayqueue);
-		gtk_widget_hide(awayqueuesw);
-		purge_away_queue(&message_queue);
-	}
-}
-
-void do_im_back(GtkWidget *w, GtkWidget *x)
-{
-	if (imaway) {
-		GtkWidget *tmp = imaway;
-
-		purge_away_queue(&message_queue);
-
-		imaway = NULL;
-		gtk_widget_destroy(tmp);
-		if (w != tmp)
-			return;
-	}
-
-	awaymessage = NULL;
-	awayqueue = NULL;
-	awayqueuesw = NULL;
-	if (awayqueuestore != NULL)
-		g_object_unref(G_OBJECT(awayqueuestore));
-	awayqueuestore = NULL;
-	serv_set_away_all(NULL);
-}
-
-
-void do_away_message(GtkWidget *w, struct away_message *a)
-{
-	GtkWidget *back;
-	GtkWidget *edit;
-	GtkWidget *awaytext;
-	GtkWidget *sw;
-	GtkWidget *vbox;
-	GtkWidget *hbox;
-	GtkTreeViewColumn *column;
-	GtkCellRenderer *renderer;
-	char *buf;
-
-	if (!a)
-		return;
-
-	if(imaway)
-		gtk_widget_destroy(imaway);
-
-	GAIM_DIALOG(imaway);
-	gtk_window_set_role(GTK_WINDOW(imaway), "imaway");
-	if (strlen(a->name))
-		gtk_window_set_title(GTK_WINDOW(imaway), a->name);
-	else
-		gtk_window_set_title(GTK_WINDOW(imaway), _("Away!"));
-	g_signal_connect(G_OBJECT(imaway), "destroy",
-			G_CALLBACK(do_im_back), imaway);
-
-	vbox = gtk_vbox_new(FALSE, 5);
-	gtk_container_add(GTK_CONTAINER(imaway), vbox);
-	gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
-	gtk_widget_show(vbox);
-
-	hbox = gtk_hbox_new(FALSE, 5);
-	gtk_container_set_border_width(GTK_CONTAINER(hbox), 0);
-	gtk_widget_show(hbox);
-
-	sw = gtk_scrolled_window_new(NULL, NULL);
-	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER,
-			GTK_POLICY_AUTOMATIC);
-	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
-	gtk_widget_set_size_request(sw, 245, 120);
-	gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
-	gtk_widget_show(sw);
-
-	awaytext = gtk_imhtml_new(NULL, NULL);
-	gtk_container_add(GTK_CONTAINER(sw), awaytext);
-	gaim_setup_imhtml(awaytext);
-	gtk_widget_show(awaytext);
-	buf = stylize(a->message, BUF_LONG);
-	gtk_imhtml_append_text(GTK_IMHTML(awaytext), buf, GTK_IMHTML_NO_TITLE |
-			GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL);
-	g_free(buf);
-	gtk_imhtml_append_text(GTK_IMHTML(awaytext), "<BR>",
-			GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_COMMENTS |
-			GTK_IMHTML_NO_SCROLL);
-
-	awayqueuesw = gtk_scrolled_window_new(NULL, NULL);
-	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(awayqueuesw),
-			GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(awayqueuesw),
-			GTK_SHADOW_IN);
-	gtk_box_pack_start(GTK_BOX(vbox), awayqueuesw, TRUE, TRUE, 0);
-
-	awayqueuestore = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
-	awayqueue = gtk_tree_view_new_with_model(GTK_TREE_MODEL(awayqueuestore));
-	renderer = gtk_cell_renderer_text_new();
-
-	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(awayqueue), FALSE);
-	column = gtk_tree_view_column_new_with_attributes (NULL, renderer,
-			"text", 0,
-			NULL);
-	gtk_tree_view_append_column(GTK_TREE_VIEW(awayqueue), column);
-	column = gtk_tree_view_column_new_with_attributes(NULL, renderer,
-			"text", 1,
-			NULL);
-	gtk_tree_view_append_column(GTK_TREE_VIEW(awayqueue), column);
-	column = gtk_tree_view_column_new_with_attributes(NULL, renderer,
-			"text", 2,
-			NULL);
-	gtk_tree_view_append_column(GTK_TREE_VIEW(awayqueue), column);
-
-	gtk_container_add(GTK_CONTAINER(awayqueuesw), awayqueue);
-
-	g_signal_connect(G_OBJECT(awayqueue), "button_press_event", G_CALLBACK(dequeue_cb), NULL);
-
-
-	if (gaim_prefs_get_bool("/gaim/gtk/away/queue_messages")) {
-		gtk_widget_show(awayqueuesw);
-		gtk_widget_show(awayqueue);
-	}
-
-	awaymessage = a;
-
-	edit = gaim_pixbuf_button_from_stock(_("Edit This Message"), GTK_STOCK_CONVERT, GAIM_BUTTON_HORIZONTAL);
-	gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 0);
-	g_signal_connect(G_OBJECT(edit), "clicked", G_CALLBACK(create_away_mess), awaymessage);
-	gtk_widget_show(edit);
-
-	back = gaim_pixbuf_button_from_stock(_("I'm Back!"), GTK_STOCK_JUMP_TO, GAIM_BUTTON_HORIZONTAL);
-	gtk_box_pack_start(GTK_BOX(hbox), back, TRUE, TRUE, 0);
-	g_signal_connect(G_OBJECT(back), "clicked", G_CALLBACK(do_im_back), imaway);
-	gtk_window_set_focus(GTK_WINDOW(imaway), back);
-	gtk_widget_show(back);
-
-	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
-	gtk_widget_show(imaway);
-	serv_set_away_all(awaymessage->message);
-}
-
-void do_rem_away_mess(gchar *name)
-{
-	struct away_message *a = NULL;
-	struct away_message *default_away = NULL;
-	const char *default_away_name;
-	GSList *l;
-
-	/* Lookup the away message based on the title */
-	for (l = away_messages; l != NULL; l = l->next) {
-		a = l->data;
-		if (!strcmp(a->name, name))
-			break;
-	}
-	g_free(name);
-
-	if (l == NULL || a == NULL) {
-		/* Could not find away message! */
-		return;
-	}
-
-	default_away_name = gaim_prefs_get_string("/core/away/default_message");
-
-	for(l = away_messages; l; l = l->next) {
-		if(!strcmp(default_away_name, ((struct away_message *)l->data)->name)) {
-			default_away = l->data;
-			break;
-		}
-	}
-
-	if(!default_away && away_messages)
-		default_away = away_messages->data;
-
-	away_messages = g_slist_remove(away_messages, a);
-	g_free(a);
-	do_away_menu();
-	gaim_status_sync();
-}
-
-void rem_away_mess(GtkWidget *w, struct away_message *a)
-{
-	gchar *text;
-
-	text = g_strdup_printf(_("Are you sure you want to remove the away message \"%s\"?"), a->name);
-
-	gaim_request_action(NULL, NULL, _("Remove Away Message"), text,
-						0, g_strdup(a->name), 2,
-						_("Remove"), G_CALLBACK(do_rem_away_mess),
-						_("Cancel"), G_CALLBACK(g_free));
-
-	g_free(text);
-}
-
-static void set_gc_away(GObject *obj, GaimConnection *gc)
-{
-	struct away_message *awy = g_object_get_data(obj, "away_message");
-
-	if (awy)
-		serv_set_away(gc, GAIM_AWAY_CUSTOM, awy->message);
-	else
-		serv_set_away(gc, GAIM_AWAY_CUSTOM, NULL);
-}
-
-static void set_gc_state(GObject *obj, GaimConnection *gc)
-{
-	char *awy = g_object_get_data(obj, "away_state");
-
-	serv_set_away(gc, awy, NULL);
-}
-
-/* XXX This needs to be fixed, NOW! */
-extern GtkListStore *prefs_away_store;
-extern GtkWidget *prefs_away_menu;
-
-void do_away_menu()
-{
-	GtkWidget *menuitem;
-	GtkWidget *remmenu;
-	GtkWidget *submenu, *submenu2;
-	GtkWidget *remitem;
-	GtkWidget *image;
-	GdkPixbuf *pixbuf, *scale;
-	GList *l;
-	GSList *awy = away_messages;
-	struct away_message *a;
-	GList *con;
-	GaimConnection *gc = NULL;
-	GaimPluginProtocolInfo *prpl_info = NULL;
-
-	int count = 0;
-
-	if (prefs_away_store != NULL) {
-		gtk_list_store_clear(prefs_away_store);
-		while (awy) {
-			GtkTreeIter iter;
-			a = (struct away_message *)awy->data;
-			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 (awaymenu) {
-		l = gtk_container_get_children(GTK_CONTAINER(awaymenu));
-
-		while (l) {
-			gtk_container_remove(GTK_CONTAINER(awaymenu), GTK_WIDGET(l->data));
-			l = l->next;
-		}
-
-		g_list_free(l);
-
-		remmenu = gtk_menu_new();
-
-		menuitem = gtk_menu_item_new_with_label(_("New Away Message"));
-		gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
-		gtk_widget_show(menuitem);
-		g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(create_away_mess),
-				   NULL);
-
-		awy = away_messages;
-		while (awy) {
-			a = (struct away_message *)awy->data;
-
-			remitem = gtk_menu_item_new_with_label(a->name);
-			gtk_menu_shell_append(GTK_MENU_SHELL(remmenu), remitem);
-			gtk_widget_show(remitem);
-			g_signal_connect(G_OBJECT(remitem), "activate",
-					   G_CALLBACK(rem_away_mess), a);
-
-			awy = g_slist_next(awy);
-
-		}
-
-		menuitem = gtk_menu_item_new_with_label(_("Remove Away Message"));
-		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);
-
-		gaim_separator(awaymenu);
-
-		for (con = gaim_connections_get_all(); con != NULL; con = con->next) {
-			gc = con->data;
-
-			prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
-
-			if (prpl_info->away_states != NULL && prpl_info->set_away != NULL)
-				count++;
-		}
-
-		if (count == 0) {
-		} else if (count == 1) {
-			GList *msgs, *tmp;
-
-			for (con = gaim_connections_get_all(); con != NULL; con = con->next) {
-				gc = con->data;
-
-				prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
-
-				if (prpl_info->away_states && prpl_info->set_away)
-					break;
-			}
-
-			tmp = msgs = prpl_info->away_states(gc);
-
-			if ((g_list_length(msgs) == 1) && !strcmp(msgs->data, GAIM_AWAY_CUSTOM)) {
-				awy = away_messages;
-
-				while (awy) {
-					a = (struct away_message *)awy->data;
-
-					menuitem = gtk_menu_item_new_with_label(a->name);
-					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(G_OBJECT(menuitem), "activate",
-							   G_CALLBACK(do_away_message), a);
-
-					awy = g_slist_next(awy);
-				}
-			} else
-				while (msgs) {
-					awy = away_messages;
-
-					menuitem = gtk_menu_item_new_with_label(msgs->data);
-					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)) {
-						g_signal_connect(G_OBJECT(menuitem), "activate",
-								   G_CALLBACK(set_gc_state), gc);
-					} else {
-						submenu = gtk_menu_new();
-						gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem),
-									  submenu);
-						gtk_widget_show(submenu);
-
-						while (awy) {
-							a = (struct away_message *)awy->data;
-
-							menuitem = gtk_menu_item_new_with_label(a->name);
-							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(G_OBJECT(menuitem),
-									   "activate",
-									   G_CALLBACK
-									   (do_away_message), a);
-
-							awy = g_slist_next(awy);
-						}
-					}
-					msgs = g_list_next(msgs);
-				}
-
-			g_list_free(tmp);
-		}
-		else {
-			for (con = gaim_connections_get_all(); con != NULL; con = con->next) {
-				GaimAccount *account;
-				char buf[256];
-				GList *msgs, *tmp;
-				gc = con->data;
-
-				prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
-
-				if (!prpl_info->away_states || !prpl_info->set_away)
-					continue;
-
-				account = gaim_connection_get_account(gc);
-
-				g_snprintf(buf, sizeof(buf), "%s (%s)",
-						   gaim_account_get_username(account),
-						   gaim_account_get_protocol_name(account));
-				menuitem = gtk_image_menu_item_new_with_label(buf);
-
-				pixbuf = create_prpl_icon(gc->account);
-				if (pixbuf) {
-					scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16, GDK_INTERP_BILINEAR);
-					image = gtk_image_new_from_pixbuf(scale);
-					g_object_unref(G_OBJECT(pixbuf));
-					g_object_unref(G_OBJECT(scale));
-					gtk_widget_show(image);
-					gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem),
-							image);
-				}
-
-				gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
-				gtk_widget_show(menuitem);
-
-				submenu = gtk_menu_new();
-				gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
-				gtk_widget_show(submenu);
-
-				tmp = msgs = prpl_info->away_states(gc);
-
-				if ((g_list_length(msgs) == 1) &&
-				    (!strcmp(msgs->data, GAIM_AWAY_CUSTOM))) {
-					menuitem = gtk_menu_item_new_with_label(_("Back"));
-					gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
-					gtk_widget_show(menuitem);
-					g_signal_connect(G_OBJECT(menuitem), "activate",
-							   G_CALLBACK(set_gc_away), gc);
-
-					gaim_separator(submenu);
-
-					awy = away_messages;
-
-					while (awy) {
-						a = (struct away_message *)awy->data;
-
-						menuitem = gtk_menu_item_new_with_label(a->name);
-						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(G_OBJECT(menuitem), "activate",
-								   G_CALLBACK(set_gc_away), gc);
-
-						awy = g_slist_next(awy);
-					}
-				} else
-					while (msgs) {
-						awy = away_messages;
-
-						menuitem = gtk_menu_item_new_with_label(msgs->data);
-						g_object_set_data(G_OBJECT(menuitem), "away_state",
-									 msgs->data);
-						gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
-						gtk_widget_show(menuitem);
-
-						if (strcmp(msgs->data, GAIM_AWAY_CUSTOM)) {
-							g_signal_connect(G_OBJECT(menuitem),
-									   "activate",
-									   G_CALLBACK(set_gc_state),
-									   gc);
-						} else {
-							submenu2 = gtk_menu_new();
-							gtk_menu_item_set_submenu(GTK_MENU_ITEM
-										  (menuitem), submenu2);
-							gtk_widget_show(submenu2);
-
-							while (awy) {
-								a = (struct away_message *)awy->data;
-
-								menuitem =
-								    gtk_menu_item_new_with_label(a->
-												 name);
-								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(G_OBJECT(menuitem),
-										   "activate",
-										   G_CALLBACK
-										   (set_gc_away), gc);
-
-								awy = g_slist_next(awy);
-							}
-						}
-						msgs = g_list_next(msgs);
-					}
-
-				g_list_free(tmp);
-			}
-
-			menuitem = gtk_menu_item_new_with_label(_("Set All Away"));
-			gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem);
-			gtk_widget_show(menuitem);
-
-			submenu = gtk_menu_new();
-			gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
-			gtk_widget_show(submenu);
-
-			awy = away_messages;
-
-			while (awy) {
-				a = (struct away_message *)awy->data;
-
-				menuitem = gtk_menu_item_new_with_label(a->name);
-				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(G_OBJECT(menuitem), "activate",
-						   G_CALLBACK(do_away_message), a);
-
-				awy = g_slist_next(awy);
-			}
-		}
-	}
-
-	if (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;
-		}
-		gtk_widget_hide(GTK_WIDGET(prefs_away_menu));
-		default_away_menu_init(GTK_WIDGET(prefs_away_menu));
-		gtk_widget_show(prefs_away_menu);
-	}
-}
-
-/*------------------------------------------------------------------------*/
-/*  The dialog for new away messages (from dialogs.c)                     */
-/*------------------------------------------------------------------------*/
-struct create_away {
-	GtkWidget *window;
-	GtkWidget *toolbar;
-	GtkWidget *entry;
-	GtkWidget *text;
-	struct away_message *mess;
-};
-
-static void
-away_mess_destroy(GtkWidget *widget, struct create_away *ca)
-{
-	gtk_widget_destroy(ca->window);
-	g_free(ca);
-}
-
-static void
-away_mess_destroy_ca(GtkWidget *widget, GdkEvent *event, struct create_away *ca)
-{
-	away_mess_destroy(NULL, ca);
-}
-
-static gint
-sort_awaymsg_list(gconstpointer a, gconstpointer b)
-{
-	struct away_message *msg_a;
-	struct away_message *msg_b;
-
-	msg_a = (struct away_message *)a;
-	msg_b = (struct away_message *)b;
-
-	return (strcmp(msg_a->name, msg_b->name));
-}
-
-static struct
-away_message *save_away_message(struct create_away *ca)
-{
-	struct away_message *am;
-	gchar *away_message;
-
-	if (!ca->mess)
-		am = g_new0(struct away_message, 1);
-	else {
-		am = ca->mess;
-	}
-
-	g_snprintf(am->name, sizeof(am->name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry)));
-	away_message = gtk_imhtml_get_markup(GTK_IMHTML(ca->text));
-
-	g_snprintf(am->message, sizeof(am->message), "%s", away_message);
-	g_free(away_message);
-
-	if (!ca->mess)
-		away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list);
-
-	do_away_menu(NULL);
-	gaim_status_sync();
-
-	return am;
-}
-
-int
-check_away_mess(struct create_away *ca, int type)
-{
-	gchar *msg;
-	if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) {
-		/* We shouldn't allow a blank title */
-		gaim_notify_error(NULL, NULL,
-						  _("You cannot save an away message with a "
-							"blank title"),
-						  _("Please give the message a title, or choose "
-							"\"Use\" to use without saving."));
-		return 0;
-	}
-
-	msg = gtk_imhtml_get_text(GTK_IMHTML(ca->text), NULL, NULL);
-
-	if ((type <= 1) && ((msg == NULL) || (*msg == '\0'))) {
-		/* We shouldn't allow a blank message */
-		gaim_notify_error(NULL, NULL,
-						  _("You cannot create an empty away message"), NULL);
-		return 0;
-	}
-
-	g_free(msg);
-
-	return 1;
-}
-
-void
-save_away_mess(GtkWidget *widget, struct create_away *ca)
-{
-	if (!check_away_mess(ca, 1))
-		return;
-
-	save_away_message(ca);
-
-	away_mess_destroy(NULL, ca);
-}
-
-void
-use_away_mess(GtkWidget *widget, struct create_away *ca)
-{
-	static struct away_message am;
-	gchar *away_message;
-
-	if (!check_away_mess(ca, 0))
-		return;
-
-	g_snprintf(am.name, sizeof(am.name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry)));
-	away_message = gtk_imhtml_get_markup(GTK_IMHTML(ca->text));
-
-	g_snprintf(am.message, sizeof(am.message), "%s", away_message);
-	g_free(away_message);
-
-	do_away_message(NULL, &am);
-
-	away_mess_destroy(NULL, ca);
-}
-
-void
-su_away_mess(GtkWidget *widget, struct create_away *ca)
-{
-	if (!check_away_mess(ca, 1))
-		return;
-
-	do_away_message(NULL, save_away_message(ca));
-
-	away_mess_destroy(NULL, ca);
-}
-
-void
-create_away_mess(GtkWidget *widget, void *dummy)
-{
-	GtkWidget *vbox, *hbox;
-	GtkWidget *label;
-	GtkWidget *sw;
-	GtkWidget *button;
-	GList *focus_chain = NULL;
-	struct create_away *ca = g_new0(struct create_away, 1);
-
-	/* Set up window */
-	GAIM_DIALOG(ca->window);
-	gtk_widget_set_size_request(ca->window, -1, 250);
-	gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess");
-	gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message"));
-	g_signal_connect(G_OBJECT(ca->window), "delete_event",
-			   G_CALLBACK(away_mess_destroy_ca), ca);
-
-	hbox = gtk_hbox_new(FALSE, 12);
-	gtk_container_set_border_width(GTK_CONTAINER(hbox), 12);
-	gtk_container_add(GTK_CONTAINER(ca->window), hbox);
-
-	vbox = gtk_vbox_new(FALSE, 12);
-	gtk_container_add(GTK_CONTAINER(hbox), vbox);
-
-	/* Away message title */
-	hbox = gtk_hbox_new(FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
-	label = gtk_label_new(_("Away title: "));
-	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-
-	ca->entry = gtk_entry_new();
-	gtk_box_pack_start(GTK_BOX(hbox), ca->entry, TRUE, TRUE, 0);
-	gaim_set_accessible_label (ca->entry, label);
-	focus_chain = g_list_append(focus_chain, hbox);
-
-	/* Toolbar */
-	ca->toolbar = gtk_imhtmltoolbar_new();
-	gtk_box_pack_start(GTK_BOX(vbox), ca->toolbar, FALSE, FALSE, 0);
-
-	/* Away message text */
-	sw = gtk_scrolled_window_new(NULL, NULL);
-	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_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
-
-	ca->text = gtk_imhtml_new(NULL, NULL);
-	gtk_imhtml_set_editable(GTK_IMHTML(ca->text), TRUE);
-	gtk_imhtml_set_format_functions(GTK_IMHTML(ca->text), GTK_IMHTML_ALL ^ GTK_IMHTML_IMAGE);
-	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD_CHAR);
-
-	gtk_imhtml_smiley_shortcuts(GTK_IMHTML(ca->text),
-			gaim_prefs_get_bool("/gaim/gtk/conversations/smiley_shortcuts"));
-	gtk_imhtml_html_shortcuts(GTK_IMHTML(ca->text),
-			gaim_prefs_get_bool("/gaim/gtk/conversations/html_shortcuts"));
-	if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck"))
-		gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(ca->text));
-	gtk_imhtmltoolbar_attach(GTK_IMHTMLTOOLBAR(ca->toolbar), ca->text);
-	gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(ca->toolbar), "default");
-	gaim_setup_imhtml(ca->text);
-
-	gtk_container_add(GTK_CONTAINER(sw), ca->text);
-	focus_chain = g_list_append(focus_chain, sw);
-
-	if (dummy) {
-		/* If anything is passed here, it is an away_message pointer */
-		struct away_message *amt = (struct away_message *) dummy ;
-		gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name);
-		gtk_imhtml_append_text_with_images(GTK_IMHTML(ca->text), amt->message, 0, NULL);
-		ca->mess = amt;
-	}
-
-	hbox = gtk_hbox_new(FALSE, 5);
-	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
-	button = gaim_pixbuf_button_from_stock(_("_Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
-	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca);
-	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-
-	button = gaim_pixbuf_button_from_stock(_("Sa_ve & Use"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL);
-	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(su_away_mess), ca);
-	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-
-	button = gaim_pixbuf_button_from_stock(_("_Use"), GTK_STOCK_EXECUTE, GAIM_BUTTON_HORIZONTAL);
-	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(use_away_mess), ca);
-	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-
-	button = gaim_pixbuf_button_from_stock(_("_Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
-	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(away_mess_destroy), ca);
-	gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-	focus_chain = g_list_prepend(focus_chain, hbox);
-
-	gtk_widget_show_all(ca->window);
-	gtk_container_set_focus_chain(GTK_CONTAINER(vbox), focus_chain);
-}
-#endif /* 0 */
--- a/src/away.h	Thu Sep 09 03:20:48 2004 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/**
- * @file away.h Away API
- * @ingroup core
- *
- * gaim
- *
- * Gaim is the legal property of its developers, whose names are too numerous
- * to list here.  Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-#if 0
-
-#ifndef _GAIM_AWAY_H_
-#define _GAIM_AWAY_H_
-
-#include "gtkgaim.h"
-
-/* XXX CUI: away messages aren't really anything more than char* but we need two char*'s
- * for the UI so that people can name their away messages when they save them. So these
- * are really a UI function and struct away_message should be removed from the core. */
-/* WTF?  How does having a title for something mean that it is part of the UI? */
-//if 0 /* XXX CUI */
-struct away_message {
-	char name[80];
-	char message[2048];
-};
-
-extern GSList *away_messages;
-extern struct away_message *awaymessage;
-extern GtkWidget *awaymenu;
-extern GtkWidget *awayqueue;
-extern GtkListStore *awayqueuestore;
-
-extern void rem_away_mess(GtkWidget *, struct away_message *);
-extern void do_away_message(GtkWidget *, struct away_message *);
-extern void do_away_menu();
-extern void toggle_away_queue();
-extern void purge_away_queue(GSList **);
-extern void do_im_back(GtkWidget *, GtkWidget *);
-void create_away_mess(GtkWidget *, void *);
-#endif
-
-#endif /* _GAIM_AWAY_H_ */
--- a/src/gtkblist.c	Thu Sep 09 03:20:48 2004 +0000
+++ b/src/gtkblist.c	Thu Sep 09 03:36:35 2004 +0000
@@ -37,7 +37,6 @@
 #include "stock.h"
 #include "util.h"
 
-#include "away.h"
 #include "gtkaccount.h"
 #include "gtkblist.h"
 #include "gtkconv.h"
--- a/src/gtkconn.c	Thu Sep 09 03:20:48 2004 +0000
+++ b/src/gtkconn.c	Thu Sep 09 03:36:35 2004 +0000
@@ -29,7 +29,6 @@
 #include "stock.h"
 #include "util.h"
 
-#include "away.h"
 #include "gtkblist.h"
 #include "gtkdialogs.h"
 #include "gtkutils.h"
--- a/src/gtkprefs.c	Thu Sep 09 03:20:48 2004 +0000
+++ b/src/gtkprefs.c	Thu Sep 09 03:36:35 2004 +0000
@@ -36,7 +36,6 @@
 #include "util.h"
 #include "network.h"
 
-#include "away.h"
 #include "gtkblist.h"
 #include "gtkconv.h"
 #include "gtkdebug.h"
--- a/src/idle.c	Thu Sep 09 03:20:48 2004 +0000
+++ b/src/idle.c	Thu Sep 09 03:36:35 2004 +0000
@@ -39,12 +39,6 @@
 #include "prefs.h"
 #include "signals.h"
 
-/* XXX - Get this out of here! */
-#include "away.h"
-
-/* XXX For the away stuff */
-#include "gaim.h"
-
 #define IDLEMARK 600   	/* 10 minutes! */
 
 gint check_idle(gpointer data)
--- a/src/server.c	Thu Sep 09 03:20:48 2004 +0000
+++ b/src/server.c	Thu Sep 09 03:36:35 2004 +0000
@@ -36,7 +36,6 @@
 #include "util.h"
 
 /* XXX UI Stuff */
-#include "away.h"
 #include "gtkdialogs.h"
 #include "gaim.h"
 #include "gtkimhtml.h"
@@ -45,9 +44,6 @@
 #define SECS_BEFORE_RESENDING_AUTORESPONSE 600
 #define SEX_BEFORE_RESENDING_AUTORESPONSE "Only after you're married"
 
-static void add_idle_buddy(GaimBuddy *buddy);
-static void remove_idle_buddy(GaimBuddy *buddy);
-
 void serv_login(GaimAccount *account)
 {
 	GaimPlugin *p = gaim_find_prpl(gaim_account_get_protocol_id(account));
@@ -396,9 +392,6 @@
 {
 	GaimPluginProtocolInfo *prpl_info = NULL;
 
-	if (gaim_presence_is_idle(gaim_buddy_get_presence(buddy)))
-		remove_idle_buddy(buddy);
-
 	if (gc != NULL && gc->prpl != NULL)
 		prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
 
@@ -418,12 +411,6 @@
 
 	if (prpl_info && g_list_find(gaim_connections_get_all(), gc)) {
 		if (prpl_info->remove_buddies) {
-			GList *curb;
-			for (curb = buddies; curb != NULL; curb = curb->next) {
-				GaimBuddy *buddy = curb->data;
-				if (gaim_presence_is_idle(gaim_buddy_get_presence(buddy)))
-					remove_idle_buddy(buddy);
-			}
 			prpl_info->remove_buddies(gc, buddies, groups);
 		} else {
 			GList *curb = buddies;
@@ -1067,64 +1054,6 @@
 }
 
 /*
- * NOTE: This is a bit hacky, but needed for core support for the
- *       buddy-idle-updated signal. It's temporary, and will be replaced
- *       with better code in the status rewrite.
- */
-static GList *idle_buddies = NULL;
-static guint idle_buddy_timeout_id = 0;
-
-static gboolean
-idle_timeout_cb(void)
-{
-	GList *l, *l_next;
-
-	for (l = idle_buddies; l != NULL; l = l_next)
-	{
-		GaimBuddy *buddy = (GaimBuddy *)l->data;
-
-		l_next = l->next;
-
-		if (!GAIM_BUDDY_IS_ONLINE(buddy) ||
-				gaim_presence_is_idle(gaim_buddy_get_presence(buddy)))
-		{
-			remove_idle_buddy(buddy);
-		}
-		else
-		{
-			gaim_signal_emit(gaim_blist_get_handle(), "buddy-idle-updated",
-							 l->data);
-		}
-	}
-
-	return TRUE;
-}
-
-static void
-add_idle_buddy(GaimBuddy *buddy)
-{
-	idle_buddies = g_list_append(idle_buddies, buddy);
-
-	if (idle_buddy_timeout_id == 0)
-	{
-		idle_buddy_timeout_id = gaim_timeout_add(10000,
-			(GSourceFunc)idle_timeout_cb, NULL);
-	}
-}
-
-static void
-remove_idle_buddy(GaimBuddy *buddy)
-{
-	idle_buddies = g_list_remove(idle_buddies, buddy);
-
-	if (idle_buddies == NULL)
-	{
-		gaim_timeout_remove(idle_buddy_timeout_id);
-		idle_buddy_timeout_id = 0;
-	}
-}
-
-/*
  * @param idle The time at which the buddy became idle, in seconds
  *             since the epoch.
  */
--- a/src/sound.c	Thu Sep 09 03:20:48 2004 +0000
+++ b/src/sound.c	Thu Sep 09 03:36:35 2004 +0000
@@ -25,10 +25,6 @@
 #include "sound.h"
 #include "prefs.h"
 
-/* XXX CORE/UI: this goes away when away messages become sane */
-#include "away.h"
-
-
 static GaimSoundUiOps *sound_ui_ops = NULL;
 
 void gaim_sound_set_ui_ops(GaimSoundUiOps *ops)