Mercurial > pidgin.yaz
annotate libpurple/cmds.h @ 22405:9a12b7f5b1f5
Just write out the buddy icon file; there's no need to check to see if it exists. This is for the cache, and if the blist.xml gets out of sync with the cache on disk (for example, because the user moves the blist.xml file out of the way), the existing code will never update the cached icon again.
author | Evan Schoenberg <evan.s@dreskin.net> |
---|---|
date | Tue, 04 Mar 2008 23:53:44 +0000 |
parents | 7d0ef1e3ac4f |
children | 14b9a5231f63 |
rev | line source |
---|---|
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2 * @file cmds.h Commands API |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3 * @ingroup core |
20074
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
4 */ |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
5 |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
6 /* Copyright (C) 2003 Timothy Ringenbach <omarvo@hotmail.com> |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8 * This program is free software; you can redistribute it and/or modify |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
11 * (at your option) any later version. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
12 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
16 * GNU General Public License for more details. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
17 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
19 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
15823
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
21 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
22 */ |
15823 | 23 #ifndef _PURPLE_CMDS_H_ |
24 #define _PURPLE_CMDS_H_ | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
25 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
26 #include "conversation.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
27 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
28 /**************************************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
29 /** @name Structures */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
30 /**************************************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
31 /*@{*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
32 |
21930
7d0ef1e3ac4f
C++ doesn't really allow forward declarations of enums, and we
Mark Doliner <mark@kingant.net>
parents:
20133
diff
changeset
|
33 typedef enum _PurpleCmdStatus { |
15823 | 34 PURPLE_CMD_STATUS_OK, |
35 PURPLE_CMD_STATUS_FAILED, | |
36 PURPLE_CMD_STATUS_NOT_FOUND, | |
37 PURPLE_CMD_STATUS_WRONG_ARGS, | |
38 PURPLE_CMD_STATUS_WRONG_PRPL, | |
39 PURPLE_CMD_STATUS_WRONG_TYPE, | |
21930
7d0ef1e3ac4f
C++ doesn't really allow forward declarations of enums, and we
Mark Doliner <mark@kingant.net>
parents:
20133
diff
changeset
|
40 } PurpleCmdStatus; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
41 |
21930
7d0ef1e3ac4f
C++ doesn't really allow forward declarations of enums, and we
Mark Doliner <mark@kingant.net>
parents:
20133
diff
changeset
|
42 typedef enum _PurpleCmdRet { |
15823 | 43 PURPLE_CMD_RET_OK, /**< Everything's okay. Don't look for another command to call. */ |
44 PURPLE_CMD_RET_FAILED, /**< The command failed, but stop looking.*/ | |
45 PURPLE_CMD_RET_CONTINUE, /**< Continue, looking for other commands with the same name to call. */ | |
21930
7d0ef1e3ac4f
C++ doesn't really allow forward declarations of enums, and we
Mark Doliner <mark@kingant.net>
parents:
20133
diff
changeset
|
46 } PurpleCmdRet; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
47 |
15823 | 48 #define PURPLE_CMD_FUNC(func) ((PurpleCmdFunc)func) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
49 |
15823 | 50 typedef PurpleCmdRet (*PurpleCmdFunc)(PurpleConversation *, const gchar *cmd, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
51 gchar **args, gchar **error, void *data); |
15823 | 52 typedef guint PurpleCmdId; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
53 |
21930
7d0ef1e3ac4f
C++ doesn't really allow forward declarations of enums, and we
Mark Doliner <mark@kingant.net>
parents:
20133
diff
changeset
|
54 typedef enum _PurpleCmdPriority { |
15823 | 55 PURPLE_CMD_P_VERY_LOW = -1000, |
56 PURPLE_CMD_P_LOW = 0, | |
57 PURPLE_CMD_P_DEFAULT = 1000, | |
58 PURPLE_CMD_P_PRPL = 2000, | |
59 PURPLE_CMD_P_PLUGIN = 3000, | |
60 PURPLE_CMD_P_ALIAS = 4000, | |
61 PURPLE_CMD_P_HIGH = 5000, | |
62 PURPLE_CMD_P_VERY_HIGH = 6000, | |
21930
7d0ef1e3ac4f
C++ doesn't really allow forward declarations of enums, and we
Mark Doliner <mark@kingant.net>
parents:
20133
diff
changeset
|
63 } PurpleCmdPriority; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
64 |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
65 /** Flags used to set various properties of commands. Every command should |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
66 * have at least one of #PURPLE_CMD_FLAG_IM and #PURPLE_CMD_FLAG_CHAT set in |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
67 * order to be even slighly useful. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
68 * |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
69 * @see purple_cmd_register |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
70 */ |
21930
7d0ef1e3ac4f
C++ doesn't really allow forward declarations of enums, and we
Mark Doliner <mark@kingant.net>
parents:
20133
diff
changeset
|
71 typedef enum _PurpleCmdFlag { |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
72 /** Command is usable in IMs. */ |
15823 | 73 PURPLE_CMD_FLAG_IM = 0x01, |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
74 /** Command is usable in multi-user chats. */ |
15823 | 75 PURPLE_CMD_FLAG_CHAT = 0x02, |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
76 /** Command is usable only for a particular prpl. */ |
15823 | 77 PURPLE_CMD_FLAG_PRPL_ONLY = 0x04, |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
78 /** Incorrect arguments to this command should be accepted anyway. */ |
15823 | 79 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS = 0x08, |
21930
7d0ef1e3ac4f
C++ doesn't really allow forward declarations of enums, and we
Mark Doliner <mark@kingant.net>
parents:
20133
diff
changeset
|
80 } PurpleCmdFlag; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
81 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
82 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
83 /*@}*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
84 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
85 #ifdef __cplusplus |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
86 extern "C" { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
87 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
88 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
89 /**************************************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
90 /** @name Commands API */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
91 /**************************************************************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
92 /*@{*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
93 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
94 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
95 * Register a new command with the core. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
96 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
97 * The command will only happen if commands are enabled, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
98 * which is a UI pref. UIs don't have to support commands at all. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
99 * |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
100 * @param cmd The command. This should be a UTF-8 (or ASCII) string, with no spaces |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
101 * or other white space. |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
102 * @param args A string of characters describing to libpurple how to parse this |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
103 * command's arguments. If what the user types doesn't match this |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
104 * pattern, libpurple will keep looking for another command, unless |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
105 * the flag #PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS is passed in @a f. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
106 * This string should contain no whitespace, and use a single |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
107 * character for each argument. The recognized characters are: |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
108 * <ul> |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
109 * <li><tt>'w'</tt>: Matches a single word.</li> |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
110 * <li><tt>'W'</tt>: Matches a single word, with formatting.</li> |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
111 * <li><tt>'s'</tt>: Matches the rest of the arguments after this |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
112 * point, as a single string.</li> |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
113 * <li><tt>'S'</tt>: Same as <tt>'s'</tt> but with formatting.</li> |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
114 * </ul> |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
115 * If args is the empty string, then the command accepts no arguments. |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
116 * The args passed to the callback @a func will be a @c NULL |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
117 * terminated array of @c NULL terminated strings, and will always |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
118 * match the number of arguments asked for, unless |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
119 * #PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS is passed. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
120 * @param p This is the priority. Higher priority commands will be run first, |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
121 * and usually the first command will stop any others from being |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
122 * called. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
123 * @param f Flags specifying various options about this command, combined with |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
124 * <tt>|</tt> (bitwise OR). You need to at least pass one of |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
125 * #PURPLE_CMD_FLAG_IM or #PURPLE_CMD_FLAG_CHAT (you may pass both) in |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
126 * order for the command to ever actually be called. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
127 * @param prpl_id If the #PURPLE_CMD_FLAG_PRPL_ONLY flag is set, this is the id |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
128 * of the prpl to which the command applies (such as |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
129 * <tt>"prpl-msn"</tt>). If the flag is not set, this parameter |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
130 * is ignored; pass @c NULL (or a humourous string of your |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
131 * choice!). |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
132 * @param func This is the function to call when someone enters this command. |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
133 * @param helpstr a whitespace sensitive, UTF-8, HTML string describing how to |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
134 * use the command. The preferred format of this string is the |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
135 * command's name, followed by a space and any arguments it |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
136 * accepts (if it takes any arguments, otherwise no space), |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
137 * followed by a colon, two spaces, and a description of the |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
138 * command in sentence form. Do not include a slash before the |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
139 * command name. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
140 * @param data User defined data to pass to the #PurpleCmdFunc @a f. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
141 * @return A #PurpleCmdId, which is only used for calling |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
142 * #purple_cmd_unregister, or @a 0 on failure. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
143 */ |
15823 | 144 PurpleCmdId purple_cmd_register(const gchar *cmd, const gchar *args, PurpleCmdPriority p, PurpleCmdFlag f, |
145 const gchar *prpl_id, PurpleCmdFunc func, const gchar *helpstr, void *data); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
146 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
147 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
148 * Unregister a command with the core. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
149 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
150 * All registered commands must be unregistered, if they're registered by a plugin |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
151 * or something else that might go away. Normally this is called when the plugin |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
152 * unloads itself. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
153 * |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
154 * @param id The #PurpleCmdId to unregister, as returned by #purple_cmd_register. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
155 */ |
15823 | 156 void purple_cmd_unregister(PurpleCmdId id); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
157 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
158 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
159 * Do a command. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
160 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
161 * Normally the UI calls this to perform a command. This might also be useful |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
162 * if aliases are ever implemented. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
163 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
164 * @param conv The conversation the command was typed in. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
165 * @param cmdline The command the user typed (including all arguments) as a single string. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
166 * The caller doesn't have to do any parsing, except removing the command |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
167 * prefix, which the core has no knowledge of. cmd should not contain any |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
168 * formatting, and should be in plain text (no html entities). |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
169 * @param markup This is the same as cmd, but is the formatted version. It should be in |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
170 * HTML, with < > and &, at least, escaped to html entities, and should |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
171 * include both the default formatting and any extra manual formatting. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
172 * @param errormsg If the command failed errormsg is filled in with the appropriate error |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
173 * message. It must be freed by the caller with g_free(). |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
174 * @return A #PurpleCmdStatus indicated if the command succeeded or failed. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
175 */ |
15823 | 176 PurpleCmdStatus purple_cmd_do_command(PurpleConversation *conv, const gchar *cmdline, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
177 const gchar *markup, gchar **errormsg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
178 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
179 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
180 * List registered commands. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
181 * |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
182 * Returns a <tt>GList</tt> (which must be freed by the caller) of all commands |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
183 * that are valid in the context of @a conv, or all commands, if @a conv is @c |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
184 * NULL. Don't keep this list around past the main loop, or anything else that |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
185 * might unregister a command, as the <tt>const char *</tt>'s used get freed |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
186 * then. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
187 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
188 * @param conv The conversation, or @c NULL. |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
189 * @return A @c GList of <tt>const char *</tt>, which must be freed with |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
190 * <tt>g_list_free()</tt>. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
191 */ |
15823 | 192 GList *purple_cmd_list(PurpleConversation *conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
193 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
194 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
195 * Get the help string for a command. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
196 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
197 * Returns the help strings for a given command in the form of a GList, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
198 * one node for each matching command. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
199 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
200 * @param conv The conversation, or @c NULL for no context. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
201 * @param cmd The command. No wildcards accepted, but returns help for all |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
202 * commands if @c NULL. |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
203 * @return A <tt>GList</tt> of <tt>const char *</tt>s, which is the help string |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
204 * for that command. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
205 */ |
15823 | 206 GList *purple_cmd_help(PurpleConversation *conv, const gchar *cmd); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
207 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
208 /*@}*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
209 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
210 #ifdef __cplusplus |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
211 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
212 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
213 |
15823 | 214 #endif /* _PURPLE_CMDS_H_ */ |