Wed, 28 Jun 2006 05:52:23 +0000
[gaim-migrate @ 16365]
Add ui for conversation. It 'works', but it's broken. So don't use it just yet.
I probably will not be able to touch it in the next couple of days. So feel
free to fix the brokenness :)
|
13939
76fa1e736c99
[gaim-migrate @ 16354]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13931
diff
changeset
|
1 | #include <account.h> |
|
76fa1e736c99
[gaim-migrate @ 16354]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13931
diff
changeset
|
2 | #include <blist.h> |
|
76fa1e736c99
[gaim-migrate @ 16354]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13931
diff
changeset
|
3 | #include <server.h> |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
4 | #include <signal.h> |
|
13939
76fa1e736c99
[gaim-migrate @ 16354]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13931
diff
changeset
|
5 | #include <util.h> |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
6 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
7 | #include "gntgaim.h" |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
8 | #include "gntbox.h" |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
9 | #include "gnttree.h" |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
10 | |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
11 | #include "gntblist.h" |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
12 | #include <string.h> |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
13 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
14 | typedef struct |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
15 | { |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
16 | GntWidget *window; |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
17 | GntWidget *tree; |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
18 | |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
19 | GntWidget *tooltip; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
20 | GaimBlistNode *tnode; /* Who is the tooltip being displayed for? */ |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
21 | } GGBlist; |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
22 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
23 | GGBlist *ggblist; |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
24 | |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
25 | static void add_buddy(GaimBuddy *buddy, GGBlist *ggblist); |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
26 | static void add_group(GaimGroup *group, GGBlist *ggblist); |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
27 | static void add_chat(GaimChat *chat, GGBlist *ggblist); |
|
13927
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
28 | static void add_node(GaimBlistNode *node, GGBlist *ggblist); |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
29 | static void draw_tooltip(GGBlist *ggblist); |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
30 | |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
31 | static void |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
32 | new_node(GaimBlistNode *node) |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
33 | { |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
34 | } |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
35 | |
|
13927
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
36 | static void add_node(GaimBlistNode *node, GGBlist *ggblist) |
|
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
37 | { |
|
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
38 | if (GAIM_BLIST_NODE_IS_BUDDY(node)) |
|
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
39 | add_buddy((GaimBuddy*)node, ggblist); |
|
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
40 | else if (GAIM_BLIST_NODE_IS_GROUP(node)) |
|
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
41 | add_group((GaimGroup*)node, ggblist); |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
42 | else if (GAIM_BLIST_NODE_IS_CHAT(node)) |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
43 | add_chat((GaimChat *)node, ggblist); |
|
13927
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
44 | draw_tooltip(ggblist); |
|
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
45 | } |
|
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
46 | |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
47 | static void |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
48 | remove_tooltip(GGBlist *ggblist) |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
49 | { |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
50 | gnt_widget_destroy(ggblist->tooltip); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
51 | ggblist->tooltip = NULL; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
52 | ggblist->tnode = NULL; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
53 | } |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
54 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
55 | static void |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
56 | node_remove(GaimBuddyList *list, GaimBlistNode *node) |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
57 | { |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
58 | GGBlist *ggblist = list->ui_data; |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
59 | |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
60 | if (node->ui_data == NULL) |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
61 | return; |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
62 | |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
63 | gnt_tree_remove(GNT_TREE(ggblist->tree), node); |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
64 | node->ui_data = NULL; |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
65 | |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
66 | /* XXX: Depending on the node, we may want to remove the group/contact node if necessary */ |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
67 | if (GAIM_BLIST_NODE_IS_BUDDY(node)) |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
68 | { |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
69 | GaimGroup *group = gaim_buddy_get_group((GaimBuddy*)node); |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
70 | if (gaim_blist_get_group_online_count(group) == 0) |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
71 | node_remove(list, (GaimBlistNode*)group); |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
72 | } |
|
13927
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
73 | draw_tooltip(ggblist); |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
74 | } |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
75 | |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
76 | static void |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
77 | node_update(GaimBuddyList *list, GaimBlistNode *node) |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
78 | { |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
79 | if (GAIM_BLIST_NODE_IS_BUDDY(node)) |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
80 | { |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
81 | GaimBuddy *buddy = (GaimBuddy*)node; |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
82 | if (gaim_presence_is_online(gaim_buddy_get_presence(buddy))) |
|
13927
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
83 | add_node((GaimBlistNode*)buddy, list->ui_data); |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
84 | else |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
85 | node_remove(gaim_get_blist(), node); |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
86 | } |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
87 | else if (GAIM_BLIST_NODE_IS_CHAT(node)) |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
88 | { |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
89 | add_chat((GaimChat *)node, list->ui_data); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
90 | } |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
91 | } |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
92 | |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
93 | static void |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
94 | new_list(GaimBuddyList *list) |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
95 | { |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
96 | } |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
97 | |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
98 | static GaimBlistUiOps blist_ui_ops = |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
99 | { |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
100 | new_list, |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
101 | new_node, |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
102 | NULL, |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
103 | node_update, /* This doesn't do crap */ |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
104 | node_remove, |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
105 | NULL, |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
106 | NULL, |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
107 | NULL, |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
108 | NULL, |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
109 | NULL |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
110 | }; |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
111 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
112 | static gpointer |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
113 | gg_blist_get_handle() |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
114 | { |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
115 | static int handle; |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
116 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
117 | return &handle; |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
118 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
119 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
120 | static void |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
121 | add_group(GaimGroup *group, GGBlist *ggblist) |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
122 | { |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
123 | GaimBlistNode *node = (GaimBlistNode *)group; |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
124 | if (node->ui_data) |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
125 | return; |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
126 | node->ui_data = gnt_tree_add_row_after(GNT_TREE(ggblist->tree), group, |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
127 | group->name, NULL, NULL); |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
128 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
129 | |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
130 | static const char * |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
131 | get_display_name(GaimBlistNode *node) |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
132 | { |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
133 | static char text[2096]; |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
134 | char status[8] = " "; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
135 | const char *name = NULL; |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
136 | |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
137 | if (GAIM_BLIST_NODE_IS_BUDDY(node)) |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
138 | { |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
139 | GaimBuddy *buddy = (GaimBuddy *)node; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
140 | GaimStatusPrimitive prim; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
141 | GaimPresence *presence; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
142 | GaimStatus *now; |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
143 | |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
144 | |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
145 | presence = gaim_buddy_get_presence(buddy); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
146 | now = gaim_presence_get_active_status(presence); |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
147 | |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
148 | prim = gaim_status_type_get_primitive(gaim_status_get_type(now)); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
149 | |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
150 | switch(prim) |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
151 | { |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
152 | #if 1 |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
153 | case GAIM_STATUS_OFFLINE: |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
154 | strncpy(status, "x", sizeof(status) - 1); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
155 | break; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
156 | case GAIM_STATUS_AVAILABLE: |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
157 | strncpy(status, "o", sizeof(status) - 1); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
158 | break; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
159 | default: |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
160 | strncpy(status, ".", sizeof(status) - 1); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
161 | break; |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
162 | #else |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
163 | /* XXX: Let's use these some time */ |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
164 | case GAIM_STATUS_OFFLINE: |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
165 | strncpy(status, "⊗", sizeof(status) - 1); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
166 | break; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
167 | case GAIM_STATUS_AVAILABLE: |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
168 | /* XXX: Detect idleness */ |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
169 | strncpy(status, "â—¯", sizeof(status) - 1); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
170 | break; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
171 | default: |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
172 | strncpy(status, "⊖", sizeof(status) - 1); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
173 | break; |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
174 | #endif |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
175 | } |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
176 | name = gaim_buddy_get_alias(buddy); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
177 | } |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
178 | else if (GAIM_BLIST_NODE_IS_CHAT(node)) |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
179 | { |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
180 | GaimChat *chat = (GaimChat*)node; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
181 | name = gaim_chat_get_name(chat); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
182 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
183 | strncpy(status, "~", sizeof(status) - 1); |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
184 | } |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
185 | |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
186 | snprintf(text, sizeof(text) - 1, "%s %s", status, name); |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
187 | |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
188 | return text; |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
189 | } |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
190 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
191 | static void |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
192 | add_chat(GaimChat *chat, GGBlist *ggblist) |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
193 | { |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
194 | GaimGroup *group; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
195 | GaimBlistNode *node = (GaimBlistNode *)chat; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
196 | if (node->ui_data) |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
197 | return; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
198 | |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
199 | group = gaim_chat_get_group(chat); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
200 | add_node((GaimBlistNode*)group, ggblist); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
201 | |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
202 | node->ui_data = gnt_tree_add_row_after(GNT_TREE(ggblist->tree), chat, |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
203 | get_display_name(node), group, NULL); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
204 | } |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
205 | |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
206 | static void |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
207 | add_buddy(GaimBuddy *buddy, GGBlist *ggblist) |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
208 | { |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
209 | GaimGroup *group; |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
210 | GaimBlistNode *node = (GaimBlistNode *)buddy; |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
211 | if (node->ui_data) |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
212 | return; |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
213 | |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
214 | group = gaim_buddy_get_group(buddy); |
|
13927
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
215 | add_node((GaimBlistNode*)group, ggblist); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
216 | |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
217 | node->ui_data = gnt_tree_add_row_after(GNT_TREE(ggblist->tree), buddy, |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
218 | get_display_name(node), group, NULL); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
219 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
220 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
221 | static void |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
222 | buddy_signed_on(GaimBuddy *buddy, GGBlist *ggblist) |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
223 | { |
|
13927
c2f57a00bc1f
[gaim-migrate @ 16331]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13926
diff
changeset
|
224 | add_node((GaimBlistNode*)buddy, ggblist); |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
225 | } |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
226 | |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
227 | static void |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
228 | buddy_signed_off(GaimBuddy *buddy, GGBlist *ggblist) |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
229 | { |
|
13923
5552f69232b8
[gaim-migrate @ 16322]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
230 | node_remove(gaim_get_blist(), (GaimBlistNode*)buddy); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
231 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
232 | |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
233 | GaimBlistUiOps *gg_blist_get_ui_ops() |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
234 | { |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
235 | return &blist_ui_ops; |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
236 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
237 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
238 | static void |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
239 | selection_activate(GntWidget *widget, GGBlist *ggblist) |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
240 | { |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
241 | gnt_widget_set_focus(widget, FALSE); |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
242 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
243 | |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
244 | static void |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
245 | draw_tooltip(GGBlist *ggblist) |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
246 | { |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
247 | GaimBlistNode *node; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
248 | int x, y, top, width; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
249 | GString *str; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
250 | GaimPlugin *prpl; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
251 | GaimPluginProtocolInfo *prpl_info; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
252 | GaimAccount *account; |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
253 | GntTree *tree; |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
254 | GntWidget *widget, *box, *label; |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
255 | char *title = NULL; |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
256 | |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
257 | widget = ggblist->tree; |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
258 | tree = GNT_TREE(widget); |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
259 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
260 | if (ggblist->tooltip) |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
261 | { |
|
13931
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13927
diff
changeset
|
262 | /* XXX: Once we can properly redraw on expose events, this can be removed at the end |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13927
diff
changeset
|
263 | * to avoid the blinking*/ |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
264 | remove_tooltip(ggblist); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
265 | } |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
266 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
267 | node = gnt_tree_get_selection_data(tree); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
268 | if (!node) |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
269 | return; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
270 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
271 | str = g_string_new(""); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
272 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
273 | if (GAIM_BLIST_NODE_IS_BUDDY(node)) |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
274 | { |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
275 | GaimBuddy *buddy = (GaimBuddy *)node; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
276 | account = gaim_buddy_get_account(buddy); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
277 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
278 | g_string_append_printf(str, _("Account: %s"), gaim_account_get_username(account)); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
279 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
280 | prpl = gaim_find_prpl(gaim_account_get_protocol_id(account)); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
281 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(prpl); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
282 | if (prpl_info && prpl_info->tooltip_text) |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
283 | { |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
284 | GString *tip = g_string_new(""); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
285 | char *strip, *br; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
286 | prpl_info->tooltip_text(buddy, tip, TRUE); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
287 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
288 | br = gaim_strreplace(tip->str, "\n", "<br>"); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
289 | strip = gaim_markup_strip_html(br); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
290 | g_string_append(str, strip); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
291 | g_string_free(tip, TRUE); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
292 | g_free(strip); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
293 | g_free(br); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
294 | } |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
295 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
296 | title = g_strdup(gaim_buddy_get_name(buddy)); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
297 | } |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
298 | else if (GAIM_BLIST_NODE_IS_GROUP(node)) |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
299 | { |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
300 | GaimGroup *group = (GaimGroup *)node; |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
301 | |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
302 | g_string_append_printf(str, _("Online: %d\nTotal: %d"), |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
303 | gaim_blist_get_group_online_count(group), |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
304 | gaim_blist_get_group_size(group, FALSE)); |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
305 | |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
306 | title = g_strdup(group->name); |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
307 | } |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
308 | else if (GAIM_BLIST_NODE_IS_CHAT(node)) |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
309 | { |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
310 | GaimChat *chat = (GaimChat *)node; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
311 | GaimAccount *account = chat->account; |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
312 | |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
313 | g_string_append_printf(str, _("Account: %s"), gaim_account_get_username(account)); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
314 | |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
315 | title = g_strdup(gaim_chat_get_name(chat)); |
|
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
316 | } |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
317 | else |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
318 | { |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
319 | g_string_free(str, TRUE); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
320 | return; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
321 | } |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
322 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
323 | gnt_widget_get_position(widget, &x, &y); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
324 | gnt_widget_get_size(widget, &width, NULL); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
325 | top = gnt_tree_get_selection_visible_line(tree); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
326 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
327 | x += width; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
328 | y += top - 1; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
329 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
330 | box = gnt_box_new(FALSE, FALSE); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
331 | gnt_box_set_toplevel(GNT_BOX(box), TRUE); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
332 | GNT_WIDGET_SET_FLAGS(box, GNT_WIDGET_NO_SHADOW); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
333 | gnt_box_set_title(GNT_BOX(box), title); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
334 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
335 | gnt_box_add_widget(GNT_BOX(box), GNT_WIDGET(gnt_label_new(str->str))); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
336 | |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
337 | gnt_widget_set_position(box, x, y); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
338 | gnt_widget_draw(box); |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
339 | |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
340 | g_free(title); |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
341 | g_string_free(str, TRUE); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
342 | ggblist->tooltip = box; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
343 | ggblist->tnode = node; |
|
13931
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13927
diff
changeset
|
344 | |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13927
diff
changeset
|
345 | gnt_widget_set_name(ggblist->tooltip, "tooltip"); |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
346 | } |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
347 | |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
348 | static void |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
349 | selection_changed(GntWidget *widget, gpointer old, gpointer current, GGBlist *ggblist) |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
350 | { |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
351 | draw_tooltip(ggblist); |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
352 | } |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
353 | |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
354 | |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
355 | static gboolean |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
356 | key_pressed(GntWidget *widget, const char *text, GGBlist *ggblist) |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
357 | { |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
358 | if (text[0] == 27 && text[1] == 0) |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
359 | { |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
360 | /* Escape was pressed */ |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
361 | if (ggblist->tooltip) |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
362 | { |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
363 | gnt_widget_destroy(ggblist->tooltip); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
364 | ggblist->tooltip = NULL; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
365 | return TRUE; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
366 | } |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
367 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
368 | else if (text[0] == '\r' && text[1] == '\0') |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
369 | { |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
370 | GntTree *tree = GNT_TREE(ggblist->tree); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
371 | GaimBlistNode *node = gnt_tree_get_selection_data(tree); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
372 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
373 | if (GAIM_BLIST_NODE_IS_BUDDY(node)) |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
374 | { |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
375 | GaimBuddy *buddy = (GaimBuddy *)node; |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
376 | gaim_conversation_new(GAIM_CONV_TYPE_IM, |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
377 | gaim_buddy_get_account(buddy), |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
378 | gaim_buddy_get_name(buddy)); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
379 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
380 | else if (GAIM_BLIST_NODE_IS_CHAT(node)) |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
381 | { |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
382 | GaimChat *chat = (GaimChat*)node; |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
383 | serv_join_chat(chat->account->gc, chat->components); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
384 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
385 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13946
diff
changeset
|
386 | |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
387 | return FALSE; |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
388 | } |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
389 | |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
390 | static void |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
391 | buddy_status_changed(GaimBuddy *buddy, GaimStatus *old, GaimStatus *now, GGBlist *ggblist) |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
392 | { |
|
13946
c895c1eeb4d7
[gaim-migrate @ 16364]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13939
diff
changeset
|
393 | gnt_tree_change_text(GNT_TREE(ggblist->tree), buddy, get_display_name((GaimBlistNode*)buddy)); |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
394 | if (ggblist->tnode == (GaimBlistNode*)buddy) |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
395 | draw_tooltip(ggblist); |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
396 | } |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
397 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
398 | void gg_blist_init() |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
399 | { |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
400 | ggblist = g_new0(GGBlist, 1); |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
401 | |
|
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
402 | gaim_get_blist()->ui_data = ggblist; |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
403 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
404 | ggblist->window = gnt_box_new(FALSE, FALSE); |
|
13931
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13927
diff
changeset
|
405 | gnt_widget_set_name(ggblist->window, "buddylist"); |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
406 | gnt_box_set_toplevel(GNT_BOX(ggblist->window), TRUE); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
407 | gnt_box_set_title(GNT_BOX(ggblist->window), _("Buddy List")); |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
408 | gnt_box_set_pad(GNT_BOX(ggblist->window), 0); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
409 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
410 | ggblist->tree = gnt_tree_new(); |
|
13915
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
411 | GNT_WIDGET_SET_FLAGS(ggblist->tree, GNT_WIDGET_NO_BORDER); |
|
15a38b312abe
[gaim-migrate @ 16312]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
412 | gnt_widget_set_size(ggblist->tree, 25, getmaxy(stdscr) - 2); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
413 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
414 | gnt_box_add_widget(GNT_BOX(ggblist->window), ggblist->tree); |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
415 | gnt_widget_show(ggblist->window); |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
416 | |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
417 | gaim_signal_connect(gaim_blist_get_handle(), "buddy-status-changed", gg_blist_get_handle(), |
|
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
418 | GAIM_CALLBACK(buddy_status_changed), ggblist); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
419 | |
|
13926
d2c1522276b3
[gaim-migrate @ 16328]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13923
diff
changeset
|
420 | #if 0 |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
421 | gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-on", gg_blist_get_handle(), |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
422 | GAIM_CALLBACK(buddy_signed_on), ggblist); |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
423 | gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-off", gg_blist_get_handle(), |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
424 | GAIM_CALLBACK(buddy_signed_off), ggblist); |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
425 | |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
426 | /* These I plan to use to indicate unread-messages etc. */ |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
427 | gaim_signal_connect(gaim_conversations_get_handle(), "received-im-msg", gg_blist_get_handle(), |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
428 | GAIM_CALLBACK(received_im_msg), list); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
429 | gaim_signal_connect(gaim_conversations_get_handle(), "sent-im-msg", gg_blist_get_handle(), |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
430 | GAIM_CALLBACK(sent_im_msg), NULL); |
|
13919
94caf5dc02b4
[gaim-migrate @ 16316]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13915
diff
changeset
|
431 | |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
432 | gaim_signal_connect(gaim_conversations_get_handle(), "received-chat-msg", gg_blist_get_handle(), |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
433 | GAIM_CALLBACK(received_chat_msg), list); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
434 | #endif |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
435 | |
|
13922
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
436 | g_signal_connect(G_OBJECT(ggblist->tree), "selection_changed", G_CALLBACK(selection_changed), ggblist); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
437 | g_signal_connect(G_OBJECT(ggblist->tree), "key_pressed", G_CALLBACK(key_pressed), ggblist); |
|
7195a6fe2416
[gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13920
diff
changeset
|
438 | g_signal_connect(G_OBJECT(ggblist->tree), "activate", G_CALLBACK(selection_activate), ggblist); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
439 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
440 |