Midterm Progress Report

My neglect has left this place looking a little forlorn, but progress with Vulture continues apace, and more or less according to schedule. Now that we’re half-way through SoC, I thought I should remark on how things are going. Here are some screenshots to begin with:

The bare-bones functionality for chats and IMs has been implemented. The buddy list responds to people coming and going, and the status can be set from the status box.

As the screenshot of the conversation window shows, no attempt is made to render the formatting of messages: the HTML is dumped straight into a RichEdit control. This is a feature I specifically excluded from the scope of the summer project in my original application. Instead, I intend to focus on the buddy list, aiming to have it complete or nearly so by the time SoC ends in August. As a prelude to this, I have recently begun work on support for buddy icons.

I hope that I’ll get around to posting again before the end of the summer. I have some half-formed thoughts on modal loops that I’d like to commit to whatever the blogging equivalent of paper is.


This blog will track the development of Vulture: a native Win32 front-end for the multi-protocol instant-messaging library libpurple, which underlies Pidgin. The project is part of Google’s Summer of Code 2009, and will be mentored by John Bailey, to both of whom I am very grateful.

There is already a port of Pidgin to Windows which works perfectly adequately for most purposes. It uses the GTK+ toolkit, however, which brings with it some problems: some minor, such as widgets looking noticeably different from native ones; others more substantial, such as the lack of support for IMEs. There are also some UI conventions used by Pidgin itself that are not often seen in Windows applications. Resolving these shortcomings is the main reason for this project’s existence.

Vulture will be written in C, using the Win32 API. There is also another Win32 libpurple UI Summer of Code project this year, being developed by Wade Fagen, which will take a higher-level approach.

The mainstay of this blog will be progress reports, with occasional articles taking a detailed look at some aspect of development. Comments are welcome.