#
cimport glib
-cimport proxy
+
+cdef extern from *:
+ ctypedef char const_char "const char"
+
+# hack to avoid recursive loops by cython
+cdef extern from "libpurple/connection.h":
+ ctypedef struct PurpleConnection:
+ pass
+
+cdef extern from "libpurple/log.h":
+ ctypedef struct PurpleLog:
+ pass
+
+cdef extern from "libpurple/proxy.h":
+ ctypedef struct PurpleProxyInfo:
+ pass
+
+cdef extern from "libpurple/status.h":
+ ctypedef struct PurpleStatus:
+ pass
+
+ ctypedef struct PurplePresence:
+ pass
cdef extern from "libpurple/account.h":
+ ctypedef struct PurpleAccountUiOps
+ ctypedef struct PurpleAccount
+
+ ctypedef glib.gboolean (*PurpleFilterAccountFunc) (PurpleAccount *account)
+ ctypedef void (*PurpleAccountRequestAuthorizationCb) (void *)
+ ctypedef void (*PurpleAccountRegistrationCb) (PurpleAccount *account, \
+ glib.gboolean succeeded, void *user_data)
+ ctypedef void (*PurpleAccountUnregistrationCb) (PurpleAccount *account, \
+ glib.gboolean succeeded, void *user_data)
+
+ ctypedef enum PurpleAccountRequestType:
+ PURPLE_ACCOUNT_REQUEST_AUTHORIZATION = 0
+
+ ctypedef struct PurpleAccountUiOps:
+ void (*notify_added) (PurpleAccount *account, const_char *remote_user, \
+ const_char *id, const_char *alias, const_char *message)
+ void (*status_changed) (PurpleAccount *account, PurpleStatus *status)
+ void (*request_add) (PurpleAccount *account, const_char *remote_user, \
+ const_char *id, const_char *alias, const_char *message)
+ void *(*request_authorize) (PurpleAccount *account, \
+ const_char *remote_user, const_char *id, const_char *alias, \
+ const_char *message, glib.gboolean on_list, \
+ PurpleAccountRequestAuthorizationCb authorize_cb, \
+ PurpleAccountRequestAuthorizationCb deny_cb, void *user_data)
+ void (*close_account_request) (void *ui_handle)
+
ctypedef struct PurpleAccount:
char *username
char *alias
char *buddy_icon_path
glib.gboolean remember_pass
char *protocol_id
+ PurpleConnection *gc
+ glib.gboolean disconnecting
+ glib.GHashTable *settings
+ glib.GHashTable *ui_settings
+ PurpleProxyInfo *proxy_info
+ glib.GSList *permit
+ glib.GSList *deny
+ int perm_deny
+ PurplePresence *presence
+ PurpleLog *system_log
+ void *ui_data
+ PurpleAccountRegistrationCb registration_cb
+ void *registration_cb_user_data
+ glib.gpointer priv
- ctypedef struct PurpleAccountUiOps:
- pass
-
- PurpleAccount *c_purple_account_new "purple_account_new" \
+ PurpleAccount *c_purple_account_new "purple_account_new" \
(char *username, char *protocol_id)
- void c_purple_account_set_password "purple_account_set_password" \
+ void c_purple_account_set_password "purple_account_set_password" \
(PurpleAccount *account, char *password)
- char *c_purple_account_get_password "purple_account_get_password" \
+ char *c_purple_account_get_password "purple_account_get_password" \
(PurpleAccount *account)
- void c_purple_account_set_enabled "purple_account_set_enabled" \
+ 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" \
+ char *c_purple_account_get_username "purple_account_get_username" \
(PurpleAccount *account)
- glib.GList *c_purple_accounts_get_all_active \
+ 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" \
+ void c_purple_accounts_set_ui_ops "purple_accounts_set_ui_ops" \
(PurpleAccountUiOps *ops)
glib.gboolean c_purple_account_is_connected "purple_account_is_connected" \
(PurpleAccount *account)
- proxy.PurpleProxyInfo *c_purple_account_get_proxy_info \
+ PurpleProxyInfo *c_purple_account_get_proxy_info \
"purple_account_get_proxy_info" (PurpleAccount *account)
void c_purple_account_set_proxy_info "purple_account_set_proxy_info" \
- (PurpleAccount *account, proxy.PurpleProxyInfo *info)
-
+ (PurpleAccount *account, PurpleProxyInfo *info)