diff -r 000000000000 -r 6474c204b198 toolkit/components/autocomplete/nsIAutoCompleteController.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolkit/components/autocomplete/nsIAutoCompleteController.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,147 @@ +/* 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; + +[scriptable, uuid(ff9f8465-204a-47a6-b3c9-0628b3856684)] +interface nsIAutoCompleteController : nsISupports +{ + /* + * Possible values for the searchStatus attribute + */ + const unsigned short STATUS_NONE = 1; + const unsigned short STATUS_SEARCHING = 2; + const unsigned short STATUS_COMPLETE_NO_MATCH = 3; + const unsigned short STATUS_COMPLETE_MATCH = 4; + + /* + * The input widget that is currently being controlled. + */ + attribute nsIAutoCompleteInput input; + + /* + * State which indicates the status of possible ongoing searches + */ + readonly attribute unsigned short searchStatus; + + /* + * The number of matches + */ + readonly attribute unsigned long matchCount; + + /* + * Start a search on a string, assuming the input property is already set. + */ + void startSearch(in AString searchString); + + /* + * Stop all asynchronous searches + */ + void stopSearch(); + + /* + * Notify the controller that the user has changed text in the textbox. + * This includes all means of changing the text value, including typing a + * character, backspacing, deleting, pasting, committing composition or + * canceling composition. + * + * NOTE: handleText() must be called after composition actually ends, even if + * the composition is canceled and the textbox value isn't changed. + * Then, implementation of handleText() can access the editor when + * it's not in composing mode. DOM compositionend event is not good + * timing for calling handleText(). DOM input event immediately after + * DOM compositionend event is the best timing to call this. + */ + void handleText(); + + /* + * Notify the controller that the user wishes to enter the current text. If + * aIsPopupSelection is true, then a selection was made from the popup, so + * fill this value into the input field before continuing. If false, just + * use the current value of the input field. + * + * @return True if the controller wishes to prevent event propagation and default event + */ + boolean handleEnter(in boolean aIsPopupSelection); + + /* + * Notify the controller that the user wishes to revert autocomplete + * + * @return True if the controller wishes to prevent event propagation and default event + */ + boolean handleEscape(); + + /* + * Notify the controller that the user wishes to start composition + * + * NOTE: nsIAutoCompleteController implementation expects that this is called + * by DOM compositionstart handler. + */ + void handleStartComposition(); + + /* + * Notify the controller that the user wishes to end composition + * + * NOTE: nsIAutoCompleteController implementation expects that this is called + * by DOM compositionend handler. + */ + void handleEndComposition(); + + /* + * Handle tab. Just closes up. + */ + void handleTab(); + + /* + * Notify the controller of the following key navigation events: + * up, down, left, right, page up, page down + * + * @return True if the controller wishes to prevent event propagation and default event + */ + boolean handleKeyNavigation(in unsigned long key); + + /* + * Notify the controller that the user chose to delete the current + * auto-complete result. + */ + boolean handleDelete(); + + /* + * Get the value of the result at a given index in the last completed search + */ + AString getValueAt(in long index); + + /* + * Get the label of the result at a given index in the last completed search + */ + AString getLabelAt(in long index); + + /* + * Get the comment of the result at a given index in the last completed search + */ + AString getCommentAt(in long index); + + /* + * Get the style hint for the result at a given index in the last completed search + */ + AString getStyleAt(in long index); + + /* + * Get the url of the image of the result at a given index in the last completed search + */ + AString getImageAt(in long index); + + /* + * For the last completed search, get the final value that should be completed + * when the user confirms the match at the given index + */ + AString getFinalCompleteValueAt(in long index); + + /* + * Get / set the current search string. Note, setting will not start searching + */ + attribute AString searchString; +};