summaryrefslogtreecommitdiffstats
path: root/mailnews/addrbook/public/nsIAbView.idl
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/addrbook/public/nsIAbView.idl')
-rw-r--r--mailnews/addrbook/public/nsIAbView.idl109
1 files changed, 109 insertions, 0 deletions
diff --git a/mailnews/addrbook/public/nsIAbView.idl b/mailnews/addrbook/public/nsIAbView.idl
new file mode 100644
index 000000000..cd591a1e5
--- /dev/null
+++ b/mailnews/addrbook/public/nsIAbView.idl
@@ -0,0 +1,109 @@
+/* -*- 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
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsISupports.idl"
+
+interface nsIAbCard;
+interface nsIAbDirectory;
+interface nsIArray;
+
+/// Define a class using this interface to listen to updates from nsIAbView.
+[scriptable, uuid(79ad5d6e-1dd2-11b2-addd-f547dab50d75)]
+interface nsIAbViewListener : nsISupports
+{
+ /// Called when the selection is changed in the tree
+ void onSelectionChanged();
+
+ /// Called when the total count of cards is changed.
+ void onCountChanged(in long total);
+};
+
+/**
+ * This interface and its associated nsAbView object provides an interface
+ * to allow a tree to be associated with an address book, and the results
+ * to be displayed in that tree.
+ *
+ * If you wish for the tree to display the results of a different address
+ * book, then call setView again. There is no need to delete and recreate the
+ * nsAbView object. If you wish to clear the view, then just call clearView.
+ */
+[scriptable, uuid(45e2fa9f-0b59-4090-a2fa-fb7042cf64a2)]
+interface nsIAbView : nsISupports
+{
+ /**
+ * Sets up the nsIAbView to look at the specified directory. This may be
+ * called multiple times.
+ *
+ * @param aDirectory The directory to search, this may be a directory
+ * with a query string.
+ * @param aViewListener An optional listener.
+ * @param aSortColumn The column to sort by. See the xul element with
+ * id abResultsTreeCols for possible values.
+ * @param aSortDirection The sort direction to use ("ascending"/"descending")
+ * @return The actual sortColumn (various switching of apps
+ * could cause the persisted sortColumn to be bogus).
+ */
+ AString setView(in nsIAbDirectory aAddressBook,
+ in nsIAbViewListener aAbViewListener,
+ in AString aSortColumn,
+ in AString aSortDirection);
+
+ /**
+ * Clears the view and releases any locally held copies of the address book
+ * directory. This should be called when the view is no longer required, e.g.
+ * on unload.
+ */
+ void clearView();
+
+ /**
+ * Sorts the tree by the specified parameters.
+ *
+ * @param aSortColumn The column to sort by. See the xul element with
+ * id abResultsTreeCols for possible values.
+ * @param aSortDirection The sort direction to use ("ascending"/"descending")
+ * @param aResort The function DOES optimize for the case when sortColumn
+ * and sortDirection is identical since the last call.
+ * If an unconditional resort is needed, set this to true.
+ */
+ void sortBy(in wstring aSortColumn, in wstring aSortDirection,
+ [optional] in boolean aResort);
+
+ /// Returns the current sort column
+ readonly attribute AString sortColumn;
+
+ /// Returns the current sort direction
+ readonly attribute AString sortDirection;
+
+ /**
+ * Returns the current directory that this view is hooked up to. May be
+ * null if no directory has been set.
+ */
+ readonly attribute nsIAbDirectory directory;
+
+ /**
+ * Returns the card associated with the given row.
+ *
+ * @param aRow The row from which to return the card.
+ * @return A card associated with the row, or null if row is not valid.
+ */
+ nsIAbCard getCardFromRow(in long aRow);
+
+ /// Selects all rows in the view.
+ void selectAll();
+
+ /// Deletes all the selected cards (no prompts are given).
+ void deleteSelectedCards();
+
+ /**
+ * Swaps the first and last name order, and updates the appropriate
+ * preference.
+ */
+ void swapFirstNameLastName();
+
+ /**
+ * Returns an array of the currently selected addresses.
+ */
+ readonly attribute nsIArray selectedAddresses;
+};