diff options
Diffstat (limited to 'mailnews/addrbook/public/nsIAbView.idl')
-rw-r--r-- | mailnews/addrbook/public/nsIAbView.idl | 109 |
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; +}; |