/usr/share/idl/thunderbird/nsIMsgSearchSession.idl is in thunderbird-dev 1:52.8.0-1~deb8u1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | /* -*- Mode: C++; tab-width: 4; 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"
#include "nsIMsgSearchValue.idl"
interface nsIMsgSearchAdapter;
interface nsIMsgSearchTerm;
interface nsIMsgSearchNotify;
interface nsIMsgHdr;
interface nsIMsgDatabase;
// Disable deprecation warnings generated by nsISupportsArray and associated
// classes.
%{C++
#if defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#elif defined(_MSC_VER)
#pragma warning (disable : 4996)
#endif
%}
interface nsISupportsArray;
interface nsIMsgWindow;
//////////////////////////////////////////////////////////////////////////////
// The Msg Search Session is an interface designed to make constructing
// searches easier. Clients typically build up search terms, and then run
// the search
//////////////////////////////////////////////////////////////////////////////
[scriptable, uuid(1ed69bbf-7983-4602-9a9b-2f2263a78878)]
interface nsIMsgSearchSession : nsISupports {
/**
* add a search term to the search session
*
* @param attrib search attribute (e.g. nsMsgSearchAttrib::Subject)
* @param op search operator (e.g. nsMsgSearchOp::Contains)
* @param value search value (e.g. "Dogbert", see nsIMsgSearchValue)
* @param BooleanAND set to true if associated boolean operator is AND
* @param customString if attrib > nsMsgSearchAttrib::OtherHeader,
* a user defined arbitrary header
* if attrib == nsMsgSearchAttrib::Custom, the custom id
* otherwise ignored
*/
void addSearchTerm(in nsMsgSearchAttribValue attrib,
in nsMsgSearchOpValue op,
in nsIMsgSearchValue value,
in boolean BooleanAND,
in string customString);
readonly attribute nsISupportsArray searchTerms;
nsIMsgSearchTerm createTerm ();
void appendTerm(in nsIMsgSearchTerm term);
/**
* @name Search notification flags
* These flags determine which notifications will be sent.
* @{
*/
/// search started notification
const long onNewSearch = 0x1;
/// search finished notification
const long onSearchDone = 0x2;
/// search hit notification
const long onSearchHit = 0x4;
const long allNotifications = 0x7;
/** @} */
/**
* Add a listener to get notified of search starts, stops, and hits.
*
* @param aListener listener
* @param aNotifyFlags which notifications to send. Defaults to all
*/
void registerListener (in nsIMsgSearchNotify aListener,
[optional] in long aNotifyFlags);
void unregisterListener (in nsIMsgSearchNotify listener);
readonly attribute unsigned long numSearchTerms;
readonly attribute nsIMsgSearchAdapter runningAdapter;
void getNthSearchTerm(in long whichTerm,
in nsMsgSearchAttribValue attrib,
in nsMsgSearchOpValue op,
in nsIMsgSearchValue value); // wrong, should be out
long countSearchScopes();
void getNthSearchScope(in long which,out nsMsgSearchScopeValue scopeId, out nsIMsgFolder folder);
/* add a scope (e.g. a mail folder) to the search */
void addScopeTerm(in nsMsgSearchScopeValue scope,
in nsIMsgFolder folder);
void addDirectoryScopeTerm(in nsMsgSearchScopeValue scope);
void clearScopes();
/* Call this function everytime the scope changes! It informs the FE if
the current scope support custom header use. FEs should not display the
custom header dialog if custom headers are not supported */
[noscript] boolean ScopeUsesCustomHeaders(in nsMsgSearchScopeValue scope,
/* could be a folder or server based on scope */
in voidPtr selection,
in boolean forFilters);
/* use this to determine if your attribute is a string attrib */
boolean IsStringAttribute(in nsMsgSearchAttribValue attrib);
/* add all scopes of a given type to the search */
void AddAllScopes(in nsMsgSearchScopeValue attrib);
void search(in nsIMsgWindow aWindow);
void interruptSearch();
// these two methods are used when the search session is using
// a timer to do local search, and the search adapter needs
// to run a url (e.g., to reparse a local folder) and wants to
// pause the timer while running the url. This will fail if the
// current adapter is not using a timer.
void pauseSearch();
void resumeSearch();
[noscript] readonly attribute voidPtr searchParam;
readonly attribute nsMsgSearchType searchType;
[noscript] nsMsgSearchType SetSearchParam(in nsMsgSearchType type,
in voidPtr param);
boolean MatchHdr(in nsIMsgDBHdr aMsgHdr, in nsIMsgDatabase aDatabase);
void addSearchHit(in nsIMsgDBHdr header, in nsIMsgFolder folder);
readonly attribute long numResults;
attribute nsIMsgWindow window;
/* these longs are all actually of type nsMsgSearchBooleanOp */
const long BooleanOR=0;
const long BooleanAND=1;
};
|