src/buddy.c

Sat, 08 Dec 2001 09:48:52 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Sat, 08 Dec 2001 09:48:52 +0000
changeset 2856
046ed5e89321
parent 2824
e95a1b97a4f1
child 2883
6b8277f43e9a
permissions
-rw-r--r--

[gaim-migrate @ 2869]
rewrote the html parser in gtkimhtml. yes, that's really all i did. the reason for the massive change is because i added a length argument, which then needed to be propogated down to everything that would ever receive anything that would get drawn to the window.

the new parser isn't any faster. that wasn't my goal. it's much more understandable now (hopefully, anyway).

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

mercurial