summaryrefslogtreecommitdiffstats
path: root/toolkit/components/autocomplete/nsIAutoCompletePopup.idl
blob: 556c0d49b8e07005397c11cb21b3fa179a9f01f8 (plain)
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
/* 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"

interface nsIAutoCompleteInput;
interface nsIFormFillCompleteObserver;

webidl Element;

[scriptable, uuid(bd3c2662-a988-41ab-8c94-c15ed0e6ac7d)]
interface nsIAutoCompletePopup : nsISupports
{
  /*
   * The input object that the popup is currently bound to
   */
  readonly attribute nsIAutoCompleteInput input;

  /*
   * An alternative value to be used when text is entered, rather than the
   * value of the selected item
   */
  readonly attribute AString overrideValue;

  /*
   * The index of the result item that is currently selected
   */
  attribute long selectedIndex;

  /*
   * Indicates if the popup is currently open
   */
  readonly attribute boolean popupOpen;

  /*
   * Don't rollup the popup when the search string becomes "".
   */
  boolean getNoRollupOnEmptySearch(in Element element);

  /*
   * Bind the popup to an input object and display it with the given coordinates
   *
   * @param input - The input object that the popup will be bound to
   * @param element - The element that the popup will be aligned with
   */
  void openAutocompletePopup(in nsIAutoCompleteInput input, in Element element);

  /*
   * Close the popup and detach from the bound input
   */
  void closePopup();

  /*
   * Instruct the result view to repaint itself to reflect the most current
   * underlying data
   *
   * @param reason - The reason the popup needs to be invalidated, one of the
   *        INVALIDATE_REASON consts.
   */
  void invalidate(in unsigned short reason);

  /*
   * Possible values of invalidate()'s 'reason' argument.
   */
  const unsigned short INVALIDATE_REASON_NEW_RESULT = 0;
  const unsigned short INVALIDATE_REASON_DELETE = 1;

  /*
   * Change the selection relative to the current selection and make sure
   * the newly selected row is visible
   *
   * @param reverse - Select a row above the current selection
   * @param page - Select a row that is a full visible page from the current selection
   * @return The currently selected result item index
   */
  void selectBy(in boolean reverse, in boolean page);

  /*
   * Search for a given string and notify a listener (either synchronously
   * or asynchronously) of the result
   *
   * @param searchString - The string to search for
   * @param searchParam - An extra parameter
   * @param previousResult - A previous result to use for faster searching
   * @param listener - A listener to notify when the search is complete
   */
  void startSearch(in AString searchString, in Element element, in nsIFormFillCompleteObserver listener);

  /*
   * Stop the search that is in progress
   */
  void stopSearch();

  /**
   * Notify the autocomplete popup that an autocomplete entry is selected.
   */
  void selectEntry();
};