Mercurial > pidgin.yaz
annotate finch/gntblist.h @ 22171:2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
in 'Online/Offline' grouping, account-specific grouping, no-grouping, or even
multi-level grouping.
The same can be done for Pidgin. I think it'd be cool if someone does that.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Tue, 22 Jan 2008 07:38:01 +0000 |
parents | acf284962b40 |
children | bcaf4a037704 |
rev | line source |
---|---|
15818 | 1 /** |
2 * @file gntblist.h GNT BuddyList API | |
16194
0f0832c13fcb
Rename the Doxygen group from gntui to finch and define the finch group
Richard Laager <rlaager@wiktel.com>
parents:
15871
diff
changeset
|
3 * @ingroup finch |
20074
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
4 */ |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
5 |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
6 /* finch |
15818 | 7 * |
15871
66dff3dfdea6
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@wiktel.com>
parents:
15823
diff
changeset
|
8 * Finch is the legal property of its developers, whose names are too numerous |
15818 | 9 * to list here. Please refer to the COPYRIGHT file distributed with this |
10 * source distribution. | |
11 * | |
12 * This program is free software; you can redistribute it and/or modify | |
13 * it under the terms of the GNU General Public License as published by | |
14 * the Free Software Foundation; either version 2 of the License, or | |
15 * (at your option) any later version. | |
16 * | |
17 * This program is distributed in the hope that it will be useful, | |
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 * GNU General Public License for more details. | |
21 * | |
22 * You should have received a copy of the GNU General Public License | |
23 * along with this program; if not, write to the Free Software | |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
17520
diff
changeset
|
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15818 | 25 */ |
26 #ifndef _GNT_BLIST_H | |
27 #define _GNT_BLIST_H | |
28 | |
29 #include "blist.h" | |
22171
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
30 #include "gnttree.h" |
15818 | 31 |
32 /********************************************************************** | |
33 * @name GNT BuddyList API | |
34 **********************************************************************/ | |
35 /*@{*/ | |
36 | |
22171
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
37 typedef struct |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
38 { |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
39 const char *id; /**< An identifier for the manager. */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
40 const char *name; /**< Displayable name for the manager. */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
41 gboolean (*can_add_node)(PurpleBlistNode *node); /**< Whether a node should be added to the view. */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
42 gpointer (*find_parent)(PurpleBlistNode *node); /**< Find the parent row for a node. */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
43 gboolean (*create_tooltip)(gpointer selected_row, GString **body, char **title); /**< Create tooltip for a selected row. */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
44 gpointer reserved[4]; |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
45 } FinchBlistManager; |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
46 |
15818 | 47 /** |
48 * Get the ui-functions. | |
49 * | |
15823 | 50 * @return The PurpleBlistUiOps structure populated with the appropriate functions. |
15818 | 51 */ |
15823 | 52 PurpleBlistUiOps * finch_blist_get_ui_ops(void); |
15818 | 53 |
54 /** | |
55 * Perform necessary initializations. | |
56 */ | |
57 void finch_blist_init(void); | |
58 | |
59 /** | |
60 * Perform necessary uninitializations. | |
61 */ | |
62 void finch_blist_uninit(void); | |
63 | |
64 /** | |
65 * Show the buddy list. | |
66 */ | |
67 void finch_blist_show(void); | |
68 | |
69 /** | |
70 * Get the position of the buddy list. | |
71 * | |
72 * @param x The x-coordinate is set here if not @ NULL. | |
73 * @param y The y-coordinate is set here if not @c NULL. | |
74 * | |
75 * @return Returns @c TRUE if the values were set, @c FALSE otherwise. | |
76 */ | |
77 gboolean finch_blist_get_position(int *x, int *y); | |
78 | |
79 /** | |
80 * Set the position of the buddy list. | |
81 * | |
82 * @param x The x-coordinate of the buddy list. | |
83 * @param y The y-coordinate of the buddy list. | |
84 */ | |
85 void finch_blist_set_position(int x, int y); | |
86 | |
87 /** | |
88 * Get the size of the buddy list. | |
89 * | |
90 * @param width The width is set here if not @ NULL. | |
91 * @param height The height is set here if not @c NULL. | |
92 * | |
93 * @return Returns @c TRUE if the values were set, @c FALSE otherwise. | |
94 */ | |
95 gboolean finch_blist_get_size(int *width, int *height); | |
96 | |
97 /** | |
98 * Set the size of the buddy list. | |
99 * | |
100 * @param width The width of the buddy list. | |
101 * @param height The height of the buddy list. | |
102 */ | |
103 void finch_blist_set_size(int width, int height); | |
104 | |
17275
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16194
diff
changeset
|
105 /** |
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16194
diff
changeset
|
106 * Get information about a user. Show immediate feedback. |
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16194
diff
changeset
|
107 * |
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16194
diff
changeset
|
108 * @param conn The connection to get information fro |
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16194
diff
changeset
|
109 * @param name The user to get information about. |
17520
464840043c66
Show information about the user requesting authorization.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
110 * |
464840043c66
Show information about the user requesting authorization.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
111 * @return Returns the ui-handle for the userinfo notification. |
20874
acf284962b40
Add @since doxygen tags for finch/libgnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20074
diff
changeset
|
112 * |
acf284962b40
Add @since doxygen tags for finch/libgnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20074
diff
changeset
|
113 * @since 2.1.0 |
17275
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16194
diff
changeset
|
114 */ |
17520
464840043c66
Show information about the user requesting authorization.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17275
diff
changeset
|
115 gpointer finch_retrieve_user_info(PurpleConnection *conn, const char *name); |
17275
319bcb73eb4e
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16194
diff
changeset
|
116 |
22171
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
117 /** |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
118 * Get the tree list of the buddy list. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
119 * @return The GntTree widget. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
120 * @since 2.4.0 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
121 */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
122 GntTree * finch_blist_get_tree(void); |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
123 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
124 /** |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
125 * Add an alternate buddy list manager. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
126 * |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
127 * @param manager The alternate buddylist manager. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
128 * @since 2.4.0 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
129 */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
130 void finch_blist_install_manager(const FinchBlistManager *manager); |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
131 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
132 /** |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
133 * Remove an alternate buddy list manager. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
134 * |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
135 * @param manager The buddy list manager to remove. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
136 * @since 2.4.0 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
137 */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
138 void finch_blist_uninstall_manager(const FinchBlistManager *manager); |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
139 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
140 /** |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
141 * Find a buddy list manager. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
142 * |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
143 * @param id The identifier for the desired buddy list manager. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
144 * |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
145 * @return The manager with the requested identifier, if available. @c NULL otherwise. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
146 * @since 2.4.0 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
147 */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
148 FinchBlistManager * finch_blist_manager_find(const char *id); |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
149 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
150 /** |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
151 * Request the active buddy list manager to add a node. |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
152 * |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
153 * @param node The node to add |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
154 * @since 2.4.0 |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
155 */ |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
156 void finch_blist_manager_add_node(PurpleBlistNode *node); |
2c9646c55369
Add a buddy list manager for finch. This allows plugins to show the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20874
diff
changeset
|
157 |
15818 | 158 /*@}*/ |
159 | |
160 #endif |