diff src/buddy_chat.c @ 1920:5bed3bc833b5

[gaim-migrate @ 1930] in addition, frombase64 mods, needed for buddy icon in toc. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 30 May 2001 18:26:52 +0000
parents 73d73939f698
children 352bd24e03ef
line wrap: on
line diff
--- a/src/buddy_chat.c	Wed May 30 07:59:35 2001 +0000
+++ b/src/buddy_chat.c	Wed May 30 18:26:52 2001 +0000
@@ -441,6 +441,13 @@
 
 }
 
+void topic_callback(GtkWidget *widget, struct conversation *b) {
+   	char *buf = gtk_entry_get_text(GTK_ENTRY(widget));;
+
+	serv_chat_set_topic(b->gc, b->id, buf);
+
+	g_free(buf);
+}
 
 static gint insertname(gconstpointer one, gconstpointer two)
 {
@@ -831,7 +838,7 @@
 		gtk_notebook_append_page(GTK_NOTEBOOK(chat_notebook), cont, gtk_label_new(b->name));
 		gtk_widget_show(cont);
 	} else {
-		cont = win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+		win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 		b->window = win;
 		gtk_object_set_user_data(GTK_OBJECT(win), b);
 		gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim");
@@ -842,6 +849,29 @@
 		g_snprintf(buf, sizeof(buf), "Gaim - %s (chat)", b->name);
 		gtk_window_set_title(GTK_WINDOW(win), buf);
 		gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback), b);
+
+		cont = gtk_vbox_new(FALSE,5);
+		gtk_container_add(GTK_CONTAINER(win), cont);
+		gtk_widget_show(cont);
+	}
+
+	if (b->gc->prpl->options & OPT_PROTO_CHAT_TOPIC) {
+		GtkWidget *hbox;
+		GtkWidget *label;
+
+		hbox = gtk_hbox_new(FALSE, 0);
+		gtk_box_pack_start(GTK_BOX(cont), hbox, FALSE, FALSE, 5);
+		gtk_widget_show(hbox);
+
+		label = gtk_label_new(_("Topic:"));
+		gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
+		gtk_widget_show(label);
+
+		b->topic_text = gtk_entry_new();
+		gtk_signal_connect(GTK_OBJECT(b->topic_text), "activate",
+				   GTK_SIGNAL_FUNC(topic_callback), b);
+		gtk_box_pack_start(GTK_BOX(hbox), b->topic_text, TRUE, TRUE, 5);
+		gtk_widget_show(b->topic_text);
 	}
 
 	vpaned = gtk_vpaned_new();
@@ -979,6 +1009,14 @@
 	gtk_widget_show(win);
 }
 
+void chat_set_topic(struct conversation *b, char* who, char* topic) {
+
+	debug_printf("event_chat_topic: \"%s\" \"%s\" %s\n", b->name, who, topic);
+
+	gtk_entry_set_text(GTK_ENTRY(b->topic_text), topic);
+
+}
+
 
 
 void handle_click_chat(GtkWidget *widget, GdkEventButton * event, struct chat_room *cr)