cmds.h

Go to the documentation of this file.
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 /* _PURPLE_CMDS_H_ */