Mercurial > pidgin
annotate src/buddy.c @ 4064:b188b93ebf48
[gaim-migrate @ 4274]
(23:01:14) LSchiere: okay, this patch fixes at least some of the problems saving sound, away, and font preferences. it makes spin buttons and entry
widgets save prefs on loss of focus or dialog close instead of on change.
(23:01:17) LSchiere: anything else it does?
(23:01:44) faceprint: it makes nothing save unless you hit close. however, everything saves when you hit close.
(23:02:06) LSchiere: they still apply before close?
(23:02:09) faceprint: it should right most of the wrongs of prefs
(23:02:25) faceprint: they apply before close, but aren't written to disk every time you check or uncheck a checkbox or something
(23:02:27) Paco-Paco: it looks OK
committer: Tailor Script <tailor@pidgin.im>
| author | Luke Schierer <lschiere@pidgin.im> |
|---|---|
| date | Thu, 12 Dec 2002 04:03:53 +0000 |
| parents | 3bc436a24548 |
| children | 3ccbdf8e7f8d |
| rev | line source |
|---|---|
| 1 | 1 /* |
| 2 * gaim | |
| 3 * | |
| 4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or modify | |
| 7 * it under the terms of the GNU General Public License as published by | |
| 8 * the Free Software Foundation; either version 2 of the License, or | |
| 9 * (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, | |
| 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 * GNU General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 * | |
| 20 */ | |
| 21 | |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
342
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
|
2090
b66aca8e8dce
[gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2048
diff
changeset
|
23 #include <config.h> |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
342
diff
changeset
|
24 #endif |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
25 #ifdef GAIM_PLUGINS |
| 3630 | 26 #ifndef _WIN32 |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
27 #include <dlfcn.h> |
| 3630 | 28 #endif |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
29 #endif /* GAIM_PLUGINS */ |
| 1 | 30 #include <string.h> |
| 31 #include <stdio.h> | |
| 32 #include <stdlib.h> | |
| 3159 | 33 #include <ctype.h> |
| 1 | 34 #include <math.h> |
| 35 #include <time.h> | |
| 3630 | 36 #include <ctype.h> |
| 37 | |
| 38 #ifdef _WIN32 | |
| 39 #include <gdk/gdkwin32.h> | |
| 40 #else | |
|
1233
728a90516211
[gaim-migrate @ 1243]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1230
diff
changeset
|
41 #include <unistd.h> |
| 3630 | 42 #include <gdk/gdkx.h> |
| 43 #endif | |
| 1 | 44 |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
45 #include <gdk/gdkkeysyms.h> |
| 1 | 46 #include <gtk/gtk.h> |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
47 #include "prpl.h" |
| 1 | 48 #include "gaim.h" |
| 3630 | 49 |
| 50 #ifdef _WIN32 | |
| 51 #include "win32dep.h" | |
| 52 #endif | |
| 53 | |
| 1 | 54 #include "pixmaps/login_icon.xpm" |
| 55 #include "pixmaps/logout_icon.xpm" | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
56 #include "pixmaps/no_icon.xpm" |
| 1 | 57 |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
58 #include "pixmaps/away_big.xpm" |
| 1 | 59 |
| 875 | 60 #include "pixmaps/group.xpm" |
| 820 | 61 |
| 3131 | 62 #include "pixmaps/arrow_down.xpm" |
| 63 #include "pixmaps/arrow_right.xpm" | |
| 64 | |
| 1 | 65 static GtkTooltips *tips; |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
66 static GtkAccelGroup *accel; |
| 1 | 67 static GtkWidget *editpane; |
| 68 static GtkWidget *buddypane; | |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
69 static GtkWidget *imchatbox; |
| 1 | 70 static GtkWidget *edittree; |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
71 static GtkWidget *imbutton, *infobutton, *chatbutton, *awaybutton; |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
544
diff
changeset
|
72 static GtkWidget *addbutton, *groupbutton, *rembutton; |
| 1 | 73 |
| 74 GtkWidget *blist = NULL; | |
| 75 GtkWidget *bpmenu; | |
| 76 GtkWidget *buddies; | |
| 77 | |
| 3131 | 78 typedef struct _GtkTreePixmaps GtkTreePixmaps; |
| 79 | |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
80 struct buddy_show { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
81 GtkWidget *item; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
82 GtkWidget *pix; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
83 GtkWidget *label; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
84 GtkWidget *warn; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
85 GtkWidget *idle; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
86 char *name; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
87 char *show; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
88 GSList *connlist; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
89 guint log_timer; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
90 gint sound; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
91 }; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
92 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
93 /* stuff for actual display of buddy list */ |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
94 struct group_show { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
95 GtkWidget *item; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
96 GtkWidget *label; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
97 GtkWidget *tree; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
98 GSList *members; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
99 char *name; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
100 }; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
101 static GSList *shows = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
102 |
| 3524 | 103 int docklet_count = 0; |
| 3939 | 104 static gboolean obscured = FALSE; |
| 3472 | 105 |
| 2564 | 106 /* Predefine some functions */ |
|
2569
a714b8223228
[gaim-migrate @ 2582]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2564
diff
changeset
|
107 static void new_bp_callback(GtkWidget *w, struct buddy *bs); |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
108 static struct group_show *find_group_show(char *group); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
109 static struct buddy_show *find_buddy_show(struct group_show *gs, char *name); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
110 static int group_number(char *group); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
111 static int buddy_number(char *group, char *buddy); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
112 static struct group_show *new_group_show(char *group); |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
113 static struct buddy_show *new_buddy_show(struct group_show *gs, struct buddy *buddy, char **xpm); |
|
1108
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
114 static void remove_buddy_show(struct group_show *gs, struct buddy_show *bs); |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
115 static struct group_show *find_gs_by_bs(struct buddy_show *b); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
116 static void update_num_group(struct group_show *gs); |
|
2624
4d5c2c913750
[gaim-migrate @ 2637]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
117 static void update_idle_time(struct buddy_show *bs); |
| 1 | 118 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
119 void handle_group_rename(struct group *g, char *prevname) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
120 { |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
121 struct group_show *gs, *new_gs; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
122 struct buddy_show *bs; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
123 struct buddy *b; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
124 GSList *m; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
125 GtkCTreeNode *c; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
126 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
127 c = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, g); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
128 gtk_ctree_node_set_text(GTK_CTREE(edittree), c, 0, g->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
129 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
130 gs = find_group_show(prevname); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
131 if (!gs) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
132 return; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
133 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
134 new_gs = find_group_show(g->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
135 if (new_gs) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
136 /* transfer everything that was in gs and is in the same gaim_conn as g |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
137 * over to new_gs. */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
138 m = gs->members; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
139 while (m) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
140 bs = (struct buddy_show *)m->data; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
141 if (g_slist_index(bs->connlist, g->gc) >= 0) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
142 b = find_buddy(g->gc, bs->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
143 m = g_slist_next(m); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
144 bs->connlist = g_slist_remove(bs->connlist, g->gc); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
145 if (!bs->connlist) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
146 gs->members = g_slist_remove(gs->members, bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
147 if (bs->log_timer > 0) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
148 gtk_timeout_remove(bs->log_timer); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
149 bs->log_timer = 0; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
150 remove_buddy_show(gs, bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
151 g_free(bs->show); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
152 g_free(bs->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
153 g_free(bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
154 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
155 if ((bs = find_buddy_show(new_gs, b->name)) == NULL) { |
|
2433
cac432940fb8
[gaim-migrate @ 2446]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2393
diff
changeset
|
156 if (g->gc->prpl->list_icon) { |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
157 bs = new_buddy_show(new_gs, b, |
|
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2641
diff
changeset
|
158 g->gc->prpl->list_icon(b->uc)); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
159 } else { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
160 bs = new_buddy_show(new_gs, b, (char **)no_icon_xpm); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
161 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
162 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
163 bs->connlist = g_slist_append(bs->connlist, g->gc); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
164 } else { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
165 m = g_slist_next(m); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
166 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
167 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
168 if (!gs->members) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
169 /* we just transferred all of the members out of this group_show, |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
170 * so this group_show serves no purpose now. */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
171 shows = g_slist_remove(shows, gs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
172 gtk_tree_remove_item(GTK_TREE(buddies), gs->item); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
173 g_free(gs->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
174 g_free(gs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
175 } else { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
176 update_num_group(gs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
177 } |
|
1748
2eec724fdbcd
[gaim-migrate @ 1758]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1739
diff
changeset
|
178 update_num_group(new_gs); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
179 } else { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
180 /* two possible actions: if gs contains things that are only from g, |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
181 * just rename gs and fix the label. otherwise, move everything in g |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
182 * over to another group_show */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
183 for (m = gs->members; m != NULL; m = g_slist_next(m)) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
184 bs = (struct buddy_show *)m->data; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
185 if (g_slist_index(bs->connlist, g->gc) < 0 || g_slist_length(bs->connlist) > 1) { |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
186 break; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
187 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
188 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
189 if (m) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
190 /* there's something from a different gaim_connection. */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
191 new_gs = new_group_show(g->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
192 m = gs->members; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
193 while (m) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
194 bs = (struct buddy_show *)m->data; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
195 if (g_slist_index(bs->connlist, g->gc) >= 0) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
196 b = find_buddy(g->gc, bs->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
197 m = g_slist_next(m); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
198 bs->connlist = g_slist_remove(bs->connlist, g->gc); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
199 if (!bs->connlist) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
200 gs->members = g_slist_remove(gs->members, bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
201 if (bs->log_timer > 0) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
202 gtk_timeout_remove(bs->log_timer); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
203 bs->log_timer = 0; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
204 remove_buddy_show(gs, bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
205 g_free(bs->show); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
206 g_free(bs->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
207 g_free(bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
208 } |
|
2433
cac432940fb8
[gaim-migrate @ 2446]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2393
diff
changeset
|
209 if (g->gc->prpl->list_icon) { |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
210 bs = new_buddy_show(new_gs, b, |
|
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2641
diff
changeset
|
211 g->gc->prpl->list_icon(b->uc)); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
212 } else { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
213 bs = new_buddy_show(new_gs, b, (char **)no_icon_xpm); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
214 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
215 bs->connlist = g_slist_append(NULL, g->gc); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
216 } else { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
217 m = g_slist_next(m); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
218 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
219 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
220 update_num_group(gs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
221 update_num_group(new_gs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
222 } else { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
223 g_free(gs->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
224 gs->name = g_strdup(g->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
225 update_num_group(gs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
226 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
227 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
228 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
229 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
230 void handle_buddy_rename(struct buddy *b, char *prevname) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
231 { |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2780
diff
changeset
|
232 struct conversation *cnv; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
233 struct buddy_show *bs; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
234 struct group_show *gs; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
235 struct group *g; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
236 GtkCTreeNode *c; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
237 char buf[256]; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
238 |
|
2824
2c39e70dd07c
[gaim-migrate @ 2837]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2787
diff
changeset
|
239 if (!strcmp(b->show, prevname)) |
|
2c39e70dd07c
[gaim-migrate @ 2837]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2787
diff
changeset
|
240 g_snprintf(b->show, sizeof(b->show), "%s", b->name); |
|
2c39e70dd07c
[gaim-migrate @ 2837]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2787
diff
changeset
|
241 |
|
2607
e0d4a23aac89
[gaim-migrate @ 2620]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2606
diff
changeset
|
242 /* well you shouldn't be calling this if nothing changed. duh. */ |
|
e0d4a23aac89
[gaim-migrate @ 2620]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2606
diff
changeset
|
243 do_export(b->gc); |
|
e0d4a23aac89
[gaim-migrate @ 2620]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2606
diff
changeset
|
244 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
245 c = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, b); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
246 if (strcmp(b->show, b->name)) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
247 g_snprintf(buf, sizeof(buf), "%s (%s)", b->name, b->show); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
248 else |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
249 g_snprintf(buf, sizeof(buf), "%s", b->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
250 gtk_ctree_node_set_text(GTK_CTREE(edittree), c, 0, buf); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
251 |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2780
diff
changeset
|
252 if ((cnv = find_conversation(b->name)) != NULL) |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2780
diff
changeset
|
253 set_convo_title(cnv); |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2780
diff
changeset
|
254 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
255 gs = find_group_show(prevname); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
256 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
257 g = find_group_by_buddy(b->gc, b->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
258 if (!g) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
259 /* shouldn't happen */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
260 return; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
261 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
262 gs = find_group_show(g->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
263 if (!gs) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
264 return; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
265 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
266 bs = find_buddy_show(gs, prevname); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
267 if (!bs) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
268 /* buddy's offline */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
269 return; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
270 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
271 |
|
2275
f7bf34a3b535
[gaim-migrate @ 2285]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2255
diff
changeset
|
272 if (g_strcasecmp(b->name, prevname)) { |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
273 bs->connlist = g_slist_remove(bs->connlist, b->gc); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
274 if (!bs->connlist) { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
275 gs->members = g_slist_remove(gs->members, bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
276 if (bs->log_timer > 0) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
277 gtk_timeout_remove(bs->log_timer); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
278 bs->log_timer = 0; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
279 remove_buddy_show(gs, bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
280 g_free(bs->show); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
281 g_free(bs->name); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
282 g_free(bs); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
283 } |
|
2778
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
284 update_num_group(gs); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
285 } else { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
286 gtk_label_set_text(GTK_LABEL(bs->label), b->show); |
|
2624
4d5c2c913750
[gaim-migrate @ 2637]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
287 update_idle_time(bs); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
288 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
289 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
290 |
| 1 | 291 void destroy_buddy() |
| 292 { | |
|
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
293 GSList *s = shows; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
294 struct group_show *g; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
295 GSList *m; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
296 struct buddy_show *b; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
297 while (s) { |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
298 g = (struct group_show *)s->data; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
299 debug_printf("group_show still exists: %s\n", g->name); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
300 m = g->members; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
301 while (m) { |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
302 b = (struct buddy_show *)m->data; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
303 debug_printf("buddy_show still exists: %s\n", b->name); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
304 m = g_slist_remove(m, b); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
305 if (b->log_timer > 0) |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
306 gtk_timeout_remove(b->log_timer); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
307 b->log_timer = 0; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
308 gtk_tree_remove_item(GTK_TREE(g->tree), b->item); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
309 g_free(b->show); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
310 g_free(b->name); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
311 g_free(b); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
312 } |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
313 gtk_tree_remove_item(GTK_TREE(buddies), g->item); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
314 s = g_slist_remove(s, g); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
315 g_free(g->name); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
316 g_free(g); |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
317 } |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
318 shows = NULL; |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
319 |
| 1 | 320 if (blist) |
| 321 gtk_widget_destroy(blist); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
322 blist = NULL; |
|
700
d904bf694bd7
[gaim-migrate @ 710]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
696
diff
changeset
|
323 imchatbox = NULL; |
|
1544
f7bef430ccd1
[gaim-migrate @ 1554]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1509
diff
changeset
|
324 awaymenu = NULL; |
|
f7bef430ccd1
[gaim-migrate @ 1554]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1509
diff
changeset
|
325 protomenu = NULL; |
| 1 | 326 } |
| 327 | |
| 328 static void adjust_pic(GtkWidget *button, const char *c, gchar **xpm) | |
| 329 { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
330 GdkPixmap *pm; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
331 GdkBitmap *bm; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
332 GtkWidget *pic; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
333 GtkWidget *label; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
334 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
335 /*if the user had opted to put pictures on the buttons */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
336 if (blist_options & OPT_BLIST_SHOW_BUTTON_XPM && xpm) { |
| 820 | 337 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); |
| 1 | 338 pic = gtk_pixmap_new(pm, bm); |
| 339 gtk_widget_show(pic); | |
|
644
b3900e312d8e
[gaim-migrate @ 654]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
608
diff
changeset
|
340 gdk_pixmap_unref(pm); |
|
804
17def2bb9720
[gaim-migrate @ 814]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
803
diff
changeset
|
341 gdk_bitmap_unref(bm); |
| 1 | 342 label = GTK_BIN(button)->child; |
| 343 gtk_container_remove(GTK_CONTAINER(button), label); | |
| 344 gtk_container_add(GTK_CONTAINER(button), pic); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
345 } else { |
| 1 | 346 label = gtk_label_new(c); |
| 347 gtk_widget_show(label); | |
| 348 pic = GTK_BIN(button)->child; | |
| 349 gtk_container_remove(GTK_CONTAINER(button), pic); | |
| 350 gtk_container_add(GTK_CONTAINER(button), label); | |
| 351 } | |
| 352 | |
| 353 } | |
| 354 | |
| 3869 | 355 /* This will remain here until we phase out the others */ |
| 356 static void adjust_pic2(GtkWidget *button, const char *c, gchar *icon) | |
| 357 { | |
| 358 GtkWidget *pic; | |
| 359 GtkWidget *label; | |
| 360 | |
| 361 /*if the user had opted to put pictures on the buttons */ | |
| 362 if (blist_options & OPT_BLIST_SHOW_BUTTON_XPM && icon) { | |
| 363 label = GTK_BIN(button)->child; | |
| 364 gtk_container_remove(GTK_CONTAINER(button), label); | |
| 365 gtk_container_add(GTK_CONTAINER(button), gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON)); | |
| 366 gtk_widget_show_all(button); | |
| 367 } else { | |
| 368 label = gtk_label_new(c); | |
| 369 gtk_widget_show(label); | |
| 370 pic = GTK_BIN(button)->child; | |
| 371 gtk_container_remove(GTK_CONTAINER(button), pic); | |
| 372 gtk_container_add(GTK_CONTAINER(button), label); | |
| 373 } | |
| 374 | |
| 375 } | |
| 376 | |
| 1 | 377 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
378 void toggle_show_empty_groups() |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
379 { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
380 if (blist_options & OPT_BLIST_NO_MT_GRP) { |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
381 /* remove any group_shows with empty members */ |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
382 GSList *s = shows; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
383 struct group_show *g; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
384 |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
385 while (s) { |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
386 g = (struct group_show *)s->data; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
387 if (!g_slist_length(g->members)) { |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
388 shows = g_slist_remove(shows, g); |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
389 s = shows; |
|
1108
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
390 gtk_tree_remove_item(GTK_TREE(buddies), g->item); |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
391 g_free(g->name); |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
392 g_free(g); |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
393 } else |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
394 s = g_slist_next(s); |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
395 } |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
396 |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
397 } else { |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
398 /* put back all groups */ |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
399 GSList *c = connections; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
400 struct gaim_connection *gc; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
401 GSList *m; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
402 struct group *g; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
403 |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
404 while (c) { |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
405 gc = (struct gaim_connection *)c->data; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
406 m = gc->groups; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
407 while (m) { |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
408 g = (struct group *)m->data; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
409 m = g_slist_next(m); |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
410 if (!find_group_show(g->name)) |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
411 new_group_show(g->name); |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
412 } |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
413 c = g_slist_next(c); |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
414 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
415 |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
416 } |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
417 } |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
418 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
419 void toggle_buddy_pixmaps() |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
420 { |
|
1711
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
421 GSList *s = shows; |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
422 struct group_show *g; |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
423 GSList *m; |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
424 struct buddy_show *b; |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
425 |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
426 while (s) { |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
427 g = s->data; |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
428 m = g->members; |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
429 while (m) { |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
430 b = m->data; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
431 if (blist_options & OPT_BLIST_SHOW_PIXMAPS) |
|
1711
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
432 gtk_widget_show(b->pix); |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
433 else |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
434 gtk_widget_hide(b->pix); |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
435 m = m->next; |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
436 } |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
437 s = s->next; |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
438 } |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
439 } |
|
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
440 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
441 static void update_num_group(struct group_show *gs) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
442 { |
|
1070
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
443 GSList *c = connections; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
444 struct gaim_connection *gc; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
445 struct group *g; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
446 struct buddy_show *b; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
447 int total = 0, on = 0; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
448 char buf[256]; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
449 |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
450 if (!g_slist_find(shows, gs)) { |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
451 debug_printf("update_num_group called for unfound group_show %s\n", gs->name); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
452 return; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
453 } |
|
1085
8da0bf36fb99
[gaim-migrate @ 1095]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1083
diff
changeset
|
454 |
|
1070
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
455 while (c) { |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
456 gc = (struct gaim_connection *)c->data; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
457 g = find_group(gc, gs->name); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
458 if (g) { |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
459 total += g_slist_length(g->members); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
460 } |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
461 c = g_slist_next(c); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
462 } |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
463 |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
464 c = gs->members; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
465 while (c) { |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
466 b = (struct buddy_show *)c->data; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
467 on += g_slist_length(b->connlist); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
468 c = g_slist_next(c); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
469 } |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
470 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
471 if (blist_options & OPT_BLIST_SHOW_GRPNUM) |
|
1070
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
472 g_snprintf(buf, sizeof buf, "%s (%d/%d)", gs->name, on, total); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
473 else |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
474 g_snprintf(buf, sizeof buf, "%s", gs->name); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
475 |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
476 gtk_label_set_text(GTK_LABEL(gs->label), buf); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
477 } |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
478 |
|
2883
c12e3e66d54a
[gaim-migrate @ 2896]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
479 void update_num_groups(void) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
480 { |
|
1070
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
481 GSList *s = shows; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
482 struct group_show *g; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
483 |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
484 while (s) { |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
485 g = (struct group_show *)s->data; |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
486 update_num_group(g); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
487 s = g_slist_next(s); |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
488 } |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
489 } |
|
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
490 |
| 1 | 491 void update_button_pix() |
| 492 { | |
| 493 | |
| 3894 | 494 adjust_pic2(addbutton, _("Add"), GTK_STOCK_ADD); |
| 875 | 495 adjust_pic(groupbutton, _("Group"), (gchar **)group_xpm); |
| 3894 | 496 adjust_pic2(rembutton, _("Remove"), GTK_STOCK_REMOVE); |
| 875 | 497 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
498 if (!(blist_options & OPT_BLIST_NO_BUTTONS)) { |
| 1963 | 499 adjust_pic(awaybutton, _("Away"), (gchar **)away_big_xpm); |
| 3869 | 500 adjust_pic2(chatbutton, _("Chat"), GTK_STOCK_JUMP_TO); |
| 501 adjust_pic2(imbutton, _("IM"), GTK_STOCK_CONVERT); | |
| 502 adjust_pic2(infobutton, _("Info"), GTK_STOCK_FIND); | |
| 820 | 503 } |
|
544
53a85529d670
[gaim-migrate @ 554]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
535
diff
changeset
|
504 gtk_widget_hide(addbutton->parent); |
|
53a85529d670
[gaim-migrate @ 554]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
535
diff
changeset
|
505 gtk_widget_show(addbutton->parent); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
506 if (!(blist_options & OPT_BLIST_NO_BUTTONS)) { |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
507 gtk_widget_hide(chatbutton->parent); |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
508 gtk_widget_show(chatbutton->parent); |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
509 } |
| 820 | 510 } |
| 1 | 511 |
| 3032 | 512 void set_blist_tab() |
| 513 { | |
| 514 GtkWidget *blist_notebook; | |
| 3154 | 515 if (!buddypane) |
| 516 return; | |
| 517 | |
| 3032 | 518 blist_notebook = buddypane->parent; /* The "Online" Page */ |
| 519 | |
| 520 debug_printf("blist_options = %d\n", blist_options); | |
| 521 if((blist_options & OPT_BLIST_BOTTOM_TAB)) | |
| 522 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(blist_notebook), GTK_POS_BOTTOM); | |
| 523 else | |
| 524 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(blist_notebook), GTK_POS_TOP); | |
| 525 | |
| 526 } | |
| 1 | 527 |
| 528 | |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
529 static int handle_click_group(GtkWidget *widget, GdkEventButton *event, struct group *g) |
| 1 | 530 { |
| 531 if (event->type == GDK_2BUTTON_PRESS) { | |
| 532 if (GTK_TREE_ITEM(widget)->expanded) | |
| 533 gtk_tree_item_collapse(GTK_TREE_ITEM(widget)); | |
| 534 else | |
| 535 gtk_tree_item_expand(GTK_TREE_ITEM(widget)); | |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
536 return TRUE; |
| 1 | 537 } |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
538 |
|
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
539 return FALSE; |
| 1 | 540 } |
| 541 | |
|
1739
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
542 void pressed_im_bud(GtkWidget *widget, struct buddy *b) |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
543 { |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
544 struct conversation *c; |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
545 |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
546 c = find_conversation(b->name); |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
547 |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
548 if (c != NULL) { |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
549 gdk_window_show(c->window->window); |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
550 } else { |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
551 c = new_conversation(b->name); |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
552 |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1881
diff
changeset
|
553 set_convo_gc(c, b->gc); |
|
1739
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
554 } |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
555 } |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
556 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
557 void pressed_im(GtkWidget *widget, struct buddy_show *b) |
| 1 | 558 { |
| 559 struct conversation *c; | |
| 560 | |
| 561 c = find_conversation(b->name); | |
| 562 | |
| 563 if (c != NULL) { | |
| 87 | 564 gdk_window_show(c->window->window); |
| 1 | 565 } else { |
| 566 c = new_conversation(b->name); | |
|
1150
aa3dda7fc352
[gaim-migrate @ 1160]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1138
diff
changeset
|
567 |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1881
diff
changeset
|
568 set_convo_gc(c, b->connlist->data); |
| 1 | 569 } |
| 570 } | |
| 571 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
572 void pressed_log(GtkWidget *widget, char *name) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
573 { |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
574 show_log(name); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
575 } |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
576 |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
577 void show_syslog() |
|
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
578 { |
|
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
579 show_log(NULL); |
|
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
580 } |
|
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
581 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
582 void pressed_alias_bs(GtkWidget *widget, struct buddy_show *bs) |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
703
diff
changeset
|
583 { |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
584 alias_dialog_bud(find_buddy(bs->connlist->data, bs->name)); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
585 } |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
586 |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
587 void pressed_alias_bud(GtkWidget *widget, struct buddy *b) |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
588 { |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
589 alias_dialog_bud(b); |
| 1 | 590 } |
| 591 | |
|
2170
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
592 static void menu_click(GtkObject *obj, char *who) |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
593 { |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
594 GList *list = gtk_object_get_user_data(obj); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
595 struct proto_buddy_menu *pbm = list->data; |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
596 if (pbm->callback) |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
597 pbm->callback(pbm->gc, who); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
598 } |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
599 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
600 static int handle_click_buddy(GtkWidget *widget, GdkEventButton *event, struct buddy_show *b) |
| 1 | 601 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
602 if (!b->connlist) |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
603 return FALSE; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
604 if (event->type == GDK_2BUTTON_PRESS && event->button == 1) { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
605 struct conversation *c; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
606 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
607 c = find_conversation(b->name); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
608 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
609 if (c != NULL) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
610 gdk_window_show(c->window->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
611 else |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
612 c = new_conversation(b->name); |
|
1150
aa3dda7fc352
[gaim-migrate @ 1160]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1138
diff
changeset
|
613 |
|
2132
a6b9983cead1
[gaim-migrate @ 2142]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2131
diff
changeset
|
614 set_convo_gc(c, b->connlist->data); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
615 if (im_options & OPT_IM_ONE_WINDOW) |
|
1594
ac8eddd16e89
[gaim-migrate @ 1604]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1591
diff
changeset
|
616 raise_convo_tab(c); |
| 3568 | 617 gtk_widget_grab_focus(c->entry); |
| 1 | 618 } else if (event->type == GDK_BUTTON_PRESS && event->button == 3) { |
| 3251 | 619 static GtkWidget *menu = NULL; |
| 620 static GList *mo_top = NULL; | |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
621 GtkWidget *button; |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
622 GtkWidget *menuitem; |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
623 GtkWidget *conmenu; |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
624 GSList *cn = b->connlist; |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
625 struct gaim_connection *g; |
| 1 | 626 /* We're gonna make us a menu right here */ |
| 627 | |
| 3251 | 628 /* |
| 629 * If a menu already exists, destroy it before creating a new one, | |
| 630 * thus freeing-up the memory it occupied. Same for its associated | |
| 631 * (prpl menu items) GList. | |
| 632 */ | |
| 633 if(menu) { | |
| 634 gtk_widget_destroy(menu); | |
| 635 if(mo_top) { | |
| 636 g_list_foreach(mo_top, (GFunc)g_free, NULL); | |
| 637 g_list_free(mo_top); | |
| 638 mo_top = NULL; | |
| 639 } | |
| 640 } | |
| 641 | |
| 1 | 642 menu = gtk_menu_new(); |
| 643 | |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
644 button = gtk_menu_item_new_with_label(_("IM")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
645 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(pressed_im), b); |
| 1 | 646 gtk_menu_append(GTK_MENU(menu), button); |
| 647 gtk_widget_show(button); | |
| 648 | |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
703
diff
changeset
|
649 button = gtk_menu_item_new_with_label(_("Alias")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
650 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(pressed_alias_bs), b); |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
703
diff
changeset
|
651 gtk_menu_append(GTK_MENU(menu), button); |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
703
diff
changeset
|
652 gtk_widget_show(button); |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
703
diff
changeset
|
653 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
654 button = gtk_menu_item_new_with_label(_("Add Buddy Pounce")); |
| 1 | 655 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
2569
a714b8223228
[gaim-migrate @ 2582]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2564
diff
changeset
|
656 GTK_SIGNAL_FUNC(new_bp_callback), |
|
a714b8223228
[gaim-migrate @ 2582]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2564
diff
changeset
|
657 cn ? find_buddy(cn->data, b->name) : NULL); |
| 1 | 658 gtk_menu_append(GTK_MENU(menu), button); |
| 659 gtk_widget_show(button); | |
| 660 | |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
661 button = gtk_menu_item_new_with_label(_("View Log")); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
662 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
663 GTK_SIGNAL_FUNC(pressed_log), b->name); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
664 gtk_menu_append(GTK_MENU(menu), button); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
665 gtk_widget_show(button); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
666 |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
667 if (g_slist_length(cn) > 1) { |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
668 while (cn) { |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
669 g = (struct gaim_connection *)cn->data; |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
670 if (g->prpl->buddy_menu) { |
| 3251 | 671 GList *mo = mo_top = g->prpl->buddy_menu(g, b->name); |
|
2170
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
672 |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
673 menuitem = gtk_menu_item_new_with_label(g->username); |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
674 gtk_menu_append(GTK_MENU(menu), menuitem); |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
675 gtk_widget_show(menuitem); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
676 |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
677 conmenu = gtk_menu_new(); |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
678 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), conmenu); |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
679 gtk_widget_show(conmenu); |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
680 |
|
2170
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
681 while (mo) { |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
682 struct proto_buddy_menu *pbm = mo->data; |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
683 GtkWidget *button; |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
684 |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
685 button = gtk_menu_item_new_with_label(pbm->label); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
686 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
687 GTK_SIGNAL_FUNC(menu_click), b->name); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
688 gtk_object_set_user_data(GTK_OBJECT(button), mo); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
689 gtk_menu_append(GTK_MENU(conmenu), button); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
690 gtk_widget_show(button); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
691 |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
692 mo = mo->next; |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
693 } |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
694 } |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
695 cn = g_slist_next(cn); |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
696 } |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
697 } else { |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
698 g = (struct gaim_connection *)cn->data; |
|
2170
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
699 if (g->prpl->buddy_menu) { |
| 3251 | 700 GList *mo = mo_top = g->prpl->buddy_menu(g, b->name); |
|
2170
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
701 |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
702 while (mo) { |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
703 struct proto_buddy_menu *pbm = mo->data; |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
704 GtkWidget *button; |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
705 |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
706 button = gtk_menu_item_new_with_label(pbm->label); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
707 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
708 GTK_SIGNAL_FUNC(menu_click), b->name); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
709 gtk_object_set_user_data(GTK_OBJECT(button), mo); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
710 gtk_menu_append(GTK_MENU(menu), button); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
711 gtk_widget_show(button); |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
712 |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
713 mo = mo->next; |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
714 } |
|
c24595d3c364
[gaim-migrate @ 2180]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2140
diff
changeset
|
715 } |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
716 } |
|
1874
1e33bd2d7780
[gaim-migrate @ 1884]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1870
diff
changeset
|
717 |
|
1e33bd2d7780
[gaim-migrate @ 1884]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1870
diff
changeset
|
718 /* we send the menu widget so we can add menuitems within a plugin */ |
| 3517 | 719 plugin_event(event_draw_menu, menu, b->name); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
720 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
721 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); |
| 1 | 722 |
| 723 } else if (event->type == GDK_3BUTTON_PRESS && event->button == 2) { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
724 if (!g_strcasecmp("zilding", normalize (b->name))) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
725 show_ee_dialog(0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
726 else if (!g_strcasecmp("robflynn", normalize (b->name))) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
727 show_ee_dialog(1); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
728 else if (!g_strcasecmp("flynorange", normalize (b->name))) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
729 show_ee_dialog(2); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
730 else if (!g_strcasecmp("ewarmenhoven", normalize (b->name))) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
731 show_ee_dialog(3); |
| 2472 | 732 else if (!g_strcasecmp("markster97", normalize (b->name))) |
| 733 show_ee_dialog(4); | |
| 2993 | 734 else if (!g_strcasecmp("seanegn", normalize (b->name))) |
| 735 show_ee_dialog(5); | |
| 3043 | 736 else if (!g_strcasecmp("chipx86", normalize (b->name))) |
| 737 show_ee_dialog(6); | |
| 3152 | 738 else if (!g_strcasecmp("kingant", normalize (b->name))) |
| 739 show_ee_dialog(7); | |
| 3508 | 740 else if (!g_strcasecmp("lschiere", normalize (b->name))) |
| 741 show_ee_dialog(8); | |
| 1 | 742 |
| 743 } else { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
744 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
745 /* Anything for other buttons? :) */ |
| 1 | 746 } |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
747 |
|
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
748 return FALSE; |
| 1 | 749 } |
| 750 | |
|
1396
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
751 static void un_alias(GtkWidget *a, struct buddy *b) |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
752 { |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
753 g_snprintf(b->show, sizeof(b->show), "%s", b->name); |
| 3496 | 754 /* passing b->show as the previous name seems to be the (current) |
| 755 * way to get the bs->lable changed for that buddy. However, this | |
| 756 * function should do everything that needs to be done | |
| 757 */ | |
| 758 handle_buddy_rename(b, b->show); /* make me a sammich! */ | |
| 3136 | 759 serv_alias_buddy(b); |
| 3496 | 760 |
|
1396
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
761 } |
| 1 | 762 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
763 static gboolean click_edit_tree(GtkWidget *widget, GdkEventButton *event, gpointer data) |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
764 { |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
765 GtkCTreeNode *node; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
766 int *type; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
767 int row, column; |
| 3251 | 768 static GtkWidget *menu = NULL; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
769 GtkWidget *button; |
| 3313 | 770 static GList *mo_top = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
771 |
|
1392
dc6ba774bfc5
[gaim-migrate @ 1402]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
772 if (event->button != 3 || event->type != GDK_BUTTON_PRESS) |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
773 return FALSE; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
774 |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
775 if (!gtk_clist_get_selection_info(GTK_CLIST(edittree), event->x, event->y, &row, &column)) |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
776 return FALSE; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
777 |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
778 node = gtk_ctree_node_nth(GTK_CTREE(edittree), row); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
779 type = gtk_ctree_node_get_row_data(GTK_CTREE(edittree), node); |
| 3251 | 780 |
| 781 /* | |
| 782 * If a menu already exists, destroy it before creating a new one, | |
| 783 * thus freeing-up the memory it occupied. | |
| 784 */ | |
| 785 if(menu) { | |
| 786 gtk_widget_destroy(menu); | |
| 787 menu = NULL; /* safety measure */ | |
| 3313 | 788 if(mo_top) { |
| 789 g_list_foreach(mo_top, (GFunc)g_free, NULL); | |
| 790 g_list_free(mo_top); | |
| 791 mo_top = NULL; | |
| 792 } | |
| 3251 | 793 } |
| 794 | |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
795 if (*type == EDIT_GROUP) { |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
796 struct group *group = (struct group *)type; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
797 menu = gtk_menu_new(); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
798 |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
799 button = gtk_menu_item_new_with_label(_("Rename")); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
800 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
801 GTK_SIGNAL_FUNC(show_rename_group), group); |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
802 gtk_menu_append(GTK_MENU(menu), button); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
803 gtk_widget_show(button); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
804 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
805 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
806 |
|
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
807 return TRUE; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
808 } else if (*type == EDIT_BUDDY) { |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
809 struct buddy *b = (struct buddy *)type; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
810 menu = gtk_menu_new(); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
811 |
|
1739
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
812 button = gtk_menu_item_new_with_label(_("IM")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
813 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(pressed_im_bud), b); |
|
1739
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
814 gtk_menu_append(GTK_MENU(menu), button); |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
815 gtk_widget_show(button); |
|
0ddc5418a0b4
[gaim-migrate @ 1749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1735
diff
changeset
|
816 |
|
1392
dc6ba774bfc5
[gaim-migrate @ 1402]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
817 button = gtk_menu_item_new_with_label(_("Alias")); |
|
dc6ba774bfc5
[gaim-migrate @ 1402]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
818 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
819 GTK_SIGNAL_FUNC(pressed_alias_bud), b); |
|
1392
dc6ba774bfc5
[gaim-migrate @ 1402]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
820 gtk_menu_append(GTK_MENU(menu), button); |
|
dc6ba774bfc5
[gaim-migrate @ 1402]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
821 gtk_widget_show(button); |
|
dc6ba774bfc5
[gaim-migrate @ 1402]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1391
diff
changeset
|
822 |
|
1396
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
823 if (strcmp(b->name, b->show)) { |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
824 button = gtk_menu_item_new_with_label(_("Un-Alias")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
825 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(un_alias), b); |
|
1396
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
826 gtk_menu_append(GTK_MENU(menu), button); |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
827 gtk_widget_show(button); |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
828 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
829 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
830 button = gtk_menu_item_new_with_label(_("Rename")); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
831 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
832 GTK_SIGNAL_FUNC(show_rename_buddy), b); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
833 gtk_menu_append(GTK_MENU(menu), button); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
834 gtk_widget_show(button); |
|
1396
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
835 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
836 button = gtk_menu_item_new_with_label(_("Add Buddy Pounce")); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
837 gtk_signal_connect(GTK_OBJECT(button), "activate", |
| 2564 | 838 GTK_SIGNAL_FUNC(new_bp_callback), b); |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
839 gtk_menu_append(GTK_MENU(menu), button); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
840 gtk_widget_show(button); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
841 |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
842 button = gtk_menu_item_new_with_label(_("View Log")); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
843 gtk_signal_connect(GTK_OBJECT(button), "activate", |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
844 GTK_SIGNAL_FUNC(pressed_log), b->name); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
845 gtk_menu_append(GTK_MENU(menu), button); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
846 gtk_widget_show(button); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1465
diff
changeset
|
847 |
| 3313 | 848 /* |
| 849 * Add protocol-specific edit buddy menu items if they exist | |
| 850 */ | |
| 851 if (b->gc->prpl->edit_buddy_menu) { | |
| 852 GList *mo = mo_top = b->gc->prpl->edit_buddy_menu(b->gc, b->name); | |
| 853 | |
| 854 while (mo) { | |
| 855 struct proto_buddy_menu *pbm = mo->data; | |
| 856 GtkWidget *button; | |
| 857 | |
| 858 button = gtk_menu_item_new_with_label(pbm->label); | |
| 859 gtk_signal_connect(GTK_OBJECT(button), "activate", | |
| 860 GTK_SIGNAL_FUNC(menu_click), b->name); | |
| 861 gtk_object_set_user_data(GTK_OBJECT(button), mo); | |
| 862 gtk_menu_append(GTK_MENU(menu), button); | |
| 863 gtk_widget_show(button); | |
| 864 | |
| 865 mo = mo->next; | |
| 866 } | |
| 867 } | |
| 868 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
869 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
870 |
|
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
871 return TRUE; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
872 } |
|
1456
6650776468b3
[gaim-migrate @ 1466]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1435
diff
changeset
|
873 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
874 return FALSE; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
875 } |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
876 |
| 1 | 877 |
| 3059 | 878 /* |
| 879 * Find and remove CTree node associated with buddylist entry | |
| 880 */ | |
| 881 static void ui_remove_buddy_node(struct group *rem_g, struct buddy *rem_b) | |
| 882 { | |
| 883 GtkCTreeNode *gnode = NULL, *bnode; | |
| 884 | |
| 885 if((gnode = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, rem_g)) != NULL && | |
| 886 (bnode = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), gnode, rem_b)) != NULL) | |
| 887 { | |
| 888 gtk_ctree_remove_node(GTK_CTREE(edittree), bnode); | |
| 889 } | |
| 890 } | |
| 891 | |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
892 void ui_remove_buddy(struct gaim_connection *gc, struct group *rem_g, struct buddy *rem_b) |
| 1 | 893 { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
894 struct conversation *c; |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
895 struct group_show *gs; |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
896 struct buddy_show *bs; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
897 |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
898 gs = find_group_show(rem_g->name); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
899 if (gs) { |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
900 bs = find_buddy_show(gs, rem_b->name); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
901 if (bs) { |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
902 if (g_slist_find(bs->connlist, gc)) { |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
903 bs->connlist = g_slist_remove(bs->connlist, gc); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
904 if (!g_slist_length(bs->connlist)) { |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
905 gs->members = g_slist_remove(gs->members, bs); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
906 if (bs->log_timer > 0) |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
907 gtk_timeout_remove(bs->log_timer); |
|
1098
b335c0ce305e
[gaim-migrate @ 1108]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1097
diff
changeset
|
908 bs->log_timer = 0; |
|
1108
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
909 remove_buddy_show(gs, bs); |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
910 g_free(bs->show); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
911 g_free(bs->name); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
912 g_free(bs); |
|
1083
12478dd1e9d7
[gaim-migrate @ 1093]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1081
diff
changeset
|
913 if (!g_slist_length(gs->members) && |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
914 (blist_options & OPT_BLIST_NO_MT_GRP)) { |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
915 shows = g_slist_remove(shows, gs); |
|
1108
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
916 gtk_tree_remove_item(GTK_TREE(buddies), gs->item); |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
917 g_free(gs->name); |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
918 g_free(gs); |
| 3134 | 919 gs = NULL; |
|
2778
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
920 } |
|
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
921 } |
|
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
922 } |
|
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
923 } |
| 3103 | 924 if (gs) |
| 925 update_num_group(gs); | |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
926 } |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
927 |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
928 c = find_conversation(rem_b->name); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
929 if (c) |
| 1352 | 930 update_buttons_by_protocol(c); |
| 3059 | 931 |
| 932 /* Remove CTree node for buddy */ | |
| 933 ui_remove_buddy_node(rem_g, rem_b); | |
| 934 | |
| 1 | 935 } |
| 936 | |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
937 void ui_remove_group(struct gaim_connection *gc, struct group *rem_g) |
| 1 | 938 { |
|
1297
aa6a0fe8e03f
[gaim-migrate @ 1307]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
939 struct group_show *gs; |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
940 |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
941 if ((gs = find_group_show(rem_g->name)) != NULL) { |
|
1465
163b9ee8d789
[gaim-migrate @ 1475]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
942 shows = g_slist_remove(shows, gs); |
|
1297
aa6a0fe8e03f
[gaim-migrate @ 1307]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
943 gtk_tree_remove_item(GTK_TREE(buddies), gs->item); |
|
aa6a0fe8e03f
[gaim-migrate @ 1307]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
944 g_free(gs->name); |
|
aa6a0fe8e03f
[gaim-migrate @ 1307]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
945 g_free(gs); |
|
aa6a0fe8e03f
[gaim-migrate @ 1307]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1261
diff
changeset
|
946 } |
| 1 | 947 } |
| 948 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
949 gboolean edit_drag_compare_func(GtkCTree *ctree, GtkCTreeNode *source_node, |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
950 GtkCTreeNode *new_parent, GtkCTreeNode *new_sibling) |
| 1 | 951 { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
952 int *type; |
| 1 | 953 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
954 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), source_node); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
955 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
956 if (*type == EDIT_GC) { |
| 1 | 957 if (!new_parent) |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
958 return TRUE; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
959 } else if (*type == EDIT_BUDDY) { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
960 if (new_parent) { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
961 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), new_parent); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
962 if (*type == EDIT_GROUP) |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
963 return TRUE; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
964 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
965 } else { /* group */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
966 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
967 if (g_slist_length(connections) > 1 && new_parent) { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
968 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), new_parent); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
969 if (*type == EDIT_GC) |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
970 return TRUE; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
971 } else if (g_slist_length(connections) == 1 && !new_parent) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
972 return TRUE; |
| 1 | 973 } |
| 974 | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
975 return FALSE; |
| 1 | 976 } |
| 977 | |
| 978 | |
|
2380
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
979 /* you really shouldn't call this function */ |
|
6f83c22d9e70
[gaim-migrate @ 2393]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
980 void redo_buddy_list() |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
981 { |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
982 /* so here we can safely assume that we don't have to add or delete anything, we |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
983 * just have to go through and reorder everything. remember, nothing is going to |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
984 * change connections, so we can assume that we don't have to change any user |
|
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
985 * data or anything. this is just a simple reordering. so calm down. */ |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
986 /* note: we only have to do this if we want to strongly enforce order; however, |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
987 * order doesn't particularly matter to the stability of the program. but, it's |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
988 * kind of nice to have */ |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
989 /* the easy way to implement this is just to go through shows and destroy all the |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
990 * group_shows, then go through the connections and put everything back. though, |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
991 * there are slight complications with that; most of them deal with timeouts and |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
992 * people not seeing the login icon for the full 10 seconds. butt fuck them. */ |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
993 GSList *s = shows; |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
994 struct group_show *gs; |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
995 GSList *m; |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
996 struct buddy_show *bs; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
997 GSList *c = connections; |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
998 struct gaim_connection *gc; |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
999 GSList *gr; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1000 struct group *g; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1001 struct buddy *b; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1002 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1003 if (!blist) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1004 return; |
|
1150
aa3dda7fc352
[gaim-migrate @ 1160]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1138
diff
changeset
|
1005 |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1006 while (s) { |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1007 gs = (struct group_show *)s->data; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1008 s = g_slist_remove(s, gs); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1009 m = gs->members; |
|
1108
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
1010 gtk_tree_remove_item(GTK_TREE(buddies), gs->item); |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1011 while (m) { |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1012 bs = (struct buddy_show *)m->data; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1013 m = g_slist_remove(m, bs); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1014 if (bs->log_timer > 0) |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1015 gtk_timeout_remove(bs->log_timer); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1016 g_free(bs->show); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1017 g_free(bs->name); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1018 g_free(bs); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1019 } |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1020 g_free(gs->name); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1021 g_free(gs); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1022 } |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1023 shows = NULL; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1024 while (c) { |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1025 gc = (struct gaim_connection *)c->data; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1026 c = c->next; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1027 gr = gc->groups; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1028 while (gr) { |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1029 g = (struct group *)gr->data; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1030 gr = gr->next; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1031 gs = find_group_show(g->name); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
1032 if (!gs && !(blist_options & OPT_BLIST_NO_MT_GRP)) |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1033 gs = new_group_show(g->name); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1034 m = g->members; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1035 while (m) { |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1036 b = (struct buddy *)m->data; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1037 m = m->next; |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1038 if (b->present) { |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1039 if (!gs) |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1040 gs = new_group_show(g->name); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1041 bs = find_buddy_show(gs, b->name); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1042 if (!bs) { |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1043 if (gc->prpl->list_icon) |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1044 bs = new_buddy_show(gs, b, |
|
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2641
diff
changeset
|
1045 gc->prpl->list_icon(b-> |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1046 uc)); |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1047 else |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1048 bs = new_buddy_show(gs, b, (char **)no_icon_xpm); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1049 } |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1050 bs->connlist = g_slist_append(bs->connlist, gc); |
|
2778
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
1051 update_num_group(gs); |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1052 } |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1053 } |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1054 } |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1055 } |
|
2605
ff9d9b4f7aa2
[gaim-migrate @ 2618]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2598
diff
changeset
|
1056 update_idle_times(); |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
1057 } |
| 1 | 1058 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1059 static void edit_tree_move(GtkCTree *ctree, GtkCTreeNode *child, GtkCTreeNode *parent, |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1060 GtkCTreeNode *sibling, gpointer data) |
| 1 | 1061 { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1062 struct gaim_connection *gc, *pc = NULL, *sc = NULL; |
|
1456
6650776468b3
[gaim-migrate @ 1466]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1435
diff
changeset
|
1063 int *ctype, *ptype = NULL, *stype = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1064 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1065 ctype = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), child); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1066 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1067 if (parent) |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1068 ptype = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), parent); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1069 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1070 if (sibling) |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1071 stype = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(ctree), sibling); |
| 1 | 1072 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1073 if (*ctype == EDIT_GC) { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1074 /* not that it particularly matters which order the connections |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1075 * are in, but just for debugging sake, i guess.... */ |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1076 gc = (struct gaim_connection *)ctype; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1077 connections = g_slist_remove(connections, gc); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1078 if (sibling) { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1079 int pos; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1080 sc = (struct gaim_connection *)stype; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1081 pos = g_slist_index(connections, sc); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1082 if (pos) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1083 connections = g_slist_insert(connections, gc, pos); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1084 else |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1085 connections = g_slist_prepend(connections, gc); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1086 } else |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1087 connections = g_slist_append(connections, gc); |
|
2641
671c3a6a2c12
[gaim-migrate @ 2654]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2624
diff
changeset
|
1088 redo_convo_menus(); /* this is evil */ |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1089 } else if (*ctype == EDIT_BUDDY) { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1090 /* we moved a buddy. hopefully we just changed groups or positions or something. |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1091 * if we changed connections, we copy the buddy to the new connection. if the new |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1092 * connection already had the buddy in its buddy list but in a different group, |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1093 * we change the group that the buddy is in */ |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1094 struct group *old_g, *new_g = (struct group *)ptype; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1095 struct buddy *s = NULL, *buddy = (struct buddy *)ctype; |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2669
diff
changeset
|
1096 gboolean add = FALSE; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1097 int pos; |
| 1 | 1098 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1099 if (buddy->gc != new_g->gc) { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1100 /* we changed connections */ |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1101 struct buddy *a; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1102 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1103 a = find_buddy(new_g->gc, buddy->name); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1104 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1105 if (a) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1106 /* the buddy is in the new connection, so we'll remove it from |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1107 * its current group and add it to the proper group below */ |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1108 struct group *og; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1109 og = find_group_by_buddy(new_g->gc, buddy->name); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1110 og->members = g_slist_remove(og->members, a); |
| 1 | 1111 } else { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1112 /* we don't have this buddy yet; let's add him */ |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2669
diff
changeset
|
1113 add = TRUE; |
| 1 | 1114 } |
| 1115 } | |
| 1116 | |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1117 old_g = find_group_by_buddy(buddy->gc, buddy->name); |
| 1 | 1118 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1119 if (buddy->gc == new_g->gc) |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1120 /* this is the same connection, so we'll remove it from its old group */ |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1121 old_g->members = g_slist_remove(old_g->members, buddy); |
| 1 | 1122 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1123 if (sibling) { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1124 s = (struct buddy *)stype; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1125 pos = g_slist_index(new_g->members, s); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1126 if (pos) |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1127 new_g->members = g_slist_insert(new_g->members, buddy, pos); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1128 else |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1129 new_g->members = g_slist_prepend(new_g->members, buddy); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1130 } else |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1131 new_g->members = g_slist_append(new_g->members, buddy); |
| 1 | 1132 |
| 3136 | 1133 /* |
| 1134 * we do the add after it's added locally so that prpls can find it if necessary | |
| 1135 * JFIXME: Er, shouldn't the buddy be removed from the old server, as well? | |
| 1136 */ | |
| 1137 if (add) { | |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2669
diff
changeset
|
1138 serv_add_buddy(new_g->gc, buddy->name); |
| 3136 | 1139 } else { |
| 1140 serv_move_buddy(buddy, old_g, new_g); | |
| 1141 } | |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2669
diff
changeset
|
1142 |
|
1805
caa605e70917
[gaim-migrate @ 1815]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1794
diff
changeset
|
1143 do_export(buddy->gc); |
|
caa605e70917
[gaim-migrate @ 1815]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1794
diff
changeset
|
1144 if (buddy->gc != new_g->gc) { |
|
caa605e70917
[gaim-migrate @ 1815]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1794
diff
changeset
|
1145 do_export(new_g->gc); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1146 build_edit_tree(); |
|
1805
caa605e70917
[gaim-migrate @ 1815]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1794
diff
changeset
|
1147 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1148 } else { /* group */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1149 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1150 /* move the group. if moving connections, copy the group, and each buddy in the |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1151 * group. if the buddy exists in the new connection, leave it where it is. */ |
| 1 | 1152 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1153 struct group *g, *g2, *group; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1154 int pos; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1155 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1156 pc = (struct gaim_connection *)ptype; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1157 group = (struct group *)ctype; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1158 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1159 if (g_slist_length(connections) > 1) { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1160 g = find_group(pc, group->name); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1161 if (!g) |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1162 g = add_group(pc, group->name); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1163 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1164 pc->groups = g_slist_remove(pc->groups, g); |
| 1 | 1165 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1166 if (sibling) { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1167 g2 = (struct group *)stype; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1168 pos = g_slist_index(pc->groups, g2); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1169 if (pos) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1170 pc->groups = g_slist_insert(pc->groups, g, pos); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1171 else |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1172 pc->groups = g_slist_prepend(pc->groups, g); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1173 } else |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1174 pc->groups = g_slist_append(pc->groups, g); |
| 1 | 1175 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1176 if (pc != group->gc) { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1177 GSList *mem; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1178 struct buddy *b; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1179 g2 = group; |
| 1 | 1180 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1181 mem = g2->members; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1182 while (mem) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1183 b = (struct buddy *)mem->data; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1184 if (!find_buddy(pc, b->name)) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1185 add_buddy(pc, g->name, b->name, b->show); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1186 mem = mem->next; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1187 } |
|
912
5a517b4f0be4
[gaim-migrate @ 922]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
905
diff
changeset
|
1188 } |
|
1805
caa605e70917
[gaim-migrate @ 1815]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1794
diff
changeset
|
1189 do_export(pc); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1190 } else { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1191 g = group; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1192 gc = g->gc; |
| 1 | 1193 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1194 gc->groups = g_slist_remove(gc->groups, g); |
| 1 | 1195 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1196 if (sibling) { |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1197 g2 = (struct group *)stype; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1198 pos = g_slist_index(gc->groups, g2); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1199 if (pos) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1200 gc->groups = g_slist_insert(gc->groups, g, pos); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1201 else |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1202 gc->groups = g_slist_prepend(gc->groups, g); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1203 } else |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1204 gc->groups = g_slist_append(gc->groups, g); |
|
1805
caa605e70917
[gaim-migrate @ 1815]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1794
diff
changeset
|
1205 do_export(gc); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1206 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1207 } |
| 1 | 1208 |
|
1069
5d4926907b21
[gaim-migrate @ 1079]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1068
diff
changeset
|
1209 redo_buddy_list(); |
|
1070
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
1210 update_num_groups(); |
| 1 | 1211 } |
| 1212 | |
| 3111 | 1213 void |
| 1214 create_prpl_icon(GtkWidget *widget, struct gaim_connection *gc, | |
| 1215 GdkPixmap **pixmap, GdkBitmap **mask) | |
| 1216 { | |
| 1217 /* This whole thing is a hack--but it looks nice. | |
| 1218 * Probably should have a prpl->icon(struct gaim_connection *) to | |
| 1219 * do this. */ | |
| 1220 GtkStyle *style; | |
| 1221 char **xpm = NULL; | |
| 1222 | |
| 1223 if (widget == NULL || gc == NULL || pixmap == NULL || mask == NULL) | |
| 1224 return; | |
| 1225 | |
| 1226 style = gtk_widget_get_style( widget ); | |
| 1227 | |
| 3159 | 1228 if (gc->prpl->list_icon) { |
| 3111 | 1229 if (gc->prpl->protocol == PROTO_OSCAR) { |
| 1230 if (isdigit(*gc->username)) { | |
| 1231 xpm = gc->prpl->list_icon(0); | |
| 1232 } else { | |
| 1233 xpm = gc->prpl->list_icon(0x10); | |
| 1234 } | |
| 1235 } else { | |
| 1236 xpm = gc->prpl->list_icon (0); | |
| 1237 } | |
| 3159 | 1238 } |
| 3111 | 1239 if (xpm == NULL) |
| 1240 xpm = (char **)no_icon_xpm; | |
| 1241 | |
| 1242 *pixmap = gdk_pixmap_create_from_xpm_d(widget->window, mask, &style->bg[GTK_STATE_NORMAL], xpm); | |
| 1243 } | |
| 1 | 1244 |
| 1245 void build_edit_tree() | |
| 1246 { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1247 GtkCTreeNode *c = NULL, *p = NULL, *n; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1248 GSList *con = connections; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1249 GSList *grp; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1250 GSList *mem; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1251 struct gaim_connection *z; |
| 1 | 1252 struct group *g; |
| 1253 struct buddy *b; | |
| 1254 char *text[1]; | |
| 1255 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1256 if (!blist) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1257 return; |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1258 |
| 1 | 1259 gtk_clist_freeze(GTK_CLIST(edittree)); |
| 1260 gtk_clist_clear(GTK_CLIST(edittree)); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1261 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1262 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1263 while (con) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1264 z = (struct gaim_connection *)con->data; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1265 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1266 if (g_slist_length(connections) > 1) { |
| 3111 | 1267 GdkPixmap *pixmap; |
| 1268 GdkBitmap *mask; | |
| 1269 | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1270 text[0] = z->username; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1271 |
| 3111 | 1272 create_prpl_icon(blist, z, &pixmap, &mask); |
| 1273 | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1274 c = gtk_ctree_insert_node(GTK_CTREE(edittree), NULL, |
| 3111 | 1275 NULL, text, 3, pixmap, mask, pixmap, mask, 0, 1); |
| 1276 | |
| 1277 gdk_pixmap_unref (pixmap); | |
| 1278 gdk_bitmap_unref (mask); | |
| 1 | 1279 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1280 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), c, z); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1281 } else |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1282 c = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1283 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1284 grp = z->groups; |
| 1 | 1285 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1286 while (grp) { |
| 3111 | 1287 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1288 g = (struct group *)grp->data; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1289 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1290 text[0] = g->name; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1291 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1292 p = gtk_ctree_insert_node(GTK_CTREE(edittree), c, |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1293 NULL, text, 5, NULL, NULL, NULL, NULL, 0, 1); |
| 1 | 1294 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1295 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), p, g); |
| 1 | 1296 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1297 n = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1298 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1299 mem = g->members; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1300 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1301 while (mem) { |
|
1396
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
1302 char buf[256]; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1303 b = (struct buddy *)mem->data; |
|
1396
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
1304 if (strcmp(b->name, b->show)) { |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
1305 g_snprintf(buf, sizeof(buf), "%s (%s)", b->name, b->show); |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
1306 text[0] = buf; |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
1307 } else |
|
df7c3cacac92
[gaim-migrate @ 1406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1392
diff
changeset
|
1308 text[0] = b->name; |
| 1 | 1309 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1310 n = gtk_ctree_insert_node(GTK_CTREE(edittree), |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1311 p, NULL, text, 5, |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1312 NULL, NULL, NULL, NULL, 1, 1); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1313 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1314 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), n, b); |
| 1 | 1315 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1316 mem = mem->next; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1317 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1318 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1319 grp = g_slist_next(grp); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1320 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1321 con = g_slist_next(con); |
| 1 | 1322 } |
| 1323 | |
| 1324 gtk_clist_thaw(GTK_CLIST(edittree)); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1325 |
| 1 | 1326 } |
| 1327 | |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
1328 void ui_add_buddy(struct gaim_connection *gc, struct group *g, struct buddy *b) |
| 1 | 1329 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1330 GtkCTreeNode *p = NULL, *n; |
|
1699
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1331 char *text[1]; |
|
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1332 char buf[256]; |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
1333 struct group_show *gs = find_group_show(g->name); |
| 1 | 1334 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1335 b->edittype = EDIT_BUDDY; |
|
1088
18a14e6dd0af
[gaim-migrate @ 1098]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1085
diff
changeset
|
1336 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1337 if (gs) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1338 update_num_group(gs); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1339 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1340 if (!blist) |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
1341 return; |
|
1699
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1342 |
|
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1343 p = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, g); |
|
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1344 if (strcmp(b->name, b->show)) { |
|
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1345 g_snprintf(buf, sizeof(buf), "%s (%s)", b->name, b->show); |
|
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1346 text[0] = buf; |
|
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1347 } else |
|
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1348 text[0] = b->name; |
|
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1349 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1350 n = gtk_ctree_insert_node(GTK_CTREE(edittree), p, NULL, text, 5, NULL, NULL, NULL, NULL, 1, 1); |
|
1699
644056e095f1
[gaim-migrate @ 1709]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1694
diff
changeset
|
1351 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), n, b); |
| 1 | 1352 } |
| 1353 | |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
1354 void ui_add_group(struct gaim_connection *gc, struct group *g) |
| 1 | 1355 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1356 GtkCTreeNode *c = NULL, *p; |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1662
diff
changeset
|
1357 char *text[1]; |
| 1 | 1358 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1359 g->edittype = EDIT_GROUP; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1360 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1361 if (!blist) |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
1362 return; |
|
1088
18a14e6dd0af
[gaim-migrate @ 1098]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1085
diff
changeset
|
1363 |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1662
diff
changeset
|
1364 c = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, gc); |
|
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1662
diff
changeset
|
1365 text[0] = g->name; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1366 p = gtk_ctree_insert_node(GTK_CTREE(edittree), c, NULL, text, 5, NULL, NULL, NULL, NULL, 0, 1); |
|
1663
0f7d2284296f
[gaim-migrate @ 1673]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1662
diff
changeset
|
1367 gtk_ctree_node_set_row_data(GTK_CTREE(edittree), p, g); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1368 |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
1369 if (!(blist_options & OPT_BLIST_NO_MT_GRP) && !find_group_show(g->name)) |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2380
diff
changeset
|
1370 new_group_show(g->name); |
| 1 | 1371 } |
| 1372 | |
| 1373 | |
| 1374 static void do_del_buddy(GtkWidget *w, GtkCTree *ctree) | |
| 1375 { | |
| 1376 GtkCTreeNode *node; | |
| 1377 struct buddy *b; | |
| 1378 struct group *g; | |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1379 int *type; |
| 1 | 1380 GList *i; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1381 |
| 1 | 1382 i = GTK_CLIST(edittree)->selection; |
| 1383 if (i) { | |
| 1384 node = i->data; | |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1385 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(edittree), node); |
| 1 | 1386 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1387 if (*type == EDIT_BUDDY) { |
|
1821
5fc89f9e7f3e
[gaim-migrate @ 1831]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1817
diff
changeset
|
1388 struct gaim_connection *gct; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1389 b = (struct buddy *)type; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1390 g = find_group_by_buddy(b->gc, b->name); |
|
1821
5fc89f9e7f3e
[gaim-migrate @ 1831]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1817
diff
changeset
|
1391 gct = b->gc; |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2669
diff
changeset
|
1392 serv_remove_buddy(b->gc, b->name, g->name); |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1393 remove_buddy(b->gc, g, b); |
|
1821
5fc89f9e7f3e
[gaim-migrate @ 1831]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1817
diff
changeset
|
1394 do_export(gct); |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1395 } else if (*type == EDIT_GROUP) { |
|
1825
b96f07ff3f78
[gaim-migrate @ 1835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1821
diff
changeset
|
1396 struct gaim_connection *gc = ((struct group *)type)->gc; |
|
b96f07ff3f78
[gaim-migrate @ 1835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1821
diff
changeset
|
1397 remove_group(gc, (struct group *)type); |
|
1662
88e72116639d
[gaim-migrate @ 1672]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1661
diff
changeset
|
1398 gtk_ctree_remove_node(GTK_CTREE(edittree), node); |
|
1825
b96f07ff3f78
[gaim-migrate @ 1835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1821
diff
changeset
|
1399 do_export(gc); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1400 } |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1401 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1402 } else { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1403 /* Nothing selected. */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1404 } |
| 1 | 1405 } |
| 1406 | |
| 1407 | |
| 1408 void import_callback(GtkWidget *widget, void *null) | |
| 1409 { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1410 show_import_dialog(); |
| 1 | 1411 } |
| 1412 | |
| 1413 void do_quit() | |
| 1414 { | |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
1415 /* first we tell those who have requested it we're quitting */ |
| 3517 | 1416 plugin_event(event_quit); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
1417 |
|
2560
0417ecaff0e5
[gaim-migrate @ 2573]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2559
diff
changeset
|
1418 signoff_all(); |
|
2140
66a84ff0445a
[gaim-migrate @ 2150]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2134
diff
changeset
|
1419 #ifdef GAIM_PLUGINS |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
1420 /* then we remove everyone in a mass suicide */ |
|
2125
af59d854de29
[gaim-migrate @ 2135]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2111
diff
changeset
|
1421 remove_all_plugins(); |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
1422 #endif |
|
1575
427e1409917c
[gaim-migrate @ 1585]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1544
diff
changeset
|
1423 system_log(log_quit, NULL, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); |
|
784
4c292b3f74ea
[gaim-migrate @ 794]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
780
diff
changeset
|
1424 #ifdef USE_PERL |
|
4c292b3f74ea
[gaim-migrate @ 794]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
780
diff
changeset
|
1425 perl_end(); |
|
4c292b3f74ea
[gaim-migrate @ 794]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
780
diff
changeset
|
1426 #endif |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
1427 |
| 4064 | 1428 save_prefs(); |
| 1429 | |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1115
diff
changeset
|
1430 gtk_main_quit(); |
| 1 | 1431 } |
| 1432 | |
| 1433 void add_buddy_callback(GtkWidget *widget, void *dummy) | |
| 1434 { | |
| 1435 char *grp = NULL; | |
| 1436 GtkCTreeNode *node; | |
| 1437 GList *i; | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1438 struct gaim_connection *gc = NULL; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1439 int *type; |
| 1 | 1440 |
| 1441 i = GTK_CLIST(edittree)->selection; | |
| 1442 if (i) { | |
| 1443 node = i->data; | |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1444 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(edittree), node); |
| 1 | 1445 |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1446 if (*type == EDIT_BUDDY) { |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1447 struct buddy *b = (struct buddy *)type; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1448 struct group *g = find_group_by_buddy(b->gc, b->name); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1449 grp = g->name; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1450 gc = b->gc; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1451 } else if (*type == EDIT_GROUP) { |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1452 struct group *g = (struct group *)type; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1453 grp = g->name; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1454 gc = g->gc; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1455 } else { |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1456 gc = (struct gaim_connection *)type; |
| 1 | 1457 } |
| 1458 } | |
|
2582
5efa8077107f
[gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2569
diff
changeset
|
1459 show_add_buddy(gc, NULL, grp, NULL); |
| 1 | 1460 |
| 1461 } | |
| 1462 | |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
544
diff
changeset
|
1463 void add_group_callback(GtkWidget *widget, void *dummy) |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
544
diff
changeset
|
1464 { |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1465 GtkCTreeNode *node; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1466 GList *i; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1467 struct gaim_connection *gc = NULL; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1468 int *type; |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1469 |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1470 i = GTK_CLIST(edittree)->selection; |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1471 if (i) { |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1472 node = i->data; |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1473 type = (int *)gtk_ctree_node_get_row_data(GTK_CTREE(edittree), node); |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1474 if (*type == EDIT_BUDDY) |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1475 gc = ((struct buddy *)type)->gc; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1476 else if (*type == EDIT_GROUP) |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1477 gc = ((struct group *)type)->gc; |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1478 else |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
1479 gc = (struct gaim_connection *)type; |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1480 } |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1481 show_add_group(gc); |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
544
diff
changeset
|
1482 } |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
544
diff
changeset
|
1483 |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1484 static void im_callback(GtkWidget *widget, GtkTree *tree) |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1485 { |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1486 GList *i; |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1487 struct buddy_show *b = NULL; |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1488 struct conversation *c; |
| 3466 | 1489 i = GTK_TREE_SELECTION_OLD(tree); |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1490 if (i) { |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1491 b = gtk_object_get_user_data(GTK_OBJECT(i->data)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1492 } |
|
1095
ca8206682e3f
[gaim-migrate @ 1105]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1092
diff
changeset
|
1493 if (!i || !b) { |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1494 show_im_dialog(); |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1495 return; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1496 } |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1497 if (!b->name) |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1498 return; |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1499 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1500 c = find_conversation(b->name); |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1501 if (c == NULL) { |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1502 c = new_conversation(b->name); |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1503 } else { |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1504 gdk_window_raise(c->window->window); |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1505 } |
|
2886
9571d6794ef3
[gaim-migrate @ 2899]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2883
diff
changeset
|
1506 |
|
9571d6794ef3
[gaim-migrate @ 2899]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2883
diff
changeset
|
1507 set_convo_gc(c, b->connlist->data); |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1508 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1509 |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1510 |
| 1 | 1511 static void info_callback(GtkWidget *widget, GtkTree *tree) |
| 1512 { | |
| 1513 GList *i; | |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1514 struct buddy_show *b = NULL; |
| 3466 | 1515 i = GTK_TREE_SELECTION_OLD(tree); |
| 1 | 1516 if (i) { |
| 1517 b = gtk_object_get_user_data(GTK_OBJECT(i->data)); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1518 } |
|
1095
ca8206682e3f
[gaim-migrate @ 1105]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1092
diff
changeset
|
1519 if (!i || !b) { |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
921
diff
changeset
|
1520 show_info_dialog(); |
| 1 | 1521 return; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1522 } |
| 1 | 1523 if (!b->name) |
| 1524 return; | |
|
1693
6ccd49e6f24c
[gaim-migrate @ 1703]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1681
diff
changeset
|
1525 if (b->connlist) |
|
6ccd49e6f24c
[gaim-migrate @ 1703]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1681
diff
changeset
|
1526 serv_get_info(b->connlist->data, b->name); |
| 1 | 1527 } |
| 1528 | |
| 1529 | |
| 1530 void chat_callback(GtkWidget *widget, GtkTree *tree) | |
| 1531 { | |
| 1532 join_chat(); | |
| 1533 } | |
| 1534 | |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1535 static void away_callback(GtkWidget *widget, GtkTree *tree) |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1536 { |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1537 GSList *awy = away_messages; |
| 3251 | 1538 static GtkWidget *menu = NULL; |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1539 GtkWidget *menuitem; |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1540 |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1541 if (!awy) |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1542 return; |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1543 |
| 3251 | 1544 /* |
| 1545 * If a menu already exists, destroy it before creating a new one, | |
| 1546 * thus freeing-up the memory it occupied. | |
| 1547 */ | |
| 1548 if(menu) | |
| 1549 gtk_widget_destroy(menu); | |
| 1550 | |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1551 menu = gtk_menu_new(); |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1552 |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1553 while (awy) { |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1554 struct away_message *a = awy->data; |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1555 |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1556 menuitem = gtk_menu_item_new_with_label(a->name); |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1557 gtk_menu_append(GTK_MENU(menu), menuitem); |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1558 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1559 GTK_SIGNAL_FUNC(do_away_message), a); |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1560 gtk_widget_show(menuitem); |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1561 awy = awy->next; |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1562 } |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1563 |
| 3271 | 1564 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 1, GDK_CURRENT_TIME ); |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1565 } |
|
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
1566 |
| 1 | 1567 void rem_bp(GtkWidget *w, struct buddy_pounce *b) |
| 1568 { | |
| 1569 buddy_pounces = g_list_remove(buddy_pounces, b); | |
|
689
4e3f5d9cacd5
[gaim-migrate @ 699]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
1570 do_bp_menu(); |
|
4e3f5d9cacd5
[gaim-migrate @ 699]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
678
diff
changeset
|
1571 save_prefs(); |
| 1 | 1572 } |
| 1573 | |
|
2131
acc11216ec5d
[gaim-migrate @ 2141]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2125
diff
changeset
|
1574 void do_pounce(struct gaim_connection *gc, char *name, int when) |
| 1 | 1575 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1576 char *who; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1577 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1578 struct buddy_pounce *b; |
| 1 | 1579 struct conversation *c; |
| 1155 | 1580 struct aim_user *u; |
| 1 | 1581 |
| 1582 GList *bp = buddy_pounces; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1583 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1584 who = g_strdup(normalize (name)); |
| 1 | 1585 |
|
1857
9ea0b9531bc9
[gaim-migrate @ 1867]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1825
diff
changeset
|
1586 while (bp) { |
| 1155 | 1587 b = (struct buddy_pounce *)bp->data; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1588 bp = bp->next; /* increment the list here because rem_bp can make our handle bad */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1589 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1590 if (!(b->options & when)) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1591 continue; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1592 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1593 u = find_user(b->pouncer, b->protocol); /* find our user */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1594 if (u == NULL) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1595 continue; |
| 1155 | 1596 |
|
1230
5395053cdee1
[gaim-migrate @ 1240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1229
diff
changeset
|
1597 /* check and see if we're signed on as the pouncer */ |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1598 if (u->gc != gc) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1599 continue; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1600 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1601 if (!g_strcasecmp(who, normalize (b->name))) { /* find someone to pounce */ |
|
1857
9ea0b9531bc9
[gaim-migrate @ 1867]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1825
diff
changeset
|
1602 if (b->options & OPT_POUNCE_POPUP) { |
| 1 | 1603 c = find_conversation(name); |
| 1604 if (c == NULL) | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1605 c = new_conversation(name); |
|
1857
9ea0b9531bc9
[gaim-migrate @ 1867]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1825
diff
changeset
|
1606 |
|
1898
73d73939f698
[gaim-migrate @ 1908]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1881
diff
changeset
|
1607 set_convo_gc(c, u->gc); |
| 1 | 1608 } |
| 2550 | 1609 if (b->options & OPT_POUNCE_NOTIFY) { |
| 1610 char tmp[1024]; | |
| 1611 | |
| 1612 /* I know the line below is really ugly. I only did it this way | |
| 1613 * because I thought it'd be funny :-) */ | |
| 1614 | |
| 1615 g_snprintf(tmp, sizeof(tmp), "%s has %s", name, | |
| 3273 | 1616 (when & OPT_POUNCE_TYPING) ? "started typing to you" : |
| 1617 (when & OPT_POUNCE_SIGNON) ? "signed on" : | |
| 1618 (when & OPT_POUNCE_UNIDLE) ? "returned from being idle" : | |
| 2993 | 1619 "returned from being away"); |
| 1620 | |
| 3427 | 1621 do_error_dialog(tmp, NULL, GAIM_INFO); |
| 2550 | 1622 } |
|
1857
9ea0b9531bc9
[gaim-migrate @ 1867]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1825
diff
changeset
|
1623 if (b->options & OPT_POUNCE_SEND_IM) { |
| 2550 | 1624 if (strlen(b->message) > 0) { |
| 2552 | 1625 c = find_conversation(name); |
| 1626 | |
| 1627 if (c == NULL) | |
| 1628 c = new_conversation(name); | |
| 1629 | |
| 1630 set_convo_gc(c, u->gc); | |
| 1631 | |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2824
diff
changeset
|
1632 write_to_conv(c, b->message, WFLAG_SEND, NULL, time(NULL), -1); |
| 3033 | 1633 serv_send_im(u->gc, name, b->message, -1, 0); |
| 2550 | 1634 } |
| 1 | 1635 } |
|
1857
9ea0b9531bc9
[gaim-migrate @ 1867]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1825
diff
changeset
|
1636 if (b->options & OPT_POUNCE_COMMAND) { |
| 3630 | 1637 #ifndef _WIN32 |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1638 int pid = fork(); |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1639 |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1640 if (pid == 0) { |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1641 char *args[4]; |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1642 args[0] = "sh"; |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1643 args[1] = "-c"; |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1644 args[2] = b->command; |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1645 args[3] = NULL; |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1646 execvp(args[0], args); |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1647 _exit(0); |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1648 } |
| 3630 | 1649 #endif /*_WIN32*/ |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1183
diff
changeset
|
1650 } |
|
1857
9ea0b9531bc9
[gaim-migrate @ 1867]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1825
diff
changeset
|
1651 if (b->options & OPT_POUNCE_SOUND) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1652 if (strlen(b->sound)) |
|
1857
9ea0b9531bc9
[gaim-migrate @ 1867]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1825
diff
changeset
|
1653 play_file(b->sound); |
| 1694 | 1654 else |
| 3060 | 1655 play_sound(SND_POUNCE_DEFAULT); |
| 1694 | 1656 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1657 |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1658 if (!(b->options & OPT_POUNCE_SAVE)) |
|
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1659 rem_bp(NULL, b); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1660 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1661 } |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1662 } |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1663 g_free(who); |
| 1 | 1664 } |
| 1665 | |
|
2569
a714b8223228
[gaim-migrate @ 2582]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2564
diff
changeset
|
1666 static void new_bp_callback(GtkWidget *w, struct buddy *b) |
| 1 | 1667 { |
|
2569
a714b8223228
[gaim-migrate @ 2582]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2564
diff
changeset
|
1668 if (b) |
| 2986 | 1669 show_new_bp(b->name, b->gc, b->idle, b->uc & UC_UNAVAILABLE, NULL); |
|
2569
a714b8223228
[gaim-migrate @ 2582]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2564
diff
changeset
|
1670 else |
| 2986 | 1671 show_new_bp(NULL, NULL, 0, 0, NULL); |
| 1 | 1672 } |
| 1673 | |
| 2986 | 1674 static void edit_bp_callback(GtkWidget *w, struct buddy_pounce *b) |
| 1675 { | |
| 1676 show_new_bp(NULL, NULL, 0, 0, b); | |
| 1677 } | |
| 1678 | |
| 1679 static GtkTooltips *bp_tooltip = NULL; | |
| 1 | 1680 void do_bp_menu() |
| 1681 { | |
| 1682 GtkWidget *menuitem, *mess, *messmenu; | |
| 1683 static GtkWidget *remmenu; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1684 GtkWidget *remitem; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1685 GtkWidget *sep; |
| 1 | 1686 GList *l; |
| 1687 struct buddy_pounce *b; | |
| 1688 GList *bp = buddy_pounces; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1689 |
| 2986 | 1690 /* Tooltip for editing bp's */ |
| 1691 if(!bp_tooltip) | |
| 1692 bp_tooltip = gtk_tooltips_new(); | |
| 1693 | |
| 1 | 1694 l = gtk_container_children(GTK_CONTAINER(bpmenu)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1695 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1696 while (l) { |
| 1 | 1697 gtk_widget_destroy(GTK_WIDGET(l->data)); |
| 1698 l = l->next; | |
| 1699 } | |
| 1700 | |
| 1701 remmenu = gtk_menu_new(); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1702 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
1703 menuitem = gtk_menu_item_new_with_label(_("New Buddy Pounce")); |
| 1 | 1704 gtk_menu_append(GTK_MENU(bpmenu), menuitem); |
| 1705 gtk_widget_show(menuitem); | |
| 1706 gtk_signal_connect(GTK_OBJECT(menuitem), "activate", GTK_SIGNAL_FUNC(new_bp_callback), NULL); | |
| 1707 | |
| 1708 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1709 while (bp) { |
| 1 | 1710 |
| 1711 b = (struct buddy_pounce *)bp->data; | |
| 1712 remitem = gtk_menu_item_new_with_label(b->name); | |
| 1713 gtk_menu_append(GTK_MENU(remmenu), remitem); | |
| 1714 gtk_widget_show(remitem); | |
| 1715 gtk_signal_connect(GTK_OBJECT(remitem), "activate", GTK_SIGNAL_FUNC(rem_bp), b); | |
| 1716 | |
| 1717 bp = bp->next; | |
| 1718 | |
| 1719 } | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1720 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
1721 menuitem = gtk_menu_item_new_with_label(_("Remove Buddy Pounce")); |
| 1 | 1722 gtk_menu_append(GTK_MENU(bpmenu), menuitem); |
| 1723 gtk_widget_show(menuitem); | |
| 1724 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), remmenu); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1725 gtk_widget_show(remmenu); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1726 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1727 sep = gtk_hseparator_new(); |
| 1 | 1728 menuitem = gtk_menu_item_new(); |
| 1729 gtk_menu_append(GTK_MENU(bpmenu), menuitem); | |
| 1730 gtk_container_add(GTK_CONTAINER(menuitem), sep); | |
| 1731 gtk_widget_set_sensitive(menuitem, FALSE); | |
| 1732 gtk_widget_show(menuitem); | |
| 1733 gtk_widget_show(sep); | |
| 1734 | |
| 1138 | 1735 bp = buddy_pounces; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1736 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1737 while (bp) { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1738 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1739 b = (struct buddy_pounce *)bp->data; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1740 |
| 1 | 1741 menuitem = gtk_menu_item_new_with_label(b->name); |
| 1742 gtk_menu_append(GTK_MENU(bpmenu), menuitem); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1743 messmenu = gtk_menu_new(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1744 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), messmenu); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1745 gtk_widget_show(menuitem); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1746 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1747 mess = gtk_menu_item_new_with_label(b->message); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1748 gtk_menu_append(GTK_MENU(messmenu), mess); |
| 2986 | 1749 gtk_tooltips_set_tip(bp_tooltip, GTK_WIDGET(mess), _("[Click to edit]"), NULL); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1750 gtk_widget_show(mess); |
| 2986 | 1751 gtk_signal_connect(GTK_OBJECT(mess), "activate", GTK_SIGNAL_FUNC(edit_bp_callback), b); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1752 bp = bp->next; |
| 1 | 1753 |
| 1754 } | |
| 1755 | |
| 1756 } | |
| 1757 | |
| 1758 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1759 static struct group_show *find_group_show(char *group) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1760 { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1761 GSList *m = shows; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1762 struct group_show *g = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1763 char *who = g_strdup(normalize (group)); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1764 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1765 while (m) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1766 g = (struct group_show *)m->data; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1767 if (!g_strcasecmp(normalize (g->name), who)) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1768 break; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1769 g = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1770 m = m->next; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1771 } |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
1772 g_free(who); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1773 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1774 return g; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1775 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1776 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1777 static struct buddy_show *find_buddy_show(struct group_show *gs, char *name) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1778 { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1779 GSList *m = gs->members; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1780 struct buddy_show *b = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1781 char *who = g_strdup(normalize (name)); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1782 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1783 while (m) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1784 b = (struct buddy_show *)m->data; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1785 if (!g_strcasecmp(normalize (b->name), who)) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1786 break; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1787 b = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1788 m = m->next; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1789 } |
|
1098
b335c0ce305e
[gaim-migrate @ 1108]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1097
diff
changeset
|
1790 g_free(who); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1791 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1792 return b; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1793 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1794 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1795 static int group_number(char *group) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1796 { |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1797 GSList *c = connections; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1798 struct gaim_connection *g; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1799 GSList *m; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1800 struct group *p; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1801 int pos = 0; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1802 |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1803 while (c) { |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1804 g = (struct gaim_connection *)c->data; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1805 m = g->groups; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1806 while (m) { |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1807 p = (struct group *)m->data; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1808 if (!strcmp(p->name, group)) |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1809 return pos; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1810 if (find_group_show(p->name)) |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1811 pos++; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1812 m = m->next; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1813 } |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1814 c = c->next; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1815 } |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1816 /* um..... we'll never get here */ |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1817 return -1; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1818 } |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1819 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1820 static int buddy_number(char *group, char *buddy) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1821 { |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1822 GSList *c = connections; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1823 struct gaim_connection *g; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1824 struct group *p; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1825 GSList *z; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1826 struct buddy *b; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1827 int pos = 0; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1828 char *tmp1 = g_strdup(normalize (buddy)); |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1829 struct group_show *gs = find_group_show(group); |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1830 |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1831 while (c) { |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1832 g = (struct gaim_connection *)c->data; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1833 p = find_group(g, group); |
|
1049
749e25dc90cb
[gaim-migrate @ 1059]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1047
diff
changeset
|
1834 if (!p) { |
|
749e25dc90cb
[gaim-migrate @ 1059]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1047
diff
changeset
|
1835 c = c->next; |
|
749e25dc90cb
[gaim-migrate @ 1059]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1047
diff
changeset
|
1836 continue; |
|
749e25dc90cb
[gaim-migrate @ 1059]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1047
diff
changeset
|
1837 } |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1838 z = p->members; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1839 while (z) { |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1840 b = (struct buddy *)z->data; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1841 if (!strcmp(tmp1, normalize (b->name))) { |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1842 g_free(tmp1); |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1843 return pos; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1844 } |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1845 if (find_buddy_show(gs, b->name)) |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1846 pos++; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1847 z = z->next; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1848 } |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1849 c = c->next; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1850 } |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1851 /* we shouldn't ever get here */ |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1852 debug_printf("got to bad place in buddy_number\n"); |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1853 g_free(tmp1); |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1854 return -1; |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1855 } |
|
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1856 |
| 3131 | 1857 |
| 1858 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1859 static struct group_show *new_group_show(char *group) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1860 { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1861 struct group_show *g = g_new0(struct group_show, 1); |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1862 int pos = group_number(group); |
| 3131 | 1863 GdkPixmap *pm; |
| 1864 GdkBitmap *bm; | |
| 1865 GtkStyle *style; | |
| 1866 GtkStyle *style2; | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1867 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1868 g->name = g_strdup(group); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1869 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1870 g->item = gtk_tree_item_new(); |
| 3131 | 1871 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1872 gtk_signal_connect(GTK_OBJECT(g->item), "button_press_event", |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
1873 GTK_SIGNAL_FUNC(handle_click_group), g); |
| 3131 | 1874 |
| 1875 gtk_tree_insert(GTK_TREE(buddies), g->item, pos); | |
| 1876 | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1877 gtk_widget_show(g->item); |
| 1 | 1878 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1879 g->label = gtk_label_new(group); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1880 gtk_misc_set_alignment(GTK_MISC(g->label), 0.0, 0.5); |
| 3131 | 1881 gtk_widget_show(g->label); |
| 1882 | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1883 gtk_container_add(GTK_CONTAINER(g->item), g->label); |
| 3131 | 1884 |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1885 shows = g_slist_insert(shows, g, pos); |
| 3131 | 1886 |
| 1887 /* Rob does drugs - this is still evil, damn you becausse I SAID SO! */ | |
| 1888 | |
| 1889 pm = gdk_pixmap_create_from_xpm_d(g->item->window, | |
| 1890 &bm, NULL, arrow_down_xpm); | |
| 1891 | |
| 1892 gtk_pixmap_set(GTK_PIXMAP(GTK_TREE_ITEM(g->item)->minus_pix_widget), | |
| 1893 pm, bm); | |
| 1894 | |
| 1895 gdk_pixmap_unref(pm); | |
| 1896 gdk_bitmap_unref(bm); | |
| 1897 | |
| 1898 pm = gdk_pixmap_create_from_xpm_d(buddies->window, | |
| 1899 &bm, NULL, arrow_right_xpm); | |
| 1900 | |
| 1901 gtk_pixmap_set(GTK_PIXMAP(GTK_TREE_ITEM(g->item)->plus_pix_widget), | |
| 1902 pm, bm); | |
| 1903 | |
| 1904 gdk_pixmap_unref(pm); | |
| 1905 gdk_bitmap_unref(bm); | |
| 1906 | |
| 3133 | 1907 // style = gtk_widget_get_style(GTK_TREE_ITEM(g->item)->pixmaps_box); |
| 1908 style2 = gtk_style_copy(gtk_widget_get_style(g->item)); | |
| 1909 style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(g->label))); | |
| 3137 | 1910 |
| 3131 | 1911 style->bg[0] = style2->base[0]; |
| 1912 gtk_widget_set_style(GTK_TREE_ITEM(g->item)->pixmaps_box, style); | |
| 1913 | |
| 3137 | 1914 gtk_style_unref(style); |
| 1915 gtk_style_unref(style2); | |
| 1916 | |
| 3131 | 1917 /* bad drugs */ |
| 1918 | |
|
2883
c12e3e66d54a
[gaim-migrate @ 2896]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1919 update_num_group(g); |
| 3131 | 1920 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1921 return g; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1922 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1923 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1924 static struct buddy_show *new_buddy_show(struct group_show *gs, struct buddy *buddy, char **xpm) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1925 { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1926 struct buddy_show *b = g_new0(struct buddy_show, 1); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1927 GtkWidget *box; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1928 GdkPixmap *pm; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1929 GdkBitmap *bm; |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1930 int pos = buddy_number(gs->name, buddy->name); |
|
1299
18c3874ea051
[gaim-migrate @ 1309]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1297
diff
changeset
|
1931 b->sound = 0; |
| 1 | 1932 |
|
1409
17e544f8c7fb
[gaim-migrate @ 1419]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
1933 if (gs->members == NULL) { |
|
17e544f8c7fb
[gaim-migrate @ 1419]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
1934 gs->tree = gtk_tree_new(); |
|
17e544f8c7fb
[gaim-migrate @ 1419]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
1935 gtk_tree_item_set_subtree(GTK_TREE_ITEM(gs->item), gs->tree); |
|
17e544f8c7fb
[gaim-migrate @ 1419]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
1936 gtk_tree_item_expand(GTK_TREE_ITEM(gs->item)); |
|
17e544f8c7fb
[gaim-migrate @ 1419]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
1937 gtk_widget_show(gs->tree); |
|
17e544f8c7fb
[gaim-migrate @ 1419]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
1938 } |
|
17e544f8c7fb
[gaim-migrate @ 1419]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1401
diff
changeset
|
1939 |
|
1036
faa5afc2b89e
[gaim-migrate @ 1046]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1033
diff
changeset
|
1940 b->name = g_strdup(buddy->name); |
|
faa5afc2b89e
[gaim-migrate @ 1046]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1033
diff
changeset
|
1941 b->show = g_strdup(buddy->show); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1942 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1943 b->item = gtk_tree_item_new(); |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1944 gtk_tree_insert(GTK_TREE(gs->tree), b->item, pos); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1945 gtk_object_set_user_data(GTK_OBJECT(b->item), b); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1946 gtk_signal_connect(GTK_OBJECT(b->item), "button_press_event", |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1947 GTK_SIGNAL_FUNC(handle_click_buddy), b); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1948 gtk_widget_show(b->item); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1949 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1950 box = gtk_hbox_new(FALSE, 1); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1951 gtk_container_add(GTK_CONTAINER(b->item), box); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1952 gtk_widget_show(box); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1953 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1714
diff
changeset
|
1954 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm ? xpm : no_icon_xpm); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1955 b->pix = gtk_pixmap_new(pm, bm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1956 gtk_box_pack_start(GTK_BOX(box), b->pix, FALSE, FALSE, 1); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1957 gtk_widget_show(b->pix); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
1958 if (!(blist_options & OPT_BLIST_SHOW_PIXMAPS)) |
|
1711
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
1959 gtk_widget_hide(b->pix); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1960 gdk_pixmap_unref(pm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1961 gdk_bitmap_unref(bm); |
| 1 | 1962 |
|
1036
faa5afc2b89e
[gaim-migrate @ 1046]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1033
diff
changeset
|
1963 b->label = gtk_label_new(buddy->show); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1964 gtk_misc_set_alignment(GTK_MISC(b->label), 0.0, 0.5); |
|
1242
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1965 gtk_box_pack_start(GTK_BOX(box), b->label, FALSE, FALSE, 1); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1966 gtk_widget_show(b->label); |
| 1 | 1967 |
|
1242
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1968 b->warn = gtk_label_new(""); |
|
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1969 gtk_box_pack_start(GTK_BOX(box), b->warn, FALSE, FALSE, 1); |
|
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1970 gtk_widget_show(b->warn); |
|
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1971 |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
1972 b->idle = gtk_label_new(""); |
|
1242
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
1973 gtk_box_pack_end(GTK_BOX(box), b->idle, FALSE, FALSE, 1); |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
1974 gtk_widget_show(b->idle); |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
1975 |
|
1037
1c663beef29d
[gaim-migrate @ 1047]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1036
diff
changeset
|
1976 gs->members = g_slist_insert(gs->members, b, pos); |
|
1070
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1069
diff
changeset
|
1977 update_num_group(gs); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1978 return b; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1979 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1980 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1981 static void remove_buddy_show(struct group_show *gs, struct buddy_show *bs) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1982 { |
|
1108
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
1983 /* the name of this function may be misleading, but don't let it fool you. the point |
|
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
1984 * of this is to remove bs->item from gs->tree, and make sure gs->tree still exists |
|
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
1985 * and is a valid tree afterwards. Otherwise, Bad Things will happen. */ |
|
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
1986 gtk_tree_remove_item(GTK_TREE(gs->tree), bs->item); |
|
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
1987 bs->item = NULL; |
|
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
1988 } |
|
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
1989 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1990 static struct group_show *find_gs_by_bs(struct buddy_show *b) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
1991 { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1992 GSList *m, *n; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1993 struct group_show *g = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1994 struct buddy_show *h; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1995 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1996 m = shows; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1997 while (m) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1998 g = (struct group_show *)m->data; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1999 n = g->members; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2000 while (n) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2001 h = (struct buddy_show *)n->data; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2002 if (h == b) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2003 return g; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2004 n = n->next; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2005 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2006 g = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2007 m = m->next; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2008 } |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2009 |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2010 return g; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2011 } |
| 1 | 2012 |
| 3472 | 2013 /* used by this file, and by iconaway.so */ |
| 3188 | 2014 void hide_buddy_list() { |
| 3510 | 2015 if (blist) { |
| 3517 | 2016 if (!connections || docklet_count) { |
|
3970
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2017 #ifdef _WIN32 |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2018 /* minimize to systray with effects */ |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2019 wgaim_systray_minimize(blist); |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2020 #endif |
| 3510 | 2021 gtk_widget_hide(blist); |
| 2022 } else { | |
| 2023 gtk_window_iconify(GTK_WINDOW(blist)); | |
| 3472 | 2024 } |
| 2025 } | |
| 2026 } | |
| 2027 | |
| 2028 /* mostly used by code in this file */ | |
| 2029 void unhide_buddy_list() { | |
| 3510 | 2030 if (blist) { |
| 3540 | 2031 if (blist_options & OPT_BLIST_SAVED_WINDOWS && blist_pos.width != 0) { |
| 3939 | 2032 /* don't move it off screen */ |
| 2033 if (blist_pos.x >= gdk_screen_width()) { | |
| 2034 blist_pos.x = gdk_screen_width() - 100; | |
| 2035 } else if (blist_pos.x <= 0) { | |
| 2036 blist_pos.x = 100; | |
| 2037 } | |
| 2038 | |
| 2039 if (blist_pos.y >= gdk_screen_height()) { | |
| 2040 blist_pos.y = gdk_screen_height() - 100; | |
| 2041 } else if (blist_pos.y <= 0) { | |
| 2042 blist_pos.y = 100; | |
| 2043 } | |
| 2044 | |
| 3540 | 2045 gtk_window_move(GTK_WINDOW(blist), blist_pos.x, blist_pos.y); |
| 2046 gtk_window_resize(GTK_WINDOW(blist), blist_pos.width, blist_pos.height); | |
| 3510 | 2047 } |
| 3939 | 2048 |
| 2049 gtk_window_present(GTK_WINDOW(blist)); | |
| 3472 | 2050 } |
| 2051 } | |
| 2052 | |
| 2053 /* for the delete_event handler */ | |
| 2054 static void close_buddy_list() { | |
| 3517 | 2055 if (docklet_count) { |
| 3472 | 2056 hide_buddy_list(); |
| 2057 } else { | |
| 2058 do_quit(); | |
| 2059 } | |
| 2060 } | |
| 2061 | |
| 2062 void docklet_add() { | |
| 3517 | 2063 docklet_count++; |
| 3519 | 2064 debug_printf("docklet_count: %d\n",docklet_count); |
| 3472 | 2065 } |
| 2066 | |
| 2067 void docklet_remove() { | |
| 3726 | 2068 docklet_count--; |
| 3519 | 2069 debug_printf("docklet_count: %d\n",docklet_count); |
| 3517 | 2070 if (!docklet_count) { |
| 3472 | 2071 if (connections) { |
| 2072 unhide_buddy_list(); | |
| 2073 } else { | |
| 2074 gtk_window_present(GTK_WINDOW(mainwindow)); | |
| 2075 } | |
| 2076 } | |
| 3192 | 2077 } |
| 2078 | |
| 3570 | 2079 void docklet_toggle() { |
| 2080 /* Useful for the docklet plugin and also for the win32 tray icon*/ | |
| 2081 /* This is called when one of those is clicked--it will show/hide the | |
| 2082 buddy list/login window--depending on which is active */ | |
| 3726 | 2083 if (connections && blist) { |
| 3570 | 2084 if (GTK_WIDGET_VISIBLE(blist)) { |
| 3939 | 2085 if (GAIM_WINDOW_ICONIFIED(blist) || obscured) { |
| 3570 | 2086 unhide_buddy_list(); |
| 2087 } else { | |
| 2088 hide_buddy_list(); | |
| 2089 } | |
| 2090 } else { | |
|
3970
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2091 #if _WIN32 |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2092 wgaim_systray_maximize(blist); |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2093 #endif |
| 3570 | 2094 unhide_buddy_list(); |
| 2095 } | |
| 3726 | 2096 } else if (connections) { |
| 2097 /* we're logging in or something... do nothing */ | |
| 2098 debug_printf("docklet_toggle called with connections but no blist!\n"); | |
| 3570 | 2099 } else { |
| 2100 if (GTK_WIDGET_VISIBLE(mainwindow)) { | |
| 2101 if (GAIM_WINDOW_ICONIFIED(mainwindow)) { | |
| 2102 gtk_window_present(GTK_WINDOW(mainwindow)); | |
| 2103 } else { | |
|
3970
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2104 #if _WIN32 |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2105 wgaim_systray_minimize(mainwindow); |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2106 #endif |
| 3570 | 2107 gtk_widget_hide(mainwindow); |
| 2108 } | |
| 2109 } else { | |
|
3970
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2110 #if _WIN32 |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2111 wgaim_systray_maximize(mainwindow); |
|
3bc436a24548
[gaim-migrate @ 4154]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3948
diff
changeset
|
2112 #endif |
| 3570 | 2113 gtk_window_present(GTK_WINDOW(mainwindow)); |
| 2114 } | |
| 2115 } | |
| 2116 } | |
| 2117 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2118 static gint log_timeout(struct buddy_show *b) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2119 { |
|
2255
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2120 /* this part is really just a bad hack because of a bug I can't find */ |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2121 GSList *s = shows; |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2122 while (s) { |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2123 struct group_show *gs = s->data; |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2124 GSList *m = gs->members; |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2125 while (m) { |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2126 if (b == m->data) |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2127 break; |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2128 m = m->next; |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2129 } |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2130 if (m != NULL) |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2131 break; |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2132 s = s->next; |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2133 } |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2134 if (!s) |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2135 return 0; |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2136 |
|
aaa82fd67a7b
[gaim-migrate @ 2265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2191
diff
changeset
|
2137 /* this is the real part. */ |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2138 if (!b->connlist) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2139 struct group_show *g = find_gs_by_bs(b); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2140 g->members = g_slist_remove(g->members, b); |
|
1091
3d6ab4f1fa55
[gaim-migrate @ 1101]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
2141 if (blist) |
|
1108
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
2142 remove_buddy_show(g, b); |
|
1091
3d6ab4f1fa55
[gaim-migrate @ 1101]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
2143 else |
|
3d6ab4f1fa55
[gaim-migrate @ 1101]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
2144 debug_printf("log_timeout but buddy list not available\n"); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
2145 if ((g->members == NULL) && (blist_options & OPT_BLIST_NO_MT_GRP)) { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2146 shows = g_slist_remove(shows, g); |
|
1091
3d6ab4f1fa55
[gaim-migrate @ 1101]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
2147 if (blist) |
|
1108
cb338aa38e78
[gaim-migrate @ 1118]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1106
diff
changeset
|
2148 gtk_tree_remove_item(GTK_TREE(buddies), g->item); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2149 g_free(g->name); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2150 g_free(g); |
|
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1088
diff
changeset
|
2151 } |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2152 gtk_timeout_remove(b->log_timer); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2153 b->log_timer = 0; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2154 g_free(b->name); |
|
1036
faa5afc2b89e
[gaim-migrate @ 1046]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1033
diff
changeset
|
2155 g_free(b->show); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2156 g_free(b); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2157 } else { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2158 /* um.... what do we have to do here? just update the pixmap? */ |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2159 GdkPixmap *pm; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2160 GdkBitmap *bm; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2161 gchar **xpm = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2162 struct buddy *light = find_buddy(b->connlist->data, b->name); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2163 if (((struct gaim_connection *)b->connlist->data)->prpl->list_icon) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2164 xpm = |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2165 (*((struct gaim_connection *)b->connlist->data)->prpl->list_icon)(light->uc); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2166 if (xpm == NULL) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2167 xpm = (char **)no_icon_xpm; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2168 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2169 gtk_widget_hide(b->pix); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2170 gtk_pixmap_set(GTK_PIXMAP(b->pix), pm, bm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2171 gtk_widget_show(b->pix); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
2172 if (!(blist_options & OPT_BLIST_SHOW_PIXMAPS)) |
|
1711
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
2173 gtk_widget_hide(b->pix); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2174 gdk_pixmap_unref(pm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2175 gdk_bitmap_unref(bm); |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2176 gtk_timeout_remove(b->log_timer); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2177 b->log_timer = 0; |
|
1299
18c3874ea051
[gaim-migrate @ 1309]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1297
diff
changeset
|
2178 b->sound = 0; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2179 } |
|
1091
3d6ab4f1fa55
[gaim-migrate @ 1101]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
2180 return 0; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2181 } |
|
513
eaddaa0dbbcb
[gaim-migrate @ 523]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
511
diff
changeset
|
2182 |
| 2920 | 2183 static char *caps_string(guint caps) |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2184 { |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2185 static char buf[256], *tmp; |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2186 int count = 0, i = 0; |
| 2920 | 2187 guint bit = 1; |
| 2188 while (bit <= 0x10000) { | |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2189 if (bit & caps) { |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2190 switch (bit) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2191 case 0x1: |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2192 tmp = _("Buddy Icon"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2193 break; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2194 case 0x2: |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2195 tmp = _("Voice"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2196 break; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2197 case 0x4: |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2198 tmp = _("IM Image"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2199 break; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2200 case 0x8: |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2201 tmp = _("Chat"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2202 break; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2203 case 0x10: |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2204 tmp = _("Get File"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2205 break; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2206 case 0x20: |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2207 tmp = _("Send File"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2208 break; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2209 case 0x40: |
| 2669 | 2210 case 0x200: |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2211 tmp = _("Games"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2212 break; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2213 case 0x80: |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2214 tmp = _("Stocks"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2215 break; |
| 2920 | 2216 case 0x100: |
| 2217 tmp = _("Send Buddy List"); | |
| 2218 break; | |
| 2669 | 2219 case 0x400: |
| 2220 tmp = _("EveryBuddy Bug"); | |
| 2221 break; | |
|
2734
9fc65bb80596
[gaim-migrate @ 2747]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2731
diff
changeset
|
2222 case 0x800: |
|
9fc65bb80596
[gaim-migrate @ 2747]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2731
diff
changeset
|
2223 tmp = _("AP User"); |
|
9fc65bb80596
[gaim-migrate @ 2747]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2731
diff
changeset
|
2224 break; |
| 2920 | 2225 case 0x1000: |
| 2226 tmp = _("ICQ RTF"); | |
| 2227 break; | |
| 2228 case 0x2000: | |
| 2229 tmp = _("Nihilist"); | |
| 2230 break; | |
| 2231 case 0x4000: | |
| 2232 tmp = _("ICQ Server Relay"); | |
| 2233 break; | |
| 2234 case 0x8000: | |
| 2235 tmp = _("ICQ Unknown"); | |
| 2236 break; | |
| 2237 case 0x10000: | |
| 2238 tmp = _("Trillian Encryption"); | |
| 2239 break; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2240 default: |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2241 tmp = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2242 break; |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2243 } |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2244 if (tmp) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2245 i += g_snprintf(buf + i, sizeof(buf) - i, "%s%s", (count ? ", " : ""), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2246 tmp); |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2247 count++; |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2248 } |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2249 bit <<= 1; |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2250 } |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2251 return buf; |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2252 } |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2253 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2254 /* for this we're just going to assume the first connection that registered the buddy. |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2255 * if it's not the one you were hoping for then you're shit out of luck */ |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2256 static void update_idle_time(struct buddy_show *bs) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2257 { |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1072
diff
changeset
|
2258 /* this also updates the tooltip since that has idle time in it */ |
|
1242
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2259 char idlet[16], warnl[16]; |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2260 time_t t; |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2261 int ihrs, imin; |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2262 struct buddy *b; |
|
2592
f194dd8250d4
[gaim-migrate @ 2605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2587
diff
changeset
|
2263 GtkStyle *style; |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2264 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2265 char infotip[2048]; |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2266 char warn[256]; |
|
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2267 char caps[256]; |
|
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
2268 char *sotime = NULL, *itime; |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2269 |
|
2731
e9e624d8803e
[gaim-migrate @ 2744]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2730
diff
changeset
|
2270 int i; |
|
e9e624d8803e
[gaim-migrate @ 2744]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2730
diff
changeset
|
2271 |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2272 time(&t); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2273 if (!bs->connlist) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2274 return; |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2275 b = find_buddy(bs->connlist->data, bs->name); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2276 if (!b) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2277 return; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2278 ihrs = (t - b->idle) / 3600; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2279 imin = ((t - b->idle) / 60) % 60; |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2280 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2281 if (ihrs) |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2282 g_snprintf(idlet, sizeof idlet, "(%d:%02d)", ihrs, imin); |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2283 else |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2284 g_snprintf(idlet, sizeof idlet, "(%d)", imin); |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2285 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2286 gtk_widget_hide(bs->idle); |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2287 if (b->idle) |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2288 gtk_label_set(GTK_LABEL(bs->idle), idlet); |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2289 else |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2290 gtk_label_set(GTK_LABEL(bs->idle), ""); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
2291 if (blist_options & OPT_BLIST_SHOW_IDLETIME) |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2292 gtk_widget_show(bs->idle); |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2293 |
|
2730
a9aabf1170f1
[gaim-migrate @ 2743]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2725
diff
changeset
|
2294 style = gtk_style_new(); |
|
a9aabf1170f1
[gaim-migrate @ 2743]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2725
diff
changeset
|
2295 gtk_style_set_font(style, gdk_font_ref(gtk_style_get_font(bs->label->style))); |
|
2731
e9e624d8803e
[gaim-migrate @ 2744]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2730
diff
changeset
|
2296 for (i = 0; i < 5; i++) |
|
2736
6e1ac8ceb3c4
[gaim-migrate @ 2749]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
2297 style->fg[i] = bs->idle->style->fg[i]; |
|
2610
98928712e319
[gaim-migrate @ 2623]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2607
diff
changeset
|
2298 if ((blist_options & OPT_BLIST_GREY_IDLERS) && (b->idle)) { |
|
2592
f194dd8250d4
[gaim-migrate @ 2605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2587
diff
changeset
|
2299 style->fg[GTK_STATE_NORMAL].red = |
|
2613
6f7e1fc3e132
[gaim-migrate @ 2626]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2610
diff
changeset
|
2300 (style->fg[GTK_STATE_NORMAL].red / 2) + (style->base[GTK_STATE_NORMAL].red / 2); |
|
2592
f194dd8250d4
[gaim-migrate @ 2605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2587
diff
changeset
|
2301 style->fg[GTK_STATE_NORMAL].green = |
|
2613
6f7e1fc3e132
[gaim-migrate @ 2626]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2610
diff
changeset
|
2302 (style->fg[GTK_STATE_NORMAL].green / 2) + (style->base[GTK_STATE_NORMAL].green / 2); |
|
2592
f194dd8250d4
[gaim-migrate @ 2605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2587
diff
changeset
|
2303 style->fg[GTK_STATE_NORMAL].blue = |
|
2613
6f7e1fc3e132
[gaim-migrate @ 2626]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2610
diff
changeset
|
2304 (style->fg[GTK_STATE_NORMAL].blue / 2) + (style->base[GTK_STATE_NORMAL].blue / 2); |
|
2592
f194dd8250d4
[gaim-migrate @ 2605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2587
diff
changeset
|
2305 } |
|
f194dd8250d4
[gaim-migrate @ 2605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2587
diff
changeset
|
2306 gtk_widget_set_style(bs->label, style); |
|
f194dd8250d4
[gaim-migrate @ 2605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2587
diff
changeset
|
2307 gtk_style_unref(style); |
|
f194dd8250d4
[gaim-migrate @ 2605]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2587
diff
changeset
|
2308 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2309 /* now we do the tooltip */ |
|
1496
d33bf6548543
[gaim-migrate @ 1506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1477
diff
changeset
|
2310 if (b->signon) { |
|
d33bf6548543
[gaim-migrate @ 1506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1477
diff
changeset
|
2311 char *stime = sec_to_text(t - b->signon + |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2312 ((struct gaim_connection *)bs->connlist->data)-> |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2313 correction_time); |
|
1496
d33bf6548543
[gaim-migrate @ 1506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1477
diff
changeset
|
2314 sotime = g_strdup_printf(_("Logged in: %s\n"), stime); |
|
d33bf6548543
[gaim-migrate @ 1506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1477
diff
changeset
|
2315 g_free(stime); |
|
d33bf6548543
[gaim-migrate @ 1506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1477
diff
changeset
|
2316 } |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2317 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2318 if (b->idle) |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2319 itime = sec_to_text(t - b->idle); |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2320 else { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2321 itime = g_malloc(1); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2322 itime[0] = 0; |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2323 } |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2324 |
|
1242
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2325 if (b->evil) { |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2326 g_snprintf(warn, sizeof warn, _("Warnings: %d%%\n"), b->evil); |
|
1242
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2327 g_snprintf(warnl, sizeof warnl, "(%d%%)", b->evil); |
|
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2328 } else { |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2329 warn[0] = '\0'; |
|
1242
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2330 warnl[0] = '\0'; |
|
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2331 } |
|
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2332 gtk_widget_hide(bs->warn); |
|
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2333 gtk_label_set(GTK_LABEL(bs->warn), warnl); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
2334 if (blist_options & OPT_BLIST_SHOW_WARN) |
|
1242
8cb5c1000ea9
[gaim-migrate @ 1252]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1235
diff
changeset
|
2335 gtk_widget_show(bs->warn); |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2336 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2337 if (b->caps) |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2338 g_snprintf(caps, sizeof caps, _("Capabilities: %s\n"), caps_string(b->caps)); |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2339 else |
|
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2340 caps[0] = '\0'; |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2341 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2342 g_snprintf(infotip, sizeof infotip, _("Alias: %s \nScreen Name: %s\n" |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2343 "%s%s%s%s%s%s"), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2344 b->show, b->name, |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2345 (b->signon ? sotime : ""), warn, |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2346 (b->idle ? _("Idle: ") : ""), itime, (b->idle ? "\n" : ""), caps); |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2347 |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2348 gtk_tooltips_set_tip(tips, GTK_WIDGET(bs->item), infotip, ""); |
|
1068
ed28707debdc
[gaim-migrate @ 1078]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1066
diff
changeset
|
2349 |
|
1496
d33bf6548543
[gaim-migrate @ 1506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1477
diff
changeset
|
2350 if (b->signon) |
|
d33bf6548543
[gaim-migrate @ 1506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1477
diff
changeset
|
2351 g_free(sotime); |
|
1163
8f70ecf3e884
[gaim-migrate @ 1173]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1159
diff
changeset
|
2352 g_free(itime); |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2353 } |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2354 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2355 void update_idle_times() |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2356 { |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2357 GSList *grp = shows; |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2358 GSList *mem; |
|
1667
b5635d882116
[gaim-migrate @ 1677]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1666
diff
changeset
|
2359 struct buddy_show *b; |
|
b5635d882116
[gaim-migrate @ 1677]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1666
diff
changeset
|
2360 struct group_show *g; |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2361 |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2362 while (grp) { |
|
1667
b5635d882116
[gaim-migrate @ 1677]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1666
diff
changeset
|
2363 g = (struct group_show *)grp->data; |
|
b5635d882116
[gaim-migrate @ 1677]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1666
diff
changeset
|
2364 mem = g->members; |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2365 while (mem) { |
|
1667
b5635d882116
[gaim-migrate @ 1677]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1666
diff
changeset
|
2366 b = (struct buddy_show *)mem->data; |
|
b5635d882116
[gaim-migrate @ 1677]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1666
diff
changeset
|
2367 update_idle_time(b); |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2368 mem = mem->next; |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2369 } |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2370 grp = grp->next; |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2371 } |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2372 } |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2373 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2374 void set_buddy(struct gaim_connection *gc, struct buddy *b) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2375 { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2376 struct group *g = find_group_by_buddy(gc, b->name); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2377 struct group_show *gs; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2378 struct buddy_show *bs; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2379 GdkPixmap *pm; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2380 GdkBitmap *bm; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2381 char **xpm = NULL; |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2382 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2383 if (!blist) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2384 return; |
|
1063
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1061
diff
changeset
|
2385 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2386 if (b->present) { |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2387 if ((gs = find_group_show(g->name)) == NULL) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2388 gs = new_group_show(g->name); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2389 if ((bs = find_buddy_show(gs, b->name)) == NULL) |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2390 bs = new_buddy_show(gs, b, (char **)login_icon_xpm); |
|
2778
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
2391 if (!g_slist_find(bs->connlist, gc)) { |
|
1164
ed5bb86253c6
[gaim-migrate @ 1174]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1163
diff
changeset
|
2392 bs->connlist = g_slist_append(bs->connlist, gc); |
|
2778
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
2393 update_num_group(gs); |
|
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
2394 } |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2395 if (b->present == 1) { |
|
1299
18c3874ea051
[gaim-migrate @ 1309]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1297
diff
changeset
|
2396 if (bs->sound != 2) |
| 3060 | 2397 play_sound(SND_BUDDY_ARRIVE); |
| 3192 | 2398 if (blist_options & OPT_BLIST_POPUP) |
| 3544 | 2399 gdk_window_show(blist->window); |
|
1039
67ed2ee5be9f
[gaim-migrate @ 1049]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1037
diff
changeset
|
2400 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2401 NULL, (char **)login_icon_xpm); |
|
1039
67ed2ee5be9f
[gaim-migrate @ 1049]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1037
diff
changeset
|
2402 gtk_widget_hide(bs->pix); |
|
67ed2ee5be9f
[gaim-migrate @ 1049]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1037
diff
changeset
|
2403 gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm); |
|
67ed2ee5be9f
[gaim-migrate @ 1049]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1037
diff
changeset
|
2404 gtk_widget_show(bs->pix); |
|
67ed2ee5be9f
[gaim-migrate @ 1049]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1037
diff
changeset
|
2405 gdk_pixmap_unref(pm); |
|
67ed2ee5be9f
[gaim-migrate @ 1049]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1037
diff
changeset
|
2406 gdk_bitmap_unref(bm); |
|
121
3571b593f423
[gaim-migrate @ 131]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
120
diff
changeset
|
2407 b->present = 2; |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2408 if (bs->log_timer > 0) |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2409 gtk_timeout_remove(bs->log_timer); |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1103
diff
changeset
|
2410 bs->log_timer = gtk_timeout_add(10000, (GtkFunction)log_timeout, bs); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
2411 if ((bs->sound != 2) && (im_options & OPT_IM_LOGON)) { |
|
1066
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2412 struct conversation *c = find_conversation(b->name); |
|
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2413 if (c) { |
|
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2414 char tmp[1024]; |
| 3104 | 2415 g_snprintf(tmp, sizeof(tmp), _("%s logged in."), b->show); |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2824
diff
changeset
|
2416 write_to_conv(c, tmp, WFLAG_SYSTEM, NULL, time(NULL), -1); |
|
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2417 } else if (clistqueue && find_queue_total_by_name(b->name)) { |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2418 struct queued_message *qm = g_new0(struct queued_message, 1); |
| 2979 | 2419 g_snprintf(qm->name, sizeof(qm->name), "%s", b->name); |
| 3104 | 2420 qm->message = g_strdup_printf(_("%s logged in."), b->show); |
|
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2421 qm->gc = gc; |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2422 qm->tm = time(NULL); |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2423 qm->flags = WFLAG_SYSTEM; |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2424 qm->len = -1; |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2425 message_queue = g_slist_append(message_queue, qm); |
|
1066
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2426 } |
|
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2427 } |
|
1661
6cea395b627d
[gaim-migrate @ 1671]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1634
diff
changeset
|
2428 bs->sound = 2; |
|
1098
b335c0ce305e
[gaim-migrate @ 1108]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1097
diff
changeset
|
2429 } else if (bs->log_timer == 0) { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2430 if (gc->prpl->list_icon) |
|
2662
b0c5770156e1
[gaim-migrate @ 2675]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2641
diff
changeset
|
2431 xpm = gc->prpl->list_icon(b->uc); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2432 if (xpm == NULL) |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2433 xpm = (char **)no_icon_xpm; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2434 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2435 gtk_widget_hide(bs->pix); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2436 gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2437 gtk_widget_show(bs->pix); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
2438 if (!(blist_options & OPT_BLIST_SHOW_PIXMAPS)) |
|
1711
9b86520e04ac
[gaim-migrate @ 1721]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1699
diff
changeset
|
2439 gtk_widget_hide(bs->pix); |
|
644
b3900e312d8e
[gaim-migrate @ 654]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
608
diff
changeset
|
2440 gdk_pixmap_unref(pm); |
|
804
17def2bb9720
[gaim-migrate @ 814]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
803
diff
changeset
|
2441 gdk_bitmap_unref(bm); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2442 } |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2443 update_idle_time(bs); |
| 1 | 2444 } else { |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2445 gs = find_group_show(g->name); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2446 if (!gs) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2447 return; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2448 bs = find_buddy_show(gs, b->name); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2449 if (!bs) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2450 return; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2451 if (!bs->connlist) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2452 return; /* we won't do signoff updates for |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2453 buddies that have already signed |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2454 off */ |
|
1299
18c3874ea051
[gaim-migrate @ 1309]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1297
diff
changeset
|
2455 if (bs->sound != 1) |
| 3060 | 2456 play_sound(SND_BUDDY_LEAVE); |
| 3192 | 2457 if (blist_options & OPT_BLIST_POPUP) |
| 3544 | 2458 gdk_window_show(blist->window); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2459 bs->connlist = g_slist_remove(bs->connlist, gc); |
|
2778
27c22147e023
[gaim-migrate @ 2791]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2736
diff
changeset
|
2460 update_num_group(gs); |
|
1032
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
2461 if (bs->log_timer > 0) |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
2462 gtk_timeout_remove(bs->log_timer); |
|
643a4d81c18a
[gaim-migrate @ 1042]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
2463 bs->log_timer = gtk_timeout_add(10000, (GtkFunction)log_timeout, bs); |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2464 pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, logout_icon_xpm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2465 gtk_widget_hide(bs->pix); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2466 gtk_pixmap_set(GTK_PIXMAP(bs->pix), pm, bm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2467 gtk_widget_show(bs->pix); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2468 gdk_pixmap_unref(pm); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2469 gdk_bitmap_unref(bm); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
2470 if ((bs->sound != 1) && (im_options & OPT_IM_LOGON)) { |
|
1066
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2471 struct conversation *c = find_conversation(b->name); |
|
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2472 if (c) { |
|
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2473 char tmp[1024]; |
| 3104 | 2474 g_snprintf(tmp, sizeof(tmp), _("%s logged out."), b->show); |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2824
diff
changeset
|
2475 write_to_conv(c, tmp, WFLAG_SYSTEM, NULL, time(NULL), -1); |
|
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2476 } else if (clistqueue && find_queue_total_by_name(b->name)) { |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2477 struct queued_message *qm = g_new0(struct queued_message, 1); |
| 2979 | 2478 g_snprintf(qm->name, sizeof(qm->name), "%s", b->name); |
| 3104 | 2479 qm->message = g_strdup_printf(_("%s logged out."), b->show); |
|
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2480 qm->gc = gc; |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2481 qm->tm = time(NULL); |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2482 qm->flags = WFLAG_SYSTEM; |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2483 qm->len = -1; |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2886
diff
changeset
|
2484 message_queue = g_slist_append(message_queue, qm); |
|
1066
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2485 } |
|
d6c70d58a4b2
[gaim-migrate @ 1076]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1063
diff
changeset
|
2486 } |
|
1661
6cea395b627d
[gaim-migrate @ 1671]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1634
diff
changeset
|
2487 |
|
6cea395b627d
[gaim-migrate @ 1671]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1634
diff
changeset
|
2488 bs->sound = 1; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
2489 } |
| 1 | 2490 } |
| 2491 | |
| 3540 | 2492 static void configure_blist_window(GtkWidget *w, GdkEventConfigure *event, void *data) { |
| 2493 if (event->x != blist_pos.x || | |
| 2494 event->y != blist_pos.y || | |
| 2495 event->width != blist_pos.width || | |
| 2496 event->height != blist_pos.height) { | |
| 3859 | 2497 blist_pos.x = event->x > 0 ? event->x : 0; |
| 2498 blist_pos.y = event->y > 0 ? event->y : 0; | |
| 3540 | 2499 blist_pos.width = event->width; |
| 2500 blist_pos.height = event->height; | |
| 2501 save_prefs(); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2502 } |
| 1 | 2503 } |
| 2504 | |
| 3939 | 2505 static void visibility_blist_window(GtkWidget *w, GdkEventVisibility *event, void *data) { |
| 2506 if (event->state == GDK_VISIBILITY_FULLY_OBSCURED) { | |
| 2507 obscured = TRUE; | |
| 2508 } else { | |
| 2509 obscured = FALSE; | |
| 3570 | 2510 } |
| 3554 | 2511 } |
| 2512 | |
| 1 | 2513 /******************************************************************* |
| 2514 * | |
| 2515 * Helper funs for making the menu | |
| 2516 * | |
| 2517 *******************************************************************/ | |
| 2518 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2519 void gaim_separator(GtkWidget *menu) |
| 1 | 2520 { |
| 3878 | 2521 GtkWidget *menuitem; |
| 2522 | |
| 2523 menuitem = gtk_separator_menu_item_new(); | |
| 2524 gtk_widget_show(menuitem); | |
| 1 | 2525 gtk_menu_append(GTK_MENU(menu), menuitem); |
| 2526 } | |
| 2527 | |
| 2528 | |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2529 void build_imchat_box(gboolean on) |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2530 { |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2531 if (on) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2532 if (imchatbox) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2533 return; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2534 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2535 imbutton = gtk_button_new_with_label(_("IM")); |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2536 infobutton = gtk_button_new_with_label(_("Info")); |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2537 chatbutton = gtk_button_new_with_label(_("Chat")); |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
2538 awaybutton = gtk_button_new_with_label(_("Away")); |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2539 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2540 imchatbox = gtk_hbox_new(TRUE, 10); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2541 |
| 3902 | 2542 gtk_button_set_relief(GTK_BUTTON(imbutton), GTK_RELIEF_NONE); |
| 2543 gtk_button_set_relief(GTK_BUTTON(infobutton), GTK_RELIEF_NONE); | |
| 2544 gtk_button_set_relief(GTK_BUTTON(chatbutton), GTK_RELIEF_NONE); | |
| 2545 gtk_button_set_relief(GTK_BUTTON(awaybutton), GTK_RELIEF_NONE); | |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2546 |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2547 /* Put the buttons in the hbox */ |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2548 gtk_widget_show(imbutton); |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
2549 gtk_widget_show(infobutton); |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2550 gtk_widget_show(chatbutton); |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
2551 gtk_widget_show(awaybutton); |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2552 |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2553 gtk_box_pack_start(GTK_BOX(imchatbox), imbutton, TRUE, TRUE, 0); |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2554 gtk_box_pack_start(GTK_BOX(imchatbox), infobutton, TRUE, TRUE, 0); |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2555 gtk_box_pack_start(GTK_BOX(imchatbox), chatbutton, TRUE, TRUE, 0); |
|
1929
d51ea669d84e
[gaim-migrate @ 1939]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1918
diff
changeset
|
2556 gtk_box_pack_start(GTK_BOX(imchatbox), awaybutton, TRUE, TRUE, 0); |
| 1172 | 2557 gtk_container_border_width(GTK_CONTAINER(imchatbox), 5); |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2558 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2559 gtk_signal_connect(GTK_OBJECT(imbutton), "clicked", GTK_SIGNAL_FUNC(im_callback), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2560 buddies); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2561 gtk_signal_connect(GTK_OBJECT(infobutton), "clicked", GTK_SIGNAL_FUNC(info_callback), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2562 buddies); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2563 gtk_signal_connect(GTK_OBJECT(chatbutton), "clicked", GTK_SIGNAL_FUNC(chat_callback), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2564 buddies); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2565 gtk_signal_connect(GTK_OBJECT(awaybutton), "clicked", GTK_SIGNAL_FUNC(away_callback), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2566 buddies); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2567 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2568 gtk_tooltips_set_tip(tips, infobutton, _("Information on selected Buddy"), "Penguin"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2569 gtk_tooltips_set_tip(tips, imbutton, _("Send Instant Message"), "Penguin"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2570 gtk_tooltips_set_tip(tips, chatbutton, _("Start/join a Buddy Chat"), "Penguin"); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2571 gtk_tooltips_set_tip(tips, awaybutton, _("Activate Away Message"), "Penguin"); |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2572 |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2573 gtk_box_pack_start(GTK_BOX(buddypane), imchatbox, FALSE, FALSE, 0); |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2574 |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2575 gtk_widget_show(imchatbox); |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2576 } else { |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2577 if (imchatbox) |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2578 gtk_widget_destroy(imchatbox); |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2579 imchatbox = NULL; |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2580 } |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2581 } |
|
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2582 |
| 3204 | 2583 extern GtkWidget *debugbutton; |
| 2584 void clicked_debug (GtkWidget *widg, gpointer pntr) | |
| 2585 { | |
| 2586 if (debugbutton) | |
| 2587 gtk_button_clicked(GTK_BUTTON(debugbutton)); | |
| 2588 else { | |
| 2589 misc_options ^= OPT_MISC_DEBUG; | |
| 2590 show_debug(); | |
| 2591 } | |
| 2592 } | |
| 1 | 2593 |
| 3570 | 2594 void make_buddy_list() |
| 1 | 2595 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2596 |
| 1 | 2597 /* Build the buddy list, based on *config */ |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2598 |
| 1 | 2599 GtkWidget *sw; |
| 2600 GtkWidget *menu; | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2601 #ifdef NO_MULTI |
| 1 | 2602 GtkWidget *setmenu; |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2603 GtkWidget *findmenu; |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2604 #endif |
| 1 | 2605 GtkWidget *menubar; |
| 2606 GtkWidget *vbox; | |
| 2607 GtkWidget *menuitem; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2608 GtkWidget *notebook; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2609 GtkWidget *label; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2610 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2611 GtkWidget *tbox; |
| 1 | 2612 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
945
diff
changeset
|
2613 if (blist) { |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
945
diff
changeset
|
2614 return; |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
945
diff
changeset
|
2615 } |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
945
diff
changeset
|
2616 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2617 blist = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2618 |
| 3570 | 2619 gtk_window_set_gravity(GTK_WINDOW(blist), GDK_GRAVITY_STATIC); |
| 2620 gtk_window_set_policy(GTK_WINDOW(blist), TRUE, TRUE, TRUE); | |
| 2621 gtk_window_set_title(GTK_WINDOW(blist), _("Gaim - Buddy List")); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2622 gtk_window_set_wmclass(GTK_WINDOW(blist), "buddy_list", "Gaim"); |
| 905 | 2623 |
| 1 | 2624 gtk_widget_realize(blist); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2625 |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
2626 accel = gtk_accel_group_new(); |
| 3570 | 2627 gtk_window_add_accel_group(GTK_WINDOW(blist), accel); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2628 |
| 1 | 2629 menubar = gtk_menu_bar_new(); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2630 |
| 1 | 2631 menu = gtk_menu_new(); |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
2632 gtk_menu_set_accel_group(GTK_MENU(menu), accel); |
|
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
2633 |
|
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
2634 menuitem = gaim_new_item(NULL, _("File")); |
| 1 | 2635 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); |
| 2636 gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem); | |
| 2637 | |
| 3879 | 2638 gaim_new_item_from_stock(menu, _("_Add A Buddy"), GTK_STOCK_ADD, |
| 3204 | 2639 GTK_SIGNAL_FUNC(add_buddy_callback), NULL, 'b', GDK_CONTROL_MASK, "Ctl+B"); |
| 3879 | 2640 gaim_new_item_from_stock(menu, _("_Join A Chat"), GTK_STOCK_JUMP_TO, |
| 3204 | 2641 GTK_SIGNAL_FUNC(chat_callback), NULL, 'c', GDK_CONTROL_MASK, "Ctl+C"); |
| 3879 | 2642 gaim_new_item_from_stock(menu, _("_New Message"), GTK_STOCK_CONVERT, |
| 3204 | 2643 GTK_SIGNAL_FUNC(show_im_dialog), NULL, 'i', GDK_CONTROL_MASK, "Ctl+I"); |
| 3879 | 2644 gaim_new_item_from_stock(menu, _("_Get User Info"), GTK_STOCK_FIND, |
| 3204 | 2645 GTK_SIGNAL_FUNC(show_info_dialog), NULL, 'j', GDK_CONTROL_MASK, "Ctl+J"); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2646 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2647 gaim_separator(menu); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2648 |
| 3881 | 2649 gaim_new_item_from_pixbuf(menu, _("Import Buddy List"), "import-menu.png", |
| 3204 | 2650 GTK_SIGNAL_FUNC(import_callback), NULL, 0, 0, 0); |
| 3570 | 2651 |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2652 gaim_separator(menu); |
| 3570 | 2653 |
| 3872 | 2654 gaim_new_item_from_stock(menu, _("Signoff"), NULL, |
| 3204 | 2655 GTK_SIGNAL_FUNC(signoff_all), (void*)1, 'd', GDK_CONTROL_MASK, "Ctl+D"); |
| 3872 | 2656 gaim_new_item_from_stock(menu, _("Hide"), NULL, |
| 3472 | 2657 GTK_SIGNAL_FUNC(hide_buddy_list), NULL, 'h', GDK_CONTROL_MASK, "Ctl+H"); |
| 3872 | 2658 gaim_new_item_from_stock(menu, _("Quit"), GTK_STOCK_QUIT, |
| 3204 | 2659 GTK_SIGNAL_FUNC(do_quit), NULL, 'q', GDK_CONTROL_MASK, "Ctl+Q"); |
| 1 | 2660 |
| 2661 menu = gtk_menu_new(); | |
| 2662 | |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
2663 menuitem = gaim_new_item(NULL, _("Tools")); |
| 1 | 2664 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); |
| 2665 gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem); | |
| 2666 | |
| 2667 awaymenu = gtk_menu_new(); | |
| 3876 | 2668 menuitem = gaim_new_item_from_stock(menu, _("Away"), NULL, NULL, NULL, 0, 0, 0); |
| 1 | 2669 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), awaymenu); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2670 do_away_menu(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2671 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2672 bpmenu = gtk_menu_new(); |
| 3876 | 2673 menuitem = gaim_new_item_from_stock(menu, _("Buddy Pounce"), NULL, NULL, NULL, 0, 0, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2674 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), bpmenu); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2675 do_bp_menu(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2676 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2677 gaim_separator(menu); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2678 |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2592
diff
changeset
|
2679 #ifndef NO_MULTI |
| 3883 | 2680 gaim_new_item_from_pixbuf(menu, _("_Accounts..."), "accounts-menu.png", |
| 3204 | 2681 GTK_SIGNAL_FUNC(account_editor), NULL, 'a', GDK_CONTROL_MASK, "Ctl+A"); |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2592
diff
changeset
|
2682 #endif |
| 3879 | 2683 gaim_new_item_from_stock(menu, _("_Preferences..."), GTK_STOCK_PREFERENCES, |
| 3877 | 2684 GTK_SIGNAL_FUNC(show_prefs), NULL, 'p', GDK_CONTROL_MASK, "Ctl+P"); |
| 2685 | |
| 2686 gaim_separator(menu); | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2687 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2688 protomenu = gtk_menu_new(); |
| 3876 | 2689 menuitem = gaim_new_item_from_stock(menu, _("Protocol Actions"), NULL, NULL, NULL, 0, 0, 0); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2690 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), protomenu); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1496
diff
changeset
|
2691 do_proto_menu(); |
| 1 | 2692 |
| 3879 | 2693 gaim_new_item_from_stock(menu, _("Pr_ivacy..."), NULL, |
| 3367 | 2694 GTK_SIGNAL_FUNC(show_privacy_options), NULL, 0, 0, 0); |
| 3877 | 2695 |
| 3879 | 2696 gaim_new_item_from_stock(menu, _("_View System Log..."), NULL, |
| 3204 | 2697 GTK_SIGNAL_FUNC(show_syslog), NULL, 0, 0, 0); |
|
90
f5b305c0d974
[gaim-migrate @ 100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
87
diff
changeset
|
2698 |
| 1 | 2699 menu = gtk_menu_new(); |
| 2700 | |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1625
diff
changeset
|
2701 menuitem = gaim_new_item(NULL, _("Help")); |
| 1 | 2702 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); |
| 2703 gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2704 |
| 3874 | 2705 gaim_new_item_from_stock(menu, _("Online Help"), GTK_STOCK_HELP, GTK_SIGNAL_FUNC(open_url), WEBSITE"documentation.php", GDK_F1, 0, NULL); |
| 2706 gaim_new_item_from_stock(menu, _("Debug Window"), NULL, GTK_SIGNAL_FUNC(clicked_debug), NULL, 0, 0, NULL); | |
| 3882 | 2707 |
| 2708 gaim_separator(menu); | |
| 2709 | |
| 3880 | 2710 gaim_new_item_from_pixbuf(menu, _("About Gaim"), "about_menu.png", GTK_SIGNAL_FUNC(show_about), NULL, GDK_F1, GDK_CONTROL_MASK, NULL); |
| 3204 | 2711 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2712 gtk_widget_show(menubar); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2713 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2714 vbox = gtk_vbox_new(FALSE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2715 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2716 notebook = gtk_notebook_new(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2717 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2718 /* Do buddy list stuff */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2719 /* FIXME: spacing on both panes is ad hoc */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2720 buddypane = gtk_vbox_new(FALSE, 1); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2721 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2722 buddies = gtk_tree_new(); |
| 3131 | 2723 gtk_tree_set_view_lines(GTK_TREE(buddies), FALSE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2724 sw = gtk_scrolled_window_new(NULL, NULL); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2725 |
| 1 | 2726 tips = gtk_tooltips_new(); |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
2727 gtk_object_set_data(GTK_OBJECT(blist), _("Buddy List"), tips); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2728 |
| 1 | 2729 /* Now the buddy list */ |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2730 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), buddies); |
| 1 | 2731 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2732 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2733 gtk_widget_set_usize(sw, 200, 200); |
| 1 | 2734 gtk_widget_show(buddies); |
| 2735 gtk_widget_show(sw); | |
| 2736 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2737 gtk_box_pack_start(GTK_BOX(buddypane), sw, TRUE, TRUE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2738 gtk_widget_show(buddypane); |
| 1 | 2739 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2281
diff
changeset
|
2740 if (!(blist_options & OPT_BLIST_NO_BUTTONS)) |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
689
diff
changeset
|
2741 build_imchat_box(TRUE); |
| 1 | 2742 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2743 /* Swing the edit buddy */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2744 editpane = gtk_vbox_new(FALSE, 1); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2745 |
| 1 | 2746 edittree = gtk_ctree_new(1, 0); |
| 3152 | 2747 gtk_ctree_set_line_style(GTK_CTREE(edittree), GTK_CTREE_LINES_SOLID);; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2748 gtk_ctree_set_expander_style(GTK_CTREE(edittree), GTK_CTREE_EXPANDER_SQUARE); |
| 1 | 2749 gtk_clist_set_reorderable(GTK_CLIST(edittree), TRUE); |
|
1391
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
2750 gtk_signal_connect(GTK_OBJECT(edittree), "button_press_event", |
|
d606da211acb
[gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1376
diff
changeset
|
2751 GTK_SIGNAL_FUNC(click_edit_tree), NULL); |
| 1 | 2752 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2753 gtk_ctree_set_drag_compare_func(GTK_CTREE(edittree), |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2754 (GtkCTreeCompareDragFunc) edit_drag_compare_func); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2755 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2756 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2757 gtk_signal_connect_after(GTK_OBJECT(edittree), "tree_move", |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2758 GTK_SIGNAL_FUNC(edit_tree_move), NULL); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2759 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2760 |
| 1172 | 2761 bbox = gtk_hbox_new(TRUE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2762 gtk_container_set_border_width(GTK_CONTAINER(bbox), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2763 tbox = gtk_scrolled_window_new(NULL, NULL); |
| 3570 | 2764 |
| 2765 /* buttons */ | |
| 2766 addbutton = gtk_button_new_with_label(_("Add")); | |
| 2767 groupbutton = gtk_button_new_with_label(_("Group")); | |
| 2768 rembutton = gtk_button_new_with_label(_("Remove")); | |
| 2769 | |
| 3902 | 2770 gtk_button_set_relief(GTK_BUTTON(addbutton), GTK_RELIEF_NONE); |
| 2771 gtk_button_set_relief(GTK_BUTTON(groupbutton), GTK_RELIEF_NONE); | |
| 2772 gtk_button_set_relief(GTK_BUTTON(rembutton), GTK_RELIEF_NONE); | |
| 3570 | 2773 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2774 gtk_box_pack_start(GTK_BOX(bbox), addbutton, TRUE, TRUE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2775 gtk_box_pack_start(GTK_BOX(bbox), groupbutton, TRUE, TRUE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2776 gtk_box_pack_start(GTK_BOX(bbox), rembutton, TRUE, TRUE, 0); |
| 1 | 2777 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
2778 gtk_tooltips_set_tip(tips, addbutton, _("Add a new Buddy"), "Penguin"); |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
544
diff
changeset
|
2779 gtk_tooltips_set_tip(tips, groupbutton, _("Add a new Group"), "Penguin"); |
|
2134
6641141234b7
[gaim-migrate @ 2144]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2132
diff
changeset
|
2780 gtk_tooltips_set_tip(tips, rembutton, _("Remove selected Buddy/Group"), "Penguin"); |
| 1 | 2781 |
| 3570 | 2782 g_signal_connect(G_OBJECT(rembutton), "clicked", G_CALLBACK(do_del_buddy), edittree); |
| 2783 g_signal_connect(G_OBJECT(addbutton), "clicked", G_CALLBACK(add_buddy_callback), NULL); | |
| 2784 g_signal_connect(G_OBJECT(groupbutton), "clicked", G_CALLBACK(add_group_callback), NULL); | |
| 2785 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2786 /* And the boxes in the box */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2787 gtk_box_pack_start(GTK_BOX(editpane), tbox, TRUE, TRUE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2788 gtk_box_pack_start(GTK_BOX(editpane), bbox, FALSE, FALSE, 0); |
| 1 | 2789 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2790 /* Finish up */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2791 gtk_widget_show(addbutton); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2792 gtk_widget_show(groupbutton); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2793 gtk_widget_show(rembutton); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2794 gtk_widget_show(edittree); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2795 gtk_widget_show(tbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2796 gtk_widget_show(bbox); |
| 1 | 2797 gtk_widget_show(editpane); |
| 2798 | |
|
703
20553b584ccb
[gaim-migrate @ 713]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
700
diff
changeset
|
2799 update_button_pix(); |
|
20553b584ccb
[gaim-migrate @ 713]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
700
diff
changeset
|
2800 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2801 label = gtk_label_new(_("Online")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2802 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), buddypane, label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2803 label = gtk_label_new(_("Edit Buddies")); |
| 1 | 2804 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), editpane, label); |
| 2805 | |
| 3032 | 2806 if(blist_options & OPT_BLIST_BOTTOM_TAB) |
| 2807 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_BOTTOM); | |
| 2808 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2809 gtk_widget_show_all(notebook); |
| 1 | 2810 |
| 2811 /* Pack things in the vbox */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2812 gtk_widget_show(vbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2813 gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0); |
| 1 | 2814 gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2815 gtk_container_add(GTK_CONTAINER(blist), vbox); |
| 1 | 2816 |
| 3570 | 2817 g_signal_connect(G_OBJECT(blist), "delete_event", G_CALLBACK(close_buddy_list), NULL); |
| 2818 g_signal_connect(G_OBJECT(blist), "configure_event", G_CALLBACK(configure_blist_window), NULL); | |
| 3939 | 2819 g_signal_connect(G_OBJECT(blist), "visibility_notify_event", G_CALLBACK(visibility_blist_window), NULL); |
| 2820 | |
| 2821 gtk_widget_add_events(blist, GDK_VISIBILITY_NOTIFY_MASK); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2822 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2823 /* The edit tree */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2824 gtk_container_add(GTK_CONTAINER(tbox), edittree); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2825 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tbox), |
| 3558 | 2826 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
| 3630 | 2827 |
| 2828 #ifdef _WIN32 | |
|
3948
40258b6b5ecf
[gaim-migrate @ 4127]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3939
diff
changeset
|
2829 /* Register newly created window with systray module */ |
|
40258b6b5ecf
[gaim-migrate @ 4127]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3939
diff
changeset
|
2830 wgaim_created_blistwin(GTK_WIDGET(blist)); |
| 3630 | 2831 #endif |
| 1 | 2832 } |
| 2833 | |
| 3570 | 2834 void show_buddy_list() |
| 1 | 2835 { |
| 3570 | 2836 make_buddy_list(); |
| 2837 unhide_buddy_list(); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2838 build_edit_tree(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2334
diff
changeset
|
2839 update_button_pix(); |
| 1 | 2840 } |
