Posted: Thu May 10, 2007 6:20 pm Post subject: PerlAIM -- An AIM 5.x Remake
I don't expect to start a big discussion here, since this forum is pretty much dead, but I just wanted to tell y'all about my current project:
I'm programming a Perl/Tk client for AOL Instant Messenger, in an attempt to mimic the AIM 5.9 client as closely as possible. Mainly because, I liked AIM 5.9, but it doesn't run well under Linux (not even with WINE), and the newest version of AIM that supported Linux is the ucky 1.5 version, and also, I've never been too fond of the nonstandard AIM clients out there, namely Gaim and Trillian.
Here is my big list of screenshots from the earliest beta ones up to where I'm at right now. Every few milestones or so I might come back here and post newer ones.
Windows Vista Screenshots Not long into the project, I had to switch over to Windows and take some thorough notes on the AIM 5.9 client. So I ran my PerlAIM over there too, and took some screenshots. This is one of the earliest runnable versions of PerlAIM.
Early sign-on window, on Windows Vista.
"Signing In..." dialog window, on Vista.
A *very* early Buddy List window, which has a simple menu bar (which does nothing), and no actual buddy list. But, at this point the client WAS connected to AOL's server. It just couldn't *do* anything.
Linux Screenshots (Fedora Core 5)
Another early buddy list window. It had icons for the groups, but the groups weren't collapsible. And not much else worked. Clicking and double-clicking just printed stuff to the console to acknowledge what you were trying to do.
An early Instant Message window, with placeholders for buddy icons.
A later version of the Buddy List window, now with icons for "away" users, and buttons at the bottom.
The early sign-on window on Linux.
The IM window later on. Notice that there aren't any ugly borders around all the icons anymore. Those borders would show up when I was forcing the window to be a certain color... I later decided to just leave the window color up to your window manager to color, using your system colors. Made everything look a lot nicer.
Another font colors test, and look--I have a buddy icon now!
Here's the buddy list window again, after I left it up to the system colors to colorize the window.
Here's a slightly better sign-on window.
Font colors (especially backgrounds) work exactly how they're supposed to now, and also multiple fonts are displayed properly. _________________ Current Site (2008) http://www.cuvou.com/
The IM window now supports the display of all kinds of different font styles.
Finally, an Add Buddy ability.
And a first "get buddy info" dialog. Two of the "IM" buttons down there are just placeholders, until I get icons for "Add Buddy" and "Directory Info" (the last of which probably won't actually be supported by PerlAIM.. not that anybody needs it).
With the font styles on the IM window... it doesn't yet support multiple fonts (i.e. if somebody has just one bold word, their entire message will probably display as bold), because supporting multiple font styles would require an HTML parser of some kind. It might be worked on later when this project is pretty much as complete as I wanted it, but as for now it will show things a lot like on MSN.
The "Get Info" window doesn't support any HTML whatsoever yet, but probably by the time I release PerlAIM, it will be a lot like the IM window... showing basic styles.
As another lil FYI... the fonts only look crappy on here because Linux's Perl Tk doesn't support antialiasing very well... they'd look a whole lot better on Windows. _________________ Current Site (2008) http://www.cuvou.com/
And that's a nice program, how long did it take you to program? I like using wxWidgets for my GUI programs in C++, but theres wxPerl too. wxWidgets uses GTK2 rendering on linux. _________________ 3D chat program I'm making
So far I've worked on it for 4 days in a row. I would use wxPerl, but I have no experience with it whatsoever, and the idea of declaring your own derived classes for every single widget is a whole lot different than the way Tk does them. Thanks for the tip about compiling Tk with antialiasing support though. _________________ Current Site (2008) http://www.cuvou.com/