THE CORE: GPG Encryption of messages Have plugin_event use varargs instead of void* Separate core functions from UI stuff. about.c, applet.[ch], away.c, browser.c, buddy.c, conversation.c, convo.h, dialogs.c, gtk*, plugins.c, prefs.c, prpl.c, sound.c, ticker.c, ui.h little to no work (mostly GTK) core.[ch], html.c, list.c, module.c, multi.h, proxy.[ch], perl.c, prpl.h, util.c little to no work (mostly CORE) buddy_chat.c, gaim.h, idle.c, multi.c, server.c standard splitting (for idleness, core needs to be in charge of gaim-use idleness) aim.c - need to redo main() completely - current main should be moved mostly to core - GTK main should connect to core gaimrc.c - Need to figure out how to save UI preferences Ideally at the end of this the prpls should only need to include prpl.h and they'll get everything they need without anything *cough*GTK*cough* that they don't. Need to write the core side of the core-ui protocol Non-blocking gethostbyname() Cancelable proxy_connect ---- THE PROTOCOLS: TOC: Other RVOUS Actions Oscar: File Transfer Other RVOUS Actions Yahoo: Chat File Transfer ICQ: Chat File Transfer New User Registration MSN: Need some way of indicating "invite" in IM window File Transfer IRC: /whois, /ban, /kickban, /list, /names DCC CTCP Jabber: Jabber Transports (having them show up on the buddy list should be fairly easy; having an appropriate right-click menu for them should also be somewhat easy. Providing a UI for adding transports should be rather difficult.) Rework how subscriptions are handled Browsing Make the set info dialog prettier Napster: File Transfer New User Registration Zephyr: God help us. Gadu-Gadu: New User Registration There's probably 100 other things but since I've hardly used the Windows client before I'm not sure what any of them are ---- THE UIS: GTK: Transparency for GtkIMHtml Rewrite the HTML parser in GtkIMHtml Moving GTK/GDK and related things out of the prpls TOC: file transfer (move into the core) Status labels in buddy list (mostly just for yahoo/msn) Better way of showing away state - and possibly in main window Away needs to be modified to include "show" and "status", i.e. you can have an away state, and an away message. This is exactly what ICQ does - you're "N/A" (show in Jabber) and your away message is "I'm gone." (status in Jabber). Since it only applies to ICQ and Jabber (and actually, currently only Jabber, since icqlib doesn't handle away messages yet), there should be some way of indicating that it can do both without breaking the others. My suggestion is to put "/" at the end of the "state", and when that's there, have it be a menu with all of the custom messages, e.g. in Jabber it'd return "Away/" as one of the states, and you'd see "Away" with a menu of all the away messages you have. Need to write the ui side of the core-ui protocol Syd is cool and gave all of these ideas: Have multiple tickers in the same window, one for buddies like it is now, one for who just came online/offline (scrolled faster possibly because that doesn't happen very often), etc. Have tooltips on the passing buddies on the ticker Have a stock ticker (a plugin could easily make use of GtkTicker) Buddy Icons need to be converted to use new gdk-pixbuf (GTK2) Then, of course, are all the Bugs that need to be fixed http://sourceforge.net/tracker/?atid=100235&group_id=235&func=browse and the Feature Requests. SourceForge should really allow users to vote on feature requests and bugs..... http://sourceforge.net/tracker/?atid=350235&group_id=235&func=browse