Mercurial > pidgin
annotate libpurple/cmds.h @ 20842:9da2ac85ce81
compute the new size by adding the difference to the actual allocated size
instead of requested size, to work around the fact that after the user
manually resizes the gtkpaned it ignores the requested size, leading to
a perpetually growing window (because the window thinks it needs to grow
to accomodate the lower_hbox, except the gtkpaned doesn't allow it to grow,
so the top gtkimhtml is grown instead)
also included some commented out code to make auto resize always happen
even after the user manually resizes, not sure if we should enable that.
author | Ka-Hing Cheung <khc@hxbc.us> |
---|---|
date | Tue, 09 Oct 2007 07:37:26 +0000 |
parents | baf144ea4f9b |
children | 7d0ef1e3ac4f |
rev | line source |
---|---|
15373
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:
19681
diff
changeset
|
4 */ |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19681
diff
changeset
|
5 |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19681
diff
changeset
|
6 /* Copyright (C) 2003 Timothy Ringenbach <omarvo@hotmail.com> |
15373
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 |
19681
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
15822
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15373
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 */ |
15822 | 23 #ifndef _PURPLE_CMDS_H_ |
24 #define _PURPLE_CMDS_H_ | |
15373
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 |
15822 | 33 typedef enum _PurpleCmdPriority PurpleCmdPriority; |
34 typedef enum _PurpleCmdFlag PurpleCmdFlag; | |
35 typedef enum _PurpleCmdStatus PurpleCmdStatus; | |
36 typedef enum _PurpleCmdRet PurpleCmdRet; | |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
37 |
15822 | 38 enum _PurpleCmdStatus { |
39 PURPLE_CMD_STATUS_OK, | |
40 PURPLE_CMD_STATUS_FAILED, | |
41 PURPLE_CMD_STATUS_NOT_FOUND, | |
42 PURPLE_CMD_STATUS_WRONG_ARGS, | |
43 PURPLE_CMD_STATUS_WRONG_PRPL, | |
44 PURPLE_CMD_STATUS_WRONG_TYPE, | |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
45 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
46 |
15822 | 47 enum _PurpleCmdRet { |
48 PURPLE_CMD_RET_OK, /**< Everything's okay. Don't look for another command to call. */ | |
49 PURPLE_CMD_RET_FAILED, /**< The command failed, but stop looking.*/ | |
50 PURPLE_CMD_RET_CONTINUE, /**< Continue, looking for other commands with the same name to call. */ | |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
51 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
52 |
15822 | 53 #define PURPLE_CMD_FUNC(func) ((PurpleCmdFunc)func) |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
54 |
15822 | 55 typedef PurpleCmdRet (*PurpleCmdFunc)(PurpleConversation *, const gchar *cmd, |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
56 gchar **args, gchar **error, void *data); |
15822 | 57 typedef guint PurpleCmdId; |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
58 |
15822 | 59 enum _PurpleCmdPriority { |
60 PURPLE_CMD_P_VERY_LOW = -1000, | |
61 PURPLE_CMD_P_LOW = 0, | |
62 PURPLE_CMD_P_DEFAULT = 1000, | |
63 PURPLE_CMD_P_PRPL = 2000, | |
64 PURPLE_CMD_P_PLUGIN = 3000, | |
65 PURPLE_CMD_P_ALIAS = 4000, | |
66 PURPLE_CMD_P_HIGH = 5000, | |
67 PURPLE_CMD_P_VERY_HIGH = 6000, | |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
68 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
69 |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
70 /** 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
|
71 * 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
|
72 * 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
|
73 * |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
74 * @see purple_cmd_register |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
75 */ |
15822 | 76 enum _PurpleCmdFlag { |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
77 /** Command is usable in IMs. */ |
15822 | 78 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
|
79 /** Command is usable in multi-user chats. */ |
15822 | 80 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
|
81 /** Command is usable only for a particular prpl. */ |
15822 | 82 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
|
83 /** Incorrect arguments to this command should be accepted anyway. */ |
15822 | 84 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS = 0x08, |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
85 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
86 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
87 |
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 #ifdef __cplusplus |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
91 extern "C" { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
92 #endif |
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 /** @name Commands API */ |
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 /*@{*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
98 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
99 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
100 * Register a new command with the core. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
101 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
102 * 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
|
103 * 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
|
104 * |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
105 * @param cmd The command. This should be a UTF-8 (or ASCII) string, with no spaces |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
106 * or other white space. |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
107 * @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
|
108 * 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
|
109 * 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
|
110 * 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
|
111 * 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
|
112 * 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
|
113 * <ul> |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
114 * <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
|
115 * <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
|
116 * <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
|
117 * 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
|
118 * <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
|
119 * </ul> |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
120 * 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
|
121 * 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
|
122 * 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
|
123 * 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
|
124 * #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
|
125 * @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
|
126 * 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
|
127 * called. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
128 * @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
|
129 * <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
|
130 * #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
|
131 * 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
|
132 * @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
|
133 * 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
|
134 * <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
|
135 * 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
|
136 * choice!). |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
137 * @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
|
138 * @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
|
139 * 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
|
140 * 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
|
141 * 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
|
142 * 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
|
143 * 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
|
144 * command name. |
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
145 * @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
|
146 * @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
|
147 * #purple_cmd_unregister, or @a 0 on failure. |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
148 */ |
15822 | 149 PurpleCmdId purple_cmd_register(const gchar *cmd, const gchar *args, PurpleCmdPriority p, PurpleCmdFlag f, |
150 const gchar *prpl_id, PurpleCmdFunc func, const gchar *helpstr, void *data); | |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
151 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
152 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
153 * Unregister a command with the core. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
154 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
155 * 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
|
156 * 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
|
157 * unloads itself. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
158 * |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
159 * @param id The #PurpleCmdId to unregister, as returned by #purple_cmd_register. |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
160 */ |
15822 | 161 void purple_cmd_unregister(PurpleCmdId id); |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
162 |
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 * Do a command. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
165 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
166 * 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
|
167 * if aliases are ever implemented. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
168 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
169 * @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
|
170 * @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
|
171 * 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
|
172 * 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
|
173 * 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
|
174 * @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
|
175 * 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
|
176 * 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
|
177 * @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
|
178 * 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
|
179 * @return A #PurpleCmdStatus indicated if the command succeeded or failed. |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
180 */ |
15822 | 181 PurpleCmdStatus purple_cmd_do_command(PurpleConversation *conv, const gchar *cmdline, |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
182 const gchar *markup, gchar **errormsg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
183 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
184 /** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
185 * List registered commands. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
186 * |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
187 * 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
|
188 * 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
|
189 * 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
|
190 * 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
|
191 * then. |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
192 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
193 * @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
|
194 * @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
|
195 * <tt>g_list_free()</tt>. |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
196 */ |
15822 | 197 GList *purple_cmd_list(PurpleConversation *conv); |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
198 |
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 * Get the help string for a command. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
201 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
202 * 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
|
203 * one node for each matching command. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
204 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
205 * @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
|
206 * @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
|
207 * commands if @c NULL. |
20133
baf144ea4f9b
Let's document more of cmds.h!
Will Thompson <will.thompson@collabora.co.uk>
parents:
20074
diff
changeset
|
208 * @return A <tt>GList</tt> of <tt>const char *</tt>s, which is the help string |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
209 * for that command. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
210 */ |
15822 | 211 GList *purple_cmd_help(PurpleConversation *conv, const gchar *cmd); |
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
212 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
213 /*@}*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
214 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
215 #ifdef __cplusplus |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
216 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
217 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
218 |
15822 | 219 #endif /* _PURPLE_CMDS_H_ */ |