text: // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #ifndef COMPONENTS_AUTOFILL_BROWSER_AUTOFILL_POPUP_DELEGATE_H_
  #define COMPONENTS_AUTOFILL_BROWSER_AUTOFILL_POPUP_DELEGATE_H_
  
  #include "base/string16.h"
  
  namespace content {
  class KeyboardListener;
  }
  
  namespace autofill {
  
  // An interface for interaction with AutofillPopupController. Will be notified
  // of events by the controller.
  class AutofillPopupDelegate {
   public:
    // Called when the Autofill popup is shown. |listener| may be used to pass
    // keyboard events to the popup.
    virtual void OnPopupShown(content::KeyboardListener* listener) = 0;
  
    // Called when the Autofill popup is hidden. |listener| must be unregistered
    // if it was registered in OnPopupShown.
    virtual void OnPopupHidden(content::KeyboardListener* listener) = 0;
  
    // Called when the autofill suggestion indicated by |identifier| has been
    // temporarily selected (e.g., hovered).
    virtual void DidSelectSuggestion(int identifier) = 0;
  
    // Inform the delegate that a row in the popup has been chosen.
    virtual void DidAcceptSuggestion(const base::string16& value,
                                     int identifier) = 0;
  
    // Delete the described suggestion.
    virtual void RemoveSuggestion(const base::string16& value,
                                  int identifier) = 0;
  
    // Informs the delegate that the Autofill previewed form should be cleared.
    virtual void ClearPreviewedForm() = 0;
  };
  
  }  // namespace autofill
  
  #endif  // COMPONENTS_AUTOFILL_BROWSER_AUTOFILL_POPUP_DELEGATE_H_
  