Added initial support for user-specified conversation callbacks.
[python-purple] / conversation_cbs.pxd
diff --git a/conversation_cbs.pxd b/conversation_cbs.pxd
new file mode 100644 (file)
index 0000000..3c5aec1
--- /dev/null
@@ -0,0 +1,163 @@
+#
+#  Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
+#
+#  This file is part of python-purple.
+#
+#  python-purple is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  python-purple is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+cimport purple
+
+cdef extern from *:
+    ctypedef char const_char "const char"
+    ctypedef glib.guchar const_guchar "const guchar"
+
+cdef extern from "time.h":
+    ctypedef long int time_t
+
+conversations_cbs = {}
+
+cdef void create_conversation (conversation.PurpleConversation *conv):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "create_conversation\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["create_conversation"])("create_conversation")
+    except KeyError:
+        pass
+
+cdef void destroy_conversation (conversation.PurpleConversation *conv):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "destroy_conversation\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["destroy_conversation"])("destroy_conversation")
+    except KeyError:
+        pass
+
+cdef void write_chat (conversation.PurpleConversation *conv, const_char *who,
+                      const_char *message, conversation.PurpleMessageFlags flags,
+                      time_t mtime):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "write_chat\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["write_chat"])("write_chat")
+    except KeyError:
+        pass
+
+cdef void write_im (conversation.PurpleConversation *conv, const_char *who,
+                    const_char *message, conversation.PurpleMessageFlags flags,
+                    time_t mtime):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "write_im\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["write_im"])("write_im")
+    except KeyError:
+        pass
+
+cdef void write_conv (conversation.PurpleConversation *conv, const_char *name,
+                      const_char *alias, const_char *message,
+                      conversation.PurpleMessageFlags flags, time_t mtime):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "write_conv\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["write_conv"])("write_conv")
+    except KeyError:
+        pass
+
+cdef void chat_add_users (conversation.PurpleConversation *conv,
+                          glib.GList *cbuddies, glib.gboolean new_arrivals):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "chat_add_users\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["chat_add_users"])("chat_add_users")
+    except KeyError:
+        pass
+
+cdef void chat_rename_user (conversation.PurpleConversation *conv,
+                            const_char *old_name, const_char *new_name,
+                            const_char *new_alias):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "chat_rename_user\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["chat_rename_user"])("chat_rename_user")
+    except KeyError:
+        pass
+
+cdef void chat_remove_users (conversation.PurpleConversation *conv,
+                             glib.GList *users):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "chat_remove_users\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["chat_remove_users"])("chat_remove_users")
+    except KeyError:
+        pass
+
+cdef void chat_update_user (conversation.PurpleConversation *conv, const_char *user):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "chat_update_user\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["chat_update_user"])("chat_update_user")
+    except KeyError:
+        pass
+
+cdef void present (conversation.PurpleConversation *conv):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "present\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["present"])("present")
+    except KeyError:
+        pass
+
+cdef glib.gboolean has_focus (conversation.PurpleConversation *conv):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "has_focus\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["has_focus"])("has_focus")
+        return False
+    except KeyError:
+        return False
+
+cdef glib.gboolean custom_smiley_add (conversation.PurpleConversation *conv,
+                                      const_char *smile, glib.gboolean remote):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "custom_smiley_add\n")
+    global conversations_cbs
+    try:
+        (<object>conversations_cbs["custom_smiley_add"])("custom_smiley_add")
+        return False
+    except KeyError:
+        return False
+
+cdef void custom_smiley_write (conversation.PurpleConversation *conv,
+                               const_char *smile, const_guchar *data,
+                               glib.gsize size):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "custom_smiley_write\n")
+    try:
+        (<object>conversations_cbs["custom_smiley_write"])("custom_smiley_write")
+    except KeyError:
+        pass
+
+
+cdef void custom_smiley_close (conversation.PurpleConversation *conv,
+                               const_char *smile):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "custom_smiley_close\n")
+    try:
+        (<object>conversations_cbs["custom_smiley_close"])("custom_smiley_close")
+    except KeyError:
+        pass
+
+cdef void send_confirm (conversation.PurpleConversation *conv, const_char *message):
+    debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "conversation", "send_confirm\n")
+    try:
+        (<object>conversations_cbs["send_confirm"])("send_confirm")
+    except KeyError:
+        pass