Source code

Revision control

Copy as Markdown

Other Tools

/* -*- 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 "nsISupports.idl" // nsISupports
/******************************** Declarations *******************************/
interface mozIDOMWindow;
interface nsIDocShell;
webidl Element;
webidl Range;
/****************************** 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,
in unsigned long aMode,
in boolean aDontIterateFrames);
/* Return the range of the most recent match. */
Range 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 using heuristics */
boolean isRangeVisible(in Range aRange, in boolean aMustBeInViewPort);
/* Check if a range is actually rendered (out of viewport always false) */
boolean isRangeRendered(in Range aRange);
/******************************* Attributes ******************************/
readonly attribute AString searchString;
// Most recent search string
attribute boolean caseSensitive; // Searches are case sensitive
attribute boolean matchDiacritics; // Searches preserve diacritics
attribute boolean entireWord; // Search for whole words only
readonly attribute Element foundLink;
// Most recent elem found, if a link
readonly attribute Element foundEditable;
// Most recent elem found, if editable
readonly attribute mozIDOMWindow currentWindow;
// Window of most recent match
/******************************* Constants *******************************/
/* Modes for Find() */
const unsigned long FIND_INITIAL = 0;
const unsigned long FIND_NEXT = 1;
const unsigned long FIND_PREVIOUS = 2;
const unsigned long FIND_FIRST = 3;
const unsigned long FIND_LAST = 4;
/* 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
/*************************************************************************/
};
/*****************************************************************************/