src/buddy_chat.c

Tue, 22 Aug 2000 00:37:01 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Tue, 22 Aug 2000 00:37:01 +0000
changeset 736
0e380859da63
parent 716
56e303f98361
child 780
0513afaaf062
permissions
-rw-r--r--

[gaim-migrate @ 746]
Eric the Lumberjack continues to hack away at the tree. When people ask
what kinds of trees Eric hacks, he simply replied "CVS trees. They're
mostly used for computer stuff". Then the ignorants go away, thinking
they have been enlightened into the world of computers, which unknowingly
they have been.

1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
349
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 344
diff changeset
22 #ifdef HAVE_CONFIG_H
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 344
diff changeset
23 #include "../config.h"
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 344
diff changeset
24 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 #include <string.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
26 #include <sys/time.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27 #include <unistd.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <stdio.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <stdlib.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
30 #include <gtk/gtk.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31 #include "gtkhtml.h"
300
a6c19f404e08 [gaim-migrate @ 310]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 226
diff changeset
32 #include <gdk/gdkkeysyms.h>
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
33
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
34 #include "convo.h"
344
6dacf96cc000 [gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
35
604
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 535
diff changeset
36 #include "pixmaps/join.xpm"
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 535
diff changeset
37 #include "pixmaps/cancel.xpm"
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 535
diff changeset
38
a20b54408619 [gaim-migrate @ 614]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 535
diff changeset
39
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
40 static GtkWidget *joinchat;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41 static GtkWidget *entry;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42 static GtkWidget *invite;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
43 static GtkWidget *inviteentry;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
44 static GtkWidget *invitemess;
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
45 static int community;
344
6dacf96cc000 [gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
46 extern int state_lock;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
47
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
48 static void destroy_join_chat()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
49 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
50 if (joinchat)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
51 gtk_widget_destroy(joinchat);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
52 joinchat=NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
53 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
54
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
55 static void destroy_invite()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
56 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
57 if (invite)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
58 gtk_widget_destroy(invite);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
59 invite=NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
60 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
61
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
62
694
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
63 struct conversation *find_chat(char *name)
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
64 {
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
65 char cuser[64];
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
66 struct conversation *c = NULL;
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
67 GList *cnv = buddy_chats;
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
68
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
69 strcpy(cuser, normalize(name));
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
70
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
71 while (cnv) {
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
72 c = (struct conversation *)cnv->data;
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
73 if (!strcasecmp(cuser, normalize(c->name))) {
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
74 return c;
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
75 }
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
76 cnv = cnv->next;
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
77 }
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
78 return NULL;
1577e85770be [gaim-migrate @ 704]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 692
diff changeset
79 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
80
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
81
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
82 static void do_join_chat()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
83 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
84 char *group;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
85
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
86 group = gtk_entry_get_text(GTK_ENTRY(entry));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
87
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
88 if (joinchat) {
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
89 serv_join_chat(community + 4, group);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
90 gtk_widget_destroy(joinchat);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
91 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
92 joinchat=NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
93 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
94
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
95
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
96
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
97 void join_chat()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
98 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
99 GtkWidget *cancel;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
100 GtkWidget *join;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
101 GtkWidget *label;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
102 GtkWidget *bbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
103 GtkWidget *vbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
104 GtkWidget *topbox;
457
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
105 GtkWidget *frame;
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
106 GtkWidget *opt;
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
107 GtkWidget *hbox;
456
0cae8eafffa3 [gaim-migrate @ 466]
Rob Flynn <gaim@robflynn.com>
parents: 449
diff changeset
108
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
109 if (!joinchat) {
457
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
110 joinchat = gtk_window_new(GTK_WINDOW_DIALOG);
485
29c540d07afc [gaim-migrate @ 495]
Rob Flynn <gaim@robflynn.com>
parents: 483
diff changeset
111 gtk_widget_set_usize(joinchat, 300, 100);
457
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
112 gtk_window_set_policy(GTK_WINDOW(joinchat), FALSE, FALSE, TRUE);
456
0cae8eafffa3 [gaim-migrate @ 466]
Rob Flynn <gaim@robflynn.com>
parents: 449
diff changeset
113 gtk_widget_show(joinchat);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
114 bbox = gtk_hbox_new(TRUE, 10);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
115 topbox = gtk_hbox_new(FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
116 vbox = gtk_vbox_new(FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
117 entry = gtk_entry_new();
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
118 hbox = gtk_hbox_new(TRUE, 10);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
119
457
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
120 frame = gtk_frame_new(_("Buddy Chat"));
456
0cae8eafffa3 [gaim-migrate @ 466]
Rob Flynn <gaim@robflynn.com>
parents: 449
diff changeset
121
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
122 join = picture_button(joinchat, _("Join"), join_xpm);
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
123 cancel = picture_button(joinchat, _("Cancel"), cancel_xpm);
456
0cae8eafffa3 [gaim-migrate @ 466]
Rob Flynn <gaim@robflynn.com>
parents: 449
diff changeset
124
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
125 gtk_box_pack_start(GTK_BOX(bbox), join, FALSE, FALSE, 5);
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
126 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5);
456
0cae8eafffa3 [gaim-migrate @ 466]
Rob Flynn <gaim@robflynn.com>
parents: 449
diff changeset
127
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
128 label = gtk_label_new(_("Join what group:"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
129 gtk_widget_show(label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
130 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
131 gtk_box_pack_start(GTK_BOX(topbox), entry, FALSE, FALSE, 5);
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
132
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
133 opt = gtk_radio_button_new_with_label(NULL,
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
134 _("AIM Private Chats"));
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
135 gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 0);
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
136 community = 0;
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
137 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
138 gtk_signal_connect(GTK_OBJECT(opt), "clicked", set_option, &community);
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
139 gtk_widget_show(opt);
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
140
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
141 opt = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(opt)),
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
142 _("AOL Community Chats"));
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
143 gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 0);
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
144 gtk_widget_show(opt);
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
145
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
146 /* And the boxes in the box */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
147 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
148 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5);
457
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
149 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
150
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
151 /* Handle closes right */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
152 gtk_signal_connect(GTK_OBJECT(joinchat), "delete_event",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
153 GTK_SIGNAL_FUNC(destroy_join_chat), joinchat);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
154
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
155 gtk_signal_connect(GTK_OBJECT(cancel), "clicked",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
156 GTK_SIGNAL_FUNC(destroy_join_chat), joinchat);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
157 gtk_signal_connect(GTK_OBJECT(join), "clicked",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
158 GTK_SIGNAL_FUNC(do_join_chat), joinchat);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
159 gtk_signal_connect(GTK_OBJECT(entry), "activate",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
160 GTK_SIGNAL_FUNC(do_join_chat), joinchat);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
161 /* Finish up */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
162 gtk_widget_show(join);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
163 gtk_widget_show(cancel);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
164 gtk_widget_show(entry);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
165 gtk_widget_show(topbox);
692
38c3f73d6230 [gaim-migrate @ 702]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 666
diff changeset
166 gtk_widget_show(hbox);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
167 gtk_widget_show(bbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
168 gtk_widget_show(vbox);
457
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
169 gtk_widget_show(frame);
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
170 gtk_container_add(GTK_CONTAINER(frame), vbox);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
171 gtk_window_set_title(GTK_WINDOW(joinchat), _("Join Chat"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
172 gtk_window_set_focus(GTK_WINDOW(joinchat), entry);
457
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
173 gtk_container_add(GTK_CONTAINER(joinchat), frame);
af500e4a1c55 [gaim-migrate @ 467]
Rob Flynn <gaim@robflynn.com>
parents: 456
diff changeset
174 gtk_container_set_border_width(GTK_CONTAINER(joinchat), 5);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
175 gtk_widget_realize(joinchat);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
176 aol_icon(joinchat->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
177
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
178 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
179 gtk_widget_show(joinchat);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
180 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
181
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
182
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
183 static void do_invite(GtkWidget *w, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
184 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
185 char *buddy;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
186 char *mess;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
187
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
188 if (!b->is_chat) {
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
189 debug_print("do_invite: expecting chat, got IM\n");
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
190 return;
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
191 }
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
192
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
193 buddy = gtk_entry_get_text(GTK_ENTRY(inviteentry));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
194 mess = gtk_entry_get_text(GTK_ENTRY(invitemess));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
195
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
196 if (invite) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
197 serv_chat_invite(b->id, mess, buddy);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
198 gtk_widget_destroy(invite);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
199 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
200 invite=NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
201 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
202
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
203
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
204
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
205 void invite_callback(GtkWidget *w, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
206 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
207 GtkWidget *cancel;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
208 GtkWidget *invite_btn;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
209 GtkWidget *label;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
210 GtkWidget *bbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
211 GtkWidget *vbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
212 GtkWidget *topbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
213 if (!invite) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
214 invite = gtk_window_new(GTK_WINDOW_DIALOG);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
215 cancel = gtk_button_new_with_label(_("Cancel"));
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
216 invite_btn = gtk_button_new_with_label(_("Invite"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
217 bbox = gtk_hbox_new(TRUE, 10);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
218 topbox = gtk_hbox_new(FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
219 vbox = gtk_vbox_new(FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
220 inviteentry = gtk_entry_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
221 invitemess = gtk_entry_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
222
535
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
223 if (display_options & OPT_DISP_COOL_LOOK)
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
224 {
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
225 gtk_button_set_relief(GTK_BUTTON(cancel), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
226 gtk_button_set_relief(GTK_BUTTON(invite_btn), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
227 }
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
228
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
229 /* Put the buttons in the box */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
230 gtk_box_pack_start(GTK_BOX(bbox), invite_btn, TRUE, TRUE, 10);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
231 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
232
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
233 label = gtk_label_new(_("Invite who?"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
234 gtk_widget_show(label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
235 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
236 gtk_box_pack_start(GTK_BOX(topbox), inviteentry, FALSE, FALSE, 5);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
237 label = gtk_label_new(_("With message:"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
238 gtk_widget_show(label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
239 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
240 gtk_box_pack_start(GTK_BOX(topbox), invitemess, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
241
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
242 /* And the boxes in the box */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
243 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
244 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
245
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
246 /* Handle closes right */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
247 gtk_signal_connect(GTK_OBJECT(invite), "delete_event",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
248 GTK_SIGNAL_FUNC(destroy_invite), invite);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
249
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
250 gtk_signal_connect(GTK_OBJECT(cancel), "clicked",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
251 GTK_SIGNAL_FUNC(destroy_invite), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
252 gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
253 GTK_SIGNAL_FUNC(do_invite), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
254 gtk_signal_connect(GTK_OBJECT(inviteentry), "activate",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
255 GTK_SIGNAL_FUNC(do_invite), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
256 /* Finish up */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
257 gtk_widget_show(invite_btn);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
258 gtk_widget_show(cancel);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
259 gtk_widget_show(inviteentry);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
260 gtk_widget_show(invitemess);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
261 gtk_widget_show(topbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
262 gtk_widget_show(bbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
263 gtk_widget_show(vbox);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
264 gtk_window_set_title(GTK_WINDOW(invite), _("Invite to Buddy Chat"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
265 gtk_window_set_focus(GTK_WINDOW(invite), inviteentry);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
266 gtk_container_add(GTK_CONTAINER(invite), vbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
267 gtk_widget_realize(invite);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
268 aol_icon(invite->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
269
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
270 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
271 gtk_widget_show(invite);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
272 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
273
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
274 gboolean meify(char *message) {
415
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
275 /* read /me-ify : if the message (post-HTML) starts with /me, remove
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
276 * the "/me " part of it (including that space) and return TRUE */
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
277 char *c = message;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
278 int inside_HTML = 0; /* i really don't like descriptive names */
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
279 if (!c) return FALSE; /* um... this would be very bad if this happens */
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
280 while (*c) {
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
281 if (inside_HTML) {
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
282 if (*c == '>') inside_HTML = 0;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
283 } else {
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
284 if (*c == '<') inside_HTML = 1;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
285 else break;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
286 }
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
287 c++; /* i really don't like c++ either */
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
288 }
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
289 /* k, so now we've gotten past all the HTML crap. */
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
290 if (!*c) return FALSE;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
291 if (!strncmp(c, "/me ", 4)) {
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
292 sprintf(c, "%s", c+4);
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
293 return TRUE;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
294 } else
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
295 return FALSE;
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
296 }
3ee978f88b41 [gaim-migrate @ 425]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
297
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
298 void chat_write(struct conversation *b, char *who, int flag, char *message)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
299 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
300 GList *ignore = b->ignored;
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
301 char *str;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
302
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
303 if (!b->is_chat) {
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
304 debug_print("chat_write: expecting chat, got IM\n");
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
305 return;
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
306 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
307
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
308 while(ignore) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
309 if (!strcasecmp(who, ignore->data))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
310 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
311 ignore = ignore->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
312 }
371
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
313
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
314
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
315 if (!(flag & WFLAG_WHISPER)) {
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
316 str = g_strdup(normalize(who));
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
317 if (!strcasecmp(str, normalize(current_user->username))) {
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
318 sprintf(debug_buff, "%s %s\n", normalize(who), normalize(current_user->username));
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
319 debug_print(debug_buff);
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
320 if (b->makesound && (sound_options & OPT_SOUND_CHAT_SAY))
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
321 play_sound(SEND);
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
322 flag |= WFLAG_SEND;
371
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
323 } else {
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
324 if (b->makesound && (sound_options & OPT_SOUND_CHAT_SAY))
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
325 play_sound(RECEIVE);
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
326 flag |= WFLAG_RECV;
371
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
327 }
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
328 g_free(str);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
329 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
330
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
331 write_to_conv(b, message, flag, who);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
332 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
333
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
334
368
07791993f5c3 [gaim-migrate @ 378]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 363
diff changeset
335
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
336 void whisper_callback(GtkWidget *widget, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
337 {
79
d0d0ecf6fc03 [gaim-migrate @ 89]
G Sumner Hayes
parents: 26
diff changeset
338 char buf[BUF_LEN*4];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
339 char buf2[BUF_LONG];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
340 GList *selected;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
341 char *who;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
342
338
21c93bc7ae83 [gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 300
diff changeset
343 strncpy(buf, gtk_editable_get_chars(GTK_EDITABLE(b->entry), 0, -1), sizeof(buf)/2);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
344 if (!strlen(buf))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
345 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
346
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
347 selected = GTK_LIST(b->list)->selection;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
348
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
349 if (!selected)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
350 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
351
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
352
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
353 who = GTK_LABEL(gtk_container_children(GTK_CONTAINER(selected->data))->data)->label;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
354
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
355 if (!who)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
356 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
357
338
21c93bc7ae83 [gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 300
diff changeset
358 gtk_editable_delete_text(GTK_EDITABLE(b->entry), 0, -1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
359
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
360 escape_text(buf);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
361 serv_chat_whisper(b->id, who, buf);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
362
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
363 g_snprintf(buf2, sizeof(buf2), "%s->%s", current_user->username, who);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
364
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
365 chat_write(b, buf2, WFLAG_WHISPER, buf);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
366
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
367 gtk_widget_grab_focus(GTK_WIDGET(b->entry));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
368
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
369
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
370 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
371
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
372
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
373
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
374 void update_chat_list(struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
375 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
376 GtkWidget *list_item;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
377 char name[80];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
378 char *tmp;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
379 GList *names = b->in_room;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
380
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
381 if (!b->is_chat) {
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
382 debug_print("update_chat_list: expecting chat, got IM\n");
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
383 return;
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
384 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
385
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
386 gtk_list_clear_items(GTK_LIST(b->list), 0, -1);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
387
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
388
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
389 while(names) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
390 tmp = (char *)names->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
391 if (g_list_index(b->ignored, names->data) != -1)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
392 g_snprintf(name, sizeof(name), "X %s", tmp);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
393 else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
394 g_snprintf(name, sizeof(name), "%s", tmp);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
395
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
396 list_item = gtk_list_item_new_with_label(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
397 gtk_widget_show(list_item);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
398 gtk_object_set_user_data(GTK_OBJECT(list_item), tmp);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
399
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
400 gtk_list_append_items(GTK_LIST(b->list), g_list_append(NULL, list_item));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
401
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
402 names = names->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
403 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
404
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
405 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
406
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
407
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
408
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
409 void add_chat_buddy(struct conversation *b, char *buddy)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
410 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
411 char *name = g_strdup(buddy);
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
412 char tmp[BUF_LONG];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
413
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
414 #ifdef GAIM_PLUGINS
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
415 GList *c = callbacks;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
416 struct gaim_callback *g;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
417 void (*function)(char *, char *, void *);
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
418 while (c) {
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
419 g = (struct gaim_callback *)c->data;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
420 if (g->event == event_chat_buddy_join && g->function != NULL) {
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
421 function = g->function;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
422 (*function)(b->name, name, g->data);
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
423 }
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
424 c = c->next;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
425 }
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
426 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
427 b->in_room = g_list_append(b->in_room, name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
428
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
429 update_chat_list(b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
430
371
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
431 if (b->makesound && (sound_options & OPT_SOUND_CHAT_JOIN))
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
432 play_sound(BUDDY_ARRIVE);
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
433
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
434 if (display_options & OPT_DISP_CHAT_LOGON) {
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
435 g_snprintf(tmp, sizeof(tmp), _("<B>%s entered the room.</B>"), name);
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
436 write_to_conv(b, tmp, WFLAG_SYSTEM, NULL);
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
437 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
438 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
439
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
440
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
441
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
442
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
443 void remove_chat_buddy(struct conversation *b, char *buddy)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
444 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
445 GList *names = b->in_room;
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
446 char tmp[BUF_LONG];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
447
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
448 #ifdef GAIM_PLUGINS
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
449 GList *c = callbacks;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
450 struct gaim_callback *g;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
451 void (*function)(char *, char *, void *);
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
452 while (c) {
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
453 g = (struct gaim_callback *)c->data;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
454 if (g->event == event_chat_buddy_leave && g->function != NULL) {
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
455 function = g->function;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
456 (*function)(b->name, buddy, g->data);
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
457 }
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
458 c = c->next;
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
459 }
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
460 #endif
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 375
diff changeset
461
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
462 while(names) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
463 if (!strcasecmp((char *)names->data, buddy)) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
464 b->in_room = g_list_remove(b->in_room, names->data);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
465 update_chat_list(b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
466 break;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
467 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
468 names = names->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
469 }
371
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
470
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
471 if (b->makesound && (sound_options & OPT_SOUND_CHAT_JOIN))
12d85f4efaaa [gaim-migrate @ 381]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
472 play_sound(BUDDY_LEAVE);
612
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
473
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
474 if (display_options & OPT_DISP_CHAT_LOGON) {
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
475 g_snprintf(tmp, sizeof(tmp), _("<B>%s left the room.</B>"), buddy);
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
476 write_to_conv(b, tmp, WFLAG_SYSTEM, NULL);
5c05c50238e8 [gaim-migrate @ 622]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 604
diff changeset
477 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
478 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
479
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
480
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
481 void im_callback(GtkWidget *w, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
482 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
483 char *name;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
484 GList *i;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
485 struct conversation *c;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
486
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
487 i = GTK_LIST(b->list)->selection;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
488 if (i)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
489 name = (char *)gtk_object_get_user_data(GTK_OBJECT(i->data));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
490 else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
491 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
492
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
493 c = find_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
494
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
495 if (c != NULL) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
496 gdk_window_raise(c->window->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
497 } else {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
498 c = new_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
499 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
500
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
501
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
502 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
503
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
504 void ignore_callback(GtkWidget *w, struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
505 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
506 char *name;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
507 GList *i;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
508
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
509 i = GTK_LIST(b->list)->selection;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
510 if (i)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
511 name = (char *)gtk_object_get_user_data(GTK_OBJECT(i->data));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
512 else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
513 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
514
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
515 if (g_list_index(b->ignored, (gpointer)name) == -1)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
516 b->ignored = g_list_append(b->ignored, name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
517 else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
518 b->ignored = g_list_remove(b->ignored, name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
519
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
520 update_chat_list(b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
521 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
522
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
523
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
524
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
525 void show_new_buddy_chat(struct conversation *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
526 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
527 GtkWidget *win;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
528 GtkWidget *text;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
529 GtkWidget *send;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
530 GtkWidget *list;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
531 GtkWidget *invite_btn;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
532 GtkWidget *whisper;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
533 GtkWidget *close;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
534 GtkWidget *chatentry;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
535 GtkWidget *lbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
536 GtkWidget *bbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
537 GtkWidget *bbox2;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
538 GtkWidget *im, *ignore, *info;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
539 GtkWidget *sw;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
540 GtkWidget *sw2;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
541 GtkWidget *vbox;
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
542 GtkWidget *vpaned;
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
543 GtkWidget *hpaned;
344
6dacf96cc000 [gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
544 GtkWidget *toolbar;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
545
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
546 win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
547 b->window = win;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
548
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
549 vpaned = gtk_vpaned_new();
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
550 hpaned = gtk_hpaned_new();
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
551
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 21
diff changeset
552 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 21
diff changeset
553
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
554 close = gtk_button_new_with_label(_("Close"));
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
555 invite_btn = gtk_button_new_with_label(_("Invite"));
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
556 whisper = gtk_button_new_with_label(_("Whisper"));
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
557 send = gtk_button_new_with_label(_("Send"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
558
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
559 im = gtk_button_new_with_label(_("IM"));
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
560 ignore = gtk_button_new_with_label(_("Ignore"));
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
561 info = gtk_button_new_with_label(_("Info"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
562
535
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
563 if (display_options & OPT_DISP_COOL_LOOK)
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
564 {
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
565 gtk_button_set_relief(GTK_BUTTON(close), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
566 gtk_button_set_relief(GTK_BUTTON(invite_btn), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
567 gtk_button_set_relief(GTK_BUTTON(whisper), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
568 gtk_button_set_relief(GTK_BUTTON(send), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
569 gtk_button_set_relief(GTK_BUTTON(im), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
570 gtk_button_set_relief(GTK_BUTTON(ignore), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
571 gtk_button_set_relief(GTK_BUTTON(info), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
572 }
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 485
diff changeset
573
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
574 text = gtk_html_new(NULL, NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
575
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
576 b->text = text;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
577
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
578 list = gtk_list_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
579 b->list = list;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
580
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
581 bbox = gtk_hbox_new(TRUE, 0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
582 bbox2 = gtk_hbox_new(TRUE, 0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
583 vbox = gtk_vbox_new(FALSE, 0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
584 lbox = gtk_vbox_new(FALSE, 4);
646
137b02ef8935 [gaim-migrate @ 656]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 615
diff changeset
585
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
586 chatentry = gtk_text_new( NULL, NULL );
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
587 gtk_text_set_editable(GTK_TEXT(chatentry), TRUE);
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
588 gtk_text_set_word_wrap(GTK_TEXT(chatentry), TRUE);
646
137b02ef8935 [gaim-migrate @ 656]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 615
diff changeset
589 gtk_object_set_user_data(GTK_OBJECT(chatentry), b);
137b02ef8935 [gaim-migrate @ 656]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 615
diff changeset
590 b->entry = chatentry;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
591
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
592 gtk_widget_realize(win);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
593
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
594 toolbar = build_conv_toolbar(b);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
595
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
596 /* Hack something so we know have an entry click event */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
597
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
598 gtk_signal_connect(GTK_OBJECT(chatentry), "activate", GTK_SIGNAL_FUNC(send_callback),b);
472
9a5b8da2d760 [gaim-migrate @ 482]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 457
diff changeset
599 gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(keypress_callback), b);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
600 /* Text box */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
601
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
602 sw = gtk_scrolled_window_new (NULL, NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
603 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
604 GTK_POLICY_NEVER,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
605 GTK_POLICY_ALWAYS);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
606 gtk_widget_show(sw);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
607 gtk_container_add(GTK_CONTAINER(sw), text);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
608 gtk_widget_show(text);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
609
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
610
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
611 GTK_HTML (text)->hadj->step_increment = 10.0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
612 GTK_HTML (text)->vadj->step_increment = 10.0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
613 gtk_widget_set_usize(sw, 320, 150);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
614
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
615 gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
616
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
617 sw2 = gtk_scrolled_window_new(NULL, NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
618 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
619 GTK_POLICY_NEVER,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
620 GTK_POLICY_AUTOMATIC);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
621 gtk_widget_show(sw2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
622 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
623
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
624 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0);
226
871b91a5b45f [gaim-migrate @ 236]
Syd Logan <slogan@users.sourceforge.net>
parents: 223
diff changeset
625 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 5);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
626
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
627
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
628 gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
629 gtk_widget_show(list);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
630
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
631
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
632 gtk_widget_set_usize(list, 150, 150);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
633
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
634
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
635 /* Ready and pack buttons */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
636 gtk_object_set_user_data(GTK_OBJECT(win), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
637 gtk_object_set_user_data(GTK_OBJECT(close), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
638 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_callback),b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
639 gtk_signal_connect(GTK_OBJECT(send), "clicked", GTK_SIGNAL_FUNC(send_callback),b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
640 gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(invite_callback), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
641 gtk_signal_connect(GTK_OBJECT(whisper), "clicked", GTK_SIGNAL_FUNC(whisper_callback), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
642
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
643 gtk_signal_connect(GTK_OBJECT(im), "clicked", GTK_SIGNAL_FUNC(im_callback), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
644 gtk_signal_connect(GTK_OBJECT(ignore), "clicked", GTK_SIGNAL_FUNC(ignore_callback), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
645 gtk_signal_connect(GTK_OBJECT(info), "clicked", GTK_SIGNAL_FUNC(info_callback), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
646
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
647 gtk_box_pack_start(GTK_BOX(bbox), send, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
648 gtk_box_pack_start(GTK_BOX(bbox), whisper, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
649 gtk_box_pack_start(GTK_BOX(bbox), invite_btn, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
650 gtk_box_pack_start(GTK_BOX(bbox), close, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
651
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
652 gtk_box_pack_start(GTK_BOX(bbox2), im, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
653 gtk_box_pack_start(GTK_BOX(bbox2), ignore, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
654 gtk_box_pack_start(GTK_BOX(bbox2), info, TRUE, TRUE, 5);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
655
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
656 /* pack and fill the rest */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
657
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
658
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
659 gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE);
344
6dacf96cc000 [gaim-migrate @ 354]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
660 gtk_box_pack_start(GTK_BOX(vbox), toolbar, TRUE, TRUE, 5);
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
661 gtk_box_pack_start(GTK_BOX(vbox), chatentry, TRUE, TRUE, 5);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
662 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
663 gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
664
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
665 gtk_widget_show(send);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
666 gtk_widget_show(invite_btn);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
667 gtk_widget_show(whisper);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
668 gtk_widget_show(close);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
669 gtk_widget_show(im);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
670 gtk_widget_show(ignore);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
671 gtk_widget_show(info);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
672 gtk_widget_show(bbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
673 gtk_widget_show(lbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
674 gtk_widget_show(bbox2);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
675 gtk_widget_show(vbox);
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
676 gtk_widget_show( vpaned );
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
677 gtk_widget_show( hpaned );
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
678 gtk_widget_show(chatentry);
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
679 gtk_widget_set_usize(chatentry, 320, 25);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
680
223
06248cfc2171 [gaim-migrate @ 233]
Syd Logan <slogan@users.sourceforge.net>
parents: 199
diff changeset
681 gtk_container_add(GTK_CONTAINER(win),vpaned);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
682 gtk_container_border_width(GTK_CONTAINER(win), 10);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
683
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
684 gtk_window_set_title(GTK_WINDOW(win), b->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
685 gtk_window_set_focus(GTK_WINDOW(win), chatentry);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
686
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
687 gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback),b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
688
716
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
689 b->font_dialog = NULL;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
690 b->color_dialog = NULL;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
691 b->smiley_dialog = NULL;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
692 b->link_dialog = NULL;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
693 b->log_dialog = NULL;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
694 sprintf(b->fontface, "%s", fontface);
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
695 b->hasfont = 0;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
696 b->bgcol = bgcolor;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
697 b->hasbg = 0;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
698 b->fgcol = fgcolor;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
699 b->hasfg = 0;
56e303f98361 [gaim-migrate @ 726]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 694
diff changeset
700
615
5b8e30b7a3fe [gaim-migrate @ 625]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 612
diff changeset
701 gtk_widget_realize(win);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
702 aol_icon(win->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
703
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
704 gtk_widget_show(win);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
705 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
706
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
707
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
708
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
709 void handle_click_chat(GtkWidget *widget, GdkEventButton *event, struct chat_room *cr)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
710 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
711 if (event->type == GDK_2BUTTON_PRESS && event->button == 1) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
712 serv_join_chat(cr->exchange, cr->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
713 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
714 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
715
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
716
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
717 void setup_buddy_chats()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
718 {
21
bb3ec861d116 [gaim-migrate @ 30]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
719 GList *list;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
720 struct chat_room *cr;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
721 GList *crs = chat_rooms;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
722 GtkWidget *w;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
723 GtkWidget *item;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
724 GtkWidget *tree;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
725
21
bb3ec861d116 [gaim-migrate @ 30]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
726 if (buddies == NULL)
bb3ec861d116 [gaim-migrate @ 30]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
727 return;
bb3ec861d116 [gaim-migrate @ 30]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
728
bb3ec861d116 [gaim-migrate @ 30]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
729 list = GTK_TREE(buddies)->children;
bb3ec861d116 [gaim-migrate @ 30]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1
diff changeset
730
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
731 while(list) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
732 w = (GtkWidget *)list->data;
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
733 if (!strcmp(GTK_LABEL(GTK_BIN(w)->child)->label, _("Buddy Chat"))) {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
734 gtk_tree_remove_items(GTK_TREE(buddies), list);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
735 list = GTK_TREE(buddies)->children;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
736 if (!list)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
737 break;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
738 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
739 list = list->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
740 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
741
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
742 if (crs == NULL)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
743 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
744
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
745 item = gtk_tree_item_new_with_label(_("Buddy Chat"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
746 tree = gtk_tree_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
747 gtk_widget_show(item);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
748 gtk_widget_show(tree);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
749 gtk_tree_append(GTK_TREE(buddies), item);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
750 gtk_tree_item_set_subtree(GTK_TREE_ITEM(item), tree);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
751 gtk_tree_item_expand(GTK_TREE_ITEM(item));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
752
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
753 while (crs) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
754 cr = (struct chat_room *)crs->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
755
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
756 item = gtk_tree_item_new_with_label(cr->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
757 gtk_object_set_user_data(GTK_OBJECT(item), cr);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
758 gtk_tree_append(GTK_TREE(tree), item);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
759 gtk_widget_show(item);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
760 gtk_signal_connect(GTK_OBJECT(item), "button_press_event",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
761 GTK_SIGNAL_FUNC(handle_click_chat),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
762 cr);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
763
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
764 crs = crs->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
765
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
766 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
767
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
768 }

mercurial