Looking for the latest version? Download Snarl-3.1-setup.exe (9.9 MB)
Home / Snarl / Current Beta
Name Modified Size Downloads / Week Status
Parent folder
Totals: 25 Items   222.8 MB 37
Snarl-3.1-beta-5-setup.exe 2014-02-15 9.9 MB 1111 weekly downloads
Snarl-3.1-beta-4-setup.exe 2014-02-14 9.9 MB 11 weekly downloads
readme.txt 2014-01-21 101.3 kB 22 weekly downloads
Snarl-3.1-beta-3a-setup.exe 2014-01-20 9.9 MB 11 weekly downloads
Snarl-3.1-beta-2-setup.exe 2014-01-10 9.8 MB 11 weekly downloads
Snarl-3.1-beta-1-setup.exe 2013-05-25 8.5 MB 11 weekly downloads
Snarl-3.0-beta-2-setup.exe 2012-08-30 8.3 MB 11 weekly downloads
Snarl-3.0-beta-1-setup.exe 2012-07-27 8.3 MB 22 weekly downloads
Snarl-2.6-alpha-4-setup.exe 2012-04-12 8.3 MB 11 weekly downloads
Snarl-2.6-alpha-3-setup.exe 2012-03-05 8.6 MB 11 weekly downloads
Snarl-2.6-alpha-2-setup.exe 2012-02-21 8.6 MB 11 weekly downloads
Snarl-2.6-alpha-1-setup.exe 2012-02-10 8.6 MB 11 weekly downloads
Snarl-2.5.1-beta-2-setup.exe 2012-01-25 8.7 MB 11 weekly downloads
Snarl-2.5.1-beta-1-setup.exe 2012-01-04 8.4 MB 11 weekly downloads
Snarl-2.5-beta3-setup.exe 2011-11-25 8.3 MB 11 weekly downloads
Snarl-2.5-beta2-setup.exe 2011-11-11 8.3 MB 11 weekly downloads
Snarl-2.5-beta1-setup.exe 2011-08-26 8.2 MB 11 weekly downloads
Snarl-2.4.1b3-setup.exe 2011-05-26 11.0 MB 11 weekly downloads
Snarl-2.4.1b2-setup.exe 2011-05-07 11.0 MB 11 weekly downloads
Snarl-2.4.1b1-setup.exe 2011-05-05 11.0 MB 11 weekly downloads
Snarl-2.4rc1-setup.exe 2011-03-26 10.5 MB 11 weekly downloads
Snarl-2.4b4-setup.exe 2011-02-13 10.1 MB 11 weekly downloads
Snarl-2.4b3-setup.exe 2011-01-30 10.0 MB 11 weekly downloads
Snarl-2.4b2-setup.exe 2010-12-08 9.3 MB 11 weekly downloads
Snarl-2.4b1-setup.exe 2010-11-12 9.3 MB 11 weekly downloads
Snarl Change Log ---------------- - Minor restructuring of the Event prefs sub pages. (45.23) - Released as 3.1 Beta 3. (45.22) - Fixed copyright. (45.22) - Added "FORWARD" identifier to SNP 3.0 header and incoming FORWARD packets are now given the SN_NF_FORWARD flag. (45.21) - Fixed two bugs which were causing issues with notification forwarding when using SNP 3.0. (45.19) - Released as 3.1 Beta 2. (45.18) - Registered extensions are now included in the Snarl Apps menu. Selecting an entry from the menu will cause the extension's settings panel (if it has one) to be displayed. (45.17) - Notify command now accepts "event" arument in place of "class". (45.17) - Added "events-add", "events-del" and "events-clear" commands. (45.17) - Snarl now always writes to snarl_log.txt; the setting simply indicates whether that's all it does. (45.17) - Display preview image is now created in %TEMP%\snarl.style.<name>.<scheme>.prvw. (45.16) - Application Roster now provides a global DefaultAppIcon() and BannedAppIcon() rather than loading them each time. (45.15) - Several icons are now passed as objects to Prefs Kit rather than by filename. (45.14) - Notification actions button moved to bottom right corner. (45.12) - Notification callback button text changed. (45.11) - Action menu icons are now cached at startup. (45.11) - Notification HUD layout cosmetic improvements. (45.9) - Cosmetic tweaks to some HUD content. (45.3) - Now using menu.library 2.0 to create the tray menu. This means we can have icons in menus again and, finally, have proper Missed Notifications and Snarl Apps sub- menus. (45.2) - Bumped to V45. (45.1) - Now Release 3.1. (44.93) - Added non-UI "feedback_on_mouseover" setting. If set to "1" will slightly darken non-click-through notifications while the mouse pointer is over them. (44.92) - Updated copyright information. (44.89) - Notifications->Layout->Drop Shadow slider now correctly configures itself when the panel is opened. (44.89) - Fixed bug which would crash Snarl if a drop shadow size of zero was selected. (44.89) - Released as 3.0.1. (44.88) - Manually revised version to show included missing libmmenu2.0 in installer. (44.88) - Released as 3.0. (44.87) - Moved Presence Overrides, Content Customisation and Redaction settings into sub-panel which can be accessed from the Event->[Advanced] page. (44.82) - Now sends a SNARL_CALLBACK_CLOSED signal when notifications are closed using either the "Close All" or "Close All from <App>" menu options. (44.79) - Revised default style. (44.78) - Bug identified in uLoadICO() which possibly (but not definitively) causes a crash when loading a 128x128x32 icon. Code has been put in place to abort the load if either the width or height of the retrieved icon is greater than 127 pixels. 'no_icon.png' is used instead. (44.67) - Revised per-event redirection back to being on a per-event basis. (44.58) - Redirects no longer appear in [Gateway] page. (44.58) - Released as 3.0 Beta 2. (44.56) - Fixed bug which was causing the wrong NOTIFY signal to be sent back via the Win32 transport. (44.56) - Added full API request functionality to the JSON handler and updated Snarl.js accordingly. To access the new functionality, use the following syntax: {"action":2,"payload":<<REQ>>}, where <<REQ>> is the unabridged Snarl API request. To use the new functionality from the .js file, use Snarl.dorequest(<<REQ>>). (44.55) - Fixed icon parsing issue with GNTP applications which use a resource identifier for their application icon. (44.55) - Renamed and released as R3.0 Beta 1. (44.54) - Class list in the Class Configuration panel wasn't updating when classes for the selected application were changed. Now fixed. (44.54) - New panel icons. (44.53) - Reworked Prefs panel content. (44.53) - Reworked Class Configuration panel sub tab layout. (44.53) - Released as 2.6 Alpha 4. (44.52) - Reinstated sending a SNARL_NOTIFY_INVOKED even when no dynamic callback provided to ensure backward compatability is maintained. (44.52) - Can now provide "log=0" in arguments passed to <AddClass> to prevent any notifications generated using the class from being logged. (44.51) - "Use Same Settings For All Classes?" toggle button wasn't setting itself correctly when the classes panel opened. Now fixed. (44.51) - GNTP handler now supports two custom headers: "X-Response-Redacted: <bool>" which, if True, excludes details about the machine and software versions in use from the response; "X-Notification-Duration: <secs>" which indicates the number of seconds the notification should be displayed for. Credit to Viscount for suggesting these. (44.51) - SNP2 response handler now returns human readable status code in capitals. Credit to Viscount for identifying the bug. (44.51) - App-Cache folder moved under %APPDATA% (thanks to Dithersky for suggesting this). (44.49) - Fixed crash that would happen under certain circumstances when processing a remotely downloaded image file. (44.49) - Can now stop failed extensions using the UI. (44.45) - Addressed a number of serious memory leaks to do with passing icons to the Prefs Kit by filename rather than by an exising object. Credit to Pako for taking the time to debug this. (44.45) - Full-screen detection wasn't excluding minimised application windows which could lead to a false-positive detection under certain circumstances - now fixed. (44.43) - Removing items from the Notification Centre wasn't actually removing them from the missed list - now fixed. (44.43) - Released as 2.6 Alpha 3. (44.33) - "Redirectors" are now known simply as "Redirects". (44.33) - Correctly update all lists and combos when the available styles change. (44.33) - Changed command-line arg "-r" (request) to "-p|--parse" (parse). (44.33) - Fixed bug which was preventing redirects from being permanently removed in some situations. Credit to Pako for spotting this. (44.33) - Re-enabled support for legacy SNARL_LOAD_EXTENSION and SNARL_UNLOAD_EXTENSION commands as snarlm.exe still issues these. (44.33) - Improved support for legacy SNARL_LOAD_STYLE_ENGINE and SNARL_UNLOAD_STYLE_ENGINE commands as snarlm.exe still issues these. (44.33) - Now correctly installs zipped runnable styles (.RSZ files) if they're passed as part of a command line. (44.33) - Added "mark as read" indicator to NC items. Clicking the indicator will remove the item from the NC without replaying it. (44.31) - Can now configure extensions even if they're in a FAILED state. (44.31) - Changed lots of system notifications to use the Welcome Message / Others class. (44.31) - Growl UDP registrations now use the remote host IP address rather than the host name. (44.31) - Added extra debug output to Growl UDP packet parsing. (44.31) - Notification Centre: can now close it by clicking the "X" button in the top right corner. (44.29) - Notification Centre: double-clicking a header expands/collapses the items within it; double-clicking an item replays it and removes it from the NC. (44.29) - Notification Centre: clicking the "X" button in a header removes all the items within the header. (44.29) - Notification Centre: automatically closes when the last item is removed. (44.29) - "Quit Snarl" menu item is now at the bottom of the menu. (44.29) - Class configuration panel can now be displayed on its own (that is, without the main panel being around). This is used by the "Notification Settings..." option in the notification menu. (44.29) - Can now configure Notification Centre colours. (44.29) - Released as 2.6 Alpha 2. (44.28) - Added Notification Centre. (44.27) - Shift-clicking a notification closes all notifications; Ctrl+Shift-clicking closes only those notifications from the same app. (44.26) - The label of the default callback button can now be customised using "callback- label=foo" in the {notify} request. (44.26) - New notification model. Actions gadget is larger and appears in the top left corner. If the notification has a callback, this is now displayed as a button in the bottom right of the notification. Clicking the notification body simply closes (SNARL_EVENT_CLOSED) the notification. (44.26) - Non-interactive notifications now fade to 25% opacity and fade faster. (44.25) - Added new global "Ignore mouse and other inputs" option. (44.25) - Style and Extension configuration panels are no longer displayed modal. (44.25) - Applications can no longer be automatically banned. Instead, uCheckDOS() now counts up how many notifications the application currently has visible and drops further notifications while this number is ten or more. (44.25) - Fixed a number of bugs to do with subscriptions and forwarding via SNP. (44.25) - Released as 2.6 Alpha 1. (44.24) - New "Block further notifications" option in notificaton menu. If selected, disables the class which generated the notification. (44.24) - Added per-class setting which prevents notifications from being programmatically hidden (closed). (44.24) - Added per-class notification text redaction. (44.24) - Styles can now provide customised Close and Actions gadgets. These should be named "close.png" and "actions.png" respectively and should be located in a "gadgets" sub folder within the style's own folder. (44.24) - SNP Subscriptions implemented. (44.23) - When an extension is enabled (loaded), Snarl now checks to see if its release number has changed and displays a notification if it has. (44.21) - Added per-class background tint option which is sent to the destination style as "background-tint=<rgba32>". Note that styles must support this value for it to work. (44.14) - Can now load, unload and configure extensions using the command line. (44.10) - Bumped to V44. (44.1) - Notification scaling re-implemented (was removed a while back). (43.80) - Completely revised [Redirect] page in class configuration panel. (43.80) - New Good and Bad icons. (43.80) - Minor cosmetic changes to [Style Engines] tab content. (43.80) - Removed [AddOns]->[Displays] tab. (43.80) - Moved style engines configuration panel into new [AddOns]->[Style Engines] tab (43.80) - Draws gear wheel emblem on notification if the default callback is set. (43.80) - "Quit" button on [Applications] page now works for registrations created by extensions. (43.80) - Can now display an extension's configuration settings without the need for Snarl's GUI to be open. (43.80) - Can now launch an extension's configuration settings from the [Apps] page by selecting it as per a regular application. (43.80) - Renamed "Options..." to "Actions..." in [Missed] and [Displayed] subtabs. (43.80) - Reworked Class Configuration panel page content to make it more logical. Fundamentally, the [Behaviour] and [Advanced] pages have had their content switched and some more commonly used options have been moved into the [Appearance] page. (43.80) - Improved way command-line arguments are processed. (43.80) - Released as 2.5.1 Beta 2. (43.73) - Added "Options..." button to [Missed] and [Displayed] subtabs. (43.73) - Fixed bug which sometimes prevented the "Copy to Clipboard" menu item from working. (43.73) - Added option on [General] page to enable/disable the close notification key combo. (43.73) - Minor cosmetic changes to scheme preview notification and Snarl Apps pop-up window. (43.72) - Added an undocumented S_STYLE_REDIRECT_TO_SCREEN (0x1000) flag which a redirect style can use to indicate it generates on-screen content. Snarl doesn't generate a "A notification using <style> was created" notification for styles which implement this value. (43.72) - Minor cosmetic changes to the [Presence] sub-pages. (43.72) - Removed non-functional "Install Extension..." button from the [Extensions] page. (43.72) - Renamed "Snarl Daemons" menu entry to "Snarl Specific Apps". (43.72) - Added undocumented "away" and "back" commands to SOS. These set and clear a new SN_PF_AWAY_SOS flag which is used purely for testing the user presence code. (43.71) - Holding down 'E' while starting Snarl prevents all extensions from starting; 'D' enables debug mode and 'S' prevents startup-sequence files from being launched. Holding down either CTRL key no longer enables debug mode. (43.71) - Snarl now launches links from USERDIR/startup-sequence and ALLUSERDIR/startup- sequence on startup. These are SSL2 links which follow are standard INI file format. See the end of this document for more information. Thanks to Arioch for suggesting this. (43.71) - Reworded inaccurate text on [Extensions] page. (43.71) - Added "keep-alive" to {register} command. Default is zero. Setting to "1" ensures the application is not removed during garbage collection if the creator has disappeared (useful for scripts and command prompt-launched stuff). (43.71) - Snarl now runs a garbage collection every 10 seconds looking for applications whose process is no longer running. Any orphans are then gracefully unregistered. (43.71) - Now looks in user folder for style engine links *after* loading links from INSTDIR\styles. (43.71) - Released as 2.5.1 Beta 1. (43.65) - New "sensitivity" argument added to {notify} command. Defined values are as follows: 0 - Normal; 16 - Personal; 32 - Private; 48 - Confidential. Note that Snarl simply passes the value on. (43.62) - Removed the "include_host_name_when_forwarding" option. Styles now need to include the computer name themselves. (43.62) - Can now send "recipient=/S" in {notify} request. Snarl will compare the value against the logged-on user's username and will discard any which don't match. (43.61) - Double-clicking the tray icon when there are missed notifications now opens the missed notifications panel. (43.60) - Fixed bug which caused all notification classes to default to "log always". (43.60) - Extensions and style engines are now stored (and loaded from) INSTDIR/extensions/ and INSTDIR/styles/ respectively. (43.59) - User-specific data folders are now created during start-up. (43.58) - Applications which register via TCP/IP on the local computer no longer get treated as remote applications. Specifically: there's no "... on <ip>" text and the registration notification say "Application registered". (43.57) - Fixed bug which broke SNP2. Credit to the G+ Notifier guys for spotting this. (43.55) - Added new "BlockUnknownApps" admin setting. If this is enabled ("1"), only applications which have existing .class files will be allowed to register with Snarl. (43.53) - Fixed a bug introduced in R2.4.2 which meant that if no notification title or text is supplied for {notify} you'll always receive an ERROR_ARG_MISSING, even if the notification class has a default title or text. Credit to Pako for spotting this. (43.53) - Changed the way missed notifications are counted. (43.52) - Extension icon loader now uses same code as notification icon loader. (43.52) - Better parsing of icon paths so filenames which contain commas should no longer be misunderstood as resource indicies. Credit to Toke for this. (43.52) - System info notification now displays local IP addresses and screen resolution. (43.52) - Fixed bug which caused the class default sound to play even if a notification provided its own specific sound. Credit to Pako for spotting this. (43.52) - Released as Snarl 2.5. (43.51) - Released as Snarl 2.5 Beta 3. (43.51) - Released as Snarl 2.5 Beta 2. (43.50) - Fixed bug to do with class default timeout. Credit to Pako for this. (43.50) - Fixed bug which caused notification_info->title to be empty if S_STYLE_IS_ WINDOWLESS is specified but neither of S_STYLE_V42_CONTENT nor S_STYLE_WANT_ APP_NAME are and "Include host name when forwarding" is disabled. Credit to Pako for spotting this. (43.35) - Style Engines can now support their own configuration interfaces. To do this, the style engine should respond to a call to IStyleEngine.StyleAt() where the index provided is zero by setting style_info->flags to S_STYLE_IS_CONFIGURABLE. Snarl will then call IStyleEngine.GetConfigWindow() with StyleName set to ".global". At this time, the engine should provide its own UI and return zero. Returning a non-zero value is not permitted and will break in future releases of Snarl. (43.34) - "Remove Selected" in the missed/history lists now correctly removes the selected items. (43.34) - External apps can now query Snarl's state using the new snGetSystemFlags() API. This currently returns the debug state, user away state and user busy state in the new SNARL_SYSTEM_FLAGS enum. (43.33) - Snarl now notifies on style drag-drop. (43.32) - Notification details menu now includes the source computer in the application name. (43.32) - Improvements to forwarding code. (43.32) - "Log to history" is now a 3-state control with the ability for the app to suggest what should be done if the user allows it. The app can do this by supplying "log=0" within the <notify> command to prevent the notification from being logged, otherwise it gets logged. (43.31) - Snarl no longer creates an empty file when an invalid icon path is provided. (43.31) - Notifications can now be replayed even while DnD mode is enabled. (43.31) - Changed "Missed Notifications..." menu item to a menu parent which will open a submenu of (at most) the last 10 missed notifications. Selecting an entry from the menu will reply the notification. (43.31) - Added GNTP flash policy support. (43.30) - Added "Restory Factory Settings" button to [Advanced] page (suggested by Shawn) which currently renames "config41.snarl", "styledefaults.conf" and anything with the extension of ".class" to "xxx.backup", launches the new DelayLoad app, and quits Snarl. (43.29) - Added priority background, title and text colours to default style settings. (43.21) - Pass-Thru implemented. This only applies when the user is Active (that is, when they're neither Away nor Busy). (43.21) - Moved [Pass-Thru] from [Display] into [Presence->Active]. (43.21) - Command-line parser now supports .runz and .webforward files which are copied/extracted accordingly. (43.20) - Can now drag-and-drop .runz (zipped runnable styles) and .webforward files onto the Preferences panel. Snarl will copy/extract accordingly and re-load styles. (43.20) - Added "never_ban" setting to the per-application config - if this is set to 1 the application will never be banned by Snarl. (43.20) - Improved way Missed and History lists are managed. (43.20) - History and Missed lists now limited to 1,000 items. (43.19) - NOTIFY will now register and the application if "app-sig" and "app- title" are both supplied. It will also add the required class if "class-id" and "class-name" are supplied. (43.18) - Listen for JSON and SNP/GNTP now enabled by default. (43.15) - Now listens on Port 5233 as well. (43.15) - Moved Missed Notifications into [History] page under new "Missed" tab. Suggested by Shawn. (43.14) - Added support for scripted callbacks. (43.8) - Extensions can now provide resource-based icons in extension_info-> iconpath. For this to work, the path must contain the path to the resource file, a comma, and the index of the icon to use - e.g. "shell32.dll,34". The path need not be absolute, so long as Windows can figure it out. (43.6) - Only !icons are now sent verbatim; cached icons are sent phat-encoded just like other filesystem ones. (43.2) - Content is now crafted by the subcriber roster before being passed to the individual subscribers. (43.2) - Behind-the-scenes forwarding improved significantly. (43.2) - Can now selectively enable and disable individual forwarders and subscribers via the [Network] page. (43.2) - "Has action" emblem is now drawn if the notification has a static click callback. (43.2) - Style defaults "width" is now a slider control. (43.2) - Released as R2.5 Beta 1. (43.1) - Bumped to V43. (43.1) - (42.176) - Remote applications are now determined at registration time only and an application is only considered remote if it's IP address is not one assigned to the local computer. (42.171) - SNP 2.0 notifications now include SNP_VERSION in the header. (42.171) - Priority and Sticky emblems are now drawn only on mouseover. Remote app emblem is no longer drawn. (42.171) - Notifications created by password-protected applications have the application's name in the HUD drawn in a different colour. (42.171) - Fixed bug whereby sounds provided in a <notify> request were not being played. Thanks to Danny Tuppeny for spotting this. (42.171) - SNP 2.0 requests are now treated as V42 calls. (42.171) - If a notification has a UID, the SNP 2.0 response now contains this rather than the notification's token. (42.171) - Added simplistic multi-monitor support such that the user can now select which screen notifications are displayed on. (42.169) - Cosmetic enhancements to Missed Notifications panel. (42.168) - Minor cosmetic enhancements made to [History] list content. (42.166) - Downloaded icons are now squared-up when they're saved to avoid issues when displaying them in the [History] list. (42.166) - Notification content is pre-processed to avoid confusing the Prefs Kit list box. (42.166) - Tray icon now dims when Snarl is stopped. (42.165) - Removed the Snarl Apps tray submenu and replaced it with a "Snarl Daemons" item. Selecting this causes a small selector window to open which contains all the apps that have registered as being Snarl- enabled (pre-V43) or Snarl Daemons (V43 on). Clicking anywhere other than on an item in the window causes the window to disappear; clicking on an item in the window will cause Snarl to run the selected app's configuration tool (if it has one) or to receive a SNARLAPP_ACTIVATED (V43 on) or SNARLAPP_DO_PREFS (pre-V43) notification if it has opted to receive callbacks. (42.165) - The tray icon now turns yellow when Snarl enters away mode. (42.162) - Removed "app-flags" argument from <register> and replaced it with "app- daemon". Setting this to "1" indicates the application is a daemon rather than GUI-based and thus Snarl should include it in the "Apps" tray submenu. The application should support both SNARLAPP_DO_PREFS and SNARLAPP_DO_ABOUT and *must* support the new SNARLAPP_ACTIVATED and SNARLAPP_QUIT_REQUESTED events. SNARLAPP_ACTIVATED is posted whenever the user selects the app's entry in the tray menu; SNARLAPP_QUIT_ REQUESTED is sent when the user clicks the (new) "Quit" toolbar button in the [Apps] page. Note these events are simply posted to the app; Snarl is not interested in receiving a response to them. (42.154) - Wasn't returning ERROR_NOT_RUNNING under V42 when stopped. Now fixed. Credit to JonusC for spotting this. (42.152) - Added new [History] page. (42.151) - Locally registered SNP3 applications which use the new "app-flags" parameter can now receive two new callbacks - SNARL_NOTIFY_APP_DO_ABOUT and SNARL_NOTIFY_APP_DO_PREFS - which indicate the app should display information or its configuration panel respectively. (42.150) - FindNotification() now sets lasterror to ARG_MISSING if neither a token or UID is specified. (42.150) - Improved <addaction> command stability error-checking. (42.150) - "Make sticky" menu item now properly sets the notification as sticky. (42.150) - Added "app-flags" argument to <register> command. This can be used in place of the unintuitive "flags" parameter. Current supported values are "prefs" and "about". (42.150) - Icons can now be specified using the file:// protocol. Credit to Shawn McTear for the suggestion. (42.150) - Applications can now provide "hint" when registering. This is displayed whenever the "Details..." button in [Apps] is clicked. (42.150) - Applications can now provide "config-tool" when registering. This should contain the path to an executable that will be launched by Snarl when either the "Settings..." button in [Apps] is clicked, or when the entry in the tray "Apps" sub-menu is selected. (42.150) - Improved scheme preview notification content. (42.150) - Improvements and bug fixes to the default style. (42.150) - Added new [Display/Defaults] sub page. This uses values stored in /etc/ styledefaults.conf to control the internal style ("Default"). External styles can (and *should*) also offer the user the option of using these defaults. (42.150) - When unregistering an application via the [Apps] page, Snarl will now prompt the user if they want to delete the persistent settings associated with the app. (42.150) - Notification generated by the [Apps] page "Details..." button now uses a UID to prevent multiple copies appearing. (42.150) - <Register> now supports "app-title" (preferred over "title"). Credit to Shawn McTear for the suggestion. (42.150) - Default away mode setting is now "Log As Missed". (42.150) - Low priority notification logic changed. Now each registered application can have a single low priority notification on-screen (as opposed to a single global notification). Credit to Patrick von Reth. (42.150) - Remote icons are now saved using GUIDs rather than calculated file names. They are also managed in a cache controlled by the notification roster to allow for faster access to recurring URLs. A new button - "Empty Icon Cache" - has been added to [Advanced/General] which will forcabily clear the icon cache, although the cache is emptied whenever the notification roster is closed. Credit to Sven for identifying the original bug which led to this feature. (42.150) - Bug that stopped notification content from updating when using a V42 style fixed. (42.149) - Can now assign custom actions on a class-by-class basis. (42.149) - Bug in misc.resource (and misc2.resource) BPackedData causing problems with notifications fixed temporarily (will need fixing in both resources). This showed itself in a number of GNTP applications so credit to Skip and Pieter for raising it. (42.147) - <addclass> now returns ARG_MISSING if neither a token or app-sig is provided and NOT_REGISTERED if no applications have been registered. Credit to Shawn McTeer. (42.146) - SNP3 response now includes Snarl sub-version number in "x-daemon" header whenever appropriate. (42.146) - SNP2 and SNP1 responses now include current supported SNP version. (42.146) - Bugs in SNP2 handling code fixed. Credit to Shawn McTeer. (42.146) - GNTP handling code now removes whitespace as per clarification from GNTP authors. (42.145) - Renamed "Shadowing" to "Pass-Thru" in preferences panel. (42.144) - Restored sound settings into [Behaviour] sub page. (42.144) - Created new [Pass-Thru] display sub page. (42.144) - Revised SNP3.0 response specification and added callback support. (42.137) - Support for phat64 icons added to apps, classes and notifications (create and update). (42.135) - SNP3.0 FORWARD response reworked and icon sending added. If the icon is a URL or !icon then it's simply added to the response as "icon: <url|!>"; if the icon is a path to an image then it's encoded in a slightly modified version of Base64 (CRLF's are replaced with #'s) and added to the response as "icon-phat64: <data>". We use "icon-phat64:" as the encoding used is *different* to that used in SNP2. (42.134) - Applications can now be registered without providing a signature so long as a title is specified. For reference the signature will be created with the title converted to lowercase, any spaces replaced with underscores and prefixed with "application/x-". (42.132) - Apps which are remotely registered now get "remote_app.png" as their icon if no other icon is specified. (42.131) - Added further SNP3 request parsing. (42.131) - Added placeholder SNP3 request parsing. (42.130) - API version is now correctly stored in notification info for V42 and V41 requests (it remains zero for pre-V41). It's also displayed in the notification's "Details" sub-menu. (42.130) - [Shadowing] content moved into [Behaviour]. (42.130) - [Federation] renamed to [Sounds] and sound controls moved into it. (42.130) - Can now manually block apps via the [Apps] page. (42.130) - Released as 2.4.2 DR2 (42.128) - Line overflow trimming wasn't working for V42 styles, now fixed. (42.126) - Split [Advanced] page into [General], [Security] and [Debug] tabs. [Debug] tab is only shown if debug mode is enabled. (42.126) - Debug mode is now always enabled for alpha and DR releases. (42.126) - Added "Revoke Block" button to apps page. (42.125) - Added option to prevent the default callback of a notification being set to a URL. (42.123) - Added basic DoS protection. (42.123) - Resolved memory leak caused by notifications which would end up off-screen not being properly disposed of. (42.123) - API requests which do not specify a PID in wParam are now blocked. (42.123) - Debug mode is now always enabled for beta releases. (42.122) - The 'Actions' indicator icon is now displayed if a notification has a default callback. (42.122) - Applications can now specify a URL-based application icon when registering. The icon will be initiated as an asynchronous download and will be cached in the new /etc/icons/app-cache folder. The icon is not deleted, thus subsequent registrations will pick it up. (42.122) - Added an option to automatically detect if the notification text is a URL (specifically - begins with "http(s)://") and set the default call- back to it if it does (and no default callback already specified). (42.122) - Added option to only allow password-protected applications to register. (42.122) - Fixed bug in [Display|Appearance] subpage which cause Snarl to crash when opening its preferences under certain conditions. (42.121) - Fixed a bug which meant Notifications would be shadowed twice if a remote icon was used. (42.110) - Extension exclude list wasn't being updated. Now fixed. (42.108) - Fixed bug in notification roster which meant shadowed notifications would appears twice when a remote icon was specified. (42.107) - Major improvements to Run File 2.0 style. Schemes now have a configurable name which is stored in the .runfile configuration file. The file's name is not configurable via the UI and thus provides a constant for the scheme. Type 1 schemes are now known as "simple", with type 2 and 3 schemes as "complex" and "unabridged" respectively. Type 3 schemes now utilise the template parameter which is passed prefixed to the notification content. The link to the user guide and the hint text has been moved into the new scheme management panel and schemes are now created and edited via this panel. (42.106) - Actions indicator is now drawn when actions widget is visible. (42.106) - Renamed emblem and widget icons. (42.106) - Can now select notification HUD icons via [Display] page. Dario's "Greyscale" theme is included with Snarl. (42.106) - Added new per-app "block_if_foreground" setting which will discard the notification if the appropriate setting is enabled and the application which is creating it is the foreground app. This only works for applications registered via the Win32 API. (42.106) - Added new "Applications must register before creating Notifications?" setting to [Advanced] page. (42.106) - Bumped Run File style to 2.0 and changes the way it saves the scheme info. (42.106) - Added "Hide All Notifications" main (tray) menu option. (42.106) - Added "-restart", "-unload" and "-load" command-line arguments. These respectively restart, unload and load a style or extension based on the classid (including .qualifier) of the item in question. (42.105) - Previously, if a managed style didn't provide suitable content for a notification, Snarl would not display the notification. This has now been fixed, with Snarl using the built-in style. (42.102) - Extension management significantly improved in a similar way to style engine management. (42.102) - Style engine management significantly improved. All registered style engines are now displayed in the Styles/Advanced... panel and can be enabled or disabled on an engine by engine basis. (42.102) - Now registers system keys Win+Esc and Win+Ctrl+Esc which close the most recent notification and all notifications respectively. (42.102) - Fixed bug in SNP2 socket handling code which was causing requests to be mistakenly handled as GNTP. (42.102) - Tidied up GNTP and SNP socket binding code. We now use the wildcard IP address ( rather than enumerating all local addresses. (42.102) - Released as R2.4.1. (42.101) - Released as R2.4.1 b3. (42.101) - Headers beginning with "Data-" in a GNTP notification request are now stored and included in any subsequent CALLBACK response. (42.101) - Fixed bug in GNTP notification parsing code which wasn't saving embedded icons out. (42.101) - Snarl will now check for a new beta release on startup if config entry "auto_beta_update" is set to "1". There is currently no GUI setting for this, hence the config file must be edited manually. (42.101) - If no icon is provided by an application, Snarl will now attempt to use the first icon in the application's executable. This only applies to applications which register using the Win32 messaging subsystem and who provide their PID in wParam when sending the WM_COPYDATA message. (42.100) - Released as R2.4.1 b2. (42.99) - Fixed bug which was allowing multiple low-priority notifications to appear when using a password. (42.99) - !icons are now displayed correctly in the application list. (42.99) - Fixed bug in GNTP socket callback response content. (42.99) - Class configuration panel [Forwarding] page renamed to [Shadowing]. (42.99) - Implemented GNTP socket callbacks. (42.99) - Missed Notifications panel now displays !icons correctly. (42.99) - Notifications can now request a particular style by using the new "style=<style>/<scheme>" argument within <notify>. This is only a request however; it's not guaranteed to be honoured. (42.99) - Released as R2.4.1 b1. (42.98) - Further improvements to the missed notifications panel. (42.98) - GNTP notifications will now attempt to use the class icon and then application icon (in that order) if no notification icon is provided. (42.96) - GNTP handling code largely rewritten to be more robust. (42.96) - Bug associated with adding actions to a notification in the wait queue fixed. (42.89) - GrowlNet applications running locally are no longer mistakenly identified as remote apps. (42.88) - Legacy API functions are now treated as just that, and receive legacy support accordingly. At the moment this simply resolves itself as to whether the sending app is notified of right- and middle-button click events. (42.87) - Fixed a number of issues to do with notification updating when V42 styles are used. (42.86) - Added configurable option to allow legacy support of right- and middle-button clicks. (42.83) - <Notify> now supports "class" keyword to identify the class to use. "id" is still supported of course. (42.81) - GNTP applications running locally are no longer mistakenly identified as remote apps. (42.80) - Possible fix for GNTP UTF8 bug. (42.79) - Fixed a number of bugs in the GNTP icon handling code. (42.72) - SNP 1.0 error handling is now more robust. (42.67) - Missed notifications panel reworked and improved. (42.66) - Significant reworking to the notification roster. (42.66) - Right-clicking a notification now pops open the notification's context menu if no custom menu is defined. This means that the SNARL_CALLBACK_R_CLICK event, deprecated as of R2.4, is no longer sent. (42.65) - Released as R2.4. (42.62) - Snarl no longer mistakes the Windows 7 Flip (Win+TAB) window as a full screen app. (42.62) - Fixed issue with the Missed Notifications notification (sic) appearing even when no notifications had been missed. (42.61) - Added "Recreate Tray Icon" button to [Advanced] page while will ask Snarl to put its icon back into the system tray if it should disappear for some arcane reason. Note that the icon will only be created if admin and user preference settings allow it. (42.60) - Improved the way the preferences panel is displayed. (42.60) - Moved TDebugPage code into frmAbout.NewDoPrefs(). (42.60) - Fixed a number of bugs to do with string processing which would manifest if a request of more than 32767 bytes was sent to Snarl. (42.59) - Default style is now selected in the [Styles] page. (42.59) - R2.4 Beta 4. (42.58) - NotificationRoster.Update() now supports "callback", "reply-to", "reply", "icon", "icon-base64" and "uid" args for both on-screen and missed notifications. On-screen notifications can also have their duration modified via the "timeout" arg. (42.58) - NotificationRoster.Update() will now update missed notification content, if it's still in the missed list. (42.58) - Timestamp content displayed in notification during mouse-over is now relative. Values can be "Just now" (less than a minute ago), "x min(s) ago" or "x hour(s) ago". If the notification was created 24 or more hours ago, the date and time is displayed. (42.58) - If the "uid" arg is used in <Notify> and a notification with the uid is still visible or is in the missed list, then the existing notification is updated with the provided content. (42.56) - Removed support for "replace-uid", "update-uid", and "merge-uid" from <Notify> for now while the specifics of these are better developed. (42.56) - App's name is now drawn in bottom-right corner of notification while mouse pointer is over the notification. (42.56) - Added new [SetMode] request. Currently this only supports a single argument ("Busy") which can be used to set Snarl's busy (DND) mode from an external source. In order to do this, the application must be registered with Snarl and must supply its signature ("app-sig") or token ("token") and password ("password") if necessary. (42.56) - Added new SNARL_ERROR_INVALID_ARG (108) error. (42.56) - Added "trash", "mycomputer" and "nethood" actions to !system command (42.56) - Fixed bug processing embedded actions in <Notify>. (42.55) - <RemClass> and <ClearClasses> requests now accepts app-sig parameter. (42.53) - Fixed bug in TNotificationRoster.Add() whereby delayed notifications didn't have the BPackedData "Args" parameter included. (42.51) - Corrected some issues with Base64 decode routine. (42.51) - Added Base64-encoded icon support to <AddClass>. (42.51) - Added support for Base64-encoded icon data within <Notify>. Parameter name is "icon-base64" and encoded data should be terminated with percent characters, not equals signs. (42.48) - Fixed bugs around the title/app name logic in the notification forwarding code. (42.47) - Bumped back to Beta 4. (42.47) - Added option to include the computer name in the title of forwarded notifications. (42.47) - Minor layout alterations to some prefs pages. (42.46) - Fixed bug in Notification Roster to do with styles and the S_STYLE_WANT_APP_NAME flag whereby notifications would sometimes end up with the title and application name set twice. (42.43) - Added "Forward" option to the Away and Busy action buttons. (42.43) - Split presence settings out into new [Presence] page. (42.43) - Clarified wording in the snDoRequest() helper explaination. (42.43) - Split the [Appearance & Layout] sub-page into separate [Appearance] and [Layout] pages. (42.43) - Added basic style pass-through functionality although this will most likely remain private/undocumented until V43. (42.43) - Minor cosmetic changes to [General] page. (42.43) - Included missing "schemes.conf" in Smooth style folder. (42.43) - Minor cosmetic changes to [Network] page. (42.43) - DND extension folder removed. (42.43) - Default style is now Corporate/Standard. (42.43) - Copyright bumped to 2011. (42.43) - Rebranded as Beta 3. (42.42) - Slight improvement to missed notification checking logic. (42.42) - Renamed "Do Nothing" presence action to "Discard". (42.41) - Converted Run File style to V42 and added support for any notification elements prefixed with "data-" and "value-" which are passed to the target file as further arguments. (42.40) - Added support for "&&" and "==" pairs in notification elements which are translated into single "&" and "=" respectively. This is the preferred way for notifications to include "&" and "=" characters. (42.40) - Snarl Welcome Message notification class renamed to SNARL_CLASS_GENERAL and extended to cover other notifications such as the "update available" and "missed notifications" ones. (42.40) - SNARL_USER_AWAY and SNARL_USER_BACK are now sent to all registered applications when the user's presence switches to and from Away mode. (42.40) - Added [Set Away when Screensaver] option as Windows NT systems don't actually lock the computer until input is detected while the screensaver is running. (42.40) - Full-screen app detection now sets/clears DND mode rather than away mode. User-enabled DND is now a flag as well. May still re-add an API to allow external apps to set and clear DND status. (42.40) - A successful re-registration now updates the application's icon, reply- to window and reply messages if any of these are provided. (42.40) - Added priority emblem which is drawn over any high priority notifications. (42.40) - Improvements to the scheme preview code. (42.40) - Removed ununsed internal E_DEFAULT_DURATION constant. (42.40) - Merged the [General] and [Advanced] page content into the main form, doing away with the two class objects. (42.40) - Fixed a number of cosmetic bugs in the scheme preview code. (42.40) - Changes made to Away and Busy (DnD) logic. Now only the user can enable and disable Do Not Disturb mode (via the tray icon menu). Similarly, Away mode can only be set programmatically in response to certain system events. (42.40) - Removed support for private E_SET_DONOTDISTURB external API, making the DND extension redundant. (42.40) - Moved full-screen app and computer lock/unlock detection into Snarl, effectively doing away with the DND extension. (42.40) - We now use the "no_icon" icon when applications without icons register and unregister. (42.39) - Fixed a number of bugs and glitches within the notification drawing and fading code. (42.38) - Click-through notifications were grabbing the keyboard focus on mouse- over. Now fixed. (42.38) - GNTP and GrowlNet priorities are now passed through unchanged allowing V42 styles to handle different priorities. (As an aside, although the only official Snarl priorities are -1, 0 and +1, the unofficial position is that the priority should be treated as signed byte, thus allowing for priorities ranging from -128 to +127). (42.38) - Added code to handle restoring the tray icon after an Explorer crash. (42.38) - Improved distinction between sticky and away functionality. When sticky notifications are enabled, *all* notifications are sticky, regardless of priority. When away mode is enabled, only high priority notifications are made sticky. (42.38) - Re-instated idle timer and associated user-definable delay setting. This now enables away mode when the delay is reached with no user activity in between. (42.38) - Released as R2.4 DR7. (42.37) - Improved way notification forwarding is managed. Notifications may now be forwarded based on one or more of the following conditions being met: away, busy or any other time. (42.36) - Prefs icons changed to use Faenza set. (42.35) - Split class configuration [Extras] page into [Forwarding] and [Advanced] pages. (42.35) - Added emblem which identifies sticky notifications. (42.35) - Reworked the way actions are managed. Most significant advantage is that actions can now be stored (and accessed) for missed notifications. (42.35) - API return value changes mean we can no longer use the result-plus- last-error model so <IsVisible> now returns SNARL_SUCCESS if the requested notification is still on-screen and a new (V42 only) <WasMissed> action will return SNARL_SUCCESS if the notification was placed in the missed list. (42.35) - <Notify> action "replace" and "update" args renamed to "replace- uid" and "update-uid" respectively and now expect a notification UID rather than a token. (42.35) - All V42 Windows API functions now signal an error in the return value of snDoAction(). The return value can be one of three possibilities: zero (success), +ve (success and a usable number), or -ve (an error). The actual error can be determined by checking ABS(return_value) against the error list. "lasterror" is thus no longer a recognised action under V42. (42.35) - Added new "uid" argument to <Notify> which can be used to uniquely identify a notification on a per-app basis. (42.34) - Internal T_NOTIFICATION struct used by Notification Roster stream- lined. (42.34) - Private SNARL_COUNT_NOTIFICATIONS command removed. (42.34) - Can now include zero or more "action=<label>,<command>" arguments in a <Notify> request. (42.34) - Win32 action and menu dynamic callbacks now send the command (with the "@" prefix removed) cast as an Int16. (42.34) - Notification right-click menu item selection now works with SNP- generated notificatons (it is still deprecated however). (42.34) - <Register>, <Unregister>, <AddClass> and <Notify> now all use "app- sig" as the application signature argument. <Register> still accepts "id" for backwards compatibility reasons. (42.32) - <AddClass> now accepts an application signature as an alternative to an application token. Use "app=<sig>". (42.31) - Reverted the "Missed Notifications" notification back to using the default callback rather than an action to open the missed list. (42.31) - Application signature must not contain spaces (a "missing arg" error will result if it does). GrowlNet register command ammended to replace spaces with underscores. (42.30) - <Unregister> action now accepts an "id" argument which should be the signature of the application to unregister. Likewise, <Notify> now accepts an "app" argument as in lieu of an application token. (42.27) - Minor bug fixes and code tweaks. (42.26) - Notification actions must now have a command. Attempting to add an action with no command now fails. If a command begins with '@' it is sent back to the app which added it either verbatim (for SNP) or using the item index (win32). (42.23) - Refinements to notification callbacks. Right-clicking and middle- clicking are now deprecated although the Win32 API still sends the appropriate message to ensure backwards-compatibility with older applications. The "auto dismiss" flag introduced during the early V42 development phase has been removed. (42.22) - Removed V41 include. (42.22) - Added rudimentary support for some GNTP functionality (specifically application registration and notification creation. (42.22) - Removed dependency on legacy include file and moved remaining legacy constants into new "deprecated" module. These will be retained for as long as we support the 1.x API. (42.21) - New VB5/VB6 V42 include file which now uses the Mk.3 Win32 low-level transport. (42.21) - Implemented new Mk.3 low-level transport (see separate notes) and removed temporary SNARL42_PARSE command. (42.21) - Application re-registration now requires the password supplied when the application was first registered. (42.21) - About page now checks existence of the Calibri font and reverts to Tahoma. (42.21) - Rebranded "Default Ack" and "Acknowledge" to "Callback". (42.21) - Clicking the "Details" button on the Apps page will, for those apps which don't provide their own information, generate a notification with basic information about the application. (42.21) - Released as R2.4 DR6. (42.20) - Snarl now performs URL decoding on any incoming SNP2.0 and Win32 packets. Outgoing notifications (e.g. via the forwarding subsystem) are now URL-encoded as well. (42.20) - Notification forwarding completely reworked to use SNP2.0 (so, at present, forwarding to computers not running Snarl 2.4 is broken) and removed the reliance on the deprecated Snarl Network Bridge library. (42.20) - If a notification is successfully merged, LastError is now set to WAS_MERGED to indicate this. (42.20) - Updated credits. (42.20) - Added sn42Send() which takes two parameters: "Action" and "Args". "Action" is the SNP2.0 action to perform; "Args" contains SNP2.0- formatted arguments. (42.20) - Tidied up VB6 include file. (42.20) - The "secure" emblem is now only drawn on the registration notification, not subsequent notifications. (42.20) - Further work done on consolidating the SNP2.0 and Win32 api's. (42.20) - Implemented simplistic sending of icon data over SNP using a modified form of Base64 encoding. (42.20) - Unregistering and updating a password-protected application now fails if the correct password is not supplied. (42.20) - SNP2.0-created notifications now receive replies to the remote port when a notification times out, etc. (42.19) - Added password support for applications. If a password is supplied by an application during registration, the same password must be used whenever a new notification is created. (42.18) - Added a new emblem which appears in any notifications generated by remote applications. (42.18) - Added support for incoming Growl UDP notifications on port 9887 (same as SNP). Growl applications can register, add notification types (classes) and create notifications. (42.18) - Implemented native SNP2.0 support. (42.18) - If a notification has actions an indicator icon is now drawn in the bottom right corner. (42.17) - If we can't actually display a notification (usually down to lack of free screen space) we now set lasterror to ERROR_COULD_NOT_DISPLAY and either add it to the missed list (for notifications with a normal or high priority) or discard it (for notifications with a low priority). (42.17) - Garbage collection (only available on XP or higher) option added to debug page. (42.17) - When DnD is in effect, notifications which end up being logged in the missed list are now allocated a unique token and LastError is set to ERROR_DO_NOT_DISTURB to indicate it was missed. This allows applications to (a) take alternative action and (b) continue to manage the notification (e.g. by adding actions to it). If a notification is not added to the missed list during DnD, LastError is still set to ERROR_DO_ NOT_DISTURB but this time a zero token is returned. (42.16) - Fixed bug in notification handling logic when DnD is in effect. (42.16) - JSON notifications were not being displayed even if listening for them was enabled, now fixed. (42.15) - Missed notifications are now listed in reverse order (i.e. most recent first) in the panel. (42.13) - Better missed notification handling. Snarl tray icon now changes to indicate missed notifications. Double-clicking the icon at this time will open the missed notifications panel rather than the preferences panel. The icon (and double-click feature) reset to normal as soon as the panel is displayed. (42.12) - Fixed bug which prevented the Missed Notifications notification from appearing under certain circumstances. The notification now has a single "Missed Notifications..." action and uses the AUTO_DISMISS flag. (42.4) - R2.4 Beta 2. (42.3) - Fixed private internal style preview function to work with V42 styles. (42.3) - Application Registered notifications now support actions. (42.2) - sn42AddAction() now supports a "command" parameter. If an item with a command is selected by the user, Snarl processes this in the same way it does an Ack command. (42.1) - Bumped to V42. (42.1) - Added sn42ClearActions() which removes all defined actions from a notification. (41.83) - Notification scaling is now applied to the close and actions buttons. (41.82) - Added new actions feature. This comprises of a new API function - sn42AddAction() - which requires a valid notification token and a new notification message parameter - SNARL_NOTIFICATION_ACTION (38) - which is sent from Snarl. (41.81) - Extension's page, "Details..." button now removes previous notification before displaying new one. (41.81) - Fixed spurious escape codes appearing in some Snarl-generated notifications. (41.80) - Low-priority notifications are no longer queued; any existing on- screen low-priority notification is removed before the new one is displayed. (41.80) - When merging notifications the timeout of the merged notification is used, not the sum of what's left and the merged notification. (41.80) - Application Registered notification text changed yet again (still only applies on first register) and right-click menu (always applied) added to provide access to both the notification settings in Snarl's panel and - if the app has one - the app's GUI. (41.78) - Added support for MP3 sounds. (41.78) - The "Notification Settings..." menu item now selects the notification's class as well as the application. (41.78) - Notifications created without a "timeout" token were getting 0 (sticky) applied to them. Now fixed such that they receive the system default timeout instead. (41.78) - Application Registered notification is now slightly different on first registration compared to subsequent registrations. On first registration *only*, clicking the notificaton will launch the class configuration panel for the application. The text that appears in the notification is slightly different as well. (41.77) - New notification flag - SNARL41_NOTIFICATION_AUTO_DISMISS - which causes the notification to be automatically closed if the user right- or middle- clicks it. If the notification has a right-click menu assigned it will be closed after the user has selected an item from the menu (or cancelled the menu). Note that the relevant notification messages are still sent by Snarl if this flag is specified. (41.77) - R2.4 Beta 1. (41.75) - Fixed bug in g_MakeValidPath() which was clobbering '\' characters and therefore trashing any passed paths. (41.75) - Bug in icon handling code meant that "special" icons (e.g. those extracted from resources or specified by an HICON) would only apply the first time a notification was displayed. Now fixed. (41.73) - We now broadcast two new messages - SNARL_BROADCAST_STARTED and SNARL_BROADCAST_STOPPED - when Snarl is started and stopped respectively. (41.71) - Custom sounds now working. (41.69) - uMakePreviewName() wasn't stripping out invalid filesystem characters (/ \ < > etc) - now fixed. (41.58) - Added support for new S_STYLE_V41_CONTENT flag. This is handled in CSnarlWindow.uUpdateStyleContent() which, if the flag is set, sends the calling application's name in the notification's title and the unabridged notification content (packed data format) as the text. (41.58) - Added basic notification merging. (41.57) - Added "Check Now" button to General page which will kick off a forced update check. In this case only, Snarl will notify if the user is running the current general release. (41.56) - Number of missed notifications (if there are any) is now displayed in the tray tooltip and in the Missed Notifications... menu item. (41.55) - Clicking the "<appliction> registered" notification will now launch the application's class configuration panel. (41.54) - Notification scaling implemented. This is a bit rudimentary as it's only applied to the incoming notification content and not to the final displayed notification (the upshot being that the close and timestamp gadgets are not scaled). Also worthy of note is that scaling will most likely break (or seriously upset) styles which position and/or size the notification themseleves. (41.53) - Added a further escape sequence ("\+") which can be used in either the title or text of a notification, however it only applies to updated notifications. The sequence is replaced with the current notification text so, for example, "\+\nHello world!" would append a CRLF and "Hello World!" to the existing notification's content. (41.53) - Basic line overflow implemented. This simply breaks the incoming title and text on each CRLF pair and counts the resulting "lines". If the number of lines is greater than the specified overflow amount (max of 12 lines) then the second line is replaced with an ellipsis and only the last n-2 lines are displayed. (41.52) - Extensions not set to start up were not being released correctly. Now fixed. (41.52) - R2.31. (41.51) - We now do COM garbage collection after loading extensions from a folder. (41.50) - Built as R2.31 beta 1. (41.49) - Notification close button is now sized according to the smaller of the close bitmap itself and the notification height. (41.47) - EmptyWorkingSet() is now called whenever the system information notification is displayed and also after 5 minutes if no notifications have been created in that time. (41.47) - R2.31 d4. (41.45) - Bug fixes and more code tidying up within the notification roster. (41.39) - Extension exclude file internal object changed although this should be completely transparent to everything. (41.39) - Snarl's config path is now registered as a global atom and the atom is stored as a window property. This is so apps, style engines and extensions can use it to store their settings in a sysadmin-friendly manner. (41.39) - Extension roster's 'exclude' file now obeys the variable Snarl config folder location. (41.39) - 'Duplicates' cycle button replaced with 'Prevent Spam' toggle switch. (41.39) - Juggled class configuration panel content around again. (41.39) - Added per-class option to not have notification logged as missed while Do Not Disturb is enabled. (41.39) - Added user-definable acknowledge feature. (41.39) - Released as R2.31d2. (41.38) - Revised system admin functionality. (41.38) - Released as R2.31 b1 (should have been d1). (41.37) - Added system adminstration functionality. (41.37) - Missed Notifications "Acknowledge" button should now function as expected. (41.37) - Consolidated a couple of internal notification data types (specifically G_NOTIFICATION_CONTENT and T_NOTIFICATION_INFO). (41.37) - sn41Update() was corrupting notification content. Now fixed. (41.36) - Fixed broken "run on logon" option. (41.35) - Extension details notification now suppresses version number for extensions with version and revision of zero. (41.35) - Released as R2.3. (41.34) - Added new status code SNARL41_ERROR_NOTIFICATION_NOT_FOUND'. (41.32) - sn41Update() renamed to sn41EZUpdate() and a new sn41Update() added which mirrors sn41Notify(). (41.32) - sn41AddClass() now sets LastError to CLASS_ALREADY_EXISTS if the class being added has already been defined. [Toke] (41.32) - Removed graphics test code and associated prompting. (41.32) - Removed RC branding. (41.32) - Fixed bugs in preferences hotkey code. [Toke] (41.32) - Melon release number (rather than the exec.library version) is now displayed in the system information notification. (41.31) - Missed notifications are now checked (and notification displayed) on a manual DnD enable/disable. (41.31) - Notifications with remotely hosted icons now have the icon displayed in the Missed Notifications panel. (41.31) - More minor interface improvements to the Missed Notification panel. (41.31) - Icons in the Missed Notifications panel now have their aspect ratio preserved. (41.31) - Missed Notifications panel now displays sending app and class used for the notification. (41.29) - Missed Notifications panel now displays the notification timestamp's seconds. (41.29) - Removed idle timeout controls from panel and idle checking code. This will be moved into the DnD extension. (41.28) - Added functionality to system DnD functions such that if notifications arrive while DnD is enabled, when DnD is finally disabled Snarl will display a notification detailing the number of missed notifications. (41.27) - Further improvements to the way sn41Update() works. (41.26) - sn41Update() didn't send timeout value. Now fixed. [Toke] (41.25) - Renamed sn41RemClass() and sn41RemAllClasses() to sn41RemoveClass() and sn41RemoveAllClasses() respectively. Added sn41Notify() although this is still to be documented and approved. [Toke] (41.25) - Removed redundant "Launch App Manager" button from Advanced page. [psy] Fixed bugs in - and tidied up - Debug page. (41.24) - Released as R2.3 RC1. (41.23) - Changed the way the SNARL_LAUNCHED and SNARL_QUIT broadcast messages are sent (PostMessage() is now used over SendMessageTimeout()) and the point when the initial SNARL_LAUNCHED is sent. Most importantly, broadcasts are *no longer sent* when Snarl is stopped or started (but remains running) however each application that has registered a window handle and reply message will still receive a SNARL_LAUNCHED and SNARL_QUIT notification. (41.23) - Notification "Details" menu now includes the name of the notification class and a "<App> Settings..." option which will open Snarl's Preferences Panel (if it's not already open) and select the application from the registered apps list. (41.20) - Fixed bug that was preventing some icons from being downloaded via a URL. (41.19) - Notification fade in/out speed increased (ought to be made configurable) and info notification formatting changed slightly. (41.18)
Source: readme.txt, updated 2014-01-21