Mercurial > pidgin
annotate src/conversation.c @ 4243:eae97ca4bbea
[gaim-migrate @ 4493]
Guess what?
Another SSI patch!
This one fixes the automatic deletion of empty groups upon signin.
The problem was that apparently WinICQ handles empty groups slightly
differently than WinAIM. It's all good now.
Uh, I fixed some comments.
Oh, and moving a buddy that you've requested authorization from to
a different group. I don't know if that used to give you the dialog
that prompted if you wanted to send another auth request, but it
shouldn't anymore (as long as you have sent 1 auth request).
I also changed the button title for ICQ's receive contacts. I changed
it from "Deny" to "Decline." Thanks to Nathan for pointing that out.
I am to Time Warner as spiders are to the bottom of my shoe.
committer: Tailor Script <tailor@pidgin.im>
| author | Mark Doliner <mark@kingant.net> |
|---|---|
| date | Wed, 08 Jan 2003 04:06:20 +0000 |
| parents | cc14954cc399 |
| children | 7103653dd34e |
| rev | line source |
|---|---|
| 66 | 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
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
344
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
|
2090
b66aca8e8dce
[gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2048
diff
changeset
|
23 #include <config.h> |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
344
diff
changeset
|
24 #endif |
| 66 | 25 #include <string.h> |
| 3630 | 26 #ifndef _WIN32 |
| 66 | 27 #include <sys/time.h> |
| 3630 | 28 #include <unistd.h> |
| 29 #include <gdk/gdkx.h> | |
| 30 #include <X11/Xlib.h> | |
| 31 #else | |
| 32 #ifdef small | |
| 33 #undef small | |
| 34 #endif | |
| 35 #endif /*_WIN32*/ | |
| 66 | 36 #include <sys/types.h> |
| 37 #include <sys/stat.h> | |
| 38 #include <stdio.h> | |
| 39 #include <stdlib.h> | |
|
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
40 #include <errno.h> |
|
210
ec0686b3b03f
[gaim-migrate @ 220]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
209
diff
changeset
|
41 #include <ctype.h> |
| 66 | 42 #include <gtk/gtk.h> |
| 3802 | 43 #ifdef USE_GTKSPELL |
| 44 #include <gtkspell/gtkspell.h> | |
| 45 #endif | |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
46 #include "gtkimhtml.h" |
| 66 | 47 #include <gdk/gdkkeysyms.h> |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
48 #include "convo.h" |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1228
diff
changeset
|
49 #include "prpl.h" |
| 337 | 50 |
| 3630 | 51 #ifdef _WIN32 |
|
4026
a997156437b6
[gaim-migrate @ 4230]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3986
diff
changeset
|
52 #include <process.h> /* for getpid() */ |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3705
diff
changeset
|
53 #include <io.h> |
| 3630 | 54 #include "win32dep.h" |
| 55 #endif | |
| 56 | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
57 int state_lock = 0; |
| 66 | 58 |
| 59 GdkPixmap *dark_icon_pm = NULL; | |
| 60 GdkBitmap *dark_icon_bm = NULL; | |
| 61 | |
|
1608
e19a2cb4190c
[gaim-migrate @ 1618]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1597
diff
changeset
|
62 GtkWidget *all_convos = NULL; |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
63 GtkWidget *convo_notebook = NULL; |
| 3677 | 64 GtkWidget *convo_menubar = NULL; |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
65 |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
66 char fontface[128] = { 0 }; |
|
1441
5c67b8794991
[gaim-migrate @ 1451]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1440
diff
changeset
|
67 int fontsize = 3; |
| 4241 | 68 |
|
885
db5f5c33e83f
[gaim-migrate @ 895]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
876
diff
changeset
|
69 extern GdkColor bgcolor; |
|
db5f5c33e83f
[gaim-migrate @ 895]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
876
diff
changeset
|
70 extern GdkColor fgcolor; |
| 66 | 71 |
| 3790 | 72 void check_everything(GtkTextBuffer *buffer); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
73 gboolean keypress_callback(GtkWidget *entry, GdkEventKey * event, struct conversation *c); |
| 3790 | 74 gboolean stop_rclick_callback(GtkWidget *widget, GdkEventButton *event, gpointer data); |
| 66 | 75 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
76 static void update_icon(struct conversation *); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
77 static void remove_icon(struct conversation *); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
78 |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
79 static void update_checkbox(struct conversation *); |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
80 static void remove_checkbox(struct conversation *); |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
81 |
| 3035 | 82 |
| 83 | |
| 66 | 84 /*------------------------------------------------------------------------*/ |
| 85 /* Helpers */ | |
| 86 /*------------------------------------------------------------------------*/ | |
| 87 | |
| 88 | |
| 3081 | 89 void gaim_setup_imhtml_smileys(GtkWidget *imhtml) |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1772
diff
changeset
|
90 { |
| 4032 | 91 /* This is ugly right now--it will get better when the themable smileys come */ |
| 92 | |
| 93 | |
| 94 char *filename; | |
| 95 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "smile.png", NULL); | |
| 96 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":)", NULL, filename); | |
| 97 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-)", NULL, filename); | |
| 4138 | 98 g_free(filename); |
| 4032 | 99 |
| 100 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "sad.png", NULL); | |
| 101 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":(", NULL, filename); | |
| 102 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-(", NULL, filename); | |
| 4138 | 103 g_free(filename); |
| 4032 | 104 |
| 105 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "wink.png", NULL); | |
| 106 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ";)", NULL, filename); | |
| 107 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ";-)", NULL, filename); | |
| 4138 | 108 g_free(filename); |
| 4032 | 109 |
| 4038 | 110 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "tongue.png", NULL); |
| 4032 | 111 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-p", NULL, filename); |
| 112 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-P", NULL, filename); | |
| 4138 | 113 g_free(filename); |
| 114 | |
| 4032 | 115 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "scream.png", NULL); |
| 116 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), "=-O", NULL, filename); | |
| 4138 | 117 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), "=-o", NULL, filename); |
| 118 g_free(filename); | |
| 4032 | 119 |
| 120 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "kiss.png", NULL); | |
| 121 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-*", NULL, filename); | |
| 4138 | 122 g_free(filename); |
| 4032 | 123 |
| 124 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "yell.png", NULL); | |
| 125 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ">:o", NULL, filename); | |
| 126 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ">:O", NULL, filename); | |
| 4138 | 127 g_free(filename); |
| 128 | |
| 4032 | 129 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "cool.png", NULL); |
| 130 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), "8-)", NULL, filename); | |
| 4138 | 131 g_free(filename); |
| 4032 | 132 |
| 133 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "moneymouth.png", NULL); | |
| 134 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-$", NULL, filename); | |
| 4138 | 135 g_free(filename); |
| 136 | |
| 4032 | 137 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "burp.png", NULL); |
| 138 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-!", NULL, filename); | |
| 4138 | 139 g_free(filename); |
| 140 | |
| 4032 | 141 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "embarrassed.png", NULL); |
| 142 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-[", NULL, filename); | |
| 4138 | 143 g_free(filename); |
| 144 | |
| 4032 | 145 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "cry.png", NULL); |
| 146 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":'(", NULL, filename); | |
| 4138 | 147 g_free(filename); |
| 148 | |
| 4032 | 149 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "think.png", NULL); |
| 150 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-/", NULL, filename); | |
| 151 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-\\", NULL, filename); | |
| 4138 | 152 g_free(filename); |
| 4032 | 153 |
| 154 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "crossedlips.png", NULL); | |
| 155 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-x", NULL, filename); | |
| 156 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-X", NULL, filename); | |
| 4138 | 157 g_free(filename); |
| 158 | |
| 4032 | 159 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "bigsmile.png", NULL); |
| 160 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-d", NULL, filename); | |
| 161 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-D", NULL, filename); | |
| 4138 | 162 g_free(filename); |
| 163 | |
| 4032 | 164 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "angel.png", NULL); |
| 165 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), "O:-)", NULL, filename); | |
| 4138 | 166 g_free(filename); |
| 4032 | 167 |
| 168 /* "Secret" smileys */ | |
| 169 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "luke.png", NULL); | |
| 170 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), "C:)", NULL, filename); | |
| 171 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), "C:-)", NULL, filename); | |
| 4138 | 172 g_free(filename); |
| 4032 | 173 |
| 174 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "oneeye.png", NULL); | |
| 175 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), "O-)", NULL, filename); | |
| 4138 | 176 g_free(filename); |
| 4032 | 177 |
| 178 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "crazy.png", NULL); | |
| 179 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ">:)", NULL, filename); | |
| 180 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ">:-)", NULL, filename); | |
| 4138 | 181 g_free(filename); |
| 4032 | 182 |
| 183 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "mrt.png", NULL); | |
| 184 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-o)))", NULL, filename); | |
| 185 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-O)))", NULL, filename); | |
| 4138 | 186 g_free(filename); |
| 4032 | 187 |
| 188 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "download.png", NULL); | |
| 189 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), "8-|)", NULL, filename); | |
| 4138 | 190 g_free(filename); |
| 4032 | 191 |
| 192 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "smileys", "default", "farted.png", NULL); | |
| 193 gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), ":-]", NULL, filename); | |
| 4138 | 194 g_free(filename); |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1772
diff
changeset
|
195 } |
|
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1772
diff
changeset
|
196 |
| 3081 | 197 void gaim_setup_imhtml(GtkWidget *imhtml) |
| 198 { | |
| 199 g_return_if_fail(imhtml != NULL); | |
| 200 g_return_if_fail(GTK_IS_IMHTML(imhtml)); | |
| 201 if (!(convo_options & OPT_CONVO_SHOW_SMILEY)) | |
| 202 gtk_imhtml_show_smileys(GTK_IMHTML(imhtml), FALSE); | |
| 203 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
204 g_signal_connect(GTK_OBJECT(imhtml), "url_clicked", G_CALLBACK(open_url), NULL); |
| 3081 | 205 gaim_setup_imhtml_smileys(imhtml); |
| 206 } | |
| 207 | |
| 66 | 208 void quiet_set(GtkWidget *tb, int state) |
| 209 { | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
210 state_lock = 1; |
| 66 | 211 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(tb), state); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
212 state_lock = 0; |
| 66 | 213 } |
| 214 | |
| 215 | |
| 216 void set_state_lock(int i) | |
| 217 { | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
218 state_lock = i; |
| 66 | 219 } |
| 220 | |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
221 void toggle_sensitive(GtkWidget *widget, GtkWidget *to_toggle) |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
222 { |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
223 gboolean sensitivity = GTK_WIDGET_IS_SENSITIVE(GTK_WIDGET(to_toggle)); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
224 |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
225 if (sensitivity == TRUE) |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
226 gtk_widget_set_sensitive(GTK_WIDGET(to_toggle), FALSE); |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
227 else |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
228 gtk_widget_set_sensitive(GTK_WIDGET(to_toggle), TRUE); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
229 |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
230 return; |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
231 } |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
232 |
| 2937 | 233 void set_convo_name(struct conversation *c, const char *nname) |
| 234 { | |
| 235 | |
| 236 g_snprintf(c->name, sizeof(c->name), "%s", nname); | |
| 237 | |
| 238 return; | |
| 239 } | |
| 240 | |
| 66 | 241 struct conversation *new_conversation(char *name) |
| 242 { | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
243 struct conversation *c; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
244 |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
245 c = find_conversation(name); |
| 66 | 246 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
247 if (c != NULL) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
248 return c; |
| 66 | 249 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
250 c = (struct conversation *)g_new0(struct conversation, 1); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
251 g_snprintf(c->name, sizeof(c->name), "%s", name); |
| 66 | 252 |
| 3457 | 253 if ((logging_options & OPT_LOG_CONVOS) || find_log_info(c->name)) { |
| 66 | 254 FILE *fd; |
| 70 | 255 |
| 3457 | 256 fd = open_log_file(c->name, c->is_chat); |
|
2004
699ddd727a49
[gaim-migrate @ 2014]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1970
diff
changeset
|
257 if (fd) { |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1486
diff
changeset
|
258 if (!(logging_options & OPT_LOG_STRIP_HTML)) |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
259 fprintf(fd, |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
260 "<HR><BR><H3 Align=Center> ---- New Conversation @ %s ----</H3><BR>\n", |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
261 full_date()); |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
262 else |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
263 fprintf(fd, " ---- New Conversation @ %s ----\n", full_date()); |
|
1034
1d43fda97960
[gaim-migrate @ 1044]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
264 fclose(fd); |
|
1d43fda97960
[gaim-migrate @ 1044]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
265 } else |
|
1d43fda97960
[gaim-migrate @ 1044]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
266 /* do we want to do something here? */ ; |
| 66 | 267 } |
| 268 | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
269 if (connections) |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
270 c->gc = (struct gaim_connection *)connections->data; |
|
1479
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
271 c->history = g_string_new(""); |
| 3122 | 272 c->send_history = g_list_append(NULL, NULL); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
273 conversations = g_list_append(conversations, c); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
274 show_conv(c); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
275 update_icon(c); |
| 3051 | 276 update_checkbox(c); |
| 3517 | 277 plugin_event(event_new_conversation, name); |
| 3922 | 278 /*gtk_imhtml_to_bottom(c->text);*/ |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
279 return c; |
| 66 | 280 } |
| 281 | |
| 282 | |
| 3466 | 283 struct conversation *find_conversation(const char *name) |
| 66 | 284 { |
| 4174 | 285 char *cuser = g_malloc(BUF_LEN); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
286 struct conversation *c; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
287 GList *cnv = conversations; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
288 |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
289 strcpy(cuser, normalize(name)); |
| 66 | 290 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
291 while (cnv) { |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
292 c = (struct conversation *)cnv->data; |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2017
diff
changeset
|
293 if (!g_strcasecmp(cuser, normalize(c->name))) { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
294 g_free(cuser); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
295 return c; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
296 } |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
297 cnv = cnv->next; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
298 } |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
299 g_free(cuser); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
300 return NULL; |
| 66 | 301 } |
| 302 | |
|
625
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
303 void delete_conversation(struct conversation *c) |
| 66 | 304 { |
| 3517 | 305 plugin_event(event_del_conversation, c); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
306 conversations = g_list_remove(conversations, c); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
307 if (c->fg_color_dialog) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
308 gtk_widget_destroy(c->fg_color_dialog); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
309 if (c->bg_color_dialog) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
310 gtk_widget_destroy(c->bg_color_dialog); |
|
625
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
311 if (c->font_dialog) |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
312 gtk_widget_destroy(c->font_dialog); |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
313 if (c->smiley_dialog) |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
314 gtk_widget_destroy(c->smiley_dialog); |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
315 if (c->link_dialog) |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
316 gtk_widget_destroy(c->link_dialog); |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
317 if (c->log_dialog) |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
318 gtk_widget_destroy(c->log_dialog); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
319 if (c->save_icon) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
320 gtk_widget_destroy(c->save_icon); |
| 3122 | 321 c->send_history = g_list_first(c->send_history); |
| 322 while (c->send_history) { | |
| 323 if (c->send_history->data) | |
| 324 g_free(c->send_history->data); | |
| 325 c->send_history = c->send_history->next; | |
| 326 } | |
| 327 g_list_free(c->send_history); | |
| 2993 | 328 if (c->typing_timeout) |
| 4168 | 329 g_source_remove(c->typing_timeout); |
| 3596 | 330 if (c->type_again_timeout) |
| 4168 | 331 g_source_remove(c->type_again_timeout); |
|
1479
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
332 g_string_free(c->history, TRUE); |
|
625
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
333 g_free(c); |
| 66 | 334 } |
| 335 | |
| 336 void update_font_buttons() | |
| 337 { | |
| 338 GList *cnv = conversations; | |
| 339 struct conversation *c; | |
| 340 | |
| 341 while (cnv) { | |
| 342 c = (struct conversation *)cnv->data; | |
| 343 | |
| 344 if (c->bold) | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
345 gtk_widget_set_sensitive(c->bold, |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
346 ((font_options & OPT_FONT_BOLD)) ? FALSE : TRUE); |
| 66 | 347 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
348 if (c->italic) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
349 gtk_widget_set_sensitive(c->italic, |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
350 ((font_options & OPT_FONT_ITALIC)) ? FALSE : TRUE); |
| 66 | 351 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
352 if (c->underline) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
353 gtk_widget_set_sensitive(c->underline, |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
354 ((font_options & OPT_FONT_UNDERLINE)) ? FALSE : TRUE); |
| 66 | 355 |
| 356 cnv = cnv->next; | |
| 357 } | |
| 358 } | |
| 359 | |
| 360 /* | |
| 361 void update_transparency() | |
| 362 { | |
| 363 GList *cnv = conversations; | |
| 364 struct conversation *c; | |
| 365 | |
| 366 This func should be uncalled! | |
| 367 | |
| 368 while(cnv) { | |
| 369 c = (struct conversation *)cnv->data; | |
| 370 | |
| 371 if (c->text) | |
| 372 gtk_html_set_transparent(GTK_HTML(c->text), | |
| 373 (transparent) ? TRUE : FALSE); | |
| 374 | |
| 375 cnv = cnv->next; | |
| 376 } | |
| 377 } | |
| 378 */ | |
| 379 | |
| 380 | |
| 381 /*------------------------------------------------------------------------*/ | |
| 382 /* Callbacks */ | |
| 383 /*------------------------------------------------------------------------*/ | |
| 384 | |
| 608 | 385 void toggle_loggle(GtkWidget *loggle, struct conversation *c) |
| 66 | 386 { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
387 if (state_lock) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
388 return; |
| 3484 | 389 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
390 if (find_log_info(c->name)) |
| 3484 | 391 rm_log(find_log_info(c->name)); |
| 3671 | 392 else if (GTK_CHECK_MENU_ITEM(c->log_button)->active) |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
393 show_log_dialog(c); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
394 else |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
395 cancel_log(NULL, c); |
| 66 | 396 } |
| 397 | |
| 3300 | 398 void toggle_sound(GtkWidget *widget, struct conversation *c) |
| 399 { | |
| 3681 | 400 if (state_lock) |
| 3682 | 401 return; |
| 3681 | 402 |
| 3300 | 403 c->makesound = !c->makesound; |
| 404 } | |
| 405 | |
| 3044 | 406 static void do_insert_image(GtkObject *obj, GtkWidget *wid) |
| 407 { | |
| 408 struct conversation *c = gtk_object_get_user_data(obj); | |
| 3466 | 409 const char *name = gtk_file_selection_get_filename(GTK_FILE_SELECTION(wid)); |
| 410 const char *filename; | |
| 411 char *buf; | |
| 3044 | 412 struct stat st; |
| 413 int id = g_slist_length(c->images) + 1; | |
| 414 | |
| 415 if (file_is_dir(name, wid)) | |
| 416 return; | |
| 3466 | 417 if (!(!c->is_chat && g_list_find(conversations, c))) |
| 3044 | 418 name = NULL; |
| 419 gtk_widget_destroy(wid); | |
| 420 if (!name) | |
| 421 return; | |
| 422 | |
| 423 if (stat(name, &st) != 0) { | |
| 424 debug_printf("Could not stat %s\n", name); | |
| 425 return; | |
| 426 } | |
| 427 | |
| 428 filename = name; | |
| 429 while (strchr(filename, '/')) | |
| 430 filename = strchr(filename, '/') + 1; | |
| 431 | |
| 3466 | 432 buf = g_strdup_printf ("<IMG SRC=\"file://%s\" ID=\"%d\" DATASIZE=\"%d\">", |
| 433 filename, id, (int)st.st_size); | |
| 3044 | 434 c->images = g_slist_append(c->images, g_strdup(name)); |
| 3790 | 435 gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(c->entry_buffer), |
| 436 buf, -1); | |
| 3466 | 437 g_free(buf); |
| 3044 | 438 } |
| 439 | |
| 440 void insert_image(GtkWidget *save, struct conversation *c) | |
| 441 { | |
| 442 char buf[BUF_LONG]; | |
| 443 GtkWidget *window = gtk_file_selection_new(_("Gaim - Insert Image")); | |
| 3630 | 444 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S, gaim_home_dir()); |
| 3044 | 445 gtk_file_selection_set_filename(GTK_FILE_SELECTION(window), buf); |
| 446 gtk_object_set_user_data(GTK_OBJECT(GTK_FILE_SELECTION(window)->ok_button), c); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
447 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(window)->ok_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
448 "clicked", G_CALLBACK(do_insert_image), window); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
449 g_signal_connect_swapped(GTK_OBJECT(GTK_FILE_SELECTION(window)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
450 "clicked", G_CALLBACK(gtk_widget_destroy), (gpointer)window); |
| 3044 | 451 gtk_widget_show(window); |
| 452 } | |
| 453 | |
| 454 | |
| 570 | 455 void insert_smiley(GtkWidget *smiley, struct conversation *c) |
| 555 | 456 { |
| 457 if (state_lock) | |
| 458 return; | |
| 3671 | 459 |
| 570 | 460 if (GTK_TOGGLE_BUTTON(smiley)->active) |
| 461 show_smiley_dialog(c, smiley); | |
| 462 else if (c->smiley_dialog) | |
| 463 close_smiley_dialog(smiley, c); | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
464 |
| 3671 | 465 gtk_widget_grab_focus(c->entry); |
| 466 | |
| 555 | 467 return; |
| 468 } | |
| 469 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
470 int close_callback(GtkWidget *widget, struct conversation *c) |
| 66 | 471 { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
472 if (c->is_chat && (widget == c->close) && !(chat_options & OPT_CHAT_ONE_WINDOW)) { |
|
814
a636ac51d15b
[gaim-migrate @ 824]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
808
diff
changeset
|
473 GtkWidget *tmp = c->window; |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1244
diff
changeset
|
474 debug_printf("chat clicked close button\n"); |
|
814
a636ac51d15b
[gaim-migrate @ 824]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
808
diff
changeset
|
475 c->window = NULL; |
|
a636ac51d15b
[gaim-migrate @ 824]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
808
diff
changeset
|
476 gtk_widget_destroy(tmp); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
477 return FALSE; |
|
814
a636ac51d15b
[gaim-migrate @ 824]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
808
diff
changeset
|
478 } |
|
a636ac51d15b
[gaim-migrate @ 824]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
808
diff
changeset
|
479 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1244
diff
changeset
|
480 debug_printf("conversation close callback\n"); |
|
814
a636ac51d15b
[gaim-migrate @ 824]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
808
diff
changeset
|
481 |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
482 if (!c->is_chat) { |
|
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2245
diff
changeset
|
483 GSList *cn = connections; |
| 3596 | 484 if (!(misc_options & OPT_MISC_STEALTH_TYPING)) |
| 485 serv_send_typing(c->gc, c->name, NOT_TYPING); | |
|
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2245
diff
changeset
|
486 while (cn) { |
|
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2245
diff
changeset
|
487 struct gaim_connection *gc = cn->data; |
|
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2245
diff
changeset
|
488 cn = cn->next; |
|
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2245
diff
changeset
|
489 if (gc->prpl->convo_closed) |
|
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2631
diff
changeset
|
490 gc->prpl->convo_closed(gc, c->name); |
|
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2245
diff
changeset
|
491 } |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
492 remove_icon(c); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
493 remove_checkbox(c); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
494 if (im_options & OPT_IM_ONE_WINDOW) { |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
495 if ((g_list_length(conversations) > 1) || |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
496 ((convo_options & OPT_CONVO_COMBINE) && |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
497 (chat_options & OPT_CHAT_ONE_WINDOW) && chats)) { |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
498 gtk_notebook_remove_page(GTK_NOTEBOOK(convo_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
499 g_list_index(conversations, c)); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
500 } else { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
501 if (c->window) |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
502 gtk_widget_destroy(c->window); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
503 c->window = NULL; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
504 all_convos = NULL; |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
505 convo_notebook = NULL; |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
506 if (convo_options & OPT_CONVO_COMBINE) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
507 all_chats = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
508 chat_notebook = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
509 } |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
510 } |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
511 } else { |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
512 if (c->window) |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
513 gtk_widget_destroy(c->window); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
514 c->window = NULL; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
515 } |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
516 } else { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
517 if (chat_options & OPT_CHAT_ONE_WINDOW) { |
|
2891
58baac124b0d
[gaim-migrate @ 2904]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2877
diff
changeset
|
518 if ((convo_options & OPT_CONVO_COMBINE) && (im_options & OPT_IM_ONE_WINDOW) |
|
58baac124b0d
[gaim-migrate @ 2904]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2877
diff
changeset
|
519 && (conversations || chats->next)) { |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
520 gtk_notebook_remove_page(GTK_NOTEBOOK(chat_notebook), |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
521 g_list_index(chats, c) + |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
522 g_list_length(conversations)); |
|
2891
58baac124b0d
[gaim-migrate @ 2904]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2877
diff
changeset
|
523 } else if (g_list_length(chats) > 1) { |
|
58baac124b0d
[gaim-migrate @ 2904]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2877
diff
changeset
|
524 gtk_notebook_remove_page(GTK_NOTEBOOK(chat_notebook), |
|
58baac124b0d
[gaim-migrate @ 2904]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2877
diff
changeset
|
525 g_list_index(chats, c)); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
526 } else { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
527 if (c->window) |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
528 gtk_widget_destroy(c->window); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
529 c->window = NULL; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
530 all_chats = NULL; |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
531 chat_notebook = NULL; |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
532 if (convo_options & OPT_CONVO_COMBINE) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
533 all_convos = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
534 convo_notebook = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
535 } |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
536 } |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
537 } else { |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
538 if (c->window) |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
539 gtk_widget_destroy(c->window); |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
540 c->window = NULL; |
|
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
541 } |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
542 } |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
543 |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
544 if (c->fg_color_dialog) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
545 gtk_widget_destroy(c->fg_color_dialog); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
546 c->fg_color_dialog = NULL; |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
547 if (c->bg_color_dialog) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
548 gtk_widget_destroy(c->bg_color_dialog); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
549 c->bg_color_dialog = NULL; |
|
625
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
550 if (c->font_dialog) |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
551 gtk_widget_destroy(c->font_dialog); |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
552 c->font_dialog = NULL; |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
553 if (c->smiley_dialog) |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
554 gtk_widget_destroy(c->smiley_dialog); |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
555 c->smiley_dialog = NULL; |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
556 if (c->link_dialog) |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
557 gtk_widget_destroy(c->link_dialog); |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
558 c->link_dialog = NULL; |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
559 if (c->log_dialog) |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
560 gtk_widget_destroy(c->log_dialog); |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
561 c->log_dialog = NULL; |
|
ea41ca1658b5
[gaim-migrate @ 635]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
624
diff
changeset
|
562 |
|
511
3133ab511d92
[gaim-migrate @ 521]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
502
diff
changeset
|
563 if (c->is_chat) { |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
564 chats = g_list_remove(chats, c); |
|
1063
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1034
diff
changeset
|
565 if (c->gc) |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1034
diff
changeset
|
566 serv_chat_leave(c->gc, c->id); |
|
2017
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2004
diff
changeset
|
567 else |
|
eee309c0de93
[gaim-migrate @ 2027]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2004
diff
changeset
|
568 delete_chat(c); |
|
511
3133ab511d92
[gaim-migrate @ 521]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
502
diff
changeset
|
569 } else { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
570 delete_conversation(c); |
|
511
3133ab511d92
[gaim-migrate @ 521]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
502
diff
changeset
|
571 } |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
572 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
573 return TRUE; |
| 66 | 574 } |
| 575 | |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
661
diff
changeset
|
576 void set_font_face(char *newfont, struct conversation *c) |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
577 { |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
661
diff
changeset
|
578 char *pre_fontface; |
| 3473 | 579 |
| 580 sprintf(c->fontface, "%s", newfont && *newfont ? newfont : DEFAULT_FONT_FACE); | |
|
688
6b1345121dd3
[gaim-migrate @ 698]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
687
diff
changeset
|
581 c->hasfont = 1; |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
582 |
|
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
583 pre_fontface = g_strconcat("<FONT FACE=\"", c->fontface, "\">", NULL); |
| 3790 | 584 surround(c, pre_fontface, "</FONT>"); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
585 gtk_widget_grab_focus(c->entry); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
586 g_free(pre_fontface); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
587 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
588 |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
589 gint delete_all_convo(GtkWidget *w, GdkEventAny *e, gpointer d) |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
590 { |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
591 if (w == all_convos) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
592 while (conversations) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
593 struct conversation *c = conversations->data; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
594 close_callback(c->close, c); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
595 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
596 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
597 if (w == all_chats) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
598 while (chats) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
599 struct conversation *c = chats->data; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
600 close_callback(c->close, c); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
601 } |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
602 } |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
603 return FALSE; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
604 } |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
605 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
606 static gint delete_event_convo(GtkWidget *w, GdkEventAny *e, struct conversation *c) |
| 66 | 607 { |
| 608 delete_conversation(c); | |
| 609 return FALSE; | |
| 610 } | |
| 611 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
612 void add_callback(GtkWidget *widget, struct conversation *c) |
| 66 | 613 { |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
614 struct buddy *b = find_buddy(c->gc, c->name); |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
615 if (b) { |
| 2745 | 616 show_confirm_del(c->gc, c->name); |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
617 } else if (c->gc) |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2662
diff
changeset
|
618 show_add_buddy(c->gc, c->name, NULL, NULL); |
| 66 | 619 |
| 620 gtk_widget_grab_focus(c->entry); | |
| 621 } | |
| 622 | |
| 623 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
624 void block_callback(GtkWidget *widget, struct conversation *c) |
| 66 | 625 { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
626 if (c->gc) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
627 show_add_perm(c->gc, c->name, FALSE); |
| 66 | 628 gtk_widget_grab_focus(c->entry); |
| 629 } | |
| 630 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
631 void warn_callback(GtkWidget *widget, struct conversation *c) |
| 66 | 632 { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
633 show_warn_dialog(c->gc, c->name); |
| 66 | 634 gtk_widget_grab_focus(c->entry); |
| 635 } | |
| 636 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
637 void info_callback(GtkWidget *w, struct conversation *c) |
| 66 | 638 { |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
639 if (c->is_chat) { |
| 3762 | 640 GtkTreeIter iter; |
| 641 GtkTreeModel *mod = gtk_tree_view_get_model(GTK_TREE_VIEW(c->list)); | |
| 642 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(c->list)); | |
| 643 gchar *name; | |
| 644 | |
| 645 if (gtk_tree_selection_get_selected(sel, NULL, &iter)) { | |
| 646 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &name, -1); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
647 } else { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
648 return; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
649 } |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
650 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
651 serv_get_info(c->gc, name); |
| 3762 | 652 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
653 } else { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
654 serv_get_info(c->gc, c->name); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
655 gtk_widget_grab_focus(c->entry); |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
656 } |
| 66 | 657 } |
| 658 | |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
659 static void move_next_tab(GtkNotebook *notebook, gboolean chat) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
660 { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
661 int currpage = gtk_notebook_get_current_page(notebook); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
662 int convlen; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
663 GList *cnv; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
664 struct conversation *d = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
665 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
666 if ((convo_options & OPT_CONVO_COMBINE) && |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
667 (im_options & OPT_IM_ONE_WINDOW) && |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
668 (chat_options & OPT_CHAT_ONE_WINDOW)) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
669 convlen = g_list_length(conversations); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
670 else |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
671 convlen = 0; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
672 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
673 if (chat) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
674 /* if chat, find next unread chat */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
675 cnv = g_list_nth(chats, currpage - convlen); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
676 while (cnv) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
677 d = cnv->data; |
| 2993 | 678 if (d->unseen > 0) |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
679 break; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
680 cnv = cnv->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
681 d = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
682 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
683 if (d) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
684 gtk_notebook_set_page(notebook, convlen + g_list_index(chats, d)); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
685 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
686 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
687 } else { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
688 /* else find next unread convo */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
689 cnv = g_list_nth(conversations, currpage); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
690 while (cnv) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
691 d = cnv->data; |
| 2993 | 692 if (d->unseen > 0) |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
693 break; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
694 cnv = cnv->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
695 d = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
696 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
697 if (d) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
698 gtk_notebook_set_page(notebook, g_list_index(conversations, d)); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
699 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
700 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
701 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
702 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
703 if (convo_options & OPT_CONVO_COMBINE) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
704 if (chat && (im_options & OPT_IM_ONE_WINDOW)) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
705 /* if chat find next unread convo */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
706 cnv = conversations; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
707 while (cnv) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
708 d = cnv->data; |
| 2993 | 709 if (d->unseen > 0) |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
710 break; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
711 cnv = cnv->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
712 d = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
713 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
714 if (d) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
715 gtk_notebook_set_page(notebook, g_list_index(conversations, d)); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
716 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
717 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
718 } else if (!chat && (chat_options & OPT_CHAT_ONE_WINDOW)) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
719 /* else find next unread chat */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
720 cnv = chats; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
721 while (cnv) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
722 d = cnv->data; |
| 2993 | 723 if (d->unseen > 0) |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
724 break; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
725 cnv = cnv->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
726 d = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
727 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
728 if (d) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
729 gtk_notebook_set_page(notebook, convlen + g_list_index(chats, d)); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
730 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
731 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
732 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
733 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
734 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
735 if (chat) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
736 /* if chat find first unread chat */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
737 cnv = chats; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
738 while (cnv) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
739 d = cnv->data; |
| 2993 | 740 if (d->unseen > 0) |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
741 break; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
742 cnv = cnv->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
743 d = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
744 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
745 if (d) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
746 gtk_notebook_set_page(notebook, convlen + g_list_index(chats, d)); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
747 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
748 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
749 } else { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
750 /* else find first unread convo */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
751 cnv = conversations; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
752 while (cnv) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
753 d = cnv->data; |
| 2993 | 754 if (d->unseen > 0) |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
755 break; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
756 cnv = cnv->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
757 d = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
758 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
759 if (d) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
760 gtk_notebook_set_page(notebook, g_list_index(conversations, d)); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
761 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
762 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
763 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
764 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
765 /* go to next page */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
766 if (currpage + 1 == g_list_length(notebook->children)) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
767 gtk_notebook_set_page(notebook, 0); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
768 else |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
769 gtk_notebook_next_page(notebook); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
770 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
771 |
| 3612 | 772 #define SEND_TYPED_TIMEOUT 5000 |
| 773 | |
| 3596 | 774 gboolean send_typed(gpointer data) |
| 775 { | |
| 776 struct conversation *c = (struct conversation*)data; | |
| 777 if (c && c->gc && c->name) { | |
| 778 c->type_again = 1; | |
| 779 serv_send_typing(c->gc, c->name, TYPED); | |
| 3790 | 780 debug_printf("typed...\n"); |
| 3596 | 781 } |
| 782 return FALSE; | |
| 783 } | |
| 784 | |
| 3790 | 785 gboolean keypress_callback(GtkWidget *entry, GdkEventKey *event, struct conversation *c) |
| 66 | 786 { |
|
1411
a3e472534370
[gaim-migrate @ 1421]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1403
diff
changeset
|
787 if (event->keyval == GDK_Escape) { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
788 if (convo_options & OPT_CONVO_ESC_CAN_CLOSE) { |
|
1411
a3e472534370
[gaim-migrate @ 1421]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1403
diff
changeset
|
789 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
1464
ae075ecc7c34
[gaim-migrate @ 1474]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
790 close_callback(c->close, c); |
| 2993 | 791 c = NULL; |
|
1411
a3e472534370
[gaim-migrate @ 1421]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1403
diff
changeset
|
792 } |
|
2363
08c66712364c
[gaim-migrate @ 2376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2345
diff
changeset
|
793 } else if (event->keyval == GDK_Page_Up) { |
|
2749
8ff0bd0f7347
[gaim-migrate @ 2762]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2748
diff
changeset
|
794 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
| 3626 | 795 if(!(event->state & GDK_CONTROL_MASK)) |
| 796 gtk_imhtml_page_up(GTK_IMHTML(c->text)); | |
|
2363
08c66712364c
[gaim-migrate @ 2376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2345
diff
changeset
|
797 } else if (event->keyval == GDK_Page_Down) { |
|
2749
8ff0bd0f7347
[gaim-migrate @ 2762]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2748
diff
changeset
|
798 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
| 3626 | 799 if(!(event->state & GDK_CONTROL_MASK)) |
| 800 gtk_imhtml_page_down(GTK_IMHTML(c->text)); | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
801 } else if ((event->keyval == GDK_F2) && (convo_options & OPT_CONVO_F2_TOGGLES)) { |
|
1455
d113c7e2c5f1
[gaim-migrate @ 1465]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1453
diff
changeset
|
802 gtk_imhtml_show_comments(GTK_IMHTML(c->text), !GTK_IMHTML(c->text)->comments); |
|
1872
efc899af4912
[gaim-migrate @ 1882]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1867
diff
changeset
|
803 } else if ((event->keyval == GDK_Return) || (event->keyval == GDK_KP_Enter)) { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
804 if ((event->state & GDK_CONTROL_MASK) && (convo_options & OPT_CONVO_CTL_ENTER)) { |
| 3790 | 805 send_callback(NULL, c); |
|
1442
2f4e6269b001
[gaim-migrate @ 1452]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1441
diff
changeset
|
806 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
2748
497868102c90
[gaim-migrate @ 2761]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2745
diff
changeset
|
807 return TRUE; |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2767
diff
changeset
|
808 } else if (!(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) && (convo_options & OPT_CONVO_ENTER_SENDS)) { |
| 3790 | 809 send_callback(NULL, c); |
|
573
9566a53cde23
[gaim-migrate @ 583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
810 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
2748
497868102c90
[gaim-migrate @ 2761]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2745
diff
changeset
|
811 return TRUE; |
|
573
9566a53cde23
[gaim-migrate @ 583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
812 } else { |
| 3790 | 813 return FALSE; |
|
573
9566a53cde23
[gaim-migrate @ 583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
814 } |
|
2483
e73ca8d8d358
[gaim-migrate @ 2496]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2460
diff
changeset
|
815 } else if ((event->state & GDK_CONTROL_MASK) && (event->keyval == 'm')) { |
|
e73ca8d8d358
[gaim-migrate @ 2496]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2460
diff
changeset
|
816 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
| 3790 | 817 gtk_text_buffer_insert_at_cursor(c->entry_buffer, "\n", 1); |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
818 } else if (event->state & GDK_CONTROL_MASK) { |
| 3122 | 819 switch (event->keyval) { |
| 820 case GDK_Up: | |
| 821 if (!c->send_history) | |
| 822 break; | |
| 823 if (!c->send_history->prev) { | |
| 3790 | 824 GtkTextIter start, end; |
| 3122 | 825 if (c->send_history->data) |
| 826 g_free(c->send_history->data); | |
| 3790 | 827 gtk_text_buffer_get_start_iter(c->entry_buffer, &start); |
| 828 gtk_text_buffer_get_end_iter(c->entry_buffer, &end); | |
| 829 c->send_history->data = gtk_text_buffer_get_text(c->entry_buffer, | |
| 830 &start, &end, FALSE); | |
| 3122 | 831 } |
| 832 if (c->send_history->next && c->send_history->next->data) { | |
| 833 c->send_history = c->send_history->next; | |
| 3790 | 834 gtk_text_buffer_set_text(c->entry_buffer, c->send_history->data, -1); |
| 3122 | 835 } |
| 836 | |
| 837 break; | |
| 838 case GDK_Down: | |
| 839 if (!c->send_history) | |
| 840 break; | |
| 841 if (c->send_history->prev) { | |
| 842 c->send_history = c->send_history->prev; | |
| 843 if (c->send_history->data) { | |
| 3790 | 844 gtk_text_buffer_set_text(c->entry_buffer, c->send_history->data, -1); |
| 3122 | 845 } |
| 846 } | |
| 847 break; | |
| 848 } | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
849 if (convo_options & OPT_CONVO_CTL_CHARS) { |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
850 switch (event->keyval) { |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
851 case 'i': |
|
1621
cf2071b095ca
[gaim-migrate @ 1631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1617
diff
changeset
|
852 case 'I': |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
853 quiet_set(c->italic, |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
854 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->italic))); |
| 3790 | 855 do_italic(c->italic, c); |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
856 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
857 break; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
858 case 'u': /* ctl-u is GDK_Clear, which clears the line */ |
|
1621
cf2071b095ca
[gaim-migrate @ 1631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1617
diff
changeset
|
859 case 'U': |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
860 quiet_set(c->underline, |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
861 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
862 (c->underline))); |
| 3790 | 863 do_underline(c->underline, c); |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
864 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
865 break; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
866 case 'b': /* ctl-b is GDK_Left, which moves backwards */ |
|
1621
cf2071b095ca
[gaim-migrate @ 1631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1617
diff
changeset
|
867 case 'B': |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
868 quiet_set(c->bold, |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
869 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->bold))); |
| 3790 | 870 do_bold(c->bold, c); |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
871 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
872 break; |
| 3159 | 873 case '-': |
| 3790 | 874 do_small(NULL, c); |
| 3159 | 875 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
| 876 break; | |
| 877 case '=': | |
| 878 case '+': | |
| 3790 | 879 do_big(NULL, c); |
| 3159 | 880 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
| 881 break; | |
| 882 case '0': | |
| 3790 | 883 do_normal(NULL, c); |
| 3159 | 884 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
| 885 break; | |
| 886 case 'f': | |
| 887 case 'F': | |
| 888 quiet_set(c->font, | |
| 889 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->font))); | |
| 890 toggle_font(c->font, c); | |
| 891 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
| 892 break; | |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
893 } |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
894 } |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
895 if (convo_options & OPT_CONVO_CTL_SMILEYS) { |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
896 char buf[7]; |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
897 buf[0] = '\0'; |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
898 switch (event->keyval) { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
899 case '1': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
900 sprintf(buf, ":-)"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
901 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
902 case '2': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
903 sprintf(buf, ":-("); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
904 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
905 case '3': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
906 sprintf(buf, ";-)"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
907 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
908 case '4': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
909 sprintf(buf, ":-P"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
910 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
911 case '5': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
912 sprintf(buf, "=-O"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
913 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
914 case '6': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
915 sprintf(buf, ":-*"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
916 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
917 case '7': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
918 sprintf(buf, ">:o"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
919 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
920 case '8': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
921 sprintf(buf, "8-)"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
922 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
923 case '!': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
924 sprintf(buf, ":-$"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
925 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
926 case '@': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
927 sprintf(buf, ":-!"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
928 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
929 case '#': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
930 sprintf(buf, ":-["); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
931 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
932 case '$': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
933 sprintf(buf, "O:-)"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
934 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
935 case '%': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
936 sprintf(buf, ":-/"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
937 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
938 case '^': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
939 sprintf(buf, ":'("); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
940 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
941 case '&': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
942 sprintf(buf, ":-X"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
943 break; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
944 case '*': |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
945 sprintf(buf, ":-D"); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
946 break; |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
947 } |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
948 if (buf[0]) { |
| 3790 | 949 gtk_text_buffer_insert_at_cursor(c->entry_buffer, buf, -1); |
|
830
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
950 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
60284aef22f0
[gaim-migrate @ 840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
829
diff
changeset
|
951 } |
|
573
9566a53cde23
[gaim-migrate @ 583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
952 } |
|
2631
a2cf3cac7e66
[gaim-migrate @ 2644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2625
diff
changeset
|
953 if (event->keyval == 'l') { |
|
2340
b16642ac87b2
[gaim-migrate @ 2353]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2335
diff
changeset
|
954 gtk_imhtml_clear(GTK_IMHTML(c->text)); |
|
2631
a2cf3cac7e66
[gaim-migrate @ 2644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2625
diff
changeset
|
955 g_string_free(c->history, TRUE); |
|
a2cf3cac7e66
[gaim-migrate @ 2644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2625
diff
changeset
|
956 c->history = g_string_new(""); |
| 3168 | 957 } else if ((event->keyval == 'w') && (convo_options & OPT_CONVO_CTL_W_CLOSES)) { |
| 3159 | 958 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
| 959 close_callback(c->close, c); | |
| 960 c = NULL; | |
| 961 return TRUE; | |
| 962 } else if (event->keyval == 'n') { | |
| 963 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
| 964 show_im_dialog(); | |
| 965 } else if (event->keyval == 'z') { | |
| 966 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); | |
| 3630 | 967 #ifndef _WIN32 |
| 3159 | 968 XIconifyWindow(GDK_DISPLAY(), |
| 969 GDK_WINDOW_XWINDOW(c->window->window), | |
| 970 ((_XPrivDisplay)GDK_DISPLAY())->default_screen); | |
| 3630 | 971 #endif |
|
2631
a2cf3cac7e66
[gaim-migrate @ 2644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2625
diff
changeset
|
972 } |
| 3159 | 973 |
| 974 | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
975 if ((!c->is_chat && (im_options & OPT_IM_ONE_WINDOW)) || |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
976 (c->is_chat && (chat_options & OPT_CHAT_ONE_WINDOW))) { |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
977 GtkWidget *notebook = (c->is_chat ? chat_notebook : convo_notebook); |
|
1595
f281f4d94973
[gaim-migrate @ 1605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1594
diff
changeset
|
978 if (event->keyval == '[') { |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
979 gtk_notebook_prev_page(GTK_NOTEBOOK(notebook)); |
|
1587
69a004b5820a
[gaim-migrate @ 1597]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1583
diff
changeset
|
980 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
1595
f281f4d94973
[gaim-migrate @ 1605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1594
diff
changeset
|
981 } else if (event->keyval == ']') { |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
982 gtk_notebook_next_page(GTK_NOTEBOOK(notebook)); |
|
1587
69a004b5820a
[gaim-migrate @ 1597]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1583
diff
changeset
|
983 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
1595
f281f4d94973
[gaim-migrate @ 1605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1594
diff
changeset
|
984 } else if (event->keyval == GDK_Tab) { |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
985 move_next_tab(GTK_NOTEBOOK(notebook), c->is_chat); |
|
1587
69a004b5820a
[gaim-migrate @ 1597]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1583
diff
changeset
|
986 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
2735
aeae739353d0
[gaim-migrate @ 2748]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2725
diff
changeset
|
987 return TRUE; |
|
1587
69a004b5820a
[gaim-migrate @ 1597]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1583
diff
changeset
|
988 } |
|
69a004b5820a
[gaim-migrate @ 1597]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1583
diff
changeset
|
989 } |
|
2385
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
990 } else if ((event->keyval == GDK_Tab) && c->is_chat && (chat_options & OPT_CHAT_TAB_COMPLETE)) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
991 tab_complete(c); |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
992 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2722
diff
changeset
|
993 return TRUE; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
994 } else if (((!c->is_chat && (im_options & OPT_IM_ONE_WINDOW)) || |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
995 (c->is_chat && (chat_options & OPT_CHAT_ONE_WINDOW))) && |
|
2421
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2386
diff
changeset
|
996 (event->state & GDK_MOD1_MASK) && (event->keyval > '0') && (event->keyval <= '9')) { |
| 3629 | 997 GtkWidget *notebook = NULL; |
| 3628 | 998 notebook = (c->is_chat ? chat_notebook : convo_notebook); |
|
1692
a312d64a995d
[gaim-migrate @ 1702]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1663
diff
changeset
|
999 gtk_notebook_set_page(GTK_NOTEBOOK(notebook), event->keyval - '1'); |
|
1621
cf2071b095ca
[gaim-migrate @ 1631]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1617
diff
changeset
|
1000 gtk_signal_emit_stop_by_name(GTK_OBJECT(entry), "key_press_event"); |
|
573
9566a53cde23
[gaim-migrate @ 583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
1001 } |
| 66 | 1002 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2722
diff
changeset
|
1003 return FALSE; |
| 66 | 1004 } |
| 1005 | |
| 3790 | 1006 /* This guy just kills a single right click from being propagated any |
| 1007 * further. I have no idea *why* we need this, but we do ... It | |
| 1008 * prevents right clicks on the GtkTextView in a convo dialog from | |
| 1009 * going all the way down to the notebook. I suspect a bug in | |
| 1010 * GtkTextView, but I'm not ready to point any fingers yet. */ | |
| 1011 gboolean stop_rclick_callback(GtkWidget *widget, GdkEventButton *event, gpointer data) | |
| 1012 { | |
| 1013 if (event->button == 3 && event->type == GDK_BUTTON_PRESS) { | |
| 1014 /* right single click */ | |
| 1015 g_signal_stop_emission_by_name(G_OBJECT(widget), "button_press_event"); | |
| 1016 return TRUE; | |
| 1017 } | |
| 3867 | 1018 return FALSE; |
| 3790 | 1019 } |
| 1020 | |
| 3731 | 1021 static void got_typing_keypress(struct conversation *c, gboolean first) { |
| 1022 /* we know we got something, so we at least have to make sure we don't send | |
| 1023 * TYPED any time soon */ | |
| 1024 if(c->type_again_timeout) | |
| 4168 | 1025 g_source_remove(c->type_again_timeout); |
| 1026 c->type_again_timeout = g_timeout_add(SEND_TYPED_TIMEOUT, send_typed, c); | |
| 3731 | 1027 |
| 1028 /* we send typed if this is the first character typed, or if we're due | |
| 1029 * to send another one */ | |
| 1030 if(first || (c->type_again != 0 && time(NULL) > c->type_again)) { | |
| 1031 int timeout = serv_send_typing(c->gc, c->name, TYPING); | |
| 1032 if(timeout) | |
| 1033 c->type_again = time(NULL) + timeout; | |
| 1034 else | |
| 1035 c->type_again = 0; | |
| 1036 } | |
| 1037 } | |
| 1038 | |
| 3790 | 1039 void delete_text_callback(GtkTextBuffer *textbuffer, GtkTextIter *start_pos, GtkTextIter *end_pos, gpointer user_data) { |
| 3731 | 1040 struct conversation *c = user_data; |
| 1041 | |
| 1042 if(!c) | |
| 1043 return; | |
| 1044 | |
| 1045 if (misc_options & OPT_MISC_STEALTH_TYPING) | |
| 1046 return; | |
| 1047 | |
| 3790 | 1048 if(gtk_text_iter_is_start(start_pos) && gtk_text_iter_is_end(end_pos)) { |
| 4168 | 1049 if(c->type_again_timeout) { |
| 1050 g_source_remove(c->type_again_timeout); | |
| 1051 c->type_again_timeout = 0; | |
| 1052 } | |
| 3731 | 1053 serv_send_typing(c->gc, c->name, NOT_TYPING); |
| 1054 } else { | |
| 1055 /* we're deleting, but not all of it, so it counts as typing */ | |
| 1056 got_typing_keypress(c, FALSE); | |
| 1057 } | |
| 1058 } | |
| 1059 | |
| 3790 | 1060 void insert_text_callback(GtkTextBuffer *textbuffer, GtkTextIter *position, gchar *new_text, gint new_text_length, gpointer user_data) { |
| 3731 | 1061 struct conversation *c = user_data; |
| 1062 | |
| 1063 if(!c) | |
| 1064 return; | |
| 1065 | |
| 1066 if (misc_options & OPT_MISC_STEALTH_TYPING) | |
| 1067 return; | |
| 1068 | |
| 3790 | 1069 got_typing_keypress(c, (gtk_text_iter_is_start(position) && gtk_text_iter_is_end(position))); |
| 3731 | 1070 } |
| 66 | 1071 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1072 void send_callback(GtkWidget *widget, struct conversation *c) |
| 66 | 1073 { |
|
2102
899c22dcee42
[gaim-migrate @ 2112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2094
diff
changeset
|
1074 char *buf, *buf2; |
| 3044 | 1075 int limit; |
| 1076 gulong length=0; | |
|
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1077 int err = 0; |
| 3122 | 1078 GList *first; |
| 3790 | 1079 GtkTextIter start_iter, end_iter; |
| 66 | 1080 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1081 if (!c->gc) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1082 return; |
|
1100
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1078
diff
changeset
|
1083 |
| 3790 | 1084 gtk_text_buffer_get_start_iter(c->entry_buffer, &start_iter); |
| 1085 gtk_text_buffer_get_end_iter(c->entry_buffer, &end_iter); | |
| 1086 buf2 = gtk_text_buffer_get_text(c->entry_buffer, &start_iter, &end_iter, FALSE); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
1087 limit = 32 * 1024; /* you shouldn't be sending more than 32k in your messages. that's a book. */ |
|
738
97c7b2f61cb5
[gaim-migrate @ 748]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
700
diff
changeset
|
1088 buf = g_malloc(limit); |
|
97c7b2f61cb5
[gaim-migrate @ 748]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
700
diff
changeset
|
1089 g_snprintf(buf, limit, "%s", buf2); |
|
753
cd62f69d187e
[gaim-migrate @ 763]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
745
diff
changeset
|
1090 g_free(buf2); |
|
796
4783a3b6859d
[gaim-migrate @ 806]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
795
diff
changeset
|
1091 if (!strlen(buf)) { |
|
4783a3b6859d
[gaim-migrate @ 806]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
795
diff
changeset
|
1092 g_free(buf); |
|
4783a3b6859d
[gaim-migrate @ 806]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
795
diff
changeset
|
1093 return; |
|
4783a3b6859d
[gaim-migrate @ 806]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
795
diff
changeset
|
1094 } |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1095 |
| 3122 | 1096 first = g_list_first(c->send_history); |
| 1097 if (first->data) | |
| 1098 g_free(first->data); | |
| 1099 first->data = g_strdup(buf); | |
| 1100 c->send_history = g_list_prepend(first, NULL); | |
| 1101 | |
|
738
97c7b2f61cb5
[gaim-migrate @ 748]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
700
diff
changeset
|
1102 buf2 = g_malloc(limit); |
|
97c7b2f61cb5
[gaim-migrate @ 748]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
700
diff
changeset
|
1103 |
|
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2699
diff
changeset
|
1104 if (c->gc->flags & OPT_CONN_HTML) { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
1105 if (convo_options & OPT_CONVO_SEND_LINKS) |
|
1889
c81f3dd0e58e
[gaim-migrate @ 1899]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1881
diff
changeset
|
1106 linkify_text(buf); |
|
c81f3dd0e58e
[gaim-migrate @ 1899]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1881
diff
changeset
|
1107 |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1108 if (font_options & OPT_FONT_BOLD) { |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1109 g_snprintf(buf2, limit, "<B>%s</B>", buf); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1110 strcpy(buf, buf2); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1111 } |
| 66 | 1112 |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1113 if (font_options & OPT_FONT_ITALIC) { |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1114 g_snprintf(buf2, limit, "<I>%s</I>", buf); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1115 strcpy(buf, buf2); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1116 } |
| 66 | 1117 |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1118 if (font_options & OPT_FONT_UNDERLINE) { |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1119 g_snprintf(buf2, limit, "<U>%s</U>", buf); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1120 strcpy(buf, buf2); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1121 } |
| 66 | 1122 |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1123 if (font_options & OPT_FONT_STRIKE) { |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1124 g_snprintf(buf2, limit, "<STRIKE>%s</STRIKE>", buf); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1125 strcpy(buf, buf2); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1126 } |
|
101
a9aa982272f9
[gaim-migrate @ 111]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
88
diff
changeset
|
1127 |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1128 if ((font_options & OPT_FONT_FACE) || c->hasfont) { |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1129 g_snprintf(buf2, limit, "<FONT FACE=\"%s\">%s</FONT>", c->fontface, buf); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1130 strcpy(buf, buf2); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1131 } |
|
488
0fcb7e7a263c
[gaim-migrate @ 498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
474
diff
changeset
|
1132 |
|
2699
092c5a1ddf72
[gaim-migrate @ 2712]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1133 if (font_options & OPT_FONT_SIZE) { |
|
092c5a1ddf72
[gaim-migrate @ 2712]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1134 g_snprintf(buf2, limit, "<FONT SIZE=\"%d\">%s</FONT>", fontsize, buf); |
|
1441
5c67b8794991
[gaim-migrate @ 1451]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1440
diff
changeset
|
1135 strcpy(buf, buf2); |
|
5c67b8794991
[gaim-migrate @ 1451]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1440
diff
changeset
|
1136 } |
|
5c67b8794991
[gaim-migrate @ 1451]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1440
diff
changeset
|
1137 |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1138 if ((font_options & OPT_FONT_FGCOL) || c->hasfg) { |
| 4171 | 1139 g_snprintf(buf2, limit, "<FONT COLOR=\"#%02X%02X%02X\">%s</FONT>", |
| 1140 c->fgcol.red/256, c->fgcol.green/256, c->fgcol.blue/256, buf); | |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1141 strcpy(buf, buf2); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1142 } |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
661
diff
changeset
|
1143 |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1144 if ((font_options & OPT_FONT_BGCOL) || c->hasbg) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
1145 g_snprintf(buf2, limit, "<BODY BGCOLOR=\"#%02X%02X%02X\">%s</BODY>", |
| 4171 | 1146 c->bgcol.red/256, c->bgcol.green/256, c->bgcol.blue/256, buf); |
|
1370
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1147 strcpy(buf, buf2); |
|
776bb4c6c0b8
[gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1352
diff
changeset
|
1148 } |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
661
diff
changeset
|
1149 } |
|
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
661
diff
changeset
|
1150 |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1151 quiet_set(c->bold, FALSE); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1152 quiet_set(c->italic, FALSE); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1153 quiet_set(c->underline, FALSE); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1154 quiet_set(c->font, FALSE); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1155 quiet_set(c->fgcolorbtn, FALSE); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1156 quiet_set(c->bgcolorbtn, FALSE); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1157 quiet_set(c->link, FALSE); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1158 gtk_widget_grab_focus(c->entry); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1872
diff
changeset
|
1159 |
|
101
a9aa982272f9
[gaim-migrate @ 111]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
88
diff
changeset
|
1160 { |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
389
diff
changeset
|
1161 char *buffy = g_strdup(buf); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1162 enum gaim_event evnt = c->is_chat ? event_chat_send : event_im_send; |
|
2345
a49e8f1afbc4
[gaim-migrate @ 2358]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2340
diff
changeset
|
1163 int plugin_return = plugin_event(evnt, c->gc, |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
1164 c->is_chat ? (void *)c->id : c->name, |
| 3517 | 1165 &buffy); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
389
diff
changeset
|
1166 if (!buffy) { |
|
102
8c301530b2a3
[gaim-migrate @ 112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
1167 g_free(buf2); |
|
796
4783a3b6859d
[gaim-migrate @ 806]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
795
diff
changeset
|
1168 g_free(buf); |
|
102
8c301530b2a3
[gaim-migrate @ 112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
1169 return; |
|
8c301530b2a3
[gaim-migrate @ 112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
101
diff
changeset
|
1170 } |
|
1100
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1078
diff
changeset
|
1171 if (plugin_return) { |
| 3790 | 1172 gtk_text_buffer_set_text(c->entry_buffer, "", -1); |
|
1100
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1078
diff
changeset
|
1173 g_free(buffy); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1078
diff
changeset
|
1174 g_free(buf2); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1078
diff
changeset
|
1175 g_free(buf); |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1078
diff
changeset
|
1176 return; |
|
f168625b63fe
[gaim-migrate @ 1110]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1078
diff
changeset
|
1177 } |
|
738
97c7b2f61cb5
[gaim-migrate @ 748]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
700
diff
changeset
|
1178 g_snprintf(buf, limit, "%s", buffy); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
389
diff
changeset
|
1179 g_free(buffy); |
|
101
a9aa982272f9
[gaim-migrate @ 111]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
88
diff
changeset
|
1180 } |
| 3048 | 1181 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1182 if (!c->is_chat) { |
|
2102
899c22dcee42
[gaim-migrate @ 2112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2094
diff
changeset
|
1183 char *buffy; |
| 3048 | 1184 gboolean binary = FALSE; |
|
2102
899c22dcee42
[gaim-migrate @ 2112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2094
diff
changeset
|
1185 |
|
899c22dcee42
[gaim-migrate @ 2112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2094
diff
changeset
|
1186 buffy = g_strdup(buf); |
| 3517 | 1187 plugin_event(event_im_displayed_sent, c->gc, c->name, &buffy); |
|
2102
899c22dcee42
[gaim-migrate @ 2112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2094
diff
changeset
|
1188 if (buffy) { |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
1189 int imflags = 0; |
|
2239
b7ff2ca1d653
[gaim-migrate @ 2249]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2231
diff
changeset
|
1190 if (c->check && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->check))) |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
1191 imflags = IM_FLAG_CHECKBOX; |
| 3048 | 1192 |
| 3033 | 1193 if (c->images) { |
| 3159 | 1194 int id = 0, offset = 0; |
| 1195 char *bigbuf = NULL; | |
| 3033 | 1196 GSList *tmplist = c->images; |
| 1197 id = 1; | |
| 3048 | 1198 |
| 3033 | 1199 while (tmplist) { |
| 3044 | 1200 FILE *imgfile; |
| 1201 char *filename; | |
| 1202 struct stat st; | |
| 3033 | 1203 char imgtag[1024]; |
| 3048 | 1204 |
| 3033 | 1205 if (stat(tmplist->data, &st) != 0) { |
|
4201
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4184
diff
changeset
|
1206 debug_printf("Could not stat %s\n", (char *)tmplist->data); |
| 3048 | 1207 tmplist = tmplist->next; |
| 1208 continue; | |
| 3033 | 1209 } |
| 3044 | 1210 |
| 1211 /* Here we check to make sure the user still wants to send the | |
| 1212 * image. He may have deleted the <img> tag in which case we | |
| 1213 * don't want to send the binary data. */ | |
| 1214 filename = tmplist->data; | |
| 1215 while (strchr(filename, '/')) | |
| 1216 filename = strchr(filename, '/') + 1; | |
| 1217 g_snprintf(imgtag, sizeof(imgtag), | |
| 1218 "<IMG SRC=\"file://%s\" ID=\"%d\" DATASIZE=\"%d\">", | |
| 1219 filename, id, (int)st.st_size); | |
| 3048 | 1220 |
| 1221 if (strstr(buffy, imgtag) == 0) { | |
|
4201
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4184
diff
changeset
|
1222 debug_printf("Not sending image: %s\n", (char *)tmplist->data); |
| 3044 | 1223 tmplist = tmplist->next; |
| 1224 continue; | |
| 1225 } | |
| 3048 | 1226 if (!binary) { |
| 1227 length = strlen(buffy) + strlen("<BINARY></BINARY>"); | |
| 1228 bigbuf = g_malloc(length + 1); | |
| 1229 g_snprintf(bigbuf, strlen(buffy) + strlen("<BINARY> ") + 1, | |
| 1230 "%s<BINARY>", buffy); | |
| 1231 offset = strlen(buffy) + strlen("<BINARY>"); | |
| 1232 binary = TRUE; | |
| 1233 } | |
| 3033 | 1234 g_snprintf(imgtag, sizeof(imgtag), |
| 1235 "<DATA ID=\"%d\" SIZE=\"%d\">", | |
| 3044 | 1236 id, (int)st.st_size); |
| 1237 | |
| 1238 length = length + strlen(imgtag) + st.st_size + strlen("</DATA>");; | |
| 3048 | 1239 bigbuf = g_realloc(bigbuf, length + 1); |
| 3044 | 1240 if (!(imgfile = fopen(tmplist->data, "r"))) { |
|
4201
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4184
diff
changeset
|
1241 debug_printf("Could not open %s\n", (char *)tmplist->data); |
| 3048 | 1242 tmplist = tmplist->next; |
| 3044 | 1243 continue; |
| 3033 | 1244 } |
| 1245 g_snprintf(bigbuf + offset, strlen(imgtag) + 1, "%s", imgtag); | |
| 1246 offset = offset + strlen(imgtag); | |
| 3044 | 1247 offset = offset + fread(bigbuf + offset, 1, st.st_size, imgfile); |
| 1248 fclose(imgfile); | |
| 1249 g_snprintf(bigbuf + offset, strlen("</DATA>") + 1, "</DATA>"); | |
| 3033 | 1250 offset= offset + strlen("</DATA>"); |
| 1251 id++; | |
| 1252 tmplist = tmplist->next; | |
| 1253 } | |
| 3048 | 1254 if (binary) { |
| 1255 g_snprintf(bigbuf + offset, strlen("</BINARY>") + 1, "</BINARY>"); | |
| 1256 err =serv_send_im(c->gc, c->name, bigbuf, length, imflags); | |
| 1257 } else { | |
| 1258 err = serv_send_im(c->gc, c->name, buffy, -1, imflags); | |
| 1259 } | |
| 3044 | 1260 if (err > 0) { |
| 1261 GSList *tempy = c->images; | |
| 1262 while (tempy) { | |
| 1263 g_free(tempy->data); | |
| 1264 tempy = tempy->next; | |
| 1265 } | |
| 1266 g_slist_free(tempy); | |
| 1267 c->images = NULL; | |
| 3048 | 1268 if (binary) |
| 1269 write_to_conv(c, bigbuf, WFLAG_SEND, NULL, time(NULL), length); | |
| 1270 else | |
| 1271 write_to_conv(c, buffy, WFLAG_SEND, NULL, time(NULL), -1); | |
| 3060 | 1272 if (c->makesound) |
| 1273 play_sound(SND_SEND); | |
| 3033 | 1274 if (im_options & OPT_IM_POPDOWN) |
| 1275 gtk_widget_hide(c->window); | |
| 1276 | |
| 3044 | 1277 |
| 3033 | 1278 } |
| 3048 | 1279 if (binary) |
| 1280 g_free(bigbuf); | |
| 3033 | 1281 } else { |
| 3044 | 1282 err =serv_send_im(c->gc, c->name, buffy, -1, imflags); |
| 1283 if (err > 0) { | |
| 3033 | 1284 write_to_conv(c, buf, WFLAG_SEND, NULL, time(NULL), -1); |
| 3060 | 1285 if (c->makesound) |
| 1286 play_sound(SND_SEND); | |
| 3044 | 1287 if (im_options & OPT_IM_POPDOWN) |
| 1288 gtk_widget_hide(c->window); | |
| 1289 } | |
| 3033 | 1290 } |
|
2102
899c22dcee42
[gaim-migrate @ 2112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2094
diff
changeset
|
1291 g_free(buffy); |
|
899c22dcee42
[gaim-migrate @ 2112]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2094
diff
changeset
|
1292 } |
| 3033 | 1293 |
|
502
4d1e39112cbd
[gaim-migrate @ 512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
494
diff
changeset
|
1294 } else { |
|
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2160
diff
changeset
|
1295 err = serv_chat_send(c->gc, c->id, buf); |
|
502
4d1e39112cbd
[gaim-migrate @ 512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
494
diff
changeset
|
1296 |
|
4d1e39112cbd
[gaim-migrate @ 512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
494
diff
changeset
|
1297 /* no sound because we do that when we receive our message */ |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1298 } |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1299 |
|
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1300 g_free(buf2); |
|
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1301 g_free(buf); |
|
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1302 |
|
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1303 if (err < 0) { |
|
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1304 if (err == -E2BIG) |
| 3427 | 1305 do_error_dialog(_("Unable to send message. The message is too large"), NULL, GAIM_ERROR); |
| 3044 | 1306 else if (err == -ENOTCONN) |
| 1307 debug_printf("Not yet connected\n"); | |
|
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1308 else |
| 3427 | 1309 do_error_dialog(_("Unable to send message"), NULL, GAIM_ERROR); |
|
2832
e0eeda0a9ab9
[gaim-migrate @ 2845]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2831
diff
changeset
|
1310 } else { |
| 3790 | 1311 gtk_text_buffer_set_text(c->entry_buffer, "", -1); |
|
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1312 |
|
2832
e0eeda0a9ab9
[gaim-migrate @ 2845]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2831
diff
changeset
|
1313 if ((err > 0) && (away_options & OPT_AWAY_BACK_ON_IM)) { |
|
2123
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1314 if (awaymessage != NULL) { |
|
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1315 do_im_back(); |
|
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1316 } else if (c->gc->away) { |
|
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1317 serv_set_away(c->gc, GAIM_AWAY_CUSTOM, NULL); |
|
56c4382f2909
[gaim-migrate @ 2133]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1318 } |
|
1403
c0aa7fdc0a93
[gaim-migrate @ 1413]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
1319 } |
| 66 | 1320 } |
| 1321 } | |
| 1322 | |
| 3790 | 1323 gboolean entry_key_pressed(GtkTextBuffer *buffer) |
| 66 | 1324 { |
| 3790 | 1325 check_everything(buffer); |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2722
diff
changeset
|
1326 return FALSE; |
| 66 | 1327 } |
| 1328 | |
| 1329 /*------------------------------------------------------------------------*/ | |
| 1330 /* HTML-type stuff */ | |
| 1331 /*------------------------------------------------------------------------*/ | |
| 1332 | |
| 3790 | 1333 int count_tag(GtkTextBuffer *buffer, char *s1, char *s2) |
| 66 | 1334 { |
| 1335 char *p1, *p2; | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1336 int res = 0; |
| 3790 | 1337 GtkTextIter start, end; |
| 1338 char *tmp, *tmpo; | |
| 1339 | |
| 1340 gtk_text_buffer_get_start_iter(buffer, &start); | |
| 1341 gtk_text_buffer_get_iter_at_mark(buffer, &end, | |
| 1342 gtk_text_buffer_get_insert(buffer)); | |
| 1343 | |
| 1344 tmp = tmpo = gtk_text_buffer_get_text(buffer, &start, &end, FALSE); | |
| 66 | 1345 do { |
| 1346 p1 = strstr(tmp, s1); | |
| 1347 p2 = strstr(tmp, s2); | |
| 1348 if (p1 && p2) { | |
| 1349 if (p1 < p2) { | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1350 res = 1; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1351 tmp = p1 + strlen(s1); |
| 66 | 1352 } else if (p2 < p1) { |
| 1353 res = 0; | |
| 1354 tmp = p2 + strlen(s2); | |
| 1355 } | |
| 1356 } else { | |
| 1357 if (p1) { | |
| 1358 res = 1; | |
| 1359 tmp = p1 + strlen(s1); | |
| 1360 } else if (p2) { | |
| 1361 res = 0; | |
| 1362 tmp = p2 + strlen(s2); | |
| 1363 } | |
| 1364 } | |
| 1365 } while (p1 || p2); | |
| 1366 g_free(tmpo); | |
| 1367 return res; | |
| 1368 } | |
| 1369 | |
| 1370 | |
| 3790 | 1371 gboolean invert_tags(GtkTextBuffer *buffer, char *s1, char *s2, gboolean really) |
| 66 | 1372 { |
| 3790 | 1373 GtkTextIter start1, start2, end1, end2; |
| 1374 char *b1, *b2; | |
| 1375 | |
| 1376 if (gtk_text_buffer_get_selection_bounds(buffer, &start1, &end2)) { | |
| 1377 start2 = start1; end1 = end2; | |
| 1378 if (!gtk_text_iter_forward_chars(&start2, strlen(s1))) | |
| 1379 return FALSE; | |
| 1380 if (!gtk_text_iter_backward_chars(&end1, strlen(s2))) | |
| 1381 return FALSE; | |
| 1382 b1 = gtk_text_buffer_get_text(buffer, &start1, &start2, FALSE); | |
| 1383 b2 = gtk_text_buffer_get_text(buffer, &end1, &end2, FALSE); | |
| 1384 if (!g_strncasecmp(b1, s1, strlen(s1)) && | |
| 1385 !g_strncasecmp(b2, s2, strlen(s2))) { | |
| 1386 if (really) { | |
| 1387 GtkTextMark *m_end1, *m_end2; | |
| 1388 | |
| 1389 m_end1= gtk_text_buffer_create_mark(buffer, "m1", &end1, TRUE); | |
| 1390 m_end2= gtk_text_buffer_create_mark(buffer, "m2", &end2, TRUE); | |
| 1391 | |
| 1392 gtk_text_buffer_delete(buffer, &start1, &start2); | |
| 1393 gtk_text_buffer_get_iter_at_mark(buffer, &end1, m_end1); | |
| 1394 gtk_text_buffer_get_iter_at_mark(buffer, &end2, m_end2); | |
| 1395 gtk_text_buffer_delete(buffer, &end1, &end2); | |
| 1396 gtk_text_buffer_delete_mark(buffer, m_end1); | |
| 1397 gtk_text_buffer_delete_mark(buffer, m_end2); | |
| 1398 } | |
| 1399 g_free(b1); g_free(b2); | |
| 1400 return TRUE; | |
| 66 | 1401 } |
| 3790 | 1402 g_free(b1);g_free(b2); |
| 66 | 1403 } |
| 3790 | 1404 return FALSE; |
| 66 | 1405 } |
| 1406 | |
| 1407 | |
| 3790 | 1408 void remove_tags(struct conversation *c, char *tag) |
| 66 | 1409 { |
| 3790 | 1410 GtkTextIter start, end, m_start, m_end; |
| 1411 | |
| 1412 if (!gtk_text_buffer_get_selection_bounds(c->entry_buffer, | |
| 1413 &start, &end)) | |
| 1414 return; | |
| 1415 | |
| 1416 /* FIXMEif (strstr(tag, "<FONT SIZE=")) { | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1417 while ((t = strstr(t, "<FONT SIZE="))) { |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1418 if (((t - s) < finish) && ((t - s) >= start)) { |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1419 gtk_editable_delete_text(GTK_EDITABLE(entry), (t - s), |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1420 (t - s) + strlen(tag)); |
|
846
4b05985bae5e
[gaim-migrate @ 856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
843
diff
changeset
|
1421 g_free(s); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
1422 s = gtk_editable_get_chars(GTK_EDITABLE(entry), 0, -1); |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
1423 t = s; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1424 } else |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1425 t++; |
| 68 | 1426 } |
| 3790 | 1427 } else*/ { |
| 1428 while (gtk_text_iter_forward_search(&start, tag, 0, &m_start, &m_end, &end)) { | |
| 1429 gtk_text_buffer_delete(c->entry_buffer, &m_start, &m_end); | |
| 1430 gtk_text_buffer_get_selection_bounds(c->entry_buffer, &start, &end); | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
1431 } |
| 66 | 1432 } |
| 1433 } | |
| 1434 | |
| 3790 | 1435 void surround(struct conversation *c, char *pre, char *post) |
| 66 | 1436 { |
| 3790 | 1437 GtkTextIter start, end; |
| 1438 GtkTextMark *mark_start, *mark_end; | |
| 1439 | |
| 1440 if (gtk_text_buffer_get_selection_bounds(c->entry_buffer, &start, &end)) { | |
| 1441 remove_tags(c, pre); | |
| 1442 remove_tags(c, post); | |
| 1443 | |
| 1444 mark_start = gtk_text_buffer_create_mark(c->entry_buffer, "m1", &start, TRUE); | |
| 1445 mark_end = gtk_text_buffer_create_mark(c->entry_buffer, "m2", &end, FALSE); | |
| 1446 gtk_text_buffer_insert(c->entry_buffer, &start, pre, -1); | |
| 1447 gtk_text_buffer_get_selection_bounds(c->entry_buffer, &start, &end); | |
| 1448 gtk_text_buffer_insert(c->entry_buffer, &end, post, -1); | |
| 1449 gtk_text_buffer_get_iter_at_mark(c->entry_buffer, &start, mark_start); | |
| 1450 gtk_text_buffer_move_mark_by_name(c->entry_buffer, "selection_bound", &start); | |
| 66 | 1451 } else { |
| 3790 | 1452 gtk_text_buffer_insert(c->entry_buffer, &start, pre, -1); |
| 1453 gtk_text_buffer_insert(c->entry_buffer, &start, post, -1); | |
| 1454 mark_start = gtk_text_buffer_get_insert(c->entry_buffer); | |
| 1455 gtk_text_buffer_get_iter_at_mark(c->entry_buffer, &start, mark_start); | |
| 1456 gtk_text_iter_backward_chars(&start, strlen(post)); | |
| 1457 gtk_text_buffer_place_cursor(c->entry_buffer, &start); | |
| 66 | 1458 } |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1459 |
| 3790 | 1460 gtk_widget_grab_focus(c->entry); |
| 66 | 1461 } |
| 1462 | |
| 3790 | 1463 void advance_past(struct conversation *c, char *pre, char *post) |
| 66 | 1464 { |
| 3790 | 1465 GtkTextIter current_pos, start, end; |
| 1466 | |
| 1467 if (invert_tags(c->entry_buffer, pre, post, 1)) | |
| 66 | 1468 return; |
| 3790 | 1469 |
| 1470 gtk_text_buffer_get_iter_at_mark(c->entry_buffer, ¤t_pos, | |
| 1471 gtk_text_buffer_get_insert(c->entry_buffer)); | |
| 1472 if (gtk_text_iter_forward_search(¤t_pos, post, 0, &start, &end, NULL)) | |
| 1473 gtk_text_buffer_place_cursor(c->entry_buffer, &end); | |
| 1474 else | |
| 1475 gtk_text_buffer_insert_at_cursor(c->entry_buffer, post, -1); | |
| 1476 | |
| 1477 gtk_widget_grab_focus(c->entry); | |
| 66 | 1478 } |
| 1479 | |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1480 void toggle_fg_color(GtkWidget *color, struct conversation *c) |
| 66 | 1481 { |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1482 if (state_lock) |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1483 return; |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1484 if (GTK_TOGGLE_BUTTON(color)->active) |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1485 show_fgcolor_dialog(c, color); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1486 else if (c->fg_color_dialog) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1487 cancel_fgcolor(color, c); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1488 else |
| 3790 | 1489 advance_past(c, "<FONT COLOR>", "</FONT>"); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1490 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1491 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1492 void toggle_bg_color(GtkWidget *color, struct conversation *c) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1493 { |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1494 if (state_lock) |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1495 return; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1496 if (GTK_TOGGLE_BUTTON(color)->active) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1497 show_bgcolor_dialog(c, color); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1498 else if (c->bg_color_dialog) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
856
diff
changeset
|
1499 cancel_bgcolor(color, c); |
|
189
50dc3db25513
[gaim-migrate @ 199]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
187
diff
changeset
|
1500 else |
| 3790 | 1501 advance_past(c, "<BODY BGCOLOR>", "</BODY>"); |
| 66 | 1502 } |
| 1503 | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1504 void toggle_font(GtkWidget *font, struct conversation *c) |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
1505 { |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1506 if (state_lock) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1507 return; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1508 if (GTK_TOGGLE_BUTTON(font)->active) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1509 show_font_dialog(c, font); |
|
563
8d6e2de1fb64
[gaim-migrate @ 573]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
557
diff
changeset
|
1510 else if (c->font_dialog) |
|
8d6e2de1fb64
[gaim-migrate @ 573]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
557
diff
changeset
|
1511 cancel_font(font, c); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1512 else |
| 3790 | 1513 advance_past(c, "<FONT FACE>", "</FONT>"); |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
230
diff
changeset
|
1514 } |
|
611
0f7e5ff95f71
[gaim-migrate @ 621]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
610
diff
changeset
|
1515 |
| 3671 | 1516 void insert_link_cb(GtkWidget *w, struct conversation *c) |
| 1517 { | |
| 1518 show_add_link(c->link, c); | |
| 1519 } | |
| 1520 | |
| 608 | 1521 void toggle_link(GtkWidget *linky, struct conversation *c) |
| 1522 { | |
| 1523 if (state_lock) | |
| 1524 return; | |
| 3671 | 1525 |
| 1526 if (GTK_TOGGLE_BUTTON(c->link)->active) | |
| 1527 show_add_link(c->link, c); | |
| 1528 | |
| 608 | 1529 else if (c->link_dialog) |
| 3671 | 1530 cancel_link(c->link, c); |
| 608 | 1531 else |
| 3790 | 1532 advance_past(c, "<A HREF>", "</A>"); |
| 3671 | 1533 |
| 1534 gtk_widget_grab_focus(c->entry); | |
| 608 | 1535 } |
| 66 | 1536 |
| 3790 | 1537 void do_strike(GtkWidget *strike, struct conversation *c) |
| 66 | 1538 { |
| 1539 if (state_lock) | |
| 1540 return; | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1541 |
| 66 | 1542 if (GTK_TOGGLE_BUTTON(strike)->active) |
| 3790 | 1543 surround(c, "<STRIKE>", "</STRIKE>"); |
| 66 | 1544 else |
| 3790 | 1545 advance_past(c, "<STRIKE>", "</STRIKE>"); |
| 1546 | |
| 1547 gtk_widget_grab_focus(c->entry); | |
| 66 | 1548 } |
| 1549 | |
| 3790 | 1550 void do_bold(GtkWidget *bold, struct conversation *c) |
| 66 | 1551 { |
| 1552 if (state_lock) | |
| 1553 return; | |
| 1554 if (GTK_TOGGLE_BUTTON(bold)->active) | |
| 3790 | 1555 surround(c, "<B>", "</B>"); |
| 66 | 1556 else |
| 3790 | 1557 advance_past(c, "<B>", "</B>"); |
| 1558 | |
| 1559 gtk_widget_grab_focus(c->entry); | |
| 66 | 1560 } |
| 1561 | |
| 3790 | 1562 void do_underline(GtkWidget *underline, struct conversation *c) |
| 66 | 1563 { |
| 1564 if (state_lock) | |
| 1565 return; | |
| 1566 if (GTK_TOGGLE_BUTTON(underline)->active) | |
| 3790 | 1567 surround(c, "<U>", "</U>"); |
| 66 | 1568 else |
| 3790 | 1569 advance_past(c, "<U>", "</U>"); |
| 1570 | |
| 1571 gtk_widget_grab_focus(c->entry); | |
| 66 | 1572 } |
| 1573 | |
| 3790 | 1574 void do_italic(GtkWidget *italic, struct conversation *c) |
| 66 | 1575 { |
| 1576 if (state_lock) | |
| 1577 return; | |
| 1578 if (GTK_TOGGLE_BUTTON(italic)->active) | |
| 3790 | 1579 surround(c, "<I>", "</I>"); |
| 66 | 1580 else |
| 3790 | 1581 advance_past(c, "<I>", "</I>"); |
| 1582 | |
| 1583 gtk_widget_grab_focus(c->entry); | |
| 66 | 1584 } |
| 1585 | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
1586 /* html code to modify font sizes must all be the same length, */ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
1587 /* currently set to 15 chars */ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
210
diff
changeset
|
1588 |
| 3790 | 1589 void do_small(GtkWidget *small, struct conversation *c) |
| 66 | 1590 { |
| 1591 if (state_lock) | |
| 1592 return; | |
| 3671 | 1593 |
| 3790 | 1594 surround(c, "<FONT SIZE=\"1\">", "</FONT>"); |
| 1595 | |
| 1596 gtk_widget_grab_focus(c->entry); | |
| 66 | 1597 } |
| 1598 | |
| 3790 | 1599 void do_normal(GtkWidget *normal, struct conversation *c) |
| 66 | 1600 { |
| 1601 if (state_lock) | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1602 return; |
| 3671 | 1603 |
| 3790 | 1604 surround(c, "<FONT SIZE=\"3\">", "</FONT>"); |
| 1605 | |
| 1606 gtk_widget_grab_focus(c->entry); | |
| 66 | 1607 } |
| 1608 | |
| 3790 | 1609 void do_big(GtkWidget *big, struct conversation *c) |
| 66 | 1610 { |
| 1611 if (state_lock) | |
| 1612 return; | |
| 3671 | 1613 |
| 3790 | 1614 surround(c, "<FONT SIZE=\"5\">", "</FONT>"); |
| 1615 | |
| 1616 gtk_widget_grab_focus(c->entry); | |
| 66 | 1617 } |
| 1618 | |
| 3790 | 1619 void check_everything(GtkTextBuffer *buffer) |
| 66 | 1620 { |
| 1621 struct conversation *c; | |
| 206 | 1622 |
| 3790 | 1623 c = (struct conversation *)g_object_get_data(G_OBJECT(buffer), "user_data"); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1624 if (!c) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1625 return; |
| 3790 | 1626 if (invert_tags(c->entry_buffer, "<B>", "</B>", 0)) |
| 66 | 1627 quiet_set(c->bold, TRUE); |
| 3790 | 1628 else if (count_tag(c->entry_buffer, "<B>", "</B>")) |
| 66 | 1629 quiet_set(c->bold, TRUE); |
| 1630 else | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1631 quiet_set(c->bold, FALSE); |
| 3790 | 1632 if (invert_tags(c->entry_buffer, "<I>", "</I>", 0)) |
| 66 | 1633 quiet_set(c->italic, TRUE); |
| 3790 | 1634 else if (count_tag(c->entry_buffer, "<I>", "</I>")) |
| 66 | 1635 quiet_set(c->italic, TRUE); |
| 1636 else | |
| 1637 quiet_set(c->italic, FALSE); | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1638 |
| 3790 | 1639 if (invert_tags(c->entry_buffer, "<FONT COLOR", "</FONT>", 0)) |
| 854 | 1640 quiet_set(c->fgcolorbtn, TRUE); |
| 3790 | 1641 else if (count_tag(c->entry_buffer, "<FONT COLOR", "</FONT>")) |
| 854 | 1642 quiet_set(c->fgcolorbtn, TRUE); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1643 else |
| 854 | 1644 quiet_set(c->fgcolorbtn, FALSE); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1645 |
| 3790 | 1646 if (invert_tags(c->entry_buffer, "<BODY BGCOLOR", "</BODY>", 0)) |
|
861
00fb90babcb2
[gaim-migrate @ 871]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
860
diff
changeset
|
1647 quiet_set(c->bgcolorbtn, TRUE); |
| 3790 | 1648 else if (count_tag(c->entry_buffer, "<BODY BGCOLOR", "</BODY>")) |
|
861
00fb90babcb2
[gaim-migrate @ 871]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
860
diff
changeset
|
1649 quiet_set(c->bgcolorbtn, TRUE); |
|
00fb90babcb2
[gaim-migrate @ 871]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
860
diff
changeset
|
1650 else |
|
00fb90babcb2
[gaim-migrate @ 871]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
860
diff
changeset
|
1651 quiet_set(c->bgcolorbtn, FALSE); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1652 |
| 3790 | 1653 if (invert_tags(c->entry_buffer, "<FONT FACE", "</FONT>", 0)) |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1654 quiet_set(c->font, TRUE); |
| 3790 | 1655 else if (count_tag(c->entry_buffer, "<FONT FACE", "</FONT>")) |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1656 quiet_set(c->font, TRUE); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1657 else |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
309
diff
changeset
|
1658 quiet_set(c->font, FALSE); |
| 66 | 1659 |
| 3790 | 1660 if (invert_tags(c->entry_buffer, "<A HREF", "</A>", 0)) |
| 66 | 1661 quiet_set(c->link, TRUE); |
| 3790 | 1662 else if (count_tag(c->entry_buffer, "<A HREF", "</A>")) |
| 66 | 1663 quiet_set(c->link, TRUE); |
| 1664 else | |
| 1665 quiet_set(c->link, FALSE); | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1666 |
| 3790 | 1667 if (invert_tags(c->entry_buffer, "<U>", "</U>", 0)) |
| 66 | 1668 quiet_set(c->underline, TRUE); |
| 3790 | 1669 else if (count_tag(c->entry_buffer, "<U>", "</U>")) |
| 66 | 1670 quiet_set(c->underline, TRUE); |
| 1671 else | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1672 quiet_set(c->underline, FALSE); |
| 66 | 1673 } |
| 1674 | |
| 1675 | |
| 1676 /*------------------------------------------------------------------------*/ | |
| 1677 /* Takin care of the window.. */ | |
| 1678 /*------------------------------------------------------------------------*/ | |
| 1679 | |
| 3431 | 1680 static char* nick_colors[] = { |
| 1681 "#ba55d3", /* Medium Orchid */ | |
| 1682 "#ee82ee", /* Violet */ | |
| 1683 "#c715b4", /* Medium Violet Red */ | |
| 1684 "#ff69b4", /* Hot Pink */ | |
| 1685 "#ff6347", /* Tomato */ | |
| 1686 "#fa8c00", /* Dark Orange */ | |
| 1687 "#fa8072" /* Salmon */ | |
| 1688 "#b22222", /* Fire Brick */ | |
| 1689 "#f4a460", /* Sandy Brown */ | |
| 1690 "#cd5c5c", /* Indian Red */ | |
| 1691 "#bc8f8f", /* Rosy Brown */ | |
| 1692 "#f0e68c", /* Khaki */ | |
| 1693 "#bdb76b", /* Dark Khaki */ | |
| 1694 "#228b22", /* Forest Green */ | |
| 1695 "#9acd32", /* Yellow Green */ | |
| 1696 "#32cd32", /* Lime Green */ | |
| 1697 "#3cb371", /* Medium Sea Green */ | |
| 1698 "#2e8b57", /* Sea Green */ | |
| 1699 "#8fbc8f", /* Dark Sea Green */ | |
| 1700 "#66cdaa", /* Medium Aquamarine */ | |
| 1701 "#5f9ea0", /* Cadet Blue */ | |
| 1702 "#48d1cc", /* Medium Turquoise */ | |
| 1703 "#00ced1", /* Dark Turquoise */ | |
| 1704 "#4682b4", /* Stell Blue */ | |
| 1705 "#00bfff", /* Deep Sky Blue */ | |
| 1706 "#1690ff", /* Dodger Blue */ | |
| 1707 "#4169ff", /* Royal Blue */ | |
| 1708 "#6a5acd", /* Slate Blue */ | |
| 1709 "#6495ed", /* Cornflower Blue */ | |
| 1710 "#708090", /* Slate gray */ | |
| 1711 "#ffdead", /* Navajo White */ | |
| 1712 }; | |
| 1713 #define NUM_NICK_COLORS (sizeof(nick_colors) / sizeof(char *)) | |
| 66 | 1714 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1715 /* this is going to be interesting since the conversation could either be a |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1716 * normal IM conversation or a chat window. but hopefully it won't matter */ |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1717 void write_to_conv(struct conversation *c, char *what, int flags, char *who, time_t mtime, gint length) |
| 66 | 1718 { |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
1719 char buf[BUF_LONG]; |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1720 char *str; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1721 FILE *fd; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1722 char colour[10]; |
|
741
58a6e6e26695
[gaim-migrate @ 751]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
738
diff
changeset
|
1723 struct buddy *b; |
| 1244 | 1724 int gtk_font_options = 0; |
|
1440
6330d0bb309f
[gaim-migrate @ 1450]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1439
diff
changeset
|
1725 GString *logstr; |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
1726 char buf2[BUF_LONG]; |
| 1764 | 1727 char mdate[64]; |
| 2993 | 1728 int unhighlight = 0; |
| 4032 | 1729 char *withfonttag; |
| 3799 | 1730 |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1731 if (c->is_chat && (!c->gc || !g_slist_find(c->gc->buddy_chats, c))) |
|
2267
837aa71710c5
[gaim-migrate @ 2277]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2264
diff
changeset
|
1732 return; |
|
837aa71710c5
[gaim-migrate @ 2277]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2264
diff
changeset
|
1733 |
|
2447
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1734 if (!c->is_chat && !g_list_find(conversations, c)) |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1735 return; |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1736 |
|
2794
2d3f47783a22
[gaim-migrate @ 2807]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2788
diff
changeset
|
1737 gtk_widget_show(c->window); |
|
2d3f47783a22
[gaim-migrate @ 2807]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2788
diff
changeset
|
1738 |
|
1772
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1739 if (!c->is_chat || !(c->gc->prpl->options & OPT_PROTO_UNIQUE_CHATNAME)) { |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1740 if (!who) { |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1741 if (flags & WFLAG_SEND) { |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1742 b = find_buddy(c->gc, c->gc->username); |
| 4228 | 1743 if (get_buddy_alias_only(b)) |
| 4227 | 1744 who = get_buddy_alias(b); |
| 3205 | 1745 else if (c->gc->user->alias[0]) |
| 1746 who = c->gc->user->alias; | |
|
2210
3a6fd1e8f00a
[gaim-migrate @ 2220]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2202
diff
changeset
|
1747 else if (c->gc->displayname[0]) |
|
3a6fd1e8f00a
[gaim-migrate @ 2220]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2202
diff
changeset
|
1748 who = c->gc->displayname; |
|
1772
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1749 else |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1750 who = c->gc->username; |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1751 } else { |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1752 b = find_buddy(c->gc, c->name); |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1753 if (b) |
| 4227 | 1754 who = get_buddy_alias(b); |
|
1772
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1755 else |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1756 who = c->name; |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1757 } |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1758 } else { |
|
896432d66303
[gaim-migrate @ 1782]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1764
diff
changeset
|
1759 b = find_buddy(c->gc, who); |
|
745
d693b83e4933
[gaim-migrate @ 755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
741
diff
changeset
|
1760 if (b) |
| 4227 | 1761 who = get_buddy_alias(b); |
|
741
58a6e6e26695
[gaim-migrate @ 751]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
738
diff
changeset
|
1762 } |
|
474
7720d0f9da8e
[gaim-migrate @ 484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
473
diff
changeset
|
1763 } |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1764 |
|
2447
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1765 strftime(mdate, sizeof(mdate), "%H:%M:%S", localtime(&mtime)); |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1766 |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1767 gtk_font_options = gtk_font_options ^ GTK_IMHTML_NO_COMMENTS; |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1768 |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1769 if (convo_options & OPT_CONVO_IGNORE_COLOUR) |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1770 gtk_font_options = gtk_font_options ^ GTK_IMHTML_NO_COLOURS; |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1771 |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1772 if (convo_options & OPT_CONVO_IGNORE_FONTS) |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1773 gtk_font_options = gtk_font_options ^ GTK_IMHTML_NO_FONTS; |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1774 |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1775 if (convo_options & OPT_CONVO_IGNORE_SIZES) |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1776 gtk_font_options = gtk_font_options ^ GTK_IMHTML_NO_SIZES; |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1777 |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1778 if (!(logging_options & OPT_LOG_STRIP_HTML)) |
|
6bdeb91abe4e
[gaim-migrate @ 2460]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2426
diff
changeset
|
1779 gtk_font_options = gtk_font_options ^ GTK_IMHTML_RETURN_LOG; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
1780 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1781 if (flags & WFLAG_SYSTEM) { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
1782 if (convo_options & OPT_CONVO_SHOW_TIME) |
| 1764 | 1783 g_snprintf(buf, BUF_LONG, "<FONT SIZE=\"2\">(%s) </FONT><B>%s</B>", mdate, what); |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
1784 else |
|
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1813
diff
changeset
|
1785 g_snprintf(buf, BUF_LONG, "<B>%s</B>", what); |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
1786 g_snprintf(buf2, sizeof(buf2), "<FONT SIZE=\"2\"><!--(%s) --></FONT><B>%s</B><BR>", |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
1787 mdate, what); |
| 66 | 1788 |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1789 gtk_imhtml_append_text(GTK_IMHTML(c->text), buf2, -1, 0); |
| 66 | 1790 |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1486
diff
changeset
|
1791 if (logging_options & OPT_LOG_STRIP_HTML) { |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
1792 char *t1 = strip_html(buf); |
|
1479
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1793 c->history = g_string_append(c->history, t1); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1794 c->history = g_string_append(c->history, "\n"); |
|
1486
b72a33d07ce8
[gaim-migrate @ 1496]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1479
diff
changeset
|
1795 g_free(t1); |
|
1479
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1796 } else { |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
1797 c->history = g_string_append(c->history, buf); |
|
1479
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1798 c->history = g_string_append(c->history, "<BR>\n"); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1799 } |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1800 |
| 3457 | 1801 if (!(flags & WFLAG_NOLOG) && ((c->is_chat && (logging_options & OPT_LOG_CHATS)) |
| 1802 || (!c->is_chat && (logging_options & OPT_LOG_CONVOS)) | |
| 1803 || find_log_info(c->name))) { | |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1804 char *t1; |
|
699
f8acdd22065a
[gaim-migrate @ 709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
698
diff
changeset
|
1805 char nm[256]; |
| 66 | 1806 |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1486
diff
changeset
|
1807 if (logging_options & OPT_LOG_STRIP_HTML) { |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
1808 t1 = strip_html(buf); |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1809 } else { |
|
1735
00f74db70f2d
[gaim-migrate @ 1745]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1732
diff
changeset
|
1810 t1 = buf; |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1811 } |
|
699
f8acdd22065a
[gaim-migrate @ 709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
698
diff
changeset
|
1812 if (c->is_chat) |
|
f8acdd22065a
[gaim-migrate @ 709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
698
diff
changeset
|
1813 g_snprintf(nm, 256, "%s.chat", c->name); |
|
f8acdd22065a
[gaim-migrate @ 709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
698
diff
changeset
|
1814 else |
|
f8acdd22065a
[gaim-migrate @ 709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
698
diff
changeset
|
1815 g_snprintf(nm, 256, "%s", c->name); |
| 3457 | 1816 fd = open_log_file(nm, c->is_chat); |
|
2004
699ddd727a49
[gaim-migrate @ 2014]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1970
diff
changeset
|
1817 if (fd) { |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1486
diff
changeset
|
1818 if (logging_options & OPT_LOG_STRIP_HTML) { |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1819 fprintf(fd, "%s\n", t1); |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1820 } else { |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1821 fprintf(fd, "%s<BR>\n", t1); |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1822 } |
|
1067
649199f4730e
[gaim-migrate @ 1077]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
1823 fclose(fd); |
| 936 | 1824 } |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1486
diff
changeset
|
1825 if (logging_options & OPT_LOG_STRIP_HTML) { |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1826 g_free(t1); |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1827 } |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1828 } |
|
2385
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
1829 } else if (flags & WFLAG_NOLOG) { |
|
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
1830 g_snprintf(buf, BUF_LONG, "<B><FONT COLOR=\"#777777\">%s</FONT></B><BR>", what); |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1831 gtk_imhtml_append_text(GTK_IMHTML(c->text), buf, -1, 0); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1832 } else { |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1833 if (flags & WFLAG_WHISPER) { |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1834 /* if we're whispering, it's not an autoresponse */ |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1835 if (meify(what, length)) { |
|
2138
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1836 str = g_malloc(1024); |
|
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1837 g_snprintf(str, 1024, "***%s", who); |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
1838 strcpy(colour, "#6C2585"); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1839 } else { |
|
2138
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1840 str = g_malloc(1024); |
|
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1841 g_snprintf(str, 1024, "*%s*:", who); |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
1842 strcpy(colour, "#00ff00"); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1843 } |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1844 } else { |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1845 if (meify(what, length)) { |
|
2138
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1846 str = g_malloc(1024); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1847 if (flags & WFLAG_AUTO) |
|
2138
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1848 g_snprintf(str, 1024, "%s ***%s", AUTO_RESPONSE, who); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1849 else |
|
2138
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1850 g_snprintf(str, 1024, "***%s", who); |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
1851 if (flags & WFLAG_NICK) |
|
2375
09fe1b00d31f
[gaim-migrate @ 2388]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2374
diff
changeset
|
1852 strcpy(colour, "#af7f00"); |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
1853 else |
|
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
1854 strcpy(colour, "#062585"); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1855 } else { |
|
2138
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1856 str = g_malloc(1024); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1857 if (flags & WFLAG_AUTO) |
|
2138
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1858 g_snprintf(str, 1024, "%s %s", who, AUTO_RESPONSE); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1859 else |
|
2138
cfa83a1b3d49
[gaim-migrate @ 2148]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2124
diff
changeset
|
1860 g_snprintf(str, 1024, "%s:", who); |
|
2374
9e9385cddcc6
[gaim-migrate @ 2387]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
1861 if (flags & WFLAG_NICK) |
|
2375
09fe1b00d31f
[gaim-migrate @ 2388]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2374
diff
changeset
|
1862 strcpy(colour, "#af7f00"); |
| 3367 | 1863 else if (flags & WFLAG_RECV) { |
| 1864 if (flags & WFLAG_COLORIZE) { | |
| 1865 char *u = who; | |
| 1866 int m = 0; | |
| 1867 while (*u) { | |
| 1868 m = m + *u; | |
| 1869 u++; | |
| 1870 } | |
| 1871 m = m % NUM_NICK_COLORS; | |
| 1872 strcpy(colour, nick_colors[m]); | |
| 1873 } else { | |
| 4077 | 1874 strcpy(colour, "#a82f2f"); |
| 3367 | 1875 } |
| 3807 | 1876 } else if (flags & WFLAG_SEND) |
| 4078 | 1877 strcpy(colour, "#16569e"); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1878 } |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1879 } |
| 66 | 1880 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
1881 if (convo_options & OPT_CONVO_SHOW_TIME) |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1882 g_snprintf(buf, BUF_LONG, "<FONT COLOR=\"%s\"><FONT SIZE=\"2\">(%s) </FONT>" |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
1883 "<B>%s</B></FONT> ", colour, mdate, str); |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1884 else |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1885 g_snprintf(buf, BUF_LONG, "<FONT COLOR=\"%s\"><B>%s</B></FONT> ", colour, str); |
|
1439
06a21ec0e269
[gaim-migrate @ 1449]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1438
diff
changeset
|
1886 g_snprintf(buf2, BUF_LONG, "<FONT COLOR=\"%s\"><FONT SIZE=\"2\"><!--(%s) --></FONT>" |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
1887 "<B>%s</B></FONT> ", colour, mdate, str); |
| 66 | 1888 |
|
473
f9bb7761c52b
[gaim-migrate @ 483]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
472
diff
changeset
|
1889 g_free(str); |
|
f9bb7761c52b
[gaim-migrate @ 483]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
472
diff
changeset
|
1890 |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1891 gtk_imhtml_append_text(GTK_IMHTML(c->text), buf2, -1, 0); |
| 4032 | 1892 |
| 1893 withfonttag = g_strdup_printf("<font sml=\"%s\">%s</font>", c->gc->prpl->name, what); | |
| 1894 logstr = gtk_imhtml_append_text(GTK_IMHTML(c->text), withfonttag, length, gtk_font_options); | |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1895 |
|
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2855
diff
changeset
|
1896 gtk_imhtml_append_text(GTK_IMHTML(c->text), "<BR>", -1, 0); |
| 66 | 1897 |
|
2857
7a6f33cd6721
[gaim-migrate @ 2870]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1898 /* XXX this needs to be updated for the new length argument */ |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1486
diff
changeset
|
1899 if (logging_options & OPT_LOG_STRIP_HTML) { |
|
1479
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1900 char *t1, *t2; |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1901 t1 = strip_html(buf); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1902 t2 = strip_html(what); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1903 c->history = g_string_append(c->history, t1); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1904 c->history = g_string_append(c->history, t2); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1905 c->history = g_string_append(c->history, "\n"); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1906 g_free(t1); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1907 g_free(t2); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1908 } else { |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1909 char *t1, *t2; |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1910 t1 = html_logize(buf); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1911 t2 = html_logize(what); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1912 c->history = g_string_append(c->history, t1); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1913 c->history = g_string_append(c->history, t2); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1914 c->history = g_string_append(c->history, "\n"); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1915 c->history = g_string_append(c->history, logstr->str); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1916 c->history = g_string_append(c->history, "<BR>\n"); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1917 g_free(t1); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1918 g_free(t2); |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1919 } |
|
4c62ead808a2
[gaim-migrate @ 1489]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1464
diff
changeset
|
1920 |
|
2857
7a6f33cd6721
[gaim-migrate @ 2870]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1921 /* XXX this needs to be updated for the new length argument */ |
| 3457 | 1922 if ((c->is_chat && (logging_options & OPT_LOG_CHATS)) |
| 1923 || (!c->is_chat && (logging_options & OPT_LOG_CONVOS)) || find_log_info(c->name)) { | |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1924 char *t1, *t2; |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1925 char *nm = g_malloc(256); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1926 if (c->is_chat) |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1927 g_snprintf(nm, 256, "%s.chat", c->name); |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1928 else |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
1929 g_snprintf(nm, 256, "%s", c->name); |
| 66 | 1930 |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1486
diff
changeset
|
1931 if (logging_options & OPT_LOG_STRIP_HTML) { |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1932 t1 = strip_html(buf); |
| 4032 | 1933 t2 = strip_html(withfonttag); |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1934 } else { |
|
1440
6330d0bb309f
[gaim-migrate @ 1450]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1439
diff
changeset
|
1935 t1 = html_logize(buf); |
| 4032 | 1936 t2 = html_logize(withfonttag); |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1937 } |
| 3457 | 1938 fd = open_log_file(nm, c->is_chat); |
|
2004
699ddd727a49
[gaim-migrate @ 2014]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1970
diff
changeset
|
1939 if (fd) { |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1486
diff
changeset
|
1940 if (logging_options & OPT_LOG_STRIP_HTML) { |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1941 fprintf(fd, "%s%s\n", t1, t2); |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1942 } else { |
|
1440
6330d0bb309f
[gaim-migrate @ 1450]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1439
diff
changeset
|
1943 fprintf(fd, "%s%s%s<BR>\n", t1, t2, logstr->str); |
|
6330d0bb309f
[gaim-migrate @ 1450]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1439
diff
changeset
|
1944 g_string_free(logstr, TRUE); |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1945 } |
|
1067
649199f4730e
[gaim-migrate @ 1077]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
1946 fclose(fd); |
| 936 | 1947 } |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1948 g_free(t1); |
|
1437
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1949 g_free(t2); |
|
1f0660a2c893
[gaim-migrate @ 1447]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1434
diff
changeset
|
1950 g_free(nm); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1951 } |
| 4032 | 1952 |
| 1953 g_free(withfonttag); | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1954 } |
| 66 | 1955 |
| 4032 | 1956 |
| 3801 | 1957 if (!(flags & WFLAG_NOLOG) && ((c->is_chat && (chat_options & OPT_CHAT_POPUP)) || |
| 1958 (!c->is_chat && (im_options & OPT_IM_POPUP)))) | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
1959 gdk_window_show(c->window->window); |
| 66 | 1960 |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1961 /* tab highlighting */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1962 if (c->is_chat && !(chat_options & OPT_CHAT_ONE_WINDOW)) /* if chat but not tabbed chat */ |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1963 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1964 if (!(flags & WFLAG_RECV) && !(flags & WFLAG_SYSTEM)) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1965 return; |
| 3799 | 1966 if (im_options & OPT_IM_ONE_WINDOW && ((c->unseen == 2) || ((c->unseen == 1) && !(flags & WFLAG_NICK)))) |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1967 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1968 |
| 3787 | 1969 if (flags & WFLAG_RECV) |
| 1970 c->typing_state = NOT_TYPING; | |
| 1971 | |
| 3768 | 1972 |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1973 if (c->is_chat) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1974 int offs; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1975 if ((convo_options & OPT_CONVO_COMBINE) && (im_options & OPT_IM_ONE_WINDOW)) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1976 offs = g_list_length(conversations); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1977 else |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1978 offs = 0; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1979 if (gtk_notebook_get_current_page(GTK_NOTEBOOK(chat_notebook)) == |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1980 g_list_index(chats, c) + offs) |
| 2993 | 1981 unhighlight = 1; |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1982 } else { |
| 3812 | 1983 if (im_options & OPT_IM_ONE_WINDOW) |
| 1984 if (gtk_notebook_get_current_page(GTK_NOTEBOOK(convo_notebook)) == | |
| 1985 g_list_index(conversations, c)) | |
| 1986 unhighlight = 1; | |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
1987 } |
| 3768 | 1988 |
| 1989 if (!unhighlight && flags & WFLAG_NICK) { | |
| 1990 c->unseen = 2; | |
| 1991 } else if (!unhighlight) { | |
| 1992 c->unseen = 1; | |
| 1993 } else { | |
| 1994 c->unseen = 0; | |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
1995 } |
| 3787 | 1996 update_convo_status(c); |
| 66 | 1997 } |
| 1998 | |
| 2993 | 1999 void update_progress(struct conversation *c, float percent) { |
| 3044 | 2000 |
| 2993 | 2001 if (percent >= 1 && !(c->progress)) |
| 2002 return; | |
| 2003 | |
| 2004 if (percent >= 1) { | |
| 2005 gtk_widget_destroy(c->progress); | |
| 2006 c->progress = NULL; | |
| 2007 return; | |
| 2008 } | |
| 2009 | |
| 2010 if (!c->progress) { | |
| 2011 GtkBox *box = GTK_BOX(c->text->parent->parent); | |
| 2012 c->progress = gtk_progress_bar_new(); | |
| 2013 gtk_box_pack_end(box, c->progress, FALSE, FALSE, 0); | |
| 4041 | 2014 gtk_widget_set_size_request (c->progress, 1, 8); |
| 2993 | 2015 gtk_widget_show (c->progress); |
| 2016 } | |
| 2017 | |
| 2018 if (percent < 1) | |
| 2019 gtk_progress_set_percentage(GTK_PROGRESS(c->progress), percent); | |
| 2020 } | |
| 66 | 2021 |
| 3671 | 2022 GtkWidget *build_conv_menubar(struct conversation *c) |
| 2023 { | |
| 3704 | 2024 GtkWidget *hb; |
| 3671 | 2025 GtkWidget *menubar; |
| 2026 GtkWidget *menu; | |
| 2027 GtkWidget *menuitem; | |
| 2028 | |
| 3704 | 2029 |
| 2030 hb = gtk_handle_box_new(); | |
| 2031 | |
| 3671 | 2032 menubar = gtk_menu_bar_new(); |
| 2033 | |
| 3704 | 2034 gtk_container_add(GTK_CONTAINER(hb), menubar); |
| 2035 | |
| 3671 | 2036 menu = gtk_menu_new(); |
| 2037 | |
| 2038 /* The file menu */ | |
| 2039 menuitem = gaim_new_item(NULL, _("File")); | |
| 2040 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); | |
| 4143 | 2041 gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menuitem); |
| 3671 | 2042 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2043 gaim_new_item_from_stock(menu, _("_Save Conversation"), "gtk-save-as", G_CALLBACK(save_convo), c, 0, 0, NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2044 |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2045 gaim_new_item_from_stock(menu, _("View _History"), NULL, G_CALLBACK(conv_show_log), GINT_TO_POINTER(c->name), 0, 0, NULL); |
| 3671 | 2046 |
| 2047 menuitem = gtk_menu_item_new(); | |
| 4143 | 2048 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
| 3671 | 2049 /* |
| 2050 c->sendfile_btn = gaim_new_item_from_pixbuf(menu, _("Send File"), "send-file-small.png", NULL, NULL, 0, 0, NULL); */ | |
| 2051 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2052 gaim_new_item_from_pixbuf(menu, _("Insert _URL"), "insert-link-small.png", G_CALLBACK(insert_link_cb), c, 0, 0, NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2053 c->image_menubtn = gaim_new_item_from_pixbuf(menu, _("Insert _Image"), "insert-image-small.png", G_CALLBACK(insert_image), c, 0, 0, NULL); |
| 3671 | 2054 |
| 2055 menuitem = gtk_menu_item_new(); | |
| 4143 | 2056 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
| 3671 | 2057 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2058 gaim_new_item_from_stock(menu, _("_Close"), "gtk-close", G_CALLBACK(close_callback), c, 0, 0, NULL); |
| 3671 | 2059 |
| 2060 /* The Options menu */ | |
| 2061 menu = gtk_menu_new(); | |
| 2062 | |
| 2063 menuitem = gaim_new_item(NULL, _("Options")); | |
| 2064 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); | |
| 4143 | 2065 gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menuitem); |
| 3671 | 2066 |
| 2067 /* Logging */ | |
| 2068 menuitem = gtk_check_menu_item_new_with_mnemonic(_("Enable _Logging")); | |
| 2069 c->log_button = menuitem; /* We should save this */ | |
| 2070 | |
| 2071 state_lock = 1; | |
| 3699 | 2072 |
| 3671 | 2073 if (find_log_info(c->name)) |
| 3699 | 2074 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE); |
| 3671 | 2075 else |
| 3699 | 2076 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), FALSE); |
| 2077 | |
| 3671 | 2078 state_lock = 0; |
| 2079 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2080 g_signal_connect(GTK_OBJECT(menuitem), "toggled", G_CALLBACK(toggle_loggle), c); |
| 3671 | 2081 |
| 2082 /* Sounds */ | |
| 2083 | |
| 4143 | 2084 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
| 3671 | 2085 |
| 2086 menuitem = gtk_check_menu_item_new_with_mnemonic(_("Enable _Sounds")); | |
| 2087 c->makesound = 1; | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2088 g_signal_connect(GTK_OBJECT(menuitem), "toggled", G_CALLBACK(toggle_sound), c); |
| 3679 | 2089 state_lock = 1; |
| 3671 | 2090 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE); |
| 3679 | 2091 state_lock = 0; |
| 4143 | 2092 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
| 3671 | 2093 |
| 2094 | |
| 2095 | |
| 2096 /* Now set the current values or something */ | |
| 2097 gtk_widget_set_sensitive(GTK_WIDGET(c->log_button), (logging_options & OPT_LOG_CONVOS) ? FALSE : TRUE); | |
| 2098 | |
| 3704 | 2099 gtk_widget_show_all(hb); |
| 2100 | |
| 2101 return hb; | |
| 3671 | 2102 |
| 2103 } | |
| 2104 | |
| 3689 | 2105 GtkWidget *build_conv_toolbar(struct conversation *c) |
| 3671 | 2106 { |
| 2107 GtkWidget *vbox; | |
| 2108 GtkWidget *hbox; | |
| 2109 GtkWidget *button; | |
| 2110 GtkWidget *sep; | |
| 2111 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 2112 /* | |
| 2113 c->toolbar = toolbar; | |
| 2114 c->bold = bold; | |
| 2115 c->strike = strike; | |
| 2116 c->italic = italic; | |
| 2117 c->underline = underline; | |
| 2118 c->log_button = wood; | |
| 2119 c->viewer_button = viewer; | |
| 2120 c->fgcolorbtn = fgcolorbtn; | |
| 2121 c->bgcolorbtn = bgcolorbtn; | |
| 2122 c->link = link; | |
| 2123 c->wood = wood; | |
| 2124 c->font = font; | |
| 2125 c->smiley = smiley; | |
| 2126 c->imagebtn = image; | |
| 2127 c->speaker = speaker; | |
| 2128 c->speaker_p = speaker_p; | |
| 2129 */ | |
| 2130 | |
| 2131 vbox = gtk_vbox_new(FALSE, 0); | |
| 2132 sep = gtk_hseparator_new(); | |
| 2133 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); | |
| 2134 | |
| 2135 hbox = gtk_hbox_new(FALSE, 5); | |
| 2136 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 2137 | |
| 2138 /* Bold */ | |
| 2139 button = gaim_pixbuf_toolbar_button_from_stock("gtk-bold"); | |
| 2140 gtk_size_group_add_widget(sg, button); | |
| 2141 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2142 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_bold), c); |
| 3671 | 2143 c->bold = button; /* We should remember this */ |
| 2144 | |
| 2145 /* Italic */ | |
| 2146 button = gaim_pixbuf_toolbar_button_from_stock("gtk-italic"); | |
| 2147 gtk_size_group_add_widget(sg, button); | |
| 2148 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2149 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_italic), c); |
| 3671 | 2150 c->italic = button; /* We should remember this */ |
| 2151 | |
| 2152 /* Underline */ | |
| 2153 button = gaim_pixbuf_toolbar_button_from_stock("gtk-underline"); | |
| 2154 gtk_size_group_add_widget(sg, button); | |
| 2155 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2156 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_underline), c); |
| 3671 | 2157 c->underline = button; /* We should remember this */ |
| 2158 | |
| 2159 /* Sep */ | |
| 2160 sep = gtk_vseparator_new(); | |
| 2161 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | |
| 2162 | |
| 2163 /* Increase font size */ | |
| 2164 button = gaim_pixbuf_toolbar_button_from_file("text_bigger.png"); | |
| 2165 gtk_size_group_add_widget(sg, button); | |
| 2166 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2167 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_big), c); |
| 3671 | 2168 |
| 2169 /* Normal Font Size */ | |
| 2170 button = gaim_pixbuf_toolbar_button_from_file("text_normal.png"); | |
| 2171 gtk_size_group_add_widget(sg, button); | |
| 2172 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2173 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_normal), c); |
| 3671 | 2174 c->font = button; /* We should remember this */ |
| 2175 | |
| 2176 /* Decrease font size */ | |
| 2177 button = gaim_pixbuf_toolbar_button_from_file("text_smaller.png"); | |
| 2178 gtk_size_group_add_widget(sg, button); | |
| 2179 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2180 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_small), c); |
| 3671 | 2181 |
| 2182 /* Sep */ | |
| 2183 sep = gtk_vseparator_new(); | |
| 2184 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | |
| 2185 | |
| 2186 /* Font Color */ | |
| 3923 | 2187 button = gaim_pixbuf_toolbar_button_from_file("change-fgcolor-small.png"); |
| 3671 | 2188 gtk_size_group_add_widget(sg, button); |
| 2189 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2190 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(toggle_fg_color), c); |
| 3671 | 2191 c->fgcolorbtn = button; /* We should remember this */ |
| 2192 | |
| 2193 /* Font Color */ | |
| 3923 | 2194 button = gaim_pixbuf_toolbar_button_from_file("change-bgcolor-small.png"); |
| 3671 | 2195 gtk_size_group_add_widget(sg, button); |
| 2196 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2197 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(toggle_bg_color), c); |
| 3671 | 2198 c->bgcolorbtn = button; /* We should remember this */ |
| 2199 | |
| 2200 | |
| 2201 /* Sep */ | |
| 2202 sep = gtk_vseparator_new(); | |
| 2203 gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 0); | |
| 2204 | |
| 2205 /* Insert IM Image */ | |
| 2206 button = gaim_pixbuf_toolbar_button_from_file("insert-image-small.png"); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2207 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(insert_image), c); |
| 3671 | 2208 gtk_size_group_add_widget(sg, button); |
| 2209 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
| 2210 c->imagebtn = button; | |
| 2211 | |
| 2212 /* Insert Link */ | |
| 2213 button = gaim_pixbuf_toolbar_button_from_file("insert-link-small.png"); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2214 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(toggle_link), c); |
| 3671 | 2215 gtk_size_group_add_widget(sg, button); |
| 2216 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
| 2217 c->link = button; | |
| 2218 | |
| 2219 /* Insert Smiley */ | |
| 2220 button = gaim_pixbuf_toolbar_button_from_file("insert-smiley-small.png"); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2221 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(insert_smiley), c); |
| 3671 | 2222 gtk_size_group_add_widget(sg, button); |
| 2223 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
| 2224 c->smiley = button; | |
| 2225 | |
| 2226 sep = gtk_hseparator_new(); | |
| 2227 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); | |
| 2228 | |
| 2229 gtk_widget_show_all(vbox); | |
| 2230 | |
| 2231 return vbox; | |
| 2232 } | |
| 2233 | |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2234 static void convo_sel_send(GtkObject *m, struct gaim_connection *c) |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2235 { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2236 struct conversation *cnv = gtk_object_get_user_data(m); |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2237 |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2238 if (cnv->gc == c) |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2239 return; |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2240 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2241 cnv->gc = c; |
| 1340 | 2242 |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
2243 set_convo_title(cnv); |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
2244 |
| 1342 | 2245 update_buttons_by_protocol(cnv); |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2246 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
2247 update_icon(cnv); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
2248 update_checkbox(cnv); |
| 3081 | 2249 gaim_setup_imhtml_smileys(cnv->text); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2250 } |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2251 |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2252 int set_dispstyle(int chat) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2253 { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2254 int dispstyle; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2255 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2256 if (chat) { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2257 switch (chat_options & (OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM)) { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2258 case OPT_CHAT_BUTTON_TEXT: |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2259 dispstyle = 1; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2260 break; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2261 case OPT_CHAT_BUTTON_XPM: |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2262 dispstyle = 0; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2263 break; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2264 default: /* both or neither */ |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2265 dispstyle = 2; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2266 break; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2267 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2268 } else { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2269 switch (im_options & (OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM)) { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2270 case OPT_IM_BUTTON_TEXT: |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2271 dispstyle = 1; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2272 break; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2273 case OPT_IM_BUTTON_XPM: |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2274 dispstyle = 0; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2275 break; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2276 default: /* both or neither */ |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2277 dispstyle = 2; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2278 break; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2279 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2280 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2281 return dispstyle; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2282 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2375
diff
changeset
|
2283 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2284 void update_convo_add_button(struct conversation *c) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2285 { |
|
4090
286d487a4fd7
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4078
diff
changeset
|
2286 int dispstyle = set_dispstyle(0); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2287 GtkWidget *parent = c->add->parent; |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2288 gboolean rebuild = FALSE; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2289 |
| 1352 | 2290 if (find_buddy(c->gc, c->name)) { |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2291 if (!gtk_object_get_user_data(GTK_OBJECT(c->add))) { |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2292 gtk_widget_destroy(c->add); |
|
4090
286d487a4fd7
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4078
diff
changeset
|
2293 c->add = gaim_pixbuf_button_from_stock(dispstyle == 0 ? NULL : _("Remove"), |
|
286d487a4fd7
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4078
diff
changeset
|
2294 dispstyle == 1 ? NULL : "gtk-remove", |
|
286d487a4fd7
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4078
diff
changeset
|
2295 GAIM_BUTTON_VERTICAL); |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2296 rebuild = TRUE; |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2297 } |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2298 if (c->gc) { |
| 1352 | 2299 if (c->gc->prpl->remove_buddy == NULL) |
| 2300 gtk_widget_set_sensitive(c->add, FALSE); | |
| 2301 else | |
| 2302 gtk_widget_set_sensitive(c->add, TRUE); | |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2303 } else |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2304 gtk_widget_set_sensitive(c->add, FALSE); |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2305 gtk_object_set_user_data(GTK_OBJECT(c->add), c); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2306 } else { |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2307 if (gtk_object_get_user_data(GTK_OBJECT(c->add))) { |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2308 gtk_widget_destroy(c->add); |
|
4090
286d487a4fd7
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4078
diff
changeset
|
2309 c->add = gaim_pixbuf_button_from_stock(dispstyle == 0 ? NULL : _("Add"), |
|
286d487a4fd7
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4078
diff
changeset
|
2310 dispstyle == 1 ? NULL : "gtk-add", |
|
286d487a4fd7
[gaim-migrate @ 4305]
Christian Hammond <chipx86@chipx86.com>
parents:
4078
diff
changeset
|
2311 GAIM_BUTTON_VERTICAL); |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2312 rebuild = TRUE; |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2313 } |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2314 if (c->gc) { |
| 1352 | 2315 if (c->gc->prpl->add_buddy == NULL) |
| 2316 gtk_widget_set_sensitive(c->add, FALSE); | |
| 2317 else | |
| 2318 gtk_widget_set_sensitive(c->add, TRUE); | |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2319 } else |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2320 gtk_widget_set_sensitive(c->add, FALSE); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2321 } |
| 1352 | 2322 |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2323 if (rebuild) { |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2324 g_signal_connect(GTK_OBJECT(c->add), "clicked", G_CALLBACK(add_callback), c); |
| 3671 | 2325 gtk_box_pack_start(GTK_BOX(parent), c->add, FALSE, FALSE, 0); |
| 2326 gtk_box_reorder_child(GTK_BOX(parent), c->add, 3); | |
| 2327 gtk_button_set_relief(GTK_BUTTON(c->add), GTK_RELIEF_NONE); | |
| 2328 gtk_size_group_add_widget(c->sg, c->add); | |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2329 gtk_widget_show(c->add); |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2330 } |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2331 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2332 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2333 static void create_convo_menu(struct conversation *cnv) |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2334 { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2335 GtkWidget *menu, *opt; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2336 GSList *g = connections; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2337 struct gaim_connection *c; |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1228
diff
changeset
|
2338 char buf[2048]; |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2339 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2340 if (g_slist_length(g) < 2) |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2341 gtk_widget_hide(cnv->menu->parent); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2342 else { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2343 menu = gtk_menu_new(); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2344 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2345 while (g) { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2346 c = (struct gaim_connection *)g->data; |
| 3572 | 2347 g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name); |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1228
diff
changeset
|
2348 opt = gtk_menu_item_new_with_label(buf); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2349 gtk_object_set_user_data(GTK_OBJECT(opt), cnv); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2350 g_signal_connect(GTK_OBJECT(opt), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2351 G_CALLBACK(convo_sel_send), c); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2352 gtk_widget_show(opt); |
| 4143 | 2353 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2354 g = g->next; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2355 } |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2356 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2357 gtk_option_menu_remove_menu(GTK_OPTION_MENU(cnv->menu)); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2358 gtk_option_menu_set_menu(GTK_OPTION_MENU(cnv->menu), menu); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2359 gtk_option_menu_set_history(GTK_OPTION_MENU(cnv->menu), 0); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2360 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2361 gtk_widget_show(cnv->menu); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2362 gtk_widget_show(cnv->menu->parent); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2363 } |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2364 } |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2365 |
|
2111
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2366 void redo_convo_menus() |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2367 { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2368 GList *c = conversations; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2369 struct conversation *C; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2370 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2371 while (c) { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2372 C = (struct conversation *)c->data; |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2373 c = c->next; |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2374 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2375 create_convo_menu(C); |
|
993
eacd93d0089a
[gaim-migrate @ 1003]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
2376 |
|
2111
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2377 if (g_slist_find(connections, C->gc)) |
|
2487
43a75ca5b909
[gaim-migrate @ 2500]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2483
diff
changeset
|
2378 set_convo_gc(C, C->gc); |
|
43a75ca5b909
[gaim-migrate @ 2500]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2483
diff
changeset
|
2379 else |
|
43a75ca5b909
[gaim-migrate @ 2500]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2483
diff
changeset
|
2380 set_convo_gc(C, connections ? connections->data : NULL); |
|
2111
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2381 } |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2382 } |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2383 |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2384 void convo_menu_remove(struct gaim_connection *gc) |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2385 { |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2386 GList *c = conversations; |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2387 struct conversation *C; |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2388 |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2389 while (c) { |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2390 C = (struct conversation *)c->data; |
|
109669b3887e
[gaim-migrate @ 2121]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2109
diff
changeset
|
2391 c = c->next; |
|
2109
3110ea142888
[gaim-migrate @ 2119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2104
diff
changeset
|
2392 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
2393 remove_icon(C); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
2394 remove_checkbox(C); |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2395 } |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2396 } |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2397 |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2398 void set_convo_gc(struct conversation *c, struct gaim_connection *gc) |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2399 { |
|
2722
abecab600451
[gaim-migrate @ 2735]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2706
diff
changeset
|
2400 if (gc) |
|
abecab600451
[gaim-migrate @ 2735]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2706
diff
changeset
|
2401 gtk_option_menu_set_history(GTK_OPTION_MENU(c->menu), g_slist_index(connections, gc)); |
|
abecab600451
[gaim-migrate @ 2735]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2706
diff
changeset
|
2402 |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2403 if (c->gc == gc) |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2404 return; |
|
993
eacd93d0089a
[gaim-migrate @ 1003]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
2405 |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2406 c->gc = gc; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2407 |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
2408 set_convo_title(c); |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2409 update_buttons_by_protocol(c); |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2410 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
2411 update_icon(c); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
2412 update_checkbox(c); |
| 3081 | 2413 gaim_setup_imhtml_smileys(c->text); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2414 } |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2415 |
| 1340 | 2416 void update_buttons_by_protocol(struct conversation *c) |
| 2417 { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2418 if (!c->gc) { |
|
2619
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2419 if (c->info) |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2420 gtk_widget_set_sensitive(c->info, FALSE); |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2421 if (c->send) |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2422 gtk_widget_set_sensitive(c->send, FALSE); |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2423 if (c->warn) |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2424 gtk_widget_set_sensitive(c->warn, FALSE); |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2425 if (c->block) |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2426 gtk_widget_set_sensitive(c->block, FALSE); |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2427 if (c->add) |
|
536198196dc6
[gaim-migrate @ 2632]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2428 gtk_widget_set_sensitive(c->add, FALSE); |
|
2546
d392e9b867e9
[gaim-migrate @ 2559]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2541
diff
changeset
|
2429 if (c->whisper) |
|
d392e9b867e9
[gaim-migrate @ 2559]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2541
diff
changeset
|
2430 gtk_widget_set_sensitive(c->whisper, FALSE); |
|
d392e9b867e9
[gaim-migrate @ 2559]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2541
diff
changeset
|
2431 if (c->invite) |
|
d392e9b867e9
[gaim-migrate @ 2559]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2541
diff
changeset
|
2432 gtk_widget_set_sensitive(c->invite, FALSE); |
| 1352 | 2433 return; |
| 2434 } | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2435 |
|
1532
249a770bebd7
[gaim-migrate @ 1542]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1525
diff
changeset
|
2436 if (c->gc->prpl->get_info == NULL && c->info) |
| 1340 | 2437 gtk_widget_set_sensitive(c->info, FALSE); |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1370
diff
changeset
|
2438 else if (c->info) |
| 1340 | 2439 gtk_widget_set_sensitive(c->info, TRUE); |
| 3671 | 2440 /* |
| 2441 if (!c->is_chat && c->gc->prpl->file_transfer_out) | |
| 2442 gtk_widget_set_sensitive(c->sendfile_btn, TRUE); | |
| 2443 else | |
| 2444 gtk_widget_set_sensitive(c->sendfile_btn, FALSE); | |
| 2445 */ | |
|
2094
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2446 if (c->is_chat) { |
|
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2447 if (c->gc->prpl->chat_send == NULL && c->send) |
|
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2448 gtk_widget_set_sensitive(c->send, FALSE); |
|
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2449 else |
|
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2450 gtk_widget_set_sensitive(c->send, TRUE); |
| 3671 | 2451 |
| 3044 | 2452 gtk_widget_set_sensitive(c->imagebtn, FALSE); |
| 3671 | 2453 gtk_widget_set_sensitive(c->image_menubtn, FALSE); |
|
2094
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2454 } else { |
|
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2455 if (c->gc->prpl->send_im == NULL && c->send) |
|
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2456 gtk_widget_set_sensitive(c->send, FALSE); |
|
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2457 else |
|
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2458 gtk_widget_set_sensitive(c->send, TRUE); |
| 3671 | 2459 if (c->gc->prpl->options & OPT_PROTO_IM_IMAGE) { |
| 3888 | 2460 if (c->imagebtn) |
| 2461 gtk_widget_set_sensitive(c->imagebtn, TRUE); | |
| 2462 if (c->image_menubtn) | |
| 2463 gtk_widget_set_sensitive(c->image_menubtn, TRUE); | |
| 3671 | 2464 } |
| 2465 else { | |
| 3888 | 2466 |
| 2467 if (c->image_menubtn) | |
| 2468 gtk_widget_set_sensitive(c->image_menubtn, FALSE); | |
| 2469 if (c->imagebtn) | |
| 2470 gtk_widget_set_sensitive(c->imagebtn, FALSE); | |
| 3671 | 2471 } |
|
2094
be10a1243ed7
[gaim-migrate @ 2104]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2472 } |
| 1341 | 2473 |
| 1343 | 2474 if (c->gc->prpl->warn == NULL && c->warn) |
| 1341 | 2475 gtk_widget_set_sensitive(c->warn, FALSE); |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1370
diff
changeset
|
2476 else if (c->warn) |
| 1341 | 2477 gtk_widget_set_sensitive(c->warn, TRUE); |
| 2478 | |
| 1343 | 2479 if (c->gc->prpl->add_permit == NULL && c->block) |
| 1341 | 2480 gtk_widget_set_sensitive(c->block, FALSE); |
|
1398
f6b0cf1f4c3b
[gaim-migrate @ 1408]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1370
diff
changeset
|
2481 else if (c->block) |
| 1341 | 2482 gtk_widget_set_sensitive(c->block, TRUE); |
| 2483 | |
| 1343 | 2484 if (c->add) |
| 2485 update_convo_add_button(c); | |
| 2486 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2487 if (c->whisper) { |
| 1343 | 2488 if (c->gc->prpl->chat_whisper == NULL) |
| 2489 gtk_widget_set_sensitive(c->whisper, FALSE); | |
| 2490 else | |
| 2491 gtk_widget_set_sensitive(c->whisper, TRUE); | |
| 2492 } | |
| 2493 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2494 if (c->invite) { |
| 1343 | 2495 if (c->gc->prpl->chat_invite == NULL) |
| 2496 gtk_widget_set_sensitive(c->invite, FALSE); | |
| 2497 else | |
| 2498 gtk_widget_set_sensitive(c->invite, TRUE); | |
| 2499 } | |
| 1340 | 2500 } |
| 2501 | |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2502 void convo_switch(GtkNotebook *notebook, GtkWidget *page, gint page_num, gpointer data) |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2503 { |
| 3866 | 2504 GtkWidget *label = NULL; |
| 4147 | 2505 GtkStyle *style; |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2506 struct conversation *c; |
| 3677 | 2507 |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2508 if ((convo_options & OPT_CONVO_COMBINE) && |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2509 (im_options & OPT_IM_ONE_WINDOW) && |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2510 (chat_options & OPT_CHAT_ONE_WINDOW)) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2511 int len = g_list_length(conversations); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2512 if (page_num < len) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2513 c = g_list_nth_data(conversations, page_num); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2514 else |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2515 c = g_list_nth_data(chats, page_num - len); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2516 } else if (GTK_WIDGET(notebook) == convo_notebook) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2517 c = g_list_nth_data(conversations, page_num); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2518 else |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2519 c = g_list_nth_data(chats, page_num); |
| 3951 | 2520 |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2521 if (c && c->window && c->entry) |
| 3951 | 2522 gtk_widget_grab_focus(c->entry); |
| 2523 | |
| 3866 | 2524 label = c->tab_label; |
| 2525 | |
| 2526 if (!label) | |
| 2527 return; | |
| 2528 | |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2529 if (!GTK_WIDGET_REALIZED(label)) |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2530 return; |
| 4146 | 2531 style = gtk_style_new(); |
| 2532 gtk_style_set_font(style, gdk_font_ref(gtk_style_get_font(label->style))); | |
| 2533 gtk_widget_set_style(label, style); | |
| 2534 gtk_style_unref(style); | |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2535 if (c) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2536 c->unseen = 0; |
| 3677 | 2537 |
| 2538 if (!c->is_chat) { | |
| 2539 GtkWidget *menubar; | |
| 3683 | 2540 GtkWidget *parent = convo_notebook->parent; |
| 3677 | 2541 |
| 2542 gtk_widget_freeze_child_notify(GTK_WIDGET(c->window)); | |
| 3787 | 2543 |
| 3683 | 2544 if (convo_menubar != NULL) |
| 2545 gtk_widget_destroy(convo_menubar); | |
| 2546 | |
| 3677 | 2547 menubar = build_conv_menubar(c); |
| 2548 gtk_box_pack_start(GTK_BOX(parent), menubar, FALSE, TRUE, 0); | |
| 2549 gtk_box_reorder_child(GTK_BOX(parent), menubar, 0); | |
| 2550 convo_menubar = menubar; | |
| 2551 | |
| 2552 gtk_widget_thaw_child_notify(GTK_WIDGET(c->window)); | |
| 2553 } else { | |
| 2554 gtk_widget_destroy(convo_menubar); | |
| 3683 | 2555 convo_menubar = NULL; |
| 3677 | 2556 } |
| 3705 | 2557 |
| 3787 | 2558 update_convo_status(c); |
| 2559 | |
| 3922 | 2560 /*gtk_imhtml_to_bottom(c->text);*/ |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2561 } |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2562 |
| 3787 | 2563 void update_convo_status(struct conversation *c) { |
| 3768 | 2564 if(!c) |
| 2993 | 2565 return; |
| 3768 | 2566 debug_printf("update_convo_status called for %s\n", c->name); |
| 2993 | 2567 if (im_options & OPT_IM_ONE_WINDOW) { /* We'll make the tab green */ |
| 4147 | 2568 GtkStyle *style; |
| 3866 | 2569 GtkWidget *label = c->tab_label; |
| 4147 | 2570 style = gtk_style_new(); |
| 2571 if (!GTK_WIDGET_REALIZED(label)) | |
| 2572 gtk_widget_realize(label); | |
| 2573 gtk_style_set_font(style, gdk_font_ref(gtk_style_get_font(label->style))); | |
| 3787 | 2574 if(c->typing_state == TYPING) { |
| 4147 | 2575 style->fg[0].red = 0x0000; |
| 2576 style->fg[0].green = 0x9999; | |
| 2577 style->fg[0].blue = 0x0000; | |
| 3787 | 2578 } else if(c->typing_state == TYPED) { |
| 4147 | 2579 style->fg[0].red = 0xffff; |
| 2580 style->fg[0].green = 0xbbbb; | |
| 2581 style->fg[0].blue = 0x2222; | |
| 3768 | 2582 } else if(c->unseen == 2) { |
| 4147 | 2583 style->fg[0].red = 0x0000; |
| 2584 style->fg[0].green = 0x0000; | |
| 2585 style->fg[0].blue = 0xcccc; | |
| 3768 | 2586 } else if(c->unseen == 1) { |
| 4147 | 2587 style->fg[0].red = 0xcccc; |
| 2588 style->fg[0].green = 0x0000; | |
| 2589 style->fg[0].blue = 0x0000; | |
| 3768 | 2590 } |
| 4147 | 2591 gtk_widget_set_style(label, style); |
| 2993 | 2592 debug_printf("setting style\n"); |
| 4147 | 2593 gtk_style_unref(style); |
| 2993 | 2594 } else { |
| 2595 GtkWindow *win = (GtkWindow *)c->window; | |
| 3768 | 2596 char *buf, *buf2; |
| 2597 int len; | |
| 2598 if(strstr(win->title, _(" [TYPING]"))) { | |
| 2599 debug_printf("title had TYPING in it\n"); | |
| 2600 len = strlen(win->title) - strlen(_(" [TYPING]")); | |
| 2601 } else if(strstr(win->title, _(" [TYPED]"))) { | |
| 2602 debug_printf("title had TYPED in it\n"); | |
| 2603 len = strlen(win->title) - strlen(_(" [TYPED]")); | |
| 2604 } else { | |
| 2605 debug_printf("title was free of typing information\n"); | |
| 2606 len = strlen(win->title); | |
| 2607 } | |
| 2608 buf = g_malloc(len+1); | |
| 2609 g_snprintf(buf, len+1, win->title); | |
| 3787 | 2610 if(c->typing_state == TYPING) { |
| 3775 | 2611 buf2 = g_strconcat(buf,_(" [TYPING]"), NULL); |
| 3768 | 2612 g_free(buf); |
| 2613 buf = buf2; | |
| 3787 | 2614 } else if(c->typing_state == TYPED) { |
| 3775 | 2615 buf2 = g_strconcat(buf,_(" [TYPED]"), NULL); |
| 3768 | 2616 g_free(buf); |
| 2617 buf = buf2; | |
| 2618 } | |
| 2993 | 2619 gtk_window_set_title(win, buf); |
| 2620 g_free(buf); | |
| 2621 } | |
| 2622 } | |
| 2623 | |
| 2624 /* This returns a boolean, so that it can timeout */ | |
| 4168 | 2625 gboolean reset_typing(gpointer data) { |
| 2626 char *name = data; | |
| 2993 | 2627 struct conversation *c = find_conversation(name); |
| 4168 | 2628 if (!c) |
| 2993 | 2629 return FALSE; |
| 3768 | 2630 |
| 2631 /* Reset the title (if necessary) */ | |
| 3787 | 2632 c->typing_state = NOT_TYPING; |
| 2633 update_convo_status(c); | |
| 3768 | 2634 |
| 2993 | 2635 c->typing_timeout = 0; |
| 2636 return FALSE; | |
| 2637 } | |
| 1340 | 2638 |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2639 void show_conv(struct conversation *c) |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2640 { |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2641 GtkWidget *win; |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2642 GtkWidget *cont; |
| 615 | 2643 GtkWidget *text; |
| 2644 GtkWidget *sw; | |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2645 GtkWidget *send; |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2646 GtkWidget *info; |
| 615 | 2647 GtkWidget *warn; |
| 2648 GtkWidget *block; | |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3705
diff
changeset
|
2649 /*GtkWidget *close;*/ |
| 3790 | 2650 GtkWidget *frame; |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2651 GtkWidget *entry; |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2652 GtkWidget *bbox; |
| 615 | 2653 GtkWidget *vbox; |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2654 GtkWidget *vbox2; |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2655 GtkWidget *paned; |
| 615 | 2656 GtkWidget *add; |
| 623 | 2657 GtkWidget *toolbar; |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2658 GtkWidget *hbox; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2659 GtkWidget *label; |
| 3671 | 2660 GtkWidget *menubar; |
| 3866 | 2661 GtkWidget *tabby; |
|
4091
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2662 int dispstyle = set_dispstyle(0); |
| 3671 | 2663 |
| 2664 c->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2665 |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2666 c->font_dialog = NULL; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2667 c->fg_color_dialog = NULL; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2668 c->bg_color_dialog = NULL; |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2669 c->smiley_dialog = NULL; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2670 c->link_dialog = NULL; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2671 c->log_dialog = NULL; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2672 sprintf(c->fontface, "%s", fontface); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2673 c->hasfont = 0; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2674 c->bgcol = bgcolor; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2675 c->hasbg = 0; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2676 c->fgcol = fgcolor; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2677 c->hasfg = 0; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2678 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
2679 if (im_options & OPT_IM_ONE_WINDOW) { |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2680 if (!all_convos) { |
| 3677 | 2681 GtkWidget *testidea; |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2682 win = all_convos = c->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2683 if ((convo_options & OPT_CONVO_COMBINE) && (chat_options & OPT_CHAT_ONE_WINDOW)) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2684 all_chats = all_convos; |
| 4074 | 2685 gtk_window_set_role(GTK_WINDOW(win), "conversation"); |
|
2335
2c595fc5f1f8
[gaim-migrate @ 2348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2686 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, FALSE); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2687 gtk_container_border_width(GTK_CONTAINER(win), 0); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2688 gtk_widget_realize(win); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2689 gtk_window_set_title(GTK_WINDOW(win), _("Gaim - Conversations")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2690 g_signal_connect(GTK_OBJECT(win), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2691 G_CALLBACK(delete_all_convo), NULL); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2692 |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2693 convo_notebook = gtk_notebook_new(); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2694 if ((convo_options & OPT_CONVO_COMBINE) && (chat_options & OPT_CHAT_ONE_WINDOW)) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2695 chat_notebook = convo_notebook; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
2696 if (im_options & OPT_IM_SIDE_TAB) { |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
2697 if (im_options & OPT_IM_BR_TAB) { |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2698 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2699 GTK_POS_RIGHT); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2700 } else { |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2701 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2702 GTK_POS_LEFT); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2703 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2704 } else { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
2705 if (im_options & OPT_IM_BR_TAB) { |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2706 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2707 GTK_POS_BOTTOM); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2708 } else { |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2709 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
2710 GTK_POS_TOP); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2711 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
2712 } |
|
1596
f5845007e3bc
[gaim-migrate @ 1606]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1595
diff
changeset
|
2713 gtk_notebook_set_scrollable(GTK_NOTEBOOK(convo_notebook), TRUE); |
|
1597
c1a8a7c40424
[gaim-migrate @ 1607]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1596
diff
changeset
|
2714 gtk_notebook_popup_enable(GTK_NOTEBOOK(convo_notebook)); |
| 3677 | 2715 |
| 2716 testidea = gtk_vbox_new(FALSE, 0); | |
| 2717 | |
| 2718 menubar = build_conv_menubar(c); | |
| 2719 gtk_box_pack_start(GTK_BOX(testidea), menubar, FALSE, TRUE, 0); | |
| 3683 | 2720 gtk_box_pack_start(GTK_BOX(testidea), convo_notebook, TRUE, TRUE, 0); |
| 2721 gtk_widget_show(testidea); | |
| 2722 gtk_widget_show(convo_notebook); | |
| 3677 | 2723 convo_menubar = menubar; |
| 2724 | |
| 2725 gtk_container_add(GTK_CONTAINER(win), testidea); | |
| 4208 | 2726 g_signal_connect_after(GTK_OBJECT(convo_notebook), "switch-page", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2727 G_CALLBACK(convo_switch), NULL); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2728 } else |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2729 win = c->window = all_convos; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2730 |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2731 cont = gtk_vbox_new(FALSE, 5); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2732 gtk_container_set_border_width(GTK_CONTAINER(cont), 5); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
2733 /* this doesn't matter since we're resetting the name once we're out of the if */ |
| 3866 | 2734 /* gtk_notebook_insert_page(GTK_NOTEBOOK(convo_notebook), cont, gtk_label_new(c->name),*/ |
|
3986
4faf2a9753cb
[gaim-migrate @ 4177]
Christian Hammond <chipx86@chipx86.com>
parents:
3985
diff
changeset
|
2735 tabby = gtk_hbox_new(FALSE, 5); |
| 3866 | 2736 c->close = gtk_button_new(); |
| 3985 | 2737 gtk_widget_set_size_request(GTK_WIDGET(c->close), 16, 16); |
| 3866 | 2738 gtk_container_add(GTK_CONTAINER(c->close), gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU)); |
| 2739 gtk_button_set_relief(GTK_BUTTON(c->close), GTK_RELIEF_NONE); | |
| 2740 c->tab_label = gtk_label_new(c->name); | |
| 2741 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2742 g_signal_connect(GTK_OBJECT(c->close), "clicked", G_CALLBACK(close_callback), c); |
| 3866 | 2743 |
| 3868 | 2744 gtk_box_pack_start(GTK_BOX(tabby), c->tab_label, FALSE, FALSE, 0); |
| 3866 | 2745 gtk_box_pack_start(GTK_BOX(tabby), c->close, FALSE, FALSE, 0); |
| 2746 gtk_widget_show_all(tabby); | |
| 2747 gtk_notebook_insert_page(GTK_NOTEBOOK(convo_notebook), cont, tabby, | |
| 4208 | 2748 g_list_index(conversations, c)); |
| 2749 gtk_notebook_set_menu_label_text(GTK_NOTEBOOK(convo_notebook), cont, | |
| 2750 c->name); | |
|
4026
a997156437b6
[gaim-migrate @ 4230]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3986
diff
changeset
|
2751 |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2752 gtk_widget_show(cont); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2753 } else { |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2754 cont = win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2755 c->window = win; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2756 gtk_object_set_user_data(GTK_OBJECT(win), c); |
| 4074 | 2757 gtk_window_set_role(GTK_WINDOW(win), "conversation"); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2758 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); |
| 3671 | 2759 gtk_container_border_width(GTK_CONTAINER(win), 0); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2760 gtk_widget_realize(win); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2761 g_signal_connect(GTK_OBJECT(win), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2762 G_CALLBACK(delete_event_convo), c); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2763 } |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
2764 set_convo_title(c); |
| 623 | 2765 |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2766 paned = gtk_vpaned_new(); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
2767 gtk_paned_set_gutter_size(GTK_PANED(paned), 15); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2768 gtk_container_add(GTK_CONTAINER(cont), paned); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2769 gtk_widget_show(paned); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2770 |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
2771 vbox = gtk_vbox_new(FALSE, 5); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2772 gtk_paned_pack1(GTK_PANED(paned), vbox, FALSE, TRUE); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2773 gtk_widget_show(vbox); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2774 |
| 3677 | 2775 if (!(im_options & OPT_IM_ONE_WINDOW)) { |
| 2776 menubar = build_conv_menubar(c); | |
| 2777 gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0); | |
| 2778 } | |
| 3671 | 2779 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2780 sw = gtk_scrolled_window_new(NULL, NULL); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
2781 c->sw = sw; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2782 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
| 3925 | 2783 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
2784 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
| 4041 | 2785 gtk_widget_set_size_request(sw, conv_size.width, conv_size.height); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2786 gtk_widget_show(sw); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2787 |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
2788 text = gtk_imhtml_new(NULL, NULL); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2789 c->text = text; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2790 gtk_container_add(GTK_CONTAINER(sw), text); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
2791 if (convo_options & OPT_CONVO_SHOW_TIME) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
2792 gtk_imhtml_show_comments(GTK_IMHTML(text), TRUE); |
|
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1813
diff
changeset
|
2793 gaim_setup_imhtml(text); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2794 gtk_widget_show(text); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2795 |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
2796 vbox2 = gtk_vbox_new(FALSE, 5); |
|
472
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2797 gtk_paned_pack2(GTK_PANED(paned), vbox2, FALSE, FALSE); |
|
6a92cd7322cc
[gaim-migrate @ 482]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
411
diff
changeset
|
2798 gtk_widget_show(vbox2); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2799 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2800 hbox = gtk_hbox_new(FALSE, 0); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2801 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2802 gtk_widget_show(hbox); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2803 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2804 label = gtk_label_new(_("Send message as: ")); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2805 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2806 gtk_widget_show(label); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2807 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2808 c->menu = gtk_option_menu_new(); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2809 gtk_box_pack_start(GTK_BOX(hbox), c->menu, FALSE, FALSE, 5); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2810 gtk_widget_show(c->menu); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2811 |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
936
diff
changeset
|
2812 create_convo_menu(c); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2813 |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2814 c->lbox = gtk_hbox_new(FALSE, 0); |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2815 gtk_box_pack_start(GTK_BOX(vbox2), c->lbox, FALSE, FALSE, 0); |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2816 gtk_widget_show(c->lbox); |
|
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2817 |
| 3790 | 2818 toolbar = build_conv_toolbar(c); |
| 2819 gtk_box_pack_start(GTK_BOX(vbox2), toolbar, FALSE, FALSE, 0); | |
| 2820 | |
| 2821 frame = gtk_frame_new(NULL); | |
| 2822 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 2823 gtk_box_pack_start(GTK_BOX(vbox2), frame, TRUE, TRUE, 0); | |
| 2824 gtk_widget_show(frame); | |
| 2825 | |
| 2826 c->entry_buffer = gtk_text_buffer_new(NULL); | |
| 2827 g_object_set_data(G_OBJECT(c->entry_buffer), "user_data", c); | |
| 2828 entry = gtk_text_view_new_with_buffer(c->entry_buffer); | |
|
1227
25611364a504
[gaim-migrate @ 1237]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1219
diff
changeset
|
2829 c->entry = entry; |
|
25611364a504
[gaim-migrate @ 1237]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1219
diff
changeset
|
2830 |
| 3790 | 2831 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(c->entry), GTK_WRAP_WORD); |
| 3304 | 2832 |
| 4041 | 2833 gtk_widget_set_size_request(entry, conv_size.width - 20, MAX(conv_size.entry_height, 25)); |
| 2834 | |
| 3790 | 2835 g_signal_connect_swapped(G_OBJECT(c->entry), "key_press_event", |
| 2836 G_CALLBACK(entry_key_pressed), c->entry_buffer); | |
| 2837 g_signal_connect(G_OBJECT(c->entry), "key_press_event", G_CALLBACK(keypress_callback), c); | |
| 2838 g_signal_connect_after(G_OBJECT(c->entry), "button_press_event", | |
| 2839 G_CALLBACK(stop_rclick_callback), NULL); | |
| 2840 g_signal_connect(G_OBJECT(c->entry_buffer), "insert_text", | |
| 2841 G_CALLBACK(insert_text_callback), c); | |
| 2842 g_signal_connect(G_OBJECT(c->entry_buffer), "delete_range", | |
| 2843 G_CALLBACK(delete_text_callback), c); | |
| 2844 | |
| 3802 | 2845 #ifdef USE_GTKSPELL |
| 2846 if (convo_options & OPT_CONVO_CHECK_SPELLING) | |
| 2847 gtkspell_new_attach(GTK_TEXT_VIEW(c->entry), NULL, NULL); | |
| 2848 #endif | |
| 2849 | |
| 3790 | 2850 gtk_container_add(GTK_CONTAINER(frame), GTK_WIDGET(entry)); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2851 gtk_widget_show(entry); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2852 |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1889
diff
changeset
|
2853 c->bbox = bbox = gtk_hbox_new(FALSE, 5); |
|
1228
6773043cf9f6
[gaim-migrate @ 1238]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1227
diff
changeset
|
2854 gtk_box_pack_start(GTK_BOX(vbox2), bbox, FALSE, FALSE, 0); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2855 gtk_widget_show(bbox); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2856 |
| 3671 | 2857 /* I'm leaving this here just incase we want to bring this back. I'd rather not have the close |
| 2858 * button any more. If we do, though, it needs to be on the left side. I might bring it back and put | |
| 2859 * it on that side. */ | |
| 2860 | |
| 2861 /* | |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2862 close = picture_button2(win, _("Close"), cancel_xpm, dispstyle); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2863 c->close = close; |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2864 gtk_object_set_user_data(GTK_OBJECT(close), c); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2865 g_signal_connect(GTK_OBJECT(close), "clicked", G_CALLBACK(close_callback), c); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2866 gtk_box_pack_end(GTK_BOX(bbox), close, dispstyle, dispstyle, 0); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2867 gtk_widget_show(close); |
| 3671 | 2868 |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2869 c->sep1 = gtk_vseparator_new(); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2870 gtk_box_pack_end(GTK_BOX(bbox), c->sep1, dispstyle, dispstyle, 0); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2871 gtk_widget_show(c->sep1); |
| 3671 | 2872 */ |
| 2873 | |
| 2874 /* Put the send button on the right */ | |
|
4091
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2875 send = gaim_pixbuf_button_from_stock( |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2876 (dispstyle == 0 ? NULL : _("Send")), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2877 (dispstyle == 1 ? NULL : "gtk-convert"), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2878 GAIM_BUTTON_VERTICAL); |
| 3671 | 2879 c->send = send; |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2880 g_signal_connect(GTK_OBJECT(send), "clicked", G_CALLBACK(send_callback), c); |
| 3671 | 2881 gtk_box_pack_end(GTK_BOX(bbox), send, FALSE, FALSE, 0); |
| 2882 gtk_widget_show(send); | |
| 2883 | |
| 2884 c->sep2 = gtk_vseparator_new(); | |
| 2885 gtk_box_pack_end(GTK_BOX(bbox), c->sep2, FALSE, TRUE, 0); | |
| 2886 gtk_widget_show(c->sep2); | |
| 2887 | |
| 2888 /* And put the other buttons on the left */ | |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2889 |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2890 if (c->gc && find_buddy(c->gc, c->name) != NULL) { |
|
4091
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2891 add = gaim_pixbuf_button_from_stock( |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2892 (dispstyle == 0 ? NULL : _("Remove")), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2893 (dispstyle == 1 ? NULL : "gtk-remove"), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2894 GAIM_BUTTON_VERTICAL); |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2895 gtk_object_set_user_data(GTK_OBJECT(add), c); |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1647
diff
changeset
|
2896 } else |
|
4091
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2897 add = gaim_pixbuf_button_from_stock( |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2898 (dispstyle == 0 ? NULL : _("Add")), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2899 (dispstyle == 1 ? NULL : "gtk-add"), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2900 GAIM_BUTTON_VERTICAL); |
| 3671 | 2901 |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2902 c->add = add; |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2903 g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(add_callback), c); |
| 3671 | 2904 gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 0); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2905 gtk_widget_show(add); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2906 |
|
4091
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2907 warn = gaim_pixbuf_button_from_stock( |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2908 (dispstyle == 0 ? NULL : _("Warn")), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2909 (dispstyle == 1 ? NULL : "gtk-dialog-warning"), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2910 GAIM_BUTTON_VERTICAL); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2911 c->warn = warn; |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2912 g_signal_connect(GTK_OBJECT(warn), "clicked", G_CALLBACK(warn_callback), c); |
| 3671 | 2913 gtk_box_pack_start(GTK_BOX(bbox), warn, FALSE, FALSE, 0); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2914 gtk_widget_show(warn); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2915 |
|
4091
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2916 info = gaim_pixbuf_button_from_stock( |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2917 (dispstyle == 0 ? NULL : _("Info")), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2918 (dispstyle == 1 ? NULL : "gtk-find"), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2919 GAIM_BUTTON_VERTICAL); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2920 c->info = info; |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2921 g_signal_connect(GTK_OBJECT(info), "clicked", G_CALLBACK(info_callback), c); |
| 3671 | 2922 gtk_box_pack_start(GTK_BOX(bbox), info, FALSE, FALSE, 0); |
|
1219
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2923 gtk_widget_show(info); |
|
2528fc35aa32
[gaim-migrate @ 1229]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1215
diff
changeset
|
2924 |
| 3671 | 2925 |
|
4091
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2926 block = gaim_pixbuf_button_from_stock( |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2927 (dispstyle == 0 ? NULL : _("Block")), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2928 (dispstyle == 1 ? NULL : "gtk-stop"), |
|
0c131a8ea3d1
[gaim-migrate @ 4306]
Christian Hammond <chipx86@chipx86.com>
parents:
4090
diff
changeset
|
2929 GAIM_BUTTON_VERTICAL); |
| 3671 | 2930 c->block = block; |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
2931 g_signal_connect(GTK_OBJECT(block), "clicked", G_CALLBACK(block_callback), c); |
| 3671 | 2932 gtk_box_pack_start(GTK_BOX(bbox), block, FALSE, FALSE, 0); |
| 2933 gtk_widget_show(block); | |
| 2934 | |
| 2935 /* I don't know if these should have borders. They look kind of dumb | |
| 2936 * with borders. */ | |
| 2937 gtk_button_set_relief(GTK_BUTTON(info), GTK_RELIEF_NONE); | |
| 2938 gtk_button_set_relief(GTK_BUTTON(add), GTK_RELIEF_NONE); | |
| 2939 gtk_button_set_relief(GTK_BUTTON(warn), GTK_RELIEF_NONE); | |
| 2940 gtk_button_set_relief(GTK_BUTTON(send), GTK_RELIEF_NONE); | |
| 2941 gtk_button_set_relief(GTK_BUTTON(block), GTK_RELIEF_NONE); | |
| 2942 | |
| 2943 gtk_size_group_add_widget(c->sg, info); | |
| 2944 gtk_size_group_add_widget(c->sg, add); | |
| 2945 gtk_size_group_add_widget(c->sg, warn); | |
| 2946 gtk_size_group_add_widget(c->sg, send); | |
| 2947 gtk_size_group_add_widget(c->sg, block); | |
| 2948 | |
| 2949 gtk_box_reorder_child(GTK_BOX(bbox), c->warn, 1); | |
| 2950 gtk_box_reorder_child(GTK_BOX(bbox), c->block, 2); | |
| 2951 gtk_box_reorder_child(GTK_BOX(bbox), c->add, 3); | |
| 2952 gtk_box_reorder_child(GTK_BOX(bbox), c->info, 4); | |
| 3951 | 2953 |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
661
diff
changeset
|
2954 |
| 1340 | 2955 update_buttons_by_protocol(c); |
| 3671 | 2956 |
| 3951 | 2957 gtk_widget_show(win); |
| 2958 if (!(im_options & OPT_IM_ONE_WINDOW) | |
| 4028 | 2959 || ((gtk_notebook_get_current_page(GTK_NOTEBOOK(convo_notebook)) == 0) |
| 2960 && (c == g_list_nth_data(conversations, 0)))) | |
| 3470 | 2961 gtk_widget_grab_focus(c->entry); |
| 66 | 2962 } |
| 2963 | |
| 2964 | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2965 void toggle_spellchk() |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
2966 { |
| 3802 | 2967 #ifdef USE_GTKSPELL |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2968 GList *cnv = conversations; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2969 GSList *cht; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2970 struct conversation *c; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2971 GSList *con = connections; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2972 struct gaim_connection *gc; |
| 3802 | 2973 GtkSpell *spell; |
| 2974 | |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2975 while (cnv) { |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2976 c = (struct conversation *)cnv->data; |
| 3802 | 2977 if (convo_options & OPT_CONVO_CHECK_SPELLING) { |
| 2978 gtkspell_new_attach(GTK_TEXT_VIEW(c->entry), NULL, NULL); | |
| 2979 } else { | |
| 2980 spell = gtkspell_get_from_text_view(GTK_TEXT_VIEW(c->entry)); | |
| 2981 gtkspell_detach(spell); | |
| 2982 } | |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2983 cnv = cnv->next; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2984 } |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2985 |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2986 while (con) { |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2987 gc = (struct gaim_connection *)con->data; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2988 cht = gc->buddy_chats; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2989 while (cht) { |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2990 c = (struct conversation *)cht->data; |
| 3802 | 2991 if (convo_options & OPT_CONVO_CHECK_SPELLING) { |
| 2992 gtkspell_new_attach(GTK_TEXT_VIEW(c->entry), NULL, NULL); | |
| 2993 } else { | |
| 2994 spell = gtkspell_get_from_text_view(GTK_TEXT_VIEW(c->entry)); | |
| 2995 gtkspell_detach(spell); | |
| 2996 } | |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2997 cht = cht->next; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2998 } |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2999 con = con->next; |
|
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
3000 } |
| 3802 | 3001 #endif |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
3002 } |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3003 |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3004 void toggle_timestamps() |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3005 { |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3006 GList *cnv = conversations; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3007 GSList *cht; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3008 struct conversation *c; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3009 GSList *con = connections; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3010 struct gaim_connection *gc; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3011 |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3012 while (cnv) { |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3013 c = (struct conversation *)cnv->data; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3014 if (convo_options & OPT_CONVO_SHOW_TIME) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3015 gtk_imhtml_show_comments(GTK_IMHTML(c->text), TRUE); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3016 else |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3017 gtk_imhtml_show_comments(GTK_IMHTML(c->text), FALSE); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3018 cnv = cnv->next; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3019 } |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3020 |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3021 while (con) { |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3022 gc = (struct gaim_connection *)con->data; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3023 cht = gc->buddy_chats; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3024 while (cht) { |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3025 c = (struct conversation *)cht->data; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3026 if (convo_options & OPT_CONVO_SHOW_TIME) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3027 gtk_imhtml_show_comments(GTK_IMHTML(c->text), TRUE); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3028 else |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3029 gtk_imhtml_show_comments(GTK_IMHTML(c->text), FALSE); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3030 cht = cht->next; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3031 } |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3032 con = con->next; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3033 } |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3034 } |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3035 |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3036 void toggle_smileys() |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3037 { |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3038 GList *cnv = conversations; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3039 GSList *cht; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3040 struct conversation *c; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3041 GSList *con = connections; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3042 struct gaim_connection *gc; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3043 |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3044 while (cnv) { |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3045 c = (struct conversation *)cnv->data; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3046 if (convo_options & OPT_CONVO_SHOW_SMILEY) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3047 gtk_imhtml_show_smileys(GTK_IMHTML(c->text), TRUE); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3048 else |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3049 gtk_imhtml_show_smileys(GTK_IMHTML(c->text), FALSE); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3050 cnv = cnv->next; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3051 } |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3052 |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3053 while (con) { |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3054 gc = (struct gaim_connection *)con->data; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3055 cht = gc->buddy_chats; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3056 while (cht) { |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3057 c = (struct conversation *)cht->data; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3058 if (convo_options & OPT_CONVO_SHOW_SMILEY) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3059 gtk_imhtml_show_smileys(GTK_IMHTML(c->text), TRUE); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3060 else |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3061 gtk_imhtml_show_smileys(GTK_IMHTML(c->text), FALSE); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3062 cht = cht->next; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3063 } |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3064 con = con->next; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3065 } |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1414
diff
changeset
|
3066 } |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3067 |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3068 void im_tabize() |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3069 { |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3070 /* evil, evil i tell you! evil! */ |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3071 if (im_options & OPT_IM_ONE_WINDOW) { |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3072 GList *x = conversations; |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3073 if ((convo_options & OPT_CONVO_COMBINE) && (chat_options & OPT_CHAT_ONE_WINDOW)) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3074 all_convos = all_chats; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3075 convo_notebook = chat_notebook; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3076 } |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3077 while (x) { |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3078 struct conversation *c = x->data; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3079 GtkWidget *imhtml, *win; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3080 |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3081 imhtml = c->text; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3082 win = c->window; |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3083 remove_icon(c); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3084 remove_checkbox(c); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3085 show_conv(c); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3086 gtk_widget_destroy(c->text); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3087 gtk_widget_reparent(imhtml, c->sw); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3088 c->text = imhtml; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3089 gtk_widget_destroy(win); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3090 update_icon(c); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3091 update_checkbox(c); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3092 set_convo_title(c); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3093 |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3094 x = x->next; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3095 } |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3096 } else { |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3097 GList *x, *m; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3098 x = m = conversations; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3099 conversations = NULL; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3100 while (x) { |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3101 struct conversation *c = x->data; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3102 GtkWidget *imhtml; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3103 |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3104 imhtml = c->text; |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3105 remove_icon(c); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3106 remove_checkbox(c); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3107 show_conv(c); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3108 gtk_container_remove(GTK_CONTAINER(c->sw), c->text); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3109 gtk_widget_reparent(imhtml, c->sw); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3110 c->text = imhtml; |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3111 update_icon(c); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3112 update_checkbox(c); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3113 set_convo_title(c); |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3114 |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3115 x = x->next; |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3116 } |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3117 conversations = m; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3118 if ((convo_options & OPT_CONVO_COMBINE) && (chat_options & OPT_CHAT_ONE_WINDOW)) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3119 if (chats) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3120 struct conversation *c; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3121 while (m) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3122 gtk_notebook_remove_page(GTK_NOTEBOOK(chat_notebook), 0); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3123 m = m->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3124 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3125 c = chats->data; |
| 3951 | 3126 gtk_widget_grab_focus(c->entry); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3127 } else { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3128 if (all_convos) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3129 gtk_widget_destroy(all_convos); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3130 all_chats = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3131 chat_notebook = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3132 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3133 } else if (all_convos) |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3134 gtk_widget_destroy(all_convos); |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3135 all_convos = NULL; |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3136 convo_notebook = NULL; |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3137 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3138 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3139 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3140 void convo_tabize() |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3141 { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3142 GList *x, *m; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3143 GtkWidget *tmp; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3144 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3145 if (!chats && !conversations) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3146 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3147 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3148 if (convo_options & OPT_CONVO_COMBINE) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3149 if (!chats) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3150 all_chats = all_convos; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3151 chat_notebook = convo_notebook; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3152 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3153 } else if (!conversations) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3154 all_convos = all_chats; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3155 convo_notebook = chat_notebook; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3156 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3157 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3158 } else { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3159 if (!chats) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3160 all_chats = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3161 chat_notebook = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3162 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3163 } else if (!conversations) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3164 all_convos = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3165 convo_notebook = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3166 return; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3167 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3168 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3169 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3170 tmp = all_convos; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3171 if (convo_options & OPT_CONVO_COMBINE) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3172 all_convos = all_chats; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3173 convo_notebook = chat_notebook; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3174 } else { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3175 all_convos = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3176 convo_notebook = NULL; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3177 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3178 x = m = conversations; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3179 while (x) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3180 struct conversation *c = x->data; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3181 GtkWidget *imhtml; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3182 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3183 imhtml = c->text; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3184 remove_icon(c); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3185 remove_checkbox(c); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3186 show_conv(c); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3187 gtk_container_remove(GTK_CONTAINER(c->sw), c->text); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3188 gtk_widget_reparent(imhtml, c->sw); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3189 c->text = imhtml; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3190 update_icon(c); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3191 update_checkbox(c); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3192 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3193 x = x->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3194 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3195 |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3196 conversations = m; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3197 if (convo_options & OPT_CONVO_COMBINE) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3198 if (tmp) |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3199 gtk_widget_destroy(tmp); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3200 } else { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3201 while (m) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3202 gtk_notebook_remove_page(GTK_NOTEBOOK(chat_notebook), 0); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3203 m = m->next; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3204 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3205 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3206 m = conversations; |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3207 while (m) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3208 set_convo_title(m->data); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3209 m = m->next; |
|
1573
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3210 } |
|
3a8bd72f431f
[gaim-migrate @ 1583]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1532
diff
changeset
|
3211 } |
|
1587
69a004b5820a
[gaim-migrate @ 1597]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1583
diff
changeset
|
3212 |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3213 void set_convo_title(struct conversation *c) |
|
1587
69a004b5820a
[gaim-migrate @ 1597]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1583
diff
changeset
|
3214 { |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3215 struct buddy *b; |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3216 char *text; |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3217 int index; |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3218 GtkNotebook *nb; |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3219 |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3220 if ((im_options & OPT_IM_ALIAS_TAB) && c->gc && ((b = find_buddy(c->gc, c->name)) != NULL)) |
| 4227 | 3221 text = get_buddy_alias(b); |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3222 else |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3223 text = c->name; |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3224 |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3225 if (im_options & OPT_IM_ONE_WINDOW) { |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3226 nb = GTK_NOTEBOOK(convo_notebook); |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3227 index = g_list_index(conversations, c); |
| 3866 | 3228 gtk_label_set_text(GTK_LABEL(c->tab_label), text); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2834
diff
changeset
|
3229 } else { |
|
2834
66b1112d948f
[gaim-migrate @ 2847]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2832
diff
changeset
|
3230 char buf[256]; |
| 3457 | 3231 if ((find_log_info(c->name)) || (c->is_chat && (logging_options & OPT_LOG_CHATS)) |
| 3232 || (!c->is_chat && (logging_options & OPT_LOG_CONVOS))) | |
|
2834
66b1112d948f
[gaim-migrate @ 2847]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2832
diff
changeset
|
3233 g_snprintf(buf, sizeof(buf), LOG_CONVERSATION_TITLE, text); |
|
66b1112d948f
[gaim-migrate @ 2847]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2832
diff
changeset
|
3234 else |
|
66b1112d948f
[gaim-migrate @ 2847]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2832
diff
changeset
|
3235 g_snprintf(buf, sizeof(buf), CONVERSATION_TITLE, text); |
|
66b1112d948f
[gaim-migrate @ 2847]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2832
diff
changeset
|
3236 gtk_window_set_title(GTK_WINDOW(c->window), buf); |
|
66b1112d948f
[gaim-migrate @ 2847]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2832
diff
changeset
|
3237 } |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3238 } |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3239 |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3240 void set_convo_titles() |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3241 { |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3242 GList *c = conversations; |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3243 while (c) { |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3244 set_convo_title(c->data); |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3245 c = c->next; |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2773
diff
changeset
|
3246 } |
|
1587
69a004b5820a
[gaim-migrate @ 1597]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1583
diff
changeset
|
3247 } |
|
1590
b4e54a752676
[gaim-migrate @ 1600]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1587
diff
changeset
|
3248 |
|
b4e54a752676
[gaim-migrate @ 1600]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1587
diff
changeset
|
3249 void raise_convo_tab(struct conversation *c) |
|
b4e54a752676
[gaim-migrate @ 1600]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1587
diff
changeset
|
3250 { |
|
b4e54a752676
[gaim-migrate @ 1600]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1587
diff
changeset
|
3251 gtk_notebook_set_page(GTK_NOTEBOOK(convo_notebook), g_list_index(conversations, c)); |
|
1617
f30f719e5933
[gaim-migrate @ 1627]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1608
diff
changeset
|
3252 gdk_window_show(c->window->window); |
|
1590
b4e54a752676
[gaim-migrate @ 1600]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1587
diff
changeset
|
3253 } |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3254 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3255 void update_im_tabs() |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3256 { |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3257 if (!convo_notebook || !all_convos) |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3258 return; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3259 if (im_options & OPT_IM_SIDE_TAB) { |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3260 if (im_options & OPT_IM_BR_TAB) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3261 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), GTK_POS_RIGHT); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3262 } else { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3263 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), GTK_POS_LEFT); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3264 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3265 } else { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3266 if (im_options & OPT_IM_BR_TAB) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3267 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), GTK_POS_BOTTOM); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3268 } else { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3269 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(convo_notebook), GTK_POS_TOP); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3270 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3271 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3272 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3273 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3274 void update_chat_tabs() |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3275 { |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3276 if (!chat_notebook || !all_chats) |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3277 return; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3278 if (chat_options & OPT_CHAT_SIDE_TAB) { |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3279 if (chat_options & OPT_CHAT_BR_TAB) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3280 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), GTK_POS_RIGHT); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3281 } else { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3282 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), GTK_POS_LEFT); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3283 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3284 } else { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2303
diff
changeset
|
3285 if (chat_options & OPT_CHAT_BR_TAB) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3286 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), GTK_POS_BOTTOM); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3287 } else { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3288 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(chat_notebook), GTK_POS_TOP); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3289 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3290 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
3291 } |
|
1759
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3292 |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3293 void update_convo_color(gboolean fg) |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3294 { |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3295 GList *c = conversations; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3296 struct conversation *b; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3297 |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3298 while (c) { |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3299 b = c->data; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3300 c = c->next; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3301 if (fg) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3302 if (b->hasfg) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3303 continue; |
|
1759
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3304 b->fgcol = fgcolor; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3305 } else { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3306 if (b->hasbg) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3307 continue; |
|
1759
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3308 b->bgcol = bgcolor; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3309 } |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3310 } |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3311 } |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3312 |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3313 void update_convo_font() |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3314 { |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3315 GList *c = conversations; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3316 struct conversation *b; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3317 |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3318 while (c) { |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3319 b = c->data; |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3320 c = c->next; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3321 if (b->hasfont) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2363
diff
changeset
|
3322 continue; |
|
1759
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3323 sprintf(b->fontface, "%s", fontface); |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3324 } |
|
e0f936b4c91a
[gaim-migrate @ 1769]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1757
diff
changeset
|
3325 } |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3326 |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3327 #include <gdk-pixbuf/gdk-pixbuf.h> |
|
2227
a93a6fe22330
[gaim-migrate @ 2237]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2213
diff
changeset
|
3328 |
|
a93a6fe22330
[gaim-migrate @ 2237]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2213
diff
changeset
|
3329 #define SCALE(x) ((gdk_pixbuf_animation_get_width(x) <= 48 && gdk_pixbuf_animation_get_height(x) <= 48) \ |
|
a93a6fe22330
[gaim-migrate @ 2237]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2213
diff
changeset
|
3330 ? 48 : 50) |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3331 |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3332 static gboolean redraw_icon(gpointer data) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3333 { |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3334 struct conversation *c = data; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3335 |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3336 GdkPixbuf *buf; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3337 GdkPixbuf *scale; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3338 GdkPixmap *pm; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3339 GdkBitmap *bm; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3340 gint delay; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3341 |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3342 if (!g_list_find(conversations, c)) { |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3343 debug_printf("I think this is a bug.\n"); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3344 return FALSE; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3345 } |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3346 |
| 3367 | 3347 gdk_pixbuf_animation_iter_advance(c->iter, NULL); |
| 3348 buf = gdk_pixbuf_animation_iter_get_pixbuf(c->iter); | |
| 3349 scale = gdk_pixbuf_scale_simple(buf, | |
| 3350 MAX(gdk_pixbuf_get_width(buf) * SCALE(c->anim) / | |
| 3351 gdk_pixbuf_animation_get_width(c->anim), 1), | |
| 3352 MAX(gdk_pixbuf_get_height(buf) * SCALE(c->anim) / | |
| 3353 gdk_pixbuf_animation_get_height(c->anim), 1), | |
| 3354 GDK_INTERP_NEAREST); | |
| 3355 gdk_pixbuf_render_pixmap_and_mask(scale, &pm, &bm, 100); | |
| 3356 gdk_pixbuf_unref(scale); | |
| 3357 gtk_pixmap_set(GTK_PIXMAP(c->icon), pm, bm); | |
| 3358 gdk_pixmap_unref(pm); | |
| 3380 | 3359 gtk_widget_queue_draw(c->icon); |
| 3367 | 3360 if (bm) |
| 3361 gdk_bitmap_unref(bm); | |
| 3380 | 3362 delay = gdk_pixbuf_animation_iter_get_delay_time(c->iter) / 10; |
| 3367 | 3363 |
| 4168 | 3364 c->icon_timer = g_timeout_add(delay * 10, redraw_icon, c); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3365 return FALSE; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3366 } |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3367 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3368 static void stop_anim(GtkObject *obj, struct conversation *c) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3369 { |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3370 if (c->icon_timer) |
| 4168 | 3371 g_source_remove(c->icon_timer); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3372 c->icon_timer = 0; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3373 } |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3374 |
|
2513
6e52448f352a
[gaim-migrate @ 2526]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2502
diff
changeset
|
3375 static void start_anim(GtkObject *obj, struct conversation *c) |
|
6e52448f352a
[gaim-migrate @ 2526]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2502
diff
changeset
|
3376 { |
|
6e52448f352a
[gaim-migrate @ 2526]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2502
diff
changeset
|
3377 int delay; |
| 3380 | 3378 delay = gdk_pixbuf_animation_iter_get_delay_time(c->iter) / 10; |
| 3097 | 3379 if (c->anim) |
| 4168 | 3380 c->icon_timer = g_timeout_add(delay * 10, redraw_icon, c); |
|
2513
6e52448f352a
[gaim-migrate @ 2526]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2502
diff
changeset
|
3381 } |
|
6e52448f352a
[gaim-migrate @ 2526]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2502
diff
changeset
|
3382 |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3383 static int des_save_icon(GtkObject *obj, GdkEvent *e, struct conversation *c) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3384 { |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3385 gtk_widget_destroy(c->save_icon); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3386 c->save_icon = NULL; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3387 return TRUE; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3388 } |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3389 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3390 static void do_save_icon(GtkObject *obj, struct conversation *c) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3391 { |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3392 FILE *file; |
| 3466 | 3393 const char *f = gtk_file_selection_get_filename(GTK_FILE_SELECTION(c->save_icon)); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3394 if (file_is_dir(f, c->save_icon)) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3395 return; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3396 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3397 file = fopen(f, "w"); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3398 if (file) { |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3399 int len; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3400 void *data = get_icon_data(c->gc, normalize(c->name), &len); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3401 if (data) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3402 fwrite(data, 1, len, file); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3403 fclose(file); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3404 } else { |
| 3427 | 3405 do_error_dialog("Can't save icon file to disk", strerror(errno), GAIM_ERROR); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3406 } |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3407 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3408 gtk_widget_destroy(c->save_icon); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3409 c->save_icon = NULL; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3410 } |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3411 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3412 static void cancel_save_icon(GtkObject *obj, struct conversation *c) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3413 { |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3414 gtk_widget_destroy(c->save_icon); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3415 c->save_icon = NULL; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3416 } |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3417 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3418 static void save_icon(GtkObject *obj, struct conversation *c) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3419 { |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3420 char buf[BUF_LEN]; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3421 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3422 if (c->save_icon) { |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3423 gdk_window_raise(c->save_icon->window); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3424 return; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3425 } |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3426 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3427 c->save_icon = gtk_file_selection_new(_("Gaim - Save Icon")); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3428 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(c->save_icon)); |
| 3630 | 3429 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s.icon", gaim_home_dir(), c->name); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3430 gtk_file_selection_set_filename(GTK_FILE_SELECTION(c->save_icon), buf); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3431 g_signal_connect(GTK_OBJECT(c->save_icon), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3432 G_CALLBACK(des_save_icon), c); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3433 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(c->save_icon)->ok_button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3434 G_CALLBACK(do_save_icon), c); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3435 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(c->save_icon)->cancel_button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3436 G_CALLBACK(cancel_save_icon), c); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3437 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3438 gtk_widget_show(c->save_icon); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3439 } |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3440 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3441 static gboolean icon_menu(GtkObject *obj, GdkEventButton *e, struct conversation *c) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3442 { |
| 3250 | 3443 static GtkWidget *menu = NULL; |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3444 GtkWidget *button; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3445 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3446 if (e->button != 3) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3447 return FALSE; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3448 if (e->type != GDK_BUTTON_PRESS) |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3449 return FALSE; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3450 |
| 3250 | 3451 /* |
| 3452 * If a menu already exists, destroy it before creating a new one, | |
| 3453 * thus freeing-up the memory it occupied. | |
| 3454 */ | |
| 3455 if(menu) | |
| 3456 gtk_widget_destroy(menu); | |
| 3457 | |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3458 menu = gtk_menu_new(); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3459 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3460 if (c->icon_timer) { |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3461 button = gtk_menu_item_new_with_label(_("Disable Animation")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3462 g_signal_connect(GTK_OBJECT(button), "activate", G_CALLBACK(stop_anim), c); |
| 4143 | 3463 gtk_menu_shell_append(GTK_MENU_SHELL(menu), button); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3464 gtk_widget_show(button); |
| 3367 | 3465 } |
| 3466 else if (c->anim && !(gdk_pixbuf_animation_is_static_image(c->anim))) | |
| 3467 { | |
|
2513
6e52448f352a
[gaim-migrate @ 2526]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2502
diff
changeset
|
3468 button = gtk_menu_item_new_with_label(_("Enable Animation")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3469 g_signal_connect(GTK_OBJECT(button), "activate", G_CALLBACK(start_anim), c); |
| 4143 | 3470 gtk_menu_shell_append(GTK_MENU_SHELL(menu), button); |
|
2513
6e52448f352a
[gaim-migrate @ 2526]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2502
diff
changeset
|
3471 gtk_widget_show(button); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3472 } |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3473 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3474 button = gtk_menu_item_new_with_label(_("Hide Icon")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3475 g_signal_connect_swapped(GTK_OBJECT(button), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3476 G_CALLBACK(remove_icon), (void *)c); |
| 4143 | 3477 gtk_menu_shell_append(GTK_MENU_SHELL(menu), button); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3478 gtk_widget_show(button); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3479 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3480 button = gtk_menu_item_new_with_label(_("Save Icon As...")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3481 g_signal_connect(GTK_OBJECT(button), "activate", G_CALLBACK(save_icon), c); |
| 4143 | 3482 gtk_menu_shell_append(GTK_MENU_SHELL(menu), button); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3483 gtk_widget_show(button); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3484 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3485 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, e->button, e->time); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3486 |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3487 return TRUE; |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3488 } |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3489 |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3490 void remove_icon(struct conversation *c) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3491 { |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3492 if (c->icon) |
|
2895
63cdece2348d
[gaim-migrate @ 2908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2891
diff
changeset
|
3493 gtk_container_remove(GTK_CONTAINER(c->bbox), c->icon->parent->parent); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3494 c->icon = NULL; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3495 if (c->anim) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3496 gdk_pixbuf_animation_unref(c->anim); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3497 c->anim = NULL; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3498 if (c->icon_timer) |
| 4168 | 3499 g_source_remove(c->icon_timer); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3500 c->icon_timer = 0; |
| 3374 | 3501 if(c->iter) |
| 3699 | 3502 g_object_unref(G_OBJECT(c->iter)); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3503 } |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3504 |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3505 void update_icon(struct conversation *c) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3506 { |
|
2521
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3507 char filename[256]; |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3508 FILE *file; |
| 3380 | 3509 GError *err = NULL; |
| 3466 | 3510 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3511 void *data; |
| 3367 | 3512 int len, delay; |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3513 |
|
2521
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3514 GdkPixbuf *buf; |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3515 |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3516 GtkWidget *event; |
|
2895
63cdece2348d
[gaim-migrate @ 2908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2891
diff
changeset
|
3517 GtkWidget *frame; |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3518 GdkPixbuf *scale; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3519 GdkPixmap *pm; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3520 GdkBitmap *bm; |
|
2264
2993b6091a53
[gaim-migrate @ 2274]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
3521 int sf = 0; |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3522 |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3523 if (!c) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3524 return; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3525 |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3526 remove_icon(c); |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3527 |
|
2323
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3528 if (im_options & OPT_IM_HIDE_ICONS) |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3529 return; |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3530 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3531 if (!c->gc) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3532 return; |
|
2195
d615f7e2d8c4
[gaim-migrate @ 2205]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
3533 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3534 data = get_icon_data(c->gc, normalize(c->name), &len); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3535 if (!data) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3536 return; |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3537 |
|
2521
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3538 /* this is such an evil hack, i don't know why i'm even considering it. |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3539 * we'll do it differently when gdk-pixbuf-loader isn't leaky anymore. */ |
| 3630 | 3540 g_snprintf(filename, sizeof(filename), "%s" G_DIR_SEPARATOR_S "gaimicon-%s.%d", g_get_tmp_dir(), c->name, getpid()); |
|
2521
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3541 file = fopen(filename, "w"); |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3542 if (!file) |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3543 return; |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3544 fwrite(data, 1, len, file); |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3545 fclose(file); |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3546 |
| 3367 | 3547 c->anim = gdk_pixbuf_animation_new_from_file(filename, &err); |
| 3380 | 3548 if (err) { |
| 3549 debug_printf("Buddy icon error: %s\n", err->message); | |
| 3550 g_error_free(err); | |
| 3551 } | |
|
2521
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3552 /* make sure we remove the file as soon as possible */ |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3553 unlink(filename); |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3554 |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3555 if (!c->anim) |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3556 return; |
|
f42fceb6a9ea
[gaim-migrate @ 2534]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2513
diff
changeset
|
3557 |
| 3380 | 3558 if (gdk_pixbuf_animation_is_static_image(c->anim)) { |
| 3559 c->iter = NULL; | |
| 3560 delay = 0; | |
| 3561 buf = gdk_pixbuf_animation_get_static_image(c->anim); | |
| 3562 } else { | |
| 3367 | 3563 c->iter = gdk_pixbuf_animation_get_iter(c->anim, NULL); |
| 3564 buf = gdk_pixbuf_animation_iter_get_pixbuf(c->iter); | |
| 3380 | 3565 delay = gdk_pixbuf_animation_iter_get_delay_time(c->iter); |
| 3566 delay = delay / 10; | |
| 3567 } | |
| 3568 sf = SCALE(c->anim); | |
| 3367 | 3569 scale = gdk_pixbuf_scale_simple(buf, |
| 3570 MAX(gdk_pixbuf_get_width(buf) * sf / | |
| 3571 gdk_pixbuf_animation_get_width(c->anim), 1), | |
| 3572 MAX(gdk_pixbuf_get_height(buf) * sf / | |
| 3573 gdk_pixbuf_animation_get_height(c->anim), 1), | |
| 3574 GDK_INTERP_NEAREST); | |
| 3380 | 3575 |
| 3576 if (delay) | |
| 4168 | 3577 c->icon_timer = g_timeout_add(delay * 10, redraw_icon, c); |
| 3367 | 3578 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3579 |
| 2936 | 3580 gdk_pixbuf_render_pixmap_and_mask(scale, &pm, &bm, 100); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3581 gdk_pixbuf_unref(scale); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3582 |
|
2895
63cdece2348d
[gaim-migrate @ 2908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2891
diff
changeset
|
3583 frame = gtk_frame_new(NULL); |
| 2936 | 3584 gtk_frame_set_shadow_type(GTK_FRAME(frame), bm ? GTK_SHADOW_NONE : GTK_SHADOW_IN); |
|
2895
63cdece2348d
[gaim-migrate @ 2908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2891
diff
changeset
|
3585 gtk_box_pack_start(GTK_BOX(c->bbox), frame, FALSE, FALSE, 5); |
| 3671 | 3586 gtk_box_reorder_child(GTK_BOX(c->bbox), frame, 0); |
|
2895
63cdece2348d
[gaim-migrate @ 2908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2891
diff
changeset
|
3587 gtk_widget_show(frame); |
|
63cdece2348d
[gaim-migrate @ 2908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2891
diff
changeset
|
3588 |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3589 event = gtk_event_box_new(); |
|
2895
63cdece2348d
[gaim-migrate @ 2908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2891
diff
changeset
|
3590 gtk_container_add(GTK_CONTAINER(frame), event); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4160
diff
changeset
|
3591 g_signal_connect(GTK_OBJECT(event), "button-press-event", G_CALLBACK(icon_menu), c); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3592 gtk_widget_show(event); |
|
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3593 |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3594 c->icon = gtk_pixmap_new(pm, bm); |
| 4041 | 3595 gtk_widget_set_size_request(c->icon, sf, sf); |
|
2499
933e139fd0d3
[gaim-migrate @ 2512]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2487
diff
changeset
|
3596 gtk_container_add(GTK_CONTAINER(event), c->icon); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3597 gtk_widget_show(c->icon); |
| 3012 | 3598 if(im_options & OPT_IM_NO_ANIMATION) |
| 3013 | 3599 stop_anim(NULL, c); |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3600 gdk_pixmap_unref(pm); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3601 if (bm) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3602 gdk_bitmap_unref(bm); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3603 } |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3604 |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3605 void got_new_icon(struct gaim_connection *gc, char *who) |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3606 { |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3607 struct conversation *c = find_conversation(who); |
|
2245
31157c54fe6e
[gaim-migrate @ 2255]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2239
diff
changeset
|
3608 if (c && (c->gc == gc)) |
|
2191
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3609 update_icon(c); |
|
657dbe515608
[gaim-migrate @ 2201]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2167
diff
changeset
|
3610 } |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3611 |
|
2323
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3612 void set_hide_icons() |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3613 { |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3614 GList *c = conversations; |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3615 while (c) { |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3616 update_icon(c->data); |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3617 c = c->next; |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3618 } |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3619 } |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2313
diff
changeset
|
3620 |
| 3013 | 3621 void set_anim() |
| 3622 { | |
| 3623 GList *c = conversations; | |
| 3097 | 3624 if (im_options & OPT_IM_HIDE_ICONS) |
| 3625 return; | |
| 3013 | 3626 while (c) { |
| 3627 if(im_options & OPT_IM_NO_ANIMATION) | |
| 3628 stop_anim(NULL, c->data); | |
| 3629 else | |
| 3630 start_anim(NULL, c->data); | |
| 3631 c = c->next; | |
| 3632 } | |
| 3633 } | |
| 3634 | |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3635 static void remove_checkbox(struct conversation *c) |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3636 { |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3637 if (c->check) |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3638 gtk_container_remove(GTK_CONTAINER(c->lbox), c->check); |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3639 c->check = NULL; |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3640 } |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3641 |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3642 static void update_checkbox(struct conversation *c) |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3643 { |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3644 if (!c) |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3645 return; |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3646 |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3647 remove_checkbox(c); |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3648 |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3649 if (!c->gc) |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3650 return; |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3651 |
|
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2699
diff
changeset
|
3652 if (!c->gc->checkbox) |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3653 return; |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3654 |
|
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2699
diff
changeset
|
3655 c->check = gtk_check_button_new_with_label(c->gc->checkbox); |
|
2231
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3656 gtk_box_pack_start(GTK_BOX(c->lbox), c->check, FALSE, FALSE, 5); |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3657 gtk_widget_show(c->check); |
|
8c4ff1a368bd
[gaim-migrate @ 2241]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2227
diff
changeset
|
3658 } |
