pidgin: prpl.h Source File

pidgin 2.14.4

Loading...
Searching...
No Matches
prpl.h
Go to the documentation of this file.
1
6/* purple
7 *
8 * Purple is the legal property of its developers, whose names are too numerous
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
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
25 */
26
27/* this file should be all that prpls need to include. therefore, by including
28 * this file, they should get glib, proxy, purple_connection, prpl, etc. */
29
30#ifndef _PURPLE_PRPL_H_
31#define _PURPLE_PRPL_H_
32
33typedef struct _PurplePluginProtocolInfo PurplePluginProtocolInfo;
35 typedef struct _PurpleAttentionType PurpleAttentionType;
36
37/**************************************************************************/
39/**************************************************************************/
40
41 typedef enum {
42 PURPLE_ICON_SCALE_DISPLAY = 0x01,
43 PURPLE_ICON_SCALE_SEND = 0x02
44} PurpleIconScaleRules;
45
46
52 typedef struct _PurpleBuddyIconSpec PurpleBuddyIconSpec;
53
59 typedef struct _PurpleThumbnailSpec PurpleThumbnailSpec;
60
65#define NO_BUDDY_ICONS {NULL, 0, 0, 0, 0, 0, 0}
66
67#ifdef HAVE_UNISTD_H
68#include <unistd.h>
69#endif
70
71#include "blist.h"
72#include "conversation.h"
73#include "ft.h"
74#include "imgstore.h"
75#include "media.h"
76#include "notify.h"
77#include "proxy.h"
78#include "plugin.h"
79#include "roomlist.h"
80#include "status.h"
81#include "whiteboard.h"
82
83
85 struct _PurpleBuddyIconSpec {
91 char *format;
92
93 int min_width;
94 int min_height;
95 int max_width;
96 int max_height;
97 size_t max_filesize;
98 PurpleIconScaleRules scale_rules;
99};
100
104 struct proto_chat_entry {
105 const char *label;
106 const char *identifier;
107 gboolean required;
108 gboolean is_int;
109 int min;
110 int max;
111 gboolean secret;
112};
113
117 struct _PurpleAttentionType
118{
119 const char *name;
120 const char *incoming_description;
121 const char *outgoing_description;
122 const char *icon_name;
123 const char *unlocalized_name;
125 /* Reserved fields for future purposes */
126 gpointer _reserved2;
127 gpointer _reserved3;
128 gpointer _reserved4;
129};
130
136 typedef enum
137{
145 OPT_PROTO_UNIQUE_CHATNAME = 0x00000004,
146
152 OPT_PROTO_CHAT_TOPIC = 0x00000008,
153
160 OPT_PROTO_NO_PASSWORD = 0x00000010,
161
167 OPT_PROTO_MAIL_CHECK = 0x00000020,
168
174 OPT_PROTO_IM_IMAGE = 0x00000040,
175
182 OPT_PROTO_PASSWORD_OPTIONAL = 0x00000080,
183
189 OPT_PROTO_USE_POINTSIZE = 0x00000100,
190
198 OPT_PROTO_REGISTER_NOSCREENNAME = 0x00000200,
199
205 OPT_PROTO_SLASH_COMMANDS_NATIVE = 0x00000400,
206
212 OPT_PROTO_INVITE_MESSAGE = 0x00000800,
213
219 OPT_PROTO_TRANSIENT_BUDDIES = 0x00001000,
220
221} PurpleProtocolOptions;
222
230 struct _PurplePluginProtocolInfo
231{
232 PurpleProtocolOptions options;
234 GList *user_splits;
235 GList *protocol_options;
237 PurpleBuddyIconSpec icon_spec;
247 const char *(*list_icon)(PurpleAccount *account, PurpleBuddy *buddy);
248
253 const char *(*list_emblem)(PurpleBuddy *buddy);
254
259 char *(*status_text)(PurpleBuddy *buddy);
260
264 void (*tooltip_text)(PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gboolean full);
265
271 GList *(*status_types)(PurpleAccount *account);
272
278 GList *(*blist_node_menu)(PurpleBlistNode *node);
279
287 GList *(*chat_info)(PurpleConnection *);
288
299 GHashTable *(*chat_info_defaults)(PurpleConnection *, const char *chat_name);
300
301 /* All the server-related functions */
302
304 void (*login)(PurpleAccount *);
305
307 void (*close)(PurpleConnection *);
308
318 int (*send_im)(PurpleConnection *, const char *who,
319 const char *message,
320 PurpleMessageFlags flags);
321
322 void (*set_info)(PurpleConnection *, const char *info);
323
331 unsigned int (*send_typing)(PurpleConnection *, const char *name, PurpleTypingState state);
332
337 void (*get_info)(PurpleConnection *, const char *who);
338 void (*set_status)(PurpleAccount *account, PurpleStatus *status);
339
340 void (*set_idle)(PurpleConnection *, int idletime);
341 void (*change_passwd)(PurpleConnection *, const char *old_pass,
342 const char *new_pass);
354 void (*add_buddy)(PurpleConnection *, PurpleBuddy *buddy, PurpleGroup *group);
355 void (*add_buddies)(PurpleConnection *, GList *buddies, GList *groups);
356 void (*remove_buddy)(PurpleConnection *, PurpleBuddy *buddy, PurpleGroup *group);
357 void (*remove_buddies)(PurpleConnection *, GList *buddies, GList *groups);
358 void (*add_permit)(PurpleConnection *, const char *name);
359 void (*add_deny)(PurpleConnection *, const char *name);
360 void (*rem_permit)(PurpleConnection *, const char *name);
361 void (*rem_deny)(PurpleConnection *, const char *name);
362 void (*set_permit_deny)(PurpleConnection *);
363
374 void (*join_chat)(PurpleConnection *, GHashTable *components);
375
382 void (*reject_chat)(PurpleConnection *, GHashTable *components);
383
391 char *(*get_chat_name)(GHashTable *components);
392
401 void (*chat_invite)(PurpleConnection *, int id,
402 const char *message, const char *who);
408 void (*chat_leave)(PurpleConnection *, int id);
409
417 void (*chat_whisper)(PurpleConnection *, int id,
418 const char *who, const char *message);
419
436 int (*chat_send)(PurpleConnection *, int id, const char *message, PurpleMessageFlags flags);
437
444 void (*keepalive)(PurpleConnection *);
445
447 void (*register_user)(PurpleAccount *);
448
452 void (*get_cb_info)(PurpleConnection *, int, const char *who);
457 void (*get_cb_away)(PurpleConnection *, int, const char *who);
458
460 void (*alias_buddy)(PurpleConnection *, const char *who,
461 const char *alias);
462
464 void (*group_buddy)(PurpleConnection *, const char *who,
465 const char *old_group, const char *new_group);
466
468 void (*rename_group)(PurpleConnection *, const char *old_name,
469 PurpleGroup *group, GList *moved_buddies);
470
471 void (*buddy_free)(PurpleBuddy *);
472
473 void (*convo_closed)(PurpleConnection *, const char *who);
474
480 const char *(*normalize)(const PurpleAccount *, const char *who);
481
487 void (*set_buddy_icon)(PurpleConnection *, PurpleStoredImage *img);
488
489 void (*remove_group)(PurpleConnection *gc, PurpleGroup *group);
490
500 char *(*get_cb_real_name)(PurpleConnection *gc, int id, const char *who);
501
502 void (*set_chat_topic)(PurpleConnection *gc, int id, const char *topic);
503
504 PurpleChat *(*find_blist_chat)(PurpleAccount *account, const char *name);
505
506 /* room listing prpl callbacks */
507 PurpleRoomlist *(*roomlist_get_list)(PurpleConnection *gc);
508 void (*roomlist_cancel)(PurpleRoomlist *list);
509 void (*roomlist_expand_category)(PurpleRoomlist *list, PurpleRoomlistRoom *category);
510
511 /* file transfer callbacks */
512 gboolean (*can_receive_file)(PurpleConnection *, const char *who);
513 void (*send_file)(PurpleConnection *, const char *who, const char *filename);
514 PurpleXfer *(*new_xfer)(PurpleConnection *, const char *who);
515
520 gboolean (*offline_message)(const PurpleBuddy *buddy);
521
522 PurpleWhiteboardPrplOps *whiteboard_prpl_ops;
523
525 int (*send_raw)(PurpleConnection *gc, const char *buf, int len);
526
527 /* room list serialize */
528 char *(*roomlist_room_serialize)(PurpleRoomlistRoom *room);
529
534 /* This is here rather than next to register_user for API compatibility
535 * reasons.
536 */
537 void (*unregister_user)(PurpleAccount *, PurpleAccountUnregistrationCb cb, void *user_data);
538
539 /* Attention API for sending & receiving zaps/nudges/buzzes etc. */
540 gboolean (*send_attention)(PurpleConnection *gc, const char *username, guint type);
541 GList *(*get_attention_types)(PurpleAccount *acct);
542
547 unsigned long struct_size;
548
549 /* NOTE:
550 * If more functions are added, they should accessed using the following syntax:
551 *
552 * if (PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, new_function))
553 * prpl->new_function(...);
554 *
555 * instead of
556 *
557 * if (prpl->new_function != NULL)
558 * prpl->new_function(...);
559 *
560 * The PURPLE_PROTOCOL_PLUGIN_HAS_FUNC macro can be used for the older member
561 * functions (e.g. login, send_im etc.) too.
562 */
563
573 GHashTable *(*get_account_text_table)(PurpleAccount *account);
574
583 gboolean (*initiate_media)(PurpleAccount *account, const char *who,
584 PurpleMediaSessionType type);
585
593 PurpleMediaCaps (*get_media_caps)(PurpleAccount *account,
594 const char *who);
595
601 PurpleMood *(*get_moods)(PurpleAccount *account);
602
621 void (*set_public_alias)(PurpleConnection *gc, const char *alias,
622 PurpleSetPublicAliasSuccessCallback success_cb,
623 PurpleSetPublicAliasFailureCallback failure_cb);
638 void (*get_public_alias)(PurpleConnection *gc,
639 PurpleGetPublicAliasSuccessCallback success_cb,
640 PurpleGetPublicAliasFailureCallback failure_cb);
641
654 void (*add_buddy_with_invite)(PurpleConnection *pc, PurpleBuddy *buddy, PurpleGroup *group, const char *message);
655 void (*add_buddies_with_invite)(PurpleConnection *pc, GList *buddies, GList *groups, const char *message);
656
668 char *(*get_cb_alias)(PurpleConnection *gc, int id, const char *who);
669
670
681 gboolean (*chat_can_receive_file)(PurpleConnection *, int id);
682
692 void (*chat_send_file)(PurpleConnection *, int id, const char *filename);
693
694};
695
696#define PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, member) \
697 (((G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < G_STRUCT_OFFSET(PurplePluginProtocolInfo, struct_size)) \
698 || (G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < prpl->struct_size)) && \
699 prpl->member != NULL)
700
701
702#define PURPLE_IS_PROTOCOL_PLUGIN(plugin) \
703 ((plugin)->info->type == PURPLE_PLUGIN_PROTOCOL)
704
705#define PURPLE_PLUGIN_PROTOCOL_INFO(plugin) \
706 ((PurplePluginProtocolInfo *)(plugin)->info->extra_info)
707
708#ifdef __cplusplus
709extern "C" {
710#endif
711
712/**************************************************************************/
714/**************************************************************************/
730 PurpleAttentionType *purple_attention_type_new(const char *ulname, const char *name,
731 const char *inc_desc, const char *out_desc);
732
742 void purple_attention_type_set_name(PurpleAttentionType *type, const char *name);
743
752 void purple_attention_type_set_incoming_desc(PurpleAttentionType *type, const char *desc);
753
762 void purple_attention_type_set_outgoing_desc(PurpleAttentionType *type, const char *desc);
763
772 void purple_attention_type_set_icon_name(PurpleAttentionType *type, const char *name);
773
783 void purple_attention_type_set_unlocalized_name(PurpleAttentionType *type, const char *ulname);
784
792 const char *purple_attention_type_get_name(const PurpleAttentionType *type);
793
801 const char *purple_attention_type_get_incoming_desc(const PurpleAttentionType *type);
802
810 const char *purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type);
811
820 const char *purple_attention_type_get_icon_name(const PurpleAttentionType *type);
821
829 const char *purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type);
830
833/**************************************************************************/
835/**************************************************************************/
847 void purple_prpl_got_account_idle(PurpleAccount *account, gboolean idle,
848 time_t idle_time);
849
858 void purple_prpl_got_account_login_time(PurpleAccount *account, time_t login_time);
859
870 void purple_prpl_got_account_status(PurpleAccount *account,
871 const char *status_id, ...) G_GNUC_NULL_TERMINATED;
872
885 void purple_prpl_got_account_actions(PurpleAccount *account);
886
900 void purple_prpl_got_user_idle(PurpleAccount *account, const char *name,
901 gboolean idle, time_t idle_time);
902
912 void purple_prpl_got_user_login_time(PurpleAccount *account, const char *name,
913 time_t login_time);
914
926 void purple_prpl_got_user_status(PurpleAccount *account, const char *name,
927 const char *status_id, ...) G_GNUC_NULL_TERMINATED;
928
938 void purple_prpl_got_user_status_deactive(PurpleAccount *account, const char *name,
939 const char *status_id);
940
949 void purple_prpl_change_account_status(PurpleAccount *account,
950 PurpleStatus *old_status,
951 PurpleStatus *new_status);
952
961GList *purple_prpl_get_statuses(PurpleAccount *account, PurplePresence *presence);
962
977 void purple_prpl_send_attention(PurpleConnection *gc, const char *who, guint type_code);
978
989 void purple_prpl_got_attention(PurpleConnection *gc, const char *who, guint type_code);
990
1002 void purple_prpl_got_attention_in_chat(PurpleConnection *gc, int id, const char *who, guint type_code);
1003
1012PurpleMediaCaps purple_prpl_get_media_caps(PurpleAccount *account,
1013 const char *who);
1014
1024gboolean purple_prpl_initiate_media(PurpleAccount *account,
1025 const char *who,
1026 PurpleMediaSessionType type);
1027
1037 void purple_prpl_got_media_caps(PurpleAccount *account, const char *who);
1038
1041/**************************************************************************/
1043/**************************************************************************/
1051 PurplePlugin *purple_find_prpl(const char *id);
1052
1055#ifdef __cplusplus
1056}
1057#endif
1058
1059#ifdef __COVERITY__
1060#undef PURPLE_PROTOCOL_PLUGIN_HAS_FUNC
1061#define PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, member) (prpl->member != NULL)
1062#endif
1063
1064#endif /* _PRPL_H_ */
blist.h
Buddy List API.
conversation.h
Conversation API.
PurpleTypingState
PurpleTypingState
The typing state of a user.
Definition: conversation.h:95
PurpleMessageFlags
PurpleMessageFlags
Flags applicable to a message.
Definition: conversation.h:106
ft.h
File Transfer API.
imgstore.h
IM Image Store API.
PurpleStoredImage
struct _PurpleStoredImage PurpleStoredImage
A set of utility functions that provide a reference-counted immutable wrapper around an image's data ...
Definition: imgstore.h:37
media.h
Media API.
notify.h
Notification API.
plugin.h
Plugin API.
proxy.h
Proxy API.
purple_prpl_got_attention
void purple_prpl_got_attention(PurpleConnection *gc, const char *who, guint type_code)
Process an incoming attention message.
purple_find_prpl
PurplePlugin * purple_find_prpl(const char *id)
Finds a protocol plugin structure of the specified type.
purple_attention_type_get_incoming_desc
const char * purple_attention_type_get_incoming_desc(const PurpleAttentionType *type)
Get the attention type's description shown when the event is received.
purple_prpl_got_user_status_deactive
void purple_prpl_got_user_status_deactive(PurpleAccount *account, const char *name, const char *status_id)
Notifies libpurple that a buddy's status has been deactivated.
purple_prpl_get_media_caps
PurpleMediaCaps purple_prpl_get_media_caps(PurpleAccount *account, const char *who)
Determines if the contact supports the given media session type.
purple_attention_type_get_unlocalized_name
const char * purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type)
Get the attention type's unlocalized name; this is useful for some UIs.
purple_attention_type_new
PurpleAttentionType * purple_attention_type_new(const char *ulname, const char *name, const char *inc_desc, const char *out_desc)
Creates a new PurpleAttentionType object and sets its mandatory parameters.
purple_prpl_got_account_login_time
void purple_prpl_got_account_login_time(PurpleAccount *account, time_t login_time)
Notifies Purple of our account's log-in time.
purple_prpl_initiate_media
gboolean purple_prpl_initiate_media(PurpleAccount *account, const char *who, PurpleMediaSessionType type)
Initiates a media session with the given contact.
PurpleIconScaleRules
PurpleIconScaleRules
Definition: prpl.h:41
PURPLE_ICON_SCALE_DISPLAY
@ PURPLE_ICON_SCALE_DISPLAY
We scale the icon when we display it.
Definition: prpl.h:42
PURPLE_ICON_SCALE_SEND
@ PURPLE_ICON_SCALE_SEND
We scale the icon before we send it to the server.
Definition: prpl.h:43
purple_attention_type_get_outgoing_desc
const char * purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type)
Get the attention type's description shown when the event is sent.
PurpleProtocolOptions
PurpleProtocolOptions
Protocol options.
Definition: prpl.h:137
OPT_PROTO_TRANSIENT_BUDDIES
@ OPT_PROTO_TRANSIENT_BUDDIES
Indicates that this protocol supports creating invisible buddies for reporting presence/alias of IM p...
Definition: prpl.h:219
OPT_PROTO_SLASH_COMMANDS_NATIVE
@ OPT_PROTO_SLASH_COMMANDS_NATIVE
Indicates that slash commands are native to this protocol.
Definition: prpl.h:205
OPT_PROTO_USE_POINTSIZE
@ OPT_PROTO_USE_POINTSIZE
Allows font size to be specified in sane point size.
Definition: prpl.h:189
OPT_PROTO_NO_PASSWORD
@ OPT_PROTO_NO_PASSWORD
Don't require passwords for sign-in.
Definition: prpl.h:160
OPT_PROTO_MAIL_CHECK
@ OPT_PROTO_MAIL_CHECK
Notify on new mail.
Definition: prpl.h:167
OPT_PROTO_PASSWORD_OPTIONAL
@ OPT_PROTO_PASSWORD_OPTIONAL
Allow passwords to be optional.
Definition: prpl.h:182
OPT_PROTO_INVITE_MESSAGE
@ OPT_PROTO_INVITE_MESSAGE
Indicates that this protocol supports sending a user-supplied message along with an invitation.
Definition: prpl.h:212
OPT_PROTO_REGISTER_NOSCREENNAME
@ OPT_PROTO_REGISTER_NOSCREENNAME
Set the Register button active even when the username has not been specified.
Definition: prpl.h:198
OPT_PROTO_IM_IMAGE
@ OPT_PROTO_IM_IMAGE
Images in IMs.
Definition: prpl.h:174
OPT_PROTO_CHAT_TOPIC
@ OPT_PROTO_CHAT_TOPIC
Chat rooms have topics.
Definition: prpl.h:152
OPT_PROTO_UNIQUE_CHATNAME
@ OPT_PROTO_UNIQUE_CHATNAME
User names are unique to a chat and are not shared between rooms.
Definition: prpl.h:145
purple_prpl_send_attention
void purple_prpl_send_attention(PurpleConnection *gc, const char *who, guint type_code)
Send an attention request message.
purple_prpl_get_statuses
GList * purple_prpl_get_statuses(PurpleAccount *account, PurplePresence *presence)
Retrieves the list of stock status types from a prpl.
purple_prpl_got_user_login_time
void purple_prpl_got_user_login_time(PurpleAccount *account, const char *name, time_t login_time)
Notifies Purple of a buddy's log-in time.
purple_prpl_got_attention_in_chat
void purple_prpl_got_attention_in_chat(PurpleConnection *gc, int id, const char *who, guint type_code)
Process an incoming attention message in a chat.
purple_prpl_change_account_status
void purple_prpl_change_account_status(PurpleAccount *account, PurpleStatus *old_status, PurpleStatus *new_status)
Informs the server that our account's status changed.
purple_attention_type_set_icon_name
void purple_attention_type_set_icon_name(PurpleAttentionType *type, const char *name)
Sets the name of the icon to display for the attention event; this is optional.
purple_prpl_got_user_status
void purple_prpl_got_user_status(PurpleAccount *account, const char *name, const char *status_id,...) G_GNUC_NULL_TERMINATED
Notifies Purple that a buddy's status has been activated.
purple_prpl_got_media_caps
void purple_prpl_got_media_caps(PurpleAccount *account, const char *who)
Signals that the prpl received capabilities for the given contact.
PurpleThumbnailSpec
struct _PurpleThumbnailSpec PurpleThumbnailSpec
A description of a file transfer thumbnail specification.
Definition: prpl.h:59
purple_prpl_got_account_status
void purple_prpl_got_account_status(PurpleAccount *account, const char *status_id,...) G_GNUC_NULL_TERMINATED
Notifies Purple that our account's status has changed.
purple_attention_type_set_unlocalized_name
void purple_attention_type_set_unlocalized_name(PurpleAttentionType *type, const char *ulname)
Sets the unlocalized name of the attention event; some UIs may need this, thus it is required.
purple_prpl_got_account_idle
void purple_prpl_got_account_idle(PurpleAccount *account, gboolean idle, time_t idle_time)
Notifies Purple that our account's idle state and time have changed.
purple_prpl_got_account_actions
void purple_prpl_got_account_actions(PurpleAccount *account)
Notifies Purple that our account's actions have changed.
purple_attention_type_get_icon_name
const char * purple_attention_type_get_icon_name(const PurpleAttentionType *type)
Get the attention type's icon name.
purple_prpl_got_user_idle
void purple_prpl_got_user_idle(PurpleAccount *account, const char *name, gboolean idle, time_t idle_time)
Notifies Purple that a buddy's idle state and time have changed.
purple_attention_type_set_name
void purple_attention_type_set_name(PurpleAttentionType *type, const char *name)
Sets the displayed name of the attention-demanding event.
purple_attention_type_set_incoming_desc
void purple_attention_type_set_incoming_desc(PurpleAttentionType *type, const char *desc)
Sets the description of the attention-demanding event shown in conversations when the event is receiv...
purple_attention_type_get_name
const char * purple_attention_type_get_name(const PurpleAttentionType *type)
Get the attention type's name as displayed by the UI.
purple_attention_type_set_outgoing_desc
void purple_attention_type_set_outgoing_desc(PurpleAttentionType *type, const char *desc)
Sets the description of the attention-demanding event shown in conversations when the event is sent.
roomlist.h
Room List API.
status.h
Status API.
_PurpleAccount
Structure representing an account.
Definition: account.h:170
_PurpleAttentionType
Represents "nudges" and "buzzes" that you may send to a buddy to attract their attention (or vice-ver...
Definition: prpl.h:118
_PurpleAttentionType::name
const char * name
Shown in GUI elements.
Definition: prpl.h:119
_PurpleAttentionType::icon_name
const char * icon_name
Icon to display (optional)
Definition: prpl.h:122
_PurpleAttentionType::unlocalized_name
const char * unlocalized_name
Unlocalized name for UIs needing it.
Definition: prpl.h:123
_PurpleAttentionType::incoming_description
const char * incoming_description
Shown when sent.
Definition: prpl.h:120
_PurpleAttentionType::outgoing_description
const char * outgoing_description
Shown when receied.
Definition: prpl.h:121
_PurpleBlistNode
A Buddy list node.
Definition: blist.h:126
_PurpleBuddyIconSpec
A description of a Buddy Icon specification.
Definition: prpl.h:85
_PurpleBuddyIconSpec::format
char * format
This is a comma-delimited list of image formats or NULL if icons are not supported.
Definition: prpl.h:91
_PurpleBuddyIconSpec::max_height
int max_height
Maximum height of this icon.
Definition: prpl.h:96
_PurpleBuddyIconSpec::min_height
int min_height
Minimum height of this icon.
Definition: prpl.h:94
_PurpleBuddyIconSpec::max_width
int max_width
Maximum width of this icon
Definition: prpl.h:95
_PurpleBuddyIconSpec::max_filesize
size_t max_filesize
Maximum size in bytes.
Definition: prpl.h:97
_PurpleBuddyIconSpec::scale_rules
PurpleIconScaleRules scale_rules
How to stretch this icon.
Definition: prpl.h:98
_PurpleBuddyIconSpec::min_width
int min_width
Minimum width of this icon
Definition: prpl.h:93
_PurpleBuddy
A buddy.
Definition: blist.h:140
_PurpleChat
A chat.
Definition: blist.h:181
_PurpleConnection
Definition: connection.h:246
_PurpleGroup
A group.
Definition: blist.h:169
_PurpleMood
Definition: status.h:90
_PurplePluginProtocolInfo
A protocol plugin information structure.
Definition: prpl.h:231
_PurplePluginProtocolInfo::get_public_alias
void(* get_public_alias)(PurpleConnection *gc, PurpleGetPublicAliasSuccessCallback success_cb, PurpleGetPublicAliasFailureCallback failure_cb)
Retrieve the user's "friendly name" as set on the server.
Definition: prpl.h:638
_PurplePluginProtocolInfo::keepalive
void(* keepalive)(PurpleConnection *)
If implemented, this will be called regularly for this prpl's active connections.
Definition: prpl.h:444
_PurplePluginProtocolInfo::group_buddy
void(* group_buddy)(PurpleConnection *, const char *who, const char *old_group, const char *new_group)
change a buddy's group on a server list/roster
Definition: prpl.h:464
_PurplePluginProtocolInfo::set_buddy_icon
void(* set_buddy_icon)(PurpleConnection *, PurpleStoredImage *img)
Set the buddy icon for the given connection to img.
Definition: prpl.h:487
_PurplePluginProtocolInfo::unregister_user
void(* unregister_user)(PurpleAccount *, PurpleAccountUnregistrationCb cb, void *user_data)
Remove the user from the server.
Definition: prpl.h:537
_PurplePluginProtocolInfo::send_raw
int(* send_raw)(PurpleConnection *gc, const char *buf, int len)
For use in plugins that may understand the underlying protocol.
Definition: prpl.h:525
_PurplePluginProtocolInfo::alias_buddy
void(* alias_buddy)(PurpleConnection *, const char *who, const char *alias)
save/store buddy's alias on server list/roster
Definition: prpl.h:460
_PurplePluginProtocolInfo::add_buddy
void(* add_buddy)(PurpleConnection *, PurpleBuddy *buddy, PurpleGroup *group)
Add a buddy to a group on the server.
Definition: prpl.h:354
_PurplePluginProtocolInfo::user_splits
GList * user_splits
A GList of PurpleAccountUserSplit.
Definition: prpl.h:234
_PurplePluginProtocolInfo::chat_invite
void(* chat_invite)(PurpleConnection *, int id, const char *message, const char *who)
Invite a user to join a chat.
Definition: prpl.h:401
_PurplePluginProtocolInfo::chat_leave
void(* chat_leave)(PurpleConnection *, int id)
Called when the user requests leaving a chat.
Definition: prpl.h:408
_PurplePluginProtocolInfo::rename_group
void(* rename_group)(PurpleConnection *, const char *old_name, PurpleGroup *group, GList *moved_buddies)
rename a group on a server list/roster
Definition: prpl.h:468
_PurplePluginProtocolInfo::chat_send
int(* chat_send)(PurpleConnection *, int id, const char *message, PurpleMessageFlags flags)
Send a message to a chat.
Definition: prpl.h:436
_PurplePluginProtocolInfo::add_buddy_with_invite
void(* add_buddy_with_invite)(PurpleConnection *pc, PurpleBuddy *buddy, PurpleGroup *group, const char *message)
Add a buddy to a group on the server.
Definition: prpl.h:654
_PurplePluginProtocolInfo::protocol_options
GList * protocol_options
A GList of PurpleAccountOption
Definition: prpl.h:235
_PurplePluginProtocolInfo::reject_chat
void(* reject_chat)(PurpleConnection *, GHashTable *components)
Called when the user refuses a chat invitation.
Definition: prpl.h:382
_PurplePluginProtocolInfo::icon_spec
PurpleBuddyIconSpec icon_spec
The icon spec.
Definition: prpl.h:237
_PurplePluginProtocolInfo::initiate_media
gboolean(* initiate_media)(PurpleAccount *account, const char *who, PurpleMediaSessionType type)
Initiate a media session with the given contact.
Definition: prpl.h:583
_PurplePluginProtocolInfo::join_chat
void(* join_chat)(PurpleConnection *, GHashTable *components)
Called when the user requests joining a chat.
Definition: prpl.h:374
_PurplePluginProtocolInfo::get_cb_away
void(* get_cb_away)(PurpleConnection *, int, const char *who)
Definition: prpl.h:457
_PurplePluginProtocolInfo::close
void(* close)(PurpleConnection *)
This must be implemented.
Definition: prpl.h:307
_PurplePluginProtocolInfo::get_info
void(* get_info)(PurpleConnection *, const char *who)
Should arrange for purple_notify_userinfo() to be called with who's user info.
Definition: prpl.h:337
_PurplePluginProtocolInfo::get_cb_info
void(* get_cb_info)(PurpleConnection *, int, const char *who)
Definition: prpl.h:452
_PurplePluginProtocolInfo::offline_message
gboolean(* offline_message)(const PurpleBuddy *buddy)
Checks whether offline messages to buddy are supported.
Definition: prpl.h:520
_PurplePluginProtocolInfo::set_public_alias
void(* set_public_alias)(PurpleConnection *gc, const char *alias, PurpleSetPublicAliasSuccessCallback success_cb, PurpleSetPublicAliasFailureCallback failure_cb)
Set the user's "friendly name" (or alias or nickname or whatever term you want to call it) on the ser...
Definition: prpl.h:621
_PurplePluginProtocolInfo::chat_whisper
void(* chat_whisper)(PurpleConnection *, int id, const char *who, const char *message)
Send a whisper to a user in a chat.
Definition: prpl.h:417
_PurplePluginProtocolInfo::login
void(* login)(PurpleAccount *)
This must be implemented.
Definition: prpl.h:304
_PurplePluginProtocolInfo::send_im
int(* send_im)(PurpleConnection *, const char *who, const char *message, PurpleMessageFlags flags)
This PRPL function should return a positive value on success.
Definition: prpl.h:318
_PurplePluginProtocolInfo::options
PurpleProtocolOptions options
Protocol options.
Definition: prpl.h:232
_PurplePluginProtocolInfo::get_media_caps
PurpleMediaCaps(* get_media_caps)(PurpleAccount *account, const char *who)
Checks to see if the given contact supports the given type of media session.
Definition: prpl.h:593
_PurplePluginProtocolInfo::tooltip_text
void(* tooltip_text)(PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gboolean full)
Allows the prpl to add text to a buddy's tooltip.
Definition: prpl.h:264
_PurplePluginProtocolInfo::send_typing
unsigned int(* send_typing)(PurpleConnection *, const char *name, PurpleTypingState state)
Definition: prpl.h:331
_PurplePluginProtocolInfo::chat_send_file
void(* chat_send_file)(PurpleConnection *, int id, const char *filename)
Send a file to a chat room.
Definition: prpl.h:692
_PurplePluginProtocolInfo::struct_size
unsigned long struct_size
The size of the PurplePluginProtocolInfo.
Definition: prpl.h:547
_PurplePluginProtocolInfo::register_user
void(* register_user)(PurpleAccount *)
new user registration
Definition: prpl.h:447
_PurplePluginProtocolInfo::chat_can_receive_file
gboolean(* chat_can_receive_file)(PurpleConnection *, int id)
Determine whether a chat can receive a file.
Definition: prpl.h:681
_PurplePlugin
A plugin handle.
Definition: plugin.h:152
_PurpleRoomlistRoom
Represents a room.
Definition: roomlist.h:82
_PurpleRoomlist
Data Structures
Definition: roomlist.h:69
_PurpleWhiteboardPrplOps
PurpleWhiteboard PRPL Operations.
Definition: whiteboard.h:79
_PurpleXfer
A core representation of a file transfer.
Definition: ft.h:135
proto_chat_entry
Represents an entry containing information that must be supplied by the user when joining a chat.
Definition: prpl.h:104
proto_chat_entry::min
int min
Minimum value in case of integer.
Definition: prpl.h:109
proto_chat_entry::required
gboolean required
True if it's required.
Definition: prpl.h:107
proto_chat_entry::identifier
const char * identifier
Used by the PRPL to identify the option.
Definition: prpl.h:106
proto_chat_entry::label
const char * label
User-friendly name of the entry.
Definition: prpl.h:105
proto_chat_entry::secret
gboolean secret
True if the entry is secret (password)
Definition: prpl.h:111
proto_chat_entry::max
int max
Maximum value in case of integer.
Definition: prpl.h:110
proto_chat_entry::is_int
gboolean is_int
True if the entry expects an integer.
Definition: prpl.h:108
whiteboard.h
The PurpleWhiteboard core object.