annotate src/prpl.h @ 11500:9fc7d0153332

[gaim-migrate @ 13745] Remove the stupid prpl option I added with the aliasing code. This fixes the remaining bug I'm aware of. It should be correct, but let me know if I've broken something (which would mostly likely be with Jabber). committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sun, 11 Sep 2005 02:58:03 +0000
parents 7fab28c991f3
children b91a84e7cbcb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
1 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
2 * @file prpl.h Protocol Plugin functions
5034
4691c5936c01 [gaim-migrate @ 5377]
Christian Hammond <chipx86@chipx86.com>
parents: 4966
diff changeset
3 * @ingroup core
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
4 *
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
5 * gaim
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
6 *
8046
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7999
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7999
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7999
diff changeset
9 * source distribution.
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
10 *
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
14 * (at your option) any later version.
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
15 *
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
19 * GNU General Public License for more details.
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
20 *
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
24 */
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
25
2417
5473c8c5378d [gaim-migrate @ 2430]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2411
diff changeset
26 /* this file should be all that prpls need to include. therefore, by including
5473c8c5378d [gaim-migrate @ 2430]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2411
diff changeset
27 * this file, they should get glib, proxy, gaim_connection, prpl, etc. */
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
28
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
29 #ifndef _GAIM_PRPL_H_
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
30 #define _GAIM_PRPL_H_
2417
5473c8c5378d [gaim-migrate @ 2430]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2411
diff changeset
31
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
32 typedef struct _GaimPluginProtocolInfo GaimPluginProtocolInfo;
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
33
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
34 /**************************************************************************/
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
35 /** @name Basic Protocol Information */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
36 /**************************************************************************/
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
37
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
38 /**
6622
a4622f1fb5a1 [gaim-migrate @ 7146]
Luke Schierer <lschiere@pidgin.im>
parents: 6451
diff changeset
39 * Flags applicable to outgoing/incoming IMs from prpls.
a4622f1fb5a1 [gaim-migrate @ 7146]
Luke Schierer <lschiere@pidgin.im>
parents: 6451
diff changeset
40 */
a4622f1fb5a1 [gaim-migrate @ 7146]
Luke Schierer <lschiere@pidgin.im>
parents: 6451
diff changeset
41 typedef enum
a4622f1fb5a1 [gaim-migrate @ 7146]
Luke Schierer <lschiere@pidgin.im>
parents: 6451
diff changeset
42 {
7118
bf630f7dfdcd [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
43 GAIM_CONV_IM_AUTO_RESP = 0x0001, /**< Auto response. */
bf630f7dfdcd [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
44 GAIM_CONV_IM_IMAGES = 0x0002 /**< Contains images. */
9584
fe35f55ee984 [gaim-migrate @ 10427]
Luke Schierer <lschiere@pidgin.im>
parents: 9473
diff changeset
45 } GaimConvImFlags;
8749
d7b8eb1f0a18 [gaim-migrate @ 9504]
Christian Hammond <chipx86@chipx86.com>
parents: 8713
diff changeset
46
9584
fe35f55ee984 [gaim-migrate @ 10427]
Luke Schierer <lschiere@pidgin.im>
parents: 9473
diff changeset
47 typedef enum
fe35f55ee984 [gaim-migrate @ 10427]
Luke Schierer <lschiere@pidgin.im>
parents: 9473
diff changeset
48 {
fe35f55ee984 [gaim-migrate @ 10427]
Luke Schierer <lschiere@pidgin.im>
parents: 9473
diff changeset
49 GAIM_CONV_CHAT_WHISPER = 0x0001, /**< Whispered message.*/
10104
60db14d54914 [gaim-migrate @ 11131]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10071
diff changeset
50 GAIM_CONV_CHAT_DELAYED = 0x0002, /**< Delayed message. */
60db14d54914 [gaim-migrate @ 11131]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10071
diff changeset
51 GAIM_CONV_CHAT_ALERT = 0x0004 /**< Alert message. */
9584
fe35f55ee984 [gaim-migrate @ 10427]
Luke Schierer <lschiere@pidgin.im>
parents: 9473
diff changeset
52 } GaimConvChatFlags;
6622
a4622f1fb5a1 [gaim-migrate @ 7146]
Luke Schierer <lschiere@pidgin.im>
parents: 6451
diff changeset
53
9318
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
54 typedef enum {
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
55 GAIM_ICON_SCALE_DISPLAY = 0x01, /**< We scale the icon when we display it */
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
56 GAIM_ICON_SCALE_SEND = 0x02 /**< We scale the icon before we send it to the server */
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
57 } GaimIconScaleRules;
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
58
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
59
9308
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
60 /**
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
61 * A description of a Buddy Icon specification. This tells Gaim what kind of image file
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
62 * it should give this prpl, and what kind of image file it should expect back.
9316
d9d4b987e194 [gaim-migrate @ 10124]
Sean Egan <seanegan@gmail.com>
parents: 9308
diff changeset
63 * Dimensions less than 1 should be ignored and the image not scaled.
9308
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
64 */
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
65 typedef struct {
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
66 char *format; /**< This is a comma-delimited list of image formats or NULL if icons are not supported.
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
67 * The core nor the prpl will actually check to see if the data it's given matches this, it's entirely
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
68 * up to the UI to do what it wants */
9318
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
69 int min_width; /**< The minimum width of this icon */
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
70 int min_height; /**< The minimum height of this icon */
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
71 int max_width; /**< The maximum width of this icon */
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
72 int max_height; /**< The maximum height of this icon */
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
73 GaimIconScaleRules scale_rules; /**< How to stretch this icon */
9308
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
74 } GaimBuddyIconSpec;
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
75
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
76 /**
11035
11e465b55fe6 [gaim-migrate @ 12922]
Gary Kramlich <grim@reaperworld.com>
parents: 10870
diff changeset
77 * This \#define exists just to make it easier to fill out the buddy icon
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
78 * field in the prpl info struct for protocols that couldn't care less.
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
79 */
9318
01c50436203e [gaim-migrate @ 10126]
Nathan Walp <nwalp@pidgin.im>
parents: 9316
diff changeset
80 #define NO_BUDDY_ICONS {NULL, 0, 0, 0, 0, 0}
9308
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
81
8573
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8568
diff changeset
82 #include "blist.h"
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8568
diff changeset
83 #include "proxy.h"
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8568
diff changeset
84 #include "plugin.h"
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
85 #include "roomlist.h"
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
86 #include "status.h"
11475
7fab28c991f3 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11462
diff changeset
87 #include "whiteboard.h"
8573
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8568
diff changeset
88
9713
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
89 struct proto_chat_entry {
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
90 char *label;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
91 char *identifier;
10475
94fd0bf8c4b1 [gaim-migrate @ 11762]
Mark Doliner <mark@kingant.net>
parents: 10447
diff changeset
92 gboolean required;
9713
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
93 gboolean is_int;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
94 int min;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
95 int max;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
96 gboolean secret;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
97 };
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
98
6622
a4622f1fb5a1 [gaim-migrate @ 7146]
Luke Schierer <lschiere@pidgin.im>
parents: 6451
diff changeset
99 /**
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
100 * Protocol options
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
101 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
102 * These should all be stuff that some plugins can do and others can't.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
103 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
104 typedef enum
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
105 {
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
106 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
107 * Use a unique name, not an alias, for chat rooms.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
108 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
109 * Jabber lets you choose what name you want for chat.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
110 * So it shouldn't be pulling the alias for when you're in chat;
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
111 * it gets annoying.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
112 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
113 OPT_PROTO_UNIQUE_CHATNAME = 0x00000004,
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
114
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
115 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
116 * Chat rooms have topics.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
117 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
118 * IRC and Jabber support this.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
119 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
120 OPT_PROTO_CHAT_TOPIC = 0x00000008,
1370
776bb4c6c0b8 [gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
121
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
122 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
123 * Don't require passwords for sign-in.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
124 *
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
125 * Zephyr doesn't require passwords, so there's no
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
126 * need for a password prompt.
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
127 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
128 OPT_PROTO_NO_PASSWORD = 0x00000010,
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
129
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
130 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
131 * Notify on new mail.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
132 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
133 * MSN and Yahoo notify you when you have new mail.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
134 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
135 OPT_PROTO_MAIL_CHECK = 0x00000020,
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
136
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
137 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
138 * Images in IMs.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
139 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
140 * Oscar lets you send images in direct IMs.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
141 */
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
142 OPT_PROTO_IM_IMAGE = 0x00000040,
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
143
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
144 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
145 * Allow passwords to be optional.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
146 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
147 * Passwords in IRC are optional, and are needed for certain
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
148 * functionality.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
149 */
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
150 OPT_PROTO_PASSWORD_OPTIONAL = 0x00000080,
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
151
5367
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
152 /**
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
153 * Allows font size to be specified in sane point size
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
154 *
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
155 * Probably just Jabber and Y!M
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
156 */
11358
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
157 OPT_PROTO_USE_POINTSIZE = 0x00000100,
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
158
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
159 /**
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
160 * Set the Register button active when screenname is not given.
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
161 *
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
162 * Gadu-Gadu doesn't need a screenname to register new account.
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
163 */
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
164 OPT_PROTO_REGISTER_NOSCREENNAME = 0x00000200,
5367
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
165
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
166 } GaimProtocolOptions;
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
167
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
168 /**
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
169 * A protocol plugin information structure.
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
170 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
171 * Every protocol plugin initializes this structure. It is the gateway
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
172 * between gaim and the protocol plugin. Many of this callbacks can be
10162
17c3fc112410 [gaim-migrate @ 11248]
Mark Doliner <mark@kingant.net>
parents: 10160
diff changeset
173 * NULL. If a callback must be implemented, it has a comment indicating so.
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
174 */
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
175 struct _GaimPluginProtocolInfo
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
176 {
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
177 GaimProtocolOptions options; /**< Protocol options. */
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
178
5638
0bdfa28c678e [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
179 GList *user_splits; /* A GList of GaimAccountUserSplit */
0bdfa28c678e [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
180 GList *protocol_options; /* A GList of GaimAccountOption */
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
181
9308
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
182 GaimBuddyIconSpec icon_spec; /* The icon spec. */
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
183
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
184 /**
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
185 * Returns the base icon name for the given buddy and account.
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
186 * If buddy is NULL, it will return the name to use for the account's
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
187 * icon. This must be implemented.
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4668
diff changeset
188 */
6695
0c5637b5462e [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
189 const char *(*list_icon)(GaimAccount *account, GaimBuddy *buddy);
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4668
diff changeset
190
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4668
diff changeset
191 /**
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
192 * Fills the four char**'s with string identifiers for "emblems"
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
193 * that the UI will interpret and display as relevant
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4668
diff changeset
194 */
9952
8fdf9706c45d [gaim-migrate @ 10848]
Nathan Walp <nwalp@pidgin.im>
parents: 9950
diff changeset
195 void (*list_emblems)(GaimBuddy *buddy, const char **se, const char **sw,
8fdf9706c45d [gaim-migrate @ 10848]
Nathan Walp <nwalp@pidgin.im>
parents: 9950
diff changeset
196 const char **nw, const char **ne);
4722
534eaa4ead94 [gaim-migrate @ 5034]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
197
534eaa4ead94 [gaim-migrate @ 5034]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
198 /**
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
199 * Gets a short string representing this buddy's status. This will
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
200 * be shown on the buddy list.
4722
534eaa4ead94 [gaim-migrate @ 5034]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
201 */
6695
0c5637b5462e [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
202 char *(*status_text)(GaimBuddy *buddy);
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
203
4724
b9e7ccf21f9c [gaim-migrate @ 5037]
Sean Egan <seanegan@gmail.com>
parents: 4722
diff changeset
204 /**
b9e7ccf21f9c [gaim-migrate @ 5037]
Sean Egan <seanegan@gmail.com>
parents: 4722
diff changeset
205 * Gets a string to put in the buddy list tooltip.
b9e7ccf21f9c [gaim-migrate @ 5037]
Sean Egan <seanegan@gmail.com>
parents: 4722
diff changeset
206 */
6695
0c5637b5462e [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
207 char *(*tooltip_text)(GaimBuddy *buddy);
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
208
10200
f086269582b1 [gaim-migrate @ 11317]
Mark Doliner <mark@kingant.net>
parents: 10162
diff changeset
209 /**
f086269582b1 [gaim-migrate @ 11317]
Mark Doliner <mark@kingant.net>
parents: 10162
diff changeset
210 * This must be implemented, and must add at least the offline
f086269582b1 [gaim-migrate @ 11317]
Mark Doliner <mark@kingant.net>
parents: 10162
diff changeset
211 * and online states.
f086269582b1 [gaim-migrate @ 11317]
Mark Doliner <mark@kingant.net>
parents: 10162
diff changeset
212 */
9950
ba085944efee [gaim-migrate @ 10846]
Tim Ringenbach <marv@pidgin.im>
parents: 9949
diff changeset
213 GList *(*status_types)(GaimAccount *account);
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
214
9030
7ab20f829190 [gaim-migrate @ 9806]
Mark Doliner <mark@kingant.net>
parents: 9015
diff changeset
215 GList *(*blist_node_menu)(GaimBlistNode *node);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
216 GList *(*chat_info)(GaimConnection *);
9754
4a8bf81b82ae [gaim-migrate @ 10621]
Luke Schierer <lschiere@pidgin.im>
parents: 9753
diff changeset
217 GHashTable *(*chat_info_defaults)(GaimConnection *, const char *chat_name);
1333
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1318
diff changeset
218
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
219 /* All the server-related functions */
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
220
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
221 /** This must be implemented. */
10400
6a043ae92db6 [gaim-migrate @ 11631]
Sean Egan <seanegan@gmail.com>
parents: 10200
diff changeset
222 void (*login)(GaimAccount *, GaimStatus *);
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
223
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
224 /** This must be implemented. */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
225 void (*close)(GaimConnection *);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
226 int (*send_im)(GaimConnection *, const char *who,
6982
083d1e4a9c78 [gaim-migrate @ 7538]
Mark Doliner <mark@kingant.net>
parents: 6885
diff changeset
227 const char *message,
7118
bf630f7dfdcd [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
228 GaimConvImFlags flags);
5954
fccc33d4b8fa [gaim-migrate @ 6398]
Mark Doliner <mark@kingant.net>
parents: 5946
diff changeset
229 void (*set_info)(GaimConnection *, const char *info);
6059
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
230 int (*send_typing)(GaimConnection *, const char *name, int typing);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
231 void (*get_info)(GaimConnection *, const char *who);
9949
ced29c7b396c [gaim-migrate @ 10845]
Luke Schierer <lschiere@pidgin.im>
parents: 9944
diff changeset
232 void (*set_status)(GaimAccount *account, GaimStatus *status);
ced29c7b396c [gaim-migrate @ 10845]
Luke Schierer <lschiere@pidgin.im>
parents: 9944
diff changeset
233
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
234 void (*set_idle)(GaimConnection *, int idletime);
5946
209cae24a51d [gaim-migrate @ 6387]
Christian Hammond <chipx86@chipx86.com>
parents: 5944
diff changeset
235 void (*change_passwd)(GaimConnection *, const char *old_pass,
209cae24a51d [gaim-migrate @ 6387]
Christian Hammond <chipx86@chipx86.com>
parents: 5944
diff changeset
236 const char *new_pass);
9285
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
237 void (*add_buddy)(GaimConnection *, GaimBuddy *buddy, GaimGroup *group);
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
238 void (*add_buddies)(GaimConnection *, GList *buddies, GList *groups);
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
239 void (*remove_buddy)(GaimConnection *, GaimBuddy *buddy, GaimGroup *group);
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
240 void (*remove_buddies)(GaimConnection *, GList *buddies, GList *groups);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
241 void (*add_permit)(GaimConnection *, const char *name);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
242 void (*add_deny)(GaimConnection *, const char *name);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
243 void (*rem_permit)(GaimConnection *, const char *name);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
244 void (*rem_deny)(GaimConnection *, const char *name);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
245 void (*set_permit_deny)(GaimConnection *);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
246 void (*join_chat)(GaimConnection *, GHashTable *components);
8562
e3c059c3d92d [gaim-migrate @ 9306]
Luke Schierer <lschiere@pidgin.im>
parents: 8170
diff changeset
247 void (*reject_chat)(GaimConnection *, GHashTable *components);
9917
e74eb0d11f86 [gaim-migrate @ 10809]
Luke Schierer <lschiere@pidgin.im>
parents: 9770
diff changeset
248 char *(*get_chat_name)(GHashTable *components);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
249 void (*chat_invite)(GaimConnection *, int id,
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
250 const char *who, const char *message);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
251 void (*chat_leave)(GaimConnection *, int id);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
252 void (*chat_whisper)(GaimConnection *, int id,
6059
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
253 const char *who, const char *message);
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
254 int (*chat_send)(GaimConnection *, int id, const char *message);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
255 void (*keepalive)(GaimConnection *);
1713
14caa7df478c [gaim-migrate @ 1723]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1626
diff changeset
256
2827
51999a36c0b1 [gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2773
diff changeset
257 /* new user registration */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
258 void (*register_user)(GaimAccount *);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2827
diff changeset
259
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2827
diff changeset
260 /* get "chat buddy" info and away message */
6059
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
261 void (*get_cb_info)(GaimConnection *, int, const char *who);
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
262 void (*get_cb_away)(GaimConnection *, int, const char *who);
2827
51999a36c0b1 [gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2773
diff changeset
263
3136
1bd472b7f7a2 [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3044
diff changeset
264 /* save/store buddy's alias on server list/roster */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
265 void (*alias_buddy)(GaimConnection *, const char *who,
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
266 const char *alias);
3136
1bd472b7f7a2 [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3044
diff changeset
267
1bd472b7f7a2 [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3044
diff changeset
268 /* change a buddy's group on a server list/roster */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
269 void (*group_buddy)(GaimConnection *, const char *who,
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
270 const char *old_group, const char *new_group);
3136
1bd472b7f7a2 [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3044
diff changeset
271
3348
dd34e0b40fed [gaim-migrate @ 3367]
Jim Seymour <jseymour>
parents: 3313
diff changeset
272 /* rename a group on a server list/roster */
9285
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
273 void (*rename_group)(GaimConnection *, const char *old_name,
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
274 GaimGroup *group, GList *moved_buddies);
3348
dd34e0b40fed [gaim-migrate @ 3367]
Jim Seymour <jseymour>
parents: 3313
diff changeset
275
6695
0c5637b5462e [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
276 void (*buddy_free)(GaimBuddy *);
2607
e0d4a23aac89 [gaim-migrate @ 2620]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2582
diff changeset
277
6059
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
278 void (*convo_closed)(GaimConnection *, const char *who);
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
279
7322
ab828b8c3f22 [gaim-migrate @ 7908]
Nathan Walp <nwalp@pidgin.im>
parents: 7262
diff changeset
280 const char *(*normalize)(const GaimAccount *, const char *);
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
281
5842
dbed8c87f750 [gaim-migrate @ 6273]
Sean Egan <seanegan@gmail.com>
parents: 5730
diff changeset
282 void (*set_buddy_icon)(GaimConnection *, const char *filename);
6885
66dd420d3d23 [gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents: 6846
diff changeset
283
9285
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
284 void (*remove_group)(GaimConnection *gc, GaimGroup *group);
7398
d60e1629ffde [gaim-migrate @ 7994]
Nathan Walp <nwalp@pidgin.im>
parents: 7322
diff changeset
285
d60e1629ffde [gaim-migrate @ 7994]
Nathan Walp <nwalp@pidgin.im>
parents: 7322
diff changeset
286 char *(*get_cb_real_name)(GaimConnection *gc, int id, const char *who);
7971
6fca0d9cc98b [gaim-migrate @ 8648]
Nathan Walp <nwalp@pidgin.im>
parents: 7956
diff changeset
287
6fca0d9cc98b [gaim-migrate @ 8648]
Nathan Walp <nwalp@pidgin.im>
parents: 7956
diff changeset
288 void (*set_chat_topic)(GaimConnection *gc, int id, const char *topic);
7999
38df71d58500 [gaim-migrate @ 8676]
Nathan Walp <nwalp@pidgin.im>
parents: 7971
diff changeset
289
38df71d58500 [gaim-migrate @ 8676]
Nathan Walp <nwalp@pidgin.im>
parents: 7971
diff changeset
290 GaimChat *(*find_blist_chat)(GaimAccount *account, const char *name);
8113
d60272410bd5 [gaim-migrate @ 8817]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
291
d60272410bd5 [gaim-migrate @ 8817]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
292 /* room listing prpl callbacks */
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
293 GaimRoomlist *(*roomlist_get_list)(GaimConnection *gc);
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
294 void (*roomlist_cancel)(GaimRoomlist *list);
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
295 void (*roomlist_expand_category)(GaimRoomlist *list, GaimRoomlistRoom *category);
9466
d27156c9c876 [gaim-migrate @ 10291]
Luke Schierer <lschiere@pidgin.im>
parents: 9460
diff changeset
296
d27156c9c876 [gaim-migrate @ 10291]
Luke Schierer <lschiere@pidgin.im>
parents: 9460
diff changeset
297 /* file transfer callbacks */
d27156c9c876 [gaim-migrate @ 10291]
Luke Schierer <lschiere@pidgin.im>
parents: 9460
diff changeset
298 gboolean (*can_receive_file)(GaimConnection *, const char *who);
d27156c9c876 [gaim-migrate @ 10291]
Luke Schierer <lschiere@pidgin.im>
parents: 9460
diff changeset
299 void (*send_file)(GaimConnection *, const char *who, const char *filename);
11475
7fab28c991f3 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11462
diff changeset
300
7fab28c991f3 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11462
diff changeset
301 GaimWhiteboardPrplOps *whiteboard_prpl_ops;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
302 };
2246
933346315b9b [gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2232
diff changeset
303
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
304 #define GAIM_IS_PROTOCOL_PLUGIN(plugin) \
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
305 ((plugin)->info->type == GAIM_PLUGIN_PROTOCOL)
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
306
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
307 #define GAIM_PLUGIN_PROTOCOL_INFO(plugin) \
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
308 ((GaimPluginProtocolInfo *)(plugin)->info->extra_info)
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
309
5944
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
310 #ifdef __cplusplus
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
311 extern "C" {
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
312 #endif
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
313
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
314 /**************************************************************************/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
315 /** @name Protocol Plugin API */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
316 /**************************************************************************/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
317 /*@{*/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
318
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
319 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
320 * Notifies Gaim that an account's idle state and time have changed.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
321 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
322 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
323 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
324 * @param account The account.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
325 * @param idle The user's idle state.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
326 * @param idle_time The user's idle time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
327 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
328 void gaim_prpl_got_account_idle(GaimAccount *account, gboolean idle,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
329 time_t idle_time);
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
330
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
331 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
332 * Notifies Gaim of an account's log-in time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
333 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
334 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
335 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
336 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
337 * @param login_time The user's log-in time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
338 */
10870
b75ce371c812 [gaim-migrate @ 12557]
Mark Doliner <mark@kingant.net>
parents: 10860
diff changeset
339 void gaim_prpl_got_account_login_time(GaimAccount *account, time_t login_time);
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
340
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
341 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
342 * Notifies Gaim that an account's status has changed.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
343 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
344 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
345 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
346 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
347 * @param status_id The status ID.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
348 * @param attr_id The first attribute ID, or NULL for no attribute updates.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
349 * @param ... A NULL-terminated list of attribute IDs and values,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
350 * beginning with the value for @a attr_id.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
351 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
352 void gaim_prpl_got_account_status(GaimAccount *account,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
353 const char *status_id, const char *attr_id,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
354 ...);
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
355 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
356 * Notifies Gaim that a user's idle state and time have changed.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
357 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
358 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
359 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
360 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
361 * @param name The screen name of the user.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
362 * @param idle The user's idle state.
10860
d01d81de94d8 [gaim-migrate @ 12543]
Mark Doliner <mark@kingant.net>
parents: 10475
diff changeset
363 * @param idle_time The user's idle time. This is the time at
d01d81de94d8 [gaim-migrate @ 12543]
Mark Doliner <mark@kingant.net>
parents: 10475
diff changeset
364 * which the user became idle, in seconds since
d01d81de94d8 [gaim-migrate @ 12543]
Mark Doliner <mark@kingant.net>
parents: 10475
diff changeset
365 * the epoch.
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
366 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
367 void gaim_prpl_got_user_idle(GaimAccount *account, const char *name,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
368 gboolean idle, time_t idle_time);
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
369
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
370 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
371 * Notifies Gaim of a user's log-in time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
372 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
373 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
374 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
375 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
376 * @param name The screen name of the user.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
377 * @param login_time The user's log-in time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
378 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
379 void gaim_prpl_got_user_login_time(GaimAccount *account, const char *name,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
380 time_t login_time);
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
381
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
382 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
383 * Notifies Gaim that a user's status has changed.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
384 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
385 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
386 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
387 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
388 * @param name The screen name of the user.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
389 * @param status_id The status ID.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
390 * @param attr_id The first attribute ID, or NULL for no attribute updates.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
391 * @param ... A NULL-terminated list of attribute IDs and values,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
392 * beginning with the value for @a attr_id.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
393 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
394 void gaim_prpl_got_user_status(GaimAccount *account, const char *name,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
395 const char *status_id, const char *attr_id, ...);
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
396 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
397 * Informs the server that an account's status changed.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
398 *
10447
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
399 * @param account The account the user is on.
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
400 * @param old_status The previous status.
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
401 * @param new_status The status that was activated, or deactivated
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
402 * (in the case of independent statuses).
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
403 */
10447
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
404 void gaim_prpl_change_account_status(GaimAccount *account,
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
405 GaimStatus *old_status,
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
406 GaimStatus *new_status);
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
407
10006
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
408 /**
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
409 * Retrieves the list of stock status types from a prpl.
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
410 *
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
411 * @param account The account the user is on.
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
412 * @param presence The presence for which we're going to get statuses
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
413 *
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
414 * @return List of statuses
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
415 */
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
416 GList *gaim_prpl_get_statuses(GaimAccount *account, GaimPresence *presence);
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
417
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
418 /*@}*/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
419
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
420 /**************************************************************************/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
421 /** @name Protocol Plugin Subsystem API */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
422 /**************************************************************************/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
423 /*@{*/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
424
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
425 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
426 * Finds a protocol plugin structure of the specified type.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
427 *
9000
b540c735a6ad [gaim-migrate @ 9775]
Luke Schierer <lschiere@pidgin.im>
parents: 8951
diff changeset
428 * @param id The protocol plugin;
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
429 */
7956
1b8261f374ea [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7650
diff changeset
430 GaimPlugin *gaim_find_prpl(const char *id);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
431
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
432 /*@}*/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
433
5944
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
434 #ifdef __cplusplus
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
435 }
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
436 #endif
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
437
2417
5473c8c5378d [gaim-migrate @ 2430]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2411
diff changeset
438 #endif /* _PRPL_H_ */