Sun, 03 Aug 2003 09:47:15 +0000
[gaim-migrate @ 6864]
Lots of Makefile.am and configure.ac fixes from Robot101. Doumo arigatou,
Mr. Roboto!
committer: Christian Hammond <chipx86@chipx86.com>
| 1 | 1 | /* |
| 2 | * gaim | |
| 3 | * | |
| 4 | * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 | * | |
| 6 | * This program is free software; you can redistribute it and/or modify | |
| 7 | * it under the terms of the GNU General Public License as published by | |
| 8 | * the Free Software Foundation; either version 2 of the License, or | |
| 9 | * (at your option) any later version. | |
| 10 | * | |
| 11 | * This program is distributed in the hope that it will be useful, | |
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 | * GNU General Public License for more details. | |
| 15 | * | |
| 16 | * You should have received a copy of the GNU General Public License | |
| 17 | * along with this program; if not, write to the Free Software | |
| 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
19 | * |
| 1 | 20 | */ |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
21 | #include "internal.h" |
| 1 | 22 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
23 | #include "conversation.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
24 | #include "debug.h" |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
25 | #include "plugin.h" |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
26 | #include "prefs.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
27 | #include "prpl.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
28 | #include "util.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
29 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
30 | /* XXX Until we can get rid of the message queue stuff... */ |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
31 | #include "gaim.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
32 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
33 | #include "gtkblist.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
34 | #include "gtkimhtml.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
35 | #include "gtkprefs.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
36 | #include "gtkutils.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
37 | #include "ui.h" |
| 1 | 38 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
39 | GtkWidget *imaway = NULL; |
| 1 | 40 | |
|
652
dd4ccd3e5c72
[gaim-migrate @ 662]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
621
diff
changeset
|
41 | GtkWidget *awaymenu = NULL; |
| 4412 | 42 | GtkWidget *awayqueue = NULL; |
| 43 | GtkListStore *awayqueuestore = NULL; | |
| 44 | GtkWidget *awayqueuesw; | |
| 1773 | 45 | |
| 1 | 46 | struct away_message *awaymessage = NULL; |
| 1109 | 47 | int auto_away; |
| 1 | 48 | |
| 4412 | 49 | static void dequeue_message(GtkTreeIter *iter) |
| 50 | { | |
| 51 | gchar *name; | |
| 52 | GSList *templist; | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
53 | GaimConversation *cnv; |
| 4412 | 54 | |
| 55 | gtk_tree_model_get(GTK_TREE_MODEL(awayqueuestore), iter, 0, &name, -1); | |
| 4491 | 56 | |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
57 | gaim_debug(GAIM_DEBUG_INFO, "away", "Unqueueing messages from %s.\n", |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
58 | name); |
| 4491 | 59 | |
| 4412 | 60 | templist = message_queue; |
| 4491 | 61 | |
| 4412 | 62 | while (templist) { |
| 63 | struct queued_message *qm = templist->data; | |
| 64 | if (templist->data) { | |
| 4793 | 65 | if (!gaim_utf8_strcasecmp(qm->name, name)) { |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
66 | GaimAccount *account = NULL; |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4412
diff
changeset
|
67 | |
|
5580
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5573
diff
changeset
|
68 | if (g_list_index(gaim_accounts_get_all(), qm->account) >= 0) |
| 4608 | 69 | account = qm->account; |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4412
diff
changeset
|
70 | |
| 4412 | 71 | cnv = gaim_find_conversation(name); |
| 72 | ||
| 73 | if (!cnv) | |
| 4491 | 74 | cnv = gaim_conversation_new(GAIM_CONV_IM, account, qm->name); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4412
diff
changeset
|
75 | else |
| 4491 | 76 | gaim_conversation_set_account(cnv, account); |
| 4412 | 77 | |
| 78 | gaim_im_write(GAIM_IM(cnv), NULL, qm->message, qm->len, | |
| 79 | qm->flags, qm->tm); | |
| 80 | g_free(qm->message); | |
| 81 | g_free(qm); | |
| 82 | templist = message_queue = g_slist_remove(message_queue, qm); | |
| 4491 | 83 | |
| 4412 | 84 | } else { |
| 85 | templist = templist->next; | |
| 86 | } | |
| 87 | } | |
| 88 | } | |
| 89 | ||
| 90 | g_free(name); | |
| 91 | /* In GTK 2.2, _store_remove actually returns whether iter is valid or not | |
| 92 | * after the remove, but in GTK 2.0 it is a void function. */ | |
| 93 | gtk_list_store_remove(awayqueuestore, iter); | |
| 94 | } | |
| 95 | ||
|
4274
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
96 | void purge_away_queue(GSList **queue) |
| 1773 | 97 | { |
|
4274
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
98 | GSList *q = *queue; |
|
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
99 | struct queued_message *qm; |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
100 | GaimConversation *cnv; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
101 | GaimAccount *account; |
| 1773 | 102 | |
|
4274
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
103 | while (q) { |
|
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
104 | qm = q->data; |
|
4167
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
105 | |
| 4491 | 106 | account = NULL; |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4412
diff
changeset
|
107 | |
|
5580
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5573
diff
changeset
|
108 | if (g_list_index(gaim_accounts_get_all(), qm->account) >= 0) |
| 4608 | 109 | account = qm->account; |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4412
diff
changeset
|
110 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4274
diff
changeset
|
111 | cnv = gaim_find_conversation(qm->name); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4274
diff
changeset
|
112 | |
|
4167
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
113 | if (!cnv) |
| 4491 | 114 | cnv = gaim_conversation_new(GAIM_CONV_IM, account, qm->name); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4412
diff
changeset
|
115 | else |
| 4491 | 116 | gaim_conversation_set_account(cnv, account); |
|
4274
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
117 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4274
diff
changeset
|
118 | gaim_im_write(GAIM_IM(cnv), NULL, qm->message, -1, qm->flags, qm->tm); |
|
4167
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
119 | |
|
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
120 | g_free(qm->message); |
|
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
121 | g_free(qm); |
|
4274
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
122 | |
|
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
123 | q->data = NULL; |
|
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
124 | q = q->next; |
|
4167
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
125 | } |
|
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
126 | |
|
4274
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
127 | g_slist_free(*queue); |
|
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
128 | *queue = NULL; |
|
4167
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
129 | } |
|
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
130 | |
| 4412 | 131 | gint dequeue_cb(GtkWidget *treeview, GdkEventButton *event, gpointer data) { |
| 132 | GtkTreeIter iter; | |
| 133 | GtkTreeSelection *select; | |
| 4491 | 134 | |
|
4167
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
135 | if(!(event->type == GDK_2BUTTON_PRESS && event->button == 1)) |
| 4412 | 136 | return FALSE; /* Double clicking on the list will unqueue that user's messages. */ |
| 4491 | 137 | |
| 4412 | 138 | select = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); |
| 139 | if(gtk_tree_selection_get_selected(select, NULL, &iter)) | |
| 140 | dequeue_message(&iter); | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4274
diff
changeset
|
141 | |
| 4412 | 142 | return FALSE; |
|
4167
96a51df2ae94
[gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents:
4162
diff
changeset
|
143 | } |
| 4491 | 144 | |
| 2573 | 145 | |
| 146 | ||
| 1773 | 147 | void toggle_away_queue() |
| 148 | { | |
| 4412 | 149 | if (!awayqueue || !awayqueuesw) |
| 1773 | 150 | return; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
151 | |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
152 | if (gaim_prefs_get_bool("/gaim/gtk/away/queue_messages")) { |
| 4412 | 153 | gtk_widget_show(awayqueue); |
| 154 | gtk_widget_show(awayqueuesw); | |
|
1775
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
155 | } else { |
| 4412 | 156 | gtk_widget_hide(awayqueue); |
| 157 | gtk_widget_hide(awayqueuesw); | |
|
4274
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
158 | purge_away_queue(&message_queue); |
| 1773 | 159 | } |
| 160 | } | |
| 161 | ||
| 1 | 162 | void do_im_back(GtkWidget *w, GtkWidget *x) |
| 163 | { | |
| 164 | if (imaway) { | |
| 1109 | 165 | GtkWidget *tmp = imaway; |
| 1768 | 166 | |
|
4274
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
167 | purge_away_queue(&message_queue); |
|
2309c547cd6e
[gaim-migrate @ 4525]
Robert McQueen <robot101@debian.org>
parents:
4167
diff
changeset
|
168 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
169 | imaway = NULL; |
| 1109 | 170 | gtk_widget_destroy(tmp); |
|
1614
deb7a09e9865
[gaim-migrate @ 1624]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1607
diff
changeset
|
171 | if (w != tmp) |
|
deb7a09e9865
[gaim-migrate @ 1624]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1607
diff
changeset
|
172 | return; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
173 | } |
| 1 | 174 | |
|
1775
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
175 | while (away_time_queue) { |
|
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
176 | struct queued_away_response *qar = away_time_queue->data; |
|
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
177 | away_time_queue = g_slist_remove(away_time_queue, qar); |
|
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
178 | g_free(qar); |
|
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
179 | } |
|
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
180 | |
| 1 | 181 | awaymessage = NULL; |
| 4412 | 182 | awayqueue = NULL; |
| 183 | awayqueuesw = NULL; | |
| 184 | g_object_unref(G_OBJECT(awayqueuestore)); | |
| 185 | awayqueuestore = NULL; | |
|
3514
e9d04a0546f1
[gaim-migrate @ 3586]
Robert McQueen <robot101@debian.org>
parents:
3474
diff
changeset
|
186 | serv_set_away_all(NULL); |
| 1 | 187 | } |
| 188 | ||
| 1044 | 189 | |
| 1 | 190 | void do_away_message(GtkWidget *w, struct away_message *a) |
| 191 | { | |
| 192 | GtkWidget *back; | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
193 | GtkWidget *awaytext; |
|
1888
ce09875528c4
[gaim-migrate @ 1898]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
194 | GtkWidget *sw; |
| 1 | 195 | GtkWidget *vbox; |
| 4412 | 196 | GtkTreeViewColumn *column; |
| 197 | GtkCellRenderer *renderer; | |
|
1888
ce09875528c4
[gaim-migrate @ 1898]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
198 | char *buf; |
| 1 | 199 | |
| 1254 | 200 | if (!a) |
| 201 | return; | |
| 202 | ||
| 6284 | 203 | if(imaway) |
| 204 | gtk_widget_destroy(imaway); | |
| 205 | ||
| 206 | GAIM_DIALOG(imaway); | |
| 207 | gtk_window_set_role(GTK_WINDOW(imaway), "imaway"); | |
| 208 | if (strlen(a->name)) | |
| 209 | gtk_window_set_title(GTK_WINDOW(imaway), a->name); | |
| 210 | else | |
| 211 | gtk_window_set_title(GTK_WINDOW(imaway), _("Gaim - Away!")); | |
| 212 | g_signal_connect(G_OBJECT(imaway), "destroy", | |
| 213 | G_CALLBACK(do_im_back), imaway); | |
| 214 | gtk_widget_realize(imaway); | |
|
1888
ce09875528c4
[gaim-migrate @ 1898]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
215 | |
| 6284 | 216 | vbox = gtk_vbox_new(FALSE, 5); |
| 217 | gtk_container_add(GTK_CONTAINER(imaway), vbox); | |
| 218 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); | |
| 219 | gtk_widget_show(vbox); | |
| 1044 | 220 | |
| 6284 | 221 | sw = gtk_scrolled_window_new(NULL, NULL); |
| 222 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, | |
| 223 | GTK_POLICY_ALWAYS); | |
| 224 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
| 225 | gtk_widget_set_size_request(sw, 245, 120); | |
| 226 | gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); | |
| 227 | gtk_widget_show(sw); | |
|
1888
ce09875528c4
[gaim-migrate @ 1898]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
228 | |
| 6284 | 229 | awaytext = gtk_imhtml_new(NULL, NULL); |
| 230 | gtk_container_add(GTK_CONTAINER(sw), awaytext); | |
| 231 | gaim_setup_imhtml(awaytext); | |
| 232 | gtk_widget_show(awaytext); | |
| 233 | buf = stylize(a->message, BUF_LONG); | |
| 234 | gtk_imhtml_append_text(GTK_IMHTML(awaytext), buf, -1, GTK_IMHTML_NO_TITLE | | |
| 235 | GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); | |
| 236 | g_free(buf); | |
| 237 | gtk_imhtml_append_text(GTK_IMHTML(awaytext), "<BR>", -1, | |
| 238 | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_COMMENTS | | |
| 239 | GTK_IMHTML_NO_SCROLL); | |
| 1773 | 240 | |
| 6284 | 241 | awayqueuesw = gtk_scrolled_window_new(NULL, NULL); |
| 242 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(awayqueuesw), | |
| 243 | GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 244 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(awayqueuesw), | |
| 245 | GTK_SHADOW_IN); | |
| 246 | gtk_box_pack_start(GTK_BOX(vbox), awayqueuesw, TRUE, TRUE, 0); | |
| 247 | ||
| 248 | awayqueuestore = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); | |
| 249 | awayqueue = gtk_tree_view_new_with_model(GTK_TREE_MODEL(awayqueuestore)); | |
| 250 | renderer = gtk_cell_renderer_text_new(); | |
| 251 | ||
| 252 | gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(awayqueue), FALSE); | |
| 253 | column = gtk_tree_view_column_new_with_attributes (NULL, renderer, | |
| 254 | "text", 0, | |
| 255 | NULL); | |
| 256 | gtk_tree_view_append_column(GTK_TREE_VIEW(awayqueue), column); | |
| 257 | column = gtk_tree_view_column_new_with_attributes(NULL, renderer, | |
| 258 | "text", 1, | |
| 259 | NULL); | |
| 260 | gtk_tree_view_append_column(GTK_TREE_VIEW(awayqueue), column); | |
| 261 | ||
| 262 | gtk_container_add(GTK_CONTAINER(awayqueuesw), awayqueue); | |
| 263 | ||
| 264 | g_signal_connect(G_OBJECT(awayqueue), "button_press_event", G_CALLBACK(dequeue_cb), NULL); | |
| 2573 | 265 | |
| 1773 | 266 | |
| 6284 | 267 | if (gaim_prefs_get_bool("/gaim/gtk/away/queue_messages")) { |
| 268 | gtk_widget_show(awayqueuesw); | |
| 269 | gtk_widget_show(awayqueue); | |
| 270 | } | |
| 1773 | 271 | |
| 6284 | 272 | back = gaim_pixbuf_button_from_stock(_("I'm Back!"), GTK_STOCK_JUMP_TO, GAIM_BUTTON_HORIZONTAL); |
| 273 | gtk_box_pack_start(GTK_BOX(vbox), back, FALSE, FALSE, 0); | |
| 274 | g_signal_connect(G_OBJECT(back), "clicked", G_CALLBACK(do_im_back), imaway); | |
| 275 | gtk_window_set_focus(GTK_WINDOW(imaway), back); | |
| 276 | gtk_widget_show(back); | |
|
1888
ce09875528c4
[gaim-migrate @ 1898]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
277 | |
| 6284 | 278 | awaymessage = a; |
| 1 | 279 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
280 | /* New away message... Clear out the old sent_aways */ |
|
1775
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
281 | while (away_time_queue) { |
|
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
282 | struct queued_away_response *qar = away_time_queue->data; |
|
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
283 | away_time_queue = g_slist_remove(away_time_queue, qar); |
|
16de02b8c378
[gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1774
diff
changeset
|
284 | g_free(qar); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
285 | } |
| 1 | 286 | |
|
1779
1fd9838e3aa2
[gaim-migrate @ 1789]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1775
diff
changeset
|
287 | gtk_widget_show(imaway); |
|
6019
5be866245659
[gaim-migrate @ 6469]
Decklin Foster <decklin@red-bean.com>
parents:
5872
diff
changeset
|
288 | serv_set_away_all(awaymessage->message); |
| 1 | 289 | } |
| 290 | ||
| 291 | void rem_away_mess(GtkWidget *w, struct away_message *a) | |
| 292 | { | |
| 6216 | 293 | struct away_message *default_away = NULL; |
| 294 | const char *default_away_name; | |
| 295 | GSList *l; | |
| 296 | ||
| 297 | default_away_name = gaim_prefs_get_string("/core/away/default_message"); | |
| 298 | ||
| 299 | for(l = away_messages; l; l = l->next) { | |
| 300 | if(!strcmp(default_away_name, ((struct away_message *)l->data)->name)) { | |
| 301 | default_away = l->data; | |
| 302 | break; | |
| 303 | } | |
| 1254 | 304 | } |
| 6216 | 305 | |
| 306 | if(!default_away && away_messages) | |
| 307 | default_away = away_messages->data; | |
| 308 | ||
| 1306 | 309 | away_messages = g_slist_remove(away_messages, a); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
310 | g_free(a); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
311 | do_away_menu(); |
| 1 | 312 | } |
| 313 | ||
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
314 | static void set_gc_away(GObject *obj, GaimConnection *gc) |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
315 | { |
| 4635 | 316 | struct away_message *awy = g_object_get_data(obj, "away_message"); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
317 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
318 | if (awy) |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
319 | serv_set_away(gc, GAIM_AWAY_CUSTOM, awy->message); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
320 | else |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
321 | serv_set_away(gc, GAIM_AWAY_CUSTOM, NULL); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
322 | } |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
323 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
324 | static void set_gc_state(GObject *obj, GaimConnection *gc) |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
325 | { |
| 4635 | 326 | char *awy = g_object_get_data(obj, "away_state"); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
327 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
328 | serv_set_away(gc, awy, NULL); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
329 | } |
| 1 | 330 | |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
331 | /* XXX This needs to be fixed, NOW! */ |
|
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
332 | extern GtkListStore *prefs_away_store; |
|
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
333 | extern GtkWidget *prefs_away_menu; |
|
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
334 | |
| 1 | 335 | void do_away_menu() |
| 336 | { | |
| 337 | GtkWidget *menuitem; | |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
338 | GtkWidget *remmenu; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
339 | GtkWidget *submenu, *submenu2; |
| 1 | 340 | GtkWidget *remitem; |
|
5160
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
341 | GtkWidget *image; |
|
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
342 | GdkPixbuf *pixbuf, *scale; |
| 1 | 343 | GList *l; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
344 | GSList *awy = away_messages; |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
345 | struct away_message *a; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
346 | GList *con; |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
347 | GaimConnection *gc = NULL; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
348 | GaimPluginProtocolInfo *prpl_info = NULL; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
349 | |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
350 | int count = 0; |
| 1 | 351 | |
| 4635 | 352 | if (prefs_away_store != NULL) { |
| 353 | gtk_list_store_clear(prefs_away_store); | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
354 | while (awy) { |
| 4635 | 355 | GtkTreeIter iter; |
| 1 | 356 | a = (struct away_message *)awy->data; |
| 4635 | 357 | gtk_list_store_append(prefs_away_store, &iter); |
| 358 | gtk_list_store_set(prefs_away_store, &iter, | |
| 359 | 0, a->name, | |
| 360 | 1, a, | |
| 361 | -1); | |
| 940 | 362 | awy = g_slist_next(awy); |
| 1 | 363 | } |
| 364 | } | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
365 | |
| 1109 | 366 | if (awaymenu) { |
| 4635 | 367 | l = gtk_container_get_children(GTK_CONTAINER(awaymenu)); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
368 | |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
369 | while (l) { |
|
1530
dc8b1b326f4c
[gaim-migrate @ 1540]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
370 | gtk_container_remove(GTK_CONTAINER(awaymenu), GTK_WIDGET(l->data)); |
| 1109 | 371 | l = l->next; |
| 372 | } | |
| 1 | 373 | |
| 374 | ||
| 1109 | 375 | remmenu = gtk_menu_new(); |
| 1 | 376 | |
| 1109 | 377 | menuitem = gtk_menu_item_new_with_label(_("New Away Message")); |
| 4635 | 378 | gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem); |
| 1109 | 379 | gtk_widget_show(menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
380 | g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(create_away_mess), |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
381 | NULL); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
382 | |
| 1109 | 383 | awy = away_messages; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
384 | while (awy) { |
| 1109 | 385 | a = (struct away_message *)awy->data; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
386 | |
| 1109 | 387 | remitem = gtk_menu_item_new_with_label(a->name); |
| 4635 | 388 | gtk_menu_shell_append(GTK_MENU_SHELL(remmenu), remitem); |
| 1109 | 389 | gtk_widget_show(remitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
390 | g_signal_connect(G_OBJECT(remitem), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
391 | G_CALLBACK(rem_away_mess), a); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
392 | |
| 1109 | 393 | awy = g_slist_next(awy); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
394 | |
| 1109 | 395 | } |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
396 | |
| 1109 | 397 | menuitem = gtk_menu_item_new_with_label(_("Remove Away Message")); |
| 4635 | 398 | gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem); |
| 1 | 399 | gtk_widget_show(menuitem); |
| 1109 | 400 | gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), remmenu); |
| 401 | gtk_widget_show(remmenu); | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
402 | |
|
5160
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
403 | gaim_separator(awaymenu); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
404 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
405 | for (con = gaim_connections_get_all(); con != NULL; con = con->next) { |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
406 | gc = con->data; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
407 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
408 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
409 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
410 | if (prpl_info->away_states != NULL && prpl_info->set_away != NULL) |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
411 | count++; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
412 | } |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
413 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
414 | if (count == 0) { |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
415 | } else if (count == 1) { |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
416 | GList *msgs, *tmp; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
417 | |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
418 | for (con = gaim_connections_get_all(); con != NULL; con = con->next) { |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
419 | gc = con->data; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
420 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
421 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
422 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
423 | if (prpl_info->away_states && prpl_info->set_away) |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
424 | break; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
425 | } |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
426 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
427 | tmp = msgs = prpl_info->away_states(gc); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
428 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
429 | if ((g_list_length(msgs) == 1) && !strcmp(msgs->data, GAIM_AWAY_CUSTOM)) { |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
430 | awy = away_messages; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
431 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
432 | while (awy) { |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
433 | a = (struct away_message *)awy->data; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
434 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
435 | menuitem = gtk_menu_item_new_with_label(a->name); |
| 4635 | 436 | g_object_set_data(G_OBJECT(menuitem), "away_message", a); |
| 437 | gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem); | |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
438 | gtk_widget_show(menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
439 | g_signal_connect(G_OBJECT(menuitem), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
440 | G_CALLBACK(do_away_message), a); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
441 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
442 | awy = g_slist_next(awy); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
443 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
444 | } else |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
445 | while (msgs) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
446 | awy = away_messages; |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
447 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
448 | menuitem = gtk_menu_item_new_with_label(msgs->data); |
| 4635 | 449 | g_object_set_data(G_OBJECT(menuitem), "away_state", msgs->data); |
| 450 | gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
451 | gtk_widget_show(menuitem); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
452 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
453 | if (strcmp(msgs->data, GAIM_AWAY_CUSTOM)) { |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
454 | g_signal_connect(G_OBJECT(menuitem), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
455 | G_CALLBACK(set_gc_state), gc); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
456 | } else { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
457 | submenu = gtk_menu_new(); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
458 | gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
459 | submenu); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
460 | gtk_widget_show(submenu); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
461 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
462 | while (awy) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
463 | a = (struct away_message *)awy->data; |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
464 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
465 | menuitem = gtk_menu_item_new_with_label(a->name); |
| 4635 | 466 | g_object_set_data(G_OBJECT(menuitem), "away_message", |
| 467 | a); | |
| 468 | gtk_menu_shell_append(GTK_MENU_SHELL(submenu), | |
| 469 | menuitem); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
470 | gtk_widget_show(menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
471 | g_signal_connect(G_OBJECT(menuitem), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
472 | "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
473 | G_CALLBACK |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
474 | (do_away_message), a); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
475 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
476 | awy = g_slist_next(awy); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
477 | } |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
478 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
479 | msgs = g_list_next(msgs); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
480 | } |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
481 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
482 | g_list_free(tmp); |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
483 | } |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
484 | else { |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
485 | for (con = gaim_connections_get_all(); con != NULL; con = con->next) { |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
486 | GaimAccount *account; |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
487 | char buf[256]; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
488 | GList *msgs, *tmp; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
489 | gc = con->data; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
490 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
491 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
492 | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
493 | if (!prpl_info->away_states || !prpl_info->set_away) |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
494 | continue; |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
495 | |
|
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
496 | account = gaim_connection_get_account(gc); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
497 | |
| 5161 | 498 | g_snprintf(buf, sizeof(buf), "%s (%s)", |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
499 | gaim_account_get_username(account), gc->prpl->info->name); |
| 5161 | 500 | menuitem = gtk_image_menu_item_new_with_label(buf); |
| 501 | ||
|
5160
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
502 | pixbuf = create_prpl_icon(gc->account); |
|
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
503 | if (pixbuf) { |
|
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
504 | scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16, GDK_INTERP_BILINEAR); |
|
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
505 | image = gtk_image_new_from_pixbuf(scale); |
|
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
506 | g_object_unref(G_OBJECT(pixbuf)); |
|
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
507 | g_object_unref(G_OBJECT(scale)); |
| 5161 | 508 | gtk_widget_show(image); |
| 509 | gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), | |
| 510 | image); | |
|
5160
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
511 | } |
|
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
512 | |
| 4635 | 513 | gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
514 | gtk_widget_show(menuitem); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
515 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
516 | submenu = gtk_menu_new(); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
517 | gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
518 | gtk_widget_show(submenu); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
519 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
520 | tmp = msgs = prpl_info->away_states(gc); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
521 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
522 | if ((g_list_length(msgs) == 1) && |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
523 | (!strcmp(msgs->data, GAIM_AWAY_CUSTOM))) { |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
524 | menuitem = gtk_menu_item_new_with_label(_("Back")); |
| 4635 | 525 | gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
526 | gtk_widget_show(menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
527 | g_signal_connect(G_OBJECT(menuitem), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
528 | G_CALLBACK(set_gc_away), gc); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
529 | |
|
5160
bcc3e2b2ed56
[gaim-migrate @ 5524]
Mark Doliner <markdoliner@pidgin.im>
parents:
5024
diff
changeset
|
530 | gaim_separator(submenu); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
531 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
532 | awy = away_messages; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
533 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
534 | while (awy) { |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
535 | a = (struct away_message *)awy->data; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
536 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
537 | menuitem = gtk_menu_item_new_with_label(a->name); |
| 4635 | 538 | g_object_set_data(G_OBJECT(menuitem), "away_message", a); |
| 539 | gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
540 | gtk_widget_show(menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
541 | g_signal_connect(G_OBJECT(menuitem), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
542 | G_CALLBACK(set_gc_away), gc); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
543 | |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
544 | awy = g_slist_next(awy); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
545 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
546 | } else |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
547 | while (msgs) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
548 | awy = away_messages; |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
549 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
550 | menuitem = gtk_menu_item_new_with_label(msgs->data); |
| 4635 | 551 | g_object_set_data(G_OBJECT(menuitem), "away_state", |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
552 | msgs->data); |
| 4635 | 553 | gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
554 | gtk_widget_show(menuitem); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
555 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
556 | if (strcmp(msgs->data, GAIM_AWAY_CUSTOM)) { |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
557 | g_signal_connect(G_OBJECT(menuitem), |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
558 | "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
559 | G_CALLBACK(set_gc_state), |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
560 | gc); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
561 | } else { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
562 | submenu2 = gtk_menu_new(); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
563 | gtk_menu_item_set_submenu(GTK_MENU_ITEM |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
564 | (menuitem), submenu2); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
565 | gtk_widget_show(submenu2); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
566 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
567 | while (awy) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
568 | a = (struct away_message *)awy->data; |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
569 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
570 | menuitem = |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
571 | gtk_menu_item_new_with_label(a-> |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
572 | name); |
| 4635 | 573 | g_object_set_data(G_OBJECT(menuitem), |
| 574 | "away_message", a); | |
| 575 | gtk_menu_shell_append(GTK_MENU_SHELL(submenu2), | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
576 | menuitem); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
577 | gtk_widget_show(menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
578 | g_signal_connect(G_OBJECT(menuitem), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
579 | "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
580 | G_CALLBACK |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
581 | (set_gc_away), gc); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
582 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
583 | awy = g_slist_next(awy); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
584 | } |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
585 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2313
diff
changeset
|
586 | msgs = g_list_next(msgs); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
587 | } |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
588 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
589 | g_list_free(tmp); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
590 | } |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
591 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
592 | menuitem = gtk_menu_item_new_with_label(_("Set All Away")); |
| 4635 | 593 | gtk_menu_shell_append(GTK_MENU_SHELL(awaymenu), menuitem); |
| 1109 | 594 | gtk_widget_show(menuitem); |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
595 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
596 | submenu = gtk_menu_new(); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
597 | gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
598 | gtk_widget_show(submenu); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
599 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
600 | awy = away_messages; |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
601 | |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
602 | while (awy) { |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
603 | a = (struct away_message *)awy->data; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
604 | |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
605 | menuitem = gtk_menu_item_new_with_label(a->name); |
| 4635 | 606 | g_object_set_data(G_OBJECT(menuitem), "away_message", a); |
| 607 | gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); | |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
608 | gtk_widget_show(menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5228
diff
changeset
|
609 | g_signal_connect(G_OBJECT(menuitem), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4124
diff
changeset
|
610 | G_CALLBACK(do_away_message), a); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
611 | |
|
1401
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
612 | awy = g_slist_next(awy); |
|
e81430ba5d7a
[gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1306
diff
changeset
|
613 | } |
| 1109 | 614 | } |
| 615 | } | |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
616 | |
| 1109 | 617 | if (prefs_away_menu) { |
| 4635 | 618 | l = gtk_container_get_children(GTK_CONTAINER(prefs_away_menu)); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1191
diff
changeset
|
619 | while (l) { |
| 1109 | 620 | gtk_widget_destroy(GTK_WIDGET(l->data)); |
| 621 | l = l->next; | |
| 622 | } | |
| 623 | gtk_widget_hide(GTK_WIDGET(prefs_away_menu)); | |
| 624 | default_away_menu_init(GTK_WIDGET(prefs_away_menu)); | |
| 625 | gtk_widget_show(prefs_away_menu); | |
| 1 | 626 | } |
| 627 | } |