AddOns allow third party developers to extend the functionality of Snarl itself. Snarl supports two types of AddOn:
Extensions are like mini applications. They register, add notification classes, and create notifications in the same way as regular applications do, except they run within Snarl's process space. Extensions are usually ActiveX DLLs but, from R2.6 on, can be script-based.
Scripted extensions are, as the name implies, script based. Currently only VBScript is supported, however support for JScript is planned, and other languages will be added where possible. Like standard extensions, scripted extensions run in Snarl's process space and are loaded and unloaded when Snarl starts and terminates. Unlike standard extensions, scripted extensions can be created without relying on complex and expensive development tools, and non-admin users can install them.
- Creating a standard extension in C# -- Link to Toke's tutorial
Styles turn notification content into something the user can see or hear. They are split into two types:
- Display styles: generate content which Snarl can then display on-screen. Snarl figures out where they go and handles all the user interaction
- Redirect styles: handle the notification display themselves. This might involve speaking the notification using a voice synthesiser, sending it to a Braille device, passing it to server which can forward it to a mobile phone, or some other method.
Redirect styles may also display the content on-screen, however they must determine where the content is to be displayed and are responsible for handling user interaction with the notification.
Any style which generates content on-screen should follow the Style Guidelines
Developers can create styles for Snarl using the following methods:
- Scripted Styles: Snarl R2.6 will include the ability for developers to create both display and redirect styles using VBScript
- Custom Web Forwarders: The WebForward style engine provides the ability to create a bespoke notification forwarder
- Runnable Styles: Utilise a stand-alone process to create the final notification content as a PNG image, which Snarl then displays