Revision control
Copy as Markdown
Other Tools
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
#include "nsISupports.idl"
interface mozINewMailListener;
typedef long newMailListenerFlag;
[scriptable, uuid(7fef9018-c9f1-4cbd-b57c-d6555cf3a668)]
/** New mail notification service. This service watches all the relevant
* folder and message change events, preferences etc. and keeps track of
* the specific messages the user wants notifications for.
* NOTE: THIS INTERFACE IS UNDER ACTIVE DEVELOPMENT AND SUBJECT TO CHANGE,
* Registered mozINewMailListeners are called when the message count or
* specific list of notified messages changes.
* ** Should also document the observer service callback that allows
* plugins to override notifications by folder
*/
interface mozINewMailNotificationService : nsISupports {
/**
* @name Notification flags
* These flags determine which notifications will be sent.
* @{
*/
/// mozINewMailListener::count notification
const newMailListenerFlag count = 0x1;
/// mozINewMailListener::messages notification
const newMailListenerFlag messages = 0x2;
/** @} */
/**
* addListener - Register a mozINewMailListener to receive callbacks
* when the count or list of notification-worthy messages
* changes.
* @param aListener mozINewMailListener to call back
* @param flags Bitmask of newMailListenerFlag values indicating
* the particular callbacks this listener wants.
* If the listener is already registered with the
* notification service, the existing set of flags is
* replaced by the values passed in this parameter.
*/
void addListener(in mozINewMailListener aListener,
in newMailListenerFlag flags);
/**
* removeListener - remove a listener from the service
* @param aListener The listener to remove
*/
void removeListener(in mozINewMailListener aListener);
/// The current count of notification-worth unread messages
readonly attribute long messageCount;
};