Changelog: --------- ! = bugfix * = changed feature + = new feature - = removed 0.9.0.2 - 2009/07/20 * It is now possible to use the real location-based timezones set by UserInfoEx. If present, clist_nicer will use it to calculate a correct date and time. 0.9.0.1 - 2009/07/18 * removed separator from view mode menu when not needed * version bump, plugin will only load in Miranda 0.9.dev 0.8.1.2 - 2009/07/03 * support relative path for skin filenames. * fixed some redrawing problems for floating frames * fixed issue with disappearing "Appearance" context menu item. 0.8.1.0 - 2009/06/30 * release for Miranda 0.8.1 0.8.0.x - 2009/05/03 * resource.rc rework for vc6 bugfix + statusbar font can be changed * fix for 'Contact list display and ignore options' window ! fix for the valid skin extension * slots numbers unification (part 2) 0.8.0.5 - 2009/04/09 * slots numbers unification (m_cluiframes.h is now shared between all plugins) + ToolbarButton support for modernopt.dll ! fix for translation issues in clist_nicer options + x64 portability 0.8.0.4 - 2009/03/05 * Made project GCC / MingW32 compatible. Added makefile(s) and project files. + option added to allow clist being shown on task bar, under the following circumstances: a) Window style is set to "title bar" (ordinary Window like any other, not border- or frameless). b) Option "Always hide on task bar" (Options->Contact List-> Window) is DISABLED. This option is enabled by default. Does not work with skinned contact list, only when using a default windows theme. * corrected some visual glitches in various option dialogs. 0.8.0.2 - 2007/10/20 * advanced option to save position while moving or resizing (old behaviour) Use DBEditor++ and set CLUI/save_pos_always (BYTE value) to 1. RESTART MIRANDA thereafter (the setting is only read at plugin startup). Deleting the value or set it to 0 to disable it (save position/size only when Miranda exits). * new option for floating contacts (Fill with contact list background color). If enabled, floaters will be filled with this color before drawing the skin item. This allows people who don't use a skin at all to show the floaters w/o having them fully transparent. 0.8.0.1 - 2007/10/02 * removed all hardcoded instances of the MetaContacts protocol name 0.8.0.0 - 2007/10/02 * released for Miranda 0.7. NOT compatible with 0.6 or earlier. 0.7.2.1 - 2007/09/xx * completed floating contacts (patch by yaho, yaho@miranda-easy.net). All the options on Options->Contact List->Floating contacts are now working and a few new features (transparency, snapping) have been added. * reworked options. Display profiles is now where you can set most things for the contact layout. Right now, only one profile () is available, but in the future, there will be the possibility to configure multiple profiles for quickly changing display options. 0.7.1.1 - 2007/01/25 * more options for per contact display settings. * the font colors for selected and hottracked skin items are no longer ignored. * removed internal font configuration dialog. Customize->Fonts is now where fonts and colors can be configured for NON-SKINNED MODE ONLY. Otherwise, settings from Customize->Contact List skin->Skin items are used. 0.7.1.0 - 2007/01/20 * removed old icon code. From now on, clist_nicer requires IcoLib services, either via IcoLib plugin or by using Miranda 0.7.x build. * added new option to auto-apply last active view mode when the contact list starts (Options->Contact List) * Removed the "Priority Contact" menu item. This can now be found in the new "Contact settings" dialog which is an improved version of the old "Visibility and Ignore" dialog. It allows to set various other options "per contact" (e.g. avatar display override/disable, 2nd line of text display option etc.). 0.7.0.x - see SVN for changes. Mostly bugfixes, no new features. 0.6.0.7 - 2006/03/xx * added 2 items to the view mode menu, allowing to: 1) setup view modes 2) clear the current view mode * fixed another frame ordering bug. 0.6.0.6 - 2006/02/28 * fixed possible crash on exit bug. * fixed auth requests not appearing on the tray & event area * improved performance for "sort by last message" - event timestamps are only retrieved when actually needed. * Various CLUIframes tweaks and fixes to get rid of some annoying problems with frame re-ordering after deleting or installing frame-aware plugins. 0.6.0.5 - 2006/01/30 * groups now have their own alignment option. * Always left * Always right * Automatic (in that case, RTL detection will determine whether the group name will be right or left aligned). ! fixed hit-testing for right-aligned groups (you can now click on the expand/collapse icon even if it is aligned to the right). * sort by last message works "dynamically" now (when new messages or events arrive, the contact list will update its sorting). + started floating contacts implementation. Quite big changes, will take a while until it is usable. 0.6.0.4 - 2006/01/27 ! The option "If window is partially covered..." should no longer affect the minimize/maximize feature when the visual style in use has a rounded window frame. ! more docking tweaks (still possible minor visual glitches) * tweaked RTL detection for group names and completely disabled RTL for the non- unicode build. ! fixed long standing CLUIframes bug - Position up/down is now working for all top or bottom aligned frames, so re-arranging frames shouldn't be longer a problem. 0.6.0.3 - 2006/01/27 * fixed possible memory allocation - related crash on startup. 0.6.0.2 - 2006/01/27 * still bugfixing phase. Some troubles with autosizing were fixed. fix: sticky taskbar button when there shouldn't be one (e.g. borderless mode) restored the old way of skinning the clist with the desktop wallpaper (the option "Use these settings to skin the entire background" now works like it did in older builds). * added "priority contacts" - you can toggle a priority contact in the contact menu (right click). A priority contact will always be on top of the list or its group and override the normal sorting order. If there are multiple priority contacts per group, then they will be sorted according to the normal contact list sorting, but will still all stay on top of the group. * added multilevel sorting. Up to 3 levels of sorting can be selected to sort the clist. There are 4 available sorting criterias, as following: * name * protocol * status * last message received The feature works similar to the sorting in clist_modern. It respects the setting "Do not separate offline contacts" and will also take priority contacts into account. * improved docking. Should now work again, but the clist must have one of the following frame styles: * tool window * thin border * no border. With the default border/title bar, docking doesn't work (may or may be not fixed in the future, but it doesn't matter much - most people prefer to dock the clist without any title bar at all. * status floater fixed. In some cases, it appeared when it shouldn't (auto-hide was "reversed"). Also, the event area on the status floater will now clear events when the clist is hidden. 0.6.0.00 - 2006 * from now on, clist_nicer+ is based on the new clist interface code which was introduced in 0.4.3.x (nightly build #42). It is no longer compatible with older versions of the miranda core and requires a recent core + database plugin. We call this "post clist revolution", because the changes in the contact list api were HUGE and required a lot of changes to all contact list plugins. 0.5.1.17 - 2005/11/20 ! fixed a few minimize/maximize issues with various border styles. Minimize now always follow the "miniemize to tray" setting 0.5.1.16 - 2005/11/20 + added UNICODE_AWARE so that a unicode core will not reject the contact list. 0.5.1.15 - 2005/11/05 ! toolbar icon bugs (introduced in .14) fixed. ! fixed flickering group header items when group skin items are set to be ignored. * GDI+ text rendering is disabled since the results were not satisfying. You can still enable it if you want. Use dbeditor and create the following setting: CLC/gdiplustext (BYTE value, set it to 1). + added per contact skin items. There is no UI for that (and there probably won't come one). It can be done by editing a .ini style file which can be loaded when at startup or during runtime (from the Background+ options page). See the included contacts.cln for description how per contact skinning works and how to create your own personal .ini file. Note that per contact skinning should be considered an advanced and probably rarely used feature. Future enahancements, like more advanced contact matching, are possible, but I don't think I'll make an UI for it. * moved the invisible/visible icons to the right so they are now aligned with the other extra icons. Looks better, also it makes much better text flow possible. If the avatar is high enough to allow more than 2 lines of text, the 2nd row (status message) will wrap and show with multiple lines (if needed). The text flows around the icons so that the available space is used in the best possible way. + added ability to right align the entire contact list. This will just mirror the entire display, so right becomes left and vice versa. On the advanced options page you can specify when this should happen. + added new toolbarbutton. "Status menu" -> can be used to set and show the current global status. + added option to set the border and titlebar type on Options->Contact List->Window. 4 options are possible. * Normal (normal title bar, window frame) * Tool window (toolstyle titlebar, thinner window frame) * Thin border (one pixel, black border) * No border (nothing, no title bar, no window border). * BIG skinning changes. See the skinning.howto for more detail on how to use it. Along with this, some options now have different effects. Particularly the "Rounded window" and "Clip border by" options now only work when the clist is set to full transparency. If you only want to remove the border - don't use the clipping anymore, use the new "Border" option to set the title bar and border to "None". * several memory leaks fixed, optimized drawing performance. + smoother resizing in skinned and transparent mode + added a status floater (activate it in the contact lists context menu -> appearance. The floater shows the same status as the global status mode button (most online status mode) and the icon. The floater allows you to access: * the status menu (left click the icon) * the main menu (right click the floater anywhere). The floater can be skinned by defining its skin item (Background+ page). It can be transparent, have rounded corners and so on. You can drag the floater around with the left mouse button, its size, however, is automatically calculated so that the longest status mode text will "fit" on it. You can also set the floater to auto hide (context menu->Appearance->Auto Hide Floater) in which case it will only be visible when the contact list is minimized or hidden. And finally, the floater can show a copy of the event area. + changed RTL behaviour a bit. When rtl alignment is set to "Never", RTL text will be printed left to right, that is, no RTL alignment will be made in any case and the contact list will look like normal (left to right aligned) for all contacts. A new option "RTL TEXT only" has been added to the alignment options which will, when active, only align the text label, but not "mirror" the entire contact. RTL text is still autodetected, but the formatting depends on the setting of the "Right align" combo box. + added UNICODE_AWARE flag so that the clist will load with new unicode cores 0.5.1.14 - 2005/10/15 ! fixed misising status messages (rarely happening, but still possible) ! some skin items were ignoring margin settings (frame titles, event area). You can also specifiy the colors which will be used to draw the 3d border for the "Raised" and "Sunken" border styles. ! corrected docking with active border clipping (no more gaps between the clist window and the screen edge). * the import/export function now imports and exports more skin-related settings. * View Modes: new group entry -> Ungrouped contacts. Check if you want to include ungrouped contacts in the current view mode. Uncheck it, if ungrouped contacts should be filtered out. * cvs synced with clist_classic (minor translation fixes) ! fixed ugly tray tooltip on 9x systems (when using mTooltip) + added toolbar buttons for accessing the view mode functions (select, modify, clear). Remember, you can configure the toolbar by right clicking on any toolbar button and choosing the buttons you want to see from the button submenu. + added button skinning. There are 4 new items on the Background+ page. Toolbar buttons pressed/not pressed and UI buttons pressed/not pressed. The first is only used for the toolbar, the latter is used for all other buttons (the menu and status button at the bottom and the buttons in the view mode frame). Note that in order to get UI buttons skinned, you need to activate the "Set all buttons to skinned mode" option on the Background+ page. Also, for best results, enable the "Skin entire background" setting on the Background option page. With the two color boxes "3D border bright / dark" on the Background+ button you can configure the colors for 3d highlighting of skin items (when the border style is set to either "Raised" or "Sunken". * fixed small alignment bug (right aligned avatars and extra icons) * fixed several hittesting bugs for the extra icons when avatars are set to right aligned. * fixed bug when creating subgroup (garbage groupnames appearing) (unicode version only). + added separate row height value for group items (Options->Contact List->List). + improved performance - While connecting the protocols, the clist sorts and redraws less frequently than normal. Also, some minor improvements in the painting handler will skip things which don't need to be drawn more effectively. + added "drag on toolbar" - you can now drag the contact list window using any empty space on the toolbar. Effectively, the toolbar behaves like a title bar now. * fixed group name display (alignments, unneeded ellipsis appearing, quicksearch with centered group names). * put xstatus menu(s) directly as submenus below the the protocol menus. So they are now available from the status bar menus aswell. + many improvements added for fist time users. Using clist_nicer+ with a fresh profile now gives much better results. Frames are created properly, button bar is configured to only show the most important buttons and more. ! fixed the long standing bug which sometimes made a scrollbar appear on the title bar of the contact list frame. + improved and fixed fading - now fades the entire clist frame, including all subframes smoothly, also works together with transparent contact lists of all sorts. + added RTL support - UNICODE version ONLY (sorry, won't make it into the non-unicode build). This works automatically. When the contact list detects a nickname with hebrew or arabic characters, it displays the nickname RTL formatted. Same happens for status messages. On the "Advanced Options" page, you can set an option named "Reverse entire contact display for RTL" - what it does is basically simple. For RTL contacts, the entire layout of that contact will be flipped horizontally, that is, the icon appears on the right side, the nickname is printed RTL and so on. It just "mirrors" the contact display by using a mirrored device context. When editing a RTL nickname, you get a RTL aligned text edit box aswell. RTL also works for group names (again, automatically, no need for configuring anything). + the GDI+ renderer now produces better text output by using antialising and gamma correction for much smoother text. However, this CAN BE SLOW and if you have a full featured contact list, including avatars, extra icons, you may experience noticeable performance drops when using the GDI+ option. The text output DOES look better, though. You should only use it on fast systems. + added new toolbar buttons: ) 3 view mode buttons (select, configure, clear) ) button to open miranda main menu To configure visible buttons right click the button bar and select the buttons you wish to see from the submenu. 0.5.1.13 - 2005/10/15 * view modes which have been set to auto-expire won't expire as long as the mouse pointer is over the contact list * added a debuggin message when the "Hidden" value of a contact is set to 1 (causing the contact to be hidden on the clist). This is temporary and only to find out why somtimes contacts are set to hidden. 0.5.1.12 - 2005/10/15 ! fixed internal font dialog. ! fixed deleting last view mode from list creating "strange" view mode name. * contacts local time is now only shown when it actually differs from your own time- zone to keep the clist "cleaner" (there is an option for this, so you can still have local time display for all contacts with a valid time zone). * fixed: adding/removing subcontacts should now update the clist properly (still, make sure you have the latest MetaContacts plugin installed as clist_nicer+ relies on some of the newer features). ! fixed: last protocol did not appear in the skin configuration. ! fixed: hide per group wasn't working ! don't clip icon on the status button - only status text is clipped (when needed) ! fixed: redrawing issues when "Pin to desktop" is active. ! more redrawing issues with fading active etc.. ! fixed a few bugs with the menu bar ! fixed file dropping on contact list main window. * changed: View mode configuration. * Empty protocol or group selection boxes are now ignored. * Stickies can use their own status modes (per contact). To configure stickies, select the global status mode for sticky contacts using the status icons in the "*** All Contacts ***" row. You can then change each status mode for individual contacts. Remember that only checked contacts will be examined by the sticky filter, unchecked contacts will follow the global ruleset. * moved ICQ custom status menu from the main menu to the status menu (patch by nullbie - only works with recent ICQJ versions (alpha releases)). ! when multiple tray icons are visible and you have hidden one or more protocols (MetaContacts for example), flashing has been corrected (no icon will flash if the protocol causing the event has been hidden in the contact lists protocol order configuration). + show xstatus icons on the status bar (optional, can be enabled/disabled on Options->Contact List->Status bar 0.5.1.11 - 2005/10/04 - beta and unicode build only. ! status message wasn't properly clipped when visibility icon active. * multiple tray icons now follow the protocol configuration (protocols which are invisible in the status bar are now also invisible on the tray). * connecting icon(s) are now visible on the status button and in the tray. ! the row gap does no longer affect the minimum row height (the latter is enforced, even with a row gap in effect) ! improved meta support. clist_nicer+ does no longer use the "Meta Contacts hidden group hack", instead it detects subcontacts in another way. This needs a recent version of the MC protocol (0.9.13.4 MINIMUM) and improves the behaviour with server side contact lists, where the "hidden group hack" could cause strange effects. + added mTooltips over statusbar panels showing protocol name + statusmode. Requires a mToolTip plugin with service API (0.0.1.5 or later). Also, the tray tooltip has been replaced with a mTooltip (if mTooltip with service api is present). This removes the limitation of 127 characters for the tray tooltip which might be a problem when lots of protocols are installed. * NOTE FOR DEVELOPERS: * MS_CLIST_GETCONTACTDISPLAYNAME supports the GCDNF_UNICODE flag in lParam to get the contact name as wide string (compatible with clist_classic). * MS_CLIST_SYSTRAY_NOTIFY supports a NIIF_INTERN_UNICODE flag in MIRANDASYSTRAYNOTIFY.dwInfoFlags. If set, the service will treat all strings in the MIRANDASYSTRAYNOTIFY structure as wide strings (you'll probably have to cast the pointers to avoid compiler warnings). + added extra font setting for the event area. + Importing and exporting themes (.clist files) now also import or export all font settings, background configuration and the contact list window config. + custom hittesting now allows to resize the clist window even when it does not have a visible resizing border (e.g. when the border has been removed by TweakUI or the "Clip border" option. + option to disable the tray icon tooltips when hovering the contact list tray icon(s) (Options->Contact List) + added a first (and simple) versions of the "view modes" extension. A view mode is a contact filter, currently based on protocol, group and status mode and allows for quick filtering in the contact list. A new multiwindow frame has been added with a few buttons to select and configure available view modes. + added option to scale the extra icons (Options->Contact List->Window->Extra icon size) At the default value of 16 pixels (which is the default icon size), the icons won't be scaled. You can scale them down to 8 and up to 20 pixels if you want (of course, at a loss of quality - scaling small images like 16x16 icons won't give very beautiful results). NOTE: status icons are not affected by icon scaling, only the "extra" (right aligned) icons are (to save some space on the clist...) + ability to show contacts local time on the contact list. The following requirements must be fulfilled: * a timezone needs to be present (either set by the protocol (ICQ only) or set as user info using UserInfoEx or tabSRMMs per contact preferences dialog. * contact list must be in dual row mode (either forced or by using avatars large enough to make enough space for 2 lines of text). * the option to show local time needs to be enabled (Options->Contact List->Advanced options, where you set the dual row display options). NOTE: local timestamps are refreshed once per minute (which is enough and the time stamp is formatted according to your regional language settings. a new font setting (Contact list local time) has been added to the font configuration options. + added option: Contact List->Don't separate offline contacts (at the sorting options). When enabled, offline contacts will be sorted together with contacts of other status mode(s). This setting makes only real sense when using sort by protocol or by name. Make sure to disable the "dividers" on the Options->Contact List->List page, or else you'll get dividers when there shouldn't be any. ! fixed: the option "If window is partially covered, bring it to front instead of hiding it" now works when window clipping (clip border and rounded window options) are enabled. 0.5.1.10 - 2005/09/29 - beta and unicode build only. + new option: center status icons (Advanced option page, at the top). Effect: status icons are vertically and horizontally centered within their space. That works only when avatars are emabled. Use the "Always align icons and text for missing avatars" option to get a consistent space for both avatars and icons. This option also centers avatars horizontally within the available space (that is, if the avatars width is less than its height). * restored old behaviour of the "Always align icon and text for missing avatars" option. It now again allows an "empty" avatar space. ! fixed bug with subgroup indent ! fixed - main menu didn't always update when using menu bar. + ability to skin the status bar with a clist_nicer item. Eanble skinning on the status bar option page and set up the skin item on the Background+ page. + ability to skin the toolbar background (skin item on the Background+ page). To enable/disable a skinned toolbar, right click any toolbar button and select "skinned toolbar". + added "per protocol" skin items. Enable it on the Background+ page and set the skin items for each protocol. Protocol skin items have priority over status skin items, however, the text color is, by default taken from the status skin item. So you can have per-protocol background skins mixed with per-status text colors. If you don't want to mix, then check "Override per status text colors, so that items with a valid "per protocol" skin will not use the per status text color. For metacontacts: Unless the "Ignore all subcontact states" option is checked, metacontacts will be skinned according to their "real" protocol. Otherwise, you can define a protocol skin for the MetaContacts protocol. ! "sort by proto" now uses the protocol order defined under Options->protocols. It also properly sorts metacontacts according to their active subcontact (unless, the "Ignore all subcontact states" option is checked. + added the ability to show the "connecting" status for each protocol using a special icon for the status bar panel of that protocol. The icon is visible while the connection is "in progress". If you are using IcoLib, you can configure one connecting icon for each installed protocol, otherwise it is global and cannot be changed (unless, you edit the DLL). ! fixed all option pages so that the "Apply" button isn't enabled when the dialog opens. + support for the GCDNF_UNICODE flag added to the MS_CLIST_GETCONTACTDISPLAYNAME service. If this flag is set in the lParam, the service returns a widestring contact name. (Unicode build only). * the setting to configure the minimum row height has been moved away from the font configuration page and is now on the "List" page, because clist_nicer hides the font configuration page when the font service plugin is available. 0.5.1.9 - 2005/09/22 * Non-Unicode build should now again work with Miranda 0.4.0.1. * status bar doesn't look weird when "Make sections equal width" is unchecked * many internal code robustness updates + merged one critical unicode / group related bugfix from clist_classic * When sorting contacts by protocol, metacontacts are sorted by their current "real" protocol (the protocol which determines the most online contact). Note: Uncheck "Ignore all subcontact states" on the advanced option page to make this work. If the setting is checked, the contact list will ignore all subcontact state values and only use the master contact information. NOTE: this feature is incomplete, it does not react to protocol changes (yet). + new, experimental, autosizing optimization. Much less repainting and flickering when a large number of contacts go online/offline (e.g. while conncting a protocol). * changed the way selective status icons work a bit. The setting does no longer depend on "Show status icons" being off, and the "Always align..." option being on. Note that selective status icons only work with the avatar alignment set to "Far left". 0.5.1.8 - 2005/09/20 * Critical bug (hangup when status bar disabled) solved. 0.5.1.7 - 2005/09/20 ! items in protocol ordering dialog were not dragable (unicode build). ! The option "Automatically fill background with wallpaper" was crashing the plugin in the unicode build. 0.5.1.6 - 2005/09/19 - released as UNICODE only build (for testing). + added status bar protocol sorting + added new option on the Background+ page: Apply group indent to background drawing. When enabled, the indentation values for grouped contacts will also affect the background of the items, not only the contents. + BIG unicode changes. All clist_classic changes to allow Unicode contact and group names have been merged. This should, however, be considered experimental alpha code. There are probably bugs and it may crash. BACKUP your db before using the unicode build (that's generally a good idea when testing bleeding edge builds, including the nightly builds of the unicode core). + ability to show the ICQ extended status menu on the status menu. Patch by Nullbie - this feature requires a slightly modified ICQJ. Maybe, this code will make it into the official ICQJ version. ! fix: Move to Group->Root Group actually made the contact invisible, because it set the Group to an empty string (wrong, the Group entry needs to be deleted in the db). 0.5.1.5 - 2005/09/15 + added TweakUI - like full transparency. Setting is on the Window page (same place where you can set normal transparency). This setting can be mixed with active/ inactive transparency values, which will then control the transparency of the remaining parts of the window (fonts etc..). + added: double clicking the avatar opens the user info dialog. Enable it on Options->Contact List->List. * somewhat smoother and less "jumpy" resizing (new bugs/small visual glitches possible, especially with autosizing enabled). This includes "fast resizing" for manual resize operations (dragging the window border). Certain "expensive" paint operations are skipped to speed up resizing. A full window repaint is executed at the end of a resizing cycle. * fix: minor visual glitch with sunken frame and bottom buttons enabled. + added pflagnum_5 support to the status menu builder... ! fixed: status bar default setting was ignored for fresh profiles 0.5.1.4 - 2005/09/13 + added "move to group" contact menu entry + client icon update from clist_mw. Should be all there now. + "Automatically fill background with wallpaper" now also works with the new setting on the background page (use background for entire window). * The "Plus" page has been renamed to "Advanced options". Reason: "Plus" conflicts with a similar page of the popup plugin, and with some language packs the resulting trans- lation can be confusing - for example, in german language pack, plus is translated to "smilies and skins" (for the popup+ plugin) which doesn't really match the purpose of clist_nicer's former "Plus" page. "Advanaced options" is neutral and not confusing at all. + added the 2 new font settings for status messages and frame titles to the font service configuration. Consequently, when the font service plugin is installed and detected, clist_nicer+ disables its internal font configuration dialog. Also, the internal font configuration dialog has been moved to the "Customize" section. + added the genmenu group menu stuff (group, subgroup etc.) 0.5.1.3 - 2005/09/13 ! fix for status detection not working in some cases (too much optimizations done) 0.5.1.2 - 2005/09/13 ! row gap value wasn't loaded at startup. ! fixed problem with ICQ xstatus modes & messages * strip cr/lf sequences from status messages to avoid unreadable chars. * reorganized client icons and id strings * fixed dimmed avatar for idle contacts when using GDI+ + new setting on the "Advanced Options" page. "Don't request avatars for offline contacts". This option will, when enabled, prevent the contact list from requesting avatars using the avatar service when a contact is offline. The option is useful if your contact list is very large and the initial request for all avatars may cause a delay or if you have set your clist to display all contacts (including offline). Avatars will then be requested when a contact comes online. This option might also save quite some memory on large contact lists, because most of the time only a fraction of your contacts will be actually online. ! fixed hit-test (double click on extra icons...) * changed database paths for menu item configuration. Unfortunately, you may have to redo your menus :/ Reason: collisions when switching clists (mw, modern, nicer) may cause troubles with the menu system. clist_mw and _modern are already using different database paths, so clist_nicer also has to do so. + added a skin item for the event area. Also, the button is now gone and the entire event area is now clickable. The button just didn't look well with a skinned event area. ! fixed "not on list" font color was ignored. + added icon to show activity in irc channels, based on the visiblity setting. You need to have "Show visibility icons" enabled in order to show it. Icon is configureable via IcoLib, as always. * the detection for the "most online" protocol now ignores protocols which are not fully IM capable (like RSSNews) and don't support away status mode(s). This prevents the status button from showing always "Online", when a protocol cannot go into away mode (like RSS). 0.5.1.1 - 2005/09/09 ! fixed a few mw bugs (frame gap, some redraw issues). Additional pointer checks in AddFrame() ! fixed possible on exit crash (using deleted critical section) + added clist_nicer+ skin item for the frame title bar background. * some optimizations to resizing (clui frame mainly). + added extra icons (mail, sms, homepage + one reserved). Options are in Contact List->Window. The icons are clickable and open your default browser or email client respectively (double click needed). + frame title bar can now be fully skinned. A new font setting has been added to set the font + color for frame titles. + new setting: Clip border by (Window page). Will clip the main window border by x pixels on each side which can effectively be used to completely get rid of the contact lists border. This can work in combination with the "rounded window" setting on the same page. Note: may not fully work when autosizing is enabled. + new setting: Row gap (List page). Insert x pixels of gap after each contact on the list. The gap is transparent, so the background image (or color) will be visible here. This is somewhat different from the Background+ item configuration where a margin can be set for each side of a contact list item. The row gap is considered when calculating row heights, the individual item margins are not. * removed clist_nicers own copy of ICQ xstatus icons. These icons are now obtained by using the extraimages api (like clist_mw does). The ICQ protocol sends these icons on request. * the options to show extra and client icons were moved to the "Window" page, where you can also configure the other extra icons (email, homepage, URL etc..). In order to see mBirthday icons, you need to activate the "Reserved" and "Reserved2" entries. * the event area is now a frame of its own and can be moved anywhere you want it. Autohide feature does still work. 0.5.0.7 - 2005/08/30 - not officially released, for testing purpose only * GDI+ rendering added. Requires gdi+ installed - it is on all XP and most Win2K systems, others can get it here: http://www.microsoft.com/downloads/details.aspx?FamilyID=6a63ab9c-df12-4d41-933c-be590feaa05a&DisplayLang=en Using GDI+ for rendering the avatars gives better quality, especially for fully alpha- blended PNG images, but even normal bitmaps look better because of the higher quality image rescaling in gdi+. + the toolbar button for toggling sounds has now 2 icons showing the actual state of the sounds setting. + updated toolbar icons with the latest ttb icon set by Angeli-Ka * show xstatus (if set) on the status button (patch submitted by nullbie) + more GDI+ rendering - background items are now also rendered with GDI+ using antialiasing, so rounded contact list items should look better now. GDI+ is optional and needs to be enabled on the "Plus" page in the options tree. It cannot be enabled, if it isn't installed though. GDI+ is used with "delayed" linkage, so it shouldn't give you an error if the gdiplus.dll is not installed on your system. ! small bug with "far right" aligned avatars corrected (text overdrawing the avatars). + added customizable menus (main menu, status menu and contact menu only) - code from clist_mw, slightly changed because some _mw features are not in clist_nicer. + added multiwindow API, so all multiwindow plugins should work now, including top toolbar of course. * client icons are loaded "on demand" to save gdi resources 0.5.0.6 - 2005/08/27 + option to disable the expand/collapse icons for groups (Options->Contact List->List) If enabled, you'll have to double click the group label in order to expand/collapse a group. + added more client icons - thanks to Angeli-Ka for the icon set. + some performance optimizations (about +5k code size) * changed the status icon on the bottom status selection button. If you don't have set a preferred system tray icon on Options->contact list, the button will now show your "most online" status, using the global status icon. * visual corrections for multiline-status messages. only full rows of text are visible. ! fixed and added a few border styles for contact list items (Background+ page) 0.5.0.5 - 2005/08/25 + added rounded window frame + added support for database-cached Yahoo and GG status messages. Also, ICQ extended status messages can be shown on the contact list, since they are also saved to the database. - removed the "unknown" avatar feature. Since the avatar service now supports per protocol default images, it's rather pointless to have a fallback image in the clist itself. * reduced database reads and writes a lot (caching some configuration data). * slightly changed the way the clist determines if a second line of text is needed. There are now 4 modes availble, selectable via a combo box and they are considered in the following order: * Never - the 2nd line will never be visible, no matter how much space is available. If an avatar requires a larger row size, the nickname will be centered and the remaining space will be left empty. * Always - each contact will have a second row of text. * If space allows - The second row will be visible when the row height is already large enough (e.g. due to the avatar using a considerable amount of vertical space). * If needed - The second row will be visible if there is useful information to display, that is, the contact has set a status message or extended status mode (for ICQ contacts). The normal protocol status is not considered here. + some tweaks to avatar drawing - better clipping with rounded avatars, region based borders. + another memory overflow found and fixed in the DrawAlpha() function 0.5.0.4 - 2005/08/25 + bugfix for startup crash 0.5.0.3 - 2005/08/22 ! bugfix: when starting hidden/minimized, some buttons did not show up after restoring the clist until it was resized. * delete group warning dialog now shows the name of the group which is about to be deleted in the title bar (useful, if the delete group service was called by another plugin, and you therefore cannot know which group is affected). * embedded contact lists can now display avatars and use dual row mode. ! fixed quicksearch problems with avatars and dual row display. ! Background+ page was not translateable (inherited bug from original clist_nicer). + added option ("Plus page") to show the status msg instead of the status mode. Note that this only shows cached "CList" status messages and does NOT retrieve them actively. Also, you need to enable "Allow two rows of text" to show them. The order of tings shown in the 2nd line is (depending on availability): 1) Clist status message (if enabled on the option page) 2) Custom status mode name (ICQ only) 3) protocol status mode name (online, offline, away and so on...) ! fixed incorrect display of some contacts. + added "overlay" status icons which can be superimposed over avatars. Customization possible via IcoLib plugin. Enable them on the "Plus" option page. Thanks to Faith Healer for permission to use the icons. + added "selective status icon" support. This is a bit tricky. Basically, it fills the empty space for missing avatars with the protocol status icon. Selective status icons require the following: * option enabled (plus page) * Status icons switched off (plus page) * Avatars enabled * "Always align icons and text for missing avatars" enabled If these settings are in effect, then the empty space showing up if a contact has no avatar is filled with the protocol status icon. + added variable row heights. Thanks to pescuma for a really nice and clean implementation of this feature with minimal impact on the contact list core code. As a result, the avatar height is now a separate value and does no longer depend on the row height (set it on the "Plus" page - default are 28 pixels in height). + added support for the updater plugin by sje. Future versions of clist_nicer+ may be available by automatic updates ONLY ("major" releases will still be available in the file listing). 0.5.0.2 - 2005/08/06 * changed API of loadavatars. You need to update both .DLLs not only the clist_nicer_plus.dll. If you don't, it will crash. * better quality for "rounded" avatars. + option to always align nicknames and/or icons, even if there is NO avatar for a contact (just leave an empty space then). * if an extended status mode (ICQ) is set, it will be shown in the second line, instead of the normal protocol status. ! center group names now also works with the contact count numbers enabled. Also, draw lines along group names works with centered group names. + avatar alignment now supports 3 modes: * far left (avatar at the left edge of the contact list) * far right (avatar at the right edge) * with nickname (avatar just in front of the nickname, but right of the status icon). + some fixes to hottracking (works for ignored items). The option "ignore selection for group names" is now working. 0.5.0.1 - 2005/08/05 * hottrack item config moved to the item list. It can now be configured like any other item, except that it inherits the following stats from the underlying item. * corners * gradient TYPE (colors can be set) * margins colors and transparency value can be set for the hottracking item, but shape (corners), margins and gradient type cannot, because they need to be inherited from the item which is currently "hottracked". ! another bugfix with window layout when autosizing is enabled * changed sorting method. It now uses sorting based on current locale settings, which means it peroperly handles language specific characters like german umlauts. That also fixes wrong sortings with cyrillic nicknames. + avatars added. Yes, I don't like avatars on the contact list, but since it is requested so often... really, I need someone who can explain me why avatars are SO important in instant messaging... :) The options are, as always, in the context menu of the contact list. Avatars can be switched off, they can be ordered to left align (normally, they are just left of the nickname, but after the status icon) and they can have a border. Avatars follow the row height, so in order to get a reasonable avatar size, you should increase the row height (a value of 28 or more pixels already gives decent quality). They are also drawn with the alpha value of the background item, so they can be partially transparent. Avatars require the plugin LOADAVATARS.DLL, which is a separate plugin and works as some kind of avatar service in the background. + dual row mode added. When the row height allows for more than a single line of text (given the current fonts), a second line is added showing the status mode. Also, some icon position are changed in dual row mode and the visibility icon is moved to the 2nd row so it won't take space from the nickname. + some options to tweak the layout added. It is now possible to make the status icons optional, for example. + status icons are now optional (enable them via the context menu or use the new "Plus" option page. + new option page added (Contact List->Plus). Contains all the new settings for tweaking the layout and other stuff. 0.4.0.4 - 2005/07/13 * better client icon update ! evemt area only groups message events + timer based clist sorting added. This saves A LOT of sorting, especially while connecting multiple protocols and filling the contact list. It can reduce the number of sorting runs by a factor of 10. The disadvantage are very small delays in the range of 100 - 150 milliseconds. In most cases, you won't notice it. The timer based sorting can be disabled by creating a DWORD value in the CLC module. Name it "SortTimer" and set its value to 0. Alternatively, you can set the timer value in milliseconds, using the same db setting. Default is 150 ms and you can set it to any value between 50 and 500. Smaller and larger values will be ignored as they don't make sense. NOTE: restart required after changing the db setting. + added right margin indent value. Affects text, right-aligned icons only, but not the background (they already have individual margins for each item type). Options->Contact List->List. Basically, it prevents the client or extended status icon(s) to "touch" the right window border (which may look ugly). + added "full row selection". Simple, you don't HAVE to click on the contacts text any longer in order to select it. This conflicts with the "easy move" feature, unless you have some free space in your contact list. To disable full row select hold the SHIFT key while using the mouse, so you can still "easy drag" the contact list window around. You can enable/disable full row select under Options->Contact List->List Note: full row selection also impacts hottracking of items. + added hottracking with changing background color. Two new color fields are on the Background+ page which allow you to set the (background) colors for hottracked items. If a gradient has been set for an item type, hottracking uses both colors to build the new gradient, otherwise, only the first color is active. ! fixed a few redrawing/layout problems with the new window elements. ! fixed autosize-related focus stealing (ugly) + added a new skin item "First group on list" - allows to draw the first group header with a different skin. 0.4.0.3 - 2005/07/13 ! don't draw additional icons in "embedded" mode (e.g. if the clist control is being used in a dialog box like typing notify options. ! only show the toolbar config menu when right clicking over the toolbar. ! some visual glitches fixed when autosizing is on. 0.4.0.2 - 2005/07/09 ! fixed bug with fade in/out contact list ! fixed "sorting by name" bug (inherited from clist_classic, rather old bug) ! fixed metacontacts not disappearing from group when going offline - removed "simple" font configuration dialog. + added a context menu to allow configuration of some aspects of the button bar. You can increase/decrease the size of the buttons, can set them as flat or 3d, and you can disable visual styles for the buttons (may look better with some visual styles as they have problems to draw very small buttons). Also, you can now decide which buttons you want to see on the button bar, and which buttons you don't (that may be an opportunity to add some more buttons in the future). + added option to the contact list context menu -> use meta protocol icons. If enabled, icons for the meta protocol will be shown for metacontacts (instead of the actual protocol icons). ! some visual glitches fixed (especially, when TweakUI is enabled). ! another old bug fixed. Groups are now using the colors from the "Background+" page. + added the "Event Area". This is a small area at the bottom of the contact list which will show you the most recent contact list event (received message, file and so on...). If more than one event is waiting, a list of unhandled event is opened when you click the button in that area. This feature is, of course, optional. Right click the contact list and you'll find the options in the context menu. You can disable the event area or set it to auto- hide so it will only be visible when needed. + feature added: "Move events on top" - contacts with unread or "unhandled" events (simply, all flashing contacts) will stick on top of their group (or the entire contact list, if no groups are in use). This is optinonal, and can be configured at the "Contact List" main page (where you set other sorting options. 0.4.0.1 - 2005/07/08 - first public release