mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-10-31 16:28:05 +02:00 
			
		
		
		
	 083b367e51
			
		
	
	
		083b367e51
		
	
	
	
	
		
			
			Differential Revision: https://phabricator.services.mozilla.com/D55065 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			182 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			182 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* 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;
 | |
| 
 | |
| webidl Event;
 | |
| 
 | |
| [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.
 | |
|    */
 | |
|   [setter_can_run_script]
 | |
|   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.
 | |
|    */
 | |
|   [can_run_script] void startSearch(in AString searchString);
 | |
| 
 | |
|   /*
 | |
|    * Stop all asynchronous searches
 | |
|    */
 | |
|   [can_run_script] 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.
 | |
|    *
 | |
|    * @return whether this handler started a new search.
 | |
|    */
 | |
|   [can_run_script] boolean 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.
 | |
|    *
 | |
|    * @param aIsPopupSelection
 | |
|    *        Pass true if the selection was made from the popup.
 | |
|    * @param aEvent
 | |
|    *        The event that triggered the enter, like a key event if the user
 | |
|    *        pressed the Return key or a click event if the user clicked a popup
 | |
|    *        item.
 | |
|    * @return Whether the controller wishes to prevent event propagation and
 | |
|    *         default event.
 | |
|    */
 | |
|   [can_run_script] boolean handleEnter(in boolean aIsPopupSelection,
 | |
|                                        [optional] in Event aEvent);
 | |
| 
 | |
|   /*
 | |
|    * Notify the controller that the user wishes to revert autocomplete
 | |
|    *
 | |
|    * @return Whether the controller wishes to prevent event propagation and
 | |
|    *         default event.
 | |
|    */
 | |
|   [can_run_script] boolean handleEscape();
 | |
| 
 | |
|   /*
 | |
|    * Notify the controller that the user wishes to start composition
 | |
|    *
 | |
|    * NOTE: nsIAutoCompleteController implementation expects that this is called
 | |
|    *       by DOM compositionstart handler.
 | |
|    */
 | |
|   [can_run_script] 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.
 | |
|    */
 | |
|   [can_run_script] void handleTab();
 | |
| 
 | |
|   /*
 | |
|    * Notify the controller of the following key navigation events:
 | |
|    *   up, down, left, right, page up, page down
 | |
|    *
 | |
|    * @return Whether the controller wishes to prevent event propagation and
 | |
|    *         default event
 | |
|    */
 | |
|   [can_run_script] boolean handleKeyNavigation(in unsigned long key);
 | |
| 
 | |
|   /*
 | |
|    * Notify the controller that the user chose to delete the current
 | |
|    * auto-complete result.
 | |
|    *
 | |
|    * @return Whether the controller removed a result item.
 | |
|    */
 | |
|   [can_run_script] 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;
 | |
| 
 | |
|   /*
 | |
|    * Set the index of the result item that should be initially selected.
 | |
|    * This should be used when a search wants to pre-select an element before
 | |
|    * the user starts using results.
 | |
|    *
 | |
|    * @note Setting this is not the same as just setting selectedIndex in
 | |
|    * nsIAutocompletePopup, since this will take care of updating any internal
 | |
|    * tracking variables of features like completeSelectedIndex.
 | |
|    */
 | |
|   void setInitiallySelectedIndex(in long index);
 | |
| 
 | |
|   /*
 | |
|    * Reset controller internal caches for cases where the input doesn't change
 | |
|    * but its context resets, thus it is about to start a completely new search
 | |
|    * session.
 | |
|    */
 | |
|   [can_run_script] void resetInternalState();
 | |
| };
 |