Fri, 27 Jun 2008 01:29:59 +0000
Working sound themes (option 1) theme is saved in prefs and there is no seperate custom theme, everything
else is backwards compatiable, sound plays but the theme is not always found
|
22287
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1 | /** |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2 | * @file grouping.c Provides different grouping options. |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
3 | * |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
4 | * Copyright (C) 2008 Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
5 | * |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
6 | * This program is free software; you can redistribute it and/or modify |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
7 | * it under the terms of the GNU General Public License as published by |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
8 | * the Free Software Foundation; either version 2 of the License, or |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
9 | * (at your option) any later version. |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
10 | * |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
11 | * This program is distributed in the hope that it will be useful, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
14 | * GNU General Public License for more details. |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
15 | * |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
16 | * You should have received a copy of the GNU General Public License |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
17 | * along with this program; if not, write to the Free Software |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
19 | */ |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
20 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
21 | #define PURPLE_PLUGIN |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
22 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
23 | #include "internal.h" |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
24 | #include "purple.h" |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
25 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
26 | #include "gntblist.h" |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | #include "gntplugin.h" |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
28 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
29 | #include "gnttree.h" |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
30 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
31 | /** |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
32 | * Online/Offline |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
33 | */ |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
34 | static PurpleBlistNode online = {.type = PURPLE_BLIST_OTHER_NODE}, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
35 | offline = {.type = PURPLE_BLIST_OTHER_NODE}; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
36 | |
|
22312
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
37 | static gboolean on_offline_init() |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
38 | { |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
39 | GntTree *tree = finch_blist_get_tree(); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
40 | |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
41 | gnt_tree_add_row_after(tree, &online, |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
42 | gnt_tree_create_row(tree, _("Online")), NULL, NULL); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
43 | gnt_tree_add_row_after(tree, &offline, |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
44 | gnt_tree_create_row(tree, _("Offline")), NULL, &online); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
45 | |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
46 | return TRUE; |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
47 | } |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
48 | |
|
22287
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
49 | static gboolean on_offline_can_add_node(PurpleBlistNode *node) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
50 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
51 | switch (purple_blist_node_get_type(node)) { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
52 | case PURPLE_BLIST_CONTACT_NODE: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
53 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
54 | PurpleContact *contact = (PurpleContact*)node; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
55 | if (contact->currentsize > 0) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
56 | return TRUE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
57 | return FALSE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
58 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
59 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
60 | case PURPLE_BLIST_BUDDY_NODE: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
61 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
62 | PurpleBuddy *buddy = (PurpleBuddy*)node; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
63 | if (PURPLE_BUDDY_IS_ONLINE(buddy)) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
64 | return TRUE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
65 | if (purple_prefs_get_bool("/finch/blist/showoffline") && |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
66 | purple_account_is_connected(purple_buddy_get_account(buddy))) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
67 | return TRUE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
68 | return FALSE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
69 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
70 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
71 | case PURPLE_BLIST_CHAT_NODE: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
72 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
73 | PurpleChat *chat = (PurpleChat*)node; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
74 | return purple_account_is_connected(purple_chat_get_account(chat)); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
75 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
76 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
77 | default: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
78 | return FALSE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
79 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
80 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
81 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
82 | static gpointer on_offline_find_parent(PurpleBlistNode *node) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
83 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
84 | gpointer ret = NULL; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
85 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
86 | switch (purple_blist_node_get_type(node)) { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
87 | case PURPLE_BLIST_CONTACT_NODE: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
88 | node = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)node); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
89 | ret = PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node) ? &online : &offline; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
90 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
91 | case PURPLE_BLIST_BUDDY_NODE: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
92 | ret = purple_blist_node_get_parent(node); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
93 | finch_blist_manager_add_node(ret); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
94 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
95 | case PURPLE_BLIST_CHAT_NODE: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
96 | ret = &online; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
97 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
98 | default: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
99 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
100 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
101 | return ret; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
102 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
103 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
104 | static gboolean on_offline_create_tooltip(gpointer selected_row, GString **body, char **tool_title) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
105 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
106 | static FinchBlistManager *def = NULL; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
107 | PurpleBlistNode *node = selected_row; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
108 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
109 | if (def == NULL) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
110 | def = finch_blist_manager_find("default"); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
111 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
112 | if (purple_blist_node_get_type(node) == PURPLE_BLIST_OTHER_NODE) { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
113 | /* There should be some easy way of getting the total online count, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
114 | * or total number of chats. Doing a loop here will probably be pretty |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
115 | * expensive. */ |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
116 | if (body) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
117 | *body = g_string_new(node == &online ? _("Online Buddies") : _("Offline Buddies")); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
118 | return TRUE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
119 | } else { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
120 | return def ? def->create_tooltip(selected_row, body, tool_title) : FALSE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
121 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
122 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
123 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
124 | static FinchBlistManager on_offline = |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
125 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
126 | "on-offline", |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
127 | N_("Online/Offline"), |
|
22312
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
128 | on_offline_init, |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
129 | NULL, |
|
22287
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
130 | on_offline_can_add_node, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
131 | on_offline_find_parent, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
132 | on_offline_create_tooltip, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
133 | {NULL, NULL, NULL, NULL} |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
134 | }; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
135 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
136 | /** |
|
22309
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
137 | * Meebo-like Grouping. |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
138 | */ |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
139 | static PurpleBlistNode meebo = {.type = PURPLE_BLIST_OTHER_NODE}; |
|
22312
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
140 | static gboolean meebo_init() |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
141 | { |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
142 | GntTree *tree = finch_blist_get_tree(); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
143 | if (!g_list_find(gnt_tree_get_rows(tree), &meebo)) { |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
144 | gnt_tree_add_row_last(tree, &meebo, |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
145 | gnt_tree_create_row(tree, _("Offline")), NULL); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
146 | } |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
147 | return TRUE; |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
148 | } |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
149 | |
|
22309
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
150 | static gpointer meebo_find_parent(PurpleBlistNode *node) |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
151 | { |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
152 | static FinchBlistManager *def = NULL; |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
153 | if (def == NULL) |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
154 | def = finch_blist_manager_find("default"); |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
155 | |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
156 | if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
157 | PurpleBuddy *buddy = purple_contact_get_priority_buddy((PurpleContact*)node); |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
158 | if (buddy && !PURPLE_BUDDY_IS_ONLINE(buddy)) { |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
159 | return &meebo; |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
160 | } |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
161 | } |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
162 | return def->find_parent(node); |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
163 | } |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
164 | |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
165 | static FinchBlistManager meebo_group = |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
166 | { |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
167 | "meebo", |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
168 | N_("Meebo"), |
|
22312
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
169 | meebo_init, |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
170 | NULL, |
|
22309
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
171 | NULL, |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
172 | meebo_find_parent, |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
173 | NULL, |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
174 | {NULL, NULL, NULL, NULL} |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
175 | }; |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
176 | |
|
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
177 | /** |
|
22287
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
178 | * No Grouping. |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
179 | */ |
|
22312
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
180 | static gboolean no_group_init() |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
181 | { |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
182 | GntTree *tree = finch_blist_get_tree(); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
183 | g_object_set(G_OBJECT(tree), "expander-level", 0, NULL); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
184 | return TRUE; |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
185 | } |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
186 | |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
187 | static gboolean no_group_uninit() |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
188 | { |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
189 | GntTree *tree = finch_blist_get_tree(); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
190 | g_object_set(G_OBJECT(tree), "expander-level", 1, NULL); |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
191 | return TRUE; |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
192 | } |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
193 | |
|
22287
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
194 | static gboolean no_group_can_add_node(PurpleBlistNode *node) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
195 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
196 | return on_offline_can_add_node(node); /* These happen to be the same */ |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
197 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
198 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
199 | static gpointer no_group_find_parent(PurpleBlistNode *node) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
200 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
201 | gpointer ret = NULL; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
202 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
203 | switch (purple_blist_node_get_type(node)) { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
204 | case PURPLE_BLIST_BUDDY_NODE: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
205 | ret = purple_blist_node_get_parent(node); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
206 | finch_blist_manager_add_node(ret); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
207 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
208 | default: |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
209 | break; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
210 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
211 | return ret; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
212 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
213 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
214 | static FinchBlistManager no_group = |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
215 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
216 | "no-group", |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
217 | N_("No Grouping"), |
|
22312
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
218 | no_group_init, |
|
dae4ed366fcb
Init and uninit the buddylist managers at appropriate times.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22309
diff
changeset
|
219 | no_group_uninit, |
|
22287
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
220 | no_group_can_add_node, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
221 | no_group_find_parent, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
222 | NULL, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
223 | {NULL, NULL, NULL, NULL} |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
224 | }; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
225 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
226 | static gboolean |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
227 | plugin_load(PurplePlugin *plugin) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
228 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
229 | finch_blist_install_manager(&on_offline); |
|
22309
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
230 | finch_blist_install_manager(&meebo_group); |
|
22287
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
231 | finch_blist_install_manager(&no_group); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
232 | return TRUE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
233 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
234 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
235 | static gboolean |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
236 | plugin_unload(PurplePlugin *plugin) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
237 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
238 | finch_blist_uninstall_manager(&on_offline); |
|
22309
2a55a6e3d4b0
Add a meebo-like grouping, where online contacts show up under the default
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22287
diff
changeset
|
239 | finch_blist_uninstall_manager(&meebo_group); |
|
22287
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
240 | finch_blist_uninstall_manager(&no_group); |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
241 | return TRUE; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
242 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
243 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
244 | static PurplePluginInfo info = |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
245 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
246 | PURPLE_PLUGIN_MAGIC, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
247 | PURPLE_MAJOR_VERSION, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
248 | PURPLE_MINOR_VERSION, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
249 | PURPLE_PLUGIN_STANDARD, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
250 | FINCH_PLUGIN_TYPE, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
251 | 0, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
252 | NULL, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
253 | PURPLE_PRIORITY_DEFAULT, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
254 | "grouping", |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
255 | N_("Grouping"), |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
256 | VERSION, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
257 | N_("Provides alternate buddylist grouping options."), |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
258 | N_("Provides alternate buddylist grouping options."), |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
259 | "Sadrul H Chowdhury <sadrul@users.sourceforge.net>", |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
260 | PURPLE_WEBSITE, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
261 | plugin_load, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
262 | plugin_unload, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
263 | NULL, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
264 | NULL, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
265 | NULL, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
266 | NULL, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
267 | NULL, |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
268 | NULL,NULL,NULL,NULL |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
269 | }; |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
270 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
271 | static void |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
272 | init_plugin(PurplePlugin *plugin) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
273 | { |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
274 | } |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
275 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
276 | PURPLE_INIT_PLUGIN(ignore, init_plugin, info) |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
277 | |
|
f4d9dcb92863
Add a plugin to provide 'Online/Offline' grouping and no grouping.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
278 |