/* -*- Mode: C++; 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 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" typedef unsigned long abListenerNotifyFlagValue; /** * nsIAbListener * * Implement this interface to receive notifications of address book * items being added, removed or changed with loaded address books. * * Subscribe to events by using nsIAbManager. */ [scriptable, uuid(b3ca8745-2dad-4032-ae2f-0b8622f32697)] interface nsIAbListener : nsISupports { /** * These flags are used when registering the listener with nsIAbManager to * specify when to receive notifications of address book updates. */ /** * An address book, mailing list or card is added. */ const abListenerNotifyFlagValue itemAdded = 0x1; /** * A mailing list or card is removed from an address book. */ const abListenerNotifyFlagValue directoryItemRemoved = 0x2; /** * An address book is removed */ const abListenerNotifyFlagValue directoryRemoved = 0x4; /** * An address book, mailing list or card is changed. */ const abListenerNotifyFlagValue itemChanged = 0x8; /** * All of the above notifications are to be received. */ const abListenerNotifyFlagValue all = 0xFFFFFFFF; /** * Called when an address book item (book, card or list) is added * * @param parentDir The parent of the item being added. * * @param item The item being added to the database (a * directory or card). * */ void onItemAdded(in nsISupports parentDir, in nsISupports item); /** * Called when an address book, mailing list or card is removed. This * is partially configurable when setting up the listener via * nsIAddrBookSession * * @param parentDir The parent of the item being removed, this * may be an empty directory in the case of a * top level address book. * * @param item The item being removed from the database. * */ void onItemRemoved(in nsISupports parentDir, in nsISupports item); /** * Called when an address book item is changed. Note the current * implementation means that property is either the literal string "DirName" * or null, with oldValue and newValue being specified if the property is * "DirName" otherwise they are null. * * @param item The item being updated (a directory or a * card). * * @param property The property of the item being changed. * * @param oldValue The old value of the item property being * changed if it is known, null otherwise. * * @param newValue The new value of the item property being * changed. * */ void onItemPropertyChanged(in nsISupports item, in string property, in wstring oldValue, in wstring newValue); };