diff src/buddy.c @ 1929:d51ea669d84e

[gaim-migrate @ 1939] Stephan Dittmann's patch committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 31 May 2001 07:46:36 +0000
parents fe79493094e7
children 76c862e7402f
line wrap: on
line diff
--- a/src/buddy.c	Thu May 31 01:47:14 2001 +0000
+++ b/src/buddy.c	Thu May 31 07:46:36 2001 +0000
@@ -47,6 +47,7 @@
 #include "pixmaps/no_icon.xpm"
 
 #include "pixmaps/away_small.xpm"
+#include "pixmaps/away_big.xpm"
 
 #include "pixmaps/add_small.xpm"
 #include "pixmaps/import_small.xpm"
@@ -80,7 +81,7 @@
 static GtkWidget *buddypane;
 static GtkWidget *imchatbox;
 static GtkWidget *edittree;
-static GtkWidget *imbutton, *infobutton, *chatbutton;
+static GtkWidget *imbutton, *infobutton, *chatbutton, *awaybutton;
 static GtkWidget *addbutton, *groupbutton, *rembutton;
 
 GtkWidget *blist = NULL;
@@ -441,6 +442,7 @@
 	adjust_pic(rembutton, _("Remove"), (gchar **)gnome_remove_xpm);
 
 	if (!(display_options & OPT_DISP_NO_BUTTONS)) {
+		adjust_pic(awaybutton, _("Chat"), (gchar **)away_big_xpm);
 		adjust_pic(chatbutton, _("Chat"), (gchar **)join_xpm);
 	        adjust_pic(imbutton, _("IM"), (gchar **)tmp_send_xpm);
 	        adjust_pic(infobutton, _("Info"), (gchar **)tb_search_xpm);
@@ -1500,6 +1502,32 @@
 	join_chat();
 }
 
+static void away_callback(GtkWidget *widget, GtkTree *tree)
+{
+	GSList *awy = away_messages;
+	GtkWidget *menu;
+	GtkWidget *menuitem;
+
+	if (!awy)
+		return;
+
+	menu = gtk_menu_new();
+
+	while (awy) {
+		struct away_message *a = awy->data;
+
+		menuitem = gtk_menu_item_new_with_label(a->name);
+		gtk_menu_append(GTK_MENU(menu), menuitem);
+		gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
+				   GTK_SIGNAL_FUNC(do_away_message), a);
+		gtk_widget_show(menuitem);
+
+		awy = awy->next;
+	}
+
+	gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 1, time(NULL));
+}
+
 struct group *find_group(struct gaim_connection *gc, char *group)
 {
 	struct group *g;
@@ -2455,6 +2483,7 @@
 		imbutton   = gtk_button_new_with_label(_("IM"));
 		infobutton = gtk_button_new_with_label(_("Info"));
 		chatbutton = gtk_button_new_with_label(_("Chat"));
+		awaybutton = gtk_button_new_with_label(_("Away"));
 
 		imchatbox  = gtk_hbox_new(TRUE, 10);
 
@@ -2463,25 +2492,30 @@
 			gtk_button_set_relief(GTK_BUTTON(imbutton), GTK_RELIEF_NONE);
 			gtk_button_set_relief(GTK_BUTTON(infobutton), GTK_RELIEF_NONE);
 			gtk_button_set_relief(GTK_BUTTON(chatbutton), GTK_RELIEF_NONE);
+			gtk_button_set_relief(GTK_BUTTON(awaybutton), GTK_RELIEF_NONE);
 		}
 
 		/* Put the buttons in the hbox */
 		gtk_widget_show(imbutton);
+		gtk_widget_show(infobutton);
 		gtk_widget_show(chatbutton);
-		gtk_widget_show(infobutton);
+		gtk_widget_show(awaybutton);
 
 		gtk_box_pack_start(GTK_BOX(imchatbox), imbutton, TRUE, TRUE, 0);
 		gtk_box_pack_start(GTK_BOX(imchatbox), infobutton, TRUE, TRUE, 0);
 		gtk_box_pack_start(GTK_BOX(imchatbox), chatbutton, TRUE, TRUE, 0);
+		gtk_box_pack_start(GTK_BOX(imchatbox), awaybutton, TRUE, TRUE, 0);
 		gtk_container_border_width(GTK_CONTAINER(imchatbox), 5);
 
 		gtk_signal_connect(GTK_OBJECT(imbutton), "clicked", GTK_SIGNAL_FUNC(im_callback), buddies);
 		gtk_signal_connect(GTK_OBJECT(infobutton), "clicked", GTK_SIGNAL_FUNC(info_callback), buddies);
 		gtk_signal_connect(GTK_OBJECT(chatbutton), "clicked", GTK_SIGNAL_FUNC(chat_callback), buddies);
+		gtk_signal_connect(GTK_OBJECT(awaybutton), "clicked", GTK_SIGNAL_FUNC(away_callback), buddies);
 
 		gtk_tooltips_set_tip(tips,infobutton, _("Information on selected Buddy"), "Penguin");
 		gtk_tooltips_set_tip(tips,imbutton, _("Send Instant Message"), "Penguin");
 		gtk_tooltips_set_tip(tips,chatbutton, _("Start/join a Buddy Chat"), "Penguin");
+		gtk_tooltips_set_tip(tips,awaybutton, _("Activate Away Message"), "Penguin");
 
 		gtk_box_pack_start(GTK_BOX(buddypane), imchatbox, FALSE, FALSE, 0);