# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+cimport glib
+
+cimport account
+cimport connection
+cimport buddyicon
+
+cdef extern from "time.h":
+ ctypedef long int time_t
+
cdef extern from "libpurple/conversation.h":
- ctypedef struct PurpleConversation:
- pass
+ ctypedef struct PurpleConversationUiOps
+ ctypedef struct PurpleConversation
+ ctypedef struct PurpleConvIm
+ ctypedef struct PurpleConvChat
+ ctypedef struct PurpleConvChatBuddy
+ ctypedef struct PurpleConvMessage
- ctypedef struct PurpleConvIm:
- pass
+ ctypedef enum PurpleConversationType:
+ PURPLE_CONV_TYPE_UNKNOWN = 0
+ PURPLE_CONV_TYPE_IM
+ PURPLE_CONV_TYPE_CHAT
+ PURPLE_CONV_TYPE_MISC
+ PURPLE_CONV_TYPE_ANY
+
+ ctypedef enum PurpleConvUpdateType:
+ PURPLE_CONV_UPDATE_ADD = 0
+ PURPLE_CONV_UPDATE_REMOVE
+ PURPLE_CONV_UPDATE_ACCOUNT
+ PURPLE_CONV_UPDATE_TYPING
+ PURPLE_CONV_UPDATE_UNSEEN
+ PURPLE_CONV_UPDATE_LOGGING
+ PURPLE_CONV_UPDATE_TOPIC
+ PURPLE_CONV_ACCOUNT_ONLINE
+ PURPLE_CONV_ACCOUNT_OFFLINE
+ PURPLE_CONV_UPDATE_AWAY
+ PURPLE_CONV_UPDATE_ICON
+ PURPLE_CONV_UPDATE_TITLE
+ PURPLE_CONV_UPDATE_CHATLEFT
+ PURPLE_CONV_UPDATE_FEATURES
+
+ ctypedef enum PurpleTypingState:
+ PURPLE_NOT_TYPING = 0
+ PURPLE_TYPING
+ PURPLE_TYPED
ctypedef enum PurpleMessageFlags:
PURPLE_MESSAGE_SEND = 0x0001
PURPLE_MESSAGE_NO_LINKIFY = 0x4000
PURPLE_MESSAGE_INVISIBLE = 0x8000
+ ctypedef enum PurpleConvChatBuddyFlags:
+ PURPLE_CBFLAGS_NONE = 0x0000
+ PURPLE_CBFLAGS_VOICE = 0x0001
+ PURPLE_CBFLAGS_HALFOP = 0x0002
+ PURPLE_CBFLAGS_OP = 0x0004
+ PURPLE_CBFLAGS_FOUNDER = 0x0008
+ PURPLE_CBFLAGS_TYPING = 0x0010
+
ctypedef struct PurpleConversationUiOps:
void (*create_conversation) (PurpleConversation *conv)
void (*destroy_conversation) (PurpleConversation *conv)
- void (*write_chat) (PurpleConversation *conv, const_char_ptr who, const_char_ptr message, PurpleMessageFlags flags, time_t mtime)
- void (*write_im) (PurpleConversation *conv, const_char_ptr who, const_char_ptr message, PurpleMessageFlags flags, time_t mtime)
- void (*write_conv) (PurpleConversation *conv, const_char_ptr name, const_char_ptr alias, const_char_ptr message, PurpleMessageFlags flags, time_t mtime)
- void (*chat_add_users) (PurpleConversation *conv, GList *cbuddies, gboolean new_arrivals)
- void (*chat_rename_user) (PurpleConversation *conv, const_char_ptr old_name, const_char_ptr new_name, const_char_ptr new_alias)
- void (*chat_remove_users) (PurpleConversation *conv, GList *users)
- void (*chat_update_user) (PurpleConversation *conv, const_char_ptr user)
+ void (*write_chat) (PurpleConversation *conv, char *who, char *message, PurpleMessageFlags flags, time_t mtime)
+ void (*write_im) (PurpleConversation *conv, char *who, char *message, PurpleMessageFlags flags, time_t mtime)
+ void (*write_conv) (PurpleConversation *conv, char *name, char *alias, char *message, PurpleMessageFlags flags, time_t mtime)
+ void (*chat_add_users) (PurpleConversation *conv, glib.GList *cbuddies, glib.gboolean new_arrivals)
+ void (*chat_rename_user) (PurpleConversation *conv, char *old_name, char *new_name, char *new_alias)
+ void (*chat_remove_users) (PurpleConversation *conv, glib.GList *users)
+ void (*chat_update_user) (PurpleConversation *conv, char *user)
void (*present) (PurpleConversation *conv)
- gboolean (*has_focus) (PurpleConversation *conv)
- gboolean (*custom_smiley_add) (PurpleConversation *conv, const_char_ptr smile, gboolean remote)
- void (*custom_smiley_write) (PurpleConversation *conv, const_char_ptr smile, const_guchar_ptr data, gsize size)
- void (*custom_smiley_close) (PurpleConversation *conv, const_char_ptr smile)
- void (*send_confirm) (PurpleConversation *conv, const_char_ptr message)
+ glib.gboolean (*has_focus) (PurpleConversation *conv)
+ glib.gboolean (*custom_smiley_add) (PurpleConversation *conv, char *smile, glib.gboolean remote)
+ void (*custom_smiley_write) (PurpleConversation *conv, char *smile, glib.guchar *data, glib.gsize size)
+ void (*custom_smiley_close) (PurpleConversation *conv, char *smile)
+ void (*send_confirm) (PurpleConversation *conv, char *message)
+
+ ctypedef struct PurpleConvIm:
+ PurpleConversation *conv
+ PurpleTypingState typing_state
+ glib.guint typing_timeout
+ time_t type_again
+ glib.guint send_typed_timeout
+ buddyicon.PurpleBuddyIcon *icon
+
+ ctypedef struct PurpleConvChat:
+ PurpleConversation *conv
+ glib.GList *in_room
+ glib.GList *ignored
+ char *who
+ char *topic
+ int id
+ char *nick
+ glib.gboolean left
+
+ ctypedef struct PurpleConvChatBuddy:
+ char *name
+ char *alias
+ char *alias_key
+ glib.gboolean buddy
+ PurpleConvChatBuddyFlags flags
+
+ ctypedef struct PurpleConvMessage:
+ char *who
+ char *what
+ PurpleMessageFlags flags
+ time_t when
+ PurpleConversation *conv
+ char *alias
+
+ ctypedef union UnionType:
+ PurpleConvIm *im
+ PurpleConvChat *chat
+ void *misc
+
+ ctypedef struct PurpleConversation:
+ PurpleConversationType type
+ account.PurpleAccount *account
+ char *name
+ char *title
+ glib.gboolean logging
+ glib.GList *logs
+ UnionType u
+ PurpleConversationUiOps *ui_ops
+ void *ui_data
+ glib.GHashTable *data
+ connection.PurpleConnectionFlags features
+ glib.GList *message_history
void c_purple_conversations_init "purple_conversations_init" ()
void *c_purple_conversations_get_handle "purple_conversations_get_handle" ()
- PurpleConversation *c_purple_conversation_new "purple_conversation_new" (int type, PurpleAccount *account, const_char_ptr name)
+ PurpleConversation *c_purple_conversation_new "purple_conversation_new" (int type, account.PurpleAccount *account, char *name)
void c_purple_conversation_set_ui_ops "purple_conversation_set_ui_ops" (PurpleConversation *conv, PurpleConversationUiOps *ops)
void c_purple_conversations_set_ui_ops "purple_conversations_set_ui_ops" (PurpleConversationUiOps *ops)
PurpleConvIm *c_purple_conversation_get_im_data "purple_conversation_get_im_data" (PurpleConversation *conv)
- void c_purple_conv_im_send "purple_conv_im_send" (PurpleConvIm *im, const_char_ptr message)
+ char *c_purple_conversation_get_name "purple_conversation_get_name" (PurpleConversation *conv)
+ PurpleConversationType c_purple_conversation_get_type "purple_conversation_get_type" (PurpleConversation *conv)
+ account.PurpleAccount *c_purple_conversation_get_account "purple_conversation_get_account" (PurpleConversation *conv)
+ void c_purple_conv_im_send "purple_conv_im_send" (PurpleConvIm *im, char *message)
void c_purple_conversation_destroy "purple_conversation_destroy" (PurpleConversation *conv)