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
|
/* -*- 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
/*************************************************************************/
};
/*****************************************************************************/
|