|
Evan@653
|
1 |
/** |
|
Evan@653
|
2 |
* @file account.h Account API |
|
Evan@653
|
3 |
* @ingroup core |
|
Evan@653
|
4 |
* @see @ref account-signals |
|
Evan@653
|
5 |
*/ |
|
Evan@653
|
6 |
|
|
Evan@653
|
7 |
/* purple |
|
Evan@653
|
8 |
* |
|
Evan@653
|
9 |
* Purple is the legal property of its developers, whose names are too numerous |
|
Evan@653
|
10 |
* to list here. Please refer to the COPYRIGHT file distributed with this |
|
Evan@653
|
11 |
* source distribution. |
|
Evan@653
|
12 |
* |
|
Evan@653
|
13 |
* This program is free software; you can redistribute it and/or modify |
|
Evan@653
|
14 |
* it under the terms of the GNU General Public License as published by |
|
Evan@653
|
15 |
* the Free Software Foundation; either version 2 of the License, or |
|
Evan@653
|
16 |
* (at your option) any later version. |
|
Evan@653
|
17 |
* |
|
Evan@653
|
18 |
* This program is distributed in the hope that it will be useful, |
|
Evan@653
|
19 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
Evan@653
|
20 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
Evan@653
|
21 |
* GNU General Public License for more details. |
|
Evan@653
|
22 |
* |
|
Evan@653
|
23 |
* You should have received a copy of the GNU General Public License |
|
Evan@653
|
24 |
* along with this program; if not, write to the Free Software |
|
Evan@653
|
25 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
Evan@653
|
26 |
*/ |
|
Evan@653
|
27 |
#ifndef _PURPLE_ACCOUNT_H_ |
|
Evan@653
|
28 |
#define _PURPLE_ACCOUNT_H_ |
|
Evan@653
|
29 |
|
|
Evan@653
|
30 |
#include <glib.h> |
|
Evan@653
|
31 |
#include <glib-object.h> |
|
Evan@653
|
32 |
|
|
Evan@653
|
33 |
/** @copydoc _PurpleAccountUiOps */ |
|
Evan@653
|
34 |
typedef struct _PurpleAccountUiOps PurpleAccountUiOps; |
|
Evan@653
|
35 |
/** @copydoc _PurpleAccount */ |
|
Evan@653
|
36 |
typedef struct _PurpleAccount PurpleAccount; |
|
Evan@653
|
37 |
|
|
Evan@653
|
38 |
typedef gboolean (*PurpleFilterAccountFunc)(PurpleAccount *account); |
|
Evan@653
|
39 |
typedef void (*PurpleAccountRequestAuthorizationCb)(void *); |
|
Evan@653
|
40 |
typedef void (*PurpleAccountRegistrationCb)(PurpleAccount *account, gboolean succeeded, void *user_data); |
|
Evan@653
|
41 |
typedef void (*PurpleAccountUnregistrationCb)(PurpleAccount *account, gboolean succeeded, void *user_data); |
|
Evan@653
|
42 |
|
|
Evan@653
|
43 |
#include "connection.h" |
|
Evan@653
|
44 |
#include "log.h" |
|
Evan@1427
|
45 |
#include "privacy.h" |
|
Evan@653
|
46 |
#include "proxy.h" |
|
Evan@653
|
47 |
#include "prpl.h" |
|
Evan@653
|
48 |
#include "status.h" |
|
Evan@653
|
49 |
|
|
Evan@653
|
50 |
/** |
|
Evan@653
|
51 |
* Account request types. |
|
Evan@653
|
52 |
*/ |
|
Evan@653
|
53 |
typedef enum |
|
Evan@653
|
54 |
{ |
|
Evan@653
|
55 |
PURPLE_ACCOUNT_REQUEST_AUTHORIZATION = 0 /* Account authorization request */ |
|
Evan@653
|
56 |
} PurpleAccountRequestType; |
|
Evan@653
|
57 |
|
|
Evan@653
|
58 |
|
|
Evan@653
|
59 |
/** Account UI operations, used to notify the user of status changes and when |
|
Evan@653
|
60 |
* buddies add this account to their buddy lists. |
|
Evan@653
|
61 |
*/ |
|
Evan@653
|
62 |
struct _PurpleAccountUiOps |
|
Evan@653
|
63 |
{ |
|
Evan@653
|
64 |
/** A buddy who is already on this account's buddy list added this account |
|
Evan@653
|
65 |
* to their buddy list. |
|
Evan@653
|
66 |
*/ |
|
Evan@653
|
67 |
void (*notify_added)(PurpleAccount *account, |
|
Evan@653
|
68 |
const char *remote_user, |
|
Evan@653
|
69 |
const char *id, |
|
Evan@653
|
70 |
const char *alias, |
|
Evan@653
|
71 |
const char *message); |
|
Evan@653
|
72 |
|
|
Evan@653
|
73 |
/** This account's status changed. */ |
|
Evan@653
|
74 |
void (*status_changed)(PurpleAccount *account, |
|
Evan@653
|
75 |
PurpleStatus *status); |
|
Evan@653
|
76 |
|
|
Evan@653
|
77 |
/** Someone we don't have on our list added us; prompt to add them. */ |
|
Evan@653
|
78 |
void (*request_add)(PurpleAccount *account, |
|
Evan@653
|
79 |
const char *remote_user, |
|
Evan@653
|
80 |
const char *id, |
|
Evan@653
|
81 |
const char *alias, |
|
Evan@653
|
82 |
const char *message); |
|
Evan@653
|
83 |
|
|
Evan@653
|
84 |
/** Prompt for authorization when someone adds this account to their buddy |
|
Evan@653
|
85 |
* list. To authorize them to see this account's presence, call \a |
|
Evan@653
|
86 |
* authorize_cb (\a user_data); otherwise call \a deny_cb (\a user_data); |
|
Evan@653
|
87 |
* @return a UI-specific handle, as passed to #close_account_request. |
|
Evan@653
|
88 |
*/ |
|
Evan@653
|
89 |
void *(*request_authorize)(PurpleAccount *account, |
|
Evan@653
|
90 |
const char *remote_user, |
|
Evan@653
|
91 |
const char *id, |
|
Evan@653
|
92 |
const char *alias, |
|
Evan@653
|
93 |
const char *message, |
|
Evan@653
|
94 |
gboolean on_list, |
|
Evan@653
|
95 |
PurpleAccountRequestAuthorizationCb authorize_cb, |
|
Evan@653
|
96 |
PurpleAccountRequestAuthorizationCb deny_cb, |
|
Evan@653
|
97 |
void *user_data); |
|
Evan@653
|
98 |
|
|
Evan@653
|
99 |
/** Close a pending request for authorization. \a ui_handle is a handle |
|
Evan@653
|
100 |
* as returned by #request_authorize. |
|
Evan@653
|
101 |
*/ |
|
Evan@653
|
102 |
void (*close_account_request)(void *ui_handle); |
|
Evan@653
|
103 |
|
|
Evan@653
|
104 |
void (*_purple_reserved1)(void); |
|
Evan@653
|
105 |
void (*_purple_reserved2)(void); |
|
Evan@653
|
106 |
void (*_purple_reserved3)(void); |
|
Evan@653
|
107 |
void (*_purple_reserved4)(void); |
|
Evan@653
|
108 |
}; |
|
Evan@653
|
109 |
|
|
Evan@653
|
110 |
/** Structure representing an account. |
|
Evan@653
|
111 |
*/ |
|
Evan@653
|
112 |
struct _PurpleAccount |
|
Evan@653
|
113 |
{ |
|
Evan@653
|
114 |
char *username; /**< The username. */ |
|
Evan@653
|
115 |
char *alias; /**< How you appear to yourself. */ |
|
Evan@653
|
116 |
char *password; /**< The account password. */ |
|
Evan@653
|
117 |
char *user_info; /**< User information. */ |
|
Evan@653
|
118 |
|
|
Evan@653
|
119 |
char *buddy_icon_path; /**< The buddy icon's non-cached path. */ |
|
Evan@653
|
120 |
|
|
Evan@653
|
121 |
gboolean remember_pass; /**< Remember the password. */ |
|
Evan@653
|
122 |
|
|
Evan@653
|
123 |
char *protocol_id; /**< The ID of the protocol. */ |
|
Evan@653
|
124 |
|
|
Evan@653
|
125 |
PurpleConnection *gc; /**< The connection handle. */ |
|
Evan@653
|
126 |
gboolean disconnecting; /**< The account is currently disconnecting */ |
|
Evan@653
|
127 |
|
|
Evan@653
|
128 |
GHashTable *settings; /**< Protocol-specific settings. */ |
|
Evan@653
|
129 |
GHashTable *ui_settings; /**< UI-specific settings. */ |
|
Evan@653
|
130 |
|
|
Evan@653
|
131 |
PurpleProxyInfo *proxy_info; /**< Proxy information. This will be set */ |
|
Evan@653
|
132 |
/* to NULL when the account inherits */ |
|
Evan@653
|
133 |
/* proxy settings from global prefs. */ |
|
Evan@653
|
134 |
|
|
Evan@770
|
135 |
/* |
|
Evan@770
|
136 |
* TODO: Supplementing the next two linked lists with hash tables |
|
Evan@770
|
137 |
* should help performance a lot when these lists are long. This |
|
Evan@770
|
138 |
* matters quite a bit for protocols like MSN, where all your |
|
Evan@770
|
139 |
* buddies are added to your permit list. Currently we have to |
|
Evan@770
|
140 |
* iterate through the entire list if we want to check if someone |
|
Evan@770
|
141 |
* is permitted or denied. We should do this for 3.0.0. |
|
Evan@770
|
142 |
*/ |
|
Evan@653
|
143 |
GSList *permit; /**< Permit list. */ |
|
Evan@653
|
144 |
GSList *deny; /**< Deny list. */ |
|
Evan@1427
|
145 |
PurplePrivacyType perm_deny; /**< The permit/deny setting. */ |
|
Evan@653
|
146 |
|
|
Evan@653
|
147 |
GList *status_types; /**< Status types. */ |
|
Evan@653
|
148 |
|
|
Evan@653
|
149 |
PurplePresence *presence; /**< Presence. */ |
|
Evan@653
|
150 |
PurpleLog *system_log; /**< The system log */ |
|
Evan@653
|
151 |
|
|
Evan@653
|
152 |
void *ui_data; /**< The UI can put data here. */ |
|
Evan@653
|
153 |
PurpleAccountRegistrationCb registration_cb; |
|
Evan@653
|
154 |
void *registration_cb_user_data; |
|
Evan@653
|
155 |
|
|
Evan@653
|
156 |
gpointer priv; /**< Pointer to opaque private data. */ |
|
Evan@653
|
157 |
}; |
|
Evan@653
|
158 |
|
|
Evan@653
|
159 |
#ifdef __cplusplus |
|
Evan@653
|
160 |
extern "C" { |
|
Evan@653
|
161 |
#endif |
|
Evan@653
|
162 |
|
|
Evan@653
|
163 |
/**************************************************************************/ |
|
Evan@653
|
164 |
/** @name Account API */ |
|
Evan@653
|
165 |
/**************************************************************************/ |
|
Evan@653
|
166 |
/*@{*/ |
|
Evan@653
|
167 |
|
|
Evan@653
|
168 |
/** |
|
Evan@653
|
169 |
* Creates a new account. |
|
Evan@653
|
170 |
* |
|
Evan@653
|
171 |
* @param username The username. |
|
Evan@653
|
172 |
* @param protocol_id The protocol ID. |
|
Evan@653
|
173 |
* |
|
Evan@653
|
174 |
* @return The new account. |
|
Evan@653
|
175 |
*/ |
|
Evan@653
|
176 |
PurpleAccount *purple_account_new(const char *username, const char *protocol_id); |
|
Evan@653
|
177 |
|
|
Evan@653
|
178 |
/** |
|
Evan@653
|
179 |
* Destroys an account. |
|
Evan@653
|
180 |
* |
|
Evan@653
|
181 |
* @param account The account to destroy. |
|
Evan@653
|
182 |
*/ |
|
Evan@653
|
183 |
void purple_account_destroy(PurpleAccount *account); |
|
Evan@653
|
184 |
|
|
Evan@653
|
185 |
/** |
|
Evan@653
|
186 |
* Connects to an account. |
|
Evan@653
|
187 |
* |
|
Evan@653
|
188 |
* @param account The account to connect to. |
|
Evan@653
|
189 |
*/ |
|
Evan@653
|
190 |
void purple_account_connect(PurpleAccount *account); |
|
Evan@653
|
191 |
|
|
Evan@653
|
192 |
/** |
|
Evan@653
|
193 |
* Sets the callback for successful registration. |
|
Evan@653
|
194 |
* |
|
Evan@653
|
195 |
* @param account The account for which this callback should be used |
|
Evan@653
|
196 |
* @param cb The callback |
|
Evan@653
|
197 |
* @param user_data The user data passed to the callback |
|
Evan@653
|
198 |
*/ |
|
Evan@653
|
199 |
void purple_account_set_register_callback(PurpleAccount *account, PurpleAccountRegistrationCb cb, void *user_data); |
|
Evan@653
|
200 |
|
|
Evan@653
|
201 |
/** |
|
Evan@653
|
202 |
* Registers an account. |
|
Evan@653
|
203 |
* |
|
Evan@653
|
204 |
* @param account The account to register. |
|
Evan@653
|
205 |
*/ |
|
Evan@653
|
206 |
void purple_account_register(PurpleAccount *account); |
|
Evan@653
|
207 |
|
|
Evan@653
|
208 |
/** |
|
Evan@653
|
209 |
* Unregisters an account (deleting it from the server). |
|
Evan@653
|
210 |
* |
|
Evan@653
|
211 |
* @param account The account to unregister. |
|
Evan@653
|
212 |
* @param cb Optional callback to be called when unregistration is complete |
|
Evan@653
|
213 |
* @param user_data user data to pass to the callback |
|
Evan@653
|
214 |
*/ |
|
Evan@653
|
215 |
void purple_account_unregister(PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data); |
|
Evan@653
|
216 |
|
|
Evan@653
|
217 |
/** |
|
Evan@653
|
218 |
* Disconnects from an account. |
|
Evan@653
|
219 |
* |
|
Evan@653
|
220 |
* @param account The account to disconnect from. |
|
Evan@653
|
221 |
*/ |
|
Evan@653
|
222 |
void purple_account_disconnect(PurpleAccount *account); |
|
Evan@653
|
223 |
|
|
Evan@653
|
224 |
/** |
|
Evan@653
|
225 |
* Notifies the user that the account was added to a remote user's |
|
Evan@653
|
226 |
* buddy list. |
|
Evan@653
|
227 |
* |
|
Evan@653
|
228 |
* This will present a dialog informing the user that he was added to the |
|
Evan@653
|
229 |
* remote user's buddy list. |
|
Evan@653
|
230 |
* |
|
Evan@653
|
231 |
* @param account The account that was added. |
|
Evan@653
|
232 |
* @param remote_user The name of the user that added this account. |
|
Evan@653
|
233 |
* @param id The optional ID of the local account. Rarely used. |
|
Evan@653
|
234 |
* @param alias The optional alias of the user. |
|
Evan@653
|
235 |
* @param message The optional message sent from the user adding you. |
|
Evan@653
|
236 |
*/ |
|
Evan@653
|
237 |
void purple_account_notify_added(PurpleAccount *account, const char *remote_user, |
|
Evan@653
|
238 |
const char *id, const char *alias, |
|
Evan@653
|
239 |
const char *message); |
|
Evan@653
|
240 |
|
|
Evan@653
|
241 |
/** |
|
Evan@653
|
242 |
* Notifies the user that the account was addded to a remote user's buddy |
|
Evan@653
|
243 |
* list and asks ther user if they want to add the remote user to their buddy |
|
Evan@653
|
244 |
* list. |
|
Evan@653
|
245 |
* |
|
Evan@653
|
246 |
* This will present a dialog informing the local user that the remote user |
|
Evan@653
|
247 |
* added them to the remote user's buddy list and will ask if they want to add |
|
Evan@653
|
248 |
* the remote user to the buddy list. |
|
Evan@653
|
249 |
* |
|
Evan@653
|
250 |
* @param account The account that was added. |
|
Evan@653
|
251 |
* @param remote_user The name of the user that added this account. |
|
Evan@653
|
252 |
* @param id The optional ID of the local account. Rarely used. |
|
Evan@653
|
253 |
* @param alias The optional alias of the user. |
|
Evan@653
|
254 |
* @param message The optional message sent from the user adding you. |
|
Evan@653
|
255 |
*/ |
|
Evan@653
|
256 |
void purple_account_request_add(PurpleAccount *account, const char *remote_user, |
|
Evan@653
|
257 |
const char *id, const char *alias, |
|
Evan@653
|
258 |
const char *message); |
|
Evan@653
|
259 |
|
|
Evan@653
|
260 |
/** |
|
Evan@653
|
261 |
* Notifies the user that a remote user has wants to add the local user |
|
Evan@653
|
262 |
* to his or her buddy list and requires authorization to do so. |
|
Evan@653
|
263 |
* |
|
Evan@1427
|
264 |
* This will present a dialog informing the user of this and ask if the |
|
Evan@653
|
265 |
* user authorizes or denies the remote user from adding him. |
|
Evan@653
|
266 |
* |
|
Evan@653
|
267 |
* @param account The account that was added |
|
Evan@653
|
268 |
* @param remote_user The name of the user that added this account. |
|
Evan@653
|
269 |
* @param id The optional ID of the local account. Rarely used. |
|
Evan@653
|
270 |
* @param alias The optional alias of the remote user. |
|
Evan@653
|
271 |
* @param message The optional message sent by the user wanting to add you. |
|
Evan@653
|
272 |
* @param on_list Is the remote user already on the buddy list? |
|
Evan@653
|
273 |
* @param auth_cb The callback called when the local user accepts |
|
Evan@653
|
274 |
* @param deny_cb The callback called when the local user rejects |
|
Evan@653
|
275 |
* @param user_data Data to be passed back to the above callbacks |
|
Evan@653
|
276 |
* |
|
Evan@653
|
277 |
* @return A UI-specific handle. |
|
Evan@653
|
278 |
*/ |
|
Evan@653
|
279 |
void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user, |
|
Evan@653
|
280 |
const char *id, const char *alias, const char *message, gboolean on_list, |
|
Evan@653
|
281 |
PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data); |
|
Evan@653
|
282 |
|
|
Evan@653
|
283 |
/** |
|
Evan@653
|
284 |
* Close account requests registered for the given PurpleAccount |
|
Evan@653
|
285 |
* |
|
Evan@653
|
286 |
* @param account The account for which requests should be closed |
|
Evan@653
|
287 |
*/ |
|
Evan@653
|
288 |
void purple_account_request_close_with_account(PurpleAccount *account); |
|
Evan@653
|
289 |
|
|
Evan@653
|
290 |
/** |
|
Evan@653
|
291 |
* Close the account request for the given ui handle |
|
Evan@653
|
292 |
* |
|
Evan@653
|
293 |
* @param ui_handle The ui specific handle for which requests should be closed |
|
Evan@653
|
294 |
*/ |
|
Evan@653
|
295 |
void purple_account_request_close(void *ui_handle); |
|
Evan@653
|
296 |
|
|
Evan@653
|
297 |
/** |
|
Evan@653
|
298 |
* Requests a password from the user for the account. Does not set the |
|
Evan@653
|
299 |
* account password on success; do that in ok_cb if desired. |
|
Evan@653
|
300 |
* |
|
Evan@653
|
301 |
* @param account The account to request the password for. |
|
Evan@653
|
302 |
* @param ok_cb The callback for the OK button. |
|
Evan@653
|
303 |
* @param cancel_cb The callback for the cancel button. |
|
Evan@653
|
304 |
* @param user_data User data to be passed into callbacks. |
|
Evan@653
|
305 |
*/ |
|
Evan@653
|
306 |
void purple_account_request_password(PurpleAccount *account, GCallback ok_cb, |
|
Evan@653
|
307 |
GCallback cancel_cb, void *user_data); |
|
Evan@653
|
308 |
|
|
Evan@653
|
309 |
/** |
|
Evan@653
|
310 |
* Requests information from the user to change the account's password. |
|
Evan@653
|
311 |
* |
|
Evan@653
|
312 |
* @param account The account to change the password on. |
|
Evan@653
|
313 |
*/ |
|
Evan@653
|
314 |
void purple_account_request_change_password(PurpleAccount *account); |
|
Evan@653
|
315 |
|
|
Evan@653
|
316 |
/** |
|
Evan@653
|
317 |
* Requests information from the user to change the account's |
|
Evan@653
|
318 |
* user information. |
|
Evan@653
|
319 |
* |
|
Evan@653
|
320 |
* @param account The account to change the user information on. |
|
Evan@653
|
321 |
*/ |
|
Evan@653
|
322 |
void purple_account_request_change_user_info(PurpleAccount *account); |
|
Evan@653
|
323 |
|
|
Evan@653
|
324 |
/** |
|
Evan@653
|
325 |
* Sets the account's username. |
|
Evan@653
|
326 |
* |
|
Evan@653
|
327 |
* @param account The account. |
|
Evan@653
|
328 |
* @param username The username. |
|
Evan@653
|
329 |
*/ |
|
Evan@653
|
330 |
void purple_account_set_username(PurpleAccount *account, const char *username); |
|
Evan@653
|
331 |
|
|
Evan@653
|
332 |
/** |
|
Evan@653
|
333 |
* Sets the account's password. |
|
Evan@653
|
334 |
* |
|
Evan@653
|
335 |
* @param account The account. |
|
Evan@653
|
336 |
* @param password The password. |
|
Evan@653
|
337 |
*/ |
|
Evan@653
|
338 |
void purple_account_set_password(PurpleAccount *account, const char *password); |
|
Evan@653
|
339 |
|
|
Evan@653
|
340 |
/** |
|
Evan@653
|
341 |
* Sets the account's alias. |
|
Evan@653
|
342 |
* |
|
Evan@653
|
343 |
* @param account The account. |
|
Evan@653
|
344 |
* @param alias The alias. |
|
Evan@653
|
345 |
*/ |
|
Evan@653
|
346 |
void purple_account_set_alias(PurpleAccount *account, const char *alias); |
|
Evan@653
|
347 |
|
|
Evan@653
|
348 |
/** |
|
Evan@653
|
349 |
* Sets the account's user information |
|
Evan@653
|
350 |
* |
|
Evan@653
|
351 |
* @param account The account. |
|
Evan@653
|
352 |
* @param user_info The user information. |
|
Evan@653
|
353 |
*/ |
|
Evan@653
|
354 |
void purple_account_set_user_info(PurpleAccount *account, const char *user_info); |
|
Evan@653
|
355 |
|
|
Evan@653
|
356 |
/** |
|
Evan@653
|
357 |
* Sets the account's buddy icon path. |
|
Evan@653
|
358 |
* |
|
Evan@653
|
359 |
* @param account The account. |
|
Evan@653
|
360 |
* @param path The buddy icon non-cached path. |
|
Evan@653
|
361 |
*/ |
|
Evan@653
|
362 |
void purple_account_set_buddy_icon_path(PurpleAccount *account, const char *path); |
|
Evan@653
|
363 |
|
|
Evan@653
|
364 |
/** |
|
Evan@653
|
365 |
* Sets the account's protocol ID. |
|
Evan@653
|
366 |
* |
|
Evan@653
|
367 |
* @param account The account. |
|
Evan@653
|
368 |
* @param protocol_id The protocol ID. |
|
Evan@653
|
369 |
*/ |
|
Evan@653
|
370 |
void purple_account_set_protocol_id(PurpleAccount *account, |
|
Evan@653
|
371 |
const char *protocol_id); |
|
Evan@653
|
372 |
|
|
Evan@653
|
373 |
/** |
|
Evan@653
|
374 |
* Sets the account's connection. |
|
Evan@653
|
375 |
* |
|
Evan@653
|
376 |
* @param account The account. |
|
Evan@653
|
377 |
* @param gc The connection. |
|
Evan@653
|
378 |
*/ |
|
Evan@653
|
379 |
void purple_account_set_connection(PurpleAccount *account, PurpleConnection *gc); |
|
Evan@653
|
380 |
|
|
Evan@653
|
381 |
/** |
|
Evan@653
|
382 |
* Sets whether or not this account should save its password. |
|
Evan@653
|
383 |
* |
|
Evan@653
|
384 |
* @param account The account. |
|
Evan@653
|
385 |
* @param value @c TRUE if it should remember the password. |
|
Evan@653
|
386 |
*/ |
|
Evan@653
|
387 |
void purple_account_set_remember_password(PurpleAccount *account, gboolean value); |
|
Evan@653
|
388 |
|
|
Evan@653
|
389 |
/** |
|
Evan@653
|
390 |
* Sets whether or not this account should check for mail. |
|
Evan@653
|
391 |
* |
|
Evan@653
|
392 |
* @param account The account. |
|
Evan@653
|
393 |
* @param value @c TRUE if it should check for mail. |
|
Evan@653
|
394 |
*/ |
|
Evan@653
|
395 |
void purple_account_set_check_mail(PurpleAccount *account, gboolean value); |
|
Evan@653
|
396 |
|
|
Evan@653
|
397 |
/** |
|
Evan@653
|
398 |
* Sets whether or not this account is enabled for the specified |
|
Evan@653
|
399 |
* UI. |
|
Evan@653
|
400 |
* |
|
Evan@653
|
401 |
* @param account The account. |
|
Evan@653
|
402 |
* @param ui The UI. |
|
Evan@653
|
403 |
* @param value @c TRUE if it is enabled. |
|
Evan@653
|
404 |
*/ |
|
Evan@653
|
405 |
void purple_account_set_enabled(PurpleAccount *account, const char *ui, |
|
Evan@653
|
406 |
gboolean value); |
|
Evan@653
|
407 |
|
|
Evan@653
|
408 |
/** |
|
Evan@653
|
409 |
* Sets the account's proxy information. |
|
Evan@653
|
410 |
* |
|
Evan@653
|
411 |
* @param account The account. |
|
Evan@653
|
412 |
* @param info The proxy information. |
|
Evan@653
|
413 |
*/ |
|
Evan@653
|
414 |
void purple_account_set_proxy_info(PurpleAccount *account, PurpleProxyInfo *info); |
|
Evan@653
|
415 |
|
|
Evan@653
|
416 |
/** |
|
Evan@653
|
417 |
* Sets the account's status types. |
|
Evan@653
|
418 |
* |
|
Evan@653
|
419 |
* @param account The account. |
|
Evan@653
|
420 |
* @param status_types The list of status types. |
|
Evan@653
|
421 |
*/ |
|
Evan@653
|
422 |
void purple_account_set_status_types(PurpleAccount *account, GList *status_types); |
|
Evan@653
|
423 |
|
|
Evan@653
|
424 |
/** |
|
Evan@653
|
425 |
* Variadic version of purple_account_set_status_list(); the variadic list |
|
Evan@653
|
426 |
* replaces @a attrs, and should be <tt>NULL</tt>-terminated. |
|
Evan@653
|
427 |
* |
|
Evan@653
|
428 |
* @copydoc purple_account_set_status_list() |
|
Evan@653
|
429 |
*/ |
|
Evan@653
|
430 |
void purple_account_set_status(PurpleAccount *account, const char *status_id, |
|
Evan@653
|
431 |
gboolean active, ...) G_GNUC_NULL_TERMINATED; |
|
Evan@653
|
432 |
|
|
Evan@653
|
433 |
|
|
Evan@653
|
434 |
/** |
|
Evan@653
|
435 |
* Activates or deactivates a status. All changes to the statuses of |
|
Evan@653
|
436 |
* an account go through this function or purple_account_set_status(). |
|
Evan@653
|
437 |
* |
|
Evan@653
|
438 |
* You can only deactivate an exclusive status by activating another exclusive |
|
Evan@653
|
439 |
* status. So, if @a status_id is an exclusive status and @a active is @c |
|
Evan@653
|
440 |
* FALSE, this function does nothing. |
|
Evan@653
|
441 |
* |
|
Evan@653
|
442 |
* @param account The account. |
|
Evan@653
|
443 |
* @param status_id The ID of the status. |
|
Evan@653
|
444 |
* @param active Whether @a status_id is to be activated (<tt>TRUE</tt>) or |
|
Evan@653
|
445 |
* deactivated (<tt>FALSE</tt>). |
|
Evan@653
|
446 |
* @param attrs A list of <tt>const char *</tt> attribute names followed by |
|
Evan@653
|
447 |
* <tt>const char *</tt> attribute values for the status. |
|
Evan@653
|
448 |
* (For example, one pair might be <tt>"message"</tt> followed |
|
Evan@653
|
449 |
* by <tt>"hello, talk to me!"</tt>.) |
|
Evan@653
|
450 |
*/ |
|
Evan@653
|
451 |
void purple_account_set_status_list(PurpleAccount *account, |
|
Evan@653
|
452 |
const char *status_id, gboolean active, GList *attrs); |
|
Evan@653
|
453 |
|
|
Evan@653
|
454 |
/** |
|
Evan@653
|
455 |
* Clears all protocol-specific settings on an account. |
|
Evan@653
|
456 |
* |
|
Evan@653
|
457 |
* @param account The account. |
|
Evan@653
|
458 |
*/ |
|
Evan@653
|
459 |
void purple_account_clear_settings(PurpleAccount *account); |
|
Evan@653
|
460 |
|
|
Evan@653
|
461 |
/** |
|
zacw@2535
|
462 |
* Removes an account-specific setting by name. |
|
zacw@2535
|
463 |
* |
|
zacw@2535
|
464 |
* @param account The account. |
|
zacw@2535
|
465 |
* @param setting The setting to remove. |
|
zacw@2535
|
466 |
* |
|
zacw@2535
|
467 |
* @since 2.6.0 |
|
zacw@2535
|
468 |
*/ |
|
zacw@2535
|
469 |
void purple_account_remove_setting(PurpleAccount *account, const char *setting); |
|
zacw@2535
|
470 |
|
|
zacw@2535
|
471 |
/** |
|
Evan@653
|
472 |
* Sets a protocol-specific integer setting for an account. |
|
Evan@653
|
473 |
* |
|
Evan@653
|
474 |
* @param account The account. |
|
Evan@653
|
475 |
* @param name The name of the setting. |
|
Evan@653
|
476 |
* @param value The setting's value. |
|
Evan@653
|
477 |
*/ |
|
Evan@653
|
478 |
void purple_account_set_int(PurpleAccount *account, const char *name, int value); |
|
Evan@653
|
479 |
|
|
Evan@653
|
480 |
/** |
|
Evan@653
|
481 |
* Sets a protocol-specific string setting for an account. |
|
Evan@653
|
482 |
* |
|
Evan@653
|
483 |
* @param account The account. |
|
Evan@653
|
484 |
* @param name The name of the setting. |
|
Evan@653
|
485 |
* @param value The setting's value. |
|
Evan@653
|
486 |
*/ |
|
Evan@653
|
487 |
void purple_account_set_string(PurpleAccount *account, const char *name, |
|
Evan@653
|
488 |
const char *value); |
|
Evan@653
|
489 |
|
|
Evan@653
|
490 |
/** |
|
Evan@653
|
491 |
* Sets a protocol-specific boolean setting for an account. |
|
Evan@653
|
492 |
* |
|
Evan@653
|
493 |
* @param account The account. |
|
Evan@653
|
494 |
* @param name The name of the setting. |
|
Evan@653
|
495 |
* @param value The setting's value. |
|
Evan@653
|
496 |
*/ |
|
Evan@653
|
497 |
void purple_account_set_bool(PurpleAccount *account, const char *name, |
|
Evan@653
|
498 |
gboolean value); |
|
Evan@653
|
499 |
|
|
Evan@653
|
500 |
/** |
|
Evan@653
|
501 |
* Sets a UI-specific integer setting for an account. |
|
Evan@653
|
502 |
* |
|
Evan@653
|
503 |
* @param account The account. |
|
Evan@653
|
504 |
* @param ui The UI name. |
|
Evan@653
|
505 |
* @param name The name of the setting. |
|
Evan@653
|
506 |
* @param value The setting's value. |
|
Evan@653
|
507 |
*/ |
|
Evan@653
|
508 |
void purple_account_set_ui_int(PurpleAccount *account, const char *ui, |
|
Evan@653
|
509 |
const char *name, int value); |
|
Evan@653
|
510 |
|
|
Evan@653
|
511 |
/** |
|
Evan@653
|
512 |
* Sets a UI-specific string setting for an account. |
|
Evan@653
|
513 |
* |
|
Evan@653
|
514 |
* @param account The account. |
|
Evan@653
|
515 |
* @param ui The UI name. |
|
Evan@653
|
516 |
* @param name The name of the setting. |
|
Evan@653
|
517 |
* @param value The setting's value. |
|
Evan@653
|
518 |
*/ |
|
Evan@653
|
519 |
void purple_account_set_ui_string(PurpleAccount *account, const char *ui, |
|
Evan@653
|
520 |
const char *name, const char *value); |
|
Evan@653
|
521 |
|
|
Evan@653
|
522 |
/** |
|
Evan@653
|
523 |
* Sets a UI-specific boolean setting for an account. |
|
Evan@653
|
524 |
* |
|
Evan@653
|
525 |
* @param account The account. |
|
Evan@653
|
526 |
* @param ui The UI name. |
|
Evan@653
|
527 |
* @param name The name of the setting. |
|
Evan@653
|
528 |
* @param value The setting's value. |
|
Evan@653
|
529 |
*/ |
|
Evan@653
|
530 |
void purple_account_set_ui_bool(PurpleAccount *account, const char *ui, |
|
Evan@653
|
531 |
const char *name, gboolean value); |
|
Evan@653
|
532 |
|
|
Evan@653
|
533 |
/** |
|
Evan@653
|
534 |
* Returns whether or not the account is connected. |
|
Evan@653
|
535 |
* |
|
Evan@653
|
536 |
* @param account The account. |
|
Evan@653
|
537 |
* |
|
Evan@653
|
538 |
* @return @c TRUE if connected, or @c FALSE otherwise. |
|
Evan@653
|
539 |
*/ |
|
Evan@653
|
540 |
gboolean purple_account_is_connected(const PurpleAccount *account); |
|
Evan@653
|
541 |
|
|
Evan@653
|
542 |
/** |
|
Evan@653
|
543 |
* Returns whether or not the account is connecting. |
|
Evan@653
|
544 |
* |
|
Evan@653
|
545 |
* @param account The account. |
|
Evan@653
|
546 |
* |
|
Evan@653
|
547 |
* @return @c TRUE if connecting, or @c FALSE otherwise. |
|
Evan@653
|
548 |
*/ |
|
Evan@653
|
549 |
gboolean purple_account_is_connecting(const PurpleAccount *account); |
|
Evan@653
|
550 |
|
|
Evan@653
|
551 |
/** |
|
Evan@653
|
552 |
* Returns whether or not the account is disconnected. |
|
Evan@653
|
553 |
* |
|
Evan@653
|
554 |
* @param account The account. |
|
Evan@653
|
555 |
* |
|
Evan@653
|
556 |
* @return @c TRUE if disconnected, or @c FALSE otherwise. |
|
Evan@653
|
557 |
*/ |
|
Evan@653
|
558 |
gboolean purple_account_is_disconnected(const PurpleAccount *account); |
|
Evan@653
|
559 |
|
|
Evan@653
|
560 |
/** |
|
Evan@653
|
561 |
* Returns the account's username. |
|
Evan@653
|
562 |
* |
|
Evan@653
|
563 |
* @param account The account. |
|
Evan@653
|
564 |
* |
|
Evan@653
|
565 |
* @return The username. |
|
Evan@653
|
566 |
*/ |
|
Evan@653
|
567 |
const char *purple_account_get_username(const PurpleAccount *account); |
|
Evan@653
|
568 |
|
|
Evan@653
|
569 |
/** |
|
Evan@653
|
570 |
* Returns the account's password. |
|
Evan@653
|
571 |
* |
|
Evan@653
|
572 |
* @param account The account. |
|
Evan@653
|
573 |
* |
|
Evan@653
|
574 |
* @return The password. |
|
Evan@653
|
575 |
*/ |
|
Evan@653
|
576 |
const char *purple_account_get_password(const PurpleAccount *account); |
|
Evan@653
|
577 |
|
|
Evan@653
|
578 |
/** |
|
Evan@653
|
579 |
* Returns the account's alias. |
|
Evan@653
|
580 |
* |
|
Evan@653
|
581 |
* @param account The account. |
|
Evan@653
|
582 |
* |
|
Evan@653
|
583 |
* @return The alias. |
|
Evan@653
|
584 |
*/ |
|
Evan@653
|
585 |
const char *purple_account_get_alias(const PurpleAccount *account); |
|
Evan@653
|
586 |
|
|
Evan@653
|
587 |
/** |
|
Evan@653
|
588 |
* Returns the account's user information. |
|
Evan@653
|
589 |
* |
|
Evan@653
|
590 |
* @param account The account. |
|
Evan@653
|
591 |
* |
|
Evan@653
|
592 |
* @return The user information. |
|
Evan@653
|
593 |
*/ |
|
Evan@653
|
594 |
const char *purple_account_get_user_info(const PurpleAccount *account); |
|
Evan@653
|
595 |
|
|
Evan@653
|
596 |
/** |
|
Evan@653
|
597 |
* Gets the account's buddy icon path. |
|
Evan@653
|
598 |
* |
|
Evan@653
|
599 |
* @param account The account. |
|
Evan@653
|
600 |
* |
|
Evan@653
|
601 |
* @return The buddy icon's non-cached path. |
|
Evan@653
|
602 |
*/ |
|
Evan@653
|
603 |
const char *purple_account_get_buddy_icon_path(const PurpleAccount *account); |
|
Evan@653
|
604 |
|
|
Evan@653
|
605 |
/** |
|
Evan@653
|
606 |
* Returns the account's protocol ID. |
|
Evan@653
|
607 |
* |
|
Evan@653
|
608 |
* @param account The account. |
|
Evan@653
|
609 |
* |
|
Evan@653
|
610 |
* @return The protocol ID. |
|
Evan@653
|
611 |
*/ |
|
Evan@653
|
612 |
const char *purple_account_get_protocol_id(const PurpleAccount *account); |
|
Evan@653
|
613 |
|
|
Evan@653
|
614 |
/** |
|
Evan@653
|
615 |
* Returns the account's protocol name. |
|
Evan@653
|
616 |
* |
|
Evan@653
|
617 |
* @param account The account. |
|
Evan@653
|
618 |
* |
|
Evan@653
|
619 |
* @return The protocol name. |
|
Evan@653
|
620 |
*/ |
|
Evan@653
|
621 |
const char *purple_account_get_protocol_name(const PurpleAccount *account); |
|
Evan@653
|
622 |
|
|
Evan@653
|
623 |
/** |
|
Evan@653
|
624 |
* Returns the account's connection. |
|
Evan@653
|
625 |
* |
|
Evan@653
|
626 |
* @param account The account. |
|
Evan@653
|
627 |
* |
|
Evan@653
|
628 |
* @return The connection. |
|
Evan@653
|
629 |
*/ |
|
Evan@653
|
630 |
PurpleConnection *purple_account_get_connection(const PurpleAccount *account); |
|
Evan@653
|
631 |
|
|
Evan@653
|
632 |
/** |
|
Evan@653
|
633 |
* Returns whether or not this account should save its password. |
|
Evan@653
|
634 |
* |
|
Evan@653
|
635 |
* @param account The account. |
|
Evan@653
|
636 |
* |
|
Evan@653
|
637 |
* @return @c TRUE if it should remember the password. |
|
Evan@653
|
638 |
*/ |
|
Evan@653
|
639 |
gboolean purple_account_get_remember_password(const PurpleAccount *account); |
|
Evan@653
|
640 |
|
|
Evan@653
|
641 |
/** |
|
Evan@653
|
642 |
* Returns whether or not this account should check for mail. |
|
Evan@653
|
643 |
* |
|
Evan@653
|
644 |
* @param account The account. |
|
Evan@653
|
645 |
* |
|
Evan@653
|
646 |
* @return @c TRUE if it should check for mail. |
|
Evan@653
|
647 |
*/ |
|
Evan@653
|
648 |
gboolean purple_account_get_check_mail(const PurpleAccount *account); |
|
Evan@653
|
649 |
|
|
Evan@653
|
650 |
/** |
|
Evan@653
|
651 |
* Returns whether or not this account is enabled for the |
|
Evan@653
|
652 |
* specified UI. |
|
Evan@653
|
653 |
* |
|
Evan@653
|
654 |
* @param account The account. |
|
Evan@653
|
655 |
* @param ui The UI. |
|
Evan@653
|
656 |
* |
|
Evan@653
|
657 |
* @return @c TRUE if it enabled on this UI. |
|
Evan@653
|
658 |
*/ |
|
Evan@653
|
659 |
gboolean purple_account_get_enabled(const PurpleAccount *account, |
|
Evan@653
|
660 |
const char *ui); |
|
Evan@653
|
661 |
|
|
Evan@653
|
662 |
/** |
|
Evan@653
|
663 |
* Returns the account's proxy information. |
|
Evan@653
|
664 |
* |
|
Evan@653
|
665 |
* @param account The account. |
|
Evan@653
|
666 |
* |
|
Evan@653
|
667 |
* @return The proxy information. |
|
Evan@653
|
668 |
*/ |
|
Evan@653
|
669 |
PurpleProxyInfo *purple_account_get_proxy_info(const PurpleAccount *account); |
|
Evan@653
|
670 |
|
|
Evan@653
|
671 |
/** |
|
Evan@653
|
672 |
* Returns the active status for this account. This looks through |
|
Evan@653
|
673 |
* the PurplePresence associated with this account and returns the |
|
Evan@653
|
674 |
* PurpleStatus that has its active flag set to "TRUE." There can be |
|
Evan@653
|
675 |
* only one active PurpleStatus in a PurplePresence. |
|
Evan@653
|
676 |
* |
|
Evan@653
|
677 |
* @param account The account. |
|
Evan@653
|
678 |
* |
|
Evan@653
|
679 |
* @return The active status. |
|
Evan@653
|
680 |
*/ |
|
Evan@653
|
681 |
PurpleStatus *purple_account_get_active_status(const PurpleAccount *account); |
|
Evan@653
|
682 |
|
|
Evan@653
|
683 |
/** |
|
Evan@653
|
684 |
* Returns the account status with the specified ID. |
|
Evan@653
|
685 |
* |
|
Evan@653
|
686 |
* Note that this works differently than purple_buddy_get_status() in that |
|
Evan@653
|
687 |
* it will only return NULL if the status was not registered. |
|
Evan@653
|
688 |
* |
|
Evan@653
|
689 |
* @param account The account. |
|
Evan@653
|
690 |
* @param status_id The status ID. |
|
Evan@653
|
691 |
* |
|
Evan@653
|
692 |
* @return The status, or NULL if it was never registered. |
|
Evan@653
|
693 |
*/ |
|
Evan@653
|
694 |
PurpleStatus *purple_account_get_status(const PurpleAccount *account, |
|
Evan@653
|
695 |
const char *status_id); |
|
Evan@653
|
696 |
|
|
Evan@653
|
697 |
/** |
|
Evan@653
|
698 |
* Returns the account status type with the specified ID. |
|
Evan@653
|
699 |
* |
|
Evan@653
|
700 |
* @param account The account. |
|
Evan@653
|
701 |
* @param id The ID of the status type to find. |
|
Evan@653
|
702 |
* |
|
Evan@653
|
703 |
* @return The status type if found, or NULL. |
|
Evan@653
|
704 |
*/ |
|
Evan@653
|
705 |
PurpleStatusType *purple_account_get_status_type(const PurpleAccount *account, |
|
Evan@653
|
706 |
const char *id); |
|
Evan@653
|
707 |
|
|
Evan@653
|
708 |
/** |
|
Evan@653
|
709 |
* Returns the account status type with the specified primitive. |
|
Evan@653
|
710 |
* Note: It is possible for an account to have more than one |
|
Evan@653
|
711 |
* PurpleStatusType with the same primitive. In this case, the |
|
Evan@653
|
712 |
* first PurpleStatusType is returned. |
|
Evan@653
|
713 |
* |
|
Evan@653
|
714 |
* @param account The account. |
|
Evan@653
|
715 |
* @param primitive The type of the status type to find. |
|
Evan@653
|
716 |
* |
|
Evan@653
|
717 |
* @return The status if found, or NULL. |
|
Evan@653
|
718 |
*/ |
|
Evan@653
|
719 |
PurpleStatusType *purple_account_get_status_type_with_primitive( |
|
Evan@653
|
720 |
const PurpleAccount *account, |
|
Evan@653
|
721 |
PurpleStatusPrimitive primitive); |
|
Evan@653
|
722 |
|
|
Evan@653
|
723 |
/** |
|
Evan@653
|
724 |
* Returns the account's presence. |
|
Evan@653
|
725 |
* |
|
Evan@653
|
726 |
* @param account The account. |
|
Evan@653
|
727 |
* |
|
Evan@653
|
728 |
* @return The account's presence. |
|
Evan@653
|
729 |
*/ |
|
Evan@653
|
730 |
PurplePresence *purple_account_get_presence(const PurpleAccount *account); |
|
Evan@653
|
731 |
|
|
Evan@653
|
732 |
/** |
|
Evan@653
|
733 |
* Returns whether or not an account status is active. |
|
Evan@653
|
734 |
* |
|
Evan@653
|
735 |
* @param account The account. |
|
Evan@653
|
736 |
* @param status_id The status ID. |
|
Evan@653
|
737 |
* |
|
Evan@653
|
738 |
* @return TRUE if active, or FALSE if not. |
|
Evan@653
|
739 |
*/ |
|
Evan@653
|
740 |
gboolean purple_account_is_status_active(const PurpleAccount *account, |
|
Evan@653
|
741 |
const char *status_id); |
|
Evan@653
|
742 |
|
|
Evan@653
|
743 |
/** |
|
Evan@653
|
744 |
* Returns the account's status types. |
|
Evan@653
|
745 |
* |
|
Evan@653
|
746 |
* @param account The account. |
|
Evan@653
|
747 |
* |
|
Evan@653
|
748 |
* @constreturn The account's status types. |
|
Evan@653
|
749 |
*/ |
|
Evan@653
|
750 |
GList *purple_account_get_status_types(const PurpleAccount *account); |
|
Evan@653
|
751 |
|
|
Evan@653
|
752 |
/** |
|
Evan@653
|
753 |
* Returns a protocol-specific integer setting for an account. |
|
Evan@653
|
754 |
* |
|
Evan@653
|
755 |
* @param account The account. |
|
Evan@653
|
756 |
* @param name The name of the setting. |
|
Evan@653
|
757 |
* @param default_value The default value. |
|
Evan@653
|
758 |
* |
|
Evan@653
|
759 |
* @return The value. |
|
Evan@653
|
760 |
*/ |
|
Evan@653
|
761 |
int purple_account_get_int(const PurpleAccount *account, const char *name, |
|
Evan@653
|
762 |
int default_value); |
|
Evan@653
|
763 |
|
|
Evan@653
|
764 |
/** |
|
Evan@653
|
765 |
* Returns a protocol-specific string setting for an account. |
|
Evan@653
|
766 |
* |
|
Evan@653
|
767 |
* @param account The account. |
|
Evan@653
|
768 |
* @param name The name of the setting. |
|
Evan@653
|
769 |
* @param default_value The default value. |
|
Evan@653
|
770 |
* |
|
Evan@653
|
771 |
* @return The value. |
|
Evan@653
|
772 |
*/ |
|
Evan@653
|
773 |
const char *purple_account_get_string(const PurpleAccount *account, |
|
Evan@653
|
774 |
const char *name, |
|
Evan@653
|
775 |
const char *default_value); |
|
Evan@653
|
776 |
|
|
Evan@653
|
777 |
/** |
|
Evan@653
|
778 |
* Returns a protocol-specific boolean setting for an account. |
|
Evan@653
|
779 |
* |
|
Evan@653
|
780 |
* @param account The account. |
|
Evan@653
|
781 |
* @param name The name of the setting. |
|
Evan@653
|
782 |
* @param default_value The default value. |
|
Evan@653
|
783 |
* |
|
Evan@653
|
784 |
* @return The value. |
|
Evan@653
|
785 |
*/ |
|
Evan@653
|
786 |
gboolean purple_account_get_bool(const PurpleAccount *account, const char *name, |
|
Evan@653
|
787 |
gboolean default_value); |
|
Evan@653
|
788 |
|
|
Evan@653
|
789 |
/** |
|
Evan@653
|
790 |
* Returns a UI-specific integer setting for an account. |
|
Evan@653
|
791 |
* |
|
Evan@653
|
792 |
* @param account The account. |
|
Evan@653
|
793 |
* @param ui The UI name. |
|
Evan@653
|
794 |
* @param name The name of the setting. |
|
Evan@653
|
795 |
* @param default_value The default value. |
|
Evan@653
|
796 |
* |
|
Evan@653
|
797 |
* @return The value. |
|
Evan@653
|
798 |
*/ |
|
Evan@653
|
799 |
int purple_account_get_ui_int(const PurpleAccount *account, const char *ui, |
|
Evan@653
|
800 |
const char *name, int default_value); |
|
Evan@653
|
801 |
|
|
Evan@653
|
802 |
/** |
|
Evan@653
|
803 |
* Returns a UI-specific string setting for an account. |
|
Evan@653
|
804 |
* |
|
Evan@653
|
805 |
* @param account The account. |
|
Evan@653
|
806 |
* @param ui The UI name. |
|
Evan@653
|
807 |
* @param name The name of the setting. |
|
Evan@653
|
808 |
* @param default_value The default value. |
|
Evan@653
|
809 |
* |
|
Evan@653
|
810 |
* @return The value. |
|
Evan@653
|
811 |
*/ |
|
Evan@653
|
812 |
const char *purple_account_get_ui_string(const PurpleAccount *account, |
|
Evan@653
|
813 |
const char *ui, const char *name, |
|
Evan@653
|
814 |
const char *default_value); |
|
Evan@653
|
815 |
|
|
Evan@653
|
816 |
/** |
|
Evan@653
|
817 |
* Returns a UI-specific boolean setting for an account. |
|
Evan@653
|
818 |
* |
|
Evan@653
|
819 |
* @param account The account. |
|
Evan@653
|
820 |
* @param ui The UI name. |
|
Evan@653
|
821 |
* @param name The name of the setting. |
|
Evan@653
|
822 |
* @param default_value The default value. |
|
Evan@653
|
823 |
* |
|
Evan@653
|
824 |
* @return The value. |
|
Evan@653
|
825 |
*/ |
|
Evan@653
|
826 |
gboolean purple_account_get_ui_bool(const PurpleAccount *account, const char *ui, |
|
Evan@653
|
827 |
const char *name, gboolean default_value); |
|
Evan@653
|
828 |
|
|
Evan@653
|
829 |
|
|
Evan@653
|
830 |
/** |
|
Evan@653
|
831 |
* Returns the system log for an account. |
|
Evan@653
|
832 |
* |
|
Evan@653
|
833 |
* @param account The account. |
|
Evan@653
|
834 |
* @param create Should it be created if it doesn't exist? |
|
Evan@653
|
835 |
* |
|
Evan@653
|
836 |
* @return The log. |
|
Evan@653
|
837 |
* |
|
Evan@653
|
838 |
* @note Callers should almost always pass @c FALSE for @a create. |
|
Evan@653
|
839 |
* Passing @c TRUE could result in an existing log being reopened, |
|
Evan@653
|
840 |
* if the log has already been closed, which not all loggers deal |
|
Evan@653
|
841 |
* with appropriately. |
|
Evan@653
|
842 |
*/ |
|
Evan@653
|
843 |
PurpleLog *purple_account_get_log(PurpleAccount *account, gboolean create); |
|
Evan@653
|
844 |
|
|
Evan@653
|
845 |
/** |
|
Evan@653
|
846 |
* Frees the system log of an account |
|
Evan@653
|
847 |
* |
|
Evan@653
|
848 |
* @param account The account. |
|
Evan@653
|
849 |
*/ |
|
Evan@653
|
850 |
void purple_account_destroy_log(PurpleAccount *account); |
|
Evan@653
|
851 |
|
|
Evan@653
|
852 |
/** |
|
Evan@653
|
853 |
* Adds a buddy to the server-side buddy list for the specified account. |
|
Evan@653
|
854 |
* |
|
Evan@653
|
855 |
* @param account The account. |
|
Evan@653
|
856 |
* @param buddy The buddy to add. |
|
Evan@653
|
857 |
*/ |
|
Evan@653
|
858 |
void purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy); |
|
Evan@653
|
859 |
/** |
|
Evan@653
|
860 |
* Adds a list of buddies to the server-side buddy list. |
|
Evan@653
|
861 |
* |
|
Evan@653
|
862 |
* @param account The account. |
|
Evan@653
|
863 |
* @param buddies The list of PurpleBlistNodes representing the buddies to add. |
|
Evan@653
|
864 |
*/ |
|
Evan@653
|
865 |
void purple_account_add_buddies(PurpleAccount *account, GList *buddies); |
|
Evan@653
|
866 |
|
|
Evan@653
|
867 |
/** |
|
Evan@653
|
868 |
* Removes a buddy from the server-side buddy list. |
|
Evan@653
|
869 |
* |
|
Evan@653
|
870 |
* @param account The account. |
|
Evan@653
|
871 |
* @param buddy The buddy to remove. |
|
Evan@653
|
872 |
* @param group The group to remove the buddy from. |
|
Evan@653
|
873 |
*/ |
|
Evan@653
|
874 |
void purple_account_remove_buddy(PurpleAccount *account, PurpleBuddy *buddy, |
|
Evan@653
|
875 |
PurpleGroup *group); |
|
Evan@653
|
876 |
|
|
Evan@653
|
877 |
/** |
|
Evan@653
|
878 |
* Removes a list of buddies from the server-side buddy list. |
|
Evan@653
|
879 |
* |
|
Evan@653
|
880 |
* @note The lists buddies and groups are parallel lists. Be sure that node n of |
|
Evan@653
|
881 |
* groups matches node n of buddies. |
|
Evan@653
|
882 |
* |
|
Evan@653
|
883 |
* @param account The account. |
|
Evan@653
|
884 |
* @param buddies The list of buddies to remove. |
|
Evan@653
|
885 |
* @param groups The list of groups to remove buddies from. Each node of this |
|
Evan@653
|
886 |
* list should match the corresponding node of buddies. |
|
Evan@653
|
887 |
*/ |
|
Evan@653
|
888 |
void purple_account_remove_buddies(PurpleAccount *account, GList *buddies, |
|
Evan@653
|
889 |
GList *groups); |
|
Evan@653
|
890 |
|
|
Evan@653
|
891 |
/** |
|
Evan@653
|
892 |
* Removes a group from the server-side buddy list. |
|
Evan@653
|
893 |
* |
|
Evan@653
|
894 |
* @param account The account. |
|
Evan@653
|
895 |
* @param group The group to remove. |
|
Evan@653
|
896 |
*/ |
|
Evan@653
|
897 |
void purple_account_remove_group(PurpleAccount *account, PurpleGroup *group); |
|
Evan@653
|
898 |
|
|
Evan@653
|
899 |
/** |
|
Evan@653
|
900 |
* Changes the password on the specified account. |
|
Evan@653
|
901 |
* |
|
Evan@653
|
902 |
* @param account The account. |
|
Evan@653
|
903 |
* @param orig_pw The old password. |
|
Evan@653
|
904 |
* @param new_pw The new password. |
|
Evan@653
|
905 |
*/ |
|
Evan@653
|
906 |
void purple_account_change_password(PurpleAccount *account, const char *orig_pw, |
|
Evan@653
|
907 |
const char *new_pw); |
|
Evan@653
|
908 |
|
|
Evan@653
|
909 |
/** |
|
Evan@653
|
910 |
* Whether the account supports sending offline messages to buddy. |
|
Evan@653
|
911 |
* |
|
Evan@653
|
912 |
* @param account The account |
|
Evan@653
|
913 |
* @param buddy The buddy |
|
Evan@653
|
914 |
*/ |
|
Evan@653
|
915 |
gboolean purple_account_supports_offline_message(PurpleAccount *account, PurpleBuddy *buddy); |
|
Evan@653
|
916 |
|
|
Evan@653
|
917 |
/** |
|
Evan@653
|
918 |
* Get the error that caused the account to be disconnected, or @c NULL if the |
|
Evan@653
|
919 |
* account is happily connected or disconnected without an error. |
|
Evan@653
|
920 |
* |
|
Evan@653
|
921 |
* @param account The account whose error should be retrieved. |
|
Evan@653
|
922 |
* @constreturn The type of error and a human-readable description of the |
|
Evan@653
|
923 |
* current error, or @c NULL if there is no current error. This |
|
Evan@653
|
924 |
* pointer is guaranteed to remain valid until the @ref |
|
Evan@653
|
925 |
* account-error-changed signal is emitted for @a account. |
|
Evan@653
|
926 |
*/ |
|
Evan@653
|
927 |
const PurpleConnectionErrorInfo *purple_account_get_current_error(PurpleAccount *account); |
|
Evan@653
|
928 |
|
|
Evan@653
|
929 |
/** |
|
Evan@653
|
930 |
* Clear an account's current error state, resetting it to @c NULL. |
|
Evan@653
|
931 |
* |
|
Evan@653
|
932 |
* @param account The account whose error state should be cleared. |
|
Evan@653
|
933 |
*/ |
|
Evan@653
|
934 |
void purple_account_clear_current_error(PurpleAccount *account); |
|
Evan@653
|
935 |
|
|
Evan@653
|
936 |
/*@}*/ |
|
Evan@653
|
937 |
|
|
Evan@653
|
938 |
/**************************************************************************/ |
|
Evan@653
|
939 |
/** @name Accounts API */ |
|
Evan@653
|
940 |
/**************************************************************************/ |
|
Evan@653
|
941 |
/*@{*/ |
|
Evan@653
|
942 |
|
|
Evan@653
|
943 |
/** |
|
Evan@653
|
944 |
* Adds an account to the list of accounts. |
|
Evan@653
|
945 |
* |
|
Evan@653
|
946 |
* @param account The account. |
|
Evan@653
|
947 |
*/ |
|
Evan@653
|
948 |
void purple_accounts_add(PurpleAccount *account); |
|
Evan@653
|
949 |
|
|
Evan@653
|
950 |
/** |
|
Evan@653
|
951 |
* Removes an account from the list of accounts. |
|
Evan@653
|
952 |
* |
|
Evan@653
|
953 |
* @param account The account. |
|
Evan@653
|
954 |
*/ |
|
Evan@653
|
955 |
void purple_accounts_remove(PurpleAccount *account); |
|
Evan@653
|
956 |
|
|
Evan@653
|
957 |
/** |
|
Evan@653
|
958 |
* Deletes an account. |
|
Evan@653
|
959 |
* |
|
Evan@653
|
960 |
* This will remove any buddies from the buddy list that belong to this |
|
Evan@653
|
961 |
* account, buddy pounces that belong to this account, and will also |
|
Evan@653
|
962 |
* destroy @a account. |
|
Evan@653
|
963 |
* |
|
Evan@653
|
964 |
* @param account The account. |
|
Evan@653
|
965 |
*/ |
|
Evan@653
|
966 |
void purple_accounts_delete(PurpleAccount *account); |
|
Evan@653
|
967 |
|
|
Evan@653
|
968 |
/** |
|
Evan@653
|
969 |
* Reorders an account. |
|
Evan@653
|
970 |
* |
|
Evan@653
|
971 |
* @param account The account to reorder. |
|
Evan@653
|
972 |
* @param new_index The new index for the account. |
|
Evan@653
|
973 |
*/ |
|
Evan@653
|
974 |
void purple_accounts_reorder(PurpleAccount *account, gint new_index); |
|
Evan@653
|
975 |
|
|
Evan@653
|
976 |
/** |
|
Evan@653
|
977 |
* Returns a list of all accounts. |
|
Evan@653
|
978 |
* |
|
Evan@653
|
979 |
* @constreturn A list of all accounts. |
|
Evan@653
|
980 |
*/ |
|
Evan@653
|
981 |
GList *purple_accounts_get_all(void); |
|
Evan@653
|
982 |
|
|
Evan@653
|
983 |
/** |
|
Evan@653
|
984 |
* Returns a list of all enabled accounts |
|
Evan@653
|
985 |
* |
|
Evan@653
|
986 |
* @return A list of all enabled accounts. The list is owned |
|
Evan@653
|
987 |
* by the caller, and must be g_list_free()d to avoid |
|
Evan@653
|
988 |
* leaking the nodes. |
|
Evan@653
|
989 |
*/ |
|
Evan@653
|
990 |
GList *purple_accounts_get_all_active(void); |
|
Evan@653
|
991 |
|
|
Evan@653
|
992 |
/** |
|
Evan@653
|
993 |
* Finds an account with the specified name and protocol id. |
|
Evan@653
|
994 |
* |
|
Evan@653
|
995 |
* @param name The account username. |
|
Evan@653
|
996 |
* @param protocol The account protocol ID. |
|
Evan@653
|
997 |
* |
|
Evan@653
|
998 |
* @return The account, if found, or @c FALSE otherwise. |
|
Evan@653
|
999 |
*/ |
|
Evan@653
|
1000 |
PurpleAccount *purple_accounts_find(const char *name, const char *protocol); |
|
Evan@653
|
1001 |
|
|
Evan@653
|
1002 |
/** |
|
Evan@653
|
1003 |
* This is called by the core after all subsystems and what |
|
Evan@653
|
1004 |
* not have been initialized. It sets all enabled accounts |
|
Evan@653
|
1005 |
* to their startup status by signing them on, setting them |
|
Evan@653
|
1006 |
* away, etc. |
|
Evan@653
|
1007 |
* |
|
Evan@653
|
1008 |
* You probably shouldn't call this unless you really know |
|
Evan@653
|
1009 |
* what you're doing. |
|
Evan@653
|
1010 |
*/ |
|
Evan@653
|
1011 |
void purple_accounts_restore_current_statuses(void); |
|
Evan@653
|
1012 |
|
|
Evan@653
|
1013 |
/*@}*/ |
|
Evan@653
|
1014 |
|
|
Evan@653
|
1015 |
|
|
Evan@653
|
1016 |
/**************************************************************************/ |
|
Evan@653
|
1017 |
/** @name UI Registration Functions */ |
|
Evan@653
|
1018 |
/**************************************************************************/ |
|
Evan@653
|
1019 |
/*@{*/ |
|
Evan@653
|
1020 |
/** |
|
Evan@653
|
1021 |
* Sets the UI operations structure to be used for accounts. |
|
Evan@653
|
1022 |
* |
|
Evan@653
|
1023 |
* @param ops The UI operations structure. |
|
Evan@653
|
1024 |
*/ |
|
Evan@653
|
1025 |
void purple_accounts_set_ui_ops(PurpleAccountUiOps *ops); |
|
Evan@653
|
1026 |
|
|
Evan@653
|
1027 |
/** |
|
Evan@653
|
1028 |
* Returns the UI operations structure used for accounts. |
|
Evan@653
|
1029 |
* |
|
Evan@653
|
1030 |
* @return The UI operations structure in use. |
|
Evan@653
|
1031 |
*/ |
|
Evan@653
|
1032 |
PurpleAccountUiOps *purple_accounts_get_ui_ops(void); |
|
Evan@653
|
1033 |
|
|
Evan@653
|
1034 |
/*@}*/ |
|
Evan@653
|
1035 |
|
|
Evan@653
|
1036 |
|
|
Evan@653
|
1037 |
/**************************************************************************/ |
|
Evan@653
|
1038 |
/** @name Accounts Subsystem */ |
|
Evan@653
|
1039 |
/**************************************************************************/ |
|
Evan@653
|
1040 |
/*@{*/ |
|
Evan@653
|
1041 |
|
|
Evan@653
|
1042 |
/** |
|
Evan@653
|
1043 |
* Returns the accounts subsystem handle. |
|
Evan@653
|
1044 |
* |
|
Evan@653
|
1045 |
* @return The accounts subsystem handle. |
|
Evan@653
|
1046 |
*/ |
|
Evan@653
|
1047 |
void *purple_accounts_get_handle(void); |
|
Evan@653
|
1048 |
|
|
Evan@653
|
1049 |
/** |
|
Evan@653
|
1050 |
* Initializes the accounts subsystem. |
|
Evan@653
|
1051 |
*/ |
|
Evan@653
|
1052 |
void purple_accounts_init(void); |
|
Evan@653
|
1053 |
|
|
Evan@653
|
1054 |
/** |
|
Evan@653
|
1055 |
* Uninitializes the accounts subsystem. |
|
Evan@653
|
1056 |
*/ |
|
Evan@653
|
1057 |
void purple_accounts_uninit(void); |
|
Evan@653
|
1058 |
|
|
Evan@653
|
1059 |
/*@}*/ |
|
Evan@653
|
1060 |
|
|
Evan@653
|
1061 |
#ifdef __cplusplus |
|
Evan@653
|
1062 |
} |
|
Evan@653
|
1063 |
#endif |
|
Evan@653
|
1064 |
|
|
Evan@653
|
1065 |
#endif /* _PURPLE_ACCOUNT_H_ */ |