finch/plugins/grouping.c

Fri, 27 Jun 2008 01:29:59 +0000

author
Justin Rodriguez <ffdragon@soc.pidgin.im>
date
Fri, 27 Jun 2008 01:29:59 +0000
branch
soc.2008.themes
changeset 23649
5da5fe967d10
parent 22312
dae4ed366fcb
child 24226
516c279cefea
permissions
-rw-r--r--

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

mercurial