/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * 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" #include "nsMsgFilterCore.idl" interface nsIMsgFilterList; interface nsIMsgWindow; interface nsIMsgFilterCustomAction; interface nsISimpleEnumerator; interface nsIFile; interface nsIMsgFolder; interface nsIMsgSearchCustomTerm; interface nsIArray; interface nsIMsgOperationListener; [scriptable, uuid(78a74023-1692-4567-8d72-9ca58fbbd427)] interface nsIMsgFilterService : nsISupports { nsIMsgFilterList OpenFilterList(in nsIFile filterFile, in nsIMsgFolder rootFolder, in nsIMsgWindow msgWindow); void CloseFilterList(in nsIMsgFilterList filterList); void SaveFilterList(in nsIMsgFilterList filterList, in nsIFile filterFile); void CancelFilterList(in nsIMsgFilterList filterList); nsIMsgFilterList getTempFilterList(in nsIMsgFolder aFolder); void applyFiltersToFolders(in nsIMsgFilterList aFilterList, in nsIArray aFolders, in nsIMsgWindow aMsgWindow, [optional] in nsIMsgOperationListener aCallback); /* * Apply filters to a specific list of messages in a folder. * @param aFilterType The type of filter to match against * @param aMsgHdrList The list of message headers (nsIMsgDBHdr objects) * @param aFolder The folder the messages belong to * @param aMsgWindow A UI window for attaching progress/dialogs * @param aCallback A listener that gets notified of any filtering error */ void applyFilters(in nsMsgFilterTypeType aFilterType, in nsIArray aMsgHdrList, in nsIMsgFolder aFolder, in nsIMsgWindow aMsgWindow, [optional] in nsIMsgOperationListener aCallback); /** * add a custom filter action * * @param aAction the custom action to add */ void addCustomAction(in nsIMsgFilterCustomAction aAction); /** * get the list of custom actions * * @return enumerator of nsIMsgFilterCustomAction objects */ nsISimpleEnumerator getCustomActions(); /** * lookup a custom action given its id * * @param id unique identifier for a particular custom action * * @return the custom action, or null if not found */ nsIMsgFilterCustomAction getCustomAction(in ACString id); /** * add a custom search term * * @param aTerm the custom term to add */ void addCustomTerm(in nsIMsgSearchCustomTerm aTerm); /** * get the list of custom search terms * * @return enumerator of nsIMsgSearchCustomTerm objects */ nsISimpleEnumerator getCustomTerms(); /** * lookup a custom search term given its id * * @param id unique identifier for a particular custom search term * * @return the custom search term, or null if not found */ nsIMsgSearchCustomTerm getCustomTerm(in ACString id); };