BFP, fixes structures definitions, categorizes each c-function into a .pxd file.
authorRagner Magalhaes <ragner.magalhaes@openbossa.org>
Tue, 2 Dec 2008 20:15:48 +0000 (20:15 +0000)
committerAnderson Briglia <anderson.briglia@openbossa.org>
Sat, 28 Feb 2009 21:11:09 +0000 (17:11 -0400)
FIXES:
 - Fixes some structures definitions.
 - Ordered correctly 'import' calls inside purple.pyx.
 - Moved c-functions defintions inside .pxd files.
 - Renamed class files into .pyx ones.

Signed-off-by: Bruno Abinader <bruno.abinader@indt.org.br>

git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1287 596f6dd7-e928-0410-a184-9e12fd12cf7e

23 files changed:
account.pyx [new file with mode: 0644]
buddy.pyx [new file with mode: 0644]
connection.pyx [new file with mode: 0644]
conversation.pyx [new file with mode: 0644]
core/account.pxd [deleted file]
core/buddy.pxd [deleted file]
core/connection.pxd [deleted file]
core/conversation.pxd [deleted file]
libpurple/account.pxd [new file with mode: 0644]
libpurple/blist.pxd [new file with mode: 0644]
libpurple/buddyicon.pxd [new file with mode: 0644]
libpurple/connection.pxd [new file with mode: 0644]
libpurple/conversation.pxd [new file with mode: 0644]
libpurple/core.pxd [new file with mode: 0644]
libpurple/debug.pxd [new file with mode: 0644]
libpurple/eventloop.pxd [new file with mode: 0644]
libpurple/plugin.pxd [new file with mode: 0644]
libpurple/pounce.pxd [new file with mode: 0644]
libpurple/prefs.pxd [new file with mode: 0644]
libpurple/proxy.pxd [new file with mode: 0644]
libpurple/status.pxd [new file with mode: 0644]
libpurple/util.pxd [new file with mode: 0644]
purple.pyx

diff --git a/account.pyx b/account.pyx
new file mode 100644 (file)
index 0000000..cafdf07
--- /dev/null
@@ -0,0 +1,68 @@
+#
+#  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/>.
+#
+
+class ProxyType:
+    def __init__(self):
+        self.PROXY_USE_GLOBAL = -1
+        self.PROXY_NONE = 0
+        self.PROXY_HTTP = 1
+        self.PROXY_SOCKS4 = 2
+        self.PROXY_SOCKS5 = 3
+        self.PROXY_USE_ENVVAR = 4
+
+
+class StatusPrimitive:
+    def __init__(self):
+        self.STAUTS_UNSET = 0
+        self.STATUS_OFFLINE = 1
+        self.STATUS_AVAILABLE = 2
+        self.STATUS_UNAVAILABLE = 3
+        self.STATUS_INVISIBLE = 4
+        self.STATUS_AWAY = 5
+        self.STATUS_EXTENDED_AWAY = 6
+        self.STATUS_MOBILE = 7
+        self.STATUS_TUNE = 8
+        self.STATUS_NUN_PRIMITIVE = 9
+
+cdef class Account:
+    """ Account class """
+    cdef PurpleAccount *__account
+    cdef PurpleSavedStatus *__sstatus
+
+    def __cinit__(self, const_char_ptr username, const_char_ptr protocol_id):
+        self.__account = c_purple_account_new(username, protocol_id)
+
+    def set_password(self, password):
+        c_purple_account_set_password(self.__account, password)
+
+    def set_enabled(self, ui, value):
+        c_purple_account_set_enabled(self.__account, ui, value)
+
+    def get_acc_username(self):
+        if self.__account:
+            return c_purple_account_get_username(self.__account)
+
+    def get_password(self):
+        if self.__account:
+            return c_purple_account_get_password(self.__account)
+
+    def set_status(self):
+        self.__sstatus = c_purple_savedstatus_new(NULL, StatusPrimitive().STATUS_AVAILABLE)
+        c_purple_savedstatus_activate(self.__sstatus)
+
diff --git a/buddy.pyx b/buddy.pyx
new file mode 100644 (file)
index 0000000..fa3be79
--- /dev/null
+++ b/buddy.pyx
@@ -0,0 +1,34 @@
+#
+#  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/>.
+#
+
+cdef class Buddy:
+    """ Buddy class """
+    cdef PurpleBuddy *__buddy
+
+    def __cinit__(self):
+        self.__buddy = NULL
+
+    def new_buddy(self, acc, const_char_ptr scr, const_char_ptr alias):
+        self.__buddy = c_purple_buddy_new(<PurpleAccount *>acc.__account, scr, alias)
+
+    def get_alias(self):
+        return c_purple_buddy_get_alias_only(self.__buddy)
+
+    def get_name(self):
+        return c_purple_buddy_get_name(self.__buddy)
diff --git a/connection.pyx b/connection.pyx
new file mode 100644 (file)
index 0000000..1531059
--- /dev/null
@@ -0,0 +1,25 @@
+#
+#  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/>.
+#
+
+cdef class Connection:
+    """ Connection class """
+    cdef PurpleConnection *__conn
+
+    def connect(self):
+        connect_to_signals_for_demonstration_purposes_only()
diff --git a/conversation.pyx b/conversation.pyx
new file mode 100644 (file)
index 0000000..ecb00bc
--- /dev/null
@@ -0,0 +1,62 @@
+#
+#  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/>.
+#
+
+cdef class Conversation:
+    """ Conversation class """
+    cdef PurpleConversation *__conv
+
+    def __cinit__(self):
+        purple_conversations_init()
+
+    def conversation_new(self, type, acc, const_char_ptr name):
+        self.__conv = purple_conversation_new(type, <PurpleAccount*>acc.__account, name)
+
+    def conversation_set_ui_ops(self):
+        cdef PurpleConversationUiOps c_conv_ui_ops
+        c_conv_ui_ops.create_conversation = NULL
+        c_conv_ui_ops.destroy_conversation = NULL
+        c_conv_ui_ops.write_chat = NULL
+        c_conv_ui_ops.write_im = NULL
+        c_conv_ui_ops.write_conv = NULL
+        c_conv_ui_ops.chat_add_users = NULL
+        c_conv_ui_ops.chat_rename_user = NULL
+        c_conv_ui_ops.chat_remove_users = NULL
+        c_conv_ui_ops.chat_update_user = NULL
+        c_conv_ui_ops.present = NULL
+        c_conv_ui_ops.has_focus = NULL
+        c_conv_ui_ops.custom_smiley_add = NULL
+        c_conv_ui_ops.custom_smiley_write = NULL
+        c_conv_ui_ops.custom_smiley_close = NULL
+        c_conv_ui_ops.send_confirm = NULL
+
+        purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops)
+
+    def conversation_write(self, const_char_ptr message):
+        purple_conv_im_send(purple_conversation_get_im_data(self.__conv), message)
+
+    def conversation_destroy(self):
+        purple_conversation_destroy(self.__conv)
+
+    def conversation_get_handle(self):
+        purple_conversations_get_handle()
+
+    def send_message(self, buddy, const_char_ptr message):
+        self.conversation_new(1, buddy.account, buddy.name)
+        self.conversation_set_ui_ops()
+        self.conversation_write(message)
diff --git a/core/account.pxd b/core/account.pxd
deleted file mode 100644 (file)
index 052b035..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#
-#  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/>.
-#
-
-cdef extern from "glib.h":
-    ctypedef int gboolean
-
-cdef extern from "libpurple/account.h":
-    cdef struct _PurpleAccount
-    ctypedef _PurpleAccount PurpleAccount
-
-    PurpleAccount *c_purple_account_new "purple_account_new" (const_char_ptr username, const_char_ptr protocol_id)
-    void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, const_char_ptr password)
-    const_char_ptr c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account)
-    void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, const_char_ptr ui, gboolean value)
-    const_char_ptr c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account)
-
-cdef extern from "libpurple/status.h":
-    ctypedef int PurpleStatusPrimitive
-
-    cdef struct _PurpleSavedStatus
-    ctypedef _PurpleSavedStatus PurpleSavedStatus
-
-    PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (const_char_ptr title, PurpleStatusPrimitive type)
-    void c_purple_savedstatus_activate "purple_savedstatus_activate" (PurpleSavedStatus *saved_status)
-
-cdef extern from "libpurple/proxy.h":
-    cdef struct PurpleProxyInfo
-
-    ctypedef int PurpleProxyType
-    PurpleProxyInfo *purple_proxy_info_new()
-    void c_purple_proxy_info_set_type "purple_proxy_info_set_type" (PurpleProxyInfo *info, PurpleProxyType type)
-    void c_purple_proxy_info_set_host "purple_proxy_info_set_host" (const_char_ptr host)
-    void c_purple_proxy_info_set_port "purple_proxy_info_set_port" (const_char_ptr port)
-
-
-class ProxyType:
-    def __init__(self):
-        self.PROXY_USE_GLOBAL = -1
-        self.PROXY_NONE = 0
-        self.PROXY_HTTP = 1
-        self.PROXY_SOCKS4 = 2
-        self.PROXY_SOCKS5 = 3
-        self.PROXY_USE_ENVVAR = 4
-
-
-class StatusPrimitive:
-    def __init__(self):
-        self.STAUTS_UNSET = 0
-        self.STATUS_OFFLINE = 1
-        self.STATUS_AVAILABLE = 2
-        self.STATUS_UNAVAILABLE = 3
-        self.STATUS_INVISIBLE = 4
-        self.STATUS_AWAY = 5
-        self.STATUS_EXTENDED_AWAY = 6
-        self.STATUS_MOBILE = 7
-        self.STATUS_TUNE = 8
-        self.STATUS_NUN_PRIMITIVE = 9
-
-cdef class Account:
-    """ Account class """
-    cdef PurpleAccount *__account
-    cdef PurpleSavedStatus *__sstatus
-
-    def __cinit__(self, const_char_ptr username, const_char_ptr protocol_id):
-        self.__account = c_purple_account_new(username, protocol_id)
-
-    def set_password(self, password):
-        c_purple_account_set_password(self.__account, password)
-
-    def set_enabled(self, ui, value):
-        c_purple_account_set_enabled(self.__account, ui, value)
-
-    def get_acc_username(self):
-        if self.__account:
-            return c_purple_account_get_username(self.__account)
-
-    def get_password(self):
-        if self.__account:
-            return c_purple_account_get_password(self.__account)
-
-    def set_status(self):
-        self.__sstatus = c_purple_savedstatus_new(NULL, StatusPrimitive().STATUS_AVAILABLE)
-        c_purple_savedstatus_activate(self.__sstatus)
-
diff --git a/core/buddy.pxd b/core/buddy.pxd
deleted file mode 100644 (file)
index 7d1a589..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-#  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/>.
-#
-
-cdef extern from "libpurple/purple.h":
-    ctypedef struct PurpleBlistNode:
-        pass
-
-    ctypedef struct PurpleBuddyIcon:
-        pass
-
-    ctypedef struct PurplePresence:
-        pass
-
-    ctypedef struct PurpleBuddy:
-        PurpleBlistNode node
-        char *name
-        char *alias
-        char *server_alias
-        void *proto_data
-        PurpleBuddyIcon *icon
-        PurpleAccount *account
-        PurplePresence *presence
-
-    PurpleBuddy *c_purple_buddy_new "purple_buddy_new" (PurpleAccount *account,
-            const_char_ptr screenname, const_char_ptr alias)
-
-    const_char_ptr c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy)
-    const_char_ptr c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy)
-
-cdef class Buddy:
-    """ Buddy class """
-    cdef PurpleBuddy *__buddy
-
-    def __cinit__(self):
-        self.__buddy = NULL
-
-    def new_buddy(self, acc, const_char_ptr scr, const_char_ptr alias):
-        self.__buddy = c_purple_buddy_new(<PurpleAccount *>acc.__account, scr, alias)
-
-    def get_alias(self):
-        return c_purple_buddy_get_alias_only(self.__buddy)
-
-    def get_name(self):
-        return c_purple_buddy_get_name(self.__buddy)
diff --git a/core/connection.pxd b/core/connection.pxd
deleted file mode 100644 (file)
index 48893da..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-#  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/>.
-#
-
-cdef extern from "libpurple/connection.h":
-    cdef struct PurpleConnection
-
-    void connect_to_signals_for_demonstration_purposes_only()
-
-cdef class Connection:
-    """ Connection class """
-    cdef PurpleConnection *__conn
-
-    def connect(self):
-        connect_to_signals_for_demonstration_purposes_only()
diff --git a/core/conversation.pxd b/core/conversation.pxd
deleted file mode 100644 (file)
index 26c2c89..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-#
-#  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/>.
-#
-
-cdef extern from "libpurple/conversation.h":
-    ctypedef struct PurpleConversation:
-        pass
-
-    ctypedef struct PurpleConvIm:
-        pass
-
-    ctypedef enum PurpleMessageFlags:
-        PURPLE_MESSAGE_SEND = 0x0001
-        PURPLE_MESSAGE_RECV = 0x0002
-        PURPLE_MESSAGE_SYSTEM = 0x0004
-        PURPLE_MESSAGE_AUTO_RESP = 0x0008
-        PURPLE_MESSAGE_ACTIVE_ONLY = 0x0010
-        PURPLE_MESSAGE_NICK = 0x0020
-        PURPLE_MESSAGE_NO_LOG = 0x0040
-        PURPLE_MESSAGE_WHISPER = 0x0080
-        PURPLE_MESSAGE_ERROR = 0x0200
-        PURPLE_MESSAGE_DELAYED = 0x0400
-        PURPLE_MESSAGE_RAW = 0x0800
-        PURPLE_MESSAGE_IMAGES = 0x1000
-        PURPLE_MESSAGE_NOTIFY = 0x2000
-        PURPLE_MESSAGE_NO_LINKIFY = 0x4000
-        PURPLE_MESSAGE_INVISIBLE = 0x8000
-
-    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 (*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)
-
-    void purple_conversations_init()
-    PurpleConversation *purple_conversation_new(int type, PurpleAccount *account, const_char_ptr name)
-    void purple_conversation_set_ui_ops(PurpleConversation *conv, PurpleConversationUiOps *ops)
-    PurpleConvIm *purple_conversation_get_im_data(PurpleConversation *conv)
-    void purple_conv_im_send(PurpleConvIm *im, const_char_ptr message)
-    void *purple_conversations_get_handle()
-    void purple_conversation_destroy(PurpleConversation *conv)
-
-cdef class Conversation:
-    """ Conversation class """
-    cdef PurpleConversation *__conv
-
-    def __cinit__(self):
-        purple_conversations_init()
-
-    def conversation_new(self, type, acc, const_char_ptr name):
-        self.__conv = purple_conversation_new(type, <PurpleAccount*>acc.__account, name)
-
-    def conversation_set_ui_ops(self):
-        cdef PurpleConversationUiOps c_conv_ui_ops
-        c_conv_ui_ops.create_conversation = NULL
-        c_conv_ui_ops.destroy_conversation = NULL
-        c_conv_ui_ops.write_chat = NULL
-        c_conv_ui_ops.write_im = NULL
-        c_conv_ui_ops.write_conv = NULL
-        c_conv_ui_ops.chat_add_users = NULL
-        c_conv_ui_ops.chat_rename_user = NULL
-        c_conv_ui_ops.chat_remove_users = NULL
-        c_conv_ui_ops.chat_update_user = NULL
-        c_conv_ui_ops.present = NULL
-        c_conv_ui_ops.has_focus = NULL
-        c_conv_ui_ops.custom_smiley_add = NULL
-        c_conv_ui_ops.custom_smiley_write = NULL
-        c_conv_ui_ops.custom_smiley_close = NULL
-        c_conv_ui_ops.send_confirm = NULL
-
-        purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops)
-
-    def conversation_write(self, const_char_ptr message):
-        purple_conv_im_send(purple_conversation_get_im_data(self.__conv), message)
-
-    def conversation_destroy(self):
-        purple_conversation_destroy(self.__conv)
-
-    def conversation_get_handle(self):
-        purple_conversations_get_handle()
-
-    def send_message(self, buddy, const_char_ptr message):
-        self.conversation_new(1, buddy.account, buddy.name)
-        self.conversation_set_ui_ops()
-        self.conversation_write(message)
diff --git a/libpurple/account.pxd b/libpurple/account.pxd
new file mode 100644 (file)
index 0000000..059ee6f
--- /dev/null
@@ -0,0 +1,29 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/account.h":
+    ctypedef struct PurpleAccount:
+        pass
+
+    PurpleAccount *c_purple_account_new "purple_account_new" (const_char_ptr username, const_char_ptr protocol_id)
+    void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, const_char_ptr password)
+    const_char_ptr c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account)
+    void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, const_char_ptr ui, gboolean value)
+    const_char_ptr c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account)
+    GList *c_purple_accounts_get_all_active "purple_accounts_get_all_active" ()
diff --git a/libpurple/blist.pxd b/libpurple/blist.pxd
new file mode 100644 (file)
index 0000000..36077f2
--- /dev/null
@@ -0,0 +1,39 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/blist.h":
+    ctypedef struct PurpleBlistNode:
+        pass
+
+    ctypedef struct PurpleBuddy:
+        pass
+
+    ctypedef struct PurpleBuddyList:
+        pass
+
+    void c_purple_blist_load "purple_blist_load" ()
+    PurpleBuddyList* c_purple_blist_new "purple_blist_new" ()
+
+    PurpleBuddy *c_purple_buddy_new "purple_buddy_new" (PurpleAccount *account,
+            const_char_ptr screenname, const_char_ptr alias)
+    const_char_ptr c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy)
+    const_char_ptr c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy)
+    PurpleBuddy *c_purple_find_buddy "purple_find_buddy" (PurpleAccount *account,
+            const_char_ptr name)
+    void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list)
diff --git a/libpurple/buddyicon.pxd b/libpurple/buddyicon.pxd
new file mode 100644 (file)
index 0000000..6c06970
--- /dev/null
@@ -0,0 +1,22 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/buddyicon.h":
+    ctypedef struct PurpleBuddyIcon:
+        pass
diff --git a/libpurple/connection.pxd b/libpurple/connection.pxd
new file mode 100644 (file)
index 0000000..5e2c99a
--- /dev/null
@@ -0,0 +1,24 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/connection.h":
+    ctypedef struct PurpleConnection:
+        pass
+
+    void connect_to_signals_for_demonstration_purposes_only()
diff --git a/libpurple/conversation.pxd b/libpurple/conversation.pxd
new file mode 100644 (file)
index 0000000..8df130f
--- /dev/null
@@ -0,0 +1,68 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/conversation.h":
+    ctypedef struct PurpleConversation:
+        pass
+
+    ctypedef struct PurpleConvIm:
+        pass
+
+    ctypedef enum PurpleMessageFlags:
+        PURPLE_MESSAGE_SEND = 0x0001
+        PURPLE_MESSAGE_RECV = 0x0002
+        PURPLE_MESSAGE_SYSTEM = 0x0004
+        PURPLE_MESSAGE_AUTO_RESP = 0x0008
+        PURPLE_MESSAGE_ACTIVE_ONLY = 0x0010
+        PURPLE_MESSAGE_NICK = 0x0020
+        PURPLE_MESSAGE_NO_LOG = 0x0040
+        PURPLE_MESSAGE_WHISPER = 0x0080
+        PURPLE_MESSAGE_ERROR = 0x0200
+        PURPLE_MESSAGE_DELAYED = 0x0400
+        PURPLE_MESSAGE_RAW = 0x0800
+        PURPLE_MESSAGE_IMAGES = 0x1000
+        PURPLE_MESSAGE_NOTIFY = 0x2000
+        PURPLE_MESSAGE_NO_LINKIFY = 0x4000
+        PURPLE_MESSAGE_INVISIBLE = 0x8000
+
+    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 (*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)
+
+    void purple_conversations_init()
+    PurpleConversation *purple_conversation_new(int type, PurpleAccount *account, const_char_ptr name)
+    void purple_conversation_set_ui_ops(PurpleConversation *conv, PurpleConversationUiOps *ops)
+    PurpleConvIm *purple_conversation_get_im_data(PurpleConversation *conv)
+    void purple_conv_im_send(PurpleConvIm *im, const_char_ptr message)
+    void *purple_conversations_get_handle()
+    void purple_conversation_destroy(PurpleConversation *conv)
+
diff --git a/libpurple/core.pxd b/libpurple/core.pxd
new file mode 100644 (file)
index 0000000..10803a2
--- /dev/null
@@ -0,0 +1,31 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/core.h":
+    ctypedef struct PurpleCoreUiOps:
+        void (*ui_prefs_init) ()
+        void (*debug_ui_init) ()
+        void (*ui_init) ()
+        void (*quit) ()
+        GHashTable* (*get_ui_info) ()
+
+    gboolean c_purple_core_init "purple_core_init" (const_char_ptr ui_name)
+    void c_purple_core_quit "purple_core_quit" ()
+    void c_purple_core_set_ui_ops "purple_core_set_ui_ops" (PurpleCoreUiOps *ops)
+    gboolean c_purple_core_ensure_single_instance "purple_core_ensure_single_instance" ()
diff --git a/libpurple/debug.pxd b/libpurple/debug.pxd
new file mode 100644 (file)
index 0000000..5132501
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/debug.h":
+    ctypedef enum PurpleDebugLevel:
+        PURPLE_DEBUG_ALL
+        PURPLE_DEBUG_MISC
+        PURPLE_DEBUG_INFO
+        PURPLE_DEBUG_WARNING
+        PURPLE_DEBUG_ERROR
+        PURPLE_DEBUG_FATAL
+
+    void c_purple_debug "purple_debug" (PurpleDebugLevel level, const_char_ptr category, const_char_ptr format)
+    void c_purple_debug_set_enabled "purple_debug_set_enabled" (gboolean debug_enabled)
diff --git a/libpurple/eventloop.pxd b/libpurple/eventloop.pxd
new file mode 100644 (file)
index 0000000..4e8f1d3
--- /dev/null
@@ -0,0 +1,35 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/eventloop.h":
+    ctypedef enum PurpleInputCondition:
+        PURPLE_INPUT_READ
+        PURPLE_INPUT_WRITE
+
+    ctypedef void (*PurpleInputFunction) (gpointer, gint, PurpleInputCondition)
+
+    ctypedef struct PurpleEventLoopUiOps:
+        guint (*timeout_add) (guint interval, GSourceFunc function, gpointer data)
+        gboolean (*timeout_remove) (guint handle)
+        guint (*input_add) (int fd, PurpleInputCondition cond, PurpleInputFunction func, gpointer user_data)
+        gboolean (*input_remove) (guint handle)
+        int (*input_get_error) (int fd, int *error)
+        guint (*timeout_add_seconds)(guint interval, GSourceFunc function, gpointer data)
+
+    void c_purple_eventloop_set_ui_ops "purple_eventloop_set_ui_ops" (PurpleEventLoopUiOps *ops)
diff --git a/libpurple/plugin.pxd b/libpurple/plugin.pxd
new file mode 100644 (file)
index 0000000..15f9428
--- /dev/null
@@ -0,0 +1,29 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/plugin.h":
+    ctypedef struct PurplePluginInfo:
+        char *id
+        char *name
+
+    ctypedef struct PurplePlugin:
+        PurplePluginInfo *info
+
+    void c_purple_plugins_add_search_path "purple_plugins_add_search_path" (const_char_ptr path)
+    GList *c_purple_plugins_get_protocols "purple_plugins_get_protocols" ()
diff --git a/libpurple/pounce.pxd b/libpurple/pounce.pxd
new file mode 100644 (file)
index 0000000..2fa9d5f
--- /dev/null
@@ -0,0 +1,21 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/pounce.h":
+    gboolean c_purple_pounces_load "purple_pounces_load" ()
diff --git a/libpurple/prefs.pxd b/libpurple/prefs.pxd
new file mode 100644 (file)
index 0000000..ea6958f
--- /dev/null
@@ -0,0 +1,24 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/prefs.h":
+    void c_purple_prefs_add_none "purple_prefs_add_none" (const_char_ptr name)
+    void c_purple_prefs_rename "purple_prefs_rename" (const_char_ptr oldname, const_char_ptr newname)
+    const_char_ptr c_purple_prefs_get_string "purple_prefs_get_string" (const_char_ptr name)
+    gboolean c_purple_prefs_load "purple_prefs_load" ()
diff --git a/libpurple/proxy.pxd b/libpurple/proxy.pxd
new file mode 100644 (file)
index 0000000..faefbae
--- /dev/null
@@ -0,0 +1,27 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/proxy.h":
+    cdef struct PurpleProxyInfo
+
+    ctypedef int PurpleProxyType
+    PurpleProxyInfo *purple_proxy_info_new()
+    void c_purple_proxy_info_set_type "purple_proxy_info_set_type" (PurpleProxyInfo *info, PurpleProxyType type)
+    void c_purple_proxy_info_set_host "purple_proxy_info_set_host" (const_char_ptr host)
+    void c_purple_proxy_info_set_port "purple_proxy_info_set_port" (const_char_ptr port)
diff --git a/libpurple/status.pxd b/libpurple/status.pxd
new file mode 100644 (file)
index 0000000..86a6554
--- /dev/null
@@ -0,0 +1,29 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/status.h":
+    ctypedef struct PurplePresence:
+        pass
+
+    ctypedef struct PurpleSavedStatus:
+        pass
+
+    ctypedef int PurpleStatusPrimitive
+    PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (const_char_ptr title, PurpleStatusPrimitive type)
+    void c_purple_savedstatus_activate "purple_savedstatus_activate" (PurpleSavedStatus *saved_status)
diff --git a/libpurple/util.pxd b/libpurple/util.pxd
new file mode 100644 (file)
index 0000000..612876e
--- /dev/null
@@ -0,0 +1,21 @@
+#
+#  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/>.
+#
+
+cdef extern from "libpurple/util.h":
+    void c_purple_util_set_user_dir "purple_util_set_user_dir" (char *dir)
index f5b7aa1..c012dd2 100644 (file)
@@ -19,8 +19,6 @@
 
 include "glib.pxd"
 
 
 include "glib.pxd"
 
-import ecore
-
 cdef extern from *:
     ctypedef char* const_char_ptr "const char *"
     ctypedef char* const_guchar_ptr "const guchar *"
 cdef extern from *:
     ctypedef char* const_char_ptr "const char *"
     ctypedef char* const_guchar_ptr "const guchar *"
@@ -28,87 +26,27 @@ cdef extern from *:
 cdef extern from "time.h":
     ctypedef long int time_t
 
 cdef extern from "time.h":
     ctypedef long int time_t
 
-cdef extern from "libpurple/blist.h":
-    ctypedef struct PurpleBuddyList:
-        pass
-
-    void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list)
-    void c_purple_blist_load "purple_blist_load" ()
-    PurpleBuddyList* c_purple_blist_new "purple_blist_new" ()
-
-cdef extern from "libpurple/core.h":
-    ctypedef struct PurpleCoreUiOps:
-        void (*ui_prefs_init) ()
-        void (*debug_ui_init) ()
-        void (*ui_init) ()
-        void (*quit) ()
-        GHashTable* (*get_ui_info) ()
-
-    gboolean c_purple_core_init "purple_core_init" (const_char_ptr ui_name)
-    void c_purple_core_quit "purple_core_quit" ()
-    void c_purple_core_set_ui_ops "purple_core_set_ui_ops" (PurpleCoreUiOps *ops)
-    gboolean c_purple_core_ensure_single_instance "purple_core_ensure_single_instance" ()
-
-cdef extern from "libpurple/debug.h":
-    ctypedef enum PurpleDebugLevel:
-        PURPLE_DEBUG_ALL
-        PURPLE_DEBUG_MISC
-        PURPLE_DEBUG_INFO
-        PURPLE_DEBUG_WARNING
-        PURPLE_DEBUG_ERROR
-        PURPLE_DEBUG_FATAL
-
-    void c_purple_debug "purple_debug" (PurpleDebugLevel level, const_char_ptr category, const_char_ptr format)
-    void c_purple_debug_set_enabled "purple_debug_set_enabled" (gboolean debug_enabled)
-
-cdef extern from "libpurple/eventloop.h":
-    ctypedef enum PurpleInputCondition:
-        PURPLE_INPUT_READ
-        PURPLE_INPUT_WRITE
-
-    ctypedef void (*PurpleInputFunction) (gpointer , gint, PurpleInputCondition)
-
-    ctypedef struct PurpleEventLoopUiOps:
-        guint (*timeout_add) (guint interval, GSourceFunc function, gpointer data)
-        gboolean (*timeout_remove) (guint handle)
-        guint (*input_add) (int fd, PurpleInputCondition cond, PurpleInputFunction func, gpointer user_data)
-        gboolean (*input_remove) (guint handle)
-        int (*input_get_error) (int fd, int *error)
-        guint (*timeout_add_seconds)(guint interval, GSourceFunc function, gpointer data)
-
-    void c_purple_eventloop_set_ui_ops "purple_eventloop_set_ui_ops" (PurpleEventLoopUiOps *ops)
-
-cdef extern from "libpurple/plugin.h":
-    ctypedef struct PurplePlugin
-
-    cdef struct _PurplePluginInfo:
-        char *id
-        char *name
-    ctypedef _PurplePluginInfo PurplePluginInfo
-
-    cdef struct _PurplePlugin:
-        PurplePluginInfo *info                # The plugin information.
-    ctypedef _PurplePlugin PurplePlugin
-
-    void c_purple_plugins_add_search_path "purple_plugins_add_search_path" (const_char_ptr path)
-    GList *c_purple_plugins_get_protocols "purple_plugins_get_protocols" ()
-
-cdef extern from "libpurple/pounce.h":
-    gboolean c_purple_pounces_load "purple_pounces_load" ()
-
-cdef extern from "libpurple/prefs.h":
-    void c_purple_prefs_add_none "purple_prefs_add_none" (const_char_ptr name)
-    void c_purple_prefs_rename "purple_prefs_rename" (const_char_ptr oldname, const_char_ptr newname)
-    const_char_ptr c_purple_prefs_get_string "purple_prefs_get_string" (const_char_ptr name)
-    gboolean c_purple_prefs_load "purple_prefs_load" ()
-
-cdef extern from "libpurple/util.h":
-    void c_purple_util_set_user_dir "purple_util_set_user_dir" (char *dir)
+include "libpurple/account.pxd"
+include "libpurple/buddyicon.pxd"
+include "libpurple/blist.pxd"
+include "libpurple/connection.pxd"
+include "libpurple/conversation.pxd"
+include "libpurple/core.pxd"
+include "libpurple/debug.pxd"
+include "libpurple/eventloop.pxd"
+include "libpurple/plugin.pxd"
+include "libpurple/pounce.pxd"
+include "libpurple/prefs.pxd"
+include "libpurple/proxy.pxd"
+include "libpurple/status.pxd"
+include "libpurple/util.pxd"
 
 cdef extern from "c_purple.h":
      guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data)
      void glib_main_loop()
 
 
 cdef extern from "c_purple.h":
      guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data)
      void glib_main_loop()
 
+import ecore
+
 __DEFAULT_PATH__ = "/tmp"
 __APP_NAME__ = "carman-purple-python"
 __APP_VERSION__ = "0.1"
 __DEFAULT_PATH__ = "/tmp"
 __APP_NAME__ = "carman-purple-python"
 __APP_VERSION__ = "0.1"
@@ -240,11 +178,10 @@ cdef class Purple:
         conn.connect()
 
 include "core/account.pxd"
         conn.connect()
 
 include "core/account.pxd"
-include "core/buddy.pxd"
-include "glib.pxd"
 #include "core/blist.pxd"
 #include "core/blist.pxd"
+include "core/buddy.pxd"
 include "core/connection.pxd"
 include "core/connection.pxd"
+include "core/conversation.pxd"
 #include "core/core.pxd"
 #include "core/idle.pxd"
 #include "core/pounce.pxd"
 #include "core/core.pxd"
 #include "core/idle.pxd"
 #include "core/pounce.pxd"
-include "core/conversation.pxd"