annotate src/prpl.h @ 12116:e75ef7aa913e

[gaim-migrate @ 14416] " This patch implements a replacement for the queuing system from 1.x. It also obsoletes a previous patch [#1338873] I submitted to prioritize the unseen states in gtk conversations. The attached envelope.png is ripped from the msgunread.png already included in gaim. It should be dropped in the pixmaps directory (Makefile.am is updated accordingly in this patch). The two separate queuing preferences from 1.x, queuing messages while away and queuing all new messages (from docklet), are replaced with a single 3-way preference for conversations. The new preference is "Hide new IM conversations". This preference can be set to never, away and always. When a gtk conversation is created, it may be placed in a hidden conversation window instead of being placed normally. This decision is based upon the preference and possibly the away state of the account the conversation is being created for. This *will* effect conversations the user explicitly requests to be created, so in these cases the caller must be sure to present the conversation to the user, using gaim_gtkconv_present_conversation(). This is done already in gtkdialogs.c which handles creating conversations requested by the user from gaim proper (menus, double-clicking on budy in blist, etc.). The main advantage to not queuing messages is that the conversations exist, the message is written to the conversation (and logged if appropriate) and the unseen state is set on the conversation. This means no additional features are needed to track whether there are queued messages or not, just use the unseen state on conversations. Since conversations may not be visible (messages "queued"), gaim proper needs some notification that there are messages waiting. I opted for a menutray icon that shows up when an im conversation has an unseen message. Clicking this icon will focus (and show if hidden) the first conversation with an unseen message. This is essentially the same behavior of the docklet in cvs right now, except that the icon is only visible when there is a conversation with an unread message. The api that is added is flexible enough to allow either the docklet or the new blist menutray icon to be visible for conversations of any/all types and for unseen messages >= any state. Currently they are set to only IM conversations and only unseen states >= TEXT (system messages and no log messages will not trigger blinking the docklet or showing the blist tray icon), but these could be made preferences relatively easily in the future. Other plugins could probably benefit as well: gaim_gtk_conversations_get_first_unseen(). There is probably some limit to comment size, so I'll stop rambling now. If anyone has more questions/comments, catch me in #gaim, here or on gaim-devel." committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Wed, 16 Nov 2005 18:17:01 +0000
parents e67993da8a22
children cbebda5f019c
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"
12024
e67993da8a22 [gaim-migrate @ 14317]
Sean Egan <seanegan@gmail.com>
parents: 11837
diff changeset
85 #include "media.h"
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
86 #include "roomlist.h"
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
87 #include "status.h"
11475
7fab28c991f3 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11462
diff changeset
88 #include "whiteboard.h"
8573
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8568
diff changeset
89
9713
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
90 struct proto_chat_entry {
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
91 char *label;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
92 char *identifier;
10475
94fd0bf8c4b1 [gaim-migrate @ 11762]
Mark Doliner <mark@kingant.net>
parents: 10447
diff changeset
93 gboolean required;
9713
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
94 gboolean is_int;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
95 int min;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
96 int max;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
97 gboolean secret;
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
98 };
db62420a53a2 [gaim-migrate @ 10574]
Mark Doliner <mark@kingant.net>
parents: 9584
diff changeset
99
6622
a4622f1fb5a1 [gaim-migrate @ 7146]
Luke Schierer <lschiere@pidgin.im>
parents: 6451
diff changeset
100 /**
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
101 * Protocol options
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
102 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
103 * 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
104 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
105 typedef enum
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 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
108 * Use a unique name, not an alias, for chat rooms.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
109 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
110 * Jabber lets you choose what name you want for chat.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
111 * 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
112 * it gets annoying.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
113 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
114 OPT_PROTO_UNIQUE_CHATNAME = 0x00000004,
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 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
117 * Chat rooms have topics.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
118 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
119 * IRC and Jabber support this.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
120 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
121 OPT_PROTO_CHAT_TOPIC = 0x00000008,
1370
776bb4c6c0b8 [gaim-migrate @ 1380]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
122
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
123 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
124 * Don't require passwords for sign-in.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
125 *
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
126 * Zephyr doesn't require passwords, so there's no
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
127 * need for a password prompt.
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
128 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
129 OPT_PROTO_NO_PASSWORD = 0x00000010,
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 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
132 * Notify on new mail.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
133 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
134 * MSN and Yahoo notify you when you have new mail.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
135 */
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
136 OPT_PROTO_MAIL_CHECK = 0x00000020,
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 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
139 * Images in IMs.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
140 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
141 * Oscar lets you send images in direct IMs.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
142 */
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
143 OPT_PROTO_IM_IMAGE = 0x00000040,
4557
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 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
146 * Allow passwords to be optional.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
147 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
148 * Passwords in IRC are optional, and are needed for certain
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
149 * functionality.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
150 */
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
151 OPT_PROTO_PASSWORD_OPTIONAL = 0x00000080,
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
152
5367
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
153 /**
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
154 * Allows font size to be specified in sane point size
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
155 *
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
156 * Probably just Jabber and Y!M
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
157 */
11358
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
158 OPT_PROTO_USE_POINTSIZE = 0x00000100,
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 /**
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
161 * Set the Register button active when screenname is not given.
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
162 *
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
163 * Gadu-Gadu doesn't need a screenname to register new account.
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
164 */
fb702c34794b [gaim-migrate @ 13580]
Bartoz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
165 OPT_PROTO_REGISTER_NOSCREENNAME = 0x00000200,
5367
fc0441fbf159 [gaim-migrate @ 5743]
Luke Schierer <lschiere@pidgin.im>
parents: 5234
diff changeset
166
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
167 } GaimProtocolOptions;
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
168
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
169 /**
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
170 * A protocol plugin information structure.
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
171 *
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
172 * Every protocol plugin initializes this structure. It is the gateway
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
173 * 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
174 * 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
175 */
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
176 struct _GaimPluginProtocolInfo
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
177 {
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
178 GaimProtocolOptions options; /**< Protocol options. */
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
179
5638
0bdfa28c678e [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
180 GList *user_splits; /* A GList of GaimAccountUserSplit */
0bdfa28c678e [gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
181 GList *protocol_options; /* A GList of GaimAccountOption */
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
182
9308
b3bda982996b [gaim-migrate @ 10116]
Sean Egan <seanegan@gmail.com>
parents: 9301
diff changeset
183 GaimBuddyIconSpec icon_spec; /* The icon spec. */
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
184
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
185 /**
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
186 * 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
187 * 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
188 * icon. This must be implemented.
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4668
diff changeset
189 */
6695
0c5637b5462e [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
190 const char *(*list_icon)(GaimAccount *account, GaimBuddy *buddy);
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4668
diff changeset
191
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4668
diff changeset
192 /**
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
193 * Fills the four char**'s with string identifiers for "emblems"
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
194 * that the UI will interpret and display as relevant
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4668
diff changeset
195 */
9952
8fdf9706c45d [gaim-migrate @ 10848]
Nathan Walp <nwalp@pidgin.im>
parents: 9950
diff changeset
196 void (*list_emblems)(GaimBuddy *buddy, const char **se, const char **sw,
8fdf9706c45d [gaim-migrate @ 10848]
Nathan Walp <nwalp@pidgin.im>
parents: 9950
diff changeset
197 const char **nw, const char **ne);
4722
534eaa4ead94 [gaim-migrate @ 5034]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
198
534eaa4ead94 [gaim-migrate @ 5034]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
199 /**
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
200 * Gets a short string representing this buddy's status. This will
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
201 * be shown on the buddy list.
4722
534eaa4ead94 [gaim-migrate @ 5034]
Sean Egan <seanegan@gmail.com>
parents: 4687
diff changeset
202 */
6695
0c5637b5462e [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
203 char *(*status_text)(GaimBuddy *buddy);
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
204
4724
b9e7ccf21f9c [gaim-migrate @ 5037]
Sean Egan <seanegan@gmail.com>
parents: 4722
diff changeset
205 /**
b9e7ccf21f9c [gaim-migrate @ 5037]
Sean Egan <seanegan@gmail.com>
parents: 4722
diff changeset
206 * Gets a string to put in the buddy list tooltip.
b9e7ccf21f9c [gaim-migrate @ 5037]
Sean Egan <seanegan@gmail.com>
parents: 4722
diff changeset
207 */
6695
0c5637b5462e [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
208 char *(*tooltip_text)(GaimBuddy *buddy);
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
209
10200
f086269582b1 [gaim-migrate @ 11317]
Mark Doliner <mark@kingant.net>
parents: 10162
diff changeset
210 /**
f086269582b1 [gaim-migrate @ 11317]
Mark Doliner <mark@kingant.net>
parents: 10162
diff changeset
211 * This must be implemented, and must add at least the offline
f086269582b1 [gaim-migrate @ 11317]
Mark Doliner <mark@kingant.net>
parents: 10162
diff changeset
212 * and online states.
f086269582b1 [gaim-migrate @ 11317]
Mark Doliner <mark@kingant.net>
parents: 10162
diff changeset
213 */
9950
ba085944efee [gaim-migrate @ 10846]
Tim Ringenbach <marv@pidgin.im>
parents: 9949
diff changeset
214 GList *(*status_types)(GaimAccount *account);
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
215
9030
7ab20f829190 [gaim-migrate @ 9806]
Mark Doliner <mark@kingant.net>
parents: 9015
diff changeset
216 GList *(*blist_node_menu)(GaimBlistNode *node);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
217 GList *(*chat_info)(GaimConnection *);
9754
4a8bf81b82ae [gaim-migrate @ 10621]
Luke Schierer <lschiere@pidgin.im>
parents: 9753
diff changeset
218 GHashTable *(*chat_info_defaults)(GaimConnection *, const char *chat_name);
1333
b332d8f46b84 [gaim-migrate @ 1343]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1318
diff changeset
219
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
220 /* All the server-related functions */
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
221
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
222 /** This must be implemented. */
11837
fa742ad8068c [gaim-migrate @ 14128]
Mark Doliner <mark@kingant.net>
parents: 11693
diff changeset
223 void (*login)(GaimAccount *);
10160
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
224
7a75a264ac20 [gaim-migrate @ 11243]
Mark Doliner <mark@kingant.net>
parents: 10104
diff changeset
225 /** This must be implemented. */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
226 void (*close)(GaimConnection *);
11693
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
227
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
228 /**
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
229 * This PRPL function should return a positive value on success.
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
230 * If the message is too big to be sent, return -E2BIG. If
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
231 * the account is not connected, return -ENOTCONN. If the
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
232 * PRPL is unable to send the message for another reason, return
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
233 * some other negative value. You can use one of the valid
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
234 * errno values, or just big something. If the message should
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
235 * not be echoed to the conversation window, return 0.
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
236 */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
237 int (*send_im)(GaimConnection *, const char *who,
6982
083d1e4a9c78 [gaim-migrate @ 7538]
Mark Doliner <mark@kingant.net>
parents: 6885
diff changeset
238 const char *message,
7118
bf630f7dfdcd [gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents: 7015
diff changeset
239 GaimConvImFlags flags);
11693
b91a84e7cbcb [gaim-migrate @ 13979]
Mark Doliner <mark@kingant.net>
parents: 11500
diff changeset
240
5954
fccc33d4b8fa [gaim-migrate @ 6398]
Mark Doliner <mark@kingant.net>
parents: 5946
diff changeset
241 void (*set_info)(GaimConnection *, const char *info);
6059
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
242 int (*send_typing)(GaimConnection *, const char *name, int typing);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
243 void (*get_info)(GaimConnection *, const char *who);
9949
ced29c7b396c [gaim-migrate @ 10845]
Luke Schierer <lschiere@pidgin.im>
parents: 9944
diff changeset
244 void (*set_status)(GaimAccount *account, GaimStatus *status);
ced29c7b396c [gaim-migrate @ 10845]
Luke Schierer <lschiere@pidgin.im>
parents: 9944
diff changeset
245
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
246 void (*set_idle)(GaimConnection *, int idletime);
5946
209cae24a51d [gaim-migrate @ 6387]
Christian Hammond <chipx86@chipx86.com>
parents: 5944
diff changeset
247 void (*change_passwd)(GaimConnection *, const char *old_pass,
209cae24a51d [gaim-migrate @ 6387]
Christian Hammond <chipx86@chipx86.com>
parents: 5944
diff changeset
248 const char *new_pass);
9285
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
249 void (*add_buddy)(GaimConnection *, GaimBuddy *buddy, GaimGroup *group);
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
250 void (*add_buddies)(GaimConnection *, GList *buddies, GList *groups);
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
251 void (*remove_buddy)(GaimConnection *, GaimBuddy *buddy, GaimGroup *group);
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
252 void (*remove_buddies)(GaimConnection *, GList *buddies, GList *groups);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
253 void (*add_permit)(GaimConnection *, const char *name);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
254 void (*add_deny)(GaimConnection *, const char *name);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
255 void (*rem_permit)(GaimConnection *, const char *name);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
256 void (*rem_deny)(GaimConnection *, const char *name);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
257 void (*set_permit_deny)(GaimConnection *);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
258 void (*join_chat)(GaimConnection *, GHashTable *components);
8562
e3c059c3d92d [gaim-migrate @ 9306]
Luke Schierer <lschiere@pidgin.im>
parents: 8170
diff changeset
259 void (*reject_chat)(GaimConnection *, GHashTable *components);
9917
e74eb0d11f86 [gaim-migrate @ 10809]
Luke Schierer <lschiere@pidgin.im>
parents: 9770
diff changeset
260 char *(*get_chat_name)(GHashTable *components);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
261 void (*chat_invite)(GaimConnection *, int id,
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
262 const char *who, const char *message);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
263 void (*chat_leave)(GaimConnection *, int id);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
264 void (*chat_whisper)(GaimConnection *, int id,
6059
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
265 const char *who, const char *message);
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
266 int (*chat_send)(GaimConnection *, int id, const char *message);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
267 void (*keepalive)(GaimConnection *);
1713
14caa7df478c [gaim-migrate @ 1723]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1626
diff changeset
268
2827
51999a36c0b1 [gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2773
diff changeset
269 /* new user registration */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
270 void (*register_user)(GaimAccount *);
2956
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2827
diff changeset
271
b68c648618a3 [gaim-migrate @ 2969]
Rob Flynn <gaim@robflynn.com>
parents: 2827
diff changeset
272 /* get "chat buddy" info and away message */
6059
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
273 void (*get_cb_info)(GaimConnection *, int, const char *who);
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
274 void (*get_cb_away)(GaimConnection *, int, const char *who);
2827
51999a36c0b1 [gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2773
diff changeset
275
3136
1bd472b7f7a2 [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3044
diff changeset
276 /* save/store buddy's alias on server list/roster */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
277 void (*alias_buddy)(GaimConnection *, const char *who,
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
278 const char *alias);
3136
1bd472b7f7a2 [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3044
diff changeset
279
1bd472b7f7a2 [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3044
diff changeset
280 /* change a buddy's group on a server list/roster */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5538
diff changeset
281 void (*group_buddy)(GaimConnection *, const char *who,
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
282 const char *old_group, const char *new_group);
3136
1bd472b7f7a2 [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3044
diff changeset
283
3348
dd34e0b40fed [gaim-migrate @ 3367]
Jim Seymour <jseymour>
parents: 3313
diff changeset
284 /* rename a group on a server list/roster */
9285
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
285 void (*rename_group)(GaimConnection *, const char *old_name,
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
286 GaimGroup *group, GList *moved_buddies);
3348
dd34e0b40fed [gaim-migrate @ 3367]
Jim Seymour <jseymour>
parents: 3313
diff changeset
287
6695
0c5637b5462e [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6622
diff changeset
288 void (*buddy_free)(GaimBuddy *);
2607
e0d4a23aac89 [gaim-migrate @ 2620]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2582
diff changeset
289
6059
d8cd876e613e [gaim-migrate @ 6509]
Mark Doliner <mark@kingant.net>
parents: 5954
diff changeset
290 void (*convo_closed)(GaimConnection *, const char *who);
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
291
7322
ab828b8c3f22 [gaim-migrate @ 7908]
Nathan Walp <nwalp@pidgin.im>
parents: 7262
diff changeset
292 const char *(*normalize)(const GaimAccount *, const char *);
6451
6f16136b41e5 [gaim-migrate @ 6960]
Christian Hammond <chipx86@chipx86.com>
parents: 6418
diff changeset
293
5842
dbed8c87f750 [gaim-migrate @ 6273]
Sean Egan <seanegan@gmail.com>
parents: 5730
diff changeset
294 void (*set_buddy_icon)(GaimConnection *, const char *filename);
6885
66dd420d3d23 [gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents: 6846
diff changeset
295
9285
7a8aa87164ae [gaim-migrate @ 10088]
Mark Doliner <mark@kingant.net>
parents: 9058
diff changeset
296 void (*remove_group)(GaimConnection *gc, GaimGroup *group);
7398
d60e1629ffde [gaim-migrate @ 7994]
Nathan Walp <nwalp@pidgin.im>
parents: 7322
diff changeset
297
d60e1629ffde [gaim-migrate @ 7994]
Nathan Walp <nwalp@pidgin.im>
parents: 7322
diff changeset
298 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
299
6fca0d9cc98b [gaim-migrate @ 8648]
Nathan Walp <nwalp@pidgin.im>
parents: 7956
diff changeset
300 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
301
38df71d58500 [gaim-migrate @ 8676]
Nathan Walp <nwalp@pidgin.im>
parents: 7971
diff changeset
302 GaimChat *(*find_blist_chat)(GaimAccount *account, const char *name);
8113
d60272410bd5 [gaim-migrate @ 8817]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
303
d60272410bd5 [gaim-migrate @ 8817]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
304 /* room listing prpl callbacks */
9999
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
305 GaimRoomlist *(*roomlist_get_list)(GaimConnection *gc);
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
306 void (*roomlist_cancel)(GaimRoomlist *list);
5d9c991549cd [gaim-migrate @ 10913]
Mark Doliner <mark@kingant.net>
parents: 9971
diff changeset
307 void (*roomlist_expand_category)(GaimRoomlist *list, GaimRoomlistRoom *category);
9466
d27156c9c876 [gaim-migrate @ 10291]
Luke Schierer <lschiere@pidgin.im>
parents: 9460
diff changeset
308
d27156c9c876 [gaim-migrate @ 10291]
Luke Schierer <lschiere@pidgin.im>
parents: 9460
diff changeset
309 /* file transfer callbacks */
d27156c9c876 [gaim-migrate @ 10291]
Luke Schierer <lschiere@pidgin.im>
parents: 9460
diff changeset
310 gboolean (*can_receive_file)(GaimConnection *, const char *who);
d27156c9c876 [gaim-migrate @ 10291]
Luke Schierer <lschiere@pidgin.im>
parents: 9460
diff changeset
311 void (*send_file)(GaimConnection *, const char *who, const char *filename);
11475
7fab28c991f3 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11462
diff changeset
312
7fab28c991f3 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11462
diff changeset
313 GaimWhiteboardPrplOps *whiteboard_prpl_ops;
12024
e67993da8a22 [gaim-migrate @ 14317]
Sean Egan <seanegan@gmail.com>
parents: 11837
diff changeset
314 GaimMediaPrplOps *media_prpl_ops;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
315 };
2246
933346315b9b [gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2232
diff changeset
316
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
317 #define GAIM_IS_PROTOCOL_PLUGIN(plugin) \
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
318 ((plugin)->info->type == GAIM_PLUGIN_PROTOCOL)
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
319
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
320 #define GAIM_PLUGIN_PROTOCOL_INFO(plugin) \
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5148
diff changeset
321 ((GaimPluginProtocolInfo *)(plugin)->info->extra_info)
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
322
5944
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
323 #ifdef __cplusplus
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
324 extern "C" {
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
325 #endif
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
326
9944
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 /** @name Protocol Plugin API */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
329 /**************************************************************************/
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 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
333 * 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
334 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
335 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
336 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
337 * @param account The account.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
338 * @param idle The user's idle state.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
339 * @param idle_time The user's idle time.
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 void gaim_prpl_got_account_idle(GaimAccount *account, gboolean idle,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
342 time_t idle_time);
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 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
345 * Notifies Gaim of an account's log-in time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
346 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
347 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
348 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
349 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
350 * @param login_time The user's log-in time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
351 */
10870
b75ce371c812 [gaim-migrate @ 12557]
Mark Doliner <mark@kingant.net>
parents: 10860
diff changeset
352 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
353
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 * Notifies Gaim that an account's status has changed.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
356 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
357 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
358 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
359 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
360 * @param status_id The status ID.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
361 * @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
362 * @param ... A NULL-terminated list of attribute IDs and values,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
363 * beginning with the value for @a attr_id.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
364 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
365 void gaim_prpl_got_account_status(GaimAccount *account,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
366 const char *status_id, const char *attr_id,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
367 ...);
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
368 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
369 * 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
370 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
371 * This is meant to be called from protocol plugins.
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 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
374 * @param name The screen name of the user.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
375 * @param idle The user's idle state.
10860
d01d81de94d8 [gaim-migrate @ 12543]
Mark Doliner <mark@kingant.net>
parents: 10475
diff changeset
376 * @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
377 * which the user became idle, in seconds since
d01d81de94d8 [gaim-migrate @ 12543]
Mark Doliner <mark@kingant.net>
parents: 10475
diff changeset
378 * the epoch.
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
379 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
380 void gaim_prpl_got_user_idle(GaimAccount *account, const char *name,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
381 gboolean idle, time_t idle_time);
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 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
384 * Notifies Gaim of a user's log-in time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
385 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
386 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
387 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
388 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
389 * @param name The screen name of the user.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
390 * @param login_time The user's log-in time.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
391 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
392 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
393 time_t login_time);
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
394
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
395 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
396 * Notifies Gaim that a user's status has changed.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
397 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
398 * This is meant to be called from protocol plugins.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
399 *
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
400 * @param account The account the user is on.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
401 * @param name The screen name of the user.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
402 * @param status_id The status ID.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
403 * @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
404 * @param ... A NULL-terminated list of attribute IDs and values,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
405 * beginning with the value for @a attr_id.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
406 */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
407 void gaim_prpl_got_user_status(GaimAccount *account, const char *name,
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
408 const char *status_id, const char *attr_id, ...);
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
409 /**
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
410 * Informs the server that an account's status changed.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
411 *
10447
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
412 * @param account The account the user is on.
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
413 * @param old_status The previous status.
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
414 * @param new_status The status that was activated, or deactivated
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
415 * (in the case of independent statuses).
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
416 */
10447
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
417 void gaim_prpl_change_account_status(GaimAccount *account,
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
418 GaimStatus *old_status,
6feef0a9098a [gaim-migrate @ 11712]
Mark Doliner <mark@kingant.net>
parents: 10400
diff changeset
419 GaimStatus *new_status);
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
420
10006
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
421 /**
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
422 * Retrieves the list of stock status types from a prpl.
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
423 *
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
424 * @param account The account the user is on.
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
425 * @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
426 *
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
427 * @return List of statuses
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
428 */
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
429 GList *gaim_prpl_get_statuses(GaimAccount *account, GaimPresence *presence);
9baedaca25c7 [gaim-migrate @ 10923]
Mark Doliner <mark@kingant.net>
parents: 9999
diff changeset
430
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
431 /*@}*/
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 /**************************************************************************/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
434 /** @name Protocol Plugin Subsystem API */
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
435 /**************************************************************************/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
436 /*@{*/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
437
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
438 /**
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
439 * Finds a protocol plugin structure of the specified type.
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
440 *
9000
b540c735a6ad [gaim-migrate @ 9775]
Luke Schierer <lschiere@pidgin.im>
parents: 8951
diff changeset
441 * @param id The protocol plugin;
4557
53ce3af93edb [gaim-migrate @ 4837]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
442 */
7956
1b8261f374ea [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7650
diff changeset
443 GaimPlugin *gaim_find_prpl(const char *id);
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
444
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
445 /*@}*/
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 9943
diff changeset
446
5944
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
447 #ifdef __cplusplus
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
448 }
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
449 #endif
158196b2db19 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
450
2417
5473c8c5378d [gaim-migrate @ 2430]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2411
diff changeset
451 #endif /* _PRPL_H_ */