summaryrefslogtreecommitdiffstats
path: root/mailnews/addrbook/public/nsIAbListener.idl
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/addrbook/public/nsIAbListener.idl')
-rw-r--r--mailnews/addrbook/public/nsIAbListener.idl90
1 files changed, 90 insertions, 0 deletions
diff --git a/mailnews/addrbook/public/nsIAbListener.idl b/mailnews/addrbook/public/nsIAbListener.idl
new file mode 100644
index 000000000..cc9761abf
--- /dev/null
+++ b/mailnews/addrbook/public/nsIAbListener.idl
@@ -0,0 +1,90 @@
+/* -*- 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);
+};