+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)
+