src/buddy.c

Sat, 22 Sep 2001 11:35:00 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Sat, 22 Sep 2001 11:35:00 +0000
changeset 2350
94cc09f218c0
parent 2334
d7e3a9fe4a71
child 2372
c24942700dfd
permissions
-rw-r--r--

[gaim-migrate @ 2363]
I have an Abba song stuck in my head but I don't know what it's called or what any of the words are, except "Take a chance on me". Just that one line, over and over and over and over. And all because my sound card driver doesn't work and I'm too lazy to switch the speakers from blue back to penguin.

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: 342
diff changeset
22 #ifdef HAVE_CONFIG_H
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2048
diff changeset
23 #include <config.h>
349
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 342
diff changeset
24 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 #ifdef USE_APPLET
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
26 #include <gnome.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27 #include <applet-widget.h>
1261
57936cac4ea1 [gaim-migrate @ 1271]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
28 #include "applet.h"
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #endif /* USE_APPLET */
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 350
diff changeset
30 #ifdef GAIM_PLUGINS
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 350
diff changeset
31 #include <dlfcn.h>
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 350
diff changeset
32 #endif /* GAIM_PLUGINS */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
33 #include <string.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
34 #include <stdio.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
35 #include <stdlib.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
36 #include <math.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37 #include <time.h>
1233
e73eeec6323c [gaim-migrate @ 1243]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1230
diff changeset
38 #include <unistd.h>
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
39
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
40 #include <gdk/gdkkeysyms.h>
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41 #include <gtk/gtk.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42 #include <gdk/gdkx.h>
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
43 #include "prpl.h"
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
44 #include "gaim.h"
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
45 #include "pixmaps/login_icon.xpm"
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
46 #include "pixmaps/logout_icon.xpm"
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
47 #include "pixmaps/no_icon.xpm"
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
48
872
2456b5f16b05 [gaim-migrate @ 882]
Rob Flynn <gaim@robflynn.com>
parents: 870
diff changeset
49 #include "pixmaps/away_small.xpm"
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
50 #include "pixmaps/away_big.xpm"
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
51
714
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
52 #include "pixmaps/add_small.xpm"
718
aedba1b670a7 [gaim-migrate @ 728]
Rob Flynn <gaim@robflynn.com>
parents: 714
diff changeset
53 #include "pixmaps/import_small.xpm"
1815
e2b090284b19 [gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1805
diff changeset
54 /*#include "pixmaps/export_small.xpm"*/
885
5564685b68d8 [gaim-migrate @ 895]
William Bader
parents: 875
diff changeset
55 #if defined(GAIM_PLUGINS) || defined(USE_PERL)
801
e18aadc029f3 [gaim-migrate @ 811]
Rob Flynn <gaim@robflynn.com>
parents: 798
diff changeset
56 #include "pixmaps/plugins_small.xpm"
e18aadc029f3 [gaim-migrate @ 811]
Rob Flynn <gaim@robflynn.com>
parents: 798
diff changeset
57 #endif
e18aadc029f3 [gaim-migrate @ 811]
Rob Flynn <gaim@robflynn.com>
parents: 798
diff changeset
58 #include "pixmaps/prefs_small.xpm"
1880
eb37a5e57e9c [gaim-migrate @ 1890]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1874
diff changeset
59 #ifdef NO_MULTI
eb37a5e57e9c [gaim-migrate @ 1890]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1874
diff changeset
60 #include "pixmaps/search_small.xpm"
eb37a5e57e9c [gaim-migrate @ 1890]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1874
diff changeset
61 #endif
747
dc0b25d67711 [gaim-migrate @ 757]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 746
diff changeset
62 #ifdef USE_APPLET
727
0a4b025a65da [gaim-migrate @ 737]
Rob Flynn <gaim@robflynn.com>
parents: 719
diff changeset
63 #include "pixmaps/close_small.xpm"
1456
c03c929f8139 [gaim-migrate @ 1466]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1435
diff changeset
64 #else
c03c929f8139 [gaim-migrate @ 1466]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1435
diff changeset
65 #include "pixmaps/exit_small.xpm"
747
dc0b25d67711 [gaim-migrate @ 757]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 746
diff changeset
66 #endif
865
26a91fa5999c [gaim-migrate @ 875]
Rob Flynn <gaim@robflynn.com>
parents: 864
diff changeset
67 #include "pixmaps/pounce_small.xpm"
874
7b7f16d7b6d7 [gaim-migrate @ 884]
Rob Flynn <gaim@robflynn.com>
parents: 872
diff changeset
68 #include "pixmaps/about_small.xpm"
714
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
69
820
4c079ffcdc78 [gaim-migrate @ 830]
Rob Flynn <gaim@robflynn.com>
parents: 813
diff changeset
70 #include "pixmaps/tmp_send.xpm"
1177
b658a471cf37 [gaim-migrate @ 1187]
Rob Flynn <gaim@robflynn.com>
parents: 1172
diff changeset
71 #include "pixmaps/send_small.xpm"
820
4c079ffcdc78 [gaim-migrate @ 830]
Rob Flynn <gaim@robflynn.com>
parents: 813
diff changeset
72 #include "pixmaps/tb_search.xpm"
870
750d8c8f6aba [gaim-migrate @ 880]
Rob Flynn <gaim@robflynn.com>
parents: 865
diff changeset
73 #include "pixmaps/join.xpm"
875
fcb395457091 [gaim-migrate @ 885]
Rob Flynn <gaim@robflynn.com>
parents: 874
diff changeset
74 #include "pixmaps/gnome_add.xpm"
fcb395457091 [gaim-migrate @ 885]
Rob Flynn <gaim@robflynn.com>
parents: 874
diff changeset
75 #include "pixmaps/gnome_remove.xpm"
fcb395457091 [gaim-migrate @ 885]
Rob Flynn <gaim@robflynn.com>
parents: 874
diff changeset
76 #include "pixmaps/group.xpm"
820
4c079ffcdc78 [gaim-migrate @ 830]
Rob Flynn <gaim@robflynn.com>
parents: 813
diff changeset
77
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
78 static GtkTooltips *tips;
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
79 static GtkAccelGroup *accel;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
80 static GtkWidget *editpane;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
81 static GtkWidget *buddypane;
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
82 static GtkWidget *imchatbox;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
83 static GtkWidget *edittree;
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
84 static GtkWidget *imbutton, *infobutton, *chatbutton, *awaybutton;
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
85 static GtkWidget *addbutton, *groupbutton, *rembutton;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
86
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
87 GtkWidget *blist = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
88 GtkWidget *bpmenu;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
89 GtkWidget *buddies;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
90
430
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents: 423
diff changeset
91 void BuddyTickerLogonTimeout( gpointer data );
39105dbbbc21 [gaim-migrate @ 440]
Syd Logan <slogan@users.sourceforge.net>
parents: 423
diff changeset
92 void BuddyTickerLogoutTimeout( gpointer data );
1
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 /* Predefine some functions */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
95 static void new_bp_callback(GtkWidget *w, char *name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
96
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
97 struct buddy_show {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
98 GtkWidget *item;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
99 GtkWidget *pix;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
100 GtkWidget *label;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
101 GtkWidget *warn;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
102 GtkWidget *idle;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
103 char *name;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
104 char *show;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
105 GSList *connlist;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
106 guint log_timer;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
107 gint sound;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
108 };
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
109
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
110 /* stuff for actual display of buddy list */
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
111 struct group_show {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
112 GtkWidget *item;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
113 GtkWidget *label;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
114 GtkWidget *tree;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
115 GSList *members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
116 char *name;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
117 };
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
118 static GSList *shows = NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
119
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
120 static struct group_show *find_group_show(char *group);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
121 static struct buddy_show *find_buddy_show(struct group_show *gs, char *name);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
122 static int group_number(char *group);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
123 static int buddy_number(char *group, char *buddy);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
124 static struct group_show *new_group_show(char *group);
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
125 static struct buddy_show *new_buddy_show(struct group_show *gs, struct buddy *buddy, char **xpm);
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
126 static void remove_buddy_show(struct group_show *gs, struct buddy_show *bs);
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
127 static struct group_show *find_gs_by_bs(struct buddy_show *b);
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
128 static void update_num_group(struct group_show *gs);
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
129 static void redo_buddy_list();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
130
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
131 void handle_group_rename(struct group *g, char* prevname) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
132 struct group_show *gs, *new_gs;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
133 struct buddy_show *bs;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
134 struct buddy *b;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
135 GSList *m;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
136 GtkCTreeNode *c;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
137
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
138 c = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, g);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
139 gtk_ctree_node_set_text(GTK_CTREE(edittree), c, 0, g->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
140
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
141 gs = find_group_show(prevname);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
142 if (!gs) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
143 return;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
144 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
145 new_gs = find_group_show(g->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
146 if (new_gs) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
147 /* transfer everything that was in gs and is in the same gaim_conn as g
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
148 * over to new_gs. */
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
149 m = gs->members;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
150 while (m) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
151 bs = (struct buddy_show *)m->data;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
152 if (g_slist_index(bs->connlist, g->gc) >= 0) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
153 b = find_buddy(g->gc, bs->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
154 m = g_slist_next(m);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
155 bs->connlist = g_slist_remove(bs->connlist, g->gc);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
156 if (!bs->connlist) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
157 gs->members = g_slist_remove(gs->members, bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
158 if (bs->log_timer > 0)
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
159 gtk_timeout_remove(bs->log_timer);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
160 bs->log_timer = 0;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
161 remove_buddy_show(gs, bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
162 g_free(bs->show);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
163 g_free(bs->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
164 g_free(bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
165 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
166 if ((bs = find_buddy_show(new_gs, b->name)) == NULL) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
167 if (*g->gc->prpl->list_icon) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
168 bs = new_buddy_show(new_gs, b,
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
169 (*g->gc->prpl->list_icon)(b->uc));
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
170 } else {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
171 bs = new_buddy_show(new_gs, b, (char **)no_icon_xpm);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
172 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
173 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
174 bs->connlist = g_slist_append(bs->connlist, g->gc);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
175 } else {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
176 m = g_slist_next(m);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
177 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
178 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
179 if (!gs->members) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
180 /* we just transferred all of the members out of this group_show,
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
181 * so this group_show serves no purpose now. */
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
182 shows = g_slist_remove(shows, gs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
183 gtk_tree_remove_item(GTK_TREE(buddies), gs->item);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
184 g_free(gs->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
185 g_free(gs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
186 } else {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
187 update_num_group(gs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
188 }
1748
8d60e87826d2 [gaim-migrate @ 1758]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1739
diff changeset
189 update_num_group(new_gs);
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
190 } else {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
191 /* two possible actions: if gs contains things that are only from g,
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
192 * just rename gs and fix the label. otherwise, move everything in g
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
193 * over to another group_show */
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
194 for (m = gs->members; m != NULL; m = g_slist_next(m)) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
195 bs = (struct buddy_show *)m->data;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
196 if (g_slist_index(bs->connlist, g->gc) < 0 ||
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
197 g_slist_length(bs->connlist) > 1) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
198 break;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
199 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
200 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
201 if (m) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
202 /* there's something from a different gaim_connection. */
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
203 new_gs = new_group_show(g->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
204 m = gs->members;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
205 while (m) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
206 bs = (struct buddy_show *)m->data;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
207 if (g_slist_index(bs->connlist, g->gc) >= 0) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
208 b = find_buddy(g->gc, bs->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
209 m = g_slist_next(m);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
210 bs->connlist = g_slist_remove(bs->connlist, g->gc);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
211 if (!bs->connlist) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
212 gs->members = g_slist_remove(gs->members, bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
213 if (bs->log_timer > 0)
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
214 gtk_timeout_remove(bs->log_timer);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
215 bs->log_timer = 0;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
216 remove_buddy_show(gs, bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
217 g_free(bs->show);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
218 g_free(bs->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
219 g_free(bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
220 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
221 if (*g->gc->prpl->list_icon) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
222 bs = new_buddy_show(new_gs, b,
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
223 (*g->gc->prpl->list_icon)(b->uc));
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
224 } else {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
225 bs = new_buddy_show(new_gs, b, (char **)no_icon_xpm);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
226 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
227 bs->connlist = g_slist_append(NULL, g->gc);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
228 } else {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
229 m = g_slist_next(m);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
230 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
231 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
232 update_num_group(gs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
233 update_num_group(new_gs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
234 } else {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
235 g_free(gs->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
236 gs->name = g_strdup(g->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
237 update_num_group(gs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
238 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
239 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
240 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
241
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
242 void handle_buddy_rename(struct buddy *b, char *prevname) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
243 struct buddy_show *bs;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
244 struct group_show *gs;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
245 struct group *g;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
246 GtkCTreeNode *c;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
247 char buf[256];
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
248
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
249 c = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, b);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
250 if (strcmp(b->show, b->name))
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
251 g_snprintf(buf, sizeof(buf), "%s (%s)", b->name, b->show);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
252 else
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
253 g_snprintf(buf, sizeof(buf), "%s", b->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
254 gtk_ctree_node_set_text(GTK_CTREE(edittree), c, 0, buf);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
255
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
256 gs = find_group_show(prevname);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
257
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
258 g = find_group_by_buddy(b->gc, b->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
259 if (!g) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
260 /* shouldn't happen */
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
261 return;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
262 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
263 gs = find_group_show(g->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
264 if (!gs) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
265 return;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
266 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
267 bs = find_buddy_show(gs, prevname);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
268 if (!bs) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
269 /* buddy's offline */
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
270 return;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
271 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
272
2275
137bb0c5d76e [gaim-migrate @ 2285]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2255
diff changeset
273 if (g_strcasecmp(b->name, prevname)) {
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
274 bs->connlist = g_slist_remove(bs->connlist, b->gc);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
275 if (!bs->connlist) {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
276 gs->members = g_slist_remove(gs->members, bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
277 if (bs->log_timer > 0)
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
278 gtk_timeout_remove(bs->log_timer);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
279 bs->log_timer = 0;
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
280 remove_buddy_show(gs, bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
281 g_free(bs->show);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
282 g_free(bs->name);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
283 g_free(bs);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
284 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
285 } else {
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
286 gtk_label_set_text(GTK_LABEL(bs->label), b->show);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
287 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
288 }
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
289
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
290 void destroy_buddy()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
291 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
292 if (blist)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
293 gtk_widget_destroy(blist);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
294 blist=NULL;
700
953ac3b9ab1b [gaim-migrate @ 710]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 696
diff changeset
295 imchatbox = NULL;
1544
2016a632b44f [gaim-migrate @ 1554]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1509
diff changeset
296 awaymenu = NULL;
2016a632b44f [gaim-migrate @ 1554]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1509
diff changeset
297 protomenu = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
298 }
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 static void adjust_pic(GtkWidget *button, const char *c, gchar **xpm)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
301 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
302 GdkPixmap *pm;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
303 GdkBitmap *bm;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
304 GtkWidget *pic;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
305 GtkWidget *label;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
306
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
307 /*if the user had opted to put pictures on the buttons*/
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
308 if (blist_options & OPT_BLIST_SHOW_BUTTON_XPM && xpm) {
820
4c079ffcdc78 [gaim-migrate @ 830]
Rob Flynn <gaim@robflynn.com>
parents: 813
diff changeset
309 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
310 pic = gtk_pixmap_new(pm, bm);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
311 gtk_widget_show(pic);
644
4388456cd80e [gaim-migrate @ 654]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 608
diff changeset
312 gdk_pixmap_unref(pm);
804
c606c9aacfc5 [gaim-migrate @ 814]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 803
diff changeset
313 gdk_bitmap_unref(bm);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
314 label = GTK_BIN(button)->child;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
315 gtk_container_remove(GTK_CONTAINER(button), label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
316 gtk_container_add(GTK_CONTAINER(button), pic);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
317 } else {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
318 label = gtk_label_new(c);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
319 gtk_widget_show(label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
320 pic = GTK_BIN(button)->child;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
321 gtk_container_remove(GTK_CONTAINER(button), pic);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
322 gtk_container_add(GTK_CONTAINER(button), label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
323 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
324
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
325 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
326
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
327
1072
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
328 void toggle_show_empty_groups() {
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
329 if (blist_options & OPT_BLIST_NO_MT_GRP) {
1072
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
330 /* remove any group_shows with empty members */
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
331 GSList *s = shows;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
332 struct group_show *g;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
333
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
334 while (s) {
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
335 g = (struct group_show *)s->data;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
336 if (!g_slist_length(g->members)) {
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
337 shows = g_slist_remove(shows, g);
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
338 s = shows;
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
339 gtk_tree_remove_item(GTK_TREE(buddies), g->item);
1072
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
340 g_free(g->name);
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
341 g_free(g);
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
342 } else
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
343 s = g_slist_next(s);
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
344 }
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
345
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
346 } else {
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
347 /* put back all groups */
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
348 GSList *c = connections;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
349 struct gaim_connection *gc;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
350 GSList *m;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
351 struct group *g;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
352
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
353 while (c) {
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
354 gc = (struct gaim_connection *)c->data;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
355 m = gc->groups;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
356 while (m) {
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
357 g = (struct group *)m->data;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
358 m = g_slist_next(m);
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
359 if (!find_group_show(g->name))
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
360 new_group_show(g->name);
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
361 }
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
362 c = g_slist_next(c);
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
363 }
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
364
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
365 }
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
366 }
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
367
1711
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
368 void toggle_buddy_pixmaps() {
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
369 GSList *s = shows;
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
370 struct group_show *g;
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
371 GSList *m;
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
372 struct buddy_show *b;
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
373
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
374 while (s) {
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
375 g = s->data;
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
376 m = g->members;
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
377 while (m) {
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
378 b = m->data;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
379 if (blist_options & OPT_BLIST_SHOW_PIXMAPS)
1711
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
380 gtk_widget_show(b->pix);
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
381 else
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
382 gtk_widget_hide(b->pix);
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
383 m = m->next;
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
384 }
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
385 s = s->next;
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
386 }
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
387 }
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
388
1070
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
389 static void update_num_group(struct group_show *gs) {
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
390 GSList *c = connections;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
391 struct gaim_connection *gc;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
392 struct group *g;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
393 struct buddy_show *b;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
394 int total = 0, on = 0;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
395 char buf[256];
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
396
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
397 if (!g_slist_find(shows, gs)) {
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
398 debug_printf("update_num_group called for unfound group_show %s\n", gs->name);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
399 return;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
400 }
1085
6a471a7aa3b0 [gaim-migrate @ 1095]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1083
diff changeset
401
1070
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
402 while (c) {
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
403 gc = (struct gaim_connection *)c->data;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
404 g = find_group(gc, gs->name);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
405 if (g) {
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
406 total += g_slist_length(g->members);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
407 }
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
408 c = g_slist_next(c);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
409 }
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
410
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
411 c = gs->members;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
412 while (c) {
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
413 b = (struct buddy_show *)c->data;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
414 on += g_slist_length(b->connlist);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
415 c = g_slist_next(c);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
416 }
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
417
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
418 if (blist_options & OPT_BLIST_SHOW_GRPNUM)
1070
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
419 g_snprintf(buf, sizeof buf, "%s (%d/%d)", gs->name, on, total);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
420 else
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
421 g_snprintf(buf, sizeof buf, "%s", gs->name);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
422
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
423 gtk_label_set_text(GTK_LABEL(gs->label), buf);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
424 }
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
425
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
426 void update_num_groups() {
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
427 GSList *s = shows;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
428 struct group_show *g;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
429
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
430 while (s) {
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
431 g = (struct group_show *)s->data;
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
432 update_num_group(g);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
433 s = g_slist_next(s);
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
434 }
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
435 }
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
436
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
437 void update_button_pix()
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
875
fcb395457091 [gaim-migrate @ 885]
Rob Flynn <gaim@robflynn.com>
parents: 874
diff changeset
440 adjust_pic(addbutton, _("Add"), (gchar **)gnome_add_xpm);
fcb395457091 [gaim-migrate @ 885]
Rob Flynn <gaim@robflynn.com>
parents: 874
diff changeset
441 adjust_pic(groupbutton, _("Group"), (gchar **)group_xpm);
fcb395457091 [gaim-migrate @ 885]
Rob Flynn <gaim@robflynn.com>
parents: 874
diff changeset
442 adjust_pic(rembutton, _("Remove"), (gchar **)gnome_remove_xpm);
fcb395457091 [gaim-migrate @ 885]
Rob Flynn <gaim@robflynn.com>
parents: 874
diff changeset
443
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
444 if (!(blist_options & OPT_BLIST_NO_BUTTONS)) {
1963
27c97c266e8f [gaim-migrate @ 1973]
Rob Flynn <gaim@robflynn.com>
parents: 1929
diff changeset
445 adjust_pic(awaybutton, _("Away"), (gchar **)away_big_xpm);
870
750d8c8f6aba [gaim-migrate @ 880]
Rob Flynn <gaim@robflynn.com>
parents: 865
diff changeset
446 adjust_pic(chatbutton, _("Chat"), (gchar **)join_xpm);
820
4c079ffcdc78 [gaim-migrate @ 830]
Rob Flynn <gaim@robflynn.com>
parents: 813
diff changeset
447 adjust_pic(imbutton, _("IM"), (gchar **)tmp_send_xpm);
4c079ffcdc78 [gaim-migrate @ 830]
Rob Flynn <gaim@robflynn.com>
parents: 813
diff changeset
448 adjust_pic(infobutton, _("Info"), (gchar **)tb_search_xpm);
4c079ffcdc78 [gaim-migrate @ 830]
Rob Flynn <gaim@robflynn.com>
parents: 813
diff changeset
449 }
544
6ffd11c02109 [gaim-migrate @ 554]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 535
diff changeset
450 gtk_widget_hide(addbutton->parent);
6ffd11c02109 [gaim-migrate @ 554]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 535
diff changeset
451 gtk_widget_show(addbutton->parent);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
452 if (!(blist_options & OPT_BLIST_NO_BUTTONS)) {
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
453 gtk_widget_hide(chatbutton->parent);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
454 gtk_widget_show(chatbutton->parent);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
455 }
820
4c079ffcdc78 [gaim-migrate @ 830]
Rob Flynn <gaim@robflynn.com>
parents: 813
diff changeset
456 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
457
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
458
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
459
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
460 #ifdef USE_APPLET
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
461 gint applet_destroy_buddy( GtkWidget *widget, GdkEvent *event,gpointer *data ) {
746
16a29fe20b65 [gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 733
diff changeset
462 applet_buddy_show = FALSE;
16a29fe20b65 [gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 733
diff changeset
463 gtk_widget_hide(blist);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
464 return (TRUE);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
465 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
466
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
467 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
468
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
469
966
57ba1b059564 [gaim-migrate @ 976]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 960
diff changeset
470 void signoff_all(GtkWidget *w, gpointer d)
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
471 {
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
472 GSList *c = connections;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
473 struct gaim_connection *g = NULL;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
474
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
475 while (c) {
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
476 g = (struct gaim_connection *)c->data;
1817
67ad2e2348a2 [gaim-migrate @ 1827]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1815
diff changeset
477 g->wants_to_die = TRUE;
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
478 signoff(g);
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
479 c = connections;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
480 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
481 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
482
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
483 void signoff(struct gaim_connection *gc)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
484 {
1000
66436e94d53f [gaim-migrate @ 1010]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 991
diff changeset
485 plugin_event(event_signoff, gc, 0, 0, 0);
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1544
diff changeset
486 system_log(log_signoff, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
1081
0fb24c9d4c7d [gaim-migrate @ 1091]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1077
diff changeset
487 update_keepalive(gc, FALSE);
2111
34615a640c59 [gaim-migrate @ 2121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2109
diff changeset
488 convo_menu_remove(gc);
2191
a40e37f5bf27 [gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2170
diff changeset
489 remove_icon_data(gc);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
490 serv_close(gc);
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
491 redo_buddy_list();
1918
58c69207c6f0 [gaim-migrate @ 1928]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1898
diff changeset
492 build_edit_tree();
1401
e81430ba5d7a [gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1397
diff changeset
493 do_away_menu();
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
494 do_proto_menu();
2111
34615a640c59 [gaim-migrate @ 2121]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2109
diff changeset
495 redo_convo_menus();
1115
9ed1a5aa795a [gaim-migrate @ 1125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1109
diff changeset
496 #ifdef USE_APPLET
9ed1a5aa795a [gaim-migrate @ 1125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1109
diff changeset
497 if (connections)
9ed1a5aa795a [gaim-migrate @ 1125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1109
diff changeset
498 set_user_state(online);
9ed1a5aa795a [gaim-migrate @ 1125]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1109
diff changeset
499 #endif
1124
b60f98b2c76e [gaim-migrate @ 1134]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1117
diff changeset
500 update_connection_dependent_prefs();
94
0c6ba3d3fa90 [gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 90
diff changeset
501
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
502 if (connections) return;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
503
1091
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
504 {
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
505 GSList *s = shows;
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
506 struct group_show *g;
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
507 GSList *m;
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
508 struct buddy_show *b;
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
509 while (s) {
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
510 g = (struct group_show *)s->data;
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
511 debug_printf("group_show still exists: %s\n", g->name);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
512 m = g->members;
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
513 while (m) {
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
514 b = (struct buddy_show *)m->data;
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
515 debug_printf("buddy_show still exists: %s\n", b->name);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
516 m = g_slist_remove(m, b);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
517 if (b->log_timer > 0)
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
518 gtk_timeout_remove(b->log_timer);
1098
ba62d11c12ca [gaim-migrate @ 1108]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1097
diff changeset
519 b->log_timer = 0;
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
520 gtk_tree_remove_item(GTK_TREE(g->tree), b->item);
1091
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
521 g_free(b->show);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
522 g_free(b->name);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
523 g_free(b);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
524 }
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
525 gtk_tree_remove_item(GTK_TREE(buddies), g->item);
1091
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
526 s = g_slist_remove(s, g);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
527 g_free(g->name);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
528 g_free(g);
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
529 }
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
530 shows = NULL;
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
531 }
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
532
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1242
diff changeset
533 debug_printf("date: %s\n", full_date());
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
534 destroy_all_dialogs();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
535 destroy_buddy();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
536 #ifdef USE_APPLET
746
16a29fe20b65 [gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 733
diff changeset
537 set_user_state(offline);
16a29fe20b65 [gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 733
diff changeset
538 applet_buddy_show = FALSE;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
539 applet_widget_unregister_callback(APPLET_WIDGET(applet),"signoff");
18
602b40b60252 [gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 10
diff changeset
540 remove_applet_away();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
541 #else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
542 show_login();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
543 #endif /* USE_APPLET */
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
544 if ( misc_options & OPT_MISC_BUDDY_TICKER )
436
2314dcf7c7d4 [gaim-migrate @ 446]
Syd Logan <slogan@users.sourceforge.net>
parents: 432
diff changeset
545 BuddyTickerSignoff();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
546 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
547
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
548 void handle_click_group(GtkWidget *widget, GdkEventButton *event, struct group *g)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
549 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
550 if (event->type == GDK_2BUTTON_PRESS) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
551 if (GTK_TREE_ITEM(widget)->expanded)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
552 gtk_tree_item_collapse(GTK_TREE_ITEM(widget));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
553 else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
554 gtk_tree_item_expand(GTK_TREE_ITEM(widget));
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
555 } else if ((event->type == GDK_BUTTON_PRESS) && (event->button == 3)) {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
556 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
557 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
558
1739
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
559 void pressed_im_bud(GtkWidget *widget, struct buddy *b)
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
560 {
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
561 struct conversation *c;
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
562
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
563 c = find_conversation(b->name);
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
564
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
565 if (c != NULL) {
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
566 gdk_window_show(c->window->window);
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
567 } else {
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
568 c = new_conversation(b->name);
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
569
1898
695a31e4452b [gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1881
diff changeset
570 set_convo_gc(c, b->gc);
1739
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
571 }
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
572 }
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
573
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
574 void pressed_im(GtkWidget *widget, struct buddy_show *b)
1
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 struct conversation *c;
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 c = find_conversation(b->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
579
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
580 if (c != NULL) {
87
b5d3cb3589d0 [gaim-migrate @ 97]
Syd Logan <slogan@users.sourceforge.net>
parents: 84
diff changeset
581 gdk_window_show(c->window->window);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
582 } else {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
583 c = new_conversation(b->name);
1150
ac3c10d5834e [gaim-migrate @ 1160]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1138
diff changeset
584
1898
695a31e4452b [gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1881
diff changeset
585 set_convo_gc(c, b->connlist->data);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
586 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
587 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
588
1477
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
589 void pressed_log (GtkWidget *widget, char *name)
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
590 {
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
591 show_log(name);
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
592 }
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
593
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
594 void show_syslog()
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
595 {
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
596 show_log(NULL);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
597 }
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
598
438
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
599 void pressed_ticker(char *buddy)
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
600 {
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
601 struct conversation *c;
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
602
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
603 c = find_conversation(buddy);
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
604
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
605 if (c != NULL) {
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
606 gdk_window_show(c->window->window);
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
607 } else {
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
608 c = new_conversation(buddy);
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
609 }
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
610 }
c636dffa73b3 [gaim-migrate @ 448]
Syd Logan <slogan@users.sourceforge.net>
parents: 436
diff changeset
611
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
612 void pressed_alias_bs(GtkWidget *widget, struct buddy_show *bs)
710
55c2137a3d2a [gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 703
diff changeset
613 {
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
614 alias_dialog_bud(find_buddy(bs->connlist->data, bs->name));
1397
705a0ba91b76 [gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1396
diff changeset
615 }
705a0ba91b76 [gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1396
diff changeset
616
705a0ba91b76 [gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1396
diff changeset
617 void pressed_alias_bud(GtkWidget *widget, struct buddy *b)
705a0ba91b76 [gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1396
diff changeset
618 {
705a0ba91b76 [gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1396
diff changeset
619 alias_dialog_bud(b);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
620 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
621
2170
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
622 static void menu_click(GtkObject *obj, char *who)
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
623 {
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
624 GList *list = gtk_object_get_user_data(obj);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
625 GList *first = g_list_first(list);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
626 struct proto_buddy_menu *pbm = list->data;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
627 if (pbm->callback)
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
628 pbm->callback(pbm->gc, who);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
629 g_list_foreach(first, (GFunc)g_free, NULL);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
630 g_list_free(first);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
631 }
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
632
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
633 void handle_click_buddy(GtkWidget *widget, GdkEventButton *event, struct buddy_show *b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
634 {
1102
15192fa59715 [gaim-migrate @ 1112]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1098
diff changeset
635 if (!b->connlist) return;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
636 if (event->type == GDK_2BUTTON_PRESS && event->button == 1) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
637 struct conversation *c;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
638
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
639 c = find_conversation(b->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
640
2132
71a5004bd18b [gaim-migrate @ 2142]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2131
diff changeset
641 if (c != NULL)
87
b5d3cb3589d0 [gaim-migrate @ 97]
Syd Logan <slogan@users.sourceforge.net>
parents: 84
diff changeset
642 gdk_window_show(c->window->window);
2132
71a5004bd18b [gaim-migrate @ 2142]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2131
diff changeset
643 else
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
644 c = new_conversation(b->name);
1150
ac3c10d5834e [gaim-migrate @ 1160]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1138
diff changeset
645
2132
71a5004bd18b [gaim-migrate @ 2142]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2131
diff changeset
646 set_convo_gc(c, b->connlist->data);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
647 if (im_options & OPT_IM_ONE_WINDOW)
1594
b4318bb1e1c8 [gaim-migrate @ 1604]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1591
diff changeset
648 raise_convo_tab(c);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
649 } else if (event->type == GDK_BUTTON_PRESS && event->button == 3) {
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
650 GtkWidget *menu;
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
651 GtkWidget *button;
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
652 GtkWidget *menuitem;
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
653 GtkWidget *conmenu;
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
654 GSList *cn = b->connlist;
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
655 struct gaim_connection *g;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
656 /* We're gonna make us a menu right here */
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 menu = gtk_menu_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
659
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
660 button = gtk_menu_item_new_with_label(_("IM"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
661 gtk_signal_connect(GTK_OBJECT(button), "activate",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
662 GTK_SIGNAL_FUNC(pressed_im), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
663 gtk_menu_append(GTK_MENU(menu), button);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
664 gtk_widget_show(button);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
665
710
55c2137a3d2a [gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 703
diff changeset
666 button = gtk_menu_item_new_with_label(_("Alias"));
55c2137a3d2a [gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 703
diff changeset
667 gtk_signal_connect(GTK_OBJECT(button), "activate",
1397
705a0ba91b76 [gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1396
diff changeset
668 GTK_SIGNAL_FUNC(pressed_alias_bs), b);
710
55c2137a3d2a [gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 703
diff changeset
669 gtk_menu_append(GTK_MENU(menu), button);
55c2137a3d2a [gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 703
diff changeset
670 gtk_widget_show(button);
55c2137a3d2a [gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 703
diff changeset
671
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
672 button = gtk_menu_item_new_with_label(_("Add Buddy Pounce"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
673 gtk_signal_connect(GTK_OBJECT(button), "activate",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
674 GTK_SIGNAL_FUNC(new_bp_callback), b->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
675 gtk_menu_append(GTK_MENU(menu), button);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
676 gtk_widget_show(button);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
677
1477
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
678 button = gtk_menu_item_new_with_label(_("View Log"));
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
679 gtk_signal_connect(GTK_OBJECT(button), "activate",
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
680 GTK_SIGNAL_FUNC(pressed_log), b->name);
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
681 gtk_menu_append(GTK_MENU(menu), button);
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
682 gtk_widget_show(button);
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
683
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
684 if (g_slist_length(cn) > 1) {
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
685 while (cn) {
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
686 g = (struct gaim_connection *)cn->data;
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
687 if (g->prpl->buddy_menu) {
2170
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
688 GList *mo = (*g->prpl->buddy_menu)(g, b->name);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
689
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
690 menuitem = gtk_menu_item_new_with_label(g->username);
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
691 gtk_menu_append(GTK_MENU(menu), menuitem);
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
692 gtk_widget_show(menuitem);
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
693
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
694 conmenu = gtk_menu_new();
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
695 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), conmenu);
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
696 gtk_widget_show(conmenu);
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
697
2170
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
698 while (mo) {
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
699 struct proto_buddy_menu *pbm = mo->data;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
700 GtkWidget *button;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
701
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
702 button = gtk_menu_item_new_with_label(pbm->label);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
703 gtk_signal_connect(GTK_OBJECT(button), "activate",
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
704 GTK_SIGNAL_FUNC(menu_click), b->name);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
705 gtk_object_set_user_data(GTK_OBJECT(button), mo);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
706 gtk_menu_append(GTK_MENU(conmenu), button);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
707 gtk_widget_show(button);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
708
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
709 mo = mo->next;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
710 }
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
711 }
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
712 cn = g_slist_next(cn);
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
713 }
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
714 } else {
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
715 g = (struct gaim_connection *)cn->data;
2170
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
716 if (g->prpl->buddy_menu) {
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
717 GList *mo = (*g->prpl->buddy_menu)(g, b->name);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
718
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
719 while (mo) {
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
720 struct proto_buddy_menu *pbm = mo->data;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
721 GtkWidget *button;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
722
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
723 button = gtk_menu_item_new_with_label(pbm->label);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
724 gtk_signal_connect(GTK_OBJECT(button), "activate",
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
725 GTK_SIGNAL_FUNC(menu_click), b->name);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
726 gtk_object_set_user_data(GTK_OBJECT(button), mo);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
727 gtk_menu_append(GTK_MENU(menu), button);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
728 gtk_widget_show(button);
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
729
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
730 mo = mo->next;
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
731 }
5c93594ff522 [gaim-migrate @ 2180]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2140
diff changeset
732 }
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
733 }
1874
f46e1d7e0930 [gaim-migrate @ 1884]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1870
diff changeset
734
f46e1d7e0930 [gaim-migrate @ 1884]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1870
diff changeset
735 /* we send the menu widget so we can add menuitems within a plugin */
f46e1d7e0930 [gaim-migrate @ 1884]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1870
diff changeset
736 plugin_event (event_draw_menu, menu, b->name, 0, 0);
f46e1d7e0930 [gaim-migrate @ 1884]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1870
diff changeset
737
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
738 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
739 event->button, event->time);
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 } else if (event->type == GDK_3BUTTON_PRESS && event->button == 2) {
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
742 if (!g_strcasecmp("zilding", normalize(b->name)))
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
743 show_ee_dialog(0);
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
744 else if (!g_strcasecmp("robflynn", normalize(b->name)))
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
745 show_ee_dialog(1);
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
746 else if (!g_strcasecmp("flynorange", normalize(b->name)))
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
747 show_ee_dialog(2);
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
748 else if (!g_strcasecmp("ewarmenhoven", normalize(b->name)))
338
21c93bc7ae83 [gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 318
diff changeset
749 show_ee_dialog(3);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
750
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
751 } else {
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 /* Anything for other buttons? :) */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
754 }
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
1396
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
757 static void un_alias(GtkWidget *a, struct buddy *b)
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
758 {
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
759 struct group *g = find_group_by_buddy(b->gc, b->name);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
760 struct group_show *gs = find_group_show(g->name);
1397
705a0ba91b76 [gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1396
diff changeset
761 struct buddy_show *bs = NULL;
1396
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
762 GtkCTreeNode *node = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, b);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
763 g_snprintf(b->show, sizeof(b->show), "%s", b->name);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
764 gtk_ctree_node_set_text(GTK_CTREE(edittree), node, 0, b->name);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
765 if (gs) bs = find_buddy_show(gs, b->name);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
766 if (bs) gtk_label_set(GTK_LABEL(bs->label), b->name);
1805
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
767 do_export(b->gc);
1396
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
768 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
769
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
770 static gboolean click_edit_tree(GtkWidget *widget, GdkEventButton *event, gpointer data)
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
771 {
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
772 GtkCTreeNode *node;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
773 int *type;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
774 int row, column;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
775 GtkWidget *menu;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
776 GtkWidget *button;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
777
1392
d7e7f153bc08 [gaim-migrate @ 1402]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1391
diff changeset
778 if (event->button != 3 || event->type != GDK_BUTTON_PRESS)
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
779 return TRUE;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
780
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
781 if (!gtk_clist_get_selection_info(GTK_CLIST(edittree), event->x, event->y, &row, &column))
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
782 return TRUE;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
783
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
784 node = gtk_ctree_node_nth(GTK_CTREE(edittree), row);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
785 type = gtk_ctree_node_get_row_data(GTK_CTREE(edittree), node);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
786 if (*type == EDIT_GROUP) {
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
787 struct group *group = (struct group *)type;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
788 menu = gtk_menu_new();
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
789
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
790 button = gtk_menu_item_new_with_label(_("Rename"));
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
791 gtk_signal_connect(GTK_OBJECT(button), "activate",
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
792 GTK_SIGNAL_FUNC(show_rename_group), group);
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
793 gtk_menu_append(GTK_MENU(menu), button);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
794 gtk_widget_show(button);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
795
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
796 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL,
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
797 event->button, event->time);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
798 } else if (*type == EDIT_BUDDY) {
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
799 struct buddy *b = (struct buddy *)type;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
800 menu = gtk_menu_new();
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
801
1739
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
802 button = gtk_menu_item_new_with_label(_("IM"));
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
803 gtk_signal_connect(GTK_OBJECT(button), "activate",
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
804 GTK_SIGNAL_FUNC(pressed_im_bud), b);
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
805 gtk_menu_append(GTK_MENU(menu), button);
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
806 gtk_widget_show(button);
79c0b9c21c08 [gaim-migrate @ 1749]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1735
diff changeset
807
1392
d7e7f153bc08 [gaim-migrate @ 1402]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1391
diff changeset
808 button = gtk_menu_item_new_with_label(_("Alias"));
d7e7f153bc08 [gaim-migrate @ 1402]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1391
diff changeset
809 gtk_signal_connect(GTK_OBJECT(button), "activate",
1397
705a0ba91b76 [gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1396
diff changeset
810 GTK_SIGNAL_FUNC(pressed_alias_bud), b);
1392
d7e7f153bc08 [gaim-migrate @ 1402]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1391
diff changeset
811 gtk_menu_append(GTK_MENU(menu), button);
d7e7f153bc08 [gaim-migrate @ 1402]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1391
diff changeset
812 gtk_widget_show(button);
d7e7f153bc08 [gaim-migrate @ 1402]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1391
diff changeset
813
1396
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
814 if (strcmp(b->name, b->show)) {
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
815 button = gtk_menu_item_new_with_label(_("Un-Alias"));
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
816 gtk_signal_connect(GTK_OBJECT(button), "activate",
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
817 GTK_SIGNAL_FUNC(un_alias), b);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
818 gtk_menu_append(GTK_MENU(menu), button);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
819 gtk_widget_show(button);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
820 }
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
821
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
822 button = gtk_menu_item_new_with_label(_("Rename"));
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
823 gtk_signal_connect(GTK_OBJECT(button), "activate",
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
824 GTK_SIGNAL_FUNC(show_rename_buddy), b);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
825 gtk_menu_append(GTK_MENU(menu), button);
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
826 gtk_widget_show(button);
1396
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
827
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
828 button = gtk_menu_item_new_with_label(_("Add Buddy Pounce"));
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
829 gtk_signal_connect(GTK_OBJECT(button), "activate",
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
830 GTK_SIGNAL_FUNC(new_bp_callback), b->name);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
831 gtk_menu_append(GTK_MENU(menu), button);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
832 gtk_widget_show(button);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
833
1477
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
834 button = gtk_menu_item_new_with_label(_("View Log"));
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
835 gtk_signal_connect(GTK_OBJECT(button), "activate",
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
836 GTK_SIGNAL_FUNC(pressed_log), b->name);
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
837 gtk_menu_append(GTK_MENU(menu), button);
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
838 gtk_widget_show(button);
0621949186cb [gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1465
diff changeset
839
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
840 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL,
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
841 event->button, event->time);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
842 }
1456
c03c929f8139 [gaim-migrate @ 1466]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1435
diff changeset
843
c03c929f8139 [gaim-migrate @ 1466]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1435
diff changeset
844 return TRUE;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
845 }
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
846
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
847
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
848 void remove_buddy(struct gaim_connection *gc, struct group *rem_g, struct buddy *rem_b)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
849 {
940
b3985f53a6c0 [gaim-migrate @ 950]
kylev
parents: 935
diff changeset
850 GSList *grp;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
851 GSList *mem;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
852 struct conversation *c;
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
853 struct group_show *gs;
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
854 struct buddy_show *bs;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
855
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
856 struct group *delg;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
857 struct buddy *delb;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
858
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
859 /* we assume that gc is not NULL and that the buddy exists somewhere within the
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
860 * gc's buddy list, therefore we can safely remove it. we need to ensure this
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
861 * via the UI
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
862 */
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
863
1364
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
864 grp = g_slist_find(gc->groups, rem_g);
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
865 delg = (struct group *)grp->data;
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
866 mem = delg->members;
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
867
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
868 mem = g_slist_find(mem, rem_b);
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
869 delb = (struct buddy *)mem->data;
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
870
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
871 delg->members = g_slist_remove(delg->members, delb);
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
872
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
873 gs = find_group_show(rem_g->name);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
874 if (gs) {
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
875 bs = find_buddy_show(gs, rem_b->name);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
876 if (bs) {
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
877 if (g_slist_find(bs->connlist, gc)) {
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
878 bs->connlist = g_slist_remove(bs->connlist, gc);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
879 if (!g_slist_length(bs->connlist)) {
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
880 gs->members = g_slist_remove(gs->members, bs);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
881 if (bs->log_timer > 0)
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
882 gtk_timeout_remove(bs->log_timer);
1098
ba62d11c12ca [gaim-migrate @ 1108]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1097
diff changeset
883 bs->log_timer = 0;
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
884 remove_buddy_show(gs, bs);
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
885 g_free(bs->show);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
886 g_free(bs->name);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
887 g_free(bs);
1083
c2200e101a47 [gaim-migrate @ 1093]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1081
diff changeset
888 if (!g_slist_length(gs->members) &&
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
889 (blist_options & OPT_BLIST_NO_MT_GRP)) {
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
890 shows = g_slist_remove(shows, gs);
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
891 gtk_tree_remove_item(GTK_TREE(buddies), gs->item);
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
892 g_free(gs->name);
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
893 g_free(gs);
1083
c2200e101a47 [gaim-migrate @ 1093]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1081
diff changeset
894 } else
c2200e101a47 [gaim-migrate @ 1093]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1081
diff changeset
895 update_num_group(gs);
c2200e101a47 [gaim-migrate @ 1093]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1081
diff changeset
896 } else
c2200e101a47 [gaim-migrate @ 1093]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1081
diff changeset
897 update_num_group(gs);
1364
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
898 } else
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
899 update_num_group(gs);
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
900 } else
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
901 update_num_group(gs);
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
902 }
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
903
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
904 c = find_conversation(delb->name);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
905 if (c)
1352
ccbb10962f25 [gaim-migrate @ 1362]
Rob Flynn <gaim@robflynn.com>
parents: 1340
diff changeset
906 update_buttons_by_protocol(c);
1364
234b8a584ef1 [gaim-migrate @ 1374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1352
diff changeset
907 g_free(delb);
228
ec61b2223b34 [gaim-migrate @ 238]
Syd Logan <slogan@users.sourceforge.net>
parents: 225
diff changeset
908
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
909 /* we don't flush buddy list to cache because in the case of remove_group that would
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
910 * mean writing to the buddy list file once for each buddy, plus one more time */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
911 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
912
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
913 void remove_group(struct gaim_connection *gc, struct group *rem_g)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
914 {
940
b3985f53a6c0 [gaim-migrate @ 950]
kylev
parents: 935
diff changeset
915 GSList *grp;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
916 GSList *mem;
1297
d13c95db7d8c [gaim-migrate @ 1307]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1261
diff changeset
917 struct group_show *gs;
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
918 GList *tmp = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
919
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
920 struct group *delg;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
921 struct buddy *delb;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
922
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
923 /* we assume that the group actually does exist within the gc, and that the gc is not NULL.
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
924 * the UI is responsible for this */
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
925
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
926 grp = g_slist_find(gc->groups, rem_g);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
927 delg = (struct group *)grp->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
928 mem = delg->members;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
929
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
930 while(delg->members) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
931 delb = (struct buddy *)delg->members->data;
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
932 tmp = g_list_append(tmp, g_strdup(delb->name));
1083
c2200e101a47 [gaim-migrate @ 1093]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1081
diff changeset
933 remove_buddy(gc, delg, delb); /* this should take care of removing
c2200e101a47 [gaim-migrate @ 1093]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1081
diff changeset
934 the group_show if necessary */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
935 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
936
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
937 gc->groups = g_slist_remove(gc->groups, delg);
1297
d13c95db7d8c [gaim-migrate @ 1307]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1261
diff changeset
938
d13c95db7d8c [gaim-migrate @ 1307]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1261
diff changeset
939 if ((gs = find_group_show(delg->name)) != NULL) {
1465
ef9ea0f27d62 [gaim-migrate @ 1475]
dhunter
parents: 1456
diff changeset
940 shows = g_slist_remove(shows, gs);
1297
d13c95db7d8c [gaim-migrate @ 1307]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1261
diff changeset
941 gtk_tree_remove_item(GTK_TREE(buddies), gs->item);
d13c95db7d8c [gaim-migrate @ 1307]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1261
diff changeset
942 g_free(gs->name);
d13c95db7d8c [gaim-migrate @ 1307]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1261
diff changeset
943 g_free(gs);
d13c95db7d8c [gaim-migrate @ 1307]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1261
diff changeset
944 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
945 g_free(delg);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
946
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
947 serv_remove_buddies(gc, tmp);
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
948 while (tmp) {
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
949 g_free(tmp->data);
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
950 tmp = g_list_remove(tmp, tmp->data);
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
951 }
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
952
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
953 /* don't flush buddy list to cache in order to be consistent with remove_buddy,
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
954 * mostly. remove_group is only called from one place, so we'll let it handle it. */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
955 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
956
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
957
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
958
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
959
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
960
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
961 gboolean edit_drag_compare_func (GtkCTree *ctree, GtkCTreeNode *source_node,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
962 GtkCTreeNode *new_parent, GtkCTreeNode *new_sibling)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
963 {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
964 int *type;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
965
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
966 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), source_node);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
967
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
968 if (*type == EDIT_GC) {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
969 if (!new_parent)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
970 return TRUE;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
971 } else if (*type == EDIT_BUDDY) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
972 if (new_parent) {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
973 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), new_parent);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
974 if (*type == EDIT_GROUP)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
975 return TRUE;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
976 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
977 } else /* group */ {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
978 if (g_slist_length(connections) > 1 && new_parent) {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
979 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), new_parent);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
980 if (*type == EDIT_GC)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
981 return TRUE;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
982 } else if (g_slist_length(connections) == 1 && !new_parent)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
983 return TRUE;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
984 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
985
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
986 return FALSE;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
987 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
988
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
989
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
990 static void redo_buddy_list() {
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
991 /* so here we can safely assume that we don't have to add or delete anything, we
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
992 * just have to go through and reorder everything. remember, nothing is going to
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
993 * change connections, so we can assume that we don't have to change any user
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
994 * data or anything. this is just a simple reordering. so calm down. */
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
995 /* note: we only have to do this if we want to strongly enforce order; however,
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
996 * order doesn't particularly matter to the stability of the program. but, it's
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
997 * kind of nice to have */
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
998 /* the easy way to implement this is just to go through shows and destroy all the
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
999 * group_shows, then go through the connections and put everything back. though,
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1000 * there are slight complications with that; most of them deal with timeouts and
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1001 * people not seeing the login icon for the full 10 seconds. butt fuck them. */
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
1002 GSList *s = shows;
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1003 struct group_show *gs;
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
1004 GSList *m;
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1005 struct buddy_show *bs;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1006 GSList *c = connections;
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
1007 struct gaim_connection *gc;
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1008 GSList *gr;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1009 struct group *g;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1010 struct buddy *b;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1011
1150
ac3c10d5834e [gaim-migrate @ 1160]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1138
diff changeset
1012 if (!blist) return;
ac3c10d5834e [gaim-migrate @ 1160]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1138
diff changeset
1013
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1014 while (s) {
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1015 gs = (struct group_show *)s->data;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1016 s = g_slist_remove(s, gs);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1017 m = gs->members;
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
1018 gtk_tree_remove_item(GTK_TREE(buddies), gs->item);
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1019 while (m) {
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1020 bs = (struct buddy_show *)m->data;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1021 m = g_slist_remove(m, bs);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1022 if (bs->log_timer > 0)
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1023 gtk_timeout_remove(bs->log_timer);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1024 g_free(bs->show);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1025 g_free(bs->name);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1026 g_free(bs);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1027 }
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1028 g_free(gs->name);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1029 g_free(gs);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1030 }
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1031 shows = NULL;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1032 while (c) {
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1033 gc = (struct gaim_connection *)c->data;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1034 c = c->next;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1035 gr = gc->groups;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1036 while (gr) {
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1037 g = (struct group *)gr->data;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1038 gr = gr->next;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1039 gs = find_group_show(g->name);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
1040 if (!gs && !(blist_options & OPT_BLIST_NO_MT_GRP))
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1041 gs = new_group_show(g->name);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1042 m = g->members;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1043 while (m) {
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1044 b = (struct buddy *)m->data;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1045 m = m->next;
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1046 if (b->present) {
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1047 if (!gs)
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1048 gs = new_group_show(g->name);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1049 bs = find_buddy_show(gs, b->name);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1050 if (!bs) {
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1051 if (gc->prpl->list_icon)
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1052 bs = new_buddy_show(gs, b,
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1053 (*gc->prpl->list_icon)(b->uc));
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1054 else
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1055 bs = new_buddy_show(gs, b, (char **)no_icon_xpm);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1056 }
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1057 bs->connlist = g_slist_append(bs->connlist, gc);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1058 }
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1059 }
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1060 }
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1061 }
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
1062 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1063
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1064 static void edit_tree_move (GtkCTree *ctree, GtkCTreeNode *child, GtkCTreeNode *parent,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1065 GtkCTreeNode *sibling, gpointer data)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1066 {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1067 struct gaim_connection *gc, *pc = NULL, *sc = NULL;
1456
c03c929f8139 [gaim-migrate @ 1466]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1435
diff changeset
1068 int *ctype, *ptype = NULL, *stype = NULL;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1069
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1070 ctype = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), child);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1071
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1072 if (parent)
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1073 ptype = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), parent);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1074
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1075 if (sibling)
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1076 stype = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), sibling);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1077
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1078 if (*ctype == EDIT_GC) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1079 /* not that it particularly matters which order the connections
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1080 * are in, but just for debugging sake, i guess.... */
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1081 gc = (struct gaim_connection *)ctype;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1082 connections = g_slist_remove(connections, gc);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1083 if (sibling) {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1084 int pos;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1085 sc = (struct gaim_connection *)stype;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1086 pos = g_slist_index(connections, sc);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1087 if (pos)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1088 connections = g_slist_insert(connections, gc, pos);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1089 else
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1090 connections = g_slist_prepend(connections, gc);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1091 } else
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1092 connections = g_slist_append(connections, gc);
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1093 } else if (*ctype == EDIT_BUDDY) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1094 /* we moved a buddy. hopefully we just changed groups or positions or something.
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1095 * if we changed connections, we copy the buddy to the new connection. if the new
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1096 * connection already had the buddy in its buddy list but in a different group,
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1097 * we change the group that the buddy is in */
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1098 struct group *old_g, *new_g = (struct group *)ptype;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1099 struct buddy *s = NULL, *buddy = (struct buddy *)ctype;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1100 int pos;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1101
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1102 if (buddy->gc != new_g->gc) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1103 /* we changed connections */
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1104 struct buddy *a;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1105
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1106 a = find_buddy(new_g->gc, buddy->name);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1107
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1108 if (a) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1109 /* the buddy is in the new connection, so we'll remove it from
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1110 * its current group and add it to the proper group below */
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1111 struct group *og;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1112 og = find_group_by_buddy(new_g->gc, buddy->name);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1113 og->members = g_slist_remove(og->members, a);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1114 } else {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1115 /* we don't have this buddy yet; let's add him */
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1116 serv_add_buddy(new_g->gc, buddy->name);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1117 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1118 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1119
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1120 old_g = find_group_by_buddy(buddy->gc, buddy->name);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1121
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1122 if (buddy->gc == new_g->gc)
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1123 /* this is the same connection, so we'll remove it from its old group */
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1124 old_g->members = g_slist_remove(old_g->members, buddy);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1125
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1126 if (sibling) {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1127 s = (struct buddy *)stype;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1128 pos = g_slist_index(new_g->members, s);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1129 if (pos)
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1130 new_g->members = g_slist_insert(new_g->members, buddy, pos);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1131 else
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1132 new_g->members = g_slist_prepend(new_g->members, buddy);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1133 } else
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1134 new_g->members = g_slist_append(new_g->members, buddy);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1135
1805
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
1136 do_export(buddy->gc);
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
1137 if (buddy->gc != new_g->gc) {
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
1138 do_export(new_g->gc);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1139 build_edit_tree();
1805
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
1140 }
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1141 } else /* group */ {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1142 /* move the group. if moving connections, copy the group, and each buddy in the
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1143 * group. if the buddy exists in the new connection, leave it where it is. */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1144
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1145 struct group *g, *g2, *group;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1146 int pos;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1147
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1148 pc = (struct gaim_connection *)ptype;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1149 group = (struct group *)ctype;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1150
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1151 if (g_slist_length(connections) > 1) {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1152 g = find_group(pc, group->name);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1153 if (!g)
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1154 g = add_group(pc, group->name);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1155
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1156 pc->groups = g_slist_remove(pc->groups, g);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1157
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1158 if (sibling) {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1159 g2 = (struct group *)stype;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1160 pos = g_slist_index(pc->groups, g2);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1161 if (pos)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1162 pc->groups = g_slist_insert(pc->groups, g, pos);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1163 else
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1164 pc->groups = g_slist_prepend(pc->groups, g);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1165 } else
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1166 pc->groups = g_slist_append(pc->groups, g);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1167
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1168 if (pc != group->gc) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1169 GSList *mem;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1170 struct buddy *b;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1171 g2 = group;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1172
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1173 mem = g2->members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1174 while (mem) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1175 b = (struct buddy *)mem->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1176 if (!find_buddy(pc, b->name))
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1177 add_buddy(pc, g->name, b->name, b->show);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1178 mem = mem->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1179 }
912
1efb36bf2c9b [gaim-migrate @ 922]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 905
diff changeset
1180 }
1805
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
1181 do_export(pc);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1182 } else {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1183 g = group;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1184 gc = g->gc;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1185
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1186 gc->groups = g_slist_remove(gc->groups, g);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1187
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1188 if (sibling) {
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1189 g2 = (struct group *)stype;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1190 pos = g_slist_index(gc->groups, g2);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1191 if (pos)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1192 gc->groups = g_slist_insert(gc->groups, g, pos);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1193 else
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1194 gc->groups = g_slist_prepend(gc->groups, g);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1195 } else
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1196 gc->groups = g_slist_append(gc->groups, g);
1805
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
1197 do_export(gc);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1198 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1199 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1200
1069
7136989fd332 [gaim-migrate @ 1079]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1068
diff changeset
1201 redo_buddy_list();
1070
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
1202 update_num_groups();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1203 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1204
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1205
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1206
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1207 void build_edit_tree()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1208 {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1209 GtkCTreeNode *c = NULL, *p = NULL, *n;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1210 GSList *con = connections;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1211 GSList *grp;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1212 GSList *mem;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1213 struct gaim_connection *z;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1214 struct group *g;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1215 struct buddy *b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1216 char *text[1];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1217
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
1218 if (!blist) return;
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
1219
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1220 gtk_clist_freeze(GTK_CLIST(edittree));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1221 gtk_clist_clear(GTK_CLIST(edittree));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1222
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1223
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1224 while (con) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1225 z = (struct gaim_connection *)con->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1226
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1227 if (g_slist_length(connections) > 1) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1228 text[0] = z->username;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1229
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1230 c = gtk_ctree_insert_node(GTK_CTREE(edittree), NULL,
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1231 NULL, text, 5, NULL, NULL,
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1232 NULL, NULL, 0, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1233
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1234 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), c, z);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1235 } else
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1236 c = NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1237
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1238 grp = z->groups;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1239
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1240 while(grp) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1241 g = (struct group *)grp->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1242
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1243 text[0] = g->name;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1244
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1245 p = gtk_ctree_insert_node(GTK_CTREE(edittree), c,
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1246 NULL, text, 5, NULL, NULL,
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1247 NULL, NULL, 0, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1248
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1249 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), p, g);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1250
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1251 n = NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1252
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1253 mem = g->members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1254
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1255 while(mem) {
1396
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
1256 char buf[256];
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1257 b = (struct buddy *)mem->data;
1396
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
1258 if (strcmp(b->name, b->show)) {
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
1259 g_snprintf(buf, sizeof(buf), "%s (%s)", b->name, b->show);
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
1260 text[0] = buf;
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
1261 } else
c038bcdcc1e9 [gaim-migrate @ 1406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1392
diff changeset
1262 text[0] = b->name;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1263
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1264 n = gtk_ctree_insert_node(GTK_CTREE(edittree),
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1265 p, NULL, text, 5,
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1266 NULL, NULL,
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1267 NULL, NULL, 1, 1);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1268
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1269 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), n, b);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1270
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1271 mem = mem->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1272
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1273 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1274 grp = g_slist_next(grp);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1275 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1276 con = g_slist_next(con);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1277 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1278
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1279 gtk_clist_thaw(GTK_CLIST(edittree));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1280
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1281 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1282
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1283 struct buddy *add_buddy(struct gaim_connection *gc, char *group, char *buddy, char *show)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1284 {
1699
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1285 GtkCTreeNode *p = NULL, *n;
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1286 char *text[1];
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1287 char buf[256];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1288 struct buddy *b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1289 struct group *g;
1088
060902427565 [gaim-migrate @ 1098]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1085
diff changeset
1290 struct group_show *gs = find_group_show(group);
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1291 char *good;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1292
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1293 if ((b = find_buddy(gc, buddy)) != NULL)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1294 return b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1295
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1296 g = find_group(gc, group);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1297
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1298 if (g == NULL)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1299 g = add_group(gc, group);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1300
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1301 b = (struct buddy *)g_new0(struct buddy, 1);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1302
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1303 if (!b)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1304 return NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1305
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1306 b->edittype = EDIT_BUDDY;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1307 b->gc = gc;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1308 b->present = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1309
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1310 if (gc->prpl->normalize)
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1311 good = (*gc->prpl->normalize)(buddy);
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1312 else
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1313 good = buddy;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1314
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1315 g_snprintf(b->name, sizeof(b->name), "%s", good);
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1316 g_snprintf(b->show, sizeof(b->show), "%s", show ? (show[0] ? show : good) : good);
710
55c2137a3d2a [gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 703
diff changeset
1317
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1318 g->members = g_slist_append(g->members, b);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1319
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1320 b->idle = 0;
515
a68e133720fa [gaim-migrate @ 525]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 514
diff changeset
1321 b->caps = 0;
1088
060902427565 [gaim-migrate @ 1098]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1085
diff changeset
1322
060902427565 [gaim-migrate @ 1098]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1085
diff changeset
1323 if (gs) update_num_group(gs);
1699
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1324
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1325 if (!blist) return b;
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1326
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1327 p = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, g);
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1328 if (strcmp(b->name, b->show)) {
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1329 g_snprintf(buf, sizeof(buf), "%s (%s)", b->name, b->show);
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1330 text[0] = buf;
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1331 } else
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1332 text[0] = b->name;
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1333
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1334 n = gtk_ctree_insert_node(GTK_CTREE(edittree), p, NULL, text, 5,
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1335 NULL, NULL, NULL, NULL, 1, 1);
671e6c5cfb20 [gaim-migrate @ 1709]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
1336 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), n, b);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1337
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1338 return b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1339 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1340
921
4d620f33517f [gaim-migrate @ 931]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 920
diff changeset
1341
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1342 struct group *add_group(struct gaim_connection *gc, char *group)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1343 {
1663
e57f4717fe58 [gaim-migrate @ 1673]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1662
diff changeset
1344 GtkCTreeNode *c = NULL, *p;
e57f4717fe58 [gaim-migrate @ 1673]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1662
diff changeset
1345 char *text[1];
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1346 struct group *g = find_group(gc, group);
318
7d5334abed19 [gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 281
diff changeset
1347 if (g)
7d5334abed19 [gaim-migrate @ 328]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 281
diff changeset
1348 return g;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1349 g = (struct group *)g_new0(struct group, 1);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1350 if (!g)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1351 return NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1352
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1353 g->edittype = EDIT_GROUP;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1354 g->gc = gc;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1355 strncpy(g->name, group, sizeof(g->name));
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1356 gc->groups = g_slist_append(gc->groups, g);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1357
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1358 g->members = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1359
1092
9be1c9ea4d2c [gaim-migrate @ 1102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1091
diff changeset
1360 if (!blist) return g;
1088
060902427565 [gaim-migrate @ 1098]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1085
diff changeset
1361
1663
e57f4717fe58 [gaim-migrate @ 1673]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1662
diff changeset
1362 c = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, gc);
e57f4717fe58 [gaim-migrate @ 1673]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1662
diff changeset
1363 text[0] = g->name;
e57f4717fe58 [gaim-migrate @ 1673]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1662
diff changeset
1364 p = gtk_ctree_insert_node(GTK_CTREE(edittree), c,
e57f4717fe58 [gaim-migrate @ 1673]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1662
diff changeset
1365 NULL, text, 5, NULL, NULL,
e57f4717fe58 [gaim-migrate @ 1673]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1662
diff changeset
1366 NULL, NULL, 0, 1);
e57f4717fe58 [gaim-migrate @ 1673]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1662
diff changeset
1367 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), p, g);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1368
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
1369 if (!(blist_options & OPT_BLIST_NO_MT_GRP) && !find_group_show(group))
1072
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1370 new_group_show(group);
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1371
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1372 return g;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1373 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1374
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1375
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1376 static void do_del_buddy(GtkWidget *w, GtkCTree *ctree)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1377 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1378 GtkCTreeNode *node;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1379 struct buddy *b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1380 struct group *g;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1381 int *type;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1382 GList *i;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1383
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1384 i = GTK_CLIST(edittree)->selection;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1385 if (i) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1386 node = i->data;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1387 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(edittree), node);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1388
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1389 if (*type == EDIT_BUDDY) {
1821
ad0dd00f8f45 [gaim-migrate @ 1831]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1817
diff changeset
1390 struct gaim_connection *gct;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1391 b = (struct buddy *)type;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1392 g = find_group_by_buddy(b->gc, b->name);
1821
ad0dd00f8f45 [gaim-migrate @ 1831]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1817
diff changeset
1393 gct = b->gc;
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
1394 serv_remove_buddy(b->gc, b->name);
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1395 remove_buddy(b->gc, g, b);
1662
babbac999dd2 [gaim-migrate @ 1672]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1661
diff changeset
1396 gtk_ctree_remove_node(GTK_CTREE(edittree), node);
1821
ad0dd00f8f45 [gaim-migrate @ 1831]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1817
diff changeset
1397 do_export(gct);
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1398 } else if (*type == EDIT_GROUP) {
1825
3b46b71d7fc8 [gaim-migrate @ 1835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1821
diff changeset
1399 struct gaim_connection *gc = ((struct group *)type)->gc;
3b46b71d7fc8 [gaim-migrate @ 1835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1821
diff changeset
1400 remove_group(gc, (struct group *)type);
1662
babbac999dd2 [gaim-migrate @ 1672]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1661
diff changeset
1401 gtk_ctree_remove_node(GTK_CTREE(edittree), node);
1825
3b46b71d7fc8 [gaim-migrate @ 1835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1821
diff changeset
1402 do_export(gc);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1403 }
228
ec61b2223b34 [gaim-migrate @ 238]
Syd Logan <slogan@users.sourceforge.net>
parents: 225
diff changeset
1404
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1405 } else {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1406 /* Nothing selected. */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1407 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1408 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1409
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1410
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1411 void import_callback(GtkWidget *widget, void *null)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1412 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1413 show_import_dialog();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1414 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1415
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1416 void do_quit()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1417 {
1591
a104a15d74a7 [gaim-migrate @ 1601]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1590
diff changeset
1418 #ifdef USE_APPLET
a104a15d74a7 [gaim-migrate @ 1601]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1590
diff changeset
1419 applet = NULL;
a104a15d74a7 [gaim-migrate @ 1601]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1590
diff changeset
1420 #endif
a104a15d74a7 [gaim-migrate @ 1601]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1590
diff changeset
1421
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 350
diff changeset
1422 /* first we tell those who have requested it we're quitting */
1000
66436e94d53f [gaim-migrate @ 1010]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 991
diff changeset
1423 plugin_event(event_quit, 0, 0, 0, 0);
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 350
diff changeset
1424
2140
36d736a53d30 [gaim-migrate @ 2150]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2134
diff changeset
1425 #ifdef GAIM_PLUGINS
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 350
diff changeset
1426 /* then we remove everyone in a mass suicide */
2125
0b57b693efb8 [gaim-migrate @ 2135]
Ben Miller <millebe@cs.earlham.edu>
parents: 2111
diff changeset
1427 remove_all_plugins();
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 350
diff changeset
1428 #endif
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1544
diff changeset
1429 system_log(log_quit, NULL, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
784
233b07f61a0c [gaim-migrate @ 794]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 780
diff changeset
1430 #ifdef USE_PERL
233b07f61a0c [gaim-migrate @ 794]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 780
diff changeset
1431 perl_end();
233b07f61a0c [gaim-migrate @ 794]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 780
diff changeset
1432 #endif
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 350
diff changeset
1433
1117
fcb6e7efcc0d [gaim-migrate @ 1127]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1115
diff changeset
1434 gtk_main_quit();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1435 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1436
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1437 void add_buddy_callback(GtkWidget *widget, void *dummy)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1438 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1439 char *grp = NULL;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1440 GtkCTreeNode *node;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1441 GList *i;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1442 struct gaim_connection *gc = NULL;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1443 int *type;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1444
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1445 i = GTK_CLIST(edittree)->selection;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1446 if (i) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1447 node = i->data;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1448 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(edittree), node);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1449
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1450 if (*type == EDIT_BUDDY) {
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1451 struct buddy *b = (struct buddy *)type;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1452 struct group *g = find_group_by_buddy(b->gc, b->name);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1453 grp = g->name;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1454 gc = b->gc;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1455 } else if (*type == EDIT_GROUP) {
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1456 struct group *g = (struct group *)type;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1457 grp = g->name;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1458 gc = g->gc;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1459 } else {
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1460 gc = (struct gaim_connection *)type;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1461 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1462 }
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1463 show_add_buddy(gc, NULL, grp);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1464
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1465 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1466
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
1467 void add_group_callback(GtkWidget *widget, void *dummy)
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
1468 {
1072
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1469 GtkCTreeNode *node;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1470 GList *i;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1471 struct gaim_connection *gc = NULL;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1472 int *type;
1072
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1473
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1474 i = GTK_CLIST(edittree)->selection;
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1475 if (i) {
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1476 node = i->data;
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1477 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(edittree), node);
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1478 if (*type == EDIT_BUDDY)
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1479 gc = ((struct buddy *)type)->gc;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1480 else if (*type == EDIT_GROUP)
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1481 gc = ((struct group *)type)->gc;
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1482 else
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
1483 gc = (struct gaim_connection *)type;
1072
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1484 }
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
1485 show_add_group(gc);
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
1486 }
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
1487
935
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1488 static void im_callback(GtkWidget *widget, GtkTree *tree)
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1489 {
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1490 GList *i;
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
1491 struct buddy_show *b = NULL;
935
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1492 struct conversation *c;
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1493 i = GTK_TREE_SELECTION(tree);
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1494 if (i) {
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1495 b = gtk_object_get_user_data(GTK_OBJECT(i->data));
1095
00669dafa849 [gaim-migrate @ 1105]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1092
diff changeset
1496 }
00669dafa849 [gaim-migrate @ 1105]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1092
diff changeset
1497 if (!i || !b) {
935
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1498 show_im_dialog();
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1499 return;
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1500 }
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1501 if (!b->name)
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1502 return;
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1503
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1504 c = find_conversation(b->name);
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1505 if (c == NULL) {
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1506 c = new_conversation(b->name);
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1507 } else {
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1508 gdk_window_raise(c->window->window);
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1509 }
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1510 }
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1511
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1512
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1513 static void info_callback(GtkWidget *widget, GtkTree *tree)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1514 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1515 GList *i;
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
1516 struct buddy_show *b = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1517 i = GTK_TREE_SELECTION(tree);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1518 if (i) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1519 b = gtk_object_get_user_data(GTK_OBJECT(i->data));
1095
00669dafa849 [gaim-migrate @ 1105]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1092
diff changeset
1520 }
00669dafa849 [gaim-migrate @ 1105]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1092
diff changeset
1521 if (!i || !b) {
935
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
1522 show_info_dialog();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1523 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1524 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1525 if (!b->name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1526 return;
1693
28dbf4e0c158 [gaim-migrate @ 1703]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1681
diff changeset
1527 if (b->connlist)
28dbf4e0c158 [gaim-migrate @ 1703]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1681
diff changeset
1528 serv_get_info(b->connlist->data, b->name);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1529 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1530
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1531
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1532 void chat_callback(GtkWidget *widget, GtkTree *tree)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1533 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1534 join_chat();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1535 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1536
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1537 static void away_callback(GtkWidget *widget, GtkTree *tree)
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1538 {
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1539 GSList *awy = away_messages;
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1540 GtkWidget *menu;
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1541 GtkWidget *menuitem;
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1542
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1543 if (!awy)
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1544 return;
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1545
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1546 menu = gtk_menu_new();
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1547
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1548 while (awy) {
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1549 struct away_message *a = awy->data;
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1550
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1551 menuitem = gtk_menu_item_new_with_label(a->name);
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1552 gtk_menu_append(GTK_MENU(menu), menuitem);
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1553 gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1554 GTK_SIGNAL_FUNC(do_away_message), a);
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1555 gtk_widget_show(menuitem);
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1556
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1557 awy = awy->next;
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1558 }
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1559
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1560 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 1, time(NULL));
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1561 }
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
1562
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1563 struct group *find_group(struct gaim_connection *gc, char *group)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1564 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1565 struct group *g;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1566 GSList *grp;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1567 GSList *c = connections;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1568 struct gaim_connection *z;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1569 char *grpname = g_malloc(strlen(group) + 1);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1570
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1571 strcpy(grpname, normalize(group));
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1572 if (gc) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1573 grp = gc->groups;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1574 while (grp) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1575 g = (struct group *)grp->data;
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
1576 if (!g_strcasecmp(normalize(g->name), grpname)) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1577 g_free(grpname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1578 return g;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1579 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1580 grp = g_slist_next(grp);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1581 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1582
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1583 g_free(grpname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1584 return NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1585 } else {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1586 while(c) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1587 z = (struct gaim_connection *)c->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1588 grp = z->groups;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1589 while (grp) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1590 g = (struct group *)grp->data;
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
1591 if (!g_strcasecmp(normalize(g->name), grpname)) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1592 g_free(grpname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1593 return g;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1594 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1595 grp = g_slist_next(grp);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1596 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1597
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1598 c = c->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1599 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1600 g_free(grpname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1601 return NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1602 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1603 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1604
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1605
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1606 struct group *find_group_by_buddy(struct gaim_connection *gc, char *who)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1607 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1608 struct group *g;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1609 struct buddy *b;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1610 GSList *grp;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1611 GSList *mem;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1612 char *whoname;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1613 char *(*norm)(const char *);
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1614
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1615 if (gc) {
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1616 if (gc->prpl->normalize)
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1617 norm = gc->prpl->normalize;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1618 else
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1619 norm = normalize;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1620 whoname = g_strdup((*norm)(who));
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1621 grp = gc->groups;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1622 while(grp) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1623 g = (struct group *)grp->data;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1624
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1625 mem = g->members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1626 while(mem) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1627 b = (struct buddy *)mem->data;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1628 if (!strcmp((*norm)(b->name), whoname)) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1629 g_free(whoname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1630 return g;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1631 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1632 mem = mem->next;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1633 }
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1634 grp = g_slist_next(grp);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1635 }
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1636 g_free(whoname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1637 return NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1638 } else {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1639 GSList *c = connections;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1640 struct gaim_connection *z;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1641 while (c) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1642 z = (struct gaim_connection *)c->data;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1643 if (z->prpl->normalize)
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1644 norm = z->prpl->normalize;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1645 else
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1646 norm = normalize;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1647 whoname = g_strdup((*norm)(who));
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1648 grp = z->groups;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1649 while(grp) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1650 g = (struct group *)grp->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1651
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1652 mem = g->members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1653 while(mem) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1654 b = (struct buddy *)mem->data;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1655 if (!strcmp((*norm)(b->name), whoname)) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1656 g_free(whoname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1657 return g;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1658 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1659 mem = mem->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1660 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1661 grp = g_slist_next(grp);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1662 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1663 c = c->next;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1664 g_free(whoname);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1665 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1666 return NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1667 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1668 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1669
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1670
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1671 struct buddy *find_buddy(struct gaim_connection *gc, char *who)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1672 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1673 struct group *g;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1674 struct buddy *b;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1675 GSList *grp;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1676 GSList *c;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1677 struct gaim_connection *z;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1678 GSList *mem;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1679 char *whoname;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1680 char *(*norm)(const char *);
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1681
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1682 if (gc) {
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1683 if (gc->prpl->normalize)
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1684 norm = gc->prpl->normalize;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1685 else
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1686 norm = normalize;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1687 whoname = g_strdup((*norm)(who));
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1688 grp = gc->groups;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1689 while(grp) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1690 g = (struct group *)grp->data;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1691
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1692 mem = g->members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1693 while(mem) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1694 b = (struct buddy *)mem->data;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1695 if (!strcmp((*norm)(b->name), whoname)) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1696 g_free(whoname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1697 return b;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1698 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1699 mem = mem->next;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1700 }
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1701 grp = g_slist_next(grp);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1702 }
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1703 g_free(whoname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1704 return NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1705 } else {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1706 c = connections;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1707 while (c) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1708 z = (struct gaim_connection *)c->data;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1709 if (z->prpl->normalize)
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1710 norm = z->prpl->normalize;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1711 else
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1712 norm = normalize;
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1713 whoname = g_strdup((*norm)(who));
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1714 grp = z->groups;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1715 while(grp) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1716 g = (struct group *)grp->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1717
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1718 mem = g->members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1719 while(mem) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1720 b = (struct buddy *)mem->data;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1721 if (!strcmp((*norm)(b->name), whoname)) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1722 g_free(whoname);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1723 return b;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1724 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1725 mem = mem->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1726 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1727 grp = g_slist_next(grp);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1728 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1729 c = c->next;
1713
3e0138242a5b [gaim-migrate @ 1723]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1711
diff changeset
1730 g_free(whoname);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1731 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1732 return NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1733 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1734 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1735
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1736
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1737 void rem_bp(GtkWidget *w, struct buddy_pounce *b)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1738 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1739 buddy_pounces = g_list_remove(buddy_pounces, b);
689
bc0e7ad44099 [gaim-migrate @ 699]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 678
diff changeset
1740 do_bp_menu();
bc0e7ad44099 [gaim-migrate @ 699]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 678
diff changeset
1741 save_prefs();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1742 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1743
2131
ef072ae1b2b8 [gaim-migrate @ 2141]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2125
diff changeset
1744 void do_pounce(struct gaim_connection *gc, char *name, int when)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1745 {
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 18
diff changeset
1746 char *who;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1747
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1748 struct buddy_pounce *b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1749 struct conversation *c;
1155
f3b1abf0dcc3 [gaim-migrate @ 1165]
Rob Flynn <gaim@robflynn.com>
parents: 1150
diff changeset
1750 struct aim_user *u;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1751
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1752 GList *bp = buddy_pounces;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1753
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 18
diff changeset
1754 who = g_strdup(normalize(name));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1755
1857
16bf6366d2f9 [gaim-migrate @ 1867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1825
diff changeset
1756 while (bp) {
1155
f3b1abf0dcc3 [gaim-migrate @ 1165]
Rob Flynn <gaim@robflynn.com>
parents: 1150
diff changeset
1757 b = (struct buddy_pounce *)bp->data;
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 18
diff changeset
1758 bp = bp->next; /* increment the list here because rem_bp can make our handle bad */
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 18
diff changeset
1759
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1233
diff changeset
1760 if (!(b->options & when)) continue;
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1233
diff changeset
1761
1155
f3b1abf0dcc3 [gaim-migrate @ 1165]
Rob Flynn <gaim@robflynn.com>
parents: 1150
diff changeset
1762 u = find_user(b->pouncer, b->protocol); /* find our user */
f3b1abf0dcc3 [gaim-migrate @ 1165]
Rob Flynn <gaim@robflynn.com>
parents: 1150
diff changeset
1763 if (u == NULL) continue;
f3b1abf0dcc3 [gaim-migrate @ 1165]
Rob Flynn <gaim@robflynn.com>
parents: 1150
diff changeset
1764
1230
7bdb85ea9255 [gaim-migrate @ 1240]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
1765 /* check and see if we're signed on as the pouncer */
2131
ef072ae1b2b8 [gaim-migrate @ 2141]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2125
diff changeset
1766 if (u->gc != gc) continue;
1230
7bdb85ea9255 [gaim-migrate @ 1240]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
1767
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
1768 if (!g_strcasecmp(who, normalize(b->name))) { /* find someone to pounce */
1857
16bf6366d2f9 [gaim-migrate @ 1867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1825
diff changeset
1769 if (b->options & OPT_POUNCE_POPUP) {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1770 c = find_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1771 if (c == NULL)
1869
9674dce956b2 [gaim-migrate @ 1879]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1857
diff changeset
1772 c = new_conversation(name);
1857
16bf6366d2f9 [gaim-migrate @ 1867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1825
diff changeset
1773
1898
695a31e4452b [gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1881
diff changeset
1774 set_convo_gc(c, u->gc);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1775 }
1857
16bf6366d2f9 [gaim-migrate @ 1867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1825
diff changeset
1776 if (b->options & OPT_POUNCE_SEND_IM) {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1777 c = find_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1778 if (c == NULL)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1779 c = new_conversation(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1780
1898
695a31e4452b [gaim-migrate @ 1908]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1881
diff changeset
1781 set_convo_gc(c, u->gc);
1714
f93770dc0fb4 [gaim-migrate @ 1724]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1713
diff changeset
1782
1764
d8c1affb29fe [gaim-migrate @ 1774]
Rob Flynn <gaim@robflynn.com>
parents: 1750
diff changeset
1783 write_to_conv(c, b->message, WFLAG_SEND, NULL, time((time_t)NULL));
1155
f3b1abf0dcc3 [gaim-migrate @ 1165]
Rob Flynn <gaim@robflynn.com>
parents: 1150
diff changeset
1784 serv_send_im(u->gc, name, b->message, 0);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1785 }
1857
16bf6366d2f9 [gaim-migrate @ 1867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1825
diff changeset
1786 if (b->options & OPT_POUNCE_COMMAND) {
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1787 int pid = fork();
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1788
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1789 if (pid == 0) {
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1790 char *args[4];
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1791 args[0] = "sh";
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1792 args[1] = "-c";
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1793 args[2] = b->command;
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1794 args[3] = NULL;
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1795 execvp(args[0], args);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1796 _exit(0);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1797 } else if (pid > 0) {
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1798 gtk_timeout_add(100, (GtkFunction)clean_pid, NULL);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1799 }
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1183
diff changeset
1800 }
1857
16bf6366d2f9 [gaim-migrate @ 1867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1825
diff changeset
1801 if (b->options & OPT_POUNCE_SOUND) {
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1693
diff changeset
1802 if(strlen(b->sound))
1857
16bf6366d2f9 [gaim-migrate @ 1867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1825
diff changeset
1803 play_file(b->sound);
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1693
diff changeset
1804 else
1857
16bf6366d2f9 [gaim-migrate @ 1867]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1825
diff changeset
1805 play_sound(POUNCE_DEFAULT);
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1693
diff changeset
1806 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1807
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1233
diff changeset
1808 if (!(b->options & OPT_POUNCE_SAVE))
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1233
diff changeset
1809 rem_bp(NULL, b);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1810
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1811 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1812 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1813 g_free(who);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1814 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1815
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1816 static void new_bp_callback(GtkWidget *w, char *name)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1817 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1818 show_new_bp(name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1819 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1820
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1821 void do_bp_menu()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1822 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1823 GtkWidget *menuitem, *mess, *messmenu;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1824 static GtkWidget *remmenu;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1825 GtkWidget *remitem;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1826 GtkWidget *sep;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1827 GList *l;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1828 struct buddy_pounce *b;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1829 GList *bp = buddy_pounces;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1830
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1831 l = gtk_container_children(GTK_CONTAINER(bpmenu));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1832
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1833 while(l) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1834 gtk_widget_destroy(GTK_WIDGET(l->data));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1835 l = l->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1836 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1837
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1838 remmenu = gtk_menu_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1839
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
1840 menuitem = gtk_menu_item_new_with_label(_("New Buddy Pounce"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1841 gtk_menu_append(GTK_MENU(bpmenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1842 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1843 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(new_bp_callback), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1844
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1845
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1846 while(bp) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1847
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1848 b = (struct buddy_pounce *)bp->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1849 remitem = gtk_menu_item_new_with_label(b->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1850 gtk_menu_append(GTK_MENU(remmenu), remitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1851 gtk_widget_show(remitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1852 gtk_signal_connect(GTK_OBJECT(remitem), "activate", GTK_SIGNAL_FUNC(rem_bp), b);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1853
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1854 bp = bp->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1855
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1856 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1857
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
1858 menuitem = gtk_menu_item_new_with_label(_("Remove Buddy Pounce"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1859 gtk_menu_append(GTK_MENU(bpmenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1860 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1861 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), remmenu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1862 gtk_widget_show(remmenu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1863
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1864 sep = gtk_hseparator_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1865 menuitem = gtk_menu_item_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1866 gtk_menu_append(GTK_MENU(bpmenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1867 gtk_container_add(GTK_CONTAINER(menuitem), sep);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1868 gtk_widget_set_sensitive(menuitem, FALSE);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1869 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1870 gtk_widget_show(sep);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1871
1138
d55b37946f48 [gaim-migrate @ 1148]
Rob Flynn <gaim@robflynn.com>
parents: 1137
diff changeset
1872 bp = buddy_pounces;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1873
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1874 while(bp) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1875
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1876 b = (struct buddy_pounce *)bp->data;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1877
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1878 menuitem = gtk_menu_item_new_with_label(b->name);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1879 gtk_menu_append(GTK_MENU(bpmenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1880 messmenu = gtk_menu_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1881 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), messmenu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1882 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1883
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1884 mess = gtk_menu_item_new_with_label(b->message);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1885 gtk_menu_append(GTK_MENU(messmenu), mess);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1886 gtk_widget_show(mess);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1887
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1888 bp = bp->next;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1889
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1890 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1891
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1892 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1893
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1894
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1895 static struct group_show *find_group_show(char *group) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1896 GSList *m = shows;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1897 struct group_show *g = NULL;
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1898 char *who = g_strdup(normalize(group));
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1899
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1900 while (m) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1901 g = (struct group_show *)m->data;
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
1902 if (!g_strcasecmp(normalize(g->name), who))
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1903 break;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1904 g = NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1905 m = m->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1906 }
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
1907 g_free(who);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1908
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1909 return g;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1910 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1911
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1912 static struct buddy_show *find_buddy_show(struct group_show *gs, char *name) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1913 GSList *m = gs->members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1914 struct buddy_show *b = NULL;
1098
ba62d11c12ca [gaim-migrate @ 1108]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1097
diff changeset
1915 char *who = g_strdup(normalize(name));
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1916
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1917 while (m) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1918 b = (struct buddy_show *)m->data;
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
1919 if (!g_strcasecmp(normalize(b->name), who))
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1920 break;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1921 b = NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1922 m = m->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1923 }
1098
ba62d11c12ca [gaim-migrate @ 1108]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1097
diff changeset
1924 g_free(who);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1925
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1926 return b;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1927 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1928
1037
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1929 static int group_number(char *group) {
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1930 GSList *c = connections;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1931 struct gaim_connection *g;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1932 GSList *m;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1933 struct group *p;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1934 int pos = 0;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1935
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1936 while (c) {
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1937 g = (struct gaim_connection *)c->data;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1938 m = g->groups;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1939 while (m) {
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1940 p = (struct group *)m->data;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1941 if (!strcmp(p->name, group))
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1942 return pos;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1943 if (find_group_show(p->name))
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1944 pos++;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1945 m = m->next;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1946 }
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1947 c = c->next;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1948 }
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1949 /* um..... we'll never get here */
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1950 return -1;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1951 }
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1952
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1953 static int buddy_number(char *group, char *buddy) {
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1954 GSList *c = connections;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1955 struct gaim_connection *g;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1956 struct group *p;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1957 GSList *z;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1958 struct buddy *b;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1959 int pos = 0;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1960 char *tmp1 = g_strdup(normalize(buddy));
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1961 struct group_show *gs = find_group_show(group);
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1962
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1963 while (c) {
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1964 g = (struct gaim_connection *)c->data;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1965 p = find_group(g, group);
1049
34437490f51c [gaim-migrate @ 1059]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
1966 if (!p) {
34437490f51c [gaim-migrate @ 1059]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
1967 c = c->next;
34437490f51c [gaim-migrate @ 1059]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
1968 continue;
34437490f51c [gaim-migrate @ 1059]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
1969 }
1037
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1970 z = p->members;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1971 while (z) {
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1972 b = (struct buddy *)z->data;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1973 if (!strcmp(tmp1, normalize(b->name))) {
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1974 g_free(tmp1);
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1975 return pos;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1976 }
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1977 if (find_buddy_show(gs, b->name))
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1978 pos++;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1979 z = z->next;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1980 }
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1981 c = c->next;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1982 }
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1983 /* we shouldn't ever get here */
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1984 debug_printf("got to bad place in buddy_number\n");
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1985 g_free(tmp1);
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1986 return -1;
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1987 }
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1988
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1989 static struct group_show *new_group_show(char *group) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1990 struct group_show *g = g_new0(struct group_show, 1);
1037
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1991 int pos = group_number(group);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1992
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1993 g->name = g_strdup(group);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1994
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1995 g->item = gtk_tree_item_new();
1037
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
1996 gtk_tree_insert(GTK_TREE(buddies), g->item, pos);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1997 gtk_signal_connect(GTK_OBJECT(g->item), "button_press_event",
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
1998 GTK_SIGNAL_FUNC(handle_click_group), g);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1999 gtk_widget_show(g->item);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2000
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2001 g->label = gtk_label_new(group);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2002 gtk_misc_set_alignment(GTK_MISC(g->label), 0.0, 0.5);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2003 gtk_container_add(GTK_CONTAINER(g->item), g->label);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2004 gtk_widget_show(g->label);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2005
1037
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
2006 shows = g_slist_insert(shows, g, pos);
1072
44ae81f8ea2e [gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1070
diff changeset
2007 update_num_groups(g);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2008 return g;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2009 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2010
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2011 static struct buddy_show *new_buddy_show(struct group_show *gs, struct buddy *buddy, char **xpm) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2012 struct buddy_show *b = g_new0(struct buddy_show, 1);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2013 GtkWidget *box;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2014 GdkPixmap *pm;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2015 GdkBitmap *bm;
1037
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
2016 int pos = buddy_number(gs->name, buddy->name);
1299
51d7e0e6781e [gaim-migrate @ 1309]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1297
diff changeset
2017 b->sound = 0;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2018
1409
a48d3f901593 [gaim-migrate @ 1419]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
2019 if (gs->members == NULL) {
a48d3f901593 [gaim-migrate @ 1419]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
2020 gs->tree = gtk_tree_new();
a48d3f901593 [gaim-migrate @ 1419]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
2021 gtk_tree_item_set_subtree(GTK_TREE_ITEM(gs->item), gs->tree);
a48d3f901593 [gaim-migrate @ 1419]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
2022 gtk_tree_item_expand(GTK_TREE_ITEM(gs->item));
a48d3f901593 [gaim-migrate @ 1419]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
2023 gtk_widget_show(gs->tree);
a48d3f901593 [gaim-migrate @ 1419]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
2024 }
a48d3f901593 [gaim-migrate @ 1419]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
2025
1036
669d41a90aae [gaim-migrate @ 1046]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1033
diff changeset
2026 b->name = g_strdup(buddy->name);
669d41a90aae [gaim-migrate @ 1046]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1033
diff changeset
2027 b->show = g_strdup(buddy->show);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2028
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2029 b->item = gtk_tree_item_new();
1037
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
2030 gtk_tree_insert(GTK_TREE(gs->tree), b->item, pos);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2031 gtk_object_set_user_data(GTK_OBJECT(b->item), b);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2032 gtk_signal_connect(GTK_OBJECT(b->item), "button_press_event",
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2033 GTK_SIGNAL_FUNC(handle_click_buddy), b);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2034 gtk_widget_show(b->item);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2035
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2036 box = gtk_hbox_new(FALSE, 1);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2037 gtk_container_add(GTK_CONTAINER(b->item), box);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2038 gtk_widget_show(box);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2039
1729
1da25c26b09b [gaim-migrate @ 1739]
Neil Sanchala <nsanch@gmail.com>
parents: 1714
diff changeset
2040 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm ? xpm : no_icon_xpm);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2041 b->pix = gtk_pixmap_new(pm, bm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2042 gtk_box_pack_start(GTK_BOX(box), b->pix, FALSE, FALSE, 1);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2043 gtk_widget_show(b->pix);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2044 if (!(blist_options & OPT_BLIST_SHOW_PIXMAPS))
1711
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
2045 gtk_widget_hide(b->pix);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2046 gdk_pixmap_unref(pm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2047 gdk_bitmap_unref(bm);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2048
1036
669d41a90aae [gaim-migrate @ 1046]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1033
diff changeset
2049 b->label = gtk_label_new(buddy->show);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2050 gtk_misc_set_alignment(GTK_MISC(b->label), 0.0, 0.5);
1242
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2051 gtk_box_pack_start(GTK_BOX(box), b->label, FALSE, FALSE, 1);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2052 gtk_widget_show(b->label);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2053
1242
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2054 b->warn = gtk_label_new("");
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2055 gtk_box_pack_start(GTK_BOX(box), b->warn, FALSE, FALSE, 1);
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2056 gtk_widget_show(b->warn);
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2057
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2058 b->idle = gtk_label_new("");
1242
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2059 gtk_box_pack_end(GTK_BOX(box), b->idle, FALSE, FALSE, 1);
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2060 gtk_widget_show(b->idle);
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2061
1037
b73eadf592b1 [gaim-migrate @ 1047]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1036
diff changeset
2062 gs->members = g_slist_insert(gs->members, b, pos);
1070
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
2063 update_num_group(gs);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2064 return b;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2065 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2066
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2067 static void remove_buddy_show(struct group_show *gs, struct buddy_show *bs) {
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2068 /* the name of this function may be misleading, but don't let it fool you. the point
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2069 * of this is to remove bs->item from gs->tree, and make sure gs->tree still exists
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2070 * and is a valid tree afterwards. Otherwise, Bad Things will happen. */
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2071 gtk_tree_remove_item(GTK_TREE(gs->tree), bs->item);
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2072 bs->item = NULL;
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2073 }
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2074
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2075 static struct group_show *find_gs_by_bs(struct buddy_show *b) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2076 GSList *m, *n;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2077 struct group_show *g = NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2078 struct buddy_show *h;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2079
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2080 m = shows;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2081 while (m) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2082 g = (struct group_show *)m->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2083 n = g->members;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2084 while (n) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2085 h = (struct buddy_show *)n->data;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2086 if (h == b)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2087 return g;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2088 n = n->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2089 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2090 g = NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2091 m = m->next;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2092 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2093
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2094 return g;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2095 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2096
1089
74f5c108f7a3 [gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1088
diff changeset
2097 static gint log_timeout(struct buddy_show *b) {
2255
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2098 /* this part is really just a bad hack because of a bug I can't find */
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2099 GSList *s = shows;
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2100 while (s) {
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2101 struct group_show *gs = s->data;
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2102 GSList *m = gs->members;
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2103 while (m) {
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2104 if (b == m->data)
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2105 break;
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2106 m = m->next;
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2107 }
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2108 if (m != NULL)
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2109 break;
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2110 s = s->next;
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2111 }
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2112 if (!s)
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2113 return 0;
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2114
eb96ab7fb1ba [gaim-migrate @ 2265]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2191
diff changeset
2115 /* this is the real part. */
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2116 if (!b->connlist) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2117 struct group_show *g = find_gs_by_bs(b);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2118 g->members = g_slist_remove(g->members, b);
1091
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
2119 if (blist)
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2120 remove_buddy_show(g, b);
1091
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
2121 else
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
2122 debug_printf("log_timeout but buddy list not available\n");
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2123 if ((g->members == NULL) && (blist_options & OPT_BLIST_NO_MT_GRP)) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2124 shows = g_slist_remove(shows, g);
1091
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
2125 if (blist)
1108
1b1d0a6a8006 [gaim-migrate @ 1118]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1106
diff changeset
2126 gtk_tree_remove_item(GTK_TREE(buddies), g->item);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2127 g_free(g->name);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2128 g_free(g);
1089
74f5c108f7a3 [gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1088
diff changeset
2129 }
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2130 gtk_timeout_remove(b->log_timer);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2131 b->log_timer = 0;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2132 g_free(b->name);
1036
669d41a90aae [gaim-migrate @ 1046]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1033
diff changeset
2133 g_free(b->show);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2134 g_free(b);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2135 } else {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2136 /* um.... what do we have to do here? just update the pixmap? */
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2137 GdkPixmap *pm;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2138 GdkBitmap *bm;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2139 gchar **xpm = NULL;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2140 struct buddy *light = find_buddy(b->connlist->data, b->name);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2141 if (((struct gaim_connection *)b->connlist->data)->prpl->list_icon)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2142 xpm = (*((struct gaim_connection *)b->connlist->data)->prpl->list_icon)(light->uc);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2143 if (xpm == NULL)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2144 xpm = (char **)no_icon_xpm;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2145 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2146 gtk_widget_hide(b->pix);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2147 gtk_pixmap_set(GTK_PIXMAP(b->pix), pm, bm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2148 gtk_widget_show(b->pix);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2149 if (!(blist_options & OPT_BLIST_SHOW_PIXMAPS))
1711
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
2150 gtk_widget_hide(b->pix);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2151 if (misc_options & OPT_MISC_BUDDY_TICKER)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2152 BuddyTickerSetPixmap(b->name, pm, bm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2153 gdk_pixmap_unref(pm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2154 gdk_bitmap_unref(bm);
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2155 gtk_timeout_remove(b->log_timer);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2156 b->log_timer = 0;
1299
51d7e0e6781e [gaim-migrate @ 1309]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1297
diff changeset
2157 b->sound = 0;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2158 }
1091
c293a6642a83 [gaim-migrate @ 1101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
2159 return 0;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2160 }
513
b3e49d0b1681 [gaim-migrate @ 523]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 511
diff changeset
2161
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2162 static char *caps_string(gushort caps)
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2163 {
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2164 static char buf[256], *tmp;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2165 int count = 0, i = 0;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2166 gushort bit = 1;
1310
5dea1626416e [gaim-migrate @ 1320]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1299
diff changeset
2167 while (bit <= 0x80) {
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2168 if (bit & caps) {
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2169 switch (bit) {
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2170 case 0x1:
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2171 tmp = _("Buddy Icon");
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2172 break;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2173 case 0x2:
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2174 tmp = _("Voice");
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2175 break;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2176 case 0x4:
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2177 tmp = _("IM Image");
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2178 break;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2179 case 0x8:
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2180 tmp = _("Chat");
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2181 break;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2182 case 0x10:
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2183 tmp = _("Get File");
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2184 break;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2185 case 0x20:
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2186 tmp = _("Send File");
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2187 break;
1310
5dea1626416e [gaim-migrate @ 1320]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1299
diff changeset
2188 case 0x40:
5dea1626416e [gaim-migrate @ 1320]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1299
diff changeset
2189 tmp = _("Games");
5dea1626416e [gaim-migrate @ 1320]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1299
diff changeset
2190 break;
5dea1626416e [gaim-migrate @ 1320]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1299
diff changeset
2191 case 0x80:
5dea1626416e [gaim-migrate @ 1320]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1299
diff changeset
2192 tmp = _("Stocks");
5dea1626416e [gaim-migrate @ 1320]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1299
diff changeset
2193 break;
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2194 default:
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2195 tmp = NULL;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2196 break;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2197 }
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2198 if (tmp)
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2199 i += g_snprintf(buf+i, sizeof(buf)-i, "%s%s", (count ? ", " : ""), tmp);
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2200 count++;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2201 }
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2202 bit <<= 1;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2203 }
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2204 return buf;
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2205 }
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2206
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2207 /* for this we're just going to assume the first connection that registered the buddy.
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2208 * if it's not the one you were hoping for then you're shit out of luck */
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2209 static void update_idle_time(struct buddy_show *bs) {
1075
626b13be66c3 [gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1072
diff changeset
2210 /* this also updates the tooltip since that has idle time in it */
1242
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2211 char idlet[16], warnl[16];
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2212 time_t t;
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2213 int ihrs, imin;
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2214 struct buddy *b;
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2215
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2216 char infotip[2048];
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2217 char warn[256];
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2218 char caps[256];
1815
e2b090284b19 [gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1805
diff changeset
2219 char *sotime = NULL, *itime;
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2220
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2221 time(&t);
1166
ea8323e2509e [gaim-migrate @ 1176]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1164
diff changeset
2222 if (!bs->connlist) return;
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2223 b = find_buddy(bs->connlist->data, bs->name);
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2224 if (!b) return;
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2225 ihrs = (t - b->idle) / 3600; imin = ((t - b->idle) / 60) % 60;
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2226
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2227 if (ihrs)
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2228 g_snprintf(idlet, sizeof idlet, "(%d:%02d)", ihrs, imin);
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2229 else
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2230 g_snprintf(idlet, sizeof idlet, "(%d)", imin);
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2231
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2232 gtk_widget_hide(bs->idle);
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2233 if (b->idle)
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2234 gtk_label_set(GTK_LABEL(bs->idle), idlet);
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2235 else
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2236 gtk_label_set(GTK_LABEL(bs->idle), "");
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2237 if (blist_options & OPT_BLIST_SHOW_IDLETIME)
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2238 gtk_widget_show(bs->idle);
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2239
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2240 /* now we do the tooltip */
1496
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2241 if (b->signon) {
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2242 char *stime = sec_to_text(t - b->signon +
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2243 ((struct gaim_connection *)bs->connlist->data)->correction_time);
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2244 sotime = g_strdup_printf(_("Logged in: %s\n"), stime);
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2245 g_free(stime);
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2246 }
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2247
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2248 if (b->idle)
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2249 itime = sec_to_text(t - b->idle);
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2250 else {
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2251 itime = g_malloc(1); itime[0] = 0;
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2252 }
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2253
1242
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2254 if (b->evil) {
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2255 g_snprintf(warn, sizeof warn, _("Warnings: %d%%\n"), b->evil);
1242
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2256 g_snprintf(warnl, sizeof warnl, "(%d%%)", b->evil);
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2257 } else {
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2258 warn[0] = '\0';
1242
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2259 warnl[0] = '\0';
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2260 }
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2261 gtk_widget_hide(bs->warn);
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2262 gtk_label_set(GTK_LABEL(bs->warn), warnl);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2263 if (blist_options & OPT_BLIST_SHOW_WARN)
1242
03b40c0c8eec [gaim-migrate @ 1252]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
2264 gtk_widget_show(bs->warn);
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2265
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2266 if (b->caps)
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2267 g_snprintf(caps, sizeof caps, _("Capabilities: %s\n"), caps_string(b->caps));
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2268 else
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2269 caps[0] = '\0';
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2270
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2271 g_snprintf(infotip, sizeof infotip, _("Alias: %s \nScreen Name: %s\n"
1496
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2272 "%s%s%s%s%s%s"),
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2273 b->show, b->name,
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2274 (b->signon ? sotime : ""), warn,
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2275 (b->idle ? _("Idle: ") : ""), itime,
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2276 (b->idle ? "\n" : ""), caps);
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2277
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2278 gtk_tooltips_set_tip(tips, GTK_WIDGET(bs->item), infotip, "");
1068
3d3c595ae439 [gaim-migrate @ 1078]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1066
diff changeset
2279
1496
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2280 if (b->signon)
d8bc156b68fc [gaim-migrate @ 1506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1477
diff changeset
2281 g_free(sotime);
1163
a64d453c2189 [gaim-migrate @ 1173]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1159
diff changeset
2282 g_free(itime);
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2283 }
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2284
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2285 void update_idle_times() {
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2286 GSList *grp = shows;
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2287 GSList *mem;
1667
5148c65efd73 [gaim-migrate @ 1677]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1666
diff changeset
2288 struct buddy_show *b;
5148c65efd73 [gaim-migrate @ 1677]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1666
diff changeset
2289 struct group_show *g;
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2290
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2291 while (grp) {
1667
5148c65efd73 [gaim-migrate @ 1677]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1666
diff changeset
2292 g = (struct group_show *)grp->data;
5148c65efd73 [gaim-migrate @ 1677]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1666
diff changeset
2293 mem = g->members;
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2294 while (mem) {
1667
5148c65efd73 [gaim-migrate @ 1677]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1666
diff changeset
2295 b = (struct buddy_show *)mem->data;
5148c65efd73 [gaim-migrate @ 1677]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1666
diff changeset
2296 update_idle_time(b);
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2297 mem = mem->next;
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2298 }
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2299 grp = grp->next;
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2300 }
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2301 }
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2302
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2303 void set_buddy(struct gaim_connection *gc, struct buddy *b)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2304 {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2305 struct group *g = find_group_by_buddy(gc, b->name);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2306 struct group_show *gs;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2307 struct buddy_show *bs;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2308 GdkPixmap *pm;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2309 GdkBitmap *bm;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2310 char **xpm = NULL;
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2311
1063
f766a178ee59 [gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1061
diff changeset
2312 if (!blist) return;
f766a178ee59 [gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1061
diff changeset
2313
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2314 if (b->present) {
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2315 if ((gs = find_group_show(g->name)) == NULL)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2316 gs = new_group_show(g->name);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2317 if ((bs = find_buddy_show(gs, b->name)) == NULL)
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2318 bs = new_buddy_show(gs, b, (char **)login_icon_xpm);
1164
ba37b99a4fae [gaim-migrate @ 1174]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1163
diff changeset
2319 if (!g_slist_find(bs->connlist, gc))
ba37b99a4fae [gaim-migrate @ 1174]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1163
diff changeset
2320 bs->connlist = g_slist_append(bs->connlist, gc);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2321 if (b->present == 1) {
1299
51d7e0e6781e [gaim-migrate @ 1309]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1297
diff changeset
2322 if (bs->sound != 2)
51d7e0e6781e [gaim-migrate @ 1309]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1297
diff changeset
2323 play_sound(BUDDY_ARRIVE);
1039
7dd4859bba95 [gaim-migrate @ 1049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1037
diff changeset
2324 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm,
7dd4859bba95 [gaim-migrate @ 1049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1037
diff changeset
2325 NULL, (char **)login_icon_xpm);
7dd4859bba95 [gaim-migrate @ 1049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1037
diff changeset
2326 gtk_widget_hide(bs->pix);
7dd4859bba95 [gaim-migrate @ 1049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1037
diff changeset
2327 gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm);
7dd4859bba95 [gaim-migrate @ 1049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1037
diff changeset
2328 gtk_widget_show(bs->pix);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2329 if (misc_options & OPT_MISC_BUDDY_TICKER) {
1066
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2330 BuddyTickerAddUser(b->name, pm, bm);
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2331 gtk_timeout_add(10000, (GtkFunction)BuddyTickerLogonTimeout, b->name);
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2332 }
1039
7dd4859bba95 [gaim-migrate @ 1049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1037
diff changeset
2333 gdk_pixmap_unref(pm);
7dd4859bba95 [gaim-migrate @ 1049]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1037
diff changeset
2334 gdk_bitmap_unref(bm);
121
26bd3cceac73 [gaim-migrate @ 131]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 120
diff changeset
2335 b->present = 2;
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2336 if (bs->log_timer > 0)
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2337 gtk_timeout_remove(bs->log_timer);
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2338 bs->log_timer = gtk_timeout_add(10000, (GtkFunction)log_timeout, bs);
1070
fb72b1ddaf3a [gaim-migrate @ 1080]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1069
diff changeset
2339 update_num_group(gs);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2340 if ((bs->sound != 2) && (im_options & OPT_IM_LOGON)) {
1066
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2341 struct conversation *c = find_conversation(b->name);
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2342 if (c) {
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2343 char tmp[1024];
1735
4f5f223fca01 [gaim-migrate @ 1745]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1729
diff changeset
2344 g_snprintf(tmp, sizeof(tmp), _("%s logged in."), b->name);
1764
d8c1affb29fe [gaim-migrate @ 1774]
Rob Flynn <gaim@robflynn.com>
parents: 1750
diff changeset
2345 write_to_conv(c, tmp, WFLAG_SYSTEM, NULL, time((time_t)NULL));
1066
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2346 }
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2347 }
1661
ef18699627f3 [gaim-migrate @ 1671]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1634
diff changeset
2348 bs->sound = 2;
1098
ba62d11c12ca [gaim-migrate @ 1108]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1097
diff changeset
2349 } else if (bs->log_timer == 0) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2350 if (gc->prpl->list_icon)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2351 xpm = (*gc->prpl->list_icon)(b->uc);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2352 if (xpm == NULL)
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2353 xpm = (char **)no_icon_xpm;
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2354 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2355 gtk_widget_hide(bs->pix);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2356 gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2357 gtk_widget_show(bs->pix);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2358 if (!(blist_options & OPT_BLIST_SHOW_PIXMAPS))
1711
434045689e85 [gaim-migrate @ 1721]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1699
diff changeset
2359 gtk_widget_hide(bs->pix);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2360 if (misc_options & OPT_MISC_BUDDY_TICKER)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2361 BuddyTickerSetPixmap(b->name, pm, bm);
644
4388456cd80e [gaim-migrate @ 654]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 608
diff changeset
2362 gdk_pixmap_unref(pm);
804
c606c9aacfc5 [gaim-migrate @ 814]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 803
diff changeset
2363 gdk_bitmap_unref(bm);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2364 }
1058
e878d758cff6 [gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
2365 update_idle_time(bs);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2366 } else {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2367 gs = find_group_show(g->name);
1061
26e65bbb300c [gaim-migrate @ 1071]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1058
diff changeset
2368 if (!gs) return;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2369 bs = find_buddy_show(gs, b->name);
1061
26e65bbb300c [gaim-migrate @ 1071]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1058
diff changeset
2370 if (!bs) return;
1097
dbf74a68b3c0 [gaim-migrate @ 1107]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1095
diff changeset
2371 if (!bs->connlist) return; /* we won't do signoff updates for
dbf74a68b3c0 [gaim-migrate @ 1107]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1095
diff changeset
2372 buddies that have already signed
dbf74a68b3c0 [gaim-migrate @ 1107]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1095
diff changeset
2373 off */
1299
51d7e0e6781e [gaim-migrate @ 1309]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1297
diff changeset
2374 if (bs->sound != 1)
51d7e0e6781e [gaim-migrate @ 1309]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1297
diff changeset
2375 play_sound(BUDDY_LEAVE);
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2376
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2377 bs->connlist = g_slist_remove(bs->connlist, gc);
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
2378 if (bs->log_timer > 0)
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
2379 gtk_timeout_remove(bs->log_timer);
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
2380 bs->log_timer = gtk_timeout_add(10000, (GtkFunction)log_timeout, bs);
1106
7f3041b0632a [gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1103
diff changeset
2381 update_num_group(gs);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2382 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, logout_icon_xpm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2383 gtk_widget_hide(bs->pix);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2384 gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2385 gtk_widget_show(bs->pix);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2386 if (misc_options & OPT_MISC_BUDDY_TICKER) {
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2387 BuddyTickerSetPixmap(b->name, pm, bm);
1066
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2388 gtk_timeout_add(10000, (GtkFunction)BuddyTickerLogoutTimeout, b->name);
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2389 }
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2390 gdk_pixmap_unref(pm);
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2391 gdk_bitmap_unref(bm);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2392 if ((bs->sound != 1) && (im_options & OPT_IM_LOGON)) {
1066
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2393 struct conversation *c = find_conversation(b->name);
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2394 if (c) {
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2395 char tmp[1024];
1735
4f5f223fca01 [gaim-migrate @ 1745]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1729
diff changeset
2396 g_snprintf(tmp, sizeof(tmp), _("%s logged out."), b->name);
1764
d8c1affb29fe [gaim-migrate @ 1774]
Rob Flynn <gaim@robflynn.com>
parents: 1750
diff changeset
2397 write_to_conv(c, tmp, WFLAG_SYSTEM, NULL, time((time_t)NULL));
1066
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2398 }
eb5d1e43cf11 [gaim-migrate @ 1076]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1063
diff changeset
2399 }
1661
ef18699627f3 [gaim-migrate @ 1671]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1634
diff changeset
2400
ef18699627f3 [gaim-migrate @ 1671]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1634
diff changeset
2401 bs->sound = 1;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
2402 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2403 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2404
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2405
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2406 static void move_blist_window(GtkWidget *w, GdkEventConfigure *e, void *dummy)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2407 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2408 int x, y, width, height;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2409 int save = 0;
1420
8aeea0905edb [gaim-migrate @ 1430]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1413
diff changeset
2410 gdk_window_get_position(blist->window, &x, &y);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2411 gdk_window_get_size(blist->window, &width, &height);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2412
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2413 if(e->send_event) { /* Is a position event */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2414 if (blist_pos.x != x || blist_pos.y != y)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2415 save = 1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2416 blist_pos.x = x;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2417 blist_pos.y = y;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2418 } else { /* Is a size event */
1420
8aeea0905edb [gaim-migrate @ 1430]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1413
diff changeset
2419 if (blist_pos.xoff != x || blist_pos.yoff != y || blist_pos.width != width)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2420 save = 1;
1420
8aeea0905edb [gaim-migrate @ 1430]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1413
diff changeset
2421
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2422 blist_pos.width = width;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2423 blist_pos.height = height;
1420
8aeea0905edb [gaim-migrate @ 1430]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1413
diff changeset
2424 blist_pos.xoff = x;
8aeea0905edb [gaim-migrate @ 1430]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1413
diff changeset
2425 blist_pos.yoff = y;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2426 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2427
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2428 if (save)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2429 save_prefs();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2430
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2431 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2432
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2433
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2434 /*******************************************************************
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2435 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2436 * Helper funs for making the menu
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2437 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2438 *******************************************************************/
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2439
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2440 void gaim_separator(GtkWidget *menu)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2441 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2442 GtkWidget *sep, *menuitem;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2443 sep = gtk_hseparator_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2444 menuitem = gtk_menu_item_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2445 gtk_menu_append(GTK_MENU(menu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2446 gtk_container_add(GTK_CONTAINER(menuitem), sep);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2447 gtk_widget_set_sensitive(menuitem, FALSE);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2448 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2449 gtk_widget_show(sep);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2450 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2451
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2452 GtkWidget *gaim_new_item(GtkWidget *menu, const char *str)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2453 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2454 GtkWidget *menuitem;
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2455 GtkWidget *label;
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2456
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2457 menuitem = gtk_menu_item_new();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2458 if (menu)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2459 gtk_menu_append(GTK_MENU(menu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2460 gtk_widget_show(menuitem);
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2461
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2462 label = gtk_label_new(str);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2463 gtk_label_set_pattern(GTK_LABEL(label), "_");
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2464 gtk_container_add(GTK_CONTAINER(menuitem), label);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2465 gtk_widget_show(label);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2466
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2467 gtk_widget_add_accelerator(menuitem, "activate-item", accel, str[0],
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2468 GDK_MOD1_MASK, GTK_ACCEL_LOCKED);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2469 gtk_widget_lock_accelerators(menuitem);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2470
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2471 return menuitem;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2472 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2473
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2474 GtkWidget *gaim_new_item_with_pixmap(GtkWidget *menu, const char *str, char **xpm, GtkSignalFunc sf,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2475 guint accel_key, guint accel_mods, char *mod)
714
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2476 {
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2477 GtkWidget *menuitem;
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2478 GtkWidget *hbox;
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2479 GtkWidget *label;
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2480 GtkWidget *pixmap;
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2481 GdkPixmap *pm;
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2482 GdkBitmap *mask;
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2483
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2484 menuitem = gtk_menu_item_new();
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2485 if (menu)
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2486 gtk_menu_append(GTK_MENU(menu), menuitem);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2487 if (sf)
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2488 /* passing 1 is necessary so if we sign off closing the account editor doesn't exit */
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2489 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", sf, (void *)1);
714
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2490 gtk_widget_show(menuitem);
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2491
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2492 /* Create our container */
718
aedba1b670a7 [gaim-migrate @ 728]
Rob Flynn <gaim@robflynn.com>
parents: 714
diff changeset
2493 hbox = gtk_hbox_new(FALSE, 2);
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2494 gtk_container_add(GTK_CONTAINER(menuitem), hbox);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2495 gtk_widget_show(hbox);
714
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2496
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2497 /* Create our pixmap and pack it */
719
8e73200db133 [gaim-migrate @ 729]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 718
diff changeset
2498 gtk_widget_realize(menu->parent);
714
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2499 pm = gdk_pixmap_create_from_xpm_d(menu->parent->window, &mask, NULL, xpm);
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2500 pixmap = gtk_pixmap_new(pm, mask);
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2501 gtk_widget_show(pixmap);
803
e322b3985e7e [gaim-migrate @ 813]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 801
diff changeset
2502 gdk_pixmap_unref(pm);
804
c606c9aacfc5 [gaim-migrate @ 814]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 803
diff changeset
2503 gdk_bitmap_unref(mask);
718
aedba1b670a7 [gaim-migrate @ 728]
Rob Flynn <gaim@robflynn.com>
parents: 714
diff changeset
2504 gtk_box_pack_start(GTK_BOX(hbox), pixmap, FALSE, FALSE, 2);
aedba1b670a7 [gaim-migrate @ 728]
Rob Flynn <gaim@robflynn.com>
parents: 714
diff changeset
2505
aedba1b670a7 [gaim-migrate @ 728]
Rob Flynn <gaim@robflynn.com>
parents: 714
diff changeset
2506 /* Create our label and pack it */
aedba1b670a7 [gaim-migrate @ 728]
Rob Flynn <gaim@robflynn.com>
parents: 714
diff changeset
2507 label = gtk_label_new(str);
aedba1b670a7 [gaim-migrate @ 728]
Rob Flynn <gaim@robflynn.com>
parents: 714
diff changeset
2508 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2509 gtk_widget_show(label);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2510
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2511 if (mod) {
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2512 label = gtk_label_new(mod);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2513 gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 2);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2514 gtk_widget_show(label);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2515 }
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2516
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2517 if (accel_key) {
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2518 gtk_widget_add_accelerator(menuitem, "activate", accel, accel_key,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2519 accel_mods, GTK_ACCEL_LOCKED);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2520 gtk_widget_lock_accelerators(menuitem);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2521 }
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2522
714
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2523 return menuitem;
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2524 }
e2bbd9c83f6d [gaim-migrate @ 724]
Rob Flynn <gaim@robflynn.com>
parents: 710
diff changeset
2525
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2526
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2527
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2528 void build_imchat_box(gboolean on)
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2529 {
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2530 if (on) {
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2531 if (imchatbox) return;
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2532
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2533 imbutton = gtk_button_new_with_label(_("IM"));
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2534 infobutton = gtk_button_new_with_label(_("Info"));
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2535 chatbutton = gtk_button_new_with_label(_("Chat"));
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
2536 awaybutton = gtk_button_new_with_label(_("Away"));
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2537
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2538 imchatbox = gtk_hbox_new(TRUE, 10);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2539
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2540 if (misc_options & OPT_MISC_COOL_LOOK)
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2541 {
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2542 gtk_button_set_relief(GTK_BUTTON(imbutton), GTK_RELIEF_NONE);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2543 gtk_button_set_relief(GTK_BUTTON(infobutton), GTK_RELIEF_NONE);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2544 gtk_button_set_relief(GTK_BUTTON(chatbutton), GTK_RELIEF_NONE);
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
2545 gtk_button_set_relief(GTK_BUTTON(awaybutton), GTK_RELIEF_NONE);
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2546 }
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2547
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2548 /* Put the buttons in the hbox */
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2549 gtk_widget_show(imbutton);
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
2550 gtk_widget_show(infobutton);
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2551 gtk_widget_show(chatbutton);
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
2552 gtk_widget_show(awaybutton);
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2553
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2554 gtk_box_pack_start(GTK_BOX(imchatbox), imbutton, TRUE, TRUE, 0);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2555 gtk_box_pack_start(GTK_BOX(imchatbox), infobutton, TRUE, TRUE, 0);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2556 gtk_box_pack_start(GTK_BOX(imchatbox), chatbutton, TRUE, TRUE, 0);
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
2557 gtk_box_pack_start(GTK_BOX(imchatbox), awaybutton, TRUE, TRUE, 0);
1172
5c0e6410a272 [gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents: 1171
diff changeset
2558 gtk_container_border_width(GTK_CONTAINER(imchatbox), 5);
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2559
935
d772a17fe057 [gaim-migrate @ 945]
Ben Miller <millebe@cs.earlham.edu>
parents: 921
diff changeset
2560 gtk_signal_connect(GTK_OBJECT(imbutton), "clicked", GTK_SIGNAL_FUNC(im_callback), buddies);
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2561 gtk_signal_connect(GTK_OBJECT(infobutton), "clicked", GTK_SIGNAL_FUNC(info_callback), buddies);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2562 gtk_signal_connect(GTK_OBJECT(chatbutton), "clicked", GTK_SIGNAL_FUNC(chat_callback), buddies);
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
2563 gtk_signal_connect(GTK_OBJECT(awaybutton), "clicked", GTK_SIGNAL_FUNC(away_callback), buddies);
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2564
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2565 gtk_tooltips_set_tip(tips,infobutton, _("Information on selected Buddy"), "Penguin");
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2566 gtk_tooltips_set_tip(tips,imbutton, _("Send Instant Message"), "Penguin");
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2567 gtk_tooltips_set_tip(tips,chatbutton, _("Start/join a Buddy Chat"), "Penguin");
1929
0b18211e20a6 [gaim-migrate @ 1939]
Stephan Dittmann
parents: 1918
diff changeset
2568 gtk_tooltips_set_tip(tips,awaybutton, _("Activate Away Message"), "Penguin");
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2569
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2570 gtk_box_pack_start(GTK_BOX(buddypane), imchatbox, FALSE, FALSE, 0);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2571
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2572 gtk_widget_show(imchatbox);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2573 } else {
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2574 if (imchatbox)
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2575 gtk_widget_destroy(imchatbox);
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2576 imchatbox = NULL;
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2577 }
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2578 }
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2579
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2580
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2581
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2582 void show_buddy_list()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2583 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2584
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2585 /* Build the buddy list, based on *config */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2586
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2587 GtkWidget *sw;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2588 GtkWidget *menu;
798
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2589 #ifdef USE_PERL
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2590 GtkWidget *perlmenu;
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2591 #endif
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2592 #ifdef NO_MULTI
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2593 GtkWidget *setmenu;
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2594 GtkWidget *findmenu;
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2595 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2596 GtkWidget *menubar;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2597 GtkWidget *vbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2598 GtkWidget *menuitem;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2599 GtkWidget *notebook;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2600 GtkWidget *label;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2601 GtkWidget *bbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2602 GtkWidget *tbox;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2603
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
2604 if (blist) {
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
2605 gtk_widget_show(blist);
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
2606 return;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
2607 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 945
diff changeset
2608
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2609
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2610 #ifdef USE_APPLET
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2611 blist = gtk_window_new(GTK_WINDOW_DIALOG);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2612 #else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2613 blist = gtk_window_new(GTK_WINDOW_TOPLEVEL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2614 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2615
905
7a2da3bc1ebe [gaim-migrate @ 915]
Rob Flynn <gaim@robflynn.com>
parents: 903
diff changeset
2616 gtk_window_set_wmclass(GTK_WINDOW(blist), "buddy_list", "Gaim" );
7a2da3bc1ebe [gaim-migrate @ 915]
Rob Flynn <gaim@robflynn.com>
parents: 903
diff changeset
2617
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2618 gtk_widget_realize(blist);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2619 aol_icon(blist->window);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2620
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2621 gtk_window_set_policy(GTK_WINDOW(blist), TRUE, TRUE, TRUE);
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2622
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2623 accel = gtk_accel_group_new();
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2624 gtk_accel_group_attach(accel, GTK_OBJECT(blist));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2625
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2626 menubar = gtk_menu_bar_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2627
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2628 menu = gtk_menu_new();
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2629 gtk_menu_set_accel_group(GTK_MENU(menu), accel);
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2630
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2631
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2632 menuitem = gaim_new_item(NULL, _("File"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2633 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2634 gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2635
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2636 gaim_new_item_with_pixmap(menu, _("Add A Buddy"), add_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2637 GTK_SIGNAL_FUNC(add_buddy_callback), 'b', GDK_CONTROL_MASK, "Ctl+B");
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2638 gaim_new_item_with_pixmap(menu, _("Join A Chat"), pounce_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2639 GTK_SIGNAL_FUNC(chat_callback), 'c', GDK_CONTROL_MASK, "Ctl+C");
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2640 gaim_new_item_with_pixmap(menu, _("New Instant Message"), send_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2641 GTK_SIGNAL_FUNC(show_im_dialog), 'i', GDK_CONTROL_MASK, "Ctl+I");
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2642
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2643 gaim_separator(menu);
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2644
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2645 gaim_new_item_with_pixmap(menu, _("Import Buddy List"), import_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2646 GTK_SIGNAL_FUNC(import_callback), 0, 0, 0);
1805
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
2647 /*gaim_new_item_with_pixmap(menu, _("Export Buddy List"), export_small_xpm,
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
2648 GTK_SIGNAL_FUNC(show_export_dialog), 0, 0, 0);*/
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2649 gaim_separator(menu);
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2650 gaim_new_item_with_pixmap(menu, _("Signoff"), logout_icon_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2651 GTK_SIGNAL_FUNC(signoff_all), 'd', GDK_CONTROL_MASK, "Ctl+D");
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2652
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2653 #ifndef USE_APPLET
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2654 gaim_new_item_with_pixmap(menu, _("Quit"), exit_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2655 GTK_SIGNAL_FUNC(do_quit), 'q', GDK_CONTROL_MASK, "Ctl+Q");
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2656 #else
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2657 gaim_new_item_with_pixmap(menu, _("Close"), close_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2658 GTK_SIGNAL_FUNC(applet_destroy_buddy), 'x', GDK_CONTROL_MASK, "Ctl+X");
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2659 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2660
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2661 menu = gtk_menu_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2662
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2663 menuitem = gaim_new_item(NULL, _("Tools"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2664 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2665 gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2666
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2667 awaymenu = gtk_menu_new();
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2668 menuitem = gaim_new_item_with_pixmap(menu, _("Away"), away_small_xpm, NULL, 0, 0, 0);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2669 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), awaymenu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2670 do_away_menu();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2671
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2672 bpmenu = gtk_menu_new();
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2673 menuitem = gaim_new_item_with_pixmap(menu, _("Buddy Pounce"), pounce_small_xpm, NULL, 0, 0, 0);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2674 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), bpmenu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2675 do_bp_menu();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2676
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2677 gaim_separator(menu);
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2678
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2679 #ifdef NO_MULTI
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2680 findmenu = gtk_menu_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2681 gtk_widget_show(findmenu);
1880
eb37a5e57e9c [gaim-migrate @ 1890]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1874
diff changeset
2682 menuitem = gaim_new_item_with_pixmap(menu, _("Search for Buddy"), search_small_xpm,
eb37a5e57e9c [gaim-migrate @ 1890]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1874
diff changeset
2683 NULL, 0, 0, 0);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2684 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), findmenu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2685 gtk_widget_show(menuitem);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2686 menuitem = gtk_menu_item_new_with_label(_("by Email"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2687 gtk_menu_append(GTK_MENU(findmenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2688 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(show_find_email), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2689 gtk_widget_show(menuitem);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2690 menuitem = gtk_menu_item_new_with_label(_("by Dir Info"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2691 gtk_menu_append(GTK_MENU(findmenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2692 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(show_find_info), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2693 gtk_widget_show(menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2694
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2695 setmenu = gtk_menu_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2696 gtk_widget_show(setmenu);
1880
eb37a5e57e9c [gaim-migrate @ 1890]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1874
diff changeset
2697 menuitem = gaim_new_item_with_pixmap(menu, _("Settings"), prefs_small_xpm, NULL, 0, 0, 0);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2698 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), setmenu);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2699 menuitem = gtk_menu_item_new_with_label(_("User Info"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2700 gtk_menu_append(GTK_MENU(setmenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2701 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(show_set_info), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2702 gtk_widget_show(menuitem);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2703 menuitem = gtk_menu_item_new_with_label(_("Directory Info"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2704 gtk_menu_append(GTK_MENU(setmenu), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2705 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(show_set_dir), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2706 gtk_widget_show(menuitem);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2707 menuitem = gtk_menu_item_new_with_label(_("Change Password"));
146
d28179fcbf06 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 139
diff changeset
2708 gtk_menu_append(GTK_MENU(setmenu), menuitem);
d28179fcbf06 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 139
diff changeset
2709 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(show_change_passwd), NULL);
d28179fcbf06 [gaim-migrate @ 156]
Rob Flynn <gaim@robflynn.com>
parents: 139
diff changeset
2710 gtk_widget_show(menuitem);
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2711 #else
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2712 gaim_new_item_with_pixmap(menu, _("Accounts"), add_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2713 GTK_SIGNAL_FUNC(account_editor), 'a', GDK_CONTROL_MASK, "Ctl+A");
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2714
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2715 protomenu = gtk_menu_new();
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2716 menuitem = gaim_new_item_with_pixmap(menu, _("Protocol Actions"), prefs_small_xpm, NULL, 0, 0, 0);
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2717 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), protomenu);
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2718 do_proto_menu();
991
2f415c128b8e [gaim-migrate @ 1001]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 980
diff changeset
2719 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2720
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2721 gaim_new_item_with_pixmap(menu, _("Preferences"), prefs_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2722 GTK_SIGNAL_FUNC(show_prefs), 'p', GDK_CONTROL_MASK, "Ctl+P");
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2723 gaim_new_item_with_pixmap(menu, _("View System Log"), prefs_small_xpm,
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2724 GTK_SIGNAL_FUNC(show_syslog), 0, 0, 0);
90
6a145e05be78 [gaim-migrate @ 100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 87
diff changeset
2725
1499
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2726 gaim_separator(menu);
0c3286729687 [gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1496
diff changeset
2727
152
0518f66fd469 [gaim-migrate @ 162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 150
diff changeset
2728 #ifdef GAIM_PLUGINS
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2729 gaim_new_item_with_pixmap(menu, _("Plugins"), plugins_small_xpm, GTK_SIGNAL_FUNC(show_plugins), 0, 0, 0);
152
0518f66fd469 [gaim-migrate @ 162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 150
diff changeset
2730 #endif
798
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2731 #ifdef USE_PERL
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2732 perlmenu = gtk_menu_new();
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2733 gtk_widget_show(perlmenu);
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2734 menuitem = gaim_new_item_with_pixmap(menu, _("Perl"), plugins_small_xpm, NULL, 0, 0, 0);
798
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2735 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), perlmenu);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2736 gtk_widget_show(menuitem);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2737 menuitem = gtk_menu_item_new_with_label(_("Load Script"));
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2738 gtk_menu_append(GTK_MENU(perlmenu), menuitem);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2739 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(load_perl_script), NULL);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2740 gtk_widget_show(menuitem);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2741 menuitem = gtk_menu_item_new_with_label(_("Unload All Scripts"));
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2742 gtk_menu_append(GTK_MENU(perlmenu), menuitem);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2743 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(unload_perl_scripts), NULL);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2744 gtk_widget_show(menuitem);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2745 menuitem = gtk_menu_item_new_with_label(_("List Scripts"));
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2746 gtk_menu_append(GTK_MENU(perlmenu), menuitem);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2747 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(list_perl_scripts), NULL);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2748 gtk_widget_show(menuitem);
a52440353c35 [gaim-migrate @ 808]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 784
diff changeset
2749 #endif
90
6a145e05be78 [gaim-migrate @ 100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 87
diff changeset
2750
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2751 menu = gtk_menu_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2752
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2753 menuitem = gaim_new_item(NULL, _("Help"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2754 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2755 gtk_menu_item_right_justify(GTK_MENU_ITEM(menuitem));
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2756 gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2757
1634
73a6ef5d2677 [gaim-migrate @ 1644]
baldnik
parents: 1625
diff changeset
2758 gaim_new_item_with_pixmap(menu, _("About Gaim"), about_small_xpm, show_about, GDK_F1, 0, NULL);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2759
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2760 gtk_widget_show(menubar);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2761
1625
1e552c933e3f [gaim-migrate @ 1635]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1594
diff changeset
2762 vbox = gtk_vbox_new(FALSE, 0);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2763
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2764 notebook = gtk_notebook_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2765
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2766
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2767
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2768
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2769 /* Do buddy list stuff */
1172
5c0e6410a272 [gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents: 1171
diff changeset
2770 /* FIXME: spacing on both panes is ad hoc */
5c0e6410a272 [gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents: 1171
diff changeset
2771 buddypane = gtk_vbox_new(FALSE, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2772
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2773 buddies = gtk_tree_new();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2774 sw = gtk_scrolled_window_new(NULL, NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2775
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2776 tips = gtk_tooltips_new();
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2777 gtk_object_set_data(GTK_OBJECT(blist), _("Buddy List"), tips);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2778
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2779 /* Now the buddy list */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2780 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw),buddies);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2781 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2782 GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2783 gtk_widget_set_usize(sw,200,200);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2784 gtk_widget_show(buddies);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2785 gtk_widget_show(sw);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2786
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2787 gtk_box_pack_start(GTK_BOX(buddypane), sw, TRUE, TRUE, 0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2788 gtk_widget_show(buddypane);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2789
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2790 if (!(blist_options & OPT_BLIST_NO_BUTTONS))
696
2f66463f9bf6 [gaim-migrate @ 706]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 689
diff changeset
2791 build_imchat_box(TRUE);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2792
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2793
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2794 /* Swing the edit buddy */
1172
5c0e6410a272 [gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents: 1171
diff changeset
2795 editpane = gtk_vbox_new(FALSE, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2796
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2797 addbutton = gtk_button_new_with_label(_("Add"));
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
2798 groupbutton = gtk_button_new_with_label(_("Group"));
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2799 rembutton = gtk_button_new_with_label(_("Remove"));
535
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 515
diff changeset
2800
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2801 if (misc_options & OPT_MISC_COOL_LOOK) {
535
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 515
diff changeset
2802 gtk_button_set_relief(GTK_BUTTON(addbutton), GTK_RELIEF_NONE);
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
2803 gtk_button_set_relief(GTK_BUTTON(groupbutton), GTK_RELIEF_NONE);
535
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 515
diff changeset
2804 gtk_button_set_relief(GTK_BUTTON(rembutton), GTK_RELIEF_NONE);
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 515
diff changeset
2805 }
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 515
diff changeset
2806
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2807 edittree = gtk_ctree_new(1, 0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2808 gtk_ctree_set_line_style (GTK_CTREE(edittree), GTK_CTREE_LINES_SOLID);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2809 gtk_ctree_set_expander_style(GTK_CTREE(edittree), GTK_CTREE_EXPANDER_SQUARE);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2810 gtk_clist_set_reorderable(GTK_CLIST(edittree), TRUE);
1391
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
2811 gtk_signal_connect(GTK_OBJECT(edittree), "button_press_event",
e6e7f3bf1e81 [gaim-migrate @ 1401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
2812 GTK_SIGNAL_FUNC(click_edit_tree), NULL);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2813
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2814 gtk_ctree_set_drag_compare_func (GTK_CTREE(edittree),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2815 (GtkCTreeCompareDragFunc)edit_drag_compare_func);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2816
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2817
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2818 gtk_signal_connect_after (GTK_OBJECT (edittree), "tree_move",
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2819 GTK_SIGNAL_FUNC (edit_tree_move), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2820
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2821
1172
5c0e6410a272 [gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents: 1171
diff changeset
2822 bbox = gtk_hbox_new(TRUE, 5);
5c0e6410a272 [gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents: 1171
diff changeset
2823 gtk_container_set_border_width(GTK_CONTAINER(bbox), 5);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2824 tbox = gtk_scrolled_window_new(NULL, NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2825 /* Put the buttons in the box */
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
2826 gtk_box_pack_start(GTK_BOX(bbox), addbutton, TRUE, TRUE, 0);
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
2827 gtk_box_pack_start(GTK_BOX(bbox), groupbutton, TRUE, TRUE, 0);
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
2828 gtk_box_pack_start(GTK_BOX(bbox), rembutton, TRUE, TRUE, 0);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2829
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2830 gtk_tooltips_set_tip(tips, addbutton, _("Add a new Buddy"), "Penguin");
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
2831 gtk_tooltips_set_tip(tips, groupbutton, _("Add a new Group"), "Penguin");
2134
bd7ece3a92f4 [gaim-migrate @ 2144]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2132
diff changeset
2832 gtk_tooltips_set_tip(tips, rembutton, _("Remove selected Buddy/Group"), "Penguin");
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2833
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2834 /* And the boxes in the box */
1172
5c0e6410a272 [gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents: 1171
diff changeset
2835 gtk_box_pack_start(GTK_BOX(editpane), tbox, TRUE, TRUE, 0);
5c0e6410a272 [gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents: 1171
diff changeset
2836 gtk_box_pack_start(GTK_BOX(editpane), bbox, FALSE, FALSE, 0);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2837
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2838 /* Handle closes right */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2839
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2840
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2841
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2842 /* Finish up */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2843 gtk_widget_show(addbutton);
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
2844 gtk_widget_show(groupbutton);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2845 gtk_widget_show(rembutton);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2846 gtk_widget_show(edittree);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2847 gtk_widget_show(tbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2848 gtk_widget_show(bbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2849 gtk_widget_show(editpane);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2850
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2851
535
468607aeb8b4 [gaim-migrate @ 545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 515
diff changeset
2852
703
d55e4a24e0e2 [gaim-migrate @ 713]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 700
diff changeset
2853 update_button_pix();
d55e4a24e0e2 [gaim-migrate @ 713]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 700
diff changeset
2854
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2855
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2856
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2857 label = gtk_label_new(_("Online"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2858 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), buddypane, label);
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2859 label = gtk_label_new(_("Edit Buddies"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2860 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), editpane, label);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2861
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2862 gtk_widget_show_all(notebook);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2863
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2864 /* Pack things in the vbox */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2865 gtk_widget_show(vbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2866
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2867
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2868 gtk_widget_show(notebook);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2869
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2870 /* Enable buttons */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2871
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2872 gtk_signal_connect(GTK_OBJECT(rembutton), "clicked", GTK_SIGNAL_FUNC(do_del_buddy), edittree);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2873 gtk_signal_connect(GTK_OBJECT(addbutton), "clicked", GTK_SIGNAL_FUNC(add_buddy_callback), NULL);
577
0e317d0cfc2c [gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 544
diff changeset
2874 gtk_signal_connect(GTK_OBJECT(groupbutton), "clicked", GTK_SIGNAL_FUNC(add_group_callback), NULL);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2875 gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2876 gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2877
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2878 gtk_container_add(GTK_CONTAINER(blist), vbox);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2879
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2880 #ifndef USE_APPLET
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2881 gtk_signal_connect(GTK_OBJECT(blist), "delete_event", GTK_SIGNAL_FUNC(do_quit), blist);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2882 #else
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2883 gtk_signal_connect(GTK_OBJECT(blist), "delete_event", GTK_SIGNAL_FUNC(applet_destroy_buddy), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2884 #endif
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2885
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2886 gtk_signal_connect(GTK_OBJECT(blist), "configure_event", GTK_SIGNAL_FUNC(move_blist_window), NULL);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2887
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2888
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2889
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2890 /* The edit tree */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2891 gtk_container_add(GTK_CONTAINER(tbox), edittree);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2892 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tbox),
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2893 GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2894
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2895
350
b02a56431923 [gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 349
diff changeset
2896 gtk_window_set_title(GTK_WINDOW(blist), _("Gaim - Buddy List"));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2897
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2281
diff changeset
2898 if (blist_options & OPT_BLIST_SAVED_WINDOWS) {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2899 if (blist_pos.width != 0) { /* Sanity check! */
1420
8aeea0905edb [gaim-migrate @ 1430]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1413
diff changeset
2900 gtk_widget_set_uposition(blist, blist_pos.x - blist_pos.xoff,
8aeea0905edb [gaim-migrate @ 1430]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1413
diff changeset
2901 blist_pos.y - blist_pos.yoff);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2902 gtk_widget_set_usize(blist, blist_pos.width, blist_pos.height);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2903 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2904 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2905 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2906
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2907 void refresh_buddy_window()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2908 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2909 build_edit_tree();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2910
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2911 update_button_pix();
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2912 gtk_widget_show(blist);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2913 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2914
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2915 void parse_toc_buddy_list(struct gaim_connection *gc, char *config, int from_do_import)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2916 {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2917 char *c;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2918 char current[256];
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2919 char *name;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2920 GList *bud;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2921 int how_many = 0;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2922
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2923 bud = NULL;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2924
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2925 if (config != NULL) {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2926
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2927 /* skip "CONFIG:" (if it exists) */
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2928 c = strncmp(config + 6 /* sizeof(struct sflap_hdr) */, "CONFIG:", strlen("CONFIG:")) ?
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2929 strtok(config, "\n") :
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2930 strtok(config + 6 /* sizeof(struct sflap_hdr) */ + strlen("CONFIG:"), "\n");
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2931 do {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2932 if (c == NULL)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2933 break;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2934 if (*c == 'g') {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2935 strncpy(current, c + 2, sizeof(current));
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2936 add_group(gc, current);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2937 how_many++;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2938 } else if (*c == 'b' && !find_buddy(gc, c + 2)) {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2939 char nm[80], sw[80], *tmp = c + 2;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2940 int i = 0;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2941 while (*tmp != ':' && *tmp)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2942 nm[i++] = *tmp++;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2943 if (*tmp == ':')
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2944 *tmp++ = '\0';
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2945 nm[i] = '\0';
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2946 i = 0;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2947 while (*tmp)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2948 sw[i++] = *tmp++;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2949 sw[i] = '\0';
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2950 if (!find_buddy(gc, nm))
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2951 add_buddy(gc, current, nm, sw);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2952 how_many++;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2953
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2954 bud = g_list_append(bud, c + 2);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2955 } else if (*c == 'p') {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2956 GSList *d = gc->permit;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2957 char *n;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2958 name = g_malloc(strlen(c + 2) + 2);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2959 g_snprintf(name, strlen(c + 2) + 1, "%s", c + 2);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2960 n = g_strdup(normalize(name));
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2961 while (d) {
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
2962 if (!g_strcasecmp(n, normalize(d->data)))
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2963 break;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2964 d = d->next;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2965 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2966 g_free(n);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2967 if (!d)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2968 gc->permit = g_slist_append(gc->permit, name);
1794
33dc9bab4716 [gaim-migrate @ 1804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1764
diff changeset
2969 else
33dc9bab4716 [gaim-migrate @ 1804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1764
diff changeset
2970 g_free(name);
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2971 } else if (*c == 'd') {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2972 GSList *d = gc->deny;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2973 char *n;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2974 name = g_malloc(strlen(c + 2) + 2);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2975 g_snprintf(name, strlen(c + 2) + 1, "%s", c + 2);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2976 n = g_strdup(normalize(name));
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2977 while (d) {
2048
4ac8b9622c9e [gaim-migrate @ 2058]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
2978 if (!g_strcasecmp(n, normalize(d->data)))
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2979 break;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2980 d = d->next;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2981 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2982 g_free(n);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2983 if (!d)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2984 gc->deny = g_slist_append(gc->deny, name);
1794
33dc9bab4716 [gaim-migrate @ 1804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1764
diff changeset
2985 else
33dc9bab4716 [gaim-migrate @ 1804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1764
diff changeset
2986 g_free(name);
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2987 } else if (!strncmp("toc", c, 3)) {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2988 sscanf(c + strlen(c) - 1, "%d", &gc->permdeny);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2989 debug_printf("permdeny: %d\n", gc->permdeny);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2990 if (gc->permdeny == 0)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2991 gc->permdeny = 1;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2992 } else if (*c == 'm') {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2993 sscanf(c + 2, "%d", &gc->permdeny);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2994 debug_printf("permdeny: %d\n", gc->permdeny);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2995 if (gc->permdeny == 0)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2996 gc->permdeny = 1;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2997 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
2998 } while ((c = strtok(NULL, "\n")));
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2275
diff changeset
2999
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2275
diff changeset
3000 if (bud != NULL) {
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3001 serv_add_buddies(gc, bud);
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2275
diff changeset
3002 g_list_free(bud);
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2275
diff changeset
3003 }
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3004 serv_set_permit_deny(gc);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3005 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3006
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3007 /* perhaps the server dropped the buddy list, try importing from
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3008 cache */
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3009
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3010 if (how_many == 0 && !from_do_import) {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3011 do_import((GtkWidget *)NULL, gc);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3012 } else if (gc && (bud_list_cache_exists(gc) == FALSE)) {
1805
c2aeee08d50e [gaim-migrate @ 1815]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1794
diff changeset
3013 do_export(gc);
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3014 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3015 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3016
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3017 void toc_build_config(struct gaim_connection *gc, char *s, int len, gboolean show)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3018 {
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3019 GSList *grp = gc->groups;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3020 GSList *mem;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3021 struct group *g;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3022 struct buddy *b;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3023 GSList *plist = gc->permit;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3024 GSList *dlist = gc->deny;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3025
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3026 int pos = 0;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3027
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3028 if (!gc->permdeny)
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3029 gc->permdeny = 1;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3030
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3031 pos += g_snprintf(&s[pos], len - pos, "m %d\n", gc->permdeny);
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2275
diff changeset
3032 while (len > pos && grp) {
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3033 g = (struct group *)grp->data;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3034 pos += g_snprintf(&s[pos], len - pos, "g %s\n", g->name);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3035 mem = g->members;
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2275
diff changeset
3036 while (len > pos && mem) {
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3037 b = (struct buddy *)mem->data;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3038 pos += g_snprintf(&s[pos], len - pos, "b %s%s%s\n", b->name,
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1880
diff changeset
3039 (show && strcmp(b->name, b->show)) ? ":" : "",
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1880
diff changeset
3040 (show && strcmp(b->name, b->show)) ? b->show : "");
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3041 mem = mem->next;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3042 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3043 grp = g_slist_next(grp);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3044 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3045
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2275
diff changeset
3046 while (len > pos && plist) {
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3047 pos += g_snprintf(&s[pos], len - pos, "p %s\n", (char *)plist->data);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3048 plist = plist->next;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3049 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3050
2281
6f60b7fe3381 [gaim-migrate @ 2291]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2275
diff changeset
3051 while (len > pos && dlist) {
1333
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3052 pos += g_snprintf(&s[pos], len - pos, "d %s\n", (char *)dlist->data);
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3053 dlist = dlist->next;
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3054 }
bbd54f86976f [gaim-migrate @ 1343]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1310
diff changeset
3055 }

mercurial