## FolksPresenceDetails

FolksPresenceDetails — Interface exposing a FolksPersona's or FolksIndividual's presence; their current availability, such as for chatting.

## Types and Values

enum | FolksPresenceType
| FolksPresenceDetails
struct | FolksPresenceDetailsIface

## Description

If the FolksBackend providing the FolksPersona doesn't support presence, the FolksPersona's `presence_type` will be set to FOLKS_PRESENCE_TYPE_UNSET and their `presence_message` will be an empty string.

## Functions

## Types and Values

### enum FolksPresenceType

The possible presence states an object implementing FolksPresenceDetails could be in.

These closely follow the SimplePresence interface in the Telepathy specification.

#### Members

FOLKS_PRESENCE_TYPE_UNSET | never set |
FOLKS_PRESENCE_TYPE_OFFLINE | offline |
FOLKS_PRESENCE_TYPE_AVAILABLE | available |
FOLKS_PRESENCE_TYPE_AWAY | away from keyboard |
FOLKS_PRESENCE_TYPE_EXTENDED_AWAY | away from keyboard for an extended period of time |
FOLKS_PRESENCE_TYPE_HIDDEN | also known as "invisible" or "appear offline" |
FOLKS_PRESENCE_TYPE_BUSY | at keyboard, but too busy to chat |
FOLKS_PRESENCE_TYPE_UNKNOWN | presence not received from server |
FOLKS_PRESENCE_TYPE_ERROR | an error occurred with fetching the presence |

### FolksPresenceDetails

    typedef struct _FolksPresenceDetails FolksPresenceDetails;

Interface exposing a FolksPersona's or FolksIndividual's presence; their current availability, such as for chatting.

If the FolksBackend providing the FolksPersona doesn't support presence, the FolksPersona's `presence_type` will be set to FOLKS_PRESENCE_TYPE_UNSET and their `presence_message` will be an empty string.

### struct FolksPresenceDetailsIface

    struct FolksPresenceDetailsIface {
    	GTypeInterface parent_iface;
    	FolksPresenceType (*get_presence_type) (FolksPresenceDetails* self);
    	void (*set_presence_type) (FolksPresenceDetails* self, FolksPresenceType value);
    	const gchar* (*get_presence_message) (FolksPresenceDetails* self);
    	void (*set_presence_message) (FolksPresenceDetails* self, const gchar* value);
    	gchar** (*get_client_types) (FolksPresenceDetails* self, gint* result_length1);
    	void (*set_client_types) (FolksPresenceDetails* self, gchar** value, gint value_length1);
    	const gchar* (*get_presence_status) (FolksPresenceDetails* self);
    	void (*set_presence_status) (FolksPresenceDetails* self, const gchar* value);
    };

Interface for creating FolksPresenceDetails implementations.

#### Members

GTypeInterface `parent_iface`; | the parent interface structure |
`get_presence_type` () | getter method for the abstract property "presence-type" |
`set_presence_type` () | setter method for the abstract property "presence-type" |
`get_presence_message` () | getter method for the abstract property "presence-message" |
`set_presence_message` () | setter method for the abstract property "presence-message" |
`get_client_types` () | getter method for the abstract property "client-types" |
`set_client_types` () | setter method for the abstract property "client-types" |
`get_presence_status` () | getter method for the abstract property "presence-status" |
`set_presence_status` () | setter method for the abstract property "presence-status" |