tenfourfox/toolkit/components/typeaheadfind/nsITypeAheadFind.idl
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

94 lines
3.5 KiB
Plaintext

/* -*- 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 nsIDocShell;
/****************************** nsTypeAheadFind ******************************/
[scriptable, uuid(f4411c5b-761b-498c-8050-dcfc8311f69e)]
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
readonly attribute nsIDOMElement foundLink;
// Most recent elem found, if a link
readonly attribute nsIDOMElement foundEditable;
// Most recent elem found, if editable
readonly attribute nsIDOMWindow 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
/*************************************************************************/
};
/*****************************************************************************/