Fri, 12 Sep 2003 05:31:55 +0000
[gaim-migrate @ 7354]
Added animated smiley support (patch by Ka-Hing Cheung, aka javabsp, aka
he-who-wrote-animated-smiley-support) and added animated MSN 6 smileys.
committer: Christian Hammond <chipx86@chipx86.com>
| 4359 | 1 | /** |
| 2 | * @file conversation.h Conversation API | |
|
5034
077678f7b048
[gaim-migrate @ 5377]
Christian Hammond <chipx86@chipx86.com>
parents:
4890
diff
changeset
|
3 | * @ingroup core |
| 4359 | 4 | * |
| 5 | * gaim | |
| 6 | * | |
| 7 | * Copyright (C) 2002-2003, Christian Hammond <chipx86@gnupdate.org> | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
8 | * |
| 4359 | 9 | * This program is free software; you can redistribute it and/or modify |
| 10 | * it under the terms of the GNU General Public License as published by | |
| 11 | * the Free Software Foundation; either version 2 of the License, or | |
| 12 | * (at your option) any later version. | |
| 13 | * | |
| 14 | * This program is distributed in the hope that it will be useful, | |
| 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 17 | * GNU General Public License for more details. | |
| 18 | * | |
| 19 | * You should have received a copy of the GNU General Public License | |
| 20 | * along with this program; if not, write to the Free Software | |
| 21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
6488
6a47a95e4dbb
[gaim-migrate @ 7002]
Christian Hammond <chipx86@chipx86.com>
parents:
6485
diff
changeset
|
22 | * |
|
6605
665d3a8e885c
[gaim-migrate @ 7129]
Christian Hammond <chipx86@chipx86.com>
parents:
6585
diff
changeset
|
23 | * @see @ref conversation-signals |
| 4359 | 24 | */ |
|
4890
d87a9b5bbe57
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4877
diff
changeset
|
25 | #ifndef _GAIM_CONVERSATION_H_ |
|
d87a9b5bbe57
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4877
diff
changeset
|
26 | #define _GAIM_CONVERSATION_H_ |
| 4359 | 27 | |
| 28 | /**************************************************************************/ | |
| 29 | /** Data Structures */ | |
| 30 | /**************************************************************************/ | |
| 31 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
32 | typedef struct _GaimWindowUiOps GaimWindowUiOps; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
33 | typedef struct _GaimWindow GaimWindow; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
34 | typedef struct _GaimConversationUiOps GaimConversationUiOps; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
35 | typedef struct _GaimConversation GaimConversation; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
36 | typedef struct _GaimIm GaimIm; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
37 | typedef struct _GaimChat GaimChat; |
| 4359 | 38 | |
| 39 | /** | |
| 40 | * A type of conversation. | |
| 41 | */ | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
42 | typedef enum |
| 4359 | 43 | { |
| 44 | GAIM_CONV_UNKNOWN = 0, /**< Unknown conversation type. */ | |
| 45 | GAIM_CONV_IM, /**< Instant Message. */ | |
|
4378
3bef342997ef
[gaim-migrate @ 4644]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
46 | GAIM_CONV_CHAT, /**< Chat room. */ |
|
3bef342997ef
[gaim-migrate @ 4644]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
47 | GAIM_CONV_MISC /**< A misc. conversation. */ |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
48 | |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
49 | } GaimConversationType; |
| 4359 | 50 | |
| 51 | /** | |
| 52 | * Unseen text states. | |
| 53 | */ | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
54 | typedef enum |
| 4359 | 55 | { |
| 56 | GAIM_UNSEEN_NONE = 0, /**< No unseen text in the conversation. */ | |
| 57 | GAIM_UNSEEN_TEXT, /**< Unseen text in the conversation. */ | |
|
6405
30166fa1b9a2
[gaim-migrate @ 6910]
Christian Hammond <chipx86@chipx86.com>
parents:
6311
diff
changeset
|
58 | GAIM_UNSEEN_NICK, /**< Unseen text and the nick was said. */ |
|
30166fa1b9a2
[gaim-migrate @ 6910]
Christian Hammond <chipx86@chipx86.com>
parents:
6311
diff
changeset
|
59 | GAIM_UNSEEN_EVENT /**< Unseen events in the conversation. */ |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
60 | |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
61 | } GaimUnseenState; |
| 4359 | 62 | |
| 63 | /** | |
| 64 | * Conversation update type. | |
| 65 | */ | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
66 | typedef enum |
| 4359 | 67 | { |
| 68 | GAIM_CONV_UPDATE_ADD = 0, /**< The buddy associated with the conversation | |
| 69 | was added. */ | |
| 70 | GAIM_CONV_UPDATE_REMOVE, /**< The buddy associated with the conversation | |
| 71 | was removed. */ | |
| 4491 | 72 | GAIM_CONV_UPDATE_ACCOUNT, /**< The gaim_account was changed. */ |
| 4359 | 73 | GAIM_CONV_UPDATE_TYPING, /**< The typing state was updated. */ |
| 74 | GAIM_CONV_UPDATE_UNSEEN, /**< The unseen state was updated. */ | |
| 75 | GAIM_CONV_UPDATE_LOGGING, /**< Logging for this conversation was | |
| 76 | enabled or disabled. */ | |
| 77 | GAIM_CONV_UPDATE_TOPIC, /**< The topic for a chat was updated. */ | |
| 78 | ||
| 79 | /* | |
| 80 | * XXX These need to go when we implement a more generic core/UI event | |
| 81 | * system. | |
| 82 | */ | |
|
4378
3bef342997ef
[gaim-migrate @ 4644]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
83 | GAIM_CONV_ACCOUNT_ONLINE, /**< One of the user's accounts went online. */ |
|
3bef342997ef
[gaim-migrate @ 4644]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
84 | GAIM_CONV_ACCOUNT_OFFLINE, /**< One of the user's accounts went offline. */ |
|
3bef342997ef
[gaim-migrate @ 4644]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
85 | GAIM_CONV_UPDATE_AWAY /**< The other user went away. */ |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
86 | |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
87 | } GaimConvUpdateType; |
| 4359 | 88 | |
| 89 | /** | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
90 | * The typing state of a user. |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
91 | */ |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
92 | typedef enum |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
93 | { |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
94 | GAIM_NOT_TYPING = 0, /**< Not typing. */ |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
95 | GAIM_TYPING, /**< Currently typing. */ |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
96 | GAIM_TYPED /**< Stopped typing momentarily. */ |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
97 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
98 | } GaimTypingState; |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
99 | |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
100 | /** |
|
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
101 | * Flags applicable to a message. Most will have send, recv or system. |
|
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
102 | */ |
|
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
103 | typedef enum |
|
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
104 | { |
|
6622
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
105 | GAIM_MESSAGE_SEND = 0x0001, /**< Outgoing message. */ |
|
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
106 | GAIM_MESSAGE_RECV = 0x0002, /**< Incoming message. */ |
|
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
107 | GAIM_MESSAGE_SYSTEM = 0x0004, /**< System message. */ |
|
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
108 | GAIM_MESSAGE_AUTO_RESP = 0x0008, /**< Auto response. */ |
|
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
109 | GAIM_MESSAGE_COLORIZE = 0x0010, /**< Colorize nicks. */ |
|
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
110 | GAIM_MESSAGE_NICK = 0x0020, /**< Contains your nick. */ |
|
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
111 | GAIM_MESSAGE_NO_LOG = 0x0040, /**< Do not log. */ |
|
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
112 | GAIM_MESSAGE_WHISPER = 0x0080 /**< Whispered message. */ |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
113 | } GaimMessageFlags; |
|
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
114 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
115 | #include "account.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
116 | #include "server.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
117 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
118 | /** |
| 4359 | 119 | * Conversation window operations. |
| 120 | * | |
| 121 | * Any UI representing a window must assign a filled-out gaim_window_ops | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
122 | * structure to the GaimWindow. |
| 4359 | 123 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
124 | struct _GaimWindowUiOps |
| 4359 | 125 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
126 | GaimConversationUiOps *(*get_conversation_ui_ops)(void); |
| 4359 | 127 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
128 | void (*new_window)(GaimWindow *win); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
129 | void (*destroy_window)(GaimWindow *win); |
| 4359 | 130 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
131 | void (*show)(GaimWindow *win); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
132 | void (*hide)(GaimWindow *win); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
133 | void (*raise)(GaimWindow *win); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
134 | void (*flash)(GaimWindow *win); |
| 4359 | 135 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
136 | void (*switch_conversation)(GaimWindow *win, unsigned int index); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
137 | void (*add_conversation)(GaimWindow *win, GaimConversation *conv); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
138 | void (*remove_conversation)(GaimWindow *win, GaimConversation *conv); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
139 | void (*move_conversation)(GaimWindow *win, GaimConversation *conv, |
| 4359 | 140 | unsigned int newIndex); |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
141 | int (*get_active_index)(const GaimWindow *win); |
| 4359 | 142 | }; |
| 143 | ||
| 144 | /** | |
| 145 | * Conversation operations and events. | |
| 146 | * | |
| 147 | * Any UI representing a conversation must assign a filled-out | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
148 | * GaimConversationUiOps structure to the GaimConversation. |
| 4359 | 149 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
150 | struct _GaimConversationUiOps |
| 4359 | 151 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
152 | void (*destroy_conversation)(GaimConversation *conv); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
153 | void (*write_chat)(GaimConversation *conv, const char *who, |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
154 | const char *message, GaimMessageFlags flags, time_t mtime); |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
155 | void (*write_im)(GaimConversation *conv, const char *who, |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
156 | const char *message, size_t len, GaimMessageFlags flags, time_t mtime); |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
157 | void (*write_conv)(GaimConversation *conv, const char *who, |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
158 | const char *message, size_t length, GaimMessageFlags flags, |
| 4359 | 159 | time_t mtime); |
| 160 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
161 | void (*chat_add_user)(GaimConversation *conv, const char *user); |
|
6407
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
162 | void (*chat_add_users)(GaimConversation *conv, GList *users); |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
163 | void (*chat_rename_user)(GaimConversation *conv, |
| 4359 | 164 | const char *old_name, const char *new_name); |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
165 | void (*chat_remove_user)(GaimConversation *conv, const char *user); |
|
6407
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
166 | void (*chat_remove_users)(GaimConversation *conv, GList *users); |
| 4359 | 167 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
168 | void (*set_title)(GaimConversation *conv, const char *title); |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
169 | void (*update_progress)(GaimConversation *conv, float percent); |
| 4359 | 170 | |
| 171 | /* Events */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
172 | void (*updated)(GaimConversation *conv, GaimConvUpdateType type); |
| 4359 | 173 | }; |
| 174 | ||
| 175 | /** | |
| 176 | * A core representation of a graphical window containing one or more | |
| 177 | * conversations. | |
| 178 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
179 | struct _GaimWindow |
| 4359 | 180 | { |
|
4465
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
181 | GList *conversations; /**< The conversations in the window. */ |
|
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
182 | size_t conversation_count; /**< The number of conversations. */ |
| 4359 | 183 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
184 | GaimWindowUiOps *ui_ops; /**< UI-specific window operations. */ |
|
4465
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
185 | void *ui_data; /**< UI-specific data. */ |
| 4359 | 186 | }; |
| 187 | ||
| 188 | /** | |
| 189 | * Data specific to Instant Messages. | |
| 190 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
191 | struct _GaimIm |
| 4359 | 192 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
193 | GaimConversation *conv; /**< The parent conversation. */ |
| 4359 | 194 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
195 | GaimTypingState typing_state; /**< The current typing state. */ |
|
4465
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
196 | guint typing_timeout; /**< The typing timer handle. */ |
|
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
197 | time_t type_again; /**< The type again time. */ |
|
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
198 | guint type_again_timeout; /**< The type again timer handle. */ |
| 4359 | 199 | |
|
4465
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
200 | GSList *images; /**< A list of images in the IM. */ |
| 4359 | 201 | }; |
| 202 | ||
| 203 | /** | |
| 204 | * Data specific to Chats. | |
| 205 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
206 | struct _GaimChat |
| 4359 | 207 | { |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
208 | GaimConversation *conv; /**< The parent conversation. */ |
| 4359 | 209 | |
|
4465
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
210 | GList *in_room; /**< The users in the room. */ |
|
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
211 | GList *ignored; /**< Ignored users. */ |
|
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
212 | char *who; /**< The person who set the topic. */ |
|
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
213 | char *topic; /**< The topic. */ |
|
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
214 | int id; /**< The chat ID. */ |
| 4359 | 215 | }; |
| 216 | ||
| 217 | /** | |
| 218 | * A core representation of a conversation between two or more people. | |
| 219 | * | |
| 220 | * The conversation can be an IM or a chat. Each conversation is kept | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
221 | * in a GaimWindow and has a UI representation. |
| 4359 | 222 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
223 | struct _GaimConversation |
| 4359 | 224 | { |
| 225 | GaimConversationType type; /**< The type of conversation. */ | |
| 226 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
227 | GaimAccount *account; /**< The user using this conversation. */ |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
228 | GaimWindow *window; /**< The parent window. */ |
| 4359 | 229 | |
| 230 | int conversation_pos; /**< The position in the window's list. */ | |
| 231 | ||
| 232 | char *name; /**< The name of the conversation. */ | |
| 233 | char *title; /**< The window title. */ | |
| 234 | ||
| 235 | gboolean logging; /**< The status of logging. */ | |
| 236 | ||
| 237 | GList *send_history; /**< The send history. */ | |
| 238 | GString *history; /**< The conversation history. */ | |
| 239 | ||
| 240 | GaimUnseenState unseen; /**< The unseen tab state. */ | |
| 241 | ||
| 242 | union | |
| 243 | { | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
244 | GaimIm *im; /**< IM-specific data. */ |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
245 | GaimChat *chat; /**< Chat-specific data. */ |
|
4378
3bef342997ef
[gaim-migrate @ 4644]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
246 | void *misc; /**< Misc. data. */ |
| 4359 | 247 | |
| 248 | } u; | |
|
4465
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
249 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
250 | GaimConversationUiOps *ui_ops; /**< UI-specific operations. */ |
|
4465
43184ae252ed
[gaim-migrate @ 4740]
Christian Hammond <chipx86@chipx86.com>
parents:
4378
diff
changeset
|
251 | void *ui_data; /**< UI-specific data. */ |
|
4876
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
252 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
253 | GHashTable *data; /**< Plugin-specific data. */ |
| 4359 | 254 | }; |
| 255 | ||
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
256 | typedef void (*GaimConvPlacementFunc)(GaimConversation *); |
| 4359 | 257 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
258 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
259 | extern "C" { |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
260 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
261 | |
| 4359 | 262 | /**************************************************************************/ |
| 263 | /** @name Conversation Window API */ | |
| 264 | /**************************************************************************/ | |
| 265 | /*@{*/ | |
| 266 | ||
| 267 | /** | |
| 268 | * Creates a new conversation window. | |
| 269 | * | |
| 270 | * This window is added to the list of windows, but is not shown until | |
| 271 | * gaim_window_show() is called. | |
| 272 | * | |
| 273 | * @return The new conversation window. | |
| 274 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
275 | GaimWindow *gaim_window_new(void); |
| 4359 | 276 | |
| 277 | /** | |
| 278 | * Destroys the specified conversation window and all conversations in it. | |
| 279 | * | |
| 280 | * @param win The window to destroy. | |
| 281 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
282 | void gaim_window_destroy(GaimWindow *win); |
| 4359 | 283 | |
| 284 | /** | |
| 285 | * Shows the specified conversation window. | |
| 286 | * | |
| 287 | * @param win The window. | |
| 288 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
289 | void gaim_window_show(GaimWindow *win); |
| 4359 | 290 | |
| 291 | /** | |
| 292 | * Hides the specified conversation window. | |
| 293 | * | |
| 294 | * @param win The window. | |
| 295 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
296 | void gaim_window_hide(GaimWindow *win); |
| 4359 | 297 | |
| 298 | /** | |
| 299 | * Raises the specified conversation window. | |
| 300 | * | |
| 301 | * @param win The window. | |
| 302 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
303 | void gaim_window_raise(GaimWindow *win); |
| 4359 | 304 | |
| 305 | /** | |
| 306 | * Causes the window to flash for IM notification, if the UI supports this. | |
|
6585
8fcd3639e544
[gaim-migrate @ 7107]
Christian Hammond <chipx86@chipx86.com>
parents:
6488
diff
changeset
|
307 | * |
| 4359 | 308 | * @param win The window. |
| 309 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
310 | void gaim_window_flash(GaimWindow *win); |
| 4359 | 311 | |
| 312 | /** | |
| 313 | * Sets the specified window's UI window operations structure. | |
| 314 | * | |
| 315 | * @param win The window. | |
| 316 | * @param ops The UI window operations structure. | |
| 317 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
318 | void gaim_window_set_ui_ops(GaimWindow *win, GaimWindowUiOps *ops); |
| 4359 | 319 | |
| 320 | /** | |
| 321 | * Returns the specified window's UI window operations structure. | |
| 322 | * | |
| 323 | * @param win The window. | |
| 324 | * | |
| 325 | * @return The UI window operations structure. | |
| 326 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
327 | GaimWindowUiOps *gaim_window_get_ui_ops(const GaimWindow *win); |
| 4359 | 328 | |
| 329 | /** | |
| 330 | * Adds a conversation to this window. | |
| 331 | * | |
| 332 | * If the conversation already has a parent window, this will do nothing. | |
| 333 | * | |
| 334 | * @param win The window. | |
| 335 | * @param conv The conversation. | |
| 336 | * | |
| 337 | * @return The new index of the conversation in the window. | |
| 338 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
339 | int gaim_window_add_conversation(GaimWindow *win, GaimConversation *conv); |
| 4359 | 340 | |
| 341 | /** | |
| 342 | * Removes the conversation at the specified index from the window. | |
| 343 | * | |
| 344 | * If there is no conversation at this index, this will do nothing. | |
| 345 | * | |
| 346 | * @param win The window. | |
| 347 | * @param index The index of the conversation. | |
| 348 | * | |
| 349 | * @return The conversation removed. | |
| 350 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
351 | GaimConversation *gaim_window_remove_conversation(GaimWindow *win, |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
352 | unsigned int index); |
| 4359 | 353 | |
| 354 | /** | |
| 355 | * Moves the conversation at the specified index in a window to a new index. | |
| 356 | * | |
| 357 | * @param win The window. | |
| 358 | * @param index The index of the conversation to move. | |
| 359 | * @param new_index The new index. | |
| 360 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
361 | void gaim_window_move_conversation(GaimWindow *win, unsigned int index, |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
362 | unsigned int new_index); |
| 4359 | 363 | |
| 364 | /** | |
| 365 | * Returns the conversation in the window at the specified index. | |
| 366 | * | |
| 367 | * If the index is out of range, this returns @c NULL. | |
| 368 | * | |
| 369 | * @param win The window. | |
| 370 | * @param index The index containing a conversation. | |
| 371 | * | |
| 372 | * @return The conversation at the specified index. | |
| 373 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
374 | GaimConversation *gaim_window_get_conversation_at(const GaimWindow *win, |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
375 | unsigned int index); |
| 4359 | 376 | |
| 377 | /** | |
| 378 | * Returns the number of conversations in the window. | |
| 379 | * | |
| 380 | * @param win The window. | |
| 381 | * | |
| 382 | * @return The number of conversations. | |
| 383 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
384 | size_t gaim_window_get_conversation_count(const GaimWindow *win); |
| 4359 | 385 | |
| 386 | /** | |
| 387 | * Switches the active conversation to the one at the specified index. | |
| 388 | * | |
| 389 | * If @a index is out of range, this does nothing. | |
| 390 | * | |
| 391 | * @param win The window. | |
| 392 | * @param index The new index. | |
| 393 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
394 | void gaim_window_switch_conversation(GaimWindow *win, unsigned int index); |
| 4359 | 395 | |
| 396 | /** | |
| 397 | * Returns the active conversation in the window. | |
| 398 | * | |
| 399 | * @param win The window. | |
| 400 | * | |
| 401 | * @return The active conversation. | |
| 402 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
403 | GaimConversation *gaim_window_get_active_conversation(const GaimWindow *win); |
| 4359 | 404 | |
| 405 | /** | |
| 406 | * Returns the list of conversations in the specified window. | |
| 407 | * | |
| 408 | * @param win The window. | |
| 409 | * | |
| 410 | * @return The list of conversations. | |
| 411 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
412 | GList *gaim_window_get_conversations(const GaimWindow *win); |
| 4359 | 413 | |
| 414 | /** | |
| 415 | * Returns a list of all windows. | |
| 416 | * | |
| 417 | * @return A list of windows. | |
| 418 | */ | |
| 419 | GList *gaim_get_windows(void); | |
| 420 | ||
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
421 | /** |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
422 | * Returns the first window containing a conversation of the specified type. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
423 | * |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
424 | * @param type The conversation type. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
425 | * |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
426 | * @return The window if found, or @c NULL if not found. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
427 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
428 | GaimWindow *gaim_get_first_window_with_type(GaimConversationType type); |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
429 | |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
430 | /** |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
431 | * Returns the last window containing a conversation of the specified type. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
432 | * |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
433 | * @param type The conversation type. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
434 | * |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
435 | * @return The window if found, or @c NULL if not found. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
436 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
437 | GaimWindow *gaim_get_last_window_with_type(GaimConversationType type); |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
438 | |
| 4359 | 439 | /*@}*/ |
| 440 | ||
| 441 | /**************************************************************************/ | |
| 442 | /** @name Conversation API */ | |
| 443 | /**************************************************************************/ | |
| 444 | /*@{*/ | |
| 445 | ||
| 446 | /** | |
| 447 | * Creates a new conversation of the specified type. | |
| 448 | * | |
|
6720
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
449 | * @param type The type of conversation. |
|
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
450 | * @param account The account opening the conversation window on the gaim |
|
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
451 | * user's end. |
|
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
452 | * @param name The name of the conversation. |
| 4359 | 453 | * |
| 454 | * @return The new conversation. | |
| 455 | */ | |
|
6585
8fcd3639e544
[gaim-migrate @ 7107]
Christian Hammond <chipx86@chipx86.com>
parents:
6488
diff
changeset
|
456 | GaimConversation *gaim_conversation_new(GaimConversationType type, |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
457 | GaimAccount *account, |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
458 | const char *name); |
| 4359 | 459 | |
| 460 | /** | |
| 461 | * Destroys the specified conversation and removes it from the parent | |
| 462 | * window. | |
| 463 | * | |
| 464 | * If this conversation is the only one contained in the parent window, | |
| 465 | * that window is also destroyed. | |
| 466 | * | |
| 467 | * @param conv The conversation to destroy. | |
| 468 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
469 | void gaim_conversation_destroy(GaimConversation *conv); |
| 4359 | 470 | |
| 471 | /** | |
| 472 | * Returns the specified conversation's type. | |
| 473 | * | |
| 474 | * @param conv The conversation. | |
| 475 | * | |
| 476 | * @return The conversation's type. | |
| 477 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
478 | GaimConversationType gaim_conversation_get_type(const GaimConversation *conv); |
| 4359 | 479 | |
| 480 | /** | |
| 481 | * Sets the specified conversation's UI operations structure. | |
| 482 | * | |
| 483 | * @param conv The conversation. | |
| 484 | * @param ops The UI conversation operations structure. | |
| 485 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
486 | void gaim_conversation_set_ui_ops(GaimConversation *conv, |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
487 | GaimConversationUiOps *ops); |
| 4359 | 488 | |
| 489 | /** | |
| 490 | * Returns the specified conversation's UI operations structure. | |
|
6585
8fcd3639e544
[gaim-migrate @ 7107]
Christian Hammond <chipx86@chipx86.com>
parents:
6488
diff
changeset
|
491 | * |
| 4359 | 492 | * @param conv The conversation. |
| 493 | * | |
| 494 | * @return The operations structure. | |
| 495 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
496 | GaimConversationUiOps *gaim_conversation_get_ui_ops( |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
497 | const GaimConversation *conv); |
| 4359 | 498 | |
| 499 | /** | |
| 4491 | 500 | * Sets the specified conversation's gaim_account. |
| 4359 | 501 | * |
| 4491 | 502 | * This gaim_account represents the user using gaim, not the person the user |
| 4359 | 503 | * is having a conversation/chat/flame with. |
| 504 | * | |
| 505 | * @param conv The conversation. | |
| 4491 | 506 | * @param account The gaim_account. |
| 4359 | 507 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
508 | void gaim_conversation_set_account(GaimConversation *conv, |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
509 | GaimAccount *account); |
| 4359 | 510 | |
| 511 | /** | |
| 4491 | 512 | * Returns the specified conversation's gaim_account. |
| 4359 | 513 | * |
| 4491 | 514 | * This gaim_account represents the user using gaim, not the person the user |
| 4359 | 515 | * is having a conversation/chat/flame with. |
| 516 | * | |
| 517 | * @param conv The conversation. | |
| 518 | * | |
| 4491 | 519 | * @return The conversation's gaim_account. |
| 4359 | 520 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
521 | GaimAccount *gaim_conversation_get_account(const GaimConversation *conv); |
| 4359 | 522 | |
| 523 | /** | |
| 524 | * Returns the specified conversation's gaim_connection. | |
| 525 | * | |
| 526 | * This is the same as gaim_conversation_get_user(conv)->gc. | |
| 527 | * | |
| 528 | * @param conv The conversation. | |
| 529 | * | |
| 530 | * @return The conversation's gaim_connection. | |
| 531 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
532 | GaimConnection *gaim_conversation_get_gc(const GaimConversation *conv); |
| 4359 | 533 | |
| 534 | /** | |
| 535 | * Sets the specified conversation's title. | |
| 536 | * | |
| 537 | * @param conv The conversation. | |
| 538 | * @param title The title. | |
| 539 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
540 | void gaim_conversation_set_title(GaimConversation *conv, const char *title); |
| 4359 | 541 | |
| 542 | /** | |
| 543 | * Returns the specified conversation's title. | |
| 544 | * | |
|
6720
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
545 | * @param conv The conversation. |
| 4359 | 546 | * |
| 547 | * @return The title. | |
| 548 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
549 | const char *gaim_conversation_get_title(const GaimConversation *conv); |
| 4359 | 550 | |
| 551 | /** | |
| 552 | * Automatically sets the specified conversation's title. | |
| 553 | * | |
| 554 | * This function takes OPT_IM_ALIAS_TAB into account, as well as the | |
| 555 | * user's alias. | |
| 556 | * | |
| 557 | * @param conv The conversation. | |
| 558 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
559 | void gaim_conversation_autoset_title(GaimConversation *conv); |
| 4359 | 560 | |
| 561 | /** | |
| 562 | * Returns the specified conversation's index in the parent window. | |
| 563 | * | |
| 564 | * @param conv The conversation. | |
| 565 | * | |
| 566 | * @return The current index in the parent window. | |
| 567 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
568 | int gaim_conversation_get_index(const GaimConversation *conv); |
| 4359 | 569 | |
| 570 | /** | |
| 571 | * Sets the conversation's unseen state. | |
| 572 | * | |
| 573 | * @param conv The conversation. | |
| 574 | * @param state The new unseen state. | |
| 575 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
576 | void gaim_conversation_set_unseen(GaimConversation *conv, |
| 4359 | 577 | GaimUnseenState state); |
| 578 | ||
| 579 | /** | |
| 580 | * Returns the conversation's unseen state. | |
| 581 | * | |
| 582 | * @param conv The conversation. | |
| 583 | * | |
|
6720
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
584 | * @return The conversation's unseen state. |
| 4359 | 585 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
586 | GaimUnseenState gaim_conversation_get_unseen(const GaimConversation *conv); |
| 4359 | 587 | |
| 588 | /** | |
| 589 | * Returns the specified conversation's name. | |
| 590 | * | |
| 591 | * @param conv The conversation. | |
| 592 | * | |
| 593 | * @return The conversation's name. | |
| 594 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
595 | const char *gaim_conversation_get_name(const GaimConversation *conv); |
| 4359 | 596 | |
| 597 | /** | |
| 598 | * Enables or disables logging for this conversation. | |
| 599 | * | |
|
6720
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
600 | * @param conv The conversation. |
|
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
601 | * @param log @c TRUE if logging should be enabled, or @c FALSE otherwise. |
| 4359 | 602 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
603 | void gaim_conversation_set_logging(GaimConversation *conv, gboolean log); |
| 4359 | 604 | |
| 605 | /** | |
| 606 | * Returns whether or not logging is enabled for this conversation. | |
| 607 | * | |
|
6720
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
608 | * @param conv The conversation. |
|
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
609 | * |
| 4359 | 610 | * @return @c TRUE if logging is enabled, or @c FALSE otherwise. |
| 611 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
612 | gboolean gaim_conversation_is_logging(const GaimConversation *conv); |
| 4359 | 613 | |
| 614 | /** | |
| 615 | * Returns the specified conversation's send history. | |
| 616 | * | |
| 617 | * @param conv The conversation. | |
| 618 | * | |
| 619 | * @return The conversation's send history. | |
| 620 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
621 | GList *gaim_conversation_get_send_history(const GaimConversation *conv); |
| 4359 | 622 | |
| 623 | /** | |
| 624 | * Sets the specified conversation's history. | |
| 625 | * | |
| 626 | * @param conv The conversation. | |
| 627 | * @param history The history. | |
| 628 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
629 | void gaim_conversation_set_history(GaimConversation *conv, GString *history); |
| 4359 | 630 | |
| 631 | /** | |
| 632 | * Returns the specified conversation's history. | |
| 633 | * | |
| 634 | * @param conv The conversation. | |
| 635 | * | |
| 636 | * @return The conversation's history. | |
| 637 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
638 | GString *gaim_conversation_get_history(const GaimConversation *conv); |
| 4359 | 639 | |
| 640 | /** | |
| 641 | * Returns the specified conversation's parent window. | |
| 642 | * | |
| 643 | * @param conv The conversation. | |
| 644 | * | |
| 645 | * @return The conversation's parent window. | |
| 646 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
647 | GaimWindow *gaim_conversation_get_window(const GaimConversation *conv); |
| 4359 | 648 | |
| 649 | /** | |
| 650 | * Returns the specified conversation's IM-specific data. | |
| 651 | * | |
| 652 | * If the conversation type is not GAIM_CONV_IM, this will return @c NULL. | |
| 653 | * | |
| 654 | * @param conv The conversation. | |
| 655 | * | |
| 656 | * @return The IM-specific data. | |
| 657 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
658 | GaimIm *gaim_conversation_get_im_data(const GaimConversation *conv); |
| 4359 | 659 | |
| 660 | #define GAIM_IM(c) (gaim_conversation_get_im_data(c)) | |
| 661 | ||
| 662 | /** | |
| 663 | * Returns the specified conversation's chat-specific data. | |
| 664 | * | |
| 665 | * If the conversation type is not GAIM_CONV_CHAT, this will return @c NULL. | |
| 666 | * | |
| 667 | * @param conv The conversation. | |
| 668 | * | |
| 669 | * @return The chat-specific data. | |
| 670 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
671 | GaimChat *gaim_conversation_get_chat_data(const GaimConversation *conv); |
| 4359 | 672 | |
| 673 | #define GAIM_CHAT(c) (gaim_conversation_get_chat_data(c)) | |
| 674 | ||
| 675 | /** | |
|
4877
7d1f4381fed0
[gaim-migrate @ 5207]
Christian Hammond <chipx86@chipx86.com>
parents:
4876
diff
changeset
|
676 | * Sets extra data for a conversation. |
|
6585
8fcd3639e544
[gaim-migrate @ 7107]
Christian Hammond <chipx86@chipx86.com>
parents:
6488
diff
changeset
|
677 | * |
|
4876
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
678 | * @param conv The conversation. |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
679 | * @param key The unique key. |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
680 | * @param data The data to assign. |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
681 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
682 | void gaim_conversation_set_data(GaimConversation *conv, const char *key, |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
683 | gpointer data); |
|
4876
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
684 | |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
685 | /** |
|
4877
7d1f4381fed0
[gaim-migrate @ 5207]
Christian Hammond <chipx86@chipx86.com>
parents:
4876
diff
changeset
|
686 | * Returns extra data in a conversation. |
|
4876
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
687 | * |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
688 | * @param conv The conversation. |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
689 | * @param key The unqiue key. |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
690 | * |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
691 | * @return The data associated with the key. |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
692 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
693 | gpointer gaim_conversation_get_data(GaimConversation *conv, const char *key); |
|
4876
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
694 | |
|
b6ec886c8c77
[gaim-migrate @ 5206]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
695 | /** |
| 4359 | 696 | * Returns a list of all conversations. |
| 697 | * | |
| 698 | * This list includes both IMs and chats. | |
| 699 | * | |
| 700 | * @return A GList of all conversations. | |
| 701 | */ | |
| 702 | GList *gaim_get_conversations(void); | |
| 703 | ||
| 704 | /** | |
| 705 | * Returns a list of all IMs. | |
| 706 | * | |
| 707 | * @return A GList of all IMs. | |
| 708 | */ | |
| 709 | GList *gaim_get_ims(void); | |
| 710 | ||
| 711 | /** | |
| 712 | * Returns a list of all chats. | |
| 713 | * | |
| 714 | * @return A GList of all chats. | |
| 715 | */ | |
| 716 | GList *gaim_get_chats(void); | |
| 717 | ||
| 718 | /** | |
| 719 | * Finds the conversation with the specified name. | |
| 720 | * | |
| 721 | * @param name The name of the conversation. | |
| 722 | * | |
| 723 | * @return The conversation if found, or @c NULL otherwise. | |
| 724 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
725 | GaimConversation *gaim_find_conversation(const char *name); |
| 4359 | 726 | |
| 727 | /** | |
| 728 | * Finds a conversation with the specified name and user. | |
| 729 | * | |
| 730 | * @param name The name of the conversation. | |
| 4491 | 731 | * @param account The gaim_account associated with the conversation. |
| 4359 | 732 | * |
| 733 | * @return The conversation if found, or @c NULL otherwise. | |
| 734 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
735 | GaimConversation *gaim_find_conversation_with_account( |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5207
diff
changeset
|
736 | const char *name, const GaimAccount *account); |
| 4359 | 737 | |
| 738 | /** | |
| 739 | * Writes to a conversation window. | |
| 740 | * | |
| 741 | * This function should not be used to write IM or chat messages. Use | |
| 742 | * gaim_im_write() and gaim_chat_write() instead. Those functions will | |
| 743 | * most likely call this anyway, but they may do their own formatting, | |
| 744 | * sound playback, etc. | |
| 745 | * | |
| 746 | * This can be used to write generic messages, such as "so and so closed | |
| 747 | * the conversation window." | |
| 748 | * | |
| 749 | * @param conv The conversation. | |
| 750 | * @param who The user who sent the message. | |
| 751 | * @param message The message. | |
| 752 | * @param length The length of the message. | |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
753 | * @param flags The message flags. |
| 4359 | 754 | * @param mtime The time the message was sent. |
| 755 | * | |
| 756 | * @see gaim_im_write() | |
| 757 | * @see gaim_chat_write() | |
| 758 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
759 | void gaim_conversation_write(GaimConversation *conv, const char *who, |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
760 | const char *message, size_t length, GaimMessageFlags flags, |
| 4359 | 761 | time_t mtime); |
| 762 | ||
| 763 | /** | |
| 764 | * Updates the progress bar on a conversation window | |
| 765 | * (if one exists in the UI). | |
| 766 | * | |
| 767 | * This is used for loading images typically. | |
| 768 | * | |
| 769 | * @param conv The conversation. | |
| 770 | * @param percent The percentage. | |
| 771 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
772 | void gaim_conversation_update_progress(GaimConversation *conv, float percent); |
| 4359 | 773 | |
| 774 | /** | |
| 775 | * Updates the visual status and UI of a conversation. | |
| 776 | * | |
| 777 | * @param conv The conversation. | |
| 778 | * @param type The update type. | |
| 779 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
780 | void gaim_conversation_update(GaimConversation *conv, GaimConvUpdateType type); |
| 4359 | 781 | |
| 782 | /** | |
| 783 | * Calls a function on each conversation. | |
| 784 | * | |
| 785 | * @param func The function. | |
| 786 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
787 | void gaim_conversation_foreach(void (*func)(GaimConversation *conv)); |
| 4359 | 788 | |
| 789 | /*@}*/ | |
| 790 | ||
| 791 | ||
| 792 | /**************************************************************************/ | |
| 793 | /** @name IM Conversation API */ | |
| 794 | /**************************************************************************/ | |
| 795 | /*@{*/ | |
| 796 | ||
| 797 | /** | |
| 798 | * Gets an IM's parent conversation. | |
| 799 | * | |
| 800 | * @param im The IM. | |
| 801 | * | |
| 802 | * @return The parent conversation. | |
| 803 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
804 | GaimConversation *gaim_im_get_conversation(const GaimIm *im); |
| 4359 | 805 | |
| 806 | /** | |
| 807 | * Sets the IM's typing state. | |
| 808 | * | |
| 809 | * @param im The IM. | |
| 810 | * @param state The typing state. | |
| 811 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
812 | void gaim_im_set_typing_state(GaimIm *im, int state); |
| 4359 | 813 | |
| 814 | /** | |
| 815 | * Returns the IM's typing state. | |
| 816 | * | |
| 817 | * @param im The IM. | |
| 818 | * | |
| 819 | * @return The IM's typing state. | |
| 820 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
821 | int gaim_im_get_typing_state(const GaimIm *im); |
| 4359 | 822 | |
| 823 | /** | |
| 824 | * Starts the IM's typing timeout. | |
| 825 | * | |
| 826 | * @param im The IM. | |
| 827 | * @param timeout The timeout. | |
| 828 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
829 | void gaim_im_start_typing_timeout(GaimIm *im, int timeout); |
| 4359 | 830 | |
| 831 | /** | |
| 832 | * Stops the IM's typing timeout. | |
| 833 | * | |
| 834 | * @param im The IM. | |
| 835 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
836 | void gaim_im_stop_typing_timeout(GaimIm *im); |
| 4359 | 837 | |
| 838 | /** | |
| 839 | * Returns the IM's typing timeout. | |
| 840 | * | |
| 841 | * @param im The IM. | |
| 842 | * | |
| 843 | * @return The timeout. | |
| 844 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
845 | guint gaim_im_get_typing_timeout(const GaimIm *im); |
| 4359 | 846 | |
| 847 | /** | |
| 848 | * Sets the IM's time until it should send another typing notification. | |
| 849 | * | |
| 850 | * @param im The IM. | |
| 851 | * @param val The time. | |
| 852 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
853 | void gaim_im_set_type_again(GaimIm *im, time_t val); |
| 4359 | 854 | |
| 855 | /** | |
| 856 | * Returns the IM's time until it should send another typing notification. | |
| 857 | * | |
| 858 | * @param im The IM. | |
| 859 | * | |
| 860 | * @return The time. | |
| 861 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
862 | time_t gaim_im_get_type_again(const GaimIm *im); |
| 4359 | 863 | |
| 864 | /** | |
| 865 | * Starts the IM's type again timeout. | |
| 866 | * | |
| 867 | * @param im The IM. | |
| 868 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
869 | void gaim_im_start_type_again_timeout(GaimIm *im); |
| 4359 | 870 | |
| 871 | /** | |
| 872 | * Stops the IM's type again timeout. | |
| 873 | * | |
| 874 | * @param im The IM. | |
| 875 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
876 | void gaim_im_stop_type_again_timeout(GaimIm *im); |
| 4359 | 877 | |
| 878 | /** | |
| 879 | * Returns the IM's type again timeout interval. | |
| 880 | * | |
| 881 | * @param im The IM. | |
| 882 | * | |
| 883 | * @return The type again timeout interval. | |
| 884 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
885 | guint gaim_im_get_type_again_timeout(const GaimIm *im); |
| 4359 | 886 | |
| 887 | /** | |
| 888 | * Updates the visual typing notification for an IM conversation. | |
| 889 | * | |
| 890 | * @param im The IM. | |
| 891 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
892 | void gaim_im_update_typing(GaimIm *im); |
| 4359 | 893 | |
| 894 | /** | |
| 895 | * Writes to an IM. | |
| 896 | * | |
| 897 | * The @a len parameter is used for writing binary data, such as an | |
| 898 | * image. If @c message is text, specify -1 for @a len. | |
| 899 | * | |
| 900 | * @param im The IM. | |
| 901 | * @param who The user who sent the message. | |
| 902 | * @param message The message to write. | |
| 903 | * @param len The length of the message, or -1 to specify the length | |
| 904 | * of @a message. | |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
905 | * @param flags The message flags. |
| 4359 | 906 | * @param mtime The time the message was sent. |
| 907 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
908 | void gaim_im_write(GaimIm *im, const char *who, |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
909 | const char *message, size_t len, GaimMessageFlags flags, time_t mtime); |
| 4359 | 910 | |
| 911 | /** | |
| 912 | * Sends a message to this IM conversation. | |
| 913 | * | |
| 914 | * @param im The IM. | |
| 915 | * @param message The message to send. | |
| 916 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
917 | void gaim_im_send(GaimIm *im, const char *message); |
| 4359 | 918 | |
| 919 | /*@}*/ | |
| 920 | ||
| 921 | ||
| 922 | /**************************************************************************/ | |
| 923 | /** @name Chat Conversation API */ | |
| 924 | /**************************************************************************/ | |
| 925 | /*@{*/ | |
| 926 | ||
| 927 | /** | |
| 928 | * Gets a chat's parent conversation. | |
| 929 | * | |
| 930 | * @param chat The chat. | |
| 931 | * | |
| 932 | * @return The parent conversation. | |
| 933 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
934 | GaimConversation *gaim_chat_get_conversation(const GaimChat *chat); |
| 4359 | 935 | |
| 936 | /** | |
| 937 | * Sets the list of users in the chat room. | |
| 938 | * | |
|
6407
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
939 | * @note Calling this function will not update the display of the users. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
940 | * Please use gaim_chat_add_user(), gaim_chat_add_users(), |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
941 | * gaim_chat_remove_user(), and gaim_chat_remove_users() instead. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
942 | * |
| 4359 | 943 | * @param chat The chat. |
| 944 | * @param users The list of users. | |
| 945 | * | |
| 946 | * @return The list passed. | |
| 947 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
948 | GList *gaim_chat_set_users(GaimChat *chat, GList *users); |
| 4359 | 949 | |
| 950 | /** | |
| 951 | * Returns a list of users in the chat room. | |
| 952 | * | |
| 953 | * @param chat The chat. | |
| 954 | * | |
| 955 | * @return The list of users. | |
| 956 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
957 | GList *gaim_chat_get_users(const GaimChat *chat); |
| 4359 | 958 | |
| 959 | /** | |
| 960 | * Ignores a user in a chat room. | |
| 961 | * | |
| 962 | * @param chat The chat. | |
| 963 | * @param name The name of the user. | |
| 964 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
965 | void gaim_chat_ignore(GaimChat *chat, const char *name); |
| 4359 | 966 | |
| 967 | /** | |
| 968 | * Unignores a user in a chat room. | |
| 969 | * | |
| 970 | * @param chat The chat. | |
| 971 | * @param name The name of the user. | |
| 972 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
973 | void gaim_chat_unignore(GaimChat *chat, const char *name); |
| 4359 | 974 | |
| 975 | /** | |
| 976 | * Sets the list of ignored users in the chat room. | |
| 977 | * | |
| 978 | * @param chat The chat. | |
| 979 | * @param ignored The list of ignored users. | |
| 980 | * | |
| 981 | * @return The list passed. | |
| 982 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
983 | GList *gaim_chat_set_ignored(GaimChat *chat, GList *ignored); |
| 4359 | 984 | |
| 985 | /** | |
| 986 | * Returns the list of ignored users in the chat room. | |
| 987 | * | |
| 988 | * @param chat The chat. | |
| 989 | * | |
| 990 | * @return The list of ignored users. | |
| 991 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
992 | GList *gaim_chat_get_ignored(const GaimChat *chat); |
| 4359 | 993 | |
| 994 | /** | |
| 995 | * Returns the actual name of the specified ignored user, if it exists in | |
| 996 | * the ignore list. | |
| 997 | * | |
| 998 | * If the user found contains a prefix, such as '+' or '\@', this is also | |
| 999 | * returned. The username passed to the function does not have to have this | |
| 1000 | * formatting. | |
| 1001 | * | |
| 1002 | * @param chat The chat. | |
| 1003 | * @param user The user to check in the ignore list. | |
| 1004 | * | |
| 1005 | * @return The ignored user if found, complete with prefixes, or @c NULL | |
| 1006 | * if not found. | |
| 1007 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1008 | const char *gaim_chat_get_ignored_user(const GaimChat *chat, |
| 4359 | 1009 | const char *user); |
| 1010 | ||
| 1011 | /** | |
| 1012 | * Returns @c TRUE if the specified user is ignored. | |
| 1013 | * | |
| 1014 | * @param chat The chat. | |
| 1015 | * @param user The user. | |
| 1016 | * | |
| 1017 | * @return @c TRUE if the user is in the ignore list; @c FALSE otherwise. | |
| 1018 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1019 | gboolean gaim_chat_is_user_ignored(const GaimChat *chat, |
| 4359 | 1020 | const char *user); |
| 1021 | ||
| 1022 | /** | |
| 1023 | * Sets the chat room's topic. | |
| 1024 | * | |
| 1025 | * @param chat The chat. | |
| 1026 | * @param who The user that set the topic. | |
| 1027 | * @param topic The topic. | |
| 1028 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1029 | void gaim_chat_set_topic(GaimChat *chat, const char *who, |
| 4359 | 1030 | const char *topic); |
| 1031 | ||
| 1032 | /** | |
| 1033 | * Returns the chat room's topic. | |
| 1034 | * | |
| 1035 | * @param chat The chat. | |
| 1036 | * | |
| 1037 | * @return The chat's topic. | |
| 1038 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1039 | const char *gaim_chat_get_topic(const GaimChat *chat); |
| 4359 | 1040 | |
| 1041 | /** | |
| 1042 | * Sets the chat room's ID. | |
| 1043 | * | |
| 1044 | * @param chat The chat. | |
| 1045 | * @param id The ID. | |
| 1046 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1047 | void gaim_chat_set_id(GaimChat *chat, int id); |
| 4359 | 1048 | |
| 1049 | /** | |
| 1050 | * Returns the chat room's ID. | |
| 1051 | * | |
| 1052 | * @param chat The chat. | |
| 1053 | * | |
| 1054 | * @return The ID. | |
| 1055 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1056 | int gaim_chat_get_id(const GaimChat *chat); |
| 4359 | 1057 | |
| 1058 | /** | |
| 1059 | * Writes to a chat. | |
| 1060 | * | |
| 1061 | * @param chat The chat. | |
| 1062 | * @param who The user who sent the message. | |
| 1063 | * @param message The message to write. | |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
1064 | * @param flags The flags. |
| 4359 | 1065 | * @param mtime The time the message was sent. |
| 1066 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1067 | void gaim_chat_write(GaimChat *chat, const char *who, |
|
6621
2a18ef3e5224
[gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents:
6605
diff
changeset
|
1068 | const char *message, GaimMessageFlags flags, time_t mtime); |
| 4359 | 1069 | |
| 1070 | /** | |
| 1071 | * Sends a message to this chat conversation. | |
| 1072 | * | |
| 1073 | * @param chat The chat. | |
| 1074 | * @param message The message to send. | |
| 1075 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1076 | void gaim_chat_send(GaimChat *chat, const char *message); |
| 4359 | 1077 | |
| 1078 | /** | |
| 1079 | * Adds a user to a chat. | |
| 1080 | * | |
| 1081 | * @param chat The chat. | |
| 1082 | * @param user The user to add. | |
| 1083 | * @param extra_msg An extra message to display with the join message. | |
| 1084 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1085 | void gaim_chat_add_user(GaimChat *chat, const char *user, |
| 4359 | 1086 | const char *extra_msg); |
| 1087 | ||
| 1088 | /** | |
|
6407
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1089 | * Adds a list of users to a chat. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1090 | * |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1091 | * The data is copied from @a users, so it is up to the developer to |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1092 | * free this list after calling this function. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1093 | * |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1094 | * @param chat The chat. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1095 | * @param users The list of users to add. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1096 | */ |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1097 | void gaim_chat_add_users(GaimChat *chat, GList *users); |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1098 | |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1099 | /** |
| 4359 | 1100 | * Renames a user in a chat. |
| 1101 | * | |
| 1102 | * @param chat The chat. | |
| 1103 | * @param old_user The old username. | |
| 1104 | * @param new_user The new username. | |
| 1105 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1106 | void gaim_chat_rename_user(GaimChat *chat, const char *old_user, |
| 4359 | 1107 | const char *new_user); |
| 1108 | ||
| 1109 | /** | |
| 1110 | * Removes a user from a chat, optionally with a reason. | |
| 1111 | * | |
|
6407
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1112 | * It is up to the developer to free this list after calling this function. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1113 | * |
| 4359 | 1114 | * @param chat The chat. |
| 1115 | * @param user The user that is being removed. | |
| 1116 | * @param reason The optional reason given for the removal. Can be @c NULL. | |
| 1117 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1118 | void gaim_chat_remove_user(GaimChat *chat, const char *user, |
| 4359 | 1119 | const char *reason); |
| 1120 | ||
| 1121 | /** | |
|
6407
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1122 | * Removes a list of users from a chat, optionally with a single reason. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1123 | * |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1124 | * @param chat The chat. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1125 | * @param users The users that are being removed. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1126 | * @param reason The optional reason given for the removal. Can be @c NULL. |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1127 | */ |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1128 | void gaim_chat_remove_users(GaimChat *chat, GList *users, const char *reason); |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1129 | |
|
d67b6a6ba7d2
[gaim-migrate @ 6913]
Christian Hammond <chipx86@chipx86.com>
parents:
6405
diff
changeset
|
1130 | /** |
|
6414
f78eb072fcc0
[gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents:
6407
diff
changeset
|
1131 | * Clears all users from a chat. |
|
f78eb072fcc0
[gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents:
6407
diff
changeset
|
1132 | * |
|
f78eb072fcc0
[gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents:
6407
diff
changeset
|
1133 | * @param chat The chat. |
|
f78eb072fcc0
[gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents:
6407
diff
changeset
|
1134 | */ |
|
f78eb072fcc0
[gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents:
6407
diff
changeset
|
1135 | void gaim_chat_clear_users(GaimChat *chat); |
|
f78eb072fcc0
[gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents:
6407
diff
changeset
|
1136 | |
|
f78eb072fcc0
[gaim-migrate @ 6921]
Christian Hammond <chipx86@chipx86.com>
parents:
6407
diff
changeset
|
1137 | /** |
| 4359 | 1138 | * Finds a chat with the specified chat ID. |
| 1139 | * | |
| 1140 | * @param gc The gaim_connection. | |
| 1141 | * @param id The chat ID. | |
| 1142 | * | |
| 1143 | * @return The chat conversation. | |
| 1144 | */ | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1145 | GaimConversation *gaim_find_chat(const GaimConnection *gc, int id); |
| 4359 | 1146 | |
| 1147 | /*@}*/ | |
| 1148 | ||
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1149 | /**************************************************************************/ |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1150 | /** @name Conversation Placement Functions */ |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1151 | /**************************************************************************/ |
|
4481
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1152 | /*@{*/ |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1153 | |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1154 | /** |
| 5858 | 1155 | * Returns a GList containing the IDs and Names of the registered placement |
| 1156 | * functions. | |
| 1157 | * | |
| 1158 | * @return The list of IDs and names. | |
| 1159 | */ | |
| 1160 | GList *gaim_conv_placement_get_options(void); | |
| 1161 | ||
| 1162 | /** | |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1163 | * Adds a conversation placement function to the list of possible functions. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1164 | * |
|
6720
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6622
diff
changeset
|
1165 | * @param id The unique ID of the placement function. |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1166 | * @param name The name of the function. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1167 | * @param fnc A pointer to the function. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1168 | */ |
|
6311
1e253e4b423f
[gaim-migrate @ 6810]
Christian Hammond <chipx86@chipx86.com>
parents:
6063
diff
changeset
|
1169 | void gaim_conv_placement_add_fnc(const char *id, const char *name, |
|
1e253e4b423f
[gaim-migrate @ 6810]
Christian Hammond <chipx86@chipx86.com>
parents:
6063
diff
changeset
|
1170 | GaimConvPlacementFunc fnc); |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1171 | |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1172 | /** |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1173 | * Removes a conversation placement function from the list of possible |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1174 | * functions. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1175 | * |
| 5858 | 1176 | * @param id The id of the function. |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1177 | */ |
| 5858 | 1178 | void gaim_conv_placement_remove_fnc(const char *id); |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1179 | |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1180 | /** |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1181 | * Returns the name of the conversation placement function at the |
| 5858 | 1182 | * specified id. |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1183 | * |
| 5858 | 1184 | * @param id The id. |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1185 | * |
| 5858 | 1186 | * @return The name of the function, or @c NULL if this id is invalid. |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1187 | */ |
| 5858 | 1188 | const char *gaim_conv_placement_get_name(const char *id); |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1189 | |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1190 | /** |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1191 | * Returns a pointer to the conversation placement function at the |
| 5858 | 1192 | * specified id. |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1193 | * |
| 5858 | 1194 | * @param id The id. |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1195 | * |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1196 | * @return A pointer to the function. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1197 | */ |
| 5858 | 1198 | GaimConvPlacementFunc gaim_conv_placement_get_fnc(const char *id); |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1199 | |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1200 | /** |
| 5858 | 1201 | * Returns the id of the specified conversation placement function. |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1202 | * |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1203 | * @param fnc A pointer to the registered function. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1204 | * |
| 5858 | 1205 | * @return The id of the conversation, or NULL if the function is not |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1206 | * registered. |
|
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1207 | */ |
| 5858 | 1208 | const char *gaim_conv_placement_get_fnc_id(GaimConvPlacementFunc fnc); |
|
4469
ef60c820b884
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4465
diff
changeset
|
1209 | |
|
4481
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1210 | /*@}*/ |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1211 | |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1212 | /**************************************************************************/ |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1213 | /** @name UI Registration Functions */ |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1214 | /**************************************************************************/ |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1215 | /*@{*/ |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1216 | |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1217 | /** |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1218 | * Sets the UI operations structure to be used in all gaim conversation |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1219 | * windows. |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1220 | * |
|
5207
4d3a908867a2
[gaim-migrate @ 5575]
Christian Hammond <chipx86@chipx86.com>
parents:
5034
diff
changeset
|
1221 | * @param ops The UI operations structure. |
|
4481
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1222 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1223 | void gaim_set_win_ui_ops(GaimWindowUiOps *ops); |
|
4481
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1224 | |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1225 | /** |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1226 | * Returns the gaim window UI operations structure to be used in |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1227 | * new windows. |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1228 | * |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1229 | * @return A filled-out GaimWindowUiOps structure. |
|
4481
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1230 | */ |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
1231 | GaimWindowUiOps *gaim_get_win_ui_ops(void); |
|
4481
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1232 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1233 | /*@}*/ |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1234 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1235 | /**************************************************************************/ |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1236 | /** @name Conversations Subsystem */ |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1237 | /**************************************************************************/ |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1238 | /*@{*/ |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1239 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1240 | /** |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1241 | * Returns the conversation subsystem handle. |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1242 | * |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1243 | * @return The conversation subsystem handle. |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1244 | */ |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1245 | void *gaim_conversations_get_handle(void); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1246 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
1247 | /** |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
1248 | * Initializes the conversation subsystem. |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
1249 | */ |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1250 | void gaim_conversations_init(void); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1251 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1252 | /** |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1253 | * Uninitializes the conversation subsystem. |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1254 | */ |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6414
diff
changeset
|
1255 | void gaim_conversations_uninit(void); |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5858
diff
changeset
|
1256 | |
|
4481
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1257 | /*@}*/ |
|
1a02f276e41e
[gaim-migrate @ 4756]
Christian Hammond <chipx86@chipx86.com>
parents:
4476
diff
changeset
|
1258 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1259 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1260 | } |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1261 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1262 | |
|
4890
d87a9b5bbe57
[gaim-migrate @ 5220]
Christian Hammond <chipx86@chipx86.com>
parents:
4877
diff
changeset
|
1263 | #endif /* _GAIM_CONVERSATION_H_ */ |