annotate src/buddy.c @ 4665:818ee615b025

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