ATTENTION! The following URL is invalid cos I'm too poor to pay for hosting! Some semblance of a web site should be back up before long however - watch this space.
v1.0.1 - http://www.coldknife.net/catbox.zip
Another Windows chatter client, this time in C++! (I used MFC though, sorry). But why, you might ask, do we need the cleverly-entitled "Catbox"? Well, I began writing this before I knew about the Frogbox, and seeing how I had been meaning to write one for the last few years I decided to go ahead anyway. It took quite a while because I completely lost interest for a period of several months, and even now it isn't really what you would call "finished". Before explaining exactly what is missing from this first release, let me explain exactly what isn't.
Basically, this is a lightweight client which lets you chat in the chatterbox, mess about with private messages, view other users and change rooms. This is all squashed into three pages of a tabbed property sheet; the chatterbox page, the message inbox page and the rooms/other users page (also note that despite the lack of a gripper in the corner, the whole thing is actually resizable). It's all fairly self-explanatory, but I shall explain it anyway, albeit briefly because I'm bored and want to go.
This page displays the chatter from whichever room you are currently logged into and, of course, lets you talk. The "Refresh" button refreshes the chatter, the "Clear" button clears the edit box which you type into (pressing it again when the edit box is empty will bring back whatever was last cleared), and the "Send" button does the same as pressing return, ie sends whatever you just typed. Also, pressing the up and down arrow keys will iterate through previously sent messages. It really is that simple!
Once you are logged in, you can press "Get All" at any time to download your entire message inbox and display it in the left window as a tree view like in Explorer. Pressing "Get New" will download any new messages once this has happened. You can order the messages into folders using the buttons at the bottom, which are probably easier for you to figure out than me to try and explain; just remember there are three levels of ordering and sub-ordering. Once you open a folder full of messages, clicking on a message will display it in the right-hand window. Clicking the "Prev" and "Next" buttons will cycle through the other messages in the same folder. Clicking "Delete" will delete the selected message, and "Undo" will... guess what? Yes, bring it back from the dead, good as new. The "Commit Changes" button will delete from the E2 server any messages you have deleted locally from within Catbox. The edit box at the very bottom with a "Find" button next to it will let you search through your messages for a particular word or phrase.
Rooms & Users
Here you will find a drop-down list box with all available rooms. Clicking "Get Rooms" will update this list, and clicking on a room name will (hopefully) put you in that room. Under that is a list of other users, which again can be updated by clicking "Get Users".
Ah yes, selecting this from the menu will bring up a Preferences dialog box. Options you can currently change include:
- Refresh time - You will see this as an option for all three pages. On the Chatterbox page it determines how often the chatter is refreshed (minimum 5 seconds), on the inbox page this is how often Catbox checks for new messages (minimum 30 seconds) and on the Rooms/Users page it is how often the Other Users list is refreshed (minimum 60 seconds).
- Refresh on send - Checking this will cause Catbox to refresh the chatter every time you post a message.
- Alert new messages - This will alert you whenever you recieve a new private message.
- Cache inbox locally - Together with the "Browse" button below it, this allows you to store your messages in a file on your hard disk. Whenever you log in, it will be reloaded and you can just press "Get New" to get your latest messages, thus saving you having to download your entire inbox every time.
Problems / issues / unfinished business / whatever
As I mentioned earlier, there are a few problems (I don't know a thing about version numbers so the first version is 1.0.0). I would appreciate any bug reports or suggestions, but these are issues I know about and may get around to working on one of these days:
- Memory leaks! That's right, and for once it isn't my fault. Due to me using a lot of STL containers, and due to Microsoft's STL implementation being shit, the Catbox will leak approximately 70 bytes upon exit. It has been documented by Microsoft since VC++ 4 and as of v6 still hasn't been fixed. I am looking into using STLport which will hopefully make the whole thing work more smoothly ("looking into" meaning thinking it would be nice one day).
Being the pauper I am, I wrote this on Windows 98 because my laptop is over four years old. Although it seems to work OK for other people on 2000/XP, the default location for message archive files is C:\ which I believe is a problem if you're not the administrator, so if this is an issue then change it to whatever will work before caching your inbox. If anyone can suggest a location which will work without problems on both 9x and 2k/XP then please let me know. Update! Dragon Dave has saved my sorry ass by suggesting I use the current directory (ie whichever one Catbox is started from). Thus v1.0.1 is born! Cheers Dave.
- When changing rooms, if there is no chatter then it doesn't display the topic.
- Changing rooms using the web site or anything other than Catbox, while Catbox is running, will confuse it.
- It doesn't know when you are borged (it shows up on the Other Users list though)
- If after loading Catbox you haven't yet been to the Message Inbox page and it alerts you to a new message, clicking "Yes" to get to the Message Inbox page will indeed take you there, but the controls aren't properly resized to the size of the window. (Clicking to another page then back will do the trick if it really bothers you).
- Anything which refreshes the left-hand Message Inbox tree closes all opened folders unless a message is selected.
- Every time there is the slightest error, a message box pops up telling you so. This is annoying and I will hopefully be putting a status bar at the bottom instead to tell you exactly what's going on.
- Searching through your messages using the "Find" button doesn't search from top to bottom (ie the order in which you have sorted the messages).
- Right-clicking in any of the Internet Explorer windows (chatterbox, message display, other users) brings up the massive full menu which allows you to do all sorts of disastrous things like "Refresh" which will ruin everything. I did disable the right-click menu but being as Ctrl+C doesn't work for copying selected text, I put the menu back until I can find a way to restrict options to just "Copy" and "Select All".
Some other things of note:
- If you don't like the red "e2" icon in the top-left of the window it will turn white once you log in. This way you can quickly tell whether you are actually logged in or not.
- When clicking a button which sends a request to the E2 server (sending a message, refreshing something) the button becomes disabled until the server responds, to avoid double-posting and such. If the server fails to respond then the buttons may be disabled for some time, but I have set the request timeout to 20 seconds so you shouldn't have to wait too long. If the buttons are on the Message Inbox page then just log out and back in if you really can't wait that long.
I think that about wraps it up. If I have missed anything out please /msg me or something. I won't be releasing the source for a while as I am still sorting it out myself, it's a right mess. Incidentally, you'll need Internet Explorer installed for it to work, but most people have anyway so I hope it isn't a problem (this also means that any options you have set in IE will carry over to the Catbox HTML displays).