All includes now uses cimport. Moved .pxd files from root dir to .pyx files, fixed...
authorRagner Magalhaes <ragner.magalhaes@openbossa.org>
Tue, 2 Dec 2008 20:20:15 +0000 (20:20 +0000)
committerAnderson Briglia <anderson.briglia@openbossa.org>
Sat, 28 Feb 2009 21:11:10 +0000 (17:11 -0400)
Hi all, sorry for the long patch.

FIXES:
 - Moved all .pxd files from root directory to .pyx ones.
 - Use "cimport <file>" instead of "include".
 - Fixed enum declarations.
 - Fixed directory declaration on setup.py.

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@1295 596f6dd7-e928-0410-a184-9e12fd12cf7e

26 files changed:
account.pxd [deleted file]
account.pyx [new file with mode: 0644]
buddy.pxd [deleted file]
buddy.pyx [new file with mode: 0644]
connection.pxd [deleted file]
connection.pyx [new file with mode: 0644]
conversation.pxd [deleted file]
conversation.pyx [new file with mode: 0644]
glib.pxd [deleted file]
libpurple/account.pxd
libpurple/blist.pxd
libpurple/conversation.pxd
libpurple/core.pxd
libpurple/debug.pxd
libpurple/eventloop.pxd
libpurple/glib.pxd [new file with mode: 0644]
libpurple/plugin.pxd
libpurple/pounce.pxd
libpurple/prefs.pxd
libpurple/proxy.pxd
libpurple/savedstatuses.pxd
libpurple/signals.pxd
libpurple/status.pxd
libpurple/util.pxd
purple.pyx
setup.py

diff --git a/account.pxd b/account.pxd
deleted file mode 100644 (file)
index b5c765f..0000000
+++ /dev/null
@@ -1,81 +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/>.
-#
-
-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)
-
-    def get_buddies_online(self, account):
-        cdef GSList *iter
-        cdef PurpleBuddy *buddy
-        buddies = []
-        iter = c_purple_find_buddies(self.__account, NULL)
-        while iter:
-            buddy = <PurpleBuddy *>iter.data
-            if buddy and \
-                c_purple_account_is_connected(c_purple_buddy_get_account(buddy)) and \
-                c_purple_presence_is_online(c_purple_buddy_get_presence(buddy)):
-                buddies += [buddy.name]
-            iter = iter.next
-        return buddies
diff --git a/account.pyx b/account.pyx
new file mode 100644 (file)
index 0000000..0e98548
--- /dev/null
@@ -0,0 +1,65 @@
+#
+#  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 glib
+
+cimport account
+cimport blist
+cimport savedstatuses
+cimport status
+
+cdef class Account:
+    """ Account class """
+    cdef account.PurpleAccount *__account
+    cdef savedstatuses.PurpleSavedStatus *__sstatus
+
+    def __cinit__(self, char *username, char *protocol_id):
+        self.__account = account.c_purple_account_new(username, protocol_id)
+
+    def set_password(self, password):
+        account.c_purple_account_set_password(self.__account, password)
+
+    def set_enabled(self, ui, value):
+        account.c_purple_account_set_enabled(self.__account, ui, value)
+
+    def get_acc_username(self):
+        if self.__account:
+            return account.c_purple_account_get_username(self.__account)
+
+    def get_password(self):
+        if self.__account:
+            return account.c_purple_account_get_password(self.__account)
+
+    def set_status(self):
+        self.__sstatus = savedstatuses.c_purple_savedstatus_new(NULL, status.PURPLE_STATUS_AVAILABLE)
+        savedstatuses.c_purple_savedstatus_activate(self.__sstatus)
+
+    def get_buddies_online(self, acc):
+        cdef glib.GSList *iter
+        cdef blist.PurpleBuddy *buddy
+        buddies = []
+        iter = blist.c_purple_find_buddies(self.__account, NULL)
+        while iter:
+            buddy = <blist.PurpleBuddy *> iter.data
+            if <object> buddy and \
+                account.c_purple_account_is_connected(blist.c_purple_buddy_get_account(buddy)) and \
+                status.c_purple_presence_is_online(blist.c_purple_buddy_get_presence(buddy)):
+                buddies += [buddy.name]
+            iter = iter.next
+        return buddies
diff --git a/buddy.pxd b/buddy.pxd
deleted file mode 100644 (file)
index fa3be79..0000000
--- a/buddy.pxd
+++ /dev/null
@@ -1,34 +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 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/buddy.pyx b/buddy.pyx
new file mode 100644 (file)
index 0000000..33d36b7
--- /dev/null
+++ b/buddy.pyx
@@ -0,0 +1,36 @@
+#
+#  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 blist
+
+cdef class Buddy:
+    """ Buddy class """
+    cdef blist.PurpleBuddy *__buddy
+
+    def __cinit__(self):
+        self.__buddy = NULL
+
+    def new_buddy(self, acc, char *scr, char *alias):
+        self.__buddy = blist.c_purple_buddy_new(<account.PurpleAccount *>acc.__account, scr, alias)
+
+    def get_alias(self):
+        return blist.c_purple_buddy_get_alias_only(self.__buddy)
+
+    def get_name(self):
+        return blist.c_purple_buddy_get_name(self.__buddy)
diff --git a/connection.pxd b/connection.pxd
deleted file mode 100644 (file)
index 1531059..0000000
+++ /dev/null
@@ -1,25 +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 class Connection:
-    """ Connection class """
-    cdef PurpleConnection *__conn
-
-    def connect(self):
-        connect_to_signals_for_demonstration_purposes_only()
diff --git a/connection.pyx b/connection.pyx
new file mode 100644 (file)
index 0000000..2e9a8f4
--- /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/>.
+#
+
+cimport connection
+
+cdef class Connection:
+    """ Connection class """
+    cdef connection.PurpleConnection *__conn
+
+    def connect(self):
+        connect_to_signals_for_demonstration_purposes_only()
diff --git a/conversation.pxd b/conversation.pxd
deleted file mode 100644 (file)
index ee3b26c..0000000
+++ /dev/null
@@ -1,62 +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 class Conversation:
-    """ Conversation class """
-    cdef PurpleConversation *__conv
-
-    def __cinit__(self):
-        c_purple_conversations_init()
-
-    def conversation_new(self, type, acc, const_char_ptr name):
-        self.__conv = c_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
-
-        c_purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops)
-
-    def conversation_write(self, const_char_ptr message):
-        c_purple_conv_im_send(c_purple_conversation_get_im_data(self.__conv), message)
-
-    def conversation_destroy(self):
-        c_purple_conversation_destroy(self.__conv)
-
-    def conversation_get_handle(self):
-        c_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/conversation.pyx b/conversation.pyx
new file mode 100644 (file)
index 0000000..a00d0ed
--- /dev/null
@@ -0,0 +1,64 @@
+#
+#  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 conversation
+
+cdef class Conversation:
+    """ Conversation class """
+    cdef conversation.PurpleConversation *__conv
+
+    def __cinit__(self):
+        conversation.c_purple_conversations_init()
+
+    def conversation_new(self, type, acc, char *name):
+        self.__conv = conversation.c_purple_conversation_new(type, <account.PurpleAccount*>acc.__account, name)
+
+    def conversation_set_ui_ops(self):
+        cdef conversation.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
+
+        conversation.c_purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops)
+
+    def conversation_write(self, char *message):
+        conversation.c_purple_conv_im_send(conversation.c_purple_conversation_get_im_data(self.__conv), message)
+
+    def conversation_destroy(self):
+        conversation.c_purple_conversation_destroy(self.__conv)
+
+    def conversation_get_handle(self):
+        conversation.c_purple_conversations_get_handle()
+
+    def send_message(self, buddy, char *message):
+        self.conversation_new(1, buddy.account, buddy.name)
+        self.conversation_set_ui_ops()
+        self.conversation_write(message)
diff --git a/glib.pxd b/glib.pxd
deleted file mode 100644 (file)
index e651a95..0000000
--- a/glib.pxd
+++ /dev/null
@@ -1,62 +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 void *gpointer
-    ctypedef void *gconstpointer
-    ctypedef int gint
-    ctypedef unsigned int guint
-    ctypedef unsigned long gulong
-    ctypedef gint gboolean
-    ctypedef gboolean (*GSourceFunc) (gpointer data)
-    ctypedef unsigned int gsize
-
-    ctypedef struct GHashTable:
-        pass
-
-    ctypedef struct GMainContext:
-        pass
-
-    struct _GSList:
-        gpointer data
-        _GSList *next
-    ctypedef _GSList GSList
-
-    struct _GList:
-        gpointer data
-        _GList *next
-        _GList *prev
-    ctypedef _GList GList
-
-    ctypedef guint GHashFunc (gconstpointer)
-    ctypedef gboolean GEqualFunc (gconstpointer, gconstpointer)
-
-    gboolean g_str_equal (gconstpointer, gconstpointer)
-    guint g_str_hash (gconstpointer)
-
-    GHashTable *g_hash_table_new (GHashFunc, GEqualFunc)
-    void g_hash_table_insert (GHashTable*, gpointer, gpointer)
-    void g_hash_table_destroy (GHashTable*)
-
-    guint g_timeout_add(guint interval, GSourceFunc function, gpointer data)
-    guint g_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data)
-
-    gboolean g_main_context_iteration (GMainContext *context, gboolean may_block)
-
-    gboolean g_source_remove(guint tag)
index 69d6eff..bbda93a 100644 (file)
@@ -17,6 +17,8 @@
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 cdef extern from "libpurple/account.h":
     ctypedef struct PurpleAccount:
         char* username
@@ -24,11 +26,11 @@ cdef extern from "libpurple/account.h":
     ctypedef struct PurpleAccountUiOps:
         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" ()
+    PurpleAccount *c_purple_account_new "purple_account_new" (char *username, char *protocol_id)
+    void c_purple_account_set_password "purple_account_set_password" (PurpleAccount *account, char *password)
+    char *c_purple_account_get_password "purple_account_get_password" (PurpleAccount *account)
+    void c_purple_account_set_enabled "purple_account_set_enabled" (PurpleAccount *account, char *ui, glib.gboolean value)
+    char *c_purple_account_get_username "purple_account_get_username" (PurpleAccount *account)
+    glib.GList *c_purple_accounts_get_all_active "purple_accounts_get_all_active" ()
     void c_purple_accounts_set_ui_ops "purple_accounts_set_ui_ops" (PurpleAccountUiOps *ops)
-    gboolean c_purple_account_is_connected "purple_account_is_connected" (PurpleAccount *account)
+    glib.gboolean c_purple_account_is_connected "purple_account_is_connected" (PurpleAccount *account)
index 2c1ffff..37780fe 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+cimport account
+cimport status
+
 cdef extern from "libpurple/blist.h":
     ctypedef struct PurpleBlistNode:
         pass
@@ -24,11 +28,9 @@ cdef extern from "libpurple/blist.h":
     ctypedef struct PurpleBlistUiOps:
         pass
 
-    cdef struct _PurpleBuddy:
+    ctypedef struct PurpleBuddy:
         char *name
 
-    ctypedef _PurpleBuddy PurpleBuddy
-
     ctypedef struct PurpleBuddyList:
         pass
 
@@ -40,13 +42,12 @@ cdef extern from "libpurple/blist.h":
     PurpleBuddyList* c_purple_blist_new "purple_blist_new" ()
     void c_purple_blist_set_ui_ops "purple_blist_set_ui_ops" (PurpleBlistUiOps *ops)
 
-    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)
+    PurpleBuddy *c_purple_buddy_new "purple_buddy_new" (account.PurpleAccount *account,
+            char *screenname, char *alias)
+    char *c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy)
+    char *c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy)
+    PurpleBuddy *c_purple_find_buddy "purple_find_buddy" (account.PurpleAccount *account, char *name)
     void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list)
-    GSList *c_purple_find_buddies "purple_find_buddies" (PurpleAccount *account, const_char_ptr name)
-    PurpleAccount *c_purple_buddy_get_account "purple_buddy_get_account" (PurpleBuddy *buddy)
-    PurplePresence *c_purple_buddy_get_presence "purple_buddy_get_presence" (PurpleBuddy *buddy)
+    glib.GSList *c_purple_find_buddies "purple_find_buddies" (account.PurpleAccount *account, char *name)
+    account.PurpleAccount *c_purple_buddy_get_account "purple_buddy_get_account" (PurpleBuddy *buddy)
+    status.PurplePresence *c_purple_buddy_get_presence "purple_buddy_get_presence" (PurpleBuddy *buddy)
index e4710b7..8932eb4 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
+cimport account
+
+cdef extern from "time.h":
+    ctypedef long int time_t
+
 cdef extern from "libpurple/conversation.h":
     ctypedef struct PurpleConversation:
         pass
@@ -44,25 +51,25 @@ cdef extern from "libpurple/conversation.h":
     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)
 
     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)
+    void c_purple_conv_im_send "purple_conv_im_send" (PurpleConvIm *im, char *message)
     void c_purple_conversation_destroy "purple_conversation_destroy" (PurpleConversation *conv)
index 10803a2..c5348b3 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 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) ()
+        glib.GHashTable* (*get_ui_info) ()
 
-    gboolean c_purple_core_init "purple_core_init" (const_char_ptr ui_name)
+    glib.gboolean c_purple_core_init "purple_core_init" (char *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" ()
+    glib.gboolean c_purple_core_ensure_single_instance "purple_core_ensure_single_instance" ()
index 5132501..52dc9e9 100644 (file)
@@ -17,6 +17,8 @@
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 cdef extern from "libpurple/debug.h":
     ctypedef enum PurpleDebugLevel:
         PURPLE_DEBUG_ALL
@@ -26,5 +28,5 @@ cdef extern from "libpurple/debug.h":
         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)
+    void c_purple_debug "purple_debug" (PurpleDebugLevel level, char *category, char *format)
+    void c_purple_debug_set_enabled "purple_debug_set_enabled" (glib.gboolean debug_enabled)
index 4e8f1d3..f48d681 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 cdef extern from "libpurple/eventloop.h":
     ctypedef enum PurpleInputCondition:
         PURPLE_INPUT_READ
         PURPLE_INPUT_WRITE
 
-    ctypedef void (*PurpleInputFunction) (gpointer, gint, PurpleInputCondition)
+    ctypedef void (*PurpleInputFunction) (glib.gpointer, glib.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)
+        glib.guint (*timeout_add) (glib.guint interval, glib.GSourceFunc function, glib.gpointer data)
+        glib.gboolean (*timeout_remove) (glib.guint handle)
+        glib.guint (*input_add) (int fd, PurpleInputCondition cond, PurpleInputFunction func, glib.gpointer user_data)
+        glib.gboolean (*input_remove) (glib.guint handle)
         int (*input_get_error) (int fd, int *error)
-        guint (*timeout_add_seconds)(guint interval, GSourceFunc function, gpointer data)
+        glib.guint (*timeout_add_seconds) (glib.guint interval, glib.GSourceFunc function, glib.gpointer data)
 
     void c_purple_eventloop_set_ui_ops "purple_eventloop_set_ui_ops" (PurpleEventLoopUiOps *ops)
diff --git a/libpurple/glib.pxd b/libpurple/glib.pxd
new file mode 100644 (file)
index 0000000..4038da3
--- /dev/null
@@ -0,0 +1,64 @@
+#
+#  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 void *gpointer
+    ctypedef void *gconstpointer
+    ctypedef int gint
+    ctypedef unsigned int guint
+    ctypedef unsigned long gulong
+    ctypedef gint gboolean
+    ctypedef gboolean (*GSourceFunc) (gpointer data)
+    ctypedef unsigned int gsize
+    ctypedef char gchar
+    ctypedef unsigned char guchar
+
+    ctypedef struct GHashTable:
+        pass
+
+    ctypedef struct GMainContext:
+        pass
+
+    struct _GSList:
+        gpointer data
+        _GSList *next
+    ctypedef _GSList GSList
+
+    struct _GList:
+        gpointer data
+        _GList *next
+        _GList *prev
+    ctypedef _GList GList
+
+    ctypedef guint GHashFunc (gconstpointer)
+    ctypedef gboolean GEqualFunc (gconstpointer, gconstpointer)
+
+    gboolean g_str_equal (gconstpointer, gconstpointer)
+    guint g_str_hash (gconstpointer)
+
+    GHashTable *g_hash_table_new (GHashFunc, GEqualFunc)
+    void g_hash_table_insert (GHashTable*, gpointer, gpointer)
+    void g_hash_table_destroy (GHashTable*)
+
+    guint g_timeout_add(guint interval, GSourceFunc function, gpointer data)
+    guint g_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data)
+
+    gboolean g_main_context_iteration (GMainContext *context, gboolean may_block)
+
+    gboolean g_source_remove(guint tag)
index 15f9428..5e5343e 100644 (file)
@@ -17,6 +17,8 @@
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 cdef extern from "libpurple/plugin.h":
     ctypedef struct PurplePluginInfo:
         char *id
@@ -25,5 +27,5 @@ cdef extern from "libpurple/plugin.h":
     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" ()
+    void c_purple_plugins_add_search_path "purple_plugins_add_search_path" (char *path)
+    glib.GList *c_purple_plugins_get_protocols "purple_plugins_get_protocols" ()
index 2fa9d5f..8d63ad2 100644 (file)
@@ -17,5 +17,7 @@
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 cdef extern from "libpurple/pounce.h":
-    gboolean c_purple_pounces_load "purple_pounces_load" ()
+    glib.gboolean c_purple_pounces_load "purple_pounces_load" ()
index ea6958f..dc96fce 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 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" ()
+    void c_purple_prefs_add_none "purple_prefs_add_none" (char *name)
+    void c_purple_prefs_rename "purple_prefs_rename" (char *oldname, char *newname)
+    char *c_purple_prefs_get_string "purple_prefs_get_string" (char *name)
+    glib.gboolean c_purple_prefs_load "purple_prefs_load" ()
index 59e7e4b..4644913 100644 (file)
@@ -24,5 +24,5 @@ cdef extern from "libpurple/proxy.h":
 
     PurpleProxyInfo *c_purple_proxy_info_new "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)
+    void c_purple_proxy_info_set_host "purple_proxy_info_set_host" (char *host)
+    void c_purple_proxy_info_set_port "purple_proxy_info_set_port" (char *port)
index d6430e8..7071d2f 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport status
+
 cdef extern from "libpurple/savedstatuses.h":
     ctypedef struct PurpleSavedStatus:
         pass
 
-    PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (const_char_ptr title, PurpleStatusPrimitive type)
+    PurpleSavedStatus *c_purple_savedstatus_new "purple_savedstatus_new" (char *title, status.PurpleStatusPrimitive type)
     void c_purple_savedstatus_activate "purple_savedstatus_activate" (PurpleSavedStatus *saved_status)
index 569f654..9f4135c 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 cdef extern from "libpurple/signals.h":
     ctypedef void (*PurpleCallback) ()
 
-    gulong c_purple_signal_connect "purple_signal_connect" (void *instance,
-            const_char_ptr signal, void *handle, PurpleCallback func,
+    glib.gulong c_purple_signal_connect "purple_signal_connect" (void *instance,
+            char *signal, void *handle, PurpleCallback func,
             void *data)
     void c_purple_signal_disconnect "purple_signal_disconnect" (void *instance,
-            const_char_ptr signal, void *handle, PurpleCallback func)
+            char *signal, void *handle, PurpleCallback func)
index 2713158..1460ffa 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+cimport glib
+
 cdef extern from "libpurple/status.h":
     ctypedef struct PurplePresence:
         pass
 
-    ctypedef int PurpleStatusPrimitive
+    ctypedef enum PurpleStatusPrimitive:
+        PURPLE_STATUS_UNSET
+        PURPLE_STATUS_OFFLINE
+        PURPLE_STATUS_AVAILABLE
+        PURPLE_STATUS_UNAVAILABLE
+        PURPLE_STATUS_INVISIBLE
+        PURPLE_STATUS_AWAY
+        PURPLE_STATUS_EXTENDED_AWAY
+        PURPLE_STATUS_MOBILE
+        PURPLE_STATUS_TUNE
+        PURPLE_STATUS_NUN_PRIMITIVE
 
-    gboolean c_purple_presence_is_online "purple_presence_is_online" (PurplePresence *presence)
+    glib.gboolean c_purple_presence_is_online "purple_presence_is_online" (PurplePresence *presence)
index 7132a4d..04bd446 100644 (file)
@@ -18,5 +18,5 @@
 #
 
 cdef extern from "libpurple/util.h":
-    void *c_purple_markup_strip_html "purple_markup_strip_html" (const_char_ptr str)
+    void *c_purple_markup_strip_html "purple_markup_strip_html" (char *str)
     void c_purple_util_set_user_dir "purple_util_set_user_dir" (char *dir)
index 9d87b67..fcce7ff 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-include "glib.pxd"
-
-cdef extern from *:
-    ctypedef char* const_char_ptr "const char *"
-    ctypedef char* const_guchar_ptr "const guchar *"
-
-cdef extern from "time.h":
-    ctypedef long int time_t
-
-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/ft.pxd"
-include "libpurple/idle.pxd"
-include "libpurple/notify.pxd"
-include "libpurple/plugin.pxd"
-include "libpurple/pounce.pxd"
-include "libpurple/prefs.pxd"
-include "libpurple/proxy.pxd"
-include "libpurple/request.pxd"
-include "libpurple/roomlist.pxd"
-include "libpurple/signals.pxd"
-include "libpurple/status.pxd"
-include "libpurple/savedstatuses.pxd"
-include "libpurple/util.pxd"
+cdef extern from "libpurple/purple.h":
+    pass
+
+cimport glib
+
+cimport account
+cimport buddyicon
+cimport blist
+cimport connection
+cimport conversation
+cimport core
+cimport debug
+cimport eventloop
+cimport ft
+cimport idle
+cimport notify
+cimport plugin
+cimport pounce
+cimport prefs
+cimport proxy
+cimport request
+cimport roomlist
+cimport signals
+cimport status
+cimport savedstatuses
+cimport util
 
 cdef extern from "c_purple.h":
     void connect_to_signals_for_demonstration_purposes_only ()
-    guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data)
+    glib.guint glib_input_add(glib.gint fd, eventloop.PurpleInputCondition condition, eventloop.PurpleInputFunction function, glib.gpointer data)
 
 import ecore
 
@@ -64,9 +60,9 @@ global __APP_VERSION__
 
 cdef class Purple:
     """ Purple class """
-    cdef PurpleCoreUiOps c_core_ui_ops
-    cdef PurpleEventLoopUiOps c_eventloop_ui_ops
-    cdef GHashTable *c_ui_info
+    cdef core.PurpleCoreUiOps c_core_ui_ops
+    cdef eventloop.PurpleEventLoopUiOps c_eventloop_ui_ops
+    cdef glib.GHashTable *c_ui_info
 
     def __cinit__(self, debug_enabled=True, app_name=__APP_NAME__, default_path=__DEFAULT_PATH__):
         self.c_ui_info = NULL
@@ -77,61 +73,62 @@ cdef class Purple:
         if default_path is not __DEFAULT_PATH__:
             __DEFAULT_PATH__ = default_path
 
-        c_purple_debug_set_enabled(debug_enabled)
-        c_purple_util_set_user_dir(default_path)
-        c_purple_plugins_add_search_path(default_path)
+        debug.c_purple_debug_set_enabled(debug_enabled)
+        util.c_purple_util_set_user_dir(default_path)
+        plugin.c_purple_plugins_add_search_path(default_path)
 
         # adds glib iteration inside ecore main loop
         ecore.idler_add(self.__glib_iteration_when_idle)
      # __cinit__
 
     def __del__(self):
-        c_purple_core_quit()
+        core.c_purple_core_quit()
     # __del__
 
     cdef void __core_ui_ops_ui_prefs_init(self):
-        c_purple_debug(PURPLE_DEBUG_INFO, "core_ui_ops", "ui_prefs_init\n")
-        c_purple_prefs_load()
+        debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "core_ui_ops", "ui_prefs_init\n")
+        prefs.c_purple_prefs_load()
 
-        c_purple_prefs_add_none("/carman")
+        prefs.c_purple_prefs_add_none("/carman")
     # __core_ui_ops_ui_prefs_init
 
     cdef void __core_ui_ops_debug_init(self):
-        c_purple_debug(PURPLE_DEBUG_INFO, "core_ui_ops", "debug_ui_init\n")
+        debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "core_ui_ops", "debug_ui_init\n")
     # __core_ui_ops_debug_init
 
     cdef void __core_ui_ops_ui_init(self):
-        c_purple_debug(PURPLE_DEBUG_INFO, "core_ui_ops", "ui_init\n")
+        debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "core_ui_ops", "ui_init\n")
 
         # FIXME: Add core ui initialization here
     # __core_ui_ops_ui_init
 
     cdef void __core_ui_ops_quit(self):
-        c_purple_debug(PURPLE_DEBUG_INFO, "core_ui_ops", "quit\n")
-        c_purple_accounts_set_ui_ops(NULL)
-        c_purple_connections_set_ui_ops(NULL)
-        c_purple_blist_set_ui_ops(NULL)
-        c_purple_conversations_set_ui_ops(NULL)
-        c_purple_notify_set_ui_ops(NULL)
-        c_purple_request_set_ui_ops(NULL)
-        c_purple_xfers_set_ui_ops(NULL)
-        c_purple_roomlist_set_ui_ops(NULL)
+        debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "core_ui_ops", "quit\n")
+
+        account.c_purple_accounts_set_ui_ops(NULL)
+        connection.c_purple_connections_set_ui_ops(NULL)
+        blist.c_purple_blist_set_ui_ops(NULL)
+        conversation.c_purple_conversations_set_ui_ops(NULL)
+        notify.c_purple_notify_set_ui_ops(NULL)
+        request.c_purple_request_set_ui_ops(NULL)
+        ft.c_purple_xfers_set_ui_ops(NULL)
+        roomlist.c_purple_roomlist_set_ui_ops(NULL)
 
         if self.c_ui_info:
-            g_hash_table_destroy(self.c_ui_info)
+            glib.g_hash_table_destroy(self.c_ui_info)
     # __core_ui_ops_quit
 
-    cdef GHashTable *__core_ui_ops_get_ui_info(self):
+    cdef glib.GHashTable *__core_ui_ops_get_ui_info(self):
         if self.c_ui_info == NULL:
-            self.c_ui_info = g_hash_table_new(g_str_hash, g_str_equal)
+            self.c_ui_info = glib.g_hash_table_new(glib.g_str_hash, glib.g_str_equal)
 
-            g_hash_table_insert(self.c_ui_info, "name", <gpointer> __APP_NAME__)
-            g_hash_table_insert(self.c_ui_info, "version", <gpointer> __APP_VERSION__)
+            glib.g_hash_table_insert(self.c_ui_info, "name", <glib.gpointer> __APP_NAME__)
+            glib.g_hash_table_insert(self.c_ui_info, "version", <glib.gpointer> __APP_VERSION__)
         return self.c_ui_info
     # __core_ui_ops_get_ui_info
 
     def __glib_iteration_when_idle(self):
-        g_main_context_iteration(NULL, False)
+        glib.g_main_context_iteration(NULL, False)
         return True
     # __glib_iteration_when_idle
 
@@ -142,51 +139,51 @@ cdef class Purple:
         self.c_core_ui_ops.debug_ui_init = <void (*)()> self.__core_ui_ops_debug_init
         self.c_core_ui_ops.ui_init = <void (*)()> self.__core_ui_ops_ui_init
         self.c_core_ui_ops.quit = <void (*)()> self.__core_ui_ops_quit
-        self.c_core_ui_ops.get_ui_info = <GHashTable* (*)()> self.__core_ui_ops_get_ui_info
+        self.c_core_ui_ops.get_ui_info = <glib.GHashTable* (*)()> self.__core_ui_ops_get_ui_info
 
-        c_purple_core_set_ui_ops(&self.c_core_ui_ops)
+        core.c_purple_core_set_ui_ops(&self.c_core_ui_ops)
 
         # initialize c_eventloop_ui_ops structure
-        self.c_eventloop_ui_ops.timeout_add = g_timeout_add
-        self.c_eventloop_ui_ops.timeout_remove = g_source_remove
+        self.c_eventloop_ui_ops.timeout_add = glib.g_timeout_add
+        self.c_eventloop_ui_ops.timeout_remove = glib.g_source_remove
         self.c_eventloop_ui_ops.input_add = glib_input_add
-        self.c_eventloop_ui_ops.input_remove = g_source_remove
+        self.c_eventloop_ui_ops.input_remove = glib.g_source_remove
         self.c_eventloop_ui_ops.input_get_error = NULL
-        self.c_eventloop_ui_ops.timeout_add_seconds = g_timeout_add_seconds
+        self.c_eventloop_ui_ops.timeout_add_seconds = glib.g_timeout_add_seconds
 
-        c_purple_eventloop_set_ui_ops(&self.c_eventloop_ui_ops)
+        eventloop.c_purple_eventloop_set_ui_ops(&self.c_eventloop_ui_ops)
 
         # initialize purple core
-        ret = c_purple_core_init(__APP_NAME__)
+        ret = core.c_purple_core_init(__APP_NAME__)
         if ret is False:
-            c_purple_debug(PURPLE_DEBUG_INFO, "main", "Exiting because libpurple initialization failed.\n")
+            debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "main", "Exiting because libpurple initialization failed.\n")
             return False
 
         # check if there is another instance of libpurple running
-        if c_purple_core_ensure_single_instance() == False:
-            c_purple_debug(PURPLE_DEBUG_INFO, "main", "Exiting because another instance of libpurple is already running.\n")
-            c_purple_core_quit()
+        if core.c_purple_core_ensure_single_instance() == False:
+            debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "main", "Exiting because another instance of libpurple is already running.\n")
+            core.c_purple_core_quit()
             return False
 
         # create and load the buddy list
-        c_purple_set_blist(c_purple_blist_new())
-        c_purple_blist_load()
+        blist.c_purple_set_blist(blist.c_purple_blist_new())
+        blist.c_purple_blist_load()
 
         # load pounces
-        c_purple_pounces_load()
+        pounce.c_purple_pounces_load()
 
         return ret
     # purple_init
 
     def get_protocols(self):
-        cdef GList *iter
-        cdef PurplePlugin *plugin
+        cdef glib.GList *iter
+        cdef plugin.PurplePlugin *__plugin
         protocols = []
-        iter = c_purple_plugins_get_protocols()
+        iter = plugin.c_purple_plugins_get_protocols()
         while iter:
-            plugin = <PurplePlugin*> iter.data
-            if plugin.info and plugin.info.name:
-                protocols += [(plugin.info.id, plugin.info.name)]
+            __plugin = <plugin.PurplePlugin*> iter.data
+            if __plugin.info and __plugin.info.name:
+                protocols += [(__plugin.info.id, __plugin.info.name)]
             iter = iter.next
         return protocols
     # get_protocols
@@ -197,7 +194,7 @@ cdef class Purple:
     # connect
 # Purple
 
-include "account.pxd"
-include "buddy.pxd"
-include "connection.pxd"
-include "conversation.pxd"
+include "account.pyx"
+include "buddy.pyx"
+include "connection.pyx"
+include "conversation.pyx"
index 3b2c9e8..bf58b71 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 import sys
 import os
+from glob import glob
 
 from setuptools import setup, find_packages, Extension
 from distutils.sysconfig import get_python_inc
@@ -14,16 +15,17 @@ ldflags = Popen(['pkg-config', '--libs', 'purple'], stdout=PIPE).communicate()[0
 class pypurple_build_ext(build_ext):
     def finalize_options(self):
         build_ext.finalize_options(self)
-        self.include_dirs.insert(0, 'include')
+        self.include_dirs.insert(0, 'libpurple')
         self.pyrex_include_dirs.extend(self.include_dirs)
 
 setup(
-  name = 'python-pypurple',
-  version = '0.1',
-  author ='Bruno Abinader',
-  author_email='bruno.abinader@openbossa.org',
-  cmdclass = {'build_ext': pypurple_build_ext},
-  ext_modules=[Extension('purple',
-              sources=['c_purple.c','purple.pyx'],
-              extra_compile_args=cflags,
-              extra_link_args=ldflags)])
+    name = 'python-pypurple',
+    version = '0.1',
+    author ='Bruno Abinader',
+    author_email='bruno.abinader@openbossa.org',
+    cmdclass = {'build_ext': pypurple_build_ext},
+    ext_modules=[Extension('purple',
+        sources=['c_purple.c','purple.pyx'],
+        depends=glob('libpurple/*.pxd'),
+        extra_compile_args=cflags,
+        extra_link_args=ldflags)])