diff src/buddy_chat.c @ 1201:90bb83cafb9e

[gaim-migrate @ 1211] buddy chat changes (courtesy jadrock) and oscar updates committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 05 Dec 2000 00:18:19 +0000
parents f3e0f41beddb
children 265abea9db72
line wrap: on
line diff
--- a/src/buddy_chat.c	Mon Dec 04 21:46:39 2000 +0000
+++ b/src/buddy_chat.c	Tue Dec 05 00:18:19 2000 +0000
@@ -413,6 +413,9 @@
 	gtk_list_append_items(GTK_LIST(b->list), g_list_append(NULL, list_item));
 	gtk_widget_show(list_item);
 
+	g_snprintf(tmp, sizeof(tmp), _("%d people in room"), g_list_length(b->in_room));
+	gtk_label_set_text(GTK_LABEL(b->count), tmp);
+
 	if (b->makesound && (sound_options & OPT_SOUND_CHAT_JOIN))
 		play_sound(CHAT_JOIN);
 
@@ -452,6 +455,9 @@
                 names = names->next;
         }
 
+	g_snprintf(tmp, sizeof(tmp), _("%d people in room"), g_list_length(b->in_room));
+	gtk_label_set_text(GTK_LABEL(b->count), tmp);
+
 	if (b->makesound && (sound_options & OPT_SOUND_CHAT_PART))
 		play_sound(CHAT_LEAVE);
 
@@ -528,174 +534,139 @@
 	GtkWidget *whisper;
 	GtkWidget *close;
 	GtkWidget *chatentry;
-        GtkWidget *lbox;
-        GtkWidget *bbox;
-        GtkWidget *bbox2;
-        GtkWidget *im, *ignore, *info;
-        GtkWidget *sw;
-        GtkWidget *sw2;
+	GtkWidget *lbox;
+	GtkWidget *bbox;
+	GtkWidget *bbox2;
+	GtkWidget *im, *ignore, *info;
+	GtkWidget *sw;
+	GtkWidget *sw2;
 	GtkWidget *vbox;
 	GtkWidget *vpaned;
 	GtkWidget *hpaned;
 	GtkWidget *toolbar;
 
-	int dispstyle;
-	
+	int dispstyle = set_dispstyle(1);
+
 	win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 	b->window = win;
-        gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim");
+	gtk_object_set_user_data(GTK_OBJECT(win), b);
+	gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim");
+	gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
+	gtk_container_border_width(GTK_CONTAINER(win), 10);
+	gtk_window_set_title(GTK_WINDOW(win), b->name);
+	gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback), b);
+	gtk_widget_realize(win);
+	aol_icon(win->window);
 
 	vpaned = gtk_vpaned_new();
-	hpaned = gtk_hpaned_new();
+	gtk_container_add(GTK_CONTAINER(win),vpaned);
+	gtk_widget_show( vpaned );
 
-	gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
-	gtk_widget_realize(win);
+	hpaned = gtk_hpaned_new();
+	gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE);
+	gtk_widget_show( hpaned );
 
-	dispstyle = set_dispstyle(1);
-
-	close = picture_button2(win, _("Close"), cancel_xpm, dispstyle);
-	
-	invite_btn = picture_button2(win, _("Invite"), join_xpm, dispstyle);
-	whisper = picture_button2(win, _("Whisper"), tb_forward_xpm, dispstyle);
-        send = picture_button2(win, _("Send"), tmp_send_xpm, dispstyle);
+	sw = gtk_scrolled_window_new (NULL, NULL);
+	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
+					GTK_POLICY_NEVER,
+					GTK_POLICY_ALWAYS);
+	gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE);
+	gtk_widget_set_usize(sw, 320, 150);
+	gtk_widget_show(sw);
 
-        im = picture_button2(win, _("IM"), tmp_send_xpm, FALSE);
-        ignore = picture_button2(win, _("Ignore"), close_xpm, FALSE);
-        info = picture_button2(win, _("Info"), tb_search_xpm, FALSE);
+	text = gtk_html_new(NULL, NULL);
+	b->text = text;
+	gtk_container_add(GTK_CONTAINER(sw), text);
+	gtk_widget_show(text);
+	GTK_HTML (text)->hadj->step_increment = 10.0;
+	GTK_HTML (text)->vadj->step_increment = 10.0;
+
+	lbox = gtk_vbox_new(FALSE, 4);
+	gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE);
+	gtk_widget_show(lbox);
 
-	if (display_options & OPT_DISP_COOL_LOOK)
-	{
-		gtk_button_set_relief(GTK_BUTTON(close), GTK_RELIEF_NONE);
-		gtk_button_set_relief(GTK_BUTTON(invite_btn), GTK_RELIEF_NONE);
-		gtk_button_set_relief(GTK_BUTTON(whisper), GTK_RELIEF_NONE);
-		gtk_button_set_relief(GTK_BUTTON(send), GTK_RELIEF_NONE);
-		gtk_button_set_relief(GTK_BUTTON(im), GTK_RELIEF_NONE);
-		gtk_button_set_relief(GTK_BUTTON(ignore), GTK_RELIEF_NONE);
-		gtk_button_set_relief(GTK_BUTTON(info), GTK_RELIEF_NONE);
-	}
-	
-	text = gtk_html_new(NULL, NULL);
-	
-	b->text = text;
+	b->count = gtk_label_new(_("0 people in room"));
+	gtk_box_pack_start(GTK_BOX(lbox), b->count, FALSE, FALSE, 0);
+	gtk_widget_show(b->count);
+
+	sw2 = gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2),
+				       GTK_POLICY_NEVER,
+				       GTK_POLICY_AUTOMATIC);
+	gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0);
+	gtk_widget_show(sw2);
 
 	list = gtk_list_new();
 	b->list = list;
-
-        bbox = gtk_hbox_new(FALSE, 5);
-        bbox2 = gtk_hbox_new(TRUE, 0);
-        vbox = gtk_vbox_new(FALSE, 0);
-        lbox = gtk_vbox_new(FALSE, 4);
-
-	chatentry = gtk_text_new( NULL, NULL );
-	gtk_text_set_editable(GTK_TEXT(chatentry), TRUE);
-	gtk_text_set_word_wrap(GTK_TEXT(chatentry), TRUE);
-	gtk_object_set_user_data(GTK_OBJECT(chatentry), b);
-	b->entry = chatentry;
-
-	gtk_widget_realize(win);
-
-	toolbar = build_conv_toolbar(b);
-
-	/* Hack something so we know have an entry click event */
-
-	gtk_signal_connect(GTK_OBJECT(chatentry), "activate", GTK_SIGNAL_FUNC(send_callback),b);
-	gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(keypress_callback), b);
-        /* Text box */
-
-        sw = gtk_scrolled_window_new (NULL, NULL);
-        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
-                                        GTK_POLICY_NEVER,
-                                        GTK_POLICY_ALWAYS);
-        gtk_widget_show(sw);
-        gtk_container_add(GTK_CONTAINER(sw), text);
-        gtk_widget_show(text);
-
-
-        GTK_HTML (text)->hadj->step_increment = 10.0;
-        GTK_HTML (text)->vadj->step_increment = 10.0;
-        gtk_widget_set_usize(sw, 320, 150);
-
-	gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE);
-
-        sw2 = gtk_scrolled_window_new(NULL, NULL);
-        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2),
-                                       GTK_POLICY_NEVER,
-                                       GTK_POLICY_AUTOMATIC);
-        gtk_widget_show(sw2);
-        gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list);
-
-        gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0);
-        gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 5);
-                                       
-        
-	gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE);
+	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list);
+	gtk_widget_set_usize(list, 150, -1);
 	gtk_widget_show(list);
 
-
-	gtk_widget_set_usize(list, 150, -1);
-
+	bbox2 = gtk_hbox_new(TRUE, 0);
+	gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 5);
+	gtk_widget_show(bbox2);
 
-	/* Ready and pack buttons */
-	gtk_object_set_user_data(GTK_OBJECT(win), b);
-	gtk_object_set_user_data(GTK_OBJECT(close), b);
-	gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_callback),b);
-	gtk_signal_connect(GTK_OBJECT(send), "clicked", GTK_SIGNAL_FUNC(send_callback),b);
-	gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(invite_callback), b);
-	gtk_signal_connect(GTK_OBJECT(whisper), "clicked", GTK_SIGNAL_FUNC(whisper_callback), b);
+	im = picture_button2(win, _("IM"), tmp_send_xpm, FALSE);
+	gtk_box_pack_start(GTK_BOX(bbox2), im, dispstyle, dispstyle, 5);
+	gtk_signal_connect(GTK_OBJECT(im), "clicked", GTK_SIGNAL_FUNC(im_callback), b);
 
-        gtk_signal_connect(GTK_OBJECT(im), "clicked", GTK_SIGNAL_FUNC(im_callback), b);
-        gtk_signal_connect(GTK_OBJECT(ignore), "clicked", GTK_SIGNAL_FUNC(ignore_callback), b);
-        gtk_signal_connect(GTK_OBJECT(info), "clicked", GTK_SIGNAL_FUNC(info_callback), b);
-
+	ignore = picture_button2(win, _("Ignore"), close_xpm, FALSE);
+	gtk_box_pack_start(GTK_BOX(bbox2), ignore, dispstyle, dispstyle, 5);
+	gtk_signal_connect(GTK_OBJECT(ignore), "clicked", GTK_SIGNAL_FUNC(ignore_callback), b);
 
-        gtk_box_pack_end(GTK_BOX(bbox), close, dispstyle, dispstyle, 5);
-	gtk_box_pack_end(GTK_BOX(bbox), invite_btn, dispstyle, dispstyle, 5);
-	gtk_box_pack_end(GTK_BOX(bbox), whisper, dispstyle, dispstyle, 5);
-	gtk_box_pack_end(GTK_BOX(bbox), send, dispstyle, dispstyle, 5);
+	info = picture_button2(win, _("Info"), tb_search_xpm, FALSE);
+	gtk_box_pack_start(GTK_BOX(bbox2), info, dispstyle, dispstyle, 5);
+	gtk_signal_connect(GTK_OBJECT(info), "clicked", GTK_SIGNAL_FUNC(info_callback), b);
 
-        gtk_box_pack_start(GTK_BOX(bbox2), im, dispstyle, dispstyle, 5);
-        gtk_box_pack_start(GTK_BOX(bbox2), ignore, dispstyle, dispstyle, 5);
-        gtk_box_pack_start(GTK_BOX(bbox2), info, dispstyle, dispstyle, 5);
-	
-	/* pack and fill the rest */
-	
-	
-	gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE);
+	vbox = gtk_vbox_new(FALSE, 0);
+	gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE);
+	gtk_widget_show(vbox);
+
+	toolbar = build_conv_toolbar(b);
 	gtk_box_pack_start(GTK_BOX(vbox), toolbar, TRUE, TRUE, 5);
-	gtk_box_pack_start(GTK_BOX(vbox), chatentry, TRUE, TRUE, 5);
-	gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
-	gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE);
 
-	gtk_widget_show(send);
-	gtk_widget_show(invite_btn);
-	gtk_widget_show(whisper);
-        gtk_widget_show(close);
-        gtk_widget_show(im);
-        gtk_widget_show(ignore);
-        gtk_widget_show(info);
-        gtk_widget_show(bbox);
-        gtk_widget_show(lbox);
-        gtk_widget_show(bbox2);
-	gtk_widget_show(vbox);
-	gtk_widget_show( vpaned );
-	gtk_widget_show( hpaned );
-	gtk_widget_show(chatentry);
-
-	if (display_options & OPT_DISP_CHAT_BIG_ENTRY)
-       		gtk_widget_set_usize(chatentry, 320, 50);
-	else
-       		gtk_widget_set_usize(chatentry, 320, 25);
-	
-	gtk_container_add(GTK_CONTAINER(win),vpaned);
-	gtk_container_border_width(GTK_CONTAINER(win), 10);
-
-	gtk_window_set_title(GTK_WINDOW(win), b->name);
-	gtk_window_set_focus(GTK_WINDOW(win), chatentry);
-
-	gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback),b);
+	chatentry = gtk_text_new( NULL, NULL );
+	b->entry = chatentry;
+	gtk_object_set_user_data(GTK_OBJECT(chatentry), b);
+	gtk_text_set_editable(GTK_TEXT(chatentry), TRUE);
+	gtk_text_set_word_wrap(GTK_TEXT(chatentry), TRUE);
+	gtk_signal_connect(GTK_OBJECT(chatentry), "activate", GTK_SIGNAL_FUNC(send_callback),b);
+	gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(keypress_callback), b);
 	gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(entry_key_pressed), chatentry);
 	if (general_options & OPT_GEN_CHECK_SPELLING)
 		gtkspell_attach(GTK_TEXT(chatentry));
+	gtk_box_pack_start(GTK_BOX(vbox), chatentry, TRUE, TRUE, 5);
+	if (display_options & OPT_DISP_CHAT_BIG_ENTRY)
+		gtk_widget_set_usize(chatentry, 320, 50);
+	else
+		gtk_widget_set_usize(chatentry, 320, 25);
+	gtk_window_set_focus(GTK_WINDOW(win), chatentry);
+	gtk_widget_show(chatentry);
+
+        bbox = gtk_hbox_new(FALSE, 5);
+	gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
+        gtk_widget_show(bbox);
+
+	close = picture_button2(win, _("Close"), cancel_xpm, dispstyle);
+	b->close = close;
+	gtk_object_set_user_data(GTK_OBJECT(close), b);
+	gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_callback),b);
+        gtk_box_pack_end(GTK_BOX(bbox), close, dispstyle, dispstyle, 5);
+
+	invite_btn = picture_button2(win, _("Invite"), join_xpm, dispstyle);
+	b->invite = invite_btn;
+	gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(invite_callback), b);
+	gtk_box_pack_end(GTK_BOX(bbox), invite_btn, dispstyle, dispstyle, 5);
+
+	whisper = picture_button2(win, _("Whisper"), tb_forward_xpm, dispstyle);
+	b->whisper = whisper;
+	gtk_signal_connect(GTK_OBJECT(whisper), "clicked", GTK_SIGNAL_FUNC(whisper_callback), b);
+	gtk_box_pack_end(GTK_BOX(bbox), whisper, dispstyle, dispstyle, 5);
+
+        send = picture_button2(win, _("Send"), tmp_send_xpm, dispstyle);
+	b->send = send;
+	gtk_signal_connect(GTK_OBJECT(send), "clicked", GTK_SIGNAL_FUNC(send_callback),b);
+	gtk_box_pack_end(GTK_BOX(bbox), send, dispstyle, dispstyle, 5);
 
 	b->font_dialog = NULL;
 	b->fg_color_dialog = NULL;	
@@ -703,10 +674,6 @@
 	b->smiley_dialog = NULL;
 	b->link_dialog = NULL;
 	b->log_dialog = NULL;
-	b->send = send;
-	b->whisper = whisper;
-	b->invite = invite_btn;
-	b->close = close;
 	sprintf(b->fontface, "%s", fontface);
 	b->hasfont = 0;
 	b->bgcol = bgcolor;
@@ -714,9 +681,6 @@
 	b->fgcol = fgcolor;
 	b->hasfg = 0;
 	
-	gtk_widget_realize(win);
-	aol_icon(win->window);
-
 	gtk_widget_show(win);
 }