30 #ifndef _PURPLE_PRPL_H_ 31 #define _PURPLE_PRPL_H_ 65 #define NO_BUDDY_ICONS {NULL, 0, 0, 0, 0, 0, 0} 257 void (*tooltip_text)(
PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gboolean full);
300 void (*close)(PurpleConnection *);
311 int (*send_im)(PurpleConnection *,
const char *who,
315 void (*set_info)(PurpleConnection *,
const char *info);
330 void (*get_info)(PurpleConnection *,
const char *who);
331 void (*set_status)(
PurpleAccount *account, PurpleStatus *status);
333 void (*set_idle)(PurpleConnection *,
int idletime);
334 void (*change_passwd)(PurpleConnection *,
const char *old_pass,
335 const char *new_pass);
348 void (*add_buddies)(PurpleConnection *, GList *buddies, GList *groups);
350 void (*remove_buddies)(PurpleConnection *, GList *buddies, GList *groups);
351 void (*add_permit)(PurpleConnection *,
const char *name);
352 void (*add_deny)(PurpleConnection *,
const char *name);
353 void (*rem_permit)(PurpleConnection *,
const char *name);
354 void (*rem_deny)(PurpleConnection *,
const char *name);
355 void (*set_permit_deny)(PurpleConnection *);
367 void (*join_chat)(PurpleConnection *, GHashTable *components);
375 void (*reject_chat)(PurpleConnection *, GHashTable *components);
384 char *(*get_chat_name)(GHashTable *components);
394 void (*chat_invite)(PurpleConnection *,
int id,
395 const char *message,
const char *who);
401 void (*chat_leave)(PurpleConnection *,
int id);
410 void (*chat_whisper)(PurpleConnection *,
int id,
411 const char *who,
const char *message);
437 void (*keepalive)(PurpleConnection *);
445 void (*get_cb_info)(PurpleConnection *, int,
const char *who);
450 void (*get_cb_away)(PurpleConnection *, int,
const char *who);
453 void (*alias_buddy)(PurpleConnection *,
const char *who,
457 void (*group_buddy)(PurpleConnection *,
const char *who,
458 const char *old_group,
const char *new_group);
461 void (*rename_group)(PurpleConnection *,
const char *old_name,
466 void (*convo_closed)(PurpleConnection *,
const char *who);
482 void (*remove_group)(PurpleConnection *gc,
PurpleGroup *group);
493 char *(*get_cb_real_name)(PurpleConnection *gc,
int id,
const char *who);
495 void (*set_chat_topic)(PurpleConnection *gc,
int id,
const char *topic);
497 PurpleChat *(*find_blist_chat)(PurpleAccount *account,
const char *name);
505 gboolean (*can_receive_file)(PurpleConnection *,
const char *who);
506 void (*send_file)(PurpleConnection *,
const char *who,
const char *filename);
507 PurpleXfer *(*new_xfer)(PurpleConnection *,
const char *who);
518 int (*send_raw)(PurpleConnection *gc,
const char *buf,
int len);
530 void (*unregister_user)(PurpleAccount *, PurpleAccountUnregistrationCb cb,
void *user_data);
533 gboolean (*send_attention)(PurpleConnection *gc,
const char *username, guint type);
534 GList *(*get_attention_types)(PurpleAccount *acct);
566 GHashTable *(*get_account_text_table)(PurpleAccount *account);
576 gboolean (*initiate_media)(PurpleAccount *account,
const char *who,
577 PurpleMediaSessionType type);
586 PurpleMediaCaps (*get_media_caps)(PurpleAccount *account,
614 void (*set_public_alias)(PurpleConnection *gc,
const char *alias,
615 PurpleSetPublicAliasSuccessCallback success_cb,
616 PurpleSetPublicAliasFailureCallback failure_cb);
631 void (*get_public_alias)(PurpleConnection *gc,
632 PurpleGetPublicAliasSuccessCallback success_cb,
633 PurpleGetPublicAliasFailureCallback failure_cb);
648 void (*add_buddies_with_invite)(PurpleConnection *pc, GList *buddies, GList *groups,
const char *message);
651 #define PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, member) \ 652 (((G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < G_STRUCT_OFFSET(PurplePluginProtocolInfo, struct_size)) \ 653 || (G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < prpl->struct_size)) && \ 654 prpl->member != NULL) 657 #define PURPLE_IS_PROTOCOL_PLUGIN(plugin) \ 658 ((plugin)->info->type == PURPLE_PLUGIN_PROTOCOL) 660 #define PURPLE_PLUGIN_PROTOCOL_INFO(plugin) \ 661 ((PurplePluginProtocolInfo *)(plugin)->info->extra_info) 686 const char *inc_desc,
const char *out_desc);
826 const char *status_id, ...) G_GNUC_NULL_TERMINATED;
856 gboolean idle, time_t idle_time);
882 const char *status_id, ...) G_GNUC_NULL_TERMINATED;
894 const char *status_id);
905 PurpleStatus *old_status,
906 PurpleStatus *new_status);
981 PurpleMediaSessionType type);
1015 #undef PURPLE_PROTOCOL_PLUGIN_HAS_FUNC 1016 #define PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, member) (prpl->member != NULL)
const char * label
User-friendly name of the entry.
PurpleMessageFlags
Flags applicable to a message.
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.
const char * purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type)
Get the attention type's description shown when the event is sent.
PurpleProtocolOptions
Protocol options.
size_t max_filesize
Maximum size in bytes.
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.
PurpleMediaCaps purple_prpl_get_media_caps(PurpleAccount *account, const char *who)
Determines if the contact supports the given media session type.
struct _PurpleStoredImage PurpleStoredImage
A set of utility functions that provide a reference-counted immutable wrapper around an image's data ...
void purple_prpl_got_media_caps(PurpleAccount *account, const char *who)
Signals that the prpl received capabilities for the given contact.
GList * user_splits
A GList of PurpleAccountUserSplit.
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.
const char * purple_attention_type_get_name(const PurpleAttentionType *type)
Get the attention type's name as displayed by the UI.
unsigned long struct_size
The size of the PurplePluginProtocolInfo.
const char * name
Shown in GUI elements.
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.
const char * purple_attention_type_get_icon_name(const PurpleAttentionType *type)
Get the attention type's icon name.
Structure representing an account.
void purple_prpl_send_attention(PurpleConnection *gc, const char *who, guint type_code)
Send an attention request message.
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...
void purple_prpl_got_attention(PurpleConnection *gc, const char *who, guint type_code)
Process an incoming attention message.
We scale the icon when we display it.
Set the Register button active even when the username has not been specified.
PurpleTypingState
The typing state of a user.
void purple_prpl_got_account_login_time(PurpleAccount *account, time_t login_time)
Notifies Purple of our account's log-in time.
PurpleProtocolOptions options
Protocol options.
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.
gboolean required
True if it's required.
gboolean purple_prpl_initiate_media(PurpleAccount *account, const char *who, PurpleMediaSessionType type)
Initiates a media session with the given contact.
Allow passwords to be optional.
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.
A protocol plugin information structure.
We scale the icon before we send it to the server.
Represents an entry containing information that must be supplied by the user when joining a chat...
Don't require passwords for sign-in.
int max_height
Maximum height of this icon.
Indicates that slash commands are native to this protocol.
Represents "nudges" and "buzzes" that you may send to a buddy to attract their attention (or vice-ver...
PurpleBuddyIconSpec icon_spec
The icon spec.
const char * purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type)
Get the attention type's unlocalized name; this is useful for some UIs.
const char * incoming_description
Shown when sent.
PurpleWhiteboard PRPL Operations.
PurplePlugin * purple_find_prpl(const char *id)
Finds a protocol plugin structure of the specified type.
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...
GList * protocol_options
A GList of PurpleAccountOption.
const char * icon_name
Icon to display (optional)
char * format
This is a comma-delimited list of image formats or NULL if icons are not supported.
Indicates that this protocol supports sending a user-supplied message along with an invitation...
int max_width
Maximum width of this icon.
int max
Maximum value in case of integer.
int min
Minimum value in case of integer.
Status APIA brief explanation of the status API:
GList * purple_prpl_get_statuses(PurpleAccount *account, PurplePresence *presence)
Retrieves the list of stock status types from a prpl.
PurpleIconScaleRules scale_rules
How to stretch this icon.
void purple_prpl_change_account_status(PurpleAccount *account, PurpleStatus *old_status, PurpleStatus *new_status)
Informs the server that our account's status changed.
A description of a Buddy Icon specification.
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.
int min_width
Minimum width of this icon.
User names are unique to a chat and are not shared between rooms.
The PurpleWhiteboard core object.
void purple_attention_type_set_name(PurpleAttentionType *type, const char *name)
Sets the displayed name of the attention-demanding event.
const char * purple_attention_type_get_incoming_desc(const PurpleAttentionType *type)
Get the attention type's description shown when the event is received.
gboolean secret
True if the entry is secret (password)
const char * outgoing_description
Shown when receied.
int min_height
Minimum height of this icon.
const char * unlocalized_name
Unlocalized name for UIs needing it.
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...
Allows font size to be specified in sane point size.
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.
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.
struct _PurpleThumbnailSpec PurpleThumbnailSpec
A description of a file transfer thumbnail specification.
gboolean is_int
True if the entry expects an integer.
A core representation of a file transfer.
void purple_prpl_got_account_actions(PurpleAccount *account)
Notifies Purple that our account's actions have changed.
const char * identifier
Used by the PRPL to identify the option.