/* -*- 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/. */ /********************************* #includes *********************************/ #include "domstubs.idl" // nsIDOMElement, nsIDOMWindow #include "nsISupports.idl" // nsISupports /******************************** Declarations *******************************/ interface mozIDOMWindow; interface nsIDocShell; /****************************** nsTypeAheadFind ******************************/ [scriptable, uuid(ae501e28-c57f-4692-ac74-410e1bed98b7)] interface nsITypeAheadFind : nsISupports { /****************************** Initializer ******************************/ /* Necessary initialization that can't happen in the constructor, either * because function calls here may fail, or because the docShell is * required. */ void init(in nsIDocShell aDocShell); /***************************** Core functions ****************************/ /* Find aSearchString in page. If aLinksOnly is true, only search the page's * hyperlinks for the string. */ unsigned short find(in AString aSearchString, in boolean aLinksOnly); /* Find another match in the page. */ unsigned short findAgain(in boolean findBackwards, in boolean aLinksOnly); /* Return the range of the most recent match. */ nsIDOMRange getFoundRange(); /**************************** Helper functions ***************************/ /* Change searched docShell. This happens when e.g. we use the same * nsITypeAheadFind object to search different tabs. */ void setDocShell(in nsIDocShell aDocShell); /* Change the look of the the "found match" selection to aToggle, and repaint * the selection. */ void setSelectionModeAndRepaint(in short toggle); /* Collapse the "found match" selection to its start. Because not all * matches are owned by the same selection controller, this doesn't * necessarily happen automatically. */ void collapseSelection(); /* Check if a range is visible */ boolean isRangeVisible(in nsIDOMRange aRange, in boolean aMustBeInViewPort); /******************************* Attributes ******************************/ readonly attribute AString searchString; // Most recent search string attribute boolean caseSensitive; // Searches are case sensitive attribute boolean entireWord; // Search for whole words only readonly attribute nsIDOMElement foundLink; // Most recent elem found, if a link readonly attribute nsIDOMElement foundEditable; // Most recent elem found, if editable readonly attribute mozIDOMWindow currentWindow; // Window of most recent match /******************************* Constants *******************************/ /* Find return codes */ const unsigned short FIND_FOUND = 0; // Successful find const unsigned short FIND_NOTFOUND = 1; // Unsuccessful find const unsigned short FIND_WRAPPED = 2; // Successful find, but wrapped around const unsigned short FIND_PENDING = 3; // Unknown status, find has not finished /*************************************************************************/ }; /*****************************************************************************/