/* 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" #include "nsIAutoCompleteResult.idl" interface nsIAutoCompleteSimpleResultListener; /** * This class implements nsIAutoCompleteResult and provides simple methods * for setting the value and result items. It can be used whenever some basic * auto complete results are needed that can be pre-generated and filled into * an array. */ [scriptable, uuid(23de9c96-becb-4d0d-a9bb-1d131ce361b5)] interface nsIAutoCompleteSimpleResult : nsIAutoCompleteResult { /** * A writer for the readonly attribute 'searchString' which should contain * the string that the user typed. */ void setSearchString(in AString aSearchString); /** * A writer for the readonly attribute 'errorDescription'. */ void setErrorDescription(in AString aErrorDescription); /** * A writer for the readonly attribute 'defaultIndex' which should contain * the index of the list that will be selected by default (normally 0). */ void setDefaultIndex(in long aDefaultIndex); /** * A writer for the readonly attribute 'searchResult' which should contain * one of the constants nsIAutoCompleteResult.RESULT_* indicating the success * of the search. */ void setSearchResult(in unsigned short aSearchResult); /** * Inserts a match consisting of the given value, comment, image, style and * the value to use for defaultIndex completion at a given position. * @param aIndex * The index to insert at * @param aValue * The value to autocomplete to * @param aComment * Comment shown in the autocomplete widget to describe this match * @param aImage * Image shown in the autocomplete widget for this match. * @param aStyle * Describes how to style the match in the autocomplete widget * @param aFinalCompleteValue * Value used when the user confirms selecting this match. If not * provided, aValue will be used. */ void insertMatchAt(in long aIndex, in AString aValue, in AString aComment, [optional] in AString aImage, [optional] in AString aStyle, [optional] in AString aFinalCompleteValue, [optional] in AString aLabel); /** * Appends a match consisting of the given value, comment, image, style and * the value to use for defaultIndex completion. * @param aValue * The value to autocomplete to * @param aComment * Comment shown in the autocomplete widget to describe this match * @param aImage * Image shown in the autocomplete widget for this match. * @param aStyle * Describes how to style the match in the autocomplete widget * @param aFinalCompleteValue * Value used when the user confirms selecting this match. If not * provided, aValue will be used. */ void appendMatch(in AString aValue, in AString aComment, [optional] in AString aImage, [optional] in AString aStyle, [optional] in AString aFinalCompleteValue, [optional] in AString aLabel); /** * Removes an existing match. * @note this is different from removeValueAt, since it's not a consequence of * a user action, and as such it won't notify onValueRemoved. */ void removeMatchAt(in long aIndex); /** * Gets the listener for changes in the result. */ nsIAutoCompleteSimpleResultListener getListener(); /** * Sets a listener for changes in the result. */ void setListener(in nsIAutoCompleteSimpleResultListener aListener); }; [scriptable, uuid(004efdc5-1989-4874-8a7a-345bf2fa33af)] interface nsIAutoCompleteSimpleResultListener : nsISupports { /** * Dispatched after a value is removed from the result. * @param aResult * The result from which aValue has been removed. * @param aValue * The removed value. */ void onValueRemoved(in nsIAutoCompleteSimpleResult aResult, in AString aValue); };