1 /* 2 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: 7 * 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above 11 * copyright notice, this list of conditions and the following disclaimer 12 * in the documentation and/or other materials provided with the 13 * distribution. 14 * * Neither the name of Google Inc. nor the names of its 15 * contributors may be used to endorse or promote products derived from 16 * this software without specific prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 */ 30 31 #ifndef WebAutoFillClient_h 32 #define WebAutoFillClient_h 33 34 namespace WebKit { 35 36 class WebInputElement; 37 class WebKeyboardEvent; 38 class WebNode; 39 class WebString; 40 41 class WebAutoFillClient { 42 public: 43 // Informs the browser that the user has accepted an AutoFill suggestion for 44 // a WebNode. |uniqueID| is used as a key into the set of AutoFill profiles, 45 // and should never be negative. If it is 0, then the suggestion is an 46 // Autocomplete suggestion; and |value| stores the suggested text. |index| 47 // is an index of the selected suggestion in the list of suggestions provided 48 // by the client. didAcceptAutoFillSuggestion(const WebNode &,const WebString & value,const WebString & label,int uniqueID,unsigned index)49 virtual void didAcceptAutoFillSuggestion(const WebNode&, 50 const WebString& value, 51 const WebString& label, 52 int uniqueID, 53 unsigned index) { } 54 55 // Informs the browser that the user has selected an AutoFill suggestion for 56 // a WebNode. This happens when the user hovers over a suggestion or uses 57 // the arrow keys to navigate to a suggestion. didSelectAutoFillSuggestion(const WebNode &,const WebString & name,const WebString & label,int uniqueID)58 virtual void didSelectAutoFillSuggestion(const WebNode&, 59 const WebString& name, 60 const WebString& label, 61 int uniqueID) { } 62 63 // Informs the browser that the user has cleared the selection from the 64 // AutoFill suggestions popup. This happens when a user uses the arrow 65 // keys to navigate outside the range of possible selections. didClearAutoFillSelection(const WebNode &)66 virtual void didClearAutoFillSelection(const WebNode&) { } 67 68 // Instructs the browser to remove the Autocomplete entry specified from 69 // its DB. removeAutocompleteSuggestion(const WebString & name,const WebString & value)70 virtual void removeAutocompleteSuggestion(const WebString& name, 71 const WebString& value) { } 72 73 // These methods are called when the users edits a text-field. textFieldDidBeginEditing(const WebInputElement &)74 virtual void textFieldDidBeginEditing(const WebInputElement&) { } textFieldDidEndEditing(const WebInputElement &)75 virtual void textFieldDidEndEditing(const WebInputElement&) { } textFieldDidChange(const WebInputElement &)76 virtual void textFieldDidChange(const WebInputElement&) { } textFieldDidReceiveKeyDown(const WebInputElement &,const WebKeyboardEvent &)77 virtual void textFieldDidReceiveKeyDown(const WebInputElement&, const WebKeyboardEvent&) { } 78 79 protected: ~WebAutoFillClient()80 ~WebAutoFillClient() { } 81 }; 82 83 } // namespace WebKit 84 85 #endif 86