silvercircle/github/io
A Jekyll test site with no particular purpose.

Warning

This is an old archived article. It is here for historical and nostalgic reasons only. The software described in this article (Miranda IM and its components) is no longer a project I'm working on. The article most likely will contain broken links, missing images as it was automatically converted from an old blog long gone.

The project is still an active Open Source project and should you be interested, more information about it is available here.

A few days ago I posted the idea of creating a unified message window for all kind of chats - normal IM sessions and group chats like IRC channels. Now, a few days later, the first part is done and the resulting plugin is already working. Overall, I'am quite satisfied with the result - the UNICODE DLL is less than 500 K (dynamically linked) which is quite good, given the fact, that it also includes the almost complete skinning engine, including frame skinning.

These 500 k still contain quite a lot of icon resources, because chat icons have not yet been outsourced to the icon pack DLL. My guess is, that a dynamically linked UNICODE build can be as small as 450k (that's quite some code saved compared to separated tabSRMM and CHAT plugins). I think, the size can be cut down even more, because there is still quite a lot of duplicated code, especially in the rich edit control and popup support.

The chat windows integrate nicely into tabSRMMs container system, although some features are not yet working (like notifications). Font + color configuration is already merged into one dialog box where you can setup all the fonts and colors needed by IM or group chat sessions. tabSRMM theme support is planned for group chat windows, of course.

Long time goals…

In the long run, I plan to create a message window control which can accept and handle almost any kind of message event - no matter whether it came from a normal instant message session or from a group chat session. The message window control should be able to adopt itself - for example, showing or hiding the nick list and/or the info panel when needed, modifiying the layout of the toolbar "on the fly" to reflect the current state of the session and more. The unified user interface will make it more user friendly, and the merged configuration will eliminate quite a lot of stuff which currently needs to be customized separately for both plugins, making this a quite time consuming and unintuitive process, especially for new users who may find it hard to understand, why they have to configure so much chat-window related stuff twice. Finally, I should say that the idea of creating a unified chat window is not new. We've already discussed that more than a year ago and even some code was written back then, but it never got anywhere near to be useful.