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