Get buddies bindings
[python-purple] / c_purple.c
index b77d659..fab5c9f 100644 (file)
@@ -37,7 +37,8 @@ typedef struct _PurpleGLibIOClosure {
        gpointer data;
 } PurpleGLibIOClosure;
 
-static gboolean purple_glib_io_invoke(GIOChannel *source, GIOCondition condition, gpointer data)
+static gboolean purple_glib_io_invoke(GIOChannel *source, GIOCondition condition,
+               gpointer data)
 {
        PurpleGLibIOClosure *closure = data;
        PurpleInputCondition purple_cond = 0;
@@ -53,7 +54,7 @@ static gboolean purple_glib_io_invoke(GIOChannel *source, GIOCondition condition
        return TRUE;
 }
 
-static guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function,
+guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function,
                gpointer data)
 {
        PurpleGLibIOClosure *closure = g_new0(PurpleGLibIOClosure, 1);
@@ -76,106 +77,17 @@ static guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInput
        return closure->result;
 }
 
-static PurpleEventLoopUiOps glib_eventloops =
-{
-       g_timeout_add,
-       g_source_remove,
-       glib_input_add,
-       g_source_remove,
-       NULL,
-#if GLIB_CHECK_VERSION(2,14,0)
-       g_timeout_add_seconds,
-#else
-       NULL,
-#endif
-
-       /* padding */
-       NULL,
-       NULL,
-       NULL
-};
-/*** End of the eventloop functions. ***/
-
-/*** Conversation uiops ***/
-/* FIXME: Revisit this function. Is it needed? How it should be more general?*/
-static void
-write_conv(PurpleConversation *conv, const char *who, const char *alias,
-                       const char *message, PurpleMessageFlags flags, time_t mtime)
-{
-       const char *name;
-       if (alias && *alias)
-               name = alias;
-       else if (who && *who)
-               name = who;
-       else
-               name = NULL;
-
-       printf("(%s) %s %s: %s\n", purple_conversation_get_name(conv),
-                       purple_utf8_strftime("(%H:%M:%S)", localtime(&mtime)),
-                       name, message);
-}
-
-static PurpleConversationUiOps conv_uiops = 
-{
-       NULL,                      /* create_conversation  */
-       NULL,                      /* destroy_conversation */
-       NULL,                      /* write_chat           */
-       NULL,                      /* write_im             */
-       write_conv,                /* write_conv           */
-       NULL,                      /* chat_add_users       */
-       NULL,                      /* chat_rename_user     */
-       NULL,                      /* chat_remove_users    */
-       NULL,                      /* chat_update_user     */
-       NULL,                      /* present              */
-       NULL,                      /* has_focus            */
-       NULL,                      /* custom_smiley_add    */
-       NULL,                      /* custom_smiley_write  */
-       NULL,                      /* custom_smiley_close  */
-       NULL,                      /* send_confirm         */
-       NULL,
-       NULL,
-       NULL,
-       NULL
-};
-
-/* FIXME: Is this a valid struct? */
 static void
-ui_init(void)
+signed_on(PurpleConnection *gc, gpointer null)
 {
-       /**
-        * This should initialize the UI components for all the modules. Here we
-        * just initialize the UI for conversations.
-        */
-       purple_conversations_set_ui_ops(&conv_uiops);
+       PurpleAccount *account = purple_connection_get_account(gc);
+       printf("Account connected: %s %s\n", account->username, account->protocol_id);
 }
 
-static PurpleCoreUiOps core_uiops =
-{
-       NULL,
-       NULL,
-       ui_init,
-       NULL,
-
-       /* padding */
-       NULL,
-       NULL,
-       NULL,
-       NULL
-};
-
-void init_libpurple(const char *ui_id)
+void connect_to_signals_for_demonstration_purposes_only(void)
 {
-       purple_core_set_ui_ops(&core_uiops);
-
-       purple_eventloop_set_ui_ops(&glib_eventloops);
-
-       if (!purple_core_init(ui_id)) {
-               /* Initializing the core failed. Terminate. */
-               fprintf(stderr,
-                               "libpurple initialization failed. Dumping core.\n"
-                               "Please report this!\n");
-               abort();
-       }
+       static int handle;
 
-       printf("libpurple initialized");
+       purple_signal_connect(purple_connections_get_handle(), "signed-on", &handle,
+                               PURPLE_CALLBACK(signed_on), NULL);
 }