Frameworks/libpurple.framework/Versions/0.6.2/Headers/buddy.h
author Zachary West <zacw@adium.im>
Fri Aug 21 13:25:11 2009 -0700 (2009-08-21)
changeset 2592 e8d15275025e
parent 2571 Frameworks/libpurple.framework/Versions/0.6.0/Headers/buddy.h@75fb8ee8f2e6
permissions -rw-r--r--
im.pidgin.adium.1-4 at 267c6165e02e34318a1823960bd04c0639952f73
Evan@653
     1
/**
Evan@653
     2
 * @file buddy.h Buddy handlers
Evan@653
     3
 *
Evan@653
     4
 * purple
Evan@653
     5
 *
Evan@653
     6
 * Copyright (C) 2003 Nathan Walp <faceprint@faceprint.com>
Evan@653
     7
 *
Evan@653
     8
 * This program is free software; you can redistribute it and/or modify
Evan@653
     9
 * it under the terms of the GNU General Public License as published by
Evan@653
    10
 * the Free Software Foundation; either version 2 of the License, or
Evan@653
    11
 * (at your option) any later version.
Evan@653
    12
 *
Evan@653
    13
 * This program is distributed in the hope that it will be useful,
Evan@653
    14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Evan@653
    15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Evan@653
    16
 * GNU General Public License for more details.
Evan@653
    17
 *
Evan@653
    18
 * You should have received a copy of the GNU General Public License
Evan@653
    19
 * along with this program; if not, write to the Free Software
Evan@653
    20
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
Evan@653
    21
 */
zacw@1759
    22
#ifndef PURPLE_JABBER_BUDDY_H_
zacw@1759
    23
#define PURPLE_JABBER_BUDDY_H_
Evan@653
    24
Evan@653
    25
typedef enum {
Evan@653
    26
	JABBER_BUDDY_STATE_UNKNOWN = -2,
Evan@653
    27
	JABBER_BUDDY_STATE_ERROR = -1,
Evan@653
    28
	JABBER_BUDDY_STATE_UNAVAILABLE = 0,
Evan@653
    29
	JABBER_BUDDY_STATE_ONLINE,
Evan@653
    30
	JABBER_BUDDY_STATE_CHAT,
Evan@653
    31
	JABBER_BUDDY_STATE_AWAY,
Evan@653
    32
	JABBER_BUDDY_STATE_XA,
Evan@653
    33
	JABBER_BUDDY_STATE_DND
Evan@653
    34
} JabberBuddyState;
Evan@653
    35
Evan@2571
    36
typedef struct _JabberBuddy JabberBuddy;
Evan@2571
    37
Evan@653
    38
#include "jabber.h"
Evan@653
    39
#include "caps.h"
Evan@653
    40
Evan@2571
    41
struct _JabberBuddy {
Evan@653
    42
	GList *resources;
Evan@653
    43
	char *error_msg;
Evan@653
    44
	enum {
Evan@653
    45
		JABBER_INVISIBLE_NONE   = 0,
Evan@653
    46
		JABBER_INVISIBLE_SERVER = 1 << 1,
Evan@653
    47
		JABBER_INVIS_BUDDY      = 1 << 2
Evan@653
    48
	} invisible;
Evan@653
    49
	enum {
Evan@653
    50
		JABBER_SUB_NONE    = 0,
Evan@653
    51
		JABBER_SUB_PENDING = 1 << 1,
Evan@653
    52
		JABBER_SUB_TO      = 1 << 2,
Evan@653
    53
		JABBER_SUB_FROM    = 1 << 3,
Evan@653
    54
		JABBER_SUB_BOTH    = (JABBER_SUB_TO | JABBER_SUB_FROM),
Evan@653
    55
		JABBER_SUB_REMOVE  = 1 << 4
Evan@653
    56
	} subscription;
Evan@2571
    57
};
Evan@653
    58
Evan@653
    59
typedef struct _JabberAdHocCommands {
Evan@653
    60
	char *jid;
Evan@653
    61
	char *node;
Evan@653
    62
	char *name;
Evan@653
    63
} JabberAdHocCommands;
Evan@653
    64
Evan@653
    65
typedef struct _JabberBuddyResource {
Evan@653
    66
	JabberBuddy *jb;
Evan@653
    67
	char *name;
Evan@653
    68
	int priority;
Evan@653
    69
	JabberBuddyState state;
Evan@653
    70
	char *status;
zacw@2069
    71
	time_t idle;
Evan@653
    72
	JabberCapabilities capabilities;
Evan@653
    73
	char *thread_id;
Evan@653
    74
	enum {
Evan@653
    75
		JABBER_CHAT_STATES_UNKNOWN,
Evan@653
    76
		JABBER_CHAT_STATES_UNSUPPORTED,
Evan@653
    77
		JABBER_CHAT_STATES_SUPPORTED
Evan@653
    78
	} chat_states;
Evan@653
    79
	struct {
Evan@653
    80
		char *version;
Evan@653
    81
		char *name;
Evan@653
    82
		char *os;
Evan@653
    83
	} client;
zacw@1759
    84
	/* tz_off == PURPLE_NO_TZ_OFF when unset */
zacw@1759
    85
	long tz_off;
zacw@2069
    86
	struct {
zacw@2069
    87
		JabberCapsClientInfo *info;
zacw@2069
    88
		GList *exts;
zacw@2069
    89
	} caps;
Evan@653
    90
	GList *commands;
zacw@2151
    91
	gboolean commands_fetched;
Evan@653
    92
} JabberBuddyResource;
Evan@653
    93
Evan@653
    94
void jabber_buddy_free(JabberBuddy *jb);
Evan@653
    95
JabberBuddy *jabber_buddy_find(JabberStream *js, const char *name,
Evan@653
    96
		gboolean create);
Evan@653
    97
JabberBuddyResource *jabber_buddy_find_resource(JabberBuddy *jb,
Evan@653
    98
		const char *resource);
Evan@653
    99
JabberBuddyResource *jabber_buddy_track_resource(JabberBuddy *jb, const char *resource,
Evan@653
   100
		int priority, JabberBuddyState state, const char *status);
Evan@653
   101
void jabber_buddy_resource_free(JabberBuddyResource *jbr);
Evan@653
   102
void jabber_buddy_remove_resource(JabberBuddy *jb, const char *resource);
Evan@653
   103
void jabber_buddy_get_info(PurpleConnection *gc, const char *who);
Evan@653
   104
Evan@653
   105
GList *jabber_blist_node_menu(PurpleBlistNode *node);
Evan@653
   106
Evan@653
   107
void jabber_set_info(PurpleConnection *gc, const char *info);
Evan@653
   108
void jabber_setup_set_info(PurplePluginAction *action);
Evan@653
   109
void jabber_set_buddy_icon(PurpleConnection *gc, PurpleStoredImage *img);
Evan@653
   110
Evan@653
   111
const char *jabber_buddy_state_get_name(JabberBuddyState state);
Evan@653
   112
const char *jabber_buddy_state_get_status_id(JabberBuddyState state);
Evan@653
   113
const char *jabber_buddy_state_get_show(JabberBuddyState state);
Evan@653
   114
JabberBuddyState jabber_buddy_status_id_get_state(const char *id);
Evan@653
   115
JabberBuddyState jabber_buddy_show_get_state(const char *id);
Evan@653
   116
Evan@653
   117
void jabber_user_search(JabberStream *js, const char *directory);
Evan@653
   118
void jabber_user_search_begin(PurplePluginAction *);
Evan@653
   119
Evan@653
   120
void jabber_buddy_remove_all_pending_buddy_info_requests(JabberStream *js);
Evan@653
   121
Evan@653
   122
void jabber_vcard_fetch_mine(JabberStream *js);
Evan@653
   123
Evan@653
   124
gboolean jabber_resource_has_capability(const JabberBuddyResource *jbr,
Evan@653
   125
										const gchar *cap);
Evan@653
   126
gboolean jabber_buddy_has_capability(const JabberBuddy *jb, const gchar *cap);
Evan@653
   127
zacw@2489
   128
const gchar *
zacw@2489
   129
jabber_resource_get_identity_category_type(const JabberBuddyResource *jbr,
zacw@2489
   130
	const gchar *category);
zacw@2489
   131
zacw@1759
   132
#endif /* PURPLE_JABBER_BUDDY_H_ */