conversation.h
Go to the documentation of this file.
1
7 /* purple
8 *
9 * Purple is the legal property of its developers, whose names are too numerous
10 * to list here. Please refer to the COPYRIGHT file distributed with this
11 * source distribution.
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 2 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
26 */
27 #ifndef _PURPLE_CONVERSATION_H_
28 #define _PURPLE_CONVERSATION_H_
29
30 /**************************************************************************/
32 /**************************************************************************/
33
34
36 typedef struct _PurpleConversationUiOps PurpleConversationUiOps;
38 typedef struct _PurpleConversation PurpleConversation;
40 typedef struct _PurpleConvIm PurpleConvIm;
42 typedef struct _PurpleConvChat PurpleConvChat;
44 typedef struct _PurpleConvChatBuddy PurpleConvChatBuddy;
46 typedef struct _PurpleConvMessage PurpleConvMessage;
47
51 typedef enum
52 {
53 PURPLE_CONV_TYPE_UNKNOWN = 0,
54 PURPLE_CONV_TYPE_IM,
55 PURPLE_CONV_TYPE_CHAT,
56 PURPLE_CONV_TYPE_MISC,
57 PURPLE_CONV_TYPE_ANY
59 } PurpleConversationType;
60
64 typedef enum
65 {
66 PURPLE_CONV_UPDATE_ADD = 0,
68 PURPLE_CONV_UPDATE_REMOVE,
70 PURPLE_CONV_UPDATE_ACCOUNT,
71 PURPLE_CONV_UPDATE_TYPING,
72 PURPLE_CONV_UPDATE_UNSEEN,
73 PURPLE_CONV_UPDATE_LOGGING,
75 PURPLE_CONV_UPDATE_TOPIC,
76 /*
77 * XXX These need to go when we implement a more generic core/UI event
78 * system.
79 */
80 PURPLE_CONV_ACCOUNT_ONLINE,
81 PURPLE_CONV_ACCOUNT_OFFLINE,
82 PURPLE_CONV_UPDATE_AWAY,
83 PURPLE_CONV_UPDATE_ICON,
84 PURPLE_CONV_UPDATE_TITLE,
85 PURPLE_CONV_UPDATE_CHATLEFT,
86
87 PURPLE_CONV_UPDATE_FEATURES
89 } PurpleConvUpdateType;
90
94 typedef enum
95 {
96 PURPLE_NOT_TYPING = 0,
97 PURPLE_TYPING,
98 PURPLE_TYPED
100 } PurpleTypingState;
101
105 typedef enum
106 {
107 PURPLE_MESSAGE_SEND = 0x0001,
108 PURPLE_MESSAGE_RECV = 0x0002,
109 PURPLE_MESSAGE_SYSTEM = 0x0004,
110 PURPLE_MESSAGE_AUTO_RESP = 0x0008,
111 PURPLE_MESSAGE_ACTIVE_ONLY = 0x0010,
118 PURPLE_MESSAGE_NICK = 0x0020,
119 PURPLE_MESSAGE_NO_LOG = 0x0040,
120 PURPLE_MESSAGE_WHISPER = 0x0080,
121 PURPLE_MESSAGE_ERROR = 0x0200,
122 PURPLE_MESSAGE_DELAYED = 0x0400,
123 PURPLE_MESSAGE_RAW = 0x0800,
125 PURPLE_MESSAGE_IMAGES = 0x1000,
126 PURPLE_MESSAGE_NOTIFY = 0x2000,
127 PURPLE_MESSAGE_NO_LINKIFY = 0x4000,
129 PURPLE_MESSAGE_INVISIBLE = 0x8000,
130 PURPLE_MESSAGE_REMOTE_SEND = 0x10000
133 } PurpleMessageFlags;
134
138 typedef enum
139 {
140 PURPLE_CBFLAGS_NONE = 0x0000,
141 PURPLE_CBFLAGS_VOICE = 0x0001,
142 PURPLE_CBFLAGS_HALFOP = 0x0002,
143 PURPLE_CBFLAGS_OP = 0x0004,
144 PURPLE_CBFLAGS_FOUNDER = 0x0008,
145 PURPLE_CBFLAGS_TYPING = 0x0010,
146 PURPLE_CBFLAGS_AWAY = 0x0020
148 } PurpleConvChatBuddyFlags;
149
150 #include "account.h"
151 #include "buddyicon.h"
152 #include "log.h"
153 #include "server.h"
154
161 struct _PurpleConversationUiOps
162 {
166 void (*create_conversation)(PurpleConversation *conv);
167
169 void (*destroy_conversation)(PurpleConversation *conv);
174 void (*write_chat)(PurpleConversation *conv, const char *who,
175 const char *message, PurpleMessageFlags flags,
176 time_t mtime);
181 void (*write_im)(PurpleConversation *conv, const char *who,
182 const char *message, PurpleMessageFlags flags,
183 time_t mtime);
192 void (*write_conv)(PurpleConversation *conv,
193 const char *name,
194 const char *alias,
195 const char *message,
196 PurpleMessageFlags flags,
197 time_t mtime);
198
205 void (*chat_add_users)(PurpleConversation *conv,
206 GList *cbuddies,
207 gboolean new_arrivals);
213 void (*chat_rename_user)(PurpleConversation *conv, const char *old_name,
214 const char *new_name, const char *new_alias);
219 void (*chat_remove_users)(PurpleConversation *conv, GList *users);
223 void (*chat_update_user)(PurpleConversation *conv, const char *user);
224
228 void (*present)(PurpleConversation *conv);
229
234 gboolean (*has_focus)(PurpleConversation *conv);
235
236 /* Custom Smileys */
237 gboolean (*custom_smiley_add)(PurpleConversation *conv, const char *smile, gboolean remote);
238 void (*custom_smiley_write)(PurpleConversation *conv, const char *smile,
239 const guchar *data, gsize size);
240 void (*custom_smiley_close)(PurpleConversation *conv, const char *smile);
241
247 void (*send_confirm)(PurpleConversation *conv, const char *message);
248
249 void (*_purple_reserved1)(void);
250 void (*_purple_reserved2)(void);
251 void (*_purple_reserved3)(void);
252 void (*_purple_reserved4)(void);
253 };
254
258 struct _PurpleConvIm
259 {
260 PurpleConversation *conv;
262 PurpleTypingState typing_state;
263 guint typing_timeout;
264 time_t type_again;
265 guint send_typed_timeout;
267 PurpleBuddyIcon *icon;
268 };
269
273 struct _PurpleConvChat
274 {
275 PurpleConversation *conv;
277 GList *in_room;
280 GList *ignored;
281 char *who;
282 char *topic;
283 int id;
284 char *nick;
286 gboolean left;
287 GHashTable *users;
290 };
291
295 struct _PurpleConvChatBuddy
296 {
297 char *name;
298 char *alias;
301 char *alias_key;
306 gboolean buddy;
309 PurpleConvChatBuddyFlags flags;
312 GHashTable *attributes;
315 gpointer ui_data;
316 };
317
323 struct _PurpleConvMessage
324 {
325 char *who;
326 char *what;
327 PurpleMessageFlags flags;
328 time_t when;
329 PurpleConversation *conv;
330 char *alias;
331 };
332
338 struct _PurpleConversation
339 {
340 PurpleConversationType type;
342 PurpleAccount *account;
345 char *name;
346 char *title;
348 gboolean logging;
350 GList *logs;
352 union
353 {
354 PurpleConvIm *im;
355 PurpleConvChat *chat;
356 void *misc;
358 } u;
359
360 PurpleConversationUiOps *ui_ops;
361 void *ui_data;
363 GHashTable *data;
365 PurpleConnectionFlags features;
366 GList *message_history;
367 };
368
369 #ifdef __cplusplus
370 extern "C" {
371 #endif
372
373 /**************************************************************************/
375 /**************************************************************************/
389 PurpleConversation *purple_conversation_new(PurpleConversationType type,
390 PurpleAccount *account,
391 const char *name);
392
402 void purple_conversation_destroy(PurpleConversation *conv);
403
404
410 void purple_conversation_present(PurpleConversation *conv);
411
412
420 PurpleConversationType purple_conversation_get_type(const PurpleConversation *conv);
421
428 void purple_conversation_set_ui_ops(PurpleConversation *conv,
429 PurpleConversationUiOps *ops);
430
436 void purple_conversations_set_ui_ops(PurpleConversationUiOps *ops);
437
445 PurpleConversationUiOps *purple_conversation_get_ui_ops(
446 const PurpleConversation *conv);
447
457 void purple_conversation_set_account(PurpleConversation *conv,
458 PurpleAccount *account);
459
470 PurpleAccount *purple_conversation_get_account(const PurpleConversation *conv);
471
481 PurpleConnection *purple_conversation_get_gc(const PurpleConversation *conv);
482
489 void purple_conversation_set_title(PurpleConversation *conv, const char *title);
490
498 const char *purple_conversation_get_title(const PurpleConversation *conv);
499
508 void purple_conversation_autoset_title(PurpleConversation *conv);
509
516 void purple_conversation_set_name(PurpleConversation *conv, const char *name);
517
526 const char *purple_conversation_get_name(const PurpleConversation *conv);
527
536 const char *purple_conv_chat_cb_get_attribute(PurpleConvChatBuddy *cb, const char *key);
537
545 GList *purple_conv_chat_cb_get_attribute_keys(PurpleConvChatBuddy *cb);
546
555 void purple_conv_chat_cb_set_attribute(PurpleConvChat *chat, PurpleConvChatBuddy *cb, const char *key, const char *value);
556
565 void
566 purple_conv_chat_cb_set_attributes(PurpleConvChat *chat, PurpleConvChatBuddy *cb, GList *keys, GList *values);
567
574 void purple_conversation_set_logging(PurpleConversation *conv, gboolean log);
575
583 gboolean purple_conversation_is_logging(const PurpleConversation *conv);
584
594 void purple_conversation_close_logs(PurpleConversation *conv);
595
605 PurpleConvIm *purple_conversation_get_im_data(const PurpleConversation *conv);
606
607 #define PURPLE_CONV_IM(c) (purple_conversation_get_im_data(c))
608
618 PurpleConvChat *purple_conversation_get_chat_data(const PurpleConversation *conv);
619
620 #define PURPLE_CONV_CHAT(c) (purple_conversation_get_chat_data(c))
621
629 void purple_conversation_set_data(PurpleConversation *conv, const char *key,
630 gpointer data);
631
640 gpointer purple_conversation_get_data(PurpleConversation *conv, const char *key);
641
649 GList *purple_get_conversations(void);
650
656 GList *purple_get_ims(void);
657
663 GList *purple_get_chats(void);
664
674 PurpleConversation *purple_find_conversation_with_account(
675 PurpleConversationType type, const char *name,
676 const PurpleAccount *account);
677
698 void purple_conversation_write(PurpleConversation *conv, const char *who,
699 const char *message, PurpleMessageFlags flags,
700 time_t mtime);
701
707 void purple_conversation_set_features(PurpleConversation *conv,
708 PurpleConnectionFlags features);
709
710
715 PurpleConnectionFlags purple_conversation_get_features(PurpleConversation *conv);
716
725 gboolean purple_conversation_has_focus(PurpleConversation *conv);
726
733 void purple_conversation_update(PurpleConversation *conv, PurpleConvUpdateType type);
734
740 void purple_conversation_foreach(void (*func)(PurpleConversation *conv));
741
753 GList *purple_conversation_get_message_history(PurpleConversation *conv);
754
762 void purple_conversation_clear_message_history(PurpleConversation *conv);
763
773 const char *purple_conversation_message_get_sender(PurpleConvMessage *msg);
774
784 const char *purple_conversation_message_get_message(PurpleConvMessage *msg);
785
795 PurpleMessageFlags purple_conversation_message_get_flags(PurpleConvMessage *msg);
796
806 time_t purple_conversation_message_get_timestamp(PurpleConvMessage *msg);
807
811 /**************************************************************************/
813 /**************************************************************************/
823 PurpleConversation *purple_conv_im_get_conversation(const PurpleConvIm *im);
824
836 void purple_conv_im_set_icon(PurpleConvIm *im, PurpleBuddyIcon *icon);
837
845 PurpleBuddyIcon *purple_conv_im_get_icon(const PurpleConvIm *im);
846
853 void purple_conv_im_set_typing_state(PurpleConvIm *im, PurpleTypingState state);
854
862 PurpleTypingState purple_conv_im_get_typing_state(const PurpleConvIm *im);
863
870 void purple_conv_im_start_typing_timeout(PurpleConvIm *im, int timeout);
871
877 void purple_conv_im_stop_typing_timeout(PurpleConvIm *im);
878
886 guint purple_conv_im_get_typing_timeout(const PurpleConvIm *im);
887
898 void purple_conv_im_set_type_again(PurpleConvIm *im, unsigned int val);
899
908 time_t purple_conv_im_get_type_again(const PurpleConvIm *im);
909
915 void purple_conv_im_start_send_typed_timeout(PurpleConvIm *im);
916
922 void purple_conv_im_stop_send_typed_timeout(PurpleConvIm *im);
923
931 guint purple_conv_im_get_send_typed_timeout(const PurpleConvIm *im);
932
938 void purple_conv_im_update_typing(PurpleConvIm *im);
939
949 void purple_conv_im_write(PurpleConvIm *im, const char *who,
950 const char *message, PurpleMessageFlags flags,
951 time_t mtime);
952
966 gboolean purple_conv_present_error(const char *who, PurpleAccount *account, const char *what);
967
974 void purple_conv_im_send(PurpleConvIm *im, const char *message);
975
988 void purple_conv_send_confirm(PurpleConversation *conv, const char *message);
989
997 void purple_conv_im_send_with_flags(PurpleConvIm *im, const char *message, PurpleMessageFlags flags);
998
1018 gboolean purple_conv_custom_smiley_add(PurpleConversation *conv, const char *smile,
1019 const char *cksum_type, const char *chksum,
1020 gboolean remote);
1021
1022
1032 void purple_conv_custom_smiley_write(PurpleConversation *conv,
1033 const char *smile,
1034 const guchar *data,
1035 gsize size);
1036
1046 void purple_conv_custom_smiley_close(PurpleConversation *conv, const char *smile);
1047
1051 /**************************************************************************/
1053 /**************************************************************************/
1063 PurpleConversation *purple_conv_chat_get_conversation(const PurpleConvChat *chat);
1064
1079 GList *purple_conv_chat_set_users(PurpleConvChat *chat, GList *users);
1080
1089 GList *purple_conv_chat_get_users(const PurpleConvChat *chat);
1090
1097 void purple_conv_chat_ignore(PurpleConvChat *chat, const char *name);
1098
1105 void purple_conv_chat_unignore(PurpleConvChat *chat, const char *name);
1106
1115 GList *purple_conv_chat_set_ignored(PurpleConvChat *chat, GList *ignored);
1116
1124 GList *purple_conv_chat_get_ignored(const PurpleConvChat *chat);
1125
1140 const char *purple_conv_chat_get_ignored_user(const PurpleConvChat *chat,
1141 const char *user);
1142
1151 gboolean purple_conv_chat_is_user_ignored(const PurpleConvChat *chat,
1152 const char *user);
1153
1161 void purple_conv_chat_set_topic(PurpleConvChat *chat, const char *who,
1162 const char *topic);
1163
1171 const char *purple_conv_chat_get_topic(const PurpleConvChat *chat);
1172
1179 void purple_conv_chat_set_id(PurpleConvChat *chat, int id);
1180
1188 int purple_conv_chat_get_id(const PurpleConvChat *chat);
1189
1199 void purple_conv_chat_write(PurpleConvChat *chat, const char *who,
1200 const char *message, PurpleMessageFlags flags,
1201 time_t mtime);
1202
1209 void purple_conv_chat_send(PurpleConvChat *chat, const char *message);
1210
1218 void purple_conv_chat_send_with_flags(PurpleConvChat *chat, const char *message, PurpleMessageFlags flags);
1219
1229 void purple_conv_chat_add_user(PurpleConvChat *chat, const char *user,
1230 const char *extra_msg, PurpleConvChatBuddyFlags flags,
1231 gboolean new_arrival);
1232
1250 void purple_conv_chat_add_users(PurpleConvChat *chat, GList *users, GList *extra_msgs,
1251 GList *flags, gboolean new_arrivals);
1252
1260 void purple_conv_chat_rename_user(PurpleConvChat *chat, const char *old_user,
1261 const char *new_user);
1262
1272 void purple_conv_chat_remove_user(PurpleConvChat *chat, const char *user,
1273 const char *reason);
1274
1282 void purple_conv_chat_remove_users(PurpleConvChat *chat, GList *users,
1283 const char *reason);
1284
1293 gboolean purple_conv_chat_find_user(PurpleConvChat *chat, const char *user);
1294
1302 void purple_conv_chat_user_set_flags(PurpleConvChat *chat, const char *user,
1303 PurpleConvChatBuddyFlags flags);
1304
1313 PurpleConvChatBuddyFlags purple_conv_chat_user_get_flags(PurpleConvChat *chat,
1314 const char *user);
1315
1321 void purple_conv_chat_clear_users(PurpleConvChat *chat);
1322
1329 void purple_conv_chat_set_nick(PurpleConvChat *chat, const char *nick);
1330
1337 const char *purple_conv_chat_get_nick(PurpleConvChat *chat);
1338
1347 PurpleConversation *purple_find_chat(const PurpleConnection *gc, int id);
1348
1355 void purple_conv_chat_left(PurpleConvChat *chat);
1356
1370 void purple_conv_chat_invite_user(PurpleConvChat *chat, const char *user,
1371 const char *message, gboolean confirm);
1372
1382 gboolean purple_conv_chat_has_left(PurpleConvChat *chat);
1383
1393 PurpleConvChatBuddy *purple_conv_chat_cb_new(const char *name, const char *alias,
1394 PurpleConvChatBuddyFlags flags);
1395
1402 PurpleConvChatBuddy *purple_conv_chat_cb_find(PurpleConvChat *chat, const char *name);
1403
1411 const char *purple_conv_chat_cb_get_name(PurpleConvChatBuddy *cb);
1412
1418 void purple_conv_chat_cb_destroy(PurpleConvChatBuddy *cb);
1419
1431 GList * purple_conversation_get_extended_menu(PurpleConversation *conv);
1432
1446 gboolean purple_conversation_do_command(PurpleConversation *conv, const gchar *cmdline, const gchar *markup, gchar **error);
1447
1450 /**************************************************************************/
1452 /**************************************************************************/
1460 void *purple_conversations_get_handle(void);
1461
1465 void purple_conversations_init(void);
1466
1470 void purple_conversations_uninit(void);
1471
1474 #ifdef __cplusplus
1475 }
1476 #endif
1477
1478 #endif /* _PURPLE_CONVERSATION_H_ */
_PurpleConversationUiOps::present
void(* present)(PurpleConversation *conv)
Present this conversation to the user; for example, by displaying the IM dialog.
Definition: conversation.h:228
purple_conversations_init
void purple_conversations_init(void)
Initializes the conversation subsystem.
purple_conv_chat_set_users
GList * purple_conv_chat_set_users(PurpleConvChat *chat, GList *users)
Sets the list of users in the chat room.
purple_conv_chat_left
void purple_conv_chat_left(PurpleConvChat *chat)
Lets the core know we left a chat, without destroying it.
purple_conv_im_get_typing_state
PurpleTypingState purple_conv_im_get_typing_state(const PurpleConvIm *im)
Returns the IM&#39;s typing state.
PurpleMessageFlags
PurpleMessageFlags
Flags applicable to a message.
Definition: conversation.h:105
purple_conversation_get_extended_menu
GList * purple_conversation_get_extended_menu(PurpleConversation *conv)
Retrieves the extended menu items for the conversation.
PurpleConvChatBuddyFlags
PurpleConvChatBuddyFlags
Flags applicable to users in Chats.
Definition: conversation.h:138
_PurpleConversation::features
PurpleConnectionFlags features
The supported features.
Definition: conversation.h:365
purple_conversation_get_gc
PurpleConnection * purple_conversation_get_gc(const PurpleConversation *conv)
Returns the specified conversation&#39;s purple_connection.
PURPLE_CONV_UPDATE_ICON
The other user&#39;s buddy icon changed.
Definition: conversation.h:83
PURPLE_CONV_TYPE_MISC
A misc.
Definition: conversation.h:56
_PurpleConversationUiOps::has_focus
gboolean(* has_focus)(PurpleConversation *conv)
If this UI has a concept of focus (as in a windowing system) and this conversation has the focus...
Definition: conversation.h:234
purple_conv_chat_set_topic
void purple_conv_chat_set_topic(PurpleConvChat *chat, const char *who, const char *topic)
Sets the chat room&#39;s topic.
purple_conv_im_start_typing_timeout
void purple_conv_im_start_typing_timeout(PurpleConvIm *im, int timeout)
Starts the IM&#39;s typing timeout.
_PurpleConversation::logs
GList * logs
This conversation&#39;s logs.
Definition: conversation.h:350
_PurpleConvMessage::alias
char * alias
Definition: conversation.h:330
PURPLE_CBFLAGS_VOICE
Voiced user or "Participant".
Definition: conversation.h:141
_PurpleConversationUiOps::write_conv
void(* write_conv)(PurpleConversation *conv, const char *name, const char *alias, const char *message, PurpleMessageFlags flags, time_t mtime)
Write a message to a conversation.
Definition: conversation.h:192
PURPLE_MESSAGE_NO_LINKIFY
Message should not be auto- linkified.
Definition: conversation.h:127
PURPLE_CONV_UPDATE_UNSEEN
The unseen state was updated.
Definition: conversation.h:72
purple_conversation_get_features
PurpleConnectionFlags purple_conversation_get_features(PurpleConversation *conv)
Get the features supported by the given conversation.
_PurpleConvChat::left
gboolean left
We left the chat and kept the window open.
Definition: conversation.h:286
PURPLE_CONV_ACCOUNT_ONLINE
One of the user&#39;s accounts went online.
Definition: conversation.h:80
PURPLE_MESSAGE_ACTIVE_ONLY
Hint to the UI that this message should not be shown in conversations which are only open for interna...
Definition: conversation.h:111
purple_conversation_set_features
void purple_conversation_set_features(PurpleConversation *conv, PurpleConnectionFlags features)
Set the features as supported for the given conversation.
purple_conversation_get_ui_ops
PurpleConversationUiOps * purple_conversation_get_ui_ops(const PurpleConversation *conv)
Returns the specified conversation&#39;s UI operations structure.
_PurpleConvChatBuddy::alias
char * alias
The chat participant&#39;s alias, if known; NULL otherwise.
Definition: conversation.h:298
_PurpleConvMessage
Description of a conversation message.
Definition: conversation.h:323
purple_conv_chat_get_ignored
GList * purple_conv_chat_get_ignored(const PurpleConvChat *chat)
Returns the list of ignored users in the chat room.
purple_conversation_set_data
void purple_conversation_set_data(PurpleConversation *conv, const char *key, gpointer data)
Sets extra data for a conversation.
PURPLE_TYPING
Currently typing.
Definition: conversation.h:97
_PurpleConvChat::nick
char * nick
Your nick in this chat.
Definition: conversation.h:284
purple_get_ims
GList * purple_get_ims(void)
Returns a list of all IMs.
_PurpleConvMessage::conv
PurpleConversation * conv
Definition: conversation.h:329
PURPLE_MESSAGE_IMAGES
Message contains images.
Definition: conversation.h:125
_PurpleConversationUiOps::send_confirm
void(* send_confirm)(PurpleConversation *conv, const char *message)
Prompt the user for confirmation to send message.
Definition: conversation.h:247
_PurpleConvChatBuddy::flags
PurpleConvChatBuddyFlags flags
A bitwise OR of flags for this participant, such as whether they are a channel operator.
Definition: conversation.h:309
purple_conv_chat_add_user
void purple_conv_chat_add_user(PurpleConvChat *chat, const char *user, const char *extra_msg, PurpleConvChatBuddyFlags flags, gboolean new_arrival)
Adds a user to a chat.
_PurpleConversation::im
PurpleConvIm * im
IM-specific data.
Definition: conversation.h:354
_PurpleConvChatBuddy::name
char * name
The chat participant&#39;s name in the chat.
Definition: conversation.h:297
_PurpleConvChatBuddy
Data for "Chat Buddies".
Definition: conversation.h:295
_PurpleConversation::data
GHashTable * data
Plugin-specific data.
Definition: conversation.h:363
PURPLE_CONV_UPDATE_ACCOUNT
The purple_account was changed.
Definition: conversation.h:70
purple_conv_chat_get_nick
const char * purple_conv_chat_get_nick(PurpleConvChat *chat)
Gets your nickname (used for hilighting) for a chat.
_PurpleConversation::misc
void * misc
Misc.
Definition: conversation.h:356
purple_conversation_set_account
void purple_conversation_set_account(PurpleConversation *conv, PurpleAccount *account)
Sets the specified conversation&#39;s purple_account.
PurpleBuddyIcon
struct _PurpleBuddyIcon PurpleBuddyIcon
An opaque structure representing a buddy icon for a particular user on a particular PurpleAccount...
Definition: buddyicon.h:34
purple_conv_im_update_typing
void purple_conv_im_update_typing(PurpleConvIm *im)
Updates the visual typing notification for an IM conversation.
purple_conv_chat_cb_get_name
const char * purple_conv_chat_cb_get_name(PurpleConvChatBuddy *cb)
Get the name of a chat buddy.
purple_conv_im_get_typing_timeout
guint purple_conv_im_get_typing_timeout(const PurpleConvIm *im)
Returns the IM&#39;s typing timeout.
PURPLE_MESSAGE_SEND
Outgoing message.
Definition: conversation.h:107
purple_conv_chat_has_left
gboolean purple_conv_chat_has_left(PurpleConvChat *chat)
Returns true if we&#39;re no longer in this chat, and just left the window open.
_PurpleConversation::logging
gboolean logging
The status of logging.
Definition: conversation.h:348
PURPLE_TYPED
Stopped typing momentarily.
Definition: conversation.h:98
PURPLE_MESSAGE_NOTIFY
Message is a notification.
Definition: conversation.h:126
purple_conv_chat_cb_destroy
void purple_conv_chat_cb_destroy(PurpleConvChatBuddy *cb)
Destroys a chat buddy.
_PurpleConvIm::send_typed_timeout
guint send_typed_timeout
The type again timer handle.
Definition: conversation.h:265
purple_conversation_get_message_history
GList * purple_conversation_get_message_history(PurpleConversation *conv)
Retrieve the message history of a conversation.
purple_conversation_get_name
const char * purple_conversation_get_name(const PurpleConversation *conv)
Returns the specified conversation&#39;s name.
purple_conv_chat_cb_find
PurpleConvChatBuddy * purple_conv_chat_cb_find(PurpleConvChat *chat, const char *name)
Find a chat buddy in a chat.
_PurpleAccount
Structure representing an account.
Definition: account.h:169
purple_conversation_message_get_message
const char * purple_conversation_message_get_message(PurpleConvMessage *msg)
Get the message from a PurpleConvMessage.
_PurpleConversation::name
char * name
The name of the conversation.
Definition: conversation.h:345
_PurpleConversationUiOps::chat_remove_users
void(* chat_remove_users)(PurpleConversation *conv, GList *users)
Remove users from a chat.
Definition: conversation.h:219
PURPLE_MESSAGE_NO_LOG
Do not log.
Definition: conversation.h:119
PURPLE_MESSAGE_ERROR
Error message.
Definition: conversation.h:121
purple_conv_chat_send_with_flags
void purple_conv_chat_send_with_flags(PurpleConvChat *chat, const char *message, PurpleMessageFlags flags)
Sends a message to this chat conversation with specified flags.
purple_conversation_set_logging
void purple_conversation_set_logging(PurpleConversation *conv, gboolean log)
Enables or disables logging for this conversation.
purple_conv_chat_get_conversation
PurpleConversation * purple_conv_chat_get_conversation(const PurpleConvChat *chat)
Gets a chat&#39;s parent conversation.
_PurpleConvChat::ignored
GList * ignored
Ignored users.
Definition: conversation.h:280
purple_conversation_autoset_title
void purple_conversation_autoset_title(PurpleConversation *conv)
Automatically sets the specified conversation&#39;s title.
purple_conversation_get_im_data
PurpleConvIm * purple_conversation_get_im_data(const PurpleConversation *conv)
Returns the specified conversation&#39;s IM-specific data.
PurpleTypingState
PurpleTypingState
The typing state of a user.
Definition: conversation.h:94
purple_conversation_get_title
const char * purple_conversation_get_title(const PurpleConversation *conv)
Returns the specified conversation&#39;s title.
purple_conv_im_get_type_again
time_t purple_conv_im_get_type_again(const PurpleConvIm *im)
Returns the time after which another PURPLE_TYPING message should be sent.
purple_conv_chat_get_id
int purple_conv_chat_get_id(const PurpleConvChat *chat)
Returns the chat room&#39;s ID.
purple_conv_chat_user_set_flags
void purple_conv_chat_user_set_flags(PurpleConvChat *chat, const char *user, PurpleConvChatBuddyFlags flags)
Set a users flags in a chat.
_PurpleConvIm::icon
PurpleBuddyIcon * icon
The buddy icon.
Definition: conversation.h:267
PURPLE_MESSAGE_INVISIBLE
Message should not be displayed.
Definition: conversation.h:129
purple_conv_chat_is_user_ignored
gboolean purple_conv_chat_is_user_ignored(const PurpleConvChat *chat, const char *user)
Returns TRUE if the specified user is ignored.
_PurpleConversation::ui_ops
PurpleConversationUiOps * ui_ops
UI-specific operations.
Definition: conversation.h:360
purple_find_conversation_with_account
PurpleConversation * purple_find_conversation_with_account(PurpleConversationType type, const char *name, const PurpleAccount *account)
Finds a conversation with the specified type, name, and Purple account.
_PurpleConversationUiOps::write_im
void(* write_im)(PurpleConversation *conv, const char *who, const char *message, PurpleMessageFlags flags, time_t mtime)
Write a message to an IM conversation.
Definition: conversation.h:181
purple_conv_chat_write
void purple_conv_chat_write(PurpleConvChat *chat, const char *who, const char *message, PurpleMessageFlags flags, time_t mtime)
Writes to a chat.
purple_conversation_get_chat_data
PurpleConvChat * purple_conversation_get_chat_data(const PurpleConversation *conv)
Returns the specified conversation&#39;s chat-specific data.
PURPLE_MESSAGE_NICK
Contains your nick.
Definition: conversation.h:118
purple_conv_chat_set_ignored
GList * purple_conv_chat_set_ignored(PurpleConvChat *chat, GList *ignored)
Sets the list of ignored users in the chat room.
PURPLE_CONV_UPDATE_ADD
The buddy associated with the conversation was added.
Definition: conversation.h:66
purple_conv_im_stop_send_typed_timeout
void purple_conv_im_stop_send_typed_timeout(PurpleConvIm *im)
Stops the IM&#39;s type again timeout.
PURPLE_CBFLAGS_NONE
No flags.
Definition: conversation.h:140
_PurpleConvIm::type_again
time_t type_again
The type again time.
Definition: conversation.h:264
purple_conv_im_set_type_again
void purple_conv_im_set_type_again(PurpleConvIm *im, unsigned int val)
Sets the quiet-time when no PURPLE_TYPING messages will be sent.
_PurpleConversationUiOps
Conversation operations and events.
Definition: conversation.h:161
purple_conversation_new
PurpleConversation * purple_conversation_new(PurpleConversationType type, PurpleAccount *account, const char *name)
Creates a new conversation of the specified type.
purple_conversation_close_logs
void purple_conversation_close_logs(PurpleConversation *conv)
Closes any open logs for this conversation.
purple_conversation_write
void purple_conversation_write(PurpleConversation *conv, const char *who, const char *message, PurpleMessageFlags flags, time_t mtime)
Writes to a conversation window.
purple_conv_custom_smiley_add
gboolean purple_conv_custom_smiley_add(PurpleConversation *conv, const char *smile, const char *cksum_type, const char *chksum, gboolean remote)
Adds a smiley to the conversation&#39;s smiley tree.
purple_conv_im_stop_typing_timeout
void purple_conv_im_stop_typing_timeout(PurpleConvIm *im)
Stops the IM&#39;s typing timeout.
_PurpleConversation::type
PurpleConversationType type
The type of conversation.
Definition: conversation.h:340
purple_conv_im_start_send_typed_timeout
void purple_conv_im_start_send_typed_timeout(PurpleConvIm *im)
Starts the IM&#39;s type again timeout.
server.h
Server API.
purple_conversation_get_type
PurpleConversationType purple_conversation_get_type(const PurpleConversation *conv)
Returns the specified conversation&#39;s type.
purple_conv_send_confirm
void purple_conv_send_confirm(PurpleConversation *conv, const char *message)
Sends a message to a conversation after confirming with the user.
purple_conv_im_send
void purple_conv_im_send(PurpleConvIm *im, const char *message)
Sends a message to this IM conversation.
purple_conversation_update
void purple_conversation_update(PurpleConversation *conv, PurpleConvUpdateType type)
Updates the visual status and UI of a conversation.
PURPLE_CONV_UPDATE_FEATURES
The features for a chat have changed.
Definition: conversation.h:87
PURPLE_MESSAGE_RAW
"Raw" message - don&#39;t apply formatting
Definition: conversation.h:123
PURPLE_CBFLAGS_FOUNDER
Channel Founder.
Definition: conversation.h:144
purple_get_conversations
GList * purple_get_conversations(void)
Returns a list of all conversations.
PURPLE_CONV_UPDATE_TYPING
The typing state was updated.
Definition: conversation.h:71
_PurpleConversationUiOps::chat_update_user
void(* chat_update_user)(PurpleConversation *conv, const char *user)
Called when a user&#39;s flags are changed.
Definition: conversation.h:223
_PurpleConversation::account
PurpleAccount * account
The user using this conversation.
Definition: conversation.h:342
purple_conversation_message_get_timestamp
time_t purple_conversation_message_get_timestamp(PurpleConvMessage *msg)
Get the timestamp of a PurpleConvMessage.
purple_conv_chat_cb_set_attribute
void purple_conv_chat_cb_set_attribute(PurpleConvChat *chat, PurpleConvChatBuddy *cb, const char *key, const char *value)
Set an attribute of a chat buddy.
purple_conv_chat_ignore
void purple_conv_chat_ignore(PurpleConvChat *chat, const char *name)
Ignores a user in a chat room.
_PurpleConversationUiOps::chat_add_users
void(* chat_add_users)(PurpleConversation *conv, GList *cbuddies, gboolean new_arrivals)
Add cbuddies to a chat.
Definition: conversation.h:205
purple_conv_chat_get_topic
const char * purple_conv_chat_get_topic(const PurpleConvChat *chat)
Returns the chat room&#39;s topic.
purple_conv_im_get_conversation
PurpleConversation * purple_conv_im_get_conversation(const PurpleConvIm *im)
Gets an IM&#39;s parent conversation.
purple_conv_chat_invite_user
void purple_conv_chat_invite_user(PurpleConvChat *chat, const char *user, const char *message, gboolean confirm)
Invite a user to a chat.
PurpleConversationType
PurpleConversationType
A type of conversation.
Definition: conversation.h:51
purple_conversation_set_ui_ops
void purple_conversation_set_ui_ops(PurpleConversation *conv, PurpleConversationUiOps *ops)
Sets the specified conversation&#39;s UI operations structure.
purple_conv_im_set_icon
void purple_conv_im_set_icon(PurpleConvIm *im, PurpleBuddyIcon *icon)
Sets the IM&#39;s buddy icon.
account.h
Account API.
_PurpleConversationUiOps::write_chat
void(* write_chat)(PurpleConversation *conv, const char *who, const char *message, PurpleMessageFlags flags, time_t mtime)
Write a message to a chat.
Definition: conversation.h:174
PURPLE_MESSAGE_SYSTEM
System message.
Definition: conversation.h:109
_PurpleConversationUiOps::destroy_conversation
void(* destroy_conversation)(PurpleConversation *conv)
Called just before conv is freed.
Definition: conversation.h:169
purple_conversations_get_handle
void * purple_conversations_get_handle(void)
Returns the conversation subsystem handle.
purple_conversation_get_account
PurpleAccount * purple_conversation_get_account(const PurpleConversation *conv)
Returns the specified conversation&#39;s purple_account.
purple_conversation_present
void purple_conversation_present(PurpleConversation *conv)
Present a conversation to the user.
PURPLE_MESSAGE_DELAYED
Delayed message.
Definition: conversation.h:122
PURPLE_CBFLAGS_HALFOP
Half-op.
Definition: conversation.h:142
purple_conv_chat_remove_user
void purple_conv_chat_remove_user(PurpleConvChat *chat, const char *user, const char *reason)
Removes a user from a chat, optionally with a reason.
purple_conv_im_send_with_flags
void purple_conv_im_send_with_flags(PurpleConvIm *im, const char *message, PurpleMessageFlags flags)
Sends a message to this IM conversation with specified flags.
PURPLE_MESSAGE_AUTO_RESP
Auto response.
Definition: conversation.h:110
purple_conversation_get_data
gpointer purple_conversation_get_data(PurpleConversation *conv, const char *key)
Returns extra data in a conversation.
_PurpleConvChat::users
GHashTable * users
Hash table of the users in the room.
Definition: conversation.h:287
PURPLE_CBFLAGS_AWAY
Currently away.
Definition: conversation.h:146
_PurpleConversationUiOps::chat_rename_user
void(* chat_rename_user)(PurpleConversation *conv, const char *old_name, const char *new_name, const char *new_alias)
Rename the user in this chat named old_name to new_name.
Definition: conversation.h:213
purple_find_chat
PurpleConversation * purple_find_chat(const PurpleConnection *gc, int id)
Finds a chat with the specified chat ID.
PURPLE_CONV_TYPE_IM
Instant Message.
Definition: conversation.h:54
purple_conversation_clear_message_history
void purple_conversation_clear_message_history(PurpleConversation *conv)
Clear the message history of a conversation.
buddyicon.h
Buddy Icon API.
PurpleConnectionFlags
PurpleConnectionFlags
Flags to change behavior of the client for a given connection.
Definition: connection.h:36
purple_conversation_foreach
void purple_conversation_foreach(void(*func)(PurpleConversation *conv))
Calls a function on each conversation.
PURPLE_CONV_UPDATE_AWAY
The other user went away.
Definition: conversation.h:82
purple_conv_im_get_send_typed_timeout
guint purple_conv_im_get_send_typed_timeout(const PurpleConvIm *im)
Returns the IM&#39;s type again timeout interval.
purple_conversation_has_focus
gboolean purple_conversation_has_focus(PurpleConversation *conv)
Determines if a conversation has focus.
PURPLE_CONV_TYPE_UNKNOWN
Unknown conversation type.
Definition: conversation.h:53
_PurpleConversationUiOps::create_conversation
void(* create_conversation)(PurpleConversation *conv)
Called when conv is created (but before the conversation-created signal is emitted).
Definition: conversation.h:166
purple_conversation_set_name
void purple_conversation_set_name(PurpleConversation *conv, const char *name)
Sets the specified conversation&#39;s name.
_PurpleConvChat::conv
PurpleConversation * conv
The parent conversation.
Definition: conversation.h:275
PURPLE_CONV_ACCOUNT_OFFLINE
One of the user&#39;s accounts went offline.
Definition: conversation.h:81
purple_conversation_destroy
void purple_conversation_destroy(PurpleConversation *conv)
Destroys the specified conversation and removes it from the parent window.
purple_conv_chat_user_get_flags
PurpleConvChatBuddyFlags purple_conv_chat_user_get_flags(PurpleConvChat *chat, const char *user)
Get the flags for a user in a chat.
_PurpleConvChatBuddy::buddy
gboolean buddy
TRUE if this chat participant is on the buddy list; FALSE otherwise.
Definition: conversation.h:306
purple_conversation_message_get_sender
const char * purple_conversation_message_get_sender(PurpleConvMessage *msg)
Get the sender from a PurpleConvMessage.
purple_conv_chat_get_ignored_user
const char * purple_conv_chat_get_ignored_user(const PurpleConvChat *chat, const char *user)
Returns the actual name of the specified ignored user, if it exists in the ignore list...
purple_conv_chat_cb_set_attributes
void purple_conv_chat_cb_set_attributes(PurpleConvChat *chat, PurpleConvChatBuddy *cb, GList *keys, GList *values)
Set attributes of a chat buddy.
_PurpleConnection
Definition: connection.h:245
PURPLE_CONV_UPDATE_LOGGING
Logging for this conversation was enabled or disabled.
Definition: conversation.h:73
purple_conv_chat_remove_users
void purple_conv_chat_remove_users(PurpleConvChat *chat, GList *users, const char *reason)
Removes a list of users from a chat, optionally with a single reason.
purple_conv_chat_rename_user
void purple_conv_chat_rename_user(PurpleConvChat *chat, const char *old_user, const char *new_user)
Renames a user in a chat.
purple_conversation_do_command
gboolean purple_conversation_do_command(PurpleConversation *conv, const gchar *cmdline, const gchar *markup, gchar **error)
Perform a command in a conversation.
_PurpleConversation::ui_data
void * ui_data
UI-specific data.
Definition: conversation.h:361
PURPLE_CONV_TYPE_CHAT
Chat room.
Definition: conversation.h:55
purple_get_chats
GList * purple_get_chats(void)
Returns a list of all chats.
purple_conv_im_get_icon
PurpleBuddyIcon * purple_conv_im_get_icon(const PurpleConvIm *im)
Returns the IM&#39;s buddy icon.
purple_conv_im_set_typing_state
void purple_conv_im_set_typing_state(PurpleConvIm *im, PurpleTypingState state)
Sets the IM&#39;s typing state.
_PurpleConversation::message_history
GList * message_history
Message history, as a GList of PurpleConvMessage&#39;s.
Definition: conversation.h:366
_PurpleConvIm::typing_timeout
guint typing_timeout
The typing timer handle.
Definition: conversation.h:263
PurpleConvUpdateType
PurpleConvUpdateType
Conversation update type.
Definition: conversation.h:64
_PurpleConvChat
Data specific to Chats.
Definition: conversation.h:273
purple_conv_chat_send
void purple_conv_chat_send(PurpleConvChat *chat, const char *message)
Sends a message to this chat conversation.
PURPLE_CBFLAGS_OP
Channel Op or Moderator.
Definition: conversation.h:143
_PurpleConvChat::id
int id
The chat ID.
Definition: conversation.h:283
purple_conv_chat_add_users
void purple_conv_chat_add_users(PurpleConvChat *chat, GList *users, GList *extra_msgs, GList *flags, gboolean new_arrivals)
Adds a list of users to a chat.
purple_conv_chat_set_nick
void purple_conv_chat_set_nick(PurpleConvChat *chat, const char *nick)
Sets your nickname (used for hilighting) for a chat.
purple_conv_custom_smiley_close
void purple_conv_custom_smiley_close(PurpleConversation *conv, const char *smile)
Close the custom smiley, all data has been written with purple_conv_custom_smiley_write, and it is no longer valid to call that function on that smiley.
_PurpleConvChat::who
char * who
The person who set the topic.
Definition: conversation.h:281
PURPLE_CONV_UPDATE_TOPIC
The topic for a chat was updated.
Definition: conversation.h:75
PURPLE_CONV_UPDATE_REMOVE
The buddy associated with the conversation was removed.
Definition: conversation.h:68
purple_conversation_set_title
void purple_conversation_set_title(PurpleConversation *conv, const char *title)
Sets the specified conversation&#39;s title.
_PurpleConvIm::typing_state
PurpleTypingState typing_state
The current typing state.
Definition: conversation.h:262
PURPLE_CONV_TYPE_ANY
Any type of conversation.
Definition: conversation.h:57
log.h
Logging API.
_PurpleConvChatBuddy::attributes
GHashTable * attributes
A hash table of attributes about the user, such as real name, user, etc.
Definition: conversation.h:312
purple_conv_chat_unignore
void purple_conv_chat_unignore(PurpleConvChat *chat, const char *name)
Unignores a user in a chat room.
PURPLE_MESSAGE_RECV
Incoming message.
Definition: conversation.h:108
purple_conversation_message_get_flags
PurpleMessageFlags purple_conversation_message_get_flags(PurpleConvMessage *msg)
Get the message-flags of a PurpleConvMessage.
purple_conversations_set_ui_ops
void purple_conversations_set_ui_ops(PurpleConversationUiOps *ops)
Sets the default conversation UI operations structure.
purple_conv_chat_cb_get_attribute_keys
GList * purple_conv_chat_cb_get_attribute_keys(PurpleConvChatBuddy *cb)
Get the keys of all atributes of a chat buddy.
purple_conv_chat_cb_new
PurpleConvChatBuddy * purple_conv_chat_cb_new(const char *name, const char *alias, PurpleConvChatBuddyFlags flags)
Creates a new chat buddy.
purple_conv_chat_clear_users
void purple_conv_chat_clear_users(PurpleConvChat *chat)
Clears all users from a chat.
purple_conv_chat_get_users
GList * purple_conv_chat_get_users(const PurpleConvChat *chat)
Returns a list of users in the chat room.
purple_conv_chat_find_user
gboolean purple_conv_chat_find_user(PurpleConvChat *chat, const char *user)
Finds a user in a chat.
purple_conv_im_write
void purple_conv_im_write(PurpleConvIm *im, const char *who, const char *message, PurpleMessageFlags flags, time_t mtime)
Writes to an IM.
_PurpleConvChat::topic
char * topic
The topic.
Definition: conversation.h:282
_PurpleConvChatBuddy::alias_key
char * alias_key
A string by which this buddy will be sorted, or NULL if the buddy should be sorted by its name...
Definition: conversation.h:301
purple_conversations_uninit
void purple_conversations_uninit(void)
Uninitializes the conversation subsystem.
purple_conv_custom_smiley_write
void purple_conv_custom_smiley_write(PurpleConversation *conv, const char *smile, const guchar *data, gsize size)
Updates the image associated with the current smiley.
_PurpleConvChat::in_room
GList * in_room
The users in the room.
Definition: conversation.h:277
PURPLE_MESSAGE_WHISPER
Whispered message.
Definition: conversation.h:120
_PurpleConvIm
Data specific to Instant Messages.
Definition: conversation.h:258
_PurpleConversation::title
char * title
The window title.
Definition: conversation.h:346
_PurpleConversation
A core representation of a conversation between two or more people.
Definition: conversation.h:338
purple_conv_present_error
gboolean purple_conv_present_error(const char *who, PurpleAccount *account, const char *what)
Presents an IM-error to the user.
purple_conv_chat_cb_get_attribute
const char * purple_conv_chat_cb_get_attribute(PurpleConvChatBuddy *cb, const char *key)
Get an attribute of a chat buddy.
purple_conversation_is_logging
gboolean purple_conversation_is_logging(const PurpleConversation *conv)
Returns whether or not logging is enabled for this conversation.
PURPLE_NOT_TYPING
Not typing.
Definition: conversation.h:96
_PurpleConversation::chat
PurpleConvChat * chat
Chat-specific data.
Definition: conversation.h:355
_PurpleConvIm::conv
PurpleConversation * conv
The parent conversation.
Definition: conversation.h:260
PURPLE_MESSAGE_REMOTE_SEND
Message sent from another location, not an echo of a local one.
Definition: conversation.h:130
PURPLE_CBFLAGS_TYPING
Currently typing.
Definition: conversation.h:145
purple_conv_chat_set_id
void purple_conv_chat_set_id(PurpleConvChat *chat, int id)
Sets the chat room&#39;s ID.