src/away.c

Tue, 06 Jun 2000 09:55:30 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Tue, 06 Jun 2000 09:55:30 +0000
changeset 338
21c93bc7ae83
parent 230
5afbb3468f11
child 349
6f7d28b0f98d
permissions
-rw-r--r--

[gaim-migrate @ 348]
Whoa, all kinds of things happened here. The applet looks better. The
preferences dialog changes based on your compile-time options (oscar,
gnome). Whispering works again. libfaim got updated; it can almost do
RVOUS stuff, and hopefully soon can make requests too. The applet doesn't
need to have its sounds go through GNOME, although it still can. There
is code to facilitate SOCKS5 support (all that needs to be done is to
actually write the code to communicate with the proxy server).

1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
22 #ifdef USE_APPLET
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
23 #include <gnome.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
24 #include <applet-widget.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 #include "gnome_applet_mgr.h"
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
26 #endif /* USE_APPLET */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27 #include <string.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <stdio.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <stdlib.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
30 #include <time.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
32 #include <gtk/gtk.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
33 #include "gaim.h"
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
34
133
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
35 GtkWidget *imaway=NULL;
84
419c24cfe582 [gaim-migrate @ 94]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 79
diff changeset
36 #ifdef USE_APPLET
419c24cfe582 [gaim-migrate @ 94]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 79
diff changeset
37 extern enum gaim_user_states MRI_user_status;
419c24cfe582 [gaim-migrate @ 94]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 79
diff changeset
38 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
39
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
40 GtkWidget *awaymenu;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41 struct away_message *awaymessage = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
43 static void destroy_im_away()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
44 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
45 if (imaway)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
46 gtk_widget_destroy(imaway);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
47 imaway=NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
48 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
49
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
50 void do_im_back(GtkWidget *w, GtkWidget *x)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
51 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
52 #ifdef USE_APPLET
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
53 applet_widget_unregister_callback(APPLET_WIDGET(applet),"away");
84
419c24cfe582 [gaim-migrate @ 94]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 79
diff changeset
54 MRI_user_status = online;
18
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
55 insert_applet_away();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
56 #endif /* USE_APPLET */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
57 if (imaway) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
58 gtk_widget_destroy(imaway);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
59 imaway=NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
60 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
61
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
62 serv_set_away(NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
63 awaymessage = NULL;
136
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
64 #ifdef GAIM_PLUGINS
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
65 {
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
66 GList *c = callbacks;
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
67 struct gaim_callback *g;
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
68 void (*function)(void *);
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
69 while (c) {
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
70 g = (struct gaim_callback *)c->data;
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
71 if (g->event == event_back && g->function != NULL) {
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
72 function = g->function;
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
73 (*function)(g->data);
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
74 }
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
75 c = c->next;
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
76 }
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
77 }
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
78 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
79 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
80
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
81 void do_away_message(GtkWidget *w, struct away_message *a)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
82 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
83 GtkWidget *back;
136
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 133
diff changeset
84 GtkWidget *awaytext;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
85 GtkWidget *vscrollbar;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
86 GtkWidget *bbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
87 GtkWidget *vbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
88 GtkWidget *topbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
89 char *buf2;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
90 char buf[BUF_LONG];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
91 GList *cnv = conversations;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
92 struct conversation *c;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
93
18
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
94 #ifdef USE_APPLET
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
95 remove_applet_away();
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
96 applet_widget_register_callback(APPLET_WIDGET(applet),
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
97 "away",
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
98 _("Back"),
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
99 (AppletCallbackFunc) do_im_back,
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
100 NULL);
84
419c24cfe582 [gaim-migrate @ 94]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 79
diff changeset
101 MRI_user_status = away;
18
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
102 #endif
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
103
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
104 if (!imaway) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
105 imaway = gtk_window_new(GTK_WINDOW_DIALOG);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
106 gtk_widget_realize(imaway);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
107 aol_icon(imaway->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
108 back = gtk_button_new_with_label("I'm Back!");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
109 bbox = gtk_hbox_new(TRUE, 10);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
110 topbox = gtk_hbox_new(FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
111 vbox = gtk_vbox_new(FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
112
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
113 awaytext = gtk_text_new(NULL, NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
114 g_snprintf(buf, sizeof(buf), "%s", a->message);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
115 vscrollbar = gtk_vscrollbar_new(GTK_TEXT(awaytext)->vadj);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
116 gtk_widget_show(vscrollbar);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
117 gtk_widget_set_usize(awaytext, 225, 75);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
118 gtk_text_set_word_wrap(GTK_TEXT(awaytext), TRUE);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
119 gtk_widget_show(awaytext);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
120 gtk_text_freeze(GTK_TEXT(awaytext));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
121 gtk_text_insert(GTK_TEXT(awaytext), NULL, NULL, NULL, buf, -1);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
122 gtk_widget_show(awaytext);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
123
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
124
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
125 /* Put the buttons in the box */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
126 gtk_box_pack_start(GTK_BOX(bbox), back, TRUE, TRUE, 10);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
127
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
128 gtk_box_pack_start(GTK_BOX(topbox), awaytext, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
129
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
130 /* And the boxes in the box */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
131 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
132 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
133
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
134 /* Handle closes right */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
135 gtk_signal_connect(GTK_OBJECT(imaway), "destroy",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
136 GTK_SIGNAL_FUNC(destroy_im_away), imaway);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
137 gtk_signal_connect(GTK_OBJECT(back), "clicked",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
138 GTK_SIGNAL_FUNC(do_im_back), imaway);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
139
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
140 /* Finish up */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
141 gtk_widget_show(back);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
142 gtk_widget_show(topbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
143 gtk_widget_show(bbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
144 gtk_widget_show(vbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
145 if (strlen(a->name))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
146 gtk_window_set_title(GTK_WINDOW(imaway), a->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
147 else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
148 gtk_window_set_title(GTK_WINDOW(imaway), "Gaim - Away!");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
149 gtk_window_set_focus(GTK_WINDOW(imaway), back);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
150 gtk_container_add(GTK_CONTAINER(imaway), vbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
151 awaymessage = a;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
152
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
153 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
154
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
155 /* New away message... Clear out the old sent_aways */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
156 while(cnv) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
157 c = (struct conversation *)cnv->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
158 c->sent_away = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
159 cnv = cnv->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
160 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
161
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
162
79
d0d0ecf6fc03 [gaim-migrate @ 89]
G Sumner Hayes
parents: 22
diff changeset
163 buf2 = g_malloc(strlen(awaymessage->message)*4 + 1);
d0d0ecf6fc03 [gaim-migrate @ 89]
G Sumner Hayes
parents: 22
diff changeset
164 strcpy(buf2, awaymessage->message);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
165 escape_text(buf2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
166 serv_set_away(buf2);
79
d0d0ecf6fc03 [gaim-migrate @ 89]
G Sumner Hayes
parents: 22
diff changeset
167 g_free(buf2);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
168 gtk_widget_show(imaway);
133
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
169 #ifdef GAIM_PLUGINS
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
170 {
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
171 GList *c = callbacks;
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
172 struct gaim_callback *g;
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
173 void (*function)(void *);
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
174 while (c) {
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
175 g = (struct gaim_callback *)c->data;
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
176 if (g->event == event_away && g->function != NULL) {
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
177 function = g->function;
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
178 (*function)(g->data);
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
179 }
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
180 c = c->next;
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
181 }
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
182 }
418de720c20d [gaim-migrate @ 143]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 107
diff changeset
183 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
184 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
185
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
186 void rem_away_mess(GtkWidget *w, struct away_message *a)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
187 {
18
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
188 #ifdef USE_APPLET
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
189 char *awayname;
79
d0d0ecf6fc03 [gaim-migrate @ 89]
G Sumner Hayes
parents: 22
diff changeset
190 awayname = g_malloc(sizeof (*awayname) * (6 + strlen(a->name)));
18
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
191 awayname[0] = '\0';
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
192 strcat(awayname, "away/");
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
193 strcat(awayname, a->name);
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
194 applet_widget_unregister_callback(APPLET_WIDGET(applet), awayname);
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
195 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
196 away_messages = g_list_remove(away_messages, a);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
197 g_free(a);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
198 do_away_menu();
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 136
diff changeset
199 save_prefs();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
200 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
201
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
202
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
203 void do_away_menu()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
204 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
205 GtkWidget *menuitem;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
206 static GtkWidget *remmenu;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
207 GtkWidget *remitem;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
208 GtkWidget *label;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
209 GtkWidget *sep;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
210 GList *l;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
211 GtkWidget *list_item;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
212 GList *awy = away_messages;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
213 struct away_message *a;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
214
18
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
215 #ifdef USE_APPLET
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
216 remove_applet_away();
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
217 if (imaway)
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
218 applet_widget_register_callback(APPLET_WIDGET(applet),
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
219 "away",
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
220 _("Back"),
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
221 (AppletCallbackFunc)do_im_back,
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
222 NULL);
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
223 else
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
224 insert_applet_away();
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
225 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
226
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
227 if (pd != NULL) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
228 gtk_list_clear_items(GTK_LIST(pd->away_list), 0, -1);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
229 while(awy) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
230 a = (struct away_message *)awy->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
231 label = gtk_label_new(a->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
232 list_item = gtk_list_item_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
233 gtk_container_add(GTK_CONTAINER(list_item), label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
234 gtk_signal_connect(GTK_OBJECT(list_item), "select", GTK_SIGNAL_FUNC(away_list_clicked), a);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
235 gtk_signal_connect(GTK_OBJECT(list_item), "deselect", GTK_SIGNAL_FUNC(away_list_unclicked), a);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
236 gtk_object_set_user_data(GTK_OBJECT(list_item), a);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
237
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
238 gtk_widget_show(label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
239 gtk_container_add(GTK_CONTAINER(pd->away_list), list_item);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
240 gtk_widget_show(list_item);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
241
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
242 awy = awy->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
243 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
244 if (away_messages != NULL)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
245 gtk_list_select_item(GTK_LIST(pd->away_list), 0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
246 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
247
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
248
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
249 l = gtk_container_children(GTK_CONTAINER(awaymenu));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
250
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
251 while(l) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
252 gtk_widget_destroy(GTK_WIDGET(l->data));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
253 l = l->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
254 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
255
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
256
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
257 remmenu = gtk_menu_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
258
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
259
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
260
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
261 menuitem = gtk_menu_item_new_with_label("New Away Message");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
262 gtk_menu_append(GTK_MENU(awaymenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
263 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
264 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(create_away_mess), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
265
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
266
22
e60d48f9b8c7 [gaim-migrate @ 31]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 18
diff changeset
267 awy = away_messages;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
268 while(awy) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
269 a = (struct away_message *)awy->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
270
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
271 remitem = gtk_menu_item_new_with_label(a->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
272 gtk_menu_append(GTK_MENU(remmenu), remitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
273 gtk_widget_show(remitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
274 gtk_signal_connect(GTK_OBJECT(remitem), "activate", GTK_SIGNAL_FUNC(rem_away_mess), a);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
275
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
276 awy = awy->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
277
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
278 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
279
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
280 menuitem = gtk_menu_item_new_with_label("Remove Away Message");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
281 gtk_menu_append(GTK_MENU(awaymenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
282 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
283 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), remmenu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
284 gtk_widget_show(remmenu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
285
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
286
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
287 sep = gtk_hseparator_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
288 menuitem = gtk_menu_item_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
289 gtk_menu_append(GTK_MENU(awaymenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
290 gtk_container_add(GTK_CONTAINER(menuitem), sep);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
291 gtk_widget_set_sensitive(menuitem, FALSE);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
292 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
293 gtk_widget_show(sep);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
294
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
295 awy = away_messages;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
296
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
297 while(awy) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
298 a = (struct away_message *)awy->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
299
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
300 menuitem = gtk_menu_item_new_with_label(a->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
301 gtk_menu_append(GTK_MENU(awaymenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
302 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
303 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(do_away_message), a);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
304
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
305 awy = awy->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
306
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
307 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
308
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
309 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
310
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
311
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
312
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
313
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
314
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
315

mercurial