00001
00022 #ifndef _PURPLE_CMDS_H_
00023 #define _PURPLE_CMDS_H_
00024
00025 #include "conversation.h"
00026
00027
00029
00032 typedef enum _PurpleCmdPriority PurpleCmdPriority;
00033 typedef enum _PurpleCmdFlag PurpleCmdFlag;
00034 typedef enum _PurpleCmdStatus PurpleCmdStatus;
00035 typedef enum _PurpleCmdRet PurpleCmdRet;
00036
00037 enum _PurpleCmdStatus {
00038 PURPLE_CMD_STATUS_OK,
00039 PURPLE_CMD_STATUS_FAILED,
00040 PURPLE_CMD_STATUS_NOT_FOUND,
00041 PURPLE_CMD_STATUS_WRONG_ARGS,
00042 PURPLE_CMD_STATUS_WRONG_PRPL,
00043 PURPLE_CMD_STATUS_WRONG_TYPE,
00044 };
00045
00046 enum _PurpleCmdRet {
00047 PURPLE_CMD_RET_OK,
00048 PURPLE_CMD_RET_FAILED,
00049 PURPLE_CMD_RET_CONTINUE,
00050 };
00051
00052 #define PURPLE_CMD_FUNC(func) ((PurpleCmdFunc)func)
00053
00054 typedef PurpleCmdRet (*PurpleCmdFunc)(PurpleConversation *, const gchar *cmd,
00055 gchar **args, gchar **error, void *data);
00056 typedef guint PurpleCmdId;
00057
00058 enum _PurpleCmdPriority {
00059 PURPLE_CMD_P_VERY_LOW = -1000,
00060 PURPLE_CMD_P_LOW = 0,
00061 PURPLE_CMD_P_DEFAULT = 1000,
00062 PURPLE_CMD_P_PRPL = 2000,
00063 PURPLE_CMD_P_PLUGIN = 3000,
00064 PURPLE_CMD_P_ALIAS = 4000,
00065 PURPLE_CMD_P_HIGH = 5000,
00066 PURPLE_CMD_P_VERY_HIGH = 6000,
00067 };
00068
00069 enum _PurpleCmdFlag {
00070 PURPLE_CMD_FLAG_IM = 0x01,
00071 PURPLE_CMD_FLAG_CHAT = 0x02,
00072 PURPLE_CMD_FLAG_PRPL_ONLY = 0x04,
00073 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS = 0x08,
00074 };
00075
00076
00079 #ifdef __cplusplus
00080 extern "C" {
00081 #endif
00082
00083
00085
00125 PurpleCmdId purple_cmd_register(const gchar *cmd, const gchar *args, PurpleCmdPriority p, PurpleCmdFlag f,
00126 const gchar *prpl_id, PurpleCmdFunc func, const gchar *helpstr, void *data);
00127
00137 void purple_cmd_unregister(PurpleCmdId id);
00138
00157 PurpleCmdStatus purple_cmd_do_command(PurpleConversation *conv, const gchar *cmdline,
00158 const gchar *markup, gchar **errormsg);
00159
00171 GList *purple_cmd_list(PurpleConversation *conv);
00172
00185 GList *purple_cmd_help(PurpleConversation *conv, const gchar *cmd);
00186
00189 #ifdef __cplusplus
00190 }
00191 #endif
00192
00193 #endif