Adding bind to PurpleAccountOption
[python-purple] / libpurple / account.pxd
index 841f0c6..d656b2e 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-cdef extern from "libpurple/account.h":
-    ctypedef struct PurpleAccount:
+cimport glib
+cimport prefs
+
+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
 
-    ctypedef struct PurpleAccountUiOps:
+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
 
-    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" ()
-    void c_purple_accounts_set_ui_ops "purple_accounts_set_ui_ops" (PurpleAccountUiOps *ops)
+cdef extern from "libpurple/accountopt.h":
+    ctypedef struct PurpleAccountOption:
+        prefs.PurplePrefType type
+        char *text
+        char *pref_name
+        #union
+        #{
+        #    gboolean boolean
+        #    int integer
+        #    char *string
+        #    GList *list
+        #} default_value;
+        glib.gboolean masked
+
+    prefs.PurplePrefType c_purple_account_option_get_type "purple_account_option_get_type" (PurpleAccountOption *option)
+    char *c_purple_account_option_get_setting "purple_account_option_get_setting" (PurpleAccountOption *option)
+    char *c_purple_account_option_get_default_string "purple_account_option_get_default_string" (PurpleAccountOption *option)
+    int c_purple_account_option_get_default_int "purple_account_option_get_default_int" (PurpleAccountOption *option)
+    glib.gboolean c_purple_account_option_get_default_bool "purple_account_option_get_default_bool" (PurpleAccountOption *option)
+    const_char *c_purple_account_option_get_default_list_value "purple_account_option_get_default_list_value" (PurpleAccountOption *option)
+    const_char *c_purple_account_option_get_text "purple_account_option_get_text" (PurpleAccountOption *option)
+
+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 *password
+        char *user_info
+        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
+
+    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)
+    glib.gboolean c_purple_account_is_connected "purple_account_is_connected"\
+            (PurpleAccount *account)
+    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, PurpleProxyInfo *info)
+    char *c_purple_account_get_string "purple_account_get_string"\
+            (PurpleAccount *account, char *name, char *default_value)
+    int c_purple_account_get_int "purple_account_get_int"\
+            (PurpleAccount *account, char *name, int default_value)
+    glib.gboolean c_purple_account_get_bool "purple_account_get_bool"\
+            (PurpleAccount *account, char *name, glib.gboolean default_value)
+    void c_purple_account_clear_settings "purple_account_clear_settings"\
+            (PurpleAccount *account)
+    void c_purple_account_set_int "purple_account_set_int"\
+            (PurpleAccount *account, char *name, int value)
+    void c_purple_account_set_string "purple_account_set_string"\
+            (PurpleAccount *account, char *name, char *value)
+    void c_purple_account_set_bool "purple_account_set_bool"\
+            (PurpleAccount *account, char *name, glib.gboolean value)
+