Tue, 17 Dec 2002 11:03:44 +0000
[gaim-migrate @ 4306]
The saved style is once again used on chat and IM windows. You may notice
that your style is set to Pictures, and until now, your IM and chat windows
have been Pictures & Text. If you prefer it this way, you'll need to set
your preferences to that.
| 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 | |
| 19 | * | |
| 20 | */ | |
| 21 | ||
|
349
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
344
diff
changeset
|
22 | #ifdef HAVE_CONFIG_H |
|
2090
bab8b7e309db
[gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2048
diff
changeset
|
23 | #include <config.h> |
|
349
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
344
diff
changeset
|
24 | #endif |
| 1 | 25 | #include <string.h> |
| 26 | #include <sys/time.h> | |
| 27 | #include <unistd.h> | |
|
2374
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
28 | #include <ctype.h> |
| 1 | 29 | #include <stdio.h> |
| 30 | #include <stdlib.h> | |
| 31 | #include <gtk/gtk.h> | |
|
1428
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1398
diff
changeset
|
32 | #include "gtkimhtml.h" |
| 3802 | 33 | #ifdef USE_GTKSPELL |
| 34 | #include <gtkspell/gtkspell.h> | |
| 35 | #endif | |
|
300
a6c19f404e08
[gaim-migrate @ 310]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
226
diff
changeset
|
36 | #include <gdk/gdkkeysyms.h> |
| 1 | 37 | |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
38 | #include "convo.h" |
|
1235
c8d6eef4edce
[gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1228
diff
changeset
|
39 | #include "prpl.h" |
|
344
6dacf96cc000
[gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
40 | |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
41 | /*#include "pixmaps/tb_forward.xpm"*/ |
|
604
a20b54408619
[gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
535
diff
changeset
|
42 | #include "pixmaps/join.xpm" |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
43 | /*#include "pixmaps/close.xpm"*/ |
|
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
44 | #include "pixmaps/cancel.xpm" |
|
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
45 | #include "pixmaps/tmp_send.xpm" |
|
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
46 | #include "pixmaps/gnome_add.xpm" |
|
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
47 | #include "pixmaps/gnome_remove.xpm" |
|
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
48 | #include "pixmaps/block.xpm" |
|
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
49 | #include "pixmaps/warn.xpm" |
|
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
50 | #include "pixmaps/tb_search.xpm" |
|
604
a20b54408619
[gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
535
diff
changeset
|
51 | |
|
1819
b82256590112
[gaim-migrate @ 1829]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
52 | GtkWidget *joinchat; |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
53 | static struct gaim_connection *joinchatgc; |
| 1 | 54 | static GtkWidget *invite; |
| 55 | static GtkWidget *inviteentry; | |
| 56 | static GtkWidget *invitemess; | |
|
1807
c75baa207eba
[gaim-migrate @ 1817]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1806
diff
changeset
|
57 | static GtkWidget *jc_vbox = NULL; |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
58 | static GList *chatentries = NULL; |
|
344
6dacf96cc000
[gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
59 | extern int state_lock; |
| 1 | 60 | |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
61 | GList *chats = NULL; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
62 | GtkWidget *all_chats = NULL; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
63 | GtkWidget *chat_notebook = NULL; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
64 | |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
65 | static char *ignored(struct conversation *b, char *who) |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
66 | { |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
67 | GList *ignore = b->ignored; |
| 3762 | 68 | |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
69 | while (ignore) { |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
70 | char *ign = ignore->data; |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
71 | if (!g_strcasecmp(who, ign)) |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
72 | return ign; |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
73 | if (*ign == '+' && !g_strcasecmp(who, ign + 1)) |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
74 | return ign; |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
75 | if (*ign == '@') { |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
76 | ign++; |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
77 | if (*ign == '+' && !g_strcasecmp(who, ign + 1)) |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
78 | return ign; |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
79 | if (*ign != '+' && !g_strcasecmp(who, ign)) |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
80 | return ign; |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
81 | } |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
82 | ignore = ignore->next; |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
83 | } |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
84 | return NULL; |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
85 | } |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
86 | |
| 1806 | 87 | |
| 1 | 88 | static void destroy_join_chat() |
| 89 | { | |
| 90 | if (joinchat) | |
| 91 | gtk_widget_destroy(joinchat); | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
92 | joinchat = NULL; |
| 1 | 93 | } |
| 94 | ||
| 95 | static void destroy_invite() | |
| 96 | { | |
| 97 | if (invite) | |
| 98 | gtk_widget_destroy(invite); | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
99 | invite = NULL; |
| 1 | 100 | } |
| 101 | ||
| 102 | ||
|
1819
b82256590112
[gaim-migrate @ 1829]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
103 | void do_join_chat() |
| 1 | 104 | { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
105 | if (joinchat) { |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
106 | GList *data = NULL; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
107 | GList *tmp = chatentries; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
108 | int *ival; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
109 | char *sval; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
110 | while (tmp) { |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
111 | if (gtk_object_get_user_data(tmp->data)) { |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
112 | ival = g_new0(int, 1); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
113 | *ival = gtk_spin_button_get_value_as_int(tmp->data); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
114 | data = g_list_append(data, ival); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
115 | } else { |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
116 | sval = g_strdup(gtk_entry_get_text(tmp->data)); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
117 | data = g_list_append(data, sval); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
118 | } |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
119 | tmp = tmp->next; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
120 | } |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
121 | serv_join_chat(joinchatgc, data); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
122 | |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
123 | tmp = data; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
124 | while (tmp) { |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
125 | g_free(tmp->data); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
126 | tmp = tmp->next; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
127 | } |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
128 | g_list_free(data); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
129 | |
| 1 | 130 | gtk_widget_destroy(joinchat); |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
131 | if (chatentries) |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
132 | g_list_free(chatentries); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
133 | chatentries = NULL; |
| 1 | 134 | } |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
135 | joinchat = NULL; |
| 1 | 136 | } |
| 137 | ||
| 1806 | 138 | static void rebuild_jc() |
| 139 | { | |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
140 | GList *list, *tmp; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
141 | struct proto_chat_entry *pce; |
|
2289
0af7cf95a25d
[gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2268
diff
changeset
|
142 | gboolean focus = TRUE; |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
143 | |
| 1806 | 144 | if (!joinchatgc) |
| 145 | return; | |
| 146 | ||
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
147 | while (GTK_BOX(jc_vbox)->children) |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
148 | gtk_container_remove(GTK_CONTAINER(jc_vbox), |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
149 | ((GtkBoxChild *)GTK_BOX(jc_vbox)->children->data)->widget); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
150 | if (chatentries) |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
151 | g_list_free(chatentries); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
152 | chatentries = NULL; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
153 | |
|
2662
9201ea07c91e
[gaim-migrate @ 2675]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2634
diff
changeset
|
154 | tmp = list = joinchatgc->prpl->chat_info(joinchatgc); |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
155 | while (list) { |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
156 | GtkWidget *label; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
157 | GtkWidget *rowbox; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
158 | pce = list->data; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
159 | |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
160 | rowbox = gtk_hbox_new(FALSE, 5); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
161 | gtk_box_pack_start(GTK_BOX(jc_vbox), rowbox, TRUE, TRUE, 0); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
162 | gtk_widget_show(rowbox); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
163 | |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
164 | label = gtk_label_new(pce->label); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
165 | gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
166 | gtk_widget_show(label); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
167 | |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
168 | if (pce->is_int) { |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
169 | GtkObject *adjust; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
170 | GtkWidget *spin; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
171 | adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, 1, 10, 10); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
172 | spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
173 | gtk_object_set_user_data(GTK_OBJECT(spin), (void *)1); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
174 | chatentries = g_list_append(chatentries, spin); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
175 | gtk_widget_set_usize(spin, 50, -1); |
|
2346
3c22ab08c67e
[gaim-migrate @ 2359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2345
diff
changeset
|
176 | gtk_box_pack_end(GTK_BOX(rowbox), spin, FALSE, FALSE, 0); |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
177 | gtk_widget_show(spin); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
178 | } else { |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
179 | GtkWidget *entry; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
180 | entry = gtk_entry_new(); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
181 | chatentries = g_list_append(chatentries, entry); |
|
2346
3c22ab08c67e
[gaim-migrate @ 2359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2345
diff
changeset
|
182 | gtk_box_pack_end(GTK_BOX(rowbox), entry, FALSE, FALSE, 0); |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
183 | if (pce->def) |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
184 | gtk_entry_set_text(GTK_ENTRY(entry), pce->def); |
|
2289
0af7cf95a25d
[gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2268
diff
changeset
|
185 | if (focus) { |
|
0af7cf95a25d
[gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2268
diff
changeset
|
186 | gtk_widget_grab_focus(entry); |
|
0af7cf95a25d
[gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2268
diff
changeset
|
187 | focus = FALSE; |
|
0af7cf95a25d
[gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2268
diff
changeset
|
188 | } |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
189 | gtk_signal_connect(GTK_OBJECT(entry), "activate", |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
190 | GTK_SIGNAL_FUNC(do_join_chat), NULL); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
191 | gtk_widget_show(entry); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
192 | } |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
193 | |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
194 | g_free(pce); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
195 | list = list->next; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
196 | } |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2199
diff
changeset
|
197 | g_list_free(tmp); |
| 1806 | 198 | } |
| 199 | ||
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
200 | static void joinchat_choose(GtkWidget *w, struct gaim_connection *g) |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
201 | { |
| 1806 | 202 | if (joinchatgc == g) |
| 203 | return; | |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
204 | joinchatgc = g; |
| 1806 | 205 | rebuild_jc(); |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
206 | } |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
207 | |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
208 | static void create_joinchat_menu(GtkWidget *box) |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
209 | { |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
210 | GtkWidget *optmenu; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
211 | GtkWidget *menu; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
212 | GtkWidget *opt; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
213 | GSList *c = connections; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
214 | struct gaim_connection *g; |
|
1235
c8d6eef4edce
[gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1228
diff
changeset
|
215 | char buf[2048]; |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
216 | |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
217 | optmenu = gtk_option_menu_new(); |
| 1210 | 218 | gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 0); |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
219 | |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
220 | menu = gtk_menu_new(); |
|
1793
3e018c445885
[gaim-migrate @ 1803]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1780
diff
changeset
|
221 | joinchatgc = NULL; |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
222 | |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
223 | while (c) { |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
224 | g = (struct gaim_connection *)c->data; |
|
1356
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
225 | c = c->next; |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
226 | if (!g->prpl->join_chat) |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
227 | continue; |
|
1793
3e018c445885
[gaim-migrate @ 1803]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1780
diff
changeset
|
228 | if (!joinchatgc) |
|
3e018c445885
[gaim-migrate @ 1803]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1780
diff
changeset
|
229 | joinchatgc = g; |
| 3572 | 230 | g_snprintf(buf, sizeof buf, "%s (%s)", g->username, g->prpl->name); |
|
1235
c8d6eef4edce
[gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1228
diff
changeset
|
231 | opt = gtk_menu_item_new_with_label(buf); |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
232 | gtk_object_set_user_data(GTK_OBJECT(opt), g); |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
233 | gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(joinchat_choose), g); |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
234 | gtk_menu_append(GTK_MENU(menu), opt); |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
235 | gtk_widget_show(opt); |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
236 | } |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
237 | |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
238 | gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
239 | gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 0); |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
240 | } |
| 1 | 241 | |
| 242 | void join_chat() | |
| 243 | { | |
| 1210 | 244 | GtkWidget *mainbox; |
| 245 | GtkWidget *frame; | |
| 246 | GtkWidget *fbox; | |
| 247 | GtkWidget *rowbox; | |
| 1 | 248 | GtkWidget *bbox; |
| 1210 | 249 | GtkWidget *join; |
| 250 | GtkWidget *cancel; | |
| 251 | GtkWidget *label; | |
|
1356
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
252 | GSList *c = connections; |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
253 | struct gaim_connection *gc = NULL; |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
254 | |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
255 | while (c) { |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
256 | gc = c->data; |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
257 | if (gc->prpl->join_chat) |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
258 | break; |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
259 | gc = NULL; |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
260 | c = c->next; |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
261 | } |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
262 | if (gc == NULL) { |
|
1358
a6a2a745bf67
[gaim-migrate @ 1368]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1356
diff
changeset
|
263 | do_error_dialog("You are not currently signed on with any protocols that have " |
| 3427 | 264 | "the ability to chat.", NULL, GAIM_ERROR); |
|
1356
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
265 | return; |
|
b67d26ed9b37
[gaim-migrate @ 1366]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1343
diff
changeset
|
266 | } |
| 456 | 267 | |
| 1 | 268 | if (!joinchat) { |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2699
diff
changeset
|
269 | GAIM_DIALOG(joinchat); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
3986
diff
changeset
|
270 | gtk_window_set_role(GTK_WINDOW(joinchat), "joinchat"); |
| 1210 | 271 | gtk_window_set_policy(GTK_WINDOW(joinchat), FALSE, TRUE, TRUE); |
|
834
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
272 | gtk_widget_realize(joinchat); |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
273 | gtk_signal_connect(GTK_OBJECT(joinchat), "delete_event", |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
274 | GTK_SIGNAL_FUNC(destroy_join_chat), joinchat); |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
275 | gtk_window_set_title(GTK_WINDOW(joinchat), _("Join Chat")); |
| 1 | 276 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
277 | mainbox = gtk_vbox_new(FALSE, 5); |
| 1210 | 278 | gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5); |
| 279 | gtk_container_add(GTK_CONTAINER(joinchat), mainbox); | |
| 456 | 280 | |
| 1211 | 281 | frame = gtk_frame_new(_("Buddy Chat")); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
282 | gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
283 | |
| 1210 | 284 | fbox = gtk_vbox_new(FALSE, 5); |
| 285 | gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); | |
| 286 | gtk_container_add(GTK_CONTAINER(frame), fbox); | |
| 456 | 287 | |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1018
diff
changeset
|
288 | #ifndef NO_MULTI |
| 1210 | 289 | rowbox = gtk_hbox_new(FALSE, 5); |
| 290 | gtk_box_pack_start(GTK_BOX(fbox), rowbox, TRUE, TRUE, 0); | |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
291 | |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
292 | label = gtk_label_new(_("Join Chat As:")); |
| 1210 | 293 | gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
294 | |
| 1210 | 295 | create_joinchat_menu(rowbox); |
| 1806 | 296 | |
| 297 | { | |
| 298 | GtkWidget *tmp = fbox; | |
| 299 | fbox = gtk_vbox_new(FALSE, 5); | |
| 300 | gtk_container_add(GTK_CONTAINER(tmp), fbox); | |
| 301 | gtk_container_set_border_width(GTK_CONTAINER(fbox), 0); | |
| 302 | jc_vbox = fbox; | |
| 303 | } | |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1018
diff
changeset
|
304 | #else |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1018
diff
changeset
|
305 | joinchatgc = connections->data; |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1018
diff
changeset
|
306 | #endif |
| 1806 | 307 | rebuild_jc(); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
308 | /* buttons */ |
|
692
38c3f73d6230
[gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
666
diff
changeset
|
309 | |
| 1210 | 310 | bbox = gtk_hbox_new(FALSE, 5); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
311 | gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); |
| 1210 | 312 | |
| 313 | cancel = picture_button(joinchat, _("Cancel"), cancel_xpm); | |
| 314 | gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); | |
| 315 | gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
316 | GTK_SIGNAL_FUNC(destroy_join_chat), joinchat); |
| 1 | 317 | |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
318 | join = picture_button(joinchat, _("Join"), join_xpm); |
| 1210 | 319 | gtk_box_pack_end(GTK_BOX(bbox), join, FALSE, FALSE, 0); |
|
1819
b82256590112
[gaim-migrate @ 1829]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1815
diff
changeset
|
320 | gtk_signal_connect(GTK_OBJECT(join), "clicked", GTK_SIGNAL_FUNC(do_join_chat), NULL); |
| 1 | 321 | } |
| 1210 | 322 | gtk_widget_show_all(joinchat); |
| 1 | 323 | } |
| 324 | ||
| 325 | ||
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
326 | static void do_invite(GtkWidget *w, struct conversation *b) |
| 1 | 327 | { |
| 3466 | 328 | const char *buddy; |
| 329 | const char *mess; | |
| 1 | 330 | |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
331 | if (!b->is_chat) { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
332 | debug_printf("do_invite: expecting chat, got IM\n"); |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
333 | return; |
|
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
334 | } |
|
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
335 | |
| 2252 | 336 | buddy = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(inviteentry)->entry)); |
| 1 | 337 | mess = gtk_entry_get_text(GTK_ENTRY(invitemess)); |
| 338 | ||
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
339 | if (invite) { |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
340 | serv_chat_invite(b->gc, b->id, mess, buddy); |
| 1 | 341 | gtk_widget_destroy(invite); |
| 342 | } | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
343 | invite = NULL; |
| 1 | 344 | } |
| 345 | ||
| 346 | ||
| 2252 | 347 | GList *generate_invite_user_names(struct gaim_connection *gc) |
| 348 | { | |
| 349 | GSList *grp; | |
| 350 | GSList *bl; | |
| 351 | struct group *g; | |
| 352 | struct buddy *buddy; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
353 | |
|
2257
fd3ceeea0d8e
[gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2256
diff
changeset
|
354 | static GList *tmp = NULL; |
|
fd3ceeea0d8e
[gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2256
diff
changeset
|
355 | |
|
fd3ceeea0d8e
[gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2256
diff
changeset
|
356 | if (tmp) |
|
fd3ceeea0d8e
[gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2256
diff
changeset
|
357 | g_list_free(tmp); |
|
2268
866399e75706
[gaim-migrate @ 2278]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2257
diff
changeset
|
358 | tmp = NULL; |
| 2252 | 359 | |
| 360 | tmp = g_list_append(tmp, ""); | |
| 361 | ||
| 362 | if (gc) { | |
| 363 | grp = gc->groups; | |
| 364 | ||
| 365 | while (grp) { | |
| 366 | g = (struct group *)grp->data; | |
| 367 | ||
| 368 | bl = g->members; | |
| 369 | ||
| 370 | while (bl) { | |
| 371 | buddy = (struct buddy *)bl->data; | |
| 372 | ||
| 373 | if (buddy->present) | |
|
2257
fd3ceeea0d8e
[gaim-migrate @ 2267]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2256
diff
changeset
|
374 | tmp = g_list_append(tmp, buddy->name); |
| 2252 | 375 | |
| 376 | bl = g_slist_next(bl); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
377 | } |
| 2252 | 378 | |
| 379 | grp = g_slist_next(grp); | |
| 380 | } | |
| 381 | } | |
| 382 | ||
| 383 | return tmp; | |
| 384 | ||
| 385 | } | |
| 1 | 386 | |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
387 | void invite_callback(GtkWidget *w, struct conversation *b) |
| 1 | 388 | { |
| 389 | GtkWidget *cancel; | |
| 390 | GtkWidget *invite_btn; | |
| 391 | GtkWidget *label; | |
| 392 | GtkWidget *bbox; | |
| 393 | GtkWidget *vbox; | |
| 2252 | 394 | GtkWidget *table; |
| 395 | GtkWidget *frame; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
396 | |
| 1 | 397 | if (!invite) { |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2699
diff
changeset
|
398 | GAIM_DIALOG(invite); |
| 2252 | 399 | gtk_widget_realize(invite); |
| 400 | ||
| 401 | cancel = picture_button(invite, _("Cancel"), cancel_xpm); | |
| 402 | invite_btn = picture_button(invite, _("Invite"), join_xpm); | |
| 403 | inviteentry = gtk_combo_new(); | |
| 1 | 404 | invitemess = gtk_entry_new(); |
| 2252 | 405 | frame = gtk_frame_new(_("Invite")); |
| 406 | table = gtk_table_new(2, 2, FALSE); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
407 | |
| 2252 | 408 | gtk_table_set_row_spacings(GTK_TABLE(table), 5); |
| 409 | gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 410 | gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
411 | |
| 2252 | 412 | gtk_container_set_border_width(GTK_CONTAINER(frame), 5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
413 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
414 | /* Now we should fill out all of the names */ |
| 2252 | 415 | gtk_combo_set_popdown_strings(GTK_COMBO(inviteentry), generate_invite_user_names(b->gc)); |
| 1 | 416 | |
| 2252 | 417 | vbox = gtk_vbox_new(FALSE, 0); |
| 418 | gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); | |
| 419 | gtk_container_add(GTK_CONTAINER(frame), table); | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
420 | |
| 2252 | 421 | label = gtk_label_new(_("Buddy")); |
| 422 | gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5); | |
| 423 | gtk_widget_show(label); | |
| 424 | gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); | |
| 425 | ||
| 426 | label = gtk_label_new(_("Message")); | |
| 427 | gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5); | |
| 1 | 428 | gtk_widget_show(label); |
| 2252 | 429 | gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); |
| 430 | ||
| 431 | /* Now the right side of the table */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
432 | gtk_table_attach(GTK_TABLE(table), inviteentry, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
433 | 0); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
434 | gtk_table_attach(GTK_TABLE(table), invitemess, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0, |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
435 | 0); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
436 | |
| 2252 | 437 | /* And now for the button box */ |
| 438 | bbox = gtk_hbox_new(FALSE, 10); | |
| 439 | gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); | |
| 440 | ||
| 441 | gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); | |
| 442 | gtk_box_pack_end(GTK_BOX(bbox), invite_btn, FALSE, FALSE, 0); | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
443 | |
| 1 | 444 | /* Handle closes right */ |
| 445 | gtk_signal_connect(GTK_OBJECT(invite), "delete_event", | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
446 | GTK_SIGNAL_FUNC(destroy_invite), invite); |
| 1 | 447 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
448 | gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_invite), b); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
449 | gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(do_invite), b); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
450 | gtk_signal_connect(GTK_OBJECT(GTK_ENTRY(GTK_COMBO(inviteentry)->entry)), "activate", |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
451 | GTK_SIGNAL_FUNC(do_invite), b); |
| 2252 | 452 | |
| 1 | 453 | /* Finish up */ |
| 2252 | 454 | gtk_widget_set_usize(GTK_WIDGET(invite), 550, 115); |
| 1 | 455 | gtk_widget_show(invite_btn); |
| 456 | gtk_widget_show(cancel); | |
| 457 | gtk_widget_show(inviteentry); | |
| 458 | gtk_widget_show(invitemess); | |
| 2252 | 459 | gtk_widget_show(vbox); |
| 1 | 460 | gtk_widget_show(bbox); |
| 2252 | 461 | gtk_widget_show(table); |
| 462 | gtk_widget_show(frame); | |
| 463 | gtk_window_set_title(GTK_WINDOW(invite), _("Gaim - Invite Buddy Into Chat Room")); | |
| 2253 | 464 | gtk_window_set_focus(GTK_WINDOW(invite), GTK_WIDGET(GTK_COMBO(inviteentry)->entry)); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
465 | gtk_container_add(GTK_CONTAINER(invite), vbox); |
| 2252 | 466 | |
| 1 | 467 | |
| 468 | } | |
| 469 | gtk_widget_show(invite); | |
| 470 | } | |
| 471 | ||
| 2385 | 472 | void tab_complete(struct conversation *c) |
| 473 | { | |
| 3790 | 474 | GtkTextIter cursor, word_start, start_buffer; |
| 475 | int start; | |
| 2385 | 476 | int most_matched = -1; |
| 477 | char *entered, *partial = NULL; | |
| 478 | char *text; | |
| 479 | GList *matches = NULL; | |
| 3790 | 480 | GList *nicks = NULL; |
| 481 | ||
| 482 | gtk_text_buffer_get_start_iter(c->entry_buffer, &start_buffer); | |
| 483 | gtk_text_buffer_get_iter_at_mark(c->entry_buffer, &cursor, | |
| 484 | gtk_text_buffer_get_insert(c->entry_buffer)); | |
| 485 | word_start = cursor; | |
| 2385 | 486 | |
| 487 | /* if there's nothing there just return */ | |
| 3790 | 488 | if (!gtk_text_iter_compare(&cursor, &start_buffer)) |
| 2385 | 489 | return; |
| 490 | ||
| 3790 | 491 | text = gtk_text_buffer_get_text(c->entry_buffer, &start_buffer, &cursor, FALSE); |
| 2385 | 492 | |
| 493 | /* if we're at the end of ": " we need to move back 2 spaces */ | |
| 3790 | 494 | start = strlen(text)-1; |
| 495 | if (strlen(text)>=2 && !strncmp(&text[start-1], ": ", 2)) { | |
| 496 | gtk_text_iter_backward_chars(&word_start, 2); | |
| 497 | } | |
| 498 | ||
| 2385 | 499 | /* find the start of the word that we're tabbing */ |
| 3790 | 500 | while (start >= 0 && text[start] != ' ') { |
| 501 | gtk_text_iter_backward_char(&word_start); | |
| 2385 | 502 | start--; |
| 3790 | 503 | } |
| 504 | g_free(text); | |
| 2385 | 505 | |
| 3790 | 506 | entered = gtk_text_buffer_get_text(c->entry_buffer, &word_start, &cursor, FALSE); |
| 2385 | 507 | if (chat_options & OPT_CHAT_OLD_STYLE_TAB) { |
| 508 | if (strlen(entered) >= 2 && !strncmp(": ", entered + strlen(entered) - 2, 2)) | |
| 509 | entered[strlen(entered) - 2] = 0; | |
| 510 | } | |
| 3790 | 511 | |
| 2385 | 512 | if (!strlen(entered)) { |
| 3790 | 513 | g_free(entered); |
| 2385 | 514 | return; |
| 515 | } | |
| 516 | ||
| 517 | debug_printf("checking tab-completion for %s\n", entered); | |
| 518 | ||
| 3790 | 519 | nicks = c->in_room; |
| 2385 | 520 | while (nicks) { |
| 521 | char *nick = nicks->data; | |
| 522 | /* this checks to see if the current nick could be a completion */ | |
| 523 | if (g_strncasecmp(nick, entered, strlen(entered))) { | |
| 524 | if (nick[0] != '+' && nick[0] != '@') { | |
| 525 | nicks = nicks->next; | |
| 526 | continue; | |
| 527 | } | |
| 528 | if (g_strncasecmp(nick + 1, entered, strlen(entered))) { | |
|
2386
1b79255087be
[gaim-migrate @ 2399]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2385
diff
changeset
|
529 | if (nick[0] != '@' || nick[1] != '+') { |
| 2385 | 530 | nicks = nicks->next; |
| 531 | continue; | |
| 532 | } | |
| 533 | if (g_strncasecmp(nick + 2, entered, strlen(entered))) { | |
| 534 | nicks = nicks->next; | |
| 535 | continue; | |
| 536 | } | |
| 537 | else | |
| 538 | nick += 2; | |
| 539 | } else | |
| 540 | nick++; | |
| 541 | } | |
| 542 | /* if we're here, it's a possible completion */ | |
| 543 | debug_printf("possible completion: %s\n", nick); | |
| 544 | ||
| 545 | /* if we're doing old-style, just fill in the completion */ | |
| 546 | if (chat_options & OPT_CHAT_OLD_STYLE_TAB) { | |
| 3790 | 547 | gtk_text_buffer_delete(c->entry_buffer, &word_start, &cursor); |
| 2385 | 548 | if (strlen(nick) == strlen(entered)) { |
| 549 | nicks = nicks->next ? nicks->next : c->in_room; | |
| 550 | nick = nicks->data; | |
| 551 | if (*nick == '@') | |
| 552 | nick++; | |
| 553 | if (*nick == '+') | |
| 554 | nick++; | |
| 555 | } | |
| 556 | ||
| 3790 | 557 | gtk_text_buffer_get_start_iter(c->entry_buffer, &start_buffer); |
| 558 | gtk_text_buffer_get_iter_at_mark(c->entry_buffer, &cursor, | |
| 559 | gtk_text_buffer_get_insert(c->entry_buffer)); | |
| 560 | if (!gtk_text_iter_compare(&cursor, &start_buffer)) { | |
| 2385 | 561 | char *tmp = g_strdup_printf("%s: ", nick); |
| 3790 | 562 | gtk_text_buffer_insert_at_cursor(c->entry_buffer, tmp, -1); |
| 2385 | 563 | g_free(tmp); |
| 564 | } else { | |
| 3790 | 565 | gtk_text_buffer_insert_at_cursor(c->entry_buffer, nick, -1); |
| 2385 | 566 | } |
| 3790 | 567 | g_free(entered); |
| 2385 | 568 | return; |
| 569 | } | |
| 570 | ||
| 571 | /* we're only here if we're doing new style */ | |
| 572 | if (most_matched == -1) { | |
| 573 | /* this will only get called once, since from now on most_matched is >= 0 */ | |
| 574 | most_matched = strlen(nick); | |
| 575 | partial = g_strdup(nick); | |
| 576 | } else if (most_matched) { | |
| 577 | while (g_strncasecmp(nick, partial, most_matched)) | |
| 578 | most_matched--; | |
| 579 | partial[most_matched] = 0; | |
| 580 | } | |
| 581 | matches = g_list_append(matches, nick); | |
| 582 | ||
| 583 | nicks = nicks->next; | |
| 584 | } | |
| 585 | /* we're only here if we're doing new style */ | |
| 586 | ||
| 587 | /* if there weren't any matches, return */ | |
| 588 | if (!matches) { | |
| 589 | /* if matches isn't set partials won't be either */ | |
| 3790 | 590 | g_free(entered); |
| 2385 | 591 | return; |
| 592 | } | |
| 593 | ||
| 3790 | 594 | gtk_text_buffer_delete(c->entry_buffer, &word_start, &cursor); |
| 2385 | 595 | if (!matches->next) { |
| 596 | /* there was only one match. fill it in. */ | |
| 3790 | 597 | gtk_text_buffer_get_start_iter(c->entry_buffer, &start_buffer); |
| 598 | gtk_text_buffer_get_iter_at_mark(c->entry_buffer, &cursor, | |
| 599 | gtk_text_buffer_get_insert(c->entry_buffer)); | |
| 600 | if (!gtk_text_iter_compare(&cursor, &start_buffer)) { | |
| 2385 | 601 | char *tmp = g_strdup_printf("%s: ", (char *)matches->data); |
| 3790 | 602 | gtk_text_buffer_insert_at_cursor(c->entry_buffer, tmp, -1); |
| 2385 | 603 | g_free(tmp); |
| 604 | } else { | |
| 3790 | 605 | gtk_text_buffer_insert_at_cursor(c->entry_buffer, matches->data, -1); |
| 2385 | 606 | } |
| 607 | matches = g_list_remove(matches, matches->data); | |
| 608 | } else { | |
| 609 | /* there were lots of matches, fill in as much as possible and display all of them */ | |
| 610 | char *addthis = g_malloc0(1); | |
| 611 | while (matches) { | |
| 612 | char *tmp = addthis; | |
| 613 | addthis = g_strconcat(tmp, matches->data, " ", NULL); | |
| 614 | g_free(tmp); | |
| 615 | matches = g_list_remove(matches, matches->data); | |
| 616 | } | |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2854
diff
changeset
|
617 | write_to_conv(c, addthis, WFLAG_NOLOG, NULL, time(NULL), -1); |
| 3790 | 618 | gtk_text_buffer_insert_at_cursor(c->entry_buffer, partial, -1); |
| 2385 | 619 | g_free(addthis); |
| 620 | } | |
| 3790 | 621 | |
| 622 | g_free(entered); | |
| 2385 | 623 | g_free(partial); |
| 624 | } | |
| 625 | ||
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2854
diff
changeset
|
626 | gboolean meify(char *message, int len) |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
627 | { |
|
415
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
628 | /* read /me-ify : if the message (post-HTML) starts with /me, remove |
|
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
629 | * the "/me " part of it (including that space) and return TRUE */ |
|
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
630 | char *c = message; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
631 | int inside_HTML = 0; /* i really don't like descriptive names */ |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
632 | if (!c) |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
633 | return FALSE; /* um... this would be very bad if this happens */ |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2854
diff
changeset
|
634 | if (len == -1) |
|
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2854
diff
changeset
|
635 | len = strlen(message); |
|
415
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
636 | while (*c) { |
|
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
637 | if (inside_HTML) { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
638 | if (*c == '>') |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
639 | inside_HTML = 0; |
|
415
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
640 | } else { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
641 | if (*c == '<') |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
642 | inside_HTML = 1; |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
643 | else |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
644 | break; |
|
415
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
645 | } |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
646 | c++; /* i really don't like c++ either */ |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2854
diff
changeset
|
647 | len--; |
|
415
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
648 | } |
| 3762 | 649 | /* k, so now we've gotten past all the HTML who. */ |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
650 | if (!*c) |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
651 | return FALSE; |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2017
diff
changeset
|
652 | if (!g_strncasecmp(c, "/me ", 4)) { |
|
2860
5ccae58f45f0
[gaim-migrate @ 2873]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2856
diff
changeset
|
653 | memmove(c, c + 4, len - 3); |
|
415
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
654 | return TRUE; |
|
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
655 | } else |
|
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
656 | return FALSE; |
|
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
657 | } |
|
3ee978f88b41
[gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
658 | |
|
2374
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
659 | static gboolean find_nick(struct gaim_connection *gc, char *message) |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
660 | { |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
661 | char *msg = g_strdup(message), *who, *p; |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
662 | int n; |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
663 | g_strdown(msg); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
664 | |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
665 | who = g_strdup(gc->username); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
666 | n = strlen(who); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
667 | g_strdown(who); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
668 | |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
669 | if ((p = strstr(msg, who)) != NULL) { |
|
2384
c7249c80fbc4
[gaim-migrate @ 2397]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2374
diff
changeset
|
670 | if (((p == msg) || !isalnum(*(p - 1))) && !isalnum(*(p + n))) { |
|
2374
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
671 | g_free(who); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
672 | g_free(msg); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
673 | return TRUE; |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
674 | } |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
675 | } |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
676 | g_free(who); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
677 | |
|
2390
bd1730def780
[gaim-migrate @ 2403]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2386
diff
changeset
|
678 | if (!g_strcasecmp(gc->username, gc->displayname)) { |
|
2374
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
679 | g_free(msg); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
680 | return FALSE; |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
681 | } |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
682 | |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
683 | who = g_strdup(gc->displayname); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
684 | n = strlen(who); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
685 | g_strdown(who); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
686 | |
| 3944 | 687 | if (n > 0 && (p = strstr(msg, who)) != NULL) { |
|
2384
c7249c80fbc4
[gaim-migrate @ 2397]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2374
diff
changeset
|
688 | if (((p == msg) || !isalnum(*(p - 1))) && !isalnum(*(p + n))) { |
|
2374
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
689 | g_free(who); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
690 | g_free(msg); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
691 | return TRUE; |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
692 | } |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
693 | } |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
694 | g_free(who); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
695 | g_free(msg); |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
696 | return FALSE; |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
697 | } |
|
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
698 | |
| 1764 | 699 | void chat_write(struct conversation *b, char *who, int flag, char *message, time_t mtime) |
| 1 | 700 | { |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
701 | char *str; |
| 1 | 702 | |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
703 | if (!b->is_chat) { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
704 | debug_printf("chat_write: expecting chat, got IM\n"); |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
705 | return; |
|
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
706 | } |
| 1 | 707 | |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
708 | if (ignored(b, who)) |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
709 | return; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
710 | |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
711 | if (!(flag & WFLAG_WHISPER)) { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
712 | str = g_strdup(normalize (who)); |
|
2374
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
713 | if (!g_strcasecmp(str, normalize(b->gc->username))) { |
|
3060
ec62758f47b3
[gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents:
2956
diff
changeset
|
714 | if (b->makesound) |
|
ec62758f47b3
[gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents:
2956
diff
changeset
|
715 | play_sound(SND_CHAT_YOU_SAY); |
|
2289
0af7cf95a25d
[gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2268
diff
changeset
|
716 | flag |= WFLAG_SEND; |
|
2374
5b3ff703c700
[gaim-migrate @ 2387]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2372
diff
changeset
|
717 | } else if (!g_strcasecmp(str, normalize(b->gc->displayname))) { |
|
3060
ec62758f47b3
[gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents:
2956
diff
changeset
|
718 | if (b->makesound) |
|
ec62758f47b3
[gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents:
2956
diff
changeset
|
719 | play_sound(SND_CHAT_YOU_SAY); |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
720 | flag |= WFLAG_SEND; |
|
371
12d85f4efaaa
[gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
368
diff
changeset
|
721 | } else { |
| 3224 | 722 | flag |= WFLAG_RECV; |
| 3228 | 723 | if (find_nick(b->gc, message)) |
| 3226 | 724 | flag |= WFLAG_NICK; |
|
371
12d85f4efaaa
[gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
368
diff
changeset
|
725 | } |
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
726 | g_free(str); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
727 | } |
| 1 | 728 | |
| 3226 | 729 | if (flag & WFLAG_RECV && b->makesound) { |
| 3227 | 730 | if (flag & WFLAG_NICK && (sound_options & OPT_SOUND_CHAT_NICK)) { |
| 3219 | 731 | play_sound(SND_CHAT_NICK); |
| 3226 | 732 | } else { |
| 3224 | 733 | play_sound(SND_CHAT_SAY); |
| 3226 | 734 | } |
| 3217 | 735 | } |
| 3367 | 736 | |
| 737 | if (chat_options & OPT_CHAT_COLORIZE) | |
| 738 | flag |= WFLAG_COLORIZE; | |
| 739 | write_to_conv(b, message, flag, who, mtime, -1); | |
| 1 | 740 | } |
| 741 | ||
|
1223
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
742 | static gint insertname(gconstpointer one, gconstpointer two) |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
743 | { |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
744 | const char *a = (const char *)one; |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
745 | const char *b = (const char *)two; |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
746 | |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
747 | if (*a == '@') { |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
748 | if (*b != '@') |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
749 | return -1; |
|
3312
2da2e0d7023b
[gaim-migrate @ 3330]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3250
diff
changeset
|
750 | return (strcasecmp(a + 1, b + 1)); |
|
1223
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
751 | } else if (*a == '+') { |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
752 | if (*b == '@') |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
753 | return 1; |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
754 | if (*b != '+') |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
755 | return -1; |
|
3312
2da2e0d7023b
[gaim-migrate @ 3330]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3250
diff
changeset
|
756 | return (strcasecmp(a + 1, b + 1)); |
|
1223
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
757 | } else { |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
758 | if (*b == '@' || *b == '+') |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
759 | return 1; |
|
3312
2da2e0d7023b
[gaim-migrate @ 3330]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3250
diff
changeset
|
760 | return strcasecmp(a, b); |
|
1223
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
761 | } |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
762 | } |
|
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
763 | |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
764 | static void chat_press_im(GtkObject *obj, struct conversation *b) |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
765 | { |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
766 | struct conversation *c; |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
767 | |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
768 | c = find_conversation(gtk_object_get_user_data(obj)); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
769 | |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
770 | if (c != NULL) |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
771 | gdk_window_show(c->window->window); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
772 | else { |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
773 | c = new_conversation(gtk_object_get_user_data(obj)); |
|
1898
695a31e4452b
[gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1860
diff
changeset
|
774 | set_convo_gc(c, b->gc); |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
775 | } |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
776 | } |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
777 | |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
778 | static void chat_press_ign(GtkWidget *obj, struct conversation *b) |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
779 | { |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
780 | ignore_callback(obj, b); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
781 | } |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
782 | |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
783 | static void chat_press_info(GtkObject *obj, struct conversation *b) |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
784 | { |
| 2956 | 785 | if (b->gc) { |
| 786 | /* | |
| 787 | * If there are special needs for getting info on users in | |
| 788 | * buddy chat "rooms"... | |
| 789 | */ | |
| 790 | if(b->gc->prpl->get_cb_info != NULL) { | |
| 791 | b->gc->prpl->get_cb_info(b->gc, b->id, gtk_object_get_user_data(obj)); | |
| 792 | } else { | |
| 793 | b->gc->prpl->get_info(b->gc, gtk_object_get_user_data(obj)); | |
| 794 | } | |
| 795 | } | |
| 796 | } | |
| 797 | ||
| 798 | ||
| 799 | static void chat_press_away(GtkObject *obj, struct conversation *b) | |
| 800 | { | |
| 801 | if (b->gc) { | |
| 802 | /* | |
| 803 | * May want to expand this to work similarly to chat_press_info? | |
| 804 | */ | |
| 805 | if(b->gc->prpl->get_cb_away != NULL) { | |
| 806 | b->gc->prpl->get_cb_away(b->gc, b->id, gtk_object_get_user_data(obj)); | |
| 807 | } | |
| 808 | } | |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
809 | } |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
810 | |
| 3453 | 811 | /* Added by Jonas <jonas@birme.se> */ |
| 812 | static void chat_press_add(GtkObject *obj, struct conversation *c) | |
| 813 | { | |
| 814 | char *name = gtk_object_get_user_data(obj); | |
| 815 | struct buddy *b = find_buddy(c->gc, name); | |
| 816 | ||
| 817 | if (b) { | |
| 818 | show_confirm_del(c->gc, name); | |
| 819 | } else if (c->gc) | |
| 820 | show_add_buddy(c->gc, name, NULL, NULL); | |
| 821 | ||
| 822 | gtk_widget_grab_focus(c->entry); | |
| 823 | } | |
| 824 | /* End Jonas */ | |
| 825 | ||
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
826 | static gint right_click_chat(GtkObject *obj, GdkEventButton *event, struct conversation *b) |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
827 | { |
| 3762 | 828 | GtkTreePath *path; |
| 829 | int x; | |
| 830 | int y; | |
| 831 | GtkTreeIter iter; | |
| 832 | GtkTreeModel *mod; | |
| 833 | GtkTreeViewColumn *column; | |
| 834 | gchar *who; | |
| 835 | ||
| 836 | ||
| 837 | mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list)); | |
| 838 | ||
| 839 | gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(b->list), event->x, event->y, &path, &column, &x, &y); | |
| 840 | ||
| 841 | if (path == NULL) | |
| 3841 | 842 | return FALSE; |
| 3762 | 843 | |
| 844 | gtk_tree_selection_select_path(GTK_TREE_SELECTION(gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list))), path); | |
| 845 | gtk_tree_model_get_iter(GTK_TREE_MODEL(mod), &iter, path); | |
| 846 | gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &who, -1); | |
| 847 | ||
| 848 | if ((event->button == 1) && (event->type == GDK_2BUTTON_PRESS)) { | |
|
2854
45e56f3229ce
[gaim-migrate @ 2867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2845
diff
changeset
|
849 | struct conversation *c; |
| 3762 | 850 | |
| 851 | if ((c = find_conversation(who)) == NULL) | |
| 852 | c = new_conversation(who); | |
| 853 | ||
|
2854
45e56f3229ce
[gaim-migrate @ 2867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2845
diff
changeset
|
854 | set_convo_gc(c, b->gc); |
|
2845
21aae1ba83b9
[gaim-migrate @ 2858]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2843
diff
changeset
|
855 | } else if (event->button == 3 && event->type == GDK_BUTTON_PRESS) { |
|
3250
d167cdaf91f4
[gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3228
diff
changeset
|
856 | static GtkWidget *menu = NULL; |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
857 | GtkWidget *button; |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
858 | |
|
3250
d167cdaf91f4
[gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3228
diff
changeset
|
859 | /* |
|
d167cdaf91f4
[gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3228
diff
changeset
|
860 | * If a menu already exists, destroy it before creating a new one, |
|
d167cdaf91f4
[gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3228
diff
changeset
|
861 | * thus freeing-up the memory it occupied. |
|
d167cdaf91f4
[gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3228
diff
changeset
|
862 | */ |
| 3762 | 863 | |
|
3250
d167cdaf91f4
[gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3228
diff
changeset
|
864 | if(menu) |
|
d167cdaf91f4
[gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3228
diff
changeset
|
865 | gtk_widget_destroy(menu); |
|
d167cdaf91f4
[gaim-migrate @ 3268]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3228
diff
changeset
|
866 | |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
867 | menu = gtk_menu_new(); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
868 | |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
869 | button = gtk_menu_item_new_with_label(_("IM")); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
870 | gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_im), b); |
| 3762 | 871 | gtk_object_set_user_data(GTK_OBJECT(button), who); |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
872 | gtk_menu_append(GTK_MENU(menu), button); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
873 | gtk_widget_show(button); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
874 | |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
875 | if (ignored(b, gtk_object_get_user_data(obj))) |
|
2350
94cc09f218c0
[gaim-migrate @ 2363]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2346
diff
changeset
|
876 | button = gtk_menu_item_new_with_label(_("Un-Ignore")); |
|
94cc09f218c0
[gaim-migrate @ 2363]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2346
diff
changeset
|
877 | else |
|
94cc09f218c0
[gaim-migrate @ 2363]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2346
diff
changeset
|
878 | button = gtk_menu_item_new_with_label(_("Ignore")); |
| 3687 | 879 | |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
880 | gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_ign), b); |
| 3762 | 881 | gtk_object_set_user_data(GTK_OBJECT(button), who); |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
882 | gtk_menu_append(GTK_MENU(menu), button); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
883 | gtk_widget_show(button); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
884 | |
|
2208
bbb5b9d987c1
[gaim-migrate @ 2218]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2205
diff
changeset
|
885 | if (b->gc && b->gc->prpl->get_info) { |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
886 | button = gtk_menu_item_new_with_label(_("Info")); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
887 | gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
888 | GTK_SIGNAL_FUNC(chat_press_info), b); |
| 3762 | 889 | gtk_object_set_user_data(GTK_OBJECT(button), who); |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
890 | gtk_menu_append(GTK_MENU(menu), button); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
891 | gtk_widget_show(button); |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
892 | } |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
893 | |
| 2956 | 894 | if (b->gc && b->gc->prpl->get_cb_away) { |
| 895 | button = gtk_menu_item_new_with_label(_("Get Away Msg")); | |
| 896 | gtk_signal_connect(GTK_OBJECT(button), "activate", | |
| 897 | GTK_SIGNAL_FUNC(chat_press_away), b); | |
| 3762 | 898 | gtk_object_set_user_data(GTK_OBJECT(button), who); |
| 2956 | 899 | gtk_menu_append(GTK_MENU(menu), button); |
| 900 | gtk_widget_show(button); | |
| 901 | } | |
| 902 | ||
| 3453 | 903 | /* Added by Jonas <jonas@birme.se> */ |
| 904 | if (b->gc) { | |
| 3762 | 905 | if (find_buddy(b->gc, who)) |
| 3453 | 906 | button = gtk_menu_item_new_with_label(_("Remove")); |
| 907 | else | |
| 908 | button = gtk_menu_item_new_with_label(_("Add")); | |
| 909 | gtk_signal_connect(GTK_OBJECT(button), "activate", | |
| 910 | GTK_SIGNAL_FUNC(chat_press_add), b); | |
| 911 | gtk_object_set_user_data(GTK_OBJECT(button), | |
| 3762 | 912 | who); |
| 3453 | 913 | gtk_menu_append(GTK_MENU(menu), button); |
| 914 | gtk_widget_show(button); | |
| 915 | } | |
| 916 | /* End Jonas */ | |
| 917 | ||
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
918 | gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); |
| 3762 | 919 | |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
920 | return TRUE; |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
921 | } |
| 3762 | 922 | |
|
1398
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
923 | return TRUE; |
|
f1baeeb78bb1
[gaim-migrate @ 1408]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1390
diff
changeset
|
924 | } |
| 1 | 925 | |
| 2956 | 926 | /* |
| 927 | * Common code for adding a chat buddy to the list | |
| 928 | */ | |
| 929 | static void add_chat_buddy_common(struct conversation *b, char *name, int pos) | |
| 930 | { | |
| 3841 | 931 | GtkTreeIter iter; |
| 932 | GtkListStore *ls; | |
| 3762 | 933 | |
| 2956 | 934 | |
| 3841 | 935 | ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(b->list))); |
| 2956 | 936 | |
| 3841 | 937 | gtk_list_store_append(ls, &iter); |
| 938 | gtk_list_store_set(ls, &iter, 0, ignored(b, name) ? "X" : " ", 1, name, -1); | |
| 939 | gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), 1, GTK_SORT_ASCENDING); | |
| 2956 | 940 | } |
| 941 | ||
| 3708 | 942 | void add_chat_buddy(struct conversation *b, char *buddy, char *extra_msg) |
| 1 | 943 | { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
944 | char *name = g_strdup(buddy); |
|
612
5c05c50238e8
[gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
604
diff
changeset
|
945 | char tmp[BUF_LONG]; |
|
1223
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
946 | int pos; |
| 1 | 947 | |
| 3517 | 948 | plugin_event(event_chat_buddy_join, b->gc, b->id, name); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
949 | b->in_room = g_list_insert_sorted(b->in_room, name, insertname); |
|
1223
dd7afcf8f2e1
[gaim-migrate @ 1233]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1211
diff
changeset
|
950 | pos = g_list_index(b->in_room, name); |
| 1 | 951 | |
| 2956 | 952 | add_chat_buddy_common(b, name, pos); |
| 1 | 953 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
954 | g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(b->in_room), |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
955 | g_list_length(b->in_room) == 1 ? "person" : "people"); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
956 | gtk_label_set_text(GTK_LABEL(b->count), tmp); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
957 | |
|
3060
ec62758f47b3
[gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents:
2956
diff
changeset
|
958 | if (b->makesound) |
|
ec62758f47b3
[gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents:
2956
diff
changeset
|
959 | play_sound(SND_CHAT_JOIN); |
|
612
5c05c50238e8
[gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
604
diff
changeset
|
960 | |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
961 | if (chat_options & OPT_CHAT_LOGON) { |
| 3708 | 962 | if (!extra_msg) |
| 963 | g_snprintf(tmp, sizeof(tmp), _("%s entered the room."), name); | |
| 964 | else | |
| 965 | g_snprintf(tmp, sizeof(tmp), _("%s [<I>%s</I>] entered the room."), name, | |
| 966 | extra_msg); | |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2854
diff
changeset
|
967 | write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL), -1); |
|
612
5c05c50238e8
[gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
604
diff
changeset
|
968 | } |
| 1 | 969 | } |
| 970 | ||
| 971 | ||
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
972 | void rename_chat_buddy(struct conversation *b, char *old, char *new) |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
973 | { |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
974 | GList *names = b->in_room; |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
975 | char *name = g_strdup(new); |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
976 | char *ign; |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
977 | int pos; |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
978 | char tmp[BUF_LONG]; |
| 3762 | 979 | GtkTreeIter iter; |
| 980 | GtkTreeModel *mod; | |
| 981 | int f = 1; | |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
982 | |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
983 | while (names) { |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2017
diff
changeset
|
984 | if (!g_strcasecmp((char *)names->data, old)) { |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
985 | char *tmp2 = names->data; |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
986 | b->in_room = g_list_remove(b->in_room, names->data); |
| 3762 | 987 | |
| 988 | mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list)); | |
| 989 | ||
| 990 | if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mod), &iter)) | |
| 991 | break; | |
| 992 | ||
| 993 | while (f != 0) { | |
| 994 | gchar *val; | |
| 995 | ||
| 996 | gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &val, -1); | |
| 997 | ||
| 998 | ||
| 999 | if (!g_strcasecmp(old, val)) | |
| 1000 | gtk_list_store_remove(GTK_LIST_STORE(mod), &iter); | |
| 1001 | ||
| 1002 | f = gtk_tree_model_iter_next(GTK_TREE_MODEL(mod), &iter); | |
| 1003 | ||
| 1004 | g_free(val); | |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1005 | } |
| 3762 | 1006 | |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1007 | g_free(tmp2); |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1008 | break; |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1009 | } |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1010 | names = names->next; |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1011 | } |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1012 | |
|
2630
37e6e85c321d
[gaim-migrate @ 2643]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2625
diff
changeset
|
1013 | if (!names) { |
|
37e6e85c321d
[gaim-migrate @ 2643]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2625
diff
changeset
|
1014 | g_free(name); |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1015 | return; |
|
2630
37e6e85c321d
[gaim-migrate @ 2643]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2625
diff
changeset
|
1016 | } |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1017 | |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1018 | b->in_room = g_list_insert_sorted(b->in_room, name, insertname); |
|
1505
adc57f107914
[gaim-migrate @ 1515]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1504
diff
changeset
|
1019 | pos = g_list_index(b->in_room, name); |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1020 | |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1021 | ign = ignored(b, old); |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1022 | |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1023 | if (ign) { |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1024 | g_free(ign); |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1025 | b->ignored = g_list_remove(b->ignored, ign); |
|
2631
d6b85863554c
[gaim-migrate @ 2644]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2630
diff
changeset
|
1026 | |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1027 | /* we haven't added them yet. if we find them, don't add them again */ |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1028 | if (!ignored(b, new)) |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1029 | b->ignored = g_list_append(b->ignored, g_strdup(name)); |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1030 | |
|
2634
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1031 | } else { |
|
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1032 | if ((ign = ignored(b, new)) != NULL) { |
|
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1033 | /* if they weren't ignored and change to someone who is ignored, |
|
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1034 | * assume it's someone else. that may seem a little backwards but |
|
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1035 | * it's better when it *is* actually someone else. Sorry Sean. */ |
|
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1036 | g_free(ign); |
|
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1037 | b->ignored = g_list_remove(b->ignored, ign); |
|
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1038 | } |
|
3b16305c023b
[gaim-migrate @ 2647]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2632
diff
changeset
|
1039 | } |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1040 | |
| 2956 | 1041 | add_chat_buddy_common(b, name, pos); |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1042 | |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1043 | if (chat_options & OPT_CHAT_LOGON) { |
|
1735
4f5f223fca01
[gaim-migrate @ 1745]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1732
diff
changeset
|
1044 | g_snprintf(tmp, sizeof(tmp), _("%s is now known as %s"), old, new); |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2854
diff
changeset
|
1045 | write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL), -1); |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1046 | } |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1047 | } |
| 1 | 1048 | |
| 1049 | ||
|
2820
4e07191ca3d0
[gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
1050 | void remove_chat_buddy(struct conversation *b, char *buddy, char *reason) |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1051 | { |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1052 | GList *names = b->in_room; |
|
612
5c05c50238e8
[gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
604
diff
changeset
|
1053 | char tmp[BUF_LONG]; |
| 3762 | 1054 | GtkTreeIter iter; |
| 1055 | GtkTreeModel *mod; | |
| 1056 | int f = 1; | |
| 1 | 1057 | |
| 3517 | 1058 | plugin_event(event_chat_buddy_leave, b->gc, b->id, buddy); |
|
391
677e4414a83f
[gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
375
diff
changeset
|
1059 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1060 | while (names) { |
|
2048
4ac8b9622c9e
[gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2017
diff
changeset
|
1061 | if (!g_strcasecmp((char *)names->data, buddy)) { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1062 | b->in_room = g_list_remove(b->in_room, names->data); |
| 3762 | 1063 | |
| 1064 | mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list)); | |
| 1065 | ||
| 1066 | if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mod), &iter)) | |
| 1067 | break; | |
| 1068 | ||
| 1069 | while (f != 0) { | |
| 1070 | gchar *val; | |
| 1071 | ||
| 1072 | gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &val, -1); | |
| 1073 | ||
| 1074 | ||
| 1075 | if (!g_strcasecmp(buddy, val)) | |
| 1076 | gtk_list_store_remove(GTK_LIST_STORE(mod), &iter); | |
| 1077 | ||
| 1078 | f = gtk_tree_model_iter_next(GTK_TREE_MODEL(mod), &iter); | |
| 1079 | ||
| 1080 | g_free(val); | |
|
1053
e73b159a9047
[gaim-migrate @ 1063]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
1081 | } |
| 3762 | 1082 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1083 | break; |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1084 | } |
| 3762 | 1085 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1086 | names = names->next; |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1087 | } |
|
371
12d85f4efaaa
[gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
368
diff
changeset
|
1088 | |
|
1504
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1089 | if (!names) |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1090 | return; |
|
120bbdf576cd
[gaim-migrate @ 1514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1441
diff
changeset
|
1091 | |
|
2631
d6b85863554c
[gaim-migrate @ 2644]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2630
diff
changeset
|
1092 | /* don't remove them from ignored in case they re-enter */ |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1093 | g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(b->in_room), |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1094 | g_list_length(b->in_room) == 1 ? "person" : "people"); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1095 | gtk_label_set_text(GTK_LABEL(b->count), tmp); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1096 | |
|
3060
ec62758f47b3
[gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents:
2956
diff
changeset
|
1097 | if (b->makesound) |
|
ec62758f47b3
[gaim-migrate @ 3074]
Robert McQueen <robot101@debian.org>
parents:
2956
diff
changeset
|
1098 | play_sound(SND_CHAT_LEAVE); |
|
612
5c05c50238e8
[gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
604
diff
changeset
|
1099 | |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1100 | if (chat_options & OPT_CHAT_LOGON) { |
|
2820
4e07191ca3d0
[gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
1101 | if (reason && *reason) |
|
4e07191ca3d0
[gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
1102 | g_snprintf(tmp, sizeof(tmp), _("%s left the room (%s)."), buddy, reason); |
|
4e07191ca3d0
[gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
1103 | else |
|
4e07191ca3d0
[gaim-migrate @ 2833]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
1104 | g_snprintf(tmp, sizeof(tmp), _("%s left the room."), buddy); |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2854
diff
changeset
|
1105 | write_to_conv(b, tmp, WFLAG_SYSTEM, NULL, time(NULL), -1); |
|
612
5c05c50238e8
[gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
604
diff
changeset
|
1106 | } |
| 1 | 1107 | } |
| 1108 | ||
| 1109 | ||
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
1110 | void im_callback(GtkWidget *w, struct conversation *b) |
| 1 | 1111 | { |
| 3762 | 1112 | gchar *name; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1113 | struct conversation *c; |
| 3762 | 1114 | GtkTreeIter iter; |
| 1115 | GtkTreeModel *mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list)); | |
| 1116 | GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list)); | |
| 1 | 1117 | |
| 3762 | 1118 | if (gtk_tree_selection_get_selected(sel, NULL, &iter)) { |
| 1119 | gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &name, -1); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1120 | } else { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1121 | return; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1122 | } |
| 1 | 1123 | |
|
2663
f00c8e7d369e
[gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2662
diff
changeset
|
1124 | if (*name == '@') |
|
f00c8e7d369e
[gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2662
diff
changeset
|
1125 | name++; |
|
f00c8e7d369e
[gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2662
diff
changeset
|
1126 | if (*name == '+') |
|
f00c8e7d369e
[gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2662
diff
changeset
|
1127 | name++; |
|
f00c8e7d369e
[gaim-migrate @ 2676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2662
diff
changeset
|
1128 | |
| 1 | 1129 | c = find_conversation(name); |
| 1130 | ||
| 1131 | if (c != NULL) { | |
| 1132 | gdk_window_raise(c->window->window); | |
| 1133 | } else { | |
| 1134 | c = new_conversation(name); | |
| 1135 | } | |
| 1136 | ||
|
2391
131e391dad57
[gaim-migrate @ 2404]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents:
2390
diff
changeset
|
1137 | set_convo_gc(c, b->gc); |
| 1 | 1138 | } |
| 1139 | ||
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
1140 | void ignore_callback(GtkWidget *w, struct conversation *b) |
| 1 | 1141 | { |
| 3762 | 1142 | GtkTreeIter iter; |
| 1143 | GtkTreeModel *mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list)); | |
| 1144 | GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list)); | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1145 | char *name; |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1146 | char *ign; |
|
1053
e73b159a9047
[gaim-migrate @ 1063]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
1147 | int pos; |
| 1 | 1148 | |
| 3762 | 1149 | if (gtk_tree_selection_get_selected(sel, NULL, &iter)) { |
| 1150 | gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &name, -1); | |
| 1151 | gtk_list_store_remove(GTK_LIST_STORE(mod), &iter); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1152 | } else { |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1153 | return; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1154 | } |
| 1 | 1155 | |
| 3762 | 1156 | pos = g_list_index(b->in_room, name); |
|
1053
e73b159a9047
[gaim-migrate @ 1063]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
1157 | |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1158 | ign = ignored(b, name); |
|
1303
04847adbeb72
[gaim-migrate @ 1313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
1159 | |
|
2632
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1160 | if (ign) { |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1161 | g_free(ign); |
|
2c51c8289c56
[gaim-migrate @ 2645]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2631
diff
changeset
|
1162 | b->ignored = g_list_remove(b->ignored, ign); |
|
1303
04847adbeb72
[gaim-migrate @ 1313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
1163 | } else { |
|
04847adbeb72
[gaim-migrate @ 1313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1250
diff
changeset
|
1164 | b->ignored = g_list_append(b->ignored, g_strdup(name)); |
|
1053
e73b159a9047
[gaim-migrate @ 1063]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
1165 | } |
| 1 | 1166 | |
| 2956 | 1167 | add_chat_buddy_common(b, name, pos); |
| 1 | 1168 | } |
| 1169 | ||
|
472
9a5b8da2d760
[gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
457
diff
changeset
|
1170 | void show_new_buddy_chat(struct conversation *b) |
| 1 | 1171 | { |
| 1172 | GtkWidget *win; | |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1173 | GtkWidget *cont; |
| 1 | 1174 | GtkWidget *text; |
| 3790 | 1175 | /*GtkWidget *close;*/ |
| 1176 | GtkWidget *frame; | |
| 1 | 1177 | GtkWidget *chatentry; |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1178 | GtkWidget *lbox; |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1179 | GtkWidget *bbox; |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1180 | GtkWidget *bbox2; |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3708
diff
changeset
|
1181 | GtkWidget *button; |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1182 | GtkWidget *sw; |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1183 | GtkWidget *sw2; |
| 1 | 1184 | GtkWidget *vbox; |
|
223
06248cfc2171
[gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents:
199
diff
changeset
|
1185 | GtkWidget *vpaned; |
|
06248cfc2171
[gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents:
199
diff
changeset
|
1186 | GtkWidget *hpaned; |
|
344
6dacf96cc000
[gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
1187 | GtkWidget *toolbar; |
| 3687 | 1188 | GtkWidget *sep; |
| 3762 | 1189 | GtkListStore *ls; |
| 1190 | GtkWidget *list; | |
| 1191 | GtkCellRenderer *rend; | |
| 1192 | GtkTreeViewColumn *col; | |
| 3866 | 1193 | GtkWidget *tabby; |
| 3687 | 1194 | |
|
1380
6a1dfed47a63
[gaim-migrate @ 1390]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1358
diff
changeset
|
1195 | char buf[BUF_LONG]; |
| 844 | 1196 | |
|
4091
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1197 | int dispstyle = set_dispstyle(1); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1198 | |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1199 | if (chat_options & OPT_CHAT_ONE_WINDOW) { |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1200 | if (!all_chats) { |
| 3683 | 1201 | GtkWidget *testidea; |
| 1202 | ||
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1203 | win = all_chats = b->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1204 | if ((convo_options & OPT_CONVO_COMBINE) && (im_options & OPT_IM_ONE_WINDOW)) |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1205 | all_convos = all_chats; |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
3986
diff
changeset
|
1206 | gtk_window_set_role(GTK_WINDOW(win), "buddy_chat"); |
|
2880
149ac50ab295
[gaim-migrate @ 2893]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2860
diff
changeset
|
1207 | gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, FALSE); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1208 | gtk_container_border_width(GTK_CONTAINER(win), 0); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1209 | gtk_widget_realize(win); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1210 | gtk_window_set_title(GTK_WINDOW(win), _("Gaim - Group Chats")); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1211 | gtk_signal_connect(GTK_OBJECT(win), "delete_event", |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1212 | GTK_SIGNAL_FUNC(delete_all_convo), NULL); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1213 | |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1214 | chat_notebook = gtk_notebook_new(); |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1215 | if ((convo_options & OPT_CONVO_COMBINE) && (im_options & OPT_IM_ONE_WINDOW)) |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1216 | convo_notebook = chat_notebook; |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1217 | if (chat_options & OPT_CHAT_SIDE_TAB) { |
|
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1218 | if (chat_options & OPT_CHAT_BR_TAB) { |
|
1757
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1219 | gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1220 | GTK_POS_RIGHT); |
|
1757
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1221 | } else { |
|
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1222 | gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1223 | GTK_POS_LEFT); |
|
1757
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1224 | } |
|
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1225 | } else { |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1226 | if (chat_options & OPT_CHAT_BR_TAB) { |
|
1757
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1227 | gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1228 | GTK_POS_BOTTOM); |
|
1757
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1229 | } else { |
|
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1230 | gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1231 | GTK_POS_TOP); |
|
1757
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1232 | } |
|
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1233 | } |
| 3683 | 1234 | |
| 1235 | testidea = gtk_vbox_new(FALSE, 0); | |
| 1236 | gtk_box_pack_start(GTK_BOX(testidea), chat_notebook, TRUE, TRUE, 0); | |
| 1237 | gtk_widget_show(testidea); | |
| 1238 | ||
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1239 | gtk_notebook_set_scrollable(GTK_NOTEBOOK(chat_notebook), TRUE); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1240 | gtk_notebook_popup_enable(GTK_NOTEBOOK(chat_notebook)); |
| 3683 | 1241 | gtk_container_add(GTK_CONTAINER(win), testidea); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1242 | gtk_signal_connect(GTK_OBJECT(chat_notebook), "switch-page", |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1243 | GTK_SIGNAL_FUNC(convo_switch), NULL); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1244 | gtk_widget_show(chat_notebook); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1245 | } else |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1246 | win = b->window = all_chats; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1247 | |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1248 | cont = gtk_vbox_new(FALSE, 5); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1249 | gtk_container_set_border_width(GTK_CONTAINER(cont), 5); |
| 3866 | 1250 | |
|
3986
4f8cb0199cd7
[gaim-migrate @ 4177]
Christian Hammond <chipx86@chipx86.com>
parents:
3985
diff
changeset
|
1251 | tabby = gtk_hbox_new(FALSE, 5); |
| 3866 | 1252 | b->close = gtk_button_new(); |
| 3985 | 1253 | gtk_widget_set_size_request(GTK_WIDGET(b->close), 16, 16); |
| 3866 | 1254 | gtk_container_add(GTK_CONTAINER(b->close), gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU)); |
| 1255 | gtk_button_set_relief(GTK_BUTTON(b->close), GTK_RELIEF_NONE); | |
| 1256 | b->tab_label = gtk_label_new(b->name); | |
| 1257 | ||
| 1258 | gtk_signal_connect(GTK_OBJECT(b->close), "clicked", GTK_SIGNAL_FUNC(close_callback), b); | |
| 1259 | ||
| 3871 | 1260 | gtk_box_pack_start(GTK_BOX(tabby), b->tab_label, FALSE, FALSE, 0); |
| 3866 | 1261 | gtk_box_pack_start(GTK_BOX(tabby), b->close, FALSE, FALSE, 0); |
| 1262 | gtk_widget_show_all(tabby); | |
| 1263 | gtk_notebook_append_page(GTK_NOTEBOOK(chat_notebook), cont, tabby); | |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1264 | gtk_widget_show(cont); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1265 | } else { |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1266 | win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1267 | b->window = win; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1268 | gtk_object_set_user_data(GTK_OBJECT(win), b); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
3986
diff
changeset
|
1269 | gtk_window_set_role(GTK_WINDOW(win), "buddy_chat"); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1270 | gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1271 | gtk_container_border_width(GTK_CONTAINER(win), 10); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1272 | gtk_widget_realize(win); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1273 | g_snprintf(buf, sizeof(buf), "Gaim - %s (chat)", b->name); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1274 | gtk_window_set_title(GTK_WINDOW(win), buf); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1275 | gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback), b); |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1276 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1277 | cont = gtk_vbox_new(FALSE, 5); |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1278 | gtk_container_add(GTK_CONTAINER(win), cont); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1279 | gtk_widget_show(cont); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1280 | } |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1281 | |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1282 | if (b->gc->prpl->options & OPT_PROTO_CHAT_TOPIC) { |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1283 | GtkWidget *hbox; |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1284 | GtkWidget *label; |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1285 | |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1286 | hbox = gtk_hbox_new(FALSE, 0); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1287 | gtk_box_pack_start(GTK_BOX(cont), hbox, FALSE, FALSE, 5); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1288 | gtk_widget_show(hbox); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1289 | |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1290 | label = gtk_label_new(_("Topic:")); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1291 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1292 | gtk_widget_show(label); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1293 | |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1294 | b->topic_text = gtk_entry_new(); |
|
2289
0af7cf95a25d
[gaim-migrate @ 2299]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2268
diff
changeset
|
1295 | gtk_entry_set_editable(GTK_ENTRY(b->topic_text), FALSE); |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1296 | gtk_box_pack_start(GTK_BOX(hbox), b->topic_text, TRUE, TRUE, 5); |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1297 | gtk_widget_show(b->topic_text); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1298 | } |
| 1 | 1299 | |
|
223
06248cfc2171
[gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents:
199
diff
changeset
|
1300 | vpaned = gtk_vpaned_new(); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1301 | gtk_paned_set_gutter_size(GTK_PANED(vpaned), 15); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1302 | gtk_container_add(GTK_CONTAINER(cont), vpaned); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1303 | gtk_widget_show(vpaned); |
|
223
06248cfc2171
[gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents:
199
diff
changeset
|
1304 | |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1305 | hpaned = gtk_hpaned_new(); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1306 | gtk_paned_set_gutter_size(GTK_PANED(hpaned), 15); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1307 | gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1308 | gtk_widget_show(hpaned); |
| 26 | 1309 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1310 | sw = gtk_scrolled_window_new(NULL, NULL); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1311 | b->sw = sw; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1312 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1313 | gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE); |
|
1813
9b174ae83add
[gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents:
1807
diff
changeset
|
1314 | gtk_widget_set_usize(sw, buddy_chat_size.width, buddy_chat_size.height); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1315 | gtk_widget_show(sw); |
|
834
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1316 | |
|
1428
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1398
diff
changeset
|
1317 | text = gtk_imhtml_new(NULL, NULL); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1318 | b->text = text; |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1319 | gtk_container_add(GTK_CONTAINER(sw), text); |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1320 | if (convo_options & OPT_CONVO_SHOW_TIME) |
|
1428
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1398
diff
changeset
|
1321 | gtk_imhtml_show_comments(GTK_IMHTML(text), TRUE); |
|
1815
e2b090284b19
[gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1813
diff
changeset
|
1322 | gaim_setup_imhtml(text); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1323 | gtk_widget_show(text); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1324 | |
|
1228
632838648f4a
[gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1227
diff
changeset
|
1325 | lbox = gtk_vbox_new(FALSE, 5); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1326 | gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1327 | gtk_widget_show(lbox); |
| 1 | 1328 | |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1329 | b->count = gtk_label_new(_("0 people in room")); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1330 | gtk_box_pack_start(GTK_BOX(lbox), b->count, FALSE, FALSE, 0); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1331 | gtk_widget_show(b->count); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1332 | |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1333 | sw2 = gtk_scrolled_window_new(NULL, NULL); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1334 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1335 | gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1336 | gtk_widget_show(sw2); |
| 1 | 1337 | |
| 3762 | 1338 | ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); |
| 1339 | gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), 1, GTK_SORT_ASCENDING); | |
| 1340 | list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(ls)); | |
| 1341 | ||
| 1342 | rend = gtk_cell_renderer_text_new(); | |
| 1343 | col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL); | |
| 1344 | gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE); | |
| 1345 | gtk_signal_connect(GTK_OBJECT(list), "button_press_event", | |
| 1346 | GTK_SIGNAL_FUNC(right_click_chat), b); | |
| 1347 | gtk_tree_view_append_column(GTK_TREE_VIEW(list), col); | |
| 1348 | ||
| 1349 | col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 1, NULL); | |
| 1350 | gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE); | |
| 1351 | gtk_signal_connect(GTK_OBJECT(list), "button_press_event", | |
| 1352 | GTK_SIGNAL_FUNC(right_click_chat), b); | |
| 1353 | gtk_tree_view_append_column(GTK_TREE_VIEW(list), col); | |
| 1354 | ||
| 1355 | gtk_widget_set_usize(list, 150, -1); | |
| 1356 | ||
| 1357 | gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), FALSE); | |
| 1358 | gtk_widget_show(list); | |
| 1 | 1359 | b->list = list; |
| 3762 | 1360 | |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1361 | gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list); |
| 1 | 1362 | |
|
1228
632838648f4a
[gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1227
diff
changeset
|
1363 | bbox2 = gtk_hbox_new(TRUE, 5); |
|
632838648f4a
[gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1227
diff
changeset
|
1364 | gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 0); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1365 | gtk_widget_show(bbox2); |
| 1 | 1366 | |
| 3687 | 1367 | button = gaim_pixbuf_button_from_stock(NULL, "gtk-redo", GAIM_BUTTON_VERTICAL); |
| 1368 | gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 1369 | gtk_box_pack_start(GTK_BOX(bbox2), button, FALSE, FALSE, 0); | |
| 1370 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(im_callback), b); | |
| 1371 | gtk_widget_show(button); | |
| 1 | 1372 | |
| 3687 | 1373 | button = gaim_pixbuf_button_from_stock(NULL, "gtk-dialog-error", GAIM_BUTTON_VERTICAL); |
| 1374 | gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 1375 | gtk_box_pack_start(GTK_BOX(bbox2), button, FALSE, FALSE, 0); | |
| 1376 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(ignore_callback), b); | |
| 1377 | gtk_widget_show(button); | |
| 1 | 1378 | |
| 3687 | 1379 | button = gaim_pixbuf_button_from_stock(NULL, "gtk-find", GAIM_BUTTON_VERTICAL); |
| 1380 | gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 1381 | gtk_box_pack_start(GTK_BOX(bbox2), button, FALSE, FALSE, 0); | |
| 1382 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(info_callback), b); | |
| 1383 | gtk_widget_show(button); | |
| 1384 | b->info = button; | |
| 844 | 1385 | |
|
1228
632838648f4a
[gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1227
diff
changeset
|
1386 | vbox = gtk_vbox_new(FALSE, 5); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1387 | gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1388 | gtk_widget_show(vbox); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1389 | |
| 3790 | 1390 | toolbar = build_conv_toolbar(b); |
| 1391 | gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); | |
| 1392 | ||
| 1393 | frame = gtk_frame_new(NULL); | |
| 1394 | gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 1395 | gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(frame), TRUE, TRUE, 0); | |
| 1396 | gtk_widget_show(frame); | |
| 1397 | ||
| 1398 | b->entry_buffer = gtk_text_buffer_new(NULL); | |
| 1399 | g_object_set_data(G_OBJECT(b->entry_buffer), "user_data", b); | |
| 1400 | chatentry = gtk_text_view_new_with_buffer(b->entry_buffer); | |
|
1227
d707ce201f4a
[gaim-migrate @ 1237]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1223
diff
changeset
|
1401 | b->entry = chatentry; |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1402 | if (!(chat_options & OPT_CHAT_ONE_WINDOW)) |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1403 | gtk_window_set_focus(GTK_WINDOW(b->window), b->entry); |
|
1227
d707ce201f4a
[gaim-migrate @ 1237]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1223
diff
changeset
|
1404 | |
| 3695 | 1405 | |
| 1406 | b->makesound = 1; /* Need to do this until we get a menu */ | |
| 1407 | ||
| 3790 | 1408 | gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(b->entry), GTK_WRAP_WORD); |
| 1409 | g_signal_connect(G_OBJECT(b->entry), "key_press_event", G_CALLBACK(keypress_callback), b); | |
| 1410 | g_signal_connect_after(G_OBJECT(b->entry), "button_press_event", | |
| 1411 | G_CALLBACK(stop_rclick_callback), NULL); | |
| 1412 | g_signal_connect_swapped(G_OBJECT(chatentry), "key_press_event", | |
| 1413 | G_CALLBACK(entry_key_pressed), chatentry); | |
| 1414 | gtk_container_add(GTK_CONTAINER(frame), GTK_WIDGET(chatentry)); | |
|
2899
311232d44e03
[gaim-migrate @ 2912]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2880
diff
changeset
|
1415 | gtk_widget_set_usize(chatentry, buddy_chat_size.width, MAX(buddy_chat_size.entry_height, 25)); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1416 | gtk_window_set_focus(GTK_WINDOW(win), chatentry); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1417 | gtk_widget_show(chatentry); |
| 3802 | 1418 | #ifdef USE_GTKSPELL |
| 1419 | if (convo_options & OPT_CONVO_CHECK_SPELLING) | |
| 3805 | 1420 | gtkspell_attach(GTK_TEXT_VIEW(chatentry)); |
| 3802 | 1421 | #endif |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1422 | bbox = gtk_hbox_new(FALSE, 5); |
|
1228
632838648f4a
[gaim-migrate @ 1238]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1227
diff
changeset
|
1423 | gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1424 | gtk_widget_show(bbox); |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1425 | |
| 3687 | 1426 | /* |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1427 | close = picture_button2(win, _("Close"), cancel_xpm, dispstyle); |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1428 | b->close = close; |
|
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1429 | gtk_object_set_user_data(GTK_OBJECT(close), b); |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1430 | gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_callback), b); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1431 | gtk_box_pack_end(GTK_BOX(bbox), close, dispstyle, dispstyle, 0); |
| 3687 | 1432 | */ |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1433 | |
| 3687 | 1434 | /* Send */ |
|
4091
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1435 | button = gaim_pixbuf_button_from_stock( |
|
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1436 | (dispstyle == 0 ? NULL : _("Send")), |
|
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1437 | (dispstyle == 1 ? NULL : "gtk-convert"), |
|
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1438 | GAIM_BUTTON_VERTICAL); |
|
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1439 | |
| 3687 | 1440 | gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); |
| 1441 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(send_callback), b); | |
| 1442 | gtk_widget_show(button); | |
| 1443 | gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
| 1444 | b->send = button; | |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1445 | |
| 3687 | 1446 | /* Sep */ |
| 1447 | sep = gtk_vseparator_new(); | |
| 1448 | gtk_box_pack_start(GTK_BOX(bbox), sep, FALSE, FALSE, 0); | |
|
1201
6bd04139238b
[gaim-migrate @ 1211]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1117
diff
changeset
|
1449 | |
| 3687 | 1450 | /* Invite */ |
|
4091
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1451 | button = gaim_pixbuf_button_from_stock( |
|
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1452 | (dispstyle == 0 ? NULL : _("Invite")), |
|
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1453 | (dispstyle == 1 ? NULL : "gtk-jump-to"), |
|
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1454 | GAIM_BUTTON_VERTICAL); |
|
e581b2bace1c
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
1455 | |
| 3687 | 1456 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(invite_callback), b); |
| 1457 | gtk_widget_show(button); | |
| 1458 | gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
| 1459 | gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 1460 | b->invite = button; | |
| 1461 | ||
| 1 | 1462 | |
|
716
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1463 | b->font_dialog = NULL; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1464 | b->fg_color_dialog = NULL; |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1465 | b->bg_color_dialog = NULL; |
|
716
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1466 | b->smiley_dialog = NULL; |
|
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1467 | b->link_dialog = NULL; |
|
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1468 | b->log_dialog = NULL; |
|
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1469 | sprintf(b->fontface, "%s", fontface); |
|
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1470 | b->hasfont = 0; |
|
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1471 | b->bgcol = bgcolor; |
|
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1472 | b->hasbg = 0; |
|
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1473 | b->fgcol = fgcolor; |
|
56e303f98361
[gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
694
diff
changeset
|
1474 | b->hasfg = 0; |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1475 | |
| 1343 | 1476 | update_buttons_by_protocol(b); |
| 1477 | ||
| 1 | 1478 | gtk_widget_show(win); |
| 1479 | } | |
| 1480 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1481 | void chat_set_topic(struct conversation *b, char *who, char *topic) |
|
2017
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1482 | { |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1483 | gtk_entry_set_text(GTK_ENTRY(b->topic_text), topic); |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1484 | if (b->topic) |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1485 | g_free(b->topic); |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1486 | b->topic = g_strdup(topic); |
|
1920
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1487 | } |
|
8e86151db7dc
[gaim-migrate @ 1930]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1898
diff
changeset
|
1488 | |
| 1 | 1489 | |
| 1490 | ||
|
2017
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1491 | void delete_chat(struct conversation *b) |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1492 | { |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1493 | while (b->in_room) { |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1494 | g_free(b->in_room->data); |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1495 | b->in_room = g_list_remove(b->in_room, b->in_room->data); |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1496 | } |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1497 | while (b->ignored) { |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1498 | g_free(b->ignored->data); |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1499 | b->ignored = g_list_remove(b->ignored, b->ignored->data); |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1500 | } |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1501 | g_string_free(b->history, TRUE); |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1502 | if (b->topic) |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1503 | g_free(b->topic); |
|
2017
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1504 | g_free(b); |
|
39809db22611
[gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1924
diff
changeset
|
1505 | } |
| 1 | 1506 | |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1507 | static GtkWidget *change_text(GtkWidget *win, char *text, GtkWidget *button, char *stock, int chat) |
|
834
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1508 | { |
| 915 | 1509 | int dispstyle = set_dispstyle(chat); |
|
834
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1510 | GtkWidget *parent = button->parent; |
|
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1511 | gtk_widget_destroy(button); |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1512 | /* XXX button = picture_button2(win, text, xpm, dispstyle); */ |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1513 | button = gaim_pixbuf_button_from_stock((dispstyle == 0 ? NULL : text), |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1514 | (dispstyle == 1 ? NULL : stock), |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1515 | GAIM_BUTTON_VERTICAL); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1516 | #if 0 |
| 915 | 1517 | if (chat == 1) |
|
909
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1518 | gtk_box_pack_start(GTK_BOX(parent), button, dispstyle, dispstyle, 5); |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1519 | else |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1520 | gtk_box_pack_end(GTK_BOX(parent), button, dispstyle, dispstyle, 0); |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1521 | |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1522 | gtk_box_pack_start(GTK_BOX(parent), button, dispstyle, dispstyle, 0); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1523 | #endif |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1524 | |
|
834
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1525 | gtk_widget_show(button); |
|
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1526 | return button; |
|
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1527 | } |
|
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1528 | |
|
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1529 | void update_chat_button_pix() |
|
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1530 | { |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1531 | GSList *C = connections; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1532 | struct gaim_connection *g; |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1533 | GtkWidget *parent; |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1534 | |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1535 | while (C) { |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1536 | GSList *bcs; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1537 | struct conversation *c; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1538 | int opt = 1; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1539 | g = (struct gaim_connection *)C->data; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1540 | bcs = g->buddy_chats; |
|
834
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1541 | |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1542 | while (bcs) { |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1543 | c = (struct conversation *)bcs->data; |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1544 | parent = c->send->parent; |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1545 | |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1546 | c->send = change_text(c->window, _("Send"), c->send, "gtk-convert", opt); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1547 | c->invite = change_text(c->window, _("Invite"), c->invite, "gtk-jump-to", opt); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1548 | gtk_box_pack_end(GTK_BOX(parent), c->send, FALSE, FALSE, 0); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1549 | gtk_box_pack_end(GTK_BOX(parent), c->invite, FALSE, FALSE, 0); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1550 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1551 | gtk_signal_connect(GTK_OBJECT(c->send), "clicked", |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1552 | GTK_SIGNAL_FUNC(send_callback), c); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1553 | gtk_signal_connect(GTK_OBJECT(c->invite), "clicked", |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1554 | GTK_SIGNAL_FUNC(invite_callback), c); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2391
diff
changeset
|
1555 | |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1556 | gtk_button_set_relief(GTK_BUTTON(c->send), GTK_RELIEF_NONE); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1557 | gtk_button_set_relief(GTK_BUTTON(c->invite), GTK_RELIEF_NONE); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1558 | |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2391
diff
changeset
|
1559 | update_buttons_by_protocol(c); |
|
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2391
diff
changeset
|
1560 | |
|
964
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1561 | bcs = bcs->next; |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1562 | } |
|
6642a090394e
[gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
1563 | C = C->next; |
|
834
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1564 | } |
|
11fe3931b832
[gaim-migrate @ 844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
823
diff
changeset
|
1565 | } |
|
909
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1566 | |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1567 | void update_im_button_pix() |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1568 | { |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1569 | GList *bcs = conversations; |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1570 | struct conversation *c; |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1571 | GtkWidget *parent; |
| 915 | 1572 | int opt = 0; |
| 1573 | int dispstyle = set_dispstyle(0); | |
|
909
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1574 | |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1575 | while (bcs) { |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1576 | c = (struct conversation *)bcs->data; |
| 3687 | 1577 | parent = c->send->parent; |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1578 | |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1579 | c->send = change_text(c->window, _("Send"), c->send, "gtk-convert", opt); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1580 | gtk_box_pack_end(GTK_BOX(parent), c->send, FALSE, FALSE, 0); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1581 | |
|
4090
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1582 | gtk_widget_destroy(c->sep2); |
|
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1583 | c->sep2 = gtk_vseparator_new(); |
|
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1584 | gtk_box_pack_end(GTK_BOX(parent), c->sep2, FALSE, TRUE, 0); |
|
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1585 | gtk_widget_show(c->sep2); |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1586 | |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1018
diff
changeset
|
1587 | if (find_buddy(c->gc, c->name) == NULL) |
|
4090
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1588 | c->add = change_text(c->window, _("Add"), c->add, "gtk-add", opt); |
|
909
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1589 | else |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1590 | c->add = change_text(c->window, _("Remove"), c->add, "gtk-remove", opt); |
|
4090
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1591 | |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1592 | gtk_box_pack_start(GTK_BOX(parent), c->add, FALSE, FALSE, 0); |
|
4090
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1593 | |
|
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1594 | c->warn = change_text(c->window, _("Warn"), c->warn, "gtk-dialog-warning", opt); |
|
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1595 | gtk_box_pack_start(GTK_BOX(parent), c->warn, FALSE, FALSE, 0); |
|
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1596 | |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1597 | c->info = change_text(c->window, _("Info"), c->info, "gtk-find", opt); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1598 | gtk_box_pack_start(GTK_BOX(parent), c->info, FALSE, FALSE, 0); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1599 | |
|
4090
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1600 | c->block = change_text(c->window, _("Block"), c->block, "gtk-stop", opt); |
|
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1601 | gtk_box_pack_start(GTK_BOX(parent), c->block, FALSE, FALSE, 0); |
|
80d6b176ff79
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4089
diff
changeset
|
1602 | |
|
4089
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1603 | gtk_button_set_relief(GTK_BUTTON(c->info), GTK_RELIEF_NONE); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1604 | gtk_button_set_relief(GTK_BUTTON(c->add), GTK_RELIEF_NONE); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1605 | gtk_button_set_relief(GTK_BUTTON(c->warn), GTK_RELIEF_NONE); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1606 | gtk_button_set_relief(GTK_BUTTON(c->send), GTK_RELIEF_NONE); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1607 | gtk_button_set_relief(GTK_BUTTON(c->block), GTK_RELIEF_NONE); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1608 | |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1609 | gtk_size_group_add_widget(c->sg, c->info); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1610 | gtk_size_group_add_widget(c->sg, c->add); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1611 | gtk_size_group_add_widget(c->sg, c->warn); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1612 | gtk_size_group_add_widget(c->sg, c->send); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1613 | gtk_size_group_add_widget(c->sg, c->block); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1614 | |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1615 | gtk_box_reorder_child(GTK_BOX(parent), c->warn, 1); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1616 | gtk_box_reorder_child(GTK_BOX(parent), c->block, 2); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1617 | gtk_box_reorder_child(GTK_BOX(parent), c->info, 4); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1618 | |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1619 | |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1620 | update_buttons_by_protocol(c); |
|
1e2a472beb95
[gaim-migrate @ 4304]
Christian Hammond <chipx86@chipx86.com>
parents:
4074
diff
changeset
|
1621 | |
|
1250
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1622 | gtk_signal_connect(GTK_OBJECT(c->send), "clicked", GTK_SIGNAL_FUNC(send_callback), c); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1623 | gtk_signal_connect(GTK_OBJECT(c->info), "clicked", GTK_SIGNAL_FUNC(info_callback), c); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1624 | gtk_signal_connect(GTK_OBJECT(c->warn), "clicked", GTK_SIGNAL_FUNC(warn_callback), c); |
|
46ac03911ab0
[gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents:
1235
diff
changeset
|
1625 | gtk_signal_connect(GTK_OBJECT(c->block), "clicked", GTK_SIGNAL_FUNC(block_callback), c); |
|
909
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1626 | bcs = bcs->next; |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1627 | } |
|
83af8c8b993b
[gaim-migrate @ 919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
907
diff
changeset
|
1628 | } |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1629 | |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1630 | void chat_tabize() |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1631 | { |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1632 | int pos = 0; |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1633 | char tmp[BUF_LONG]; |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1634 | /* evil, evil i tell you! evil! */ |
|
2313
f7f7ff0b8d4a
[gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2289
diff
changeset
|
1635 | if (chat_options & OPT_CHAT_ONE_WINDOW) { |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1636 | GList *x = chats; |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1637 | if ((convo_options & OPT_CONVO_COMBINE) && (im_options & OPT_IM_ONE_WINDOW)) { |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1638 | all_chats = all_convos; |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1639 | chat_notebook = convo_notebook; |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1640 | } |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1641 | while (x) { |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1642 | struct conversation *c = x->data; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1643 | GtkWidget *imhtml, *win; |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1644 | GList *r = c->in_room; |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1645 | |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1646 | imhtml = c->text; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1647 | win = c->window; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1648 | show_new_buddy_chat(c); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1649 | gtk_widget_destroy(c->text); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1650 | gtk_widget_reparent(imhtml, c->sw); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1651 | c->text = imhtml; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1652 | gtk_signal_disconnect_by_func(GTK_OBJECT(win), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2371
diff
changeset
|
1653 | GTK_SIGNAL_FUNC(close_callback), c); |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1654 | gtk_widget_destroy(win); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1655 | |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1656 | if (c->topic) |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1657 | gtk_entry_set_text(GTK_ENTRY(c->topic_text), c->topic); |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1658 | |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1659 | g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(c->in_room), |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1660 | g_list_length(c->in_room) == 1 ? "person" : "people"); |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1661 | gtk_label_set_text(GTK_LABEL(c->count), tmp); |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1662 | |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1663 | while (r) { |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1664 | char *name = r->data; |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1665 | |
| 2956 | 1666 | add_chat_buddy_common(c, name, pos); |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1667 | |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1668 | r = r->next; |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1669 | pos++; |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1670 | } |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1671 | |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1672 | x = x->next; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1673 | } |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1674 | } else { |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1675 | GList *x, *m; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1676 | x = m = chats; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1677 | chats = NULL; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1678 | while (x) { |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1679 | struct conversation *c = x->data; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1680 | GtkWidget *imhtml; |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1681 | GList *r = c->in_room; |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1682 | |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1683 | imhtml = c->text; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1684 | show_new_buddy_chat(c); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1685 | gtk_widget_destroy(c->text); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1686 | gtk_widget_reparent(imhtml, c->sw); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1687 | c->text = imhtml; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1688 | |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1689 | if (c->topic) |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1690 | gtk_entry_set_text(GTK_ENTRY(c->topic_text), c->topic); |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1691 | |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1692 | g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(c->in_room), |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1693 | g_list_length(c->in_room) == 1 ? "person" : "people"); |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1694 | gtk_label_set_text(GTK_LABEL(c->count), tmp); |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1695 | |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1696 | while (r) { |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1697 | char *name = r->data; |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1698 | |
| 2956 | 1699 | add_chat_buddy_common(c, name, pos); |
|
2368
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1700 | |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1701 | r = r->next; |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1702 | pos++; |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1703 | } |
|
7f495de3b20b
[gaim-migrate @ 2381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2350
diff
changeset
|
1704 | |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1705 | x = x->next; |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1706 | } |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1707 | chats = m; |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1708 | if ((convo_options & OPT_CONVO_COMBINE) && |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1709 | (im_options & OPT_IM_ONE_WINDOW) && conversations) { |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1710 | while (m) { |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1711 | gtk_notebook_remove_page(GTK_NOTEBOOK(chat_notebook), |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1712 | g_list_length(conversations)); |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1713 | m = m->next; |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1714 | } |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1715 | } else if (all_chats) |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1716 | gtk_widget_destroy(all_chats); |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1717 | all_chats = NULL; |
|
1757
8c57846a4691
[gaim-migrate @ 1767]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1735
diff
changeset
|
1718 | chat_notebook = NULL; |
|
1692
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1719 | } |
|
ff73167542e9
[gaim-migrate @ 1702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1505
diff
changeset
|
1720 | } |