Index: chrome/browser/autofill/autofill_popup_view.h |
diff --git a/chrome/browser/autofill/autofill_popup_view.h b/chrome/browser/autofill/autofill_popup_view.h |
index 9344ee0278830e3632b249a2fc4abf625b3cbc6c..1ca890871d350d846787c2da28aa1f1c505318ef 100644 |
--- a/chrome/browser/autofill/autofill_popup_view.h |
+++ b/chrome/browser/autofill/autofill_popup_view.h |
@@ -18,13 +18,16 @@ namespace content { |
class WebContents; |
} |
+class AutofillExternalDelegate; |
+ |
class AutofillPopupView : public content::NotificationObserver { |
public: |
- explicit AutofillPopupView(content::WebContents* web_contents); |
+ explicit AutofillPopupView(content::WebContents* web_contents, |
+ AutofillExternalDelegate* external_delegate_); |
virtual ~AutofillPopupView(); |
- // Hide the popup from view. |
- virtual void Hide() = 0; |
+ // Hide the popup from view. Platform-indepent work. |
+ virtual void Hide(); |
// Display the autofill popup and fill it in with the values passed in. |
// Platform-independent work. |
@@ -34,7 +37,6 @@ class AutofillPopupView : public content::NotificationObserver { |
const std::vector<int>& autofill_unique_ids, |
int separator_index); |
- |
void set_element_bounds(const gfx::Rect& bounds) { |
element_bounds_ = bounds; |
} |
@@ -46,6 +48,14 @@ class AutofillPopupView : public content::NotificationObserver { |
// Platform-dependent work. |
virtual void ShowInternal() = 0; |
+ // Hide the popup from view. Platform-dependent work. |
+ virtual void HideInternal() = 0; |
+ |
+ // Invalide the given row and redraw it. |
+ virtual void InvalidateRow(size_t row) = 0; |
+ |
+ AutofillExternalDelegate* external_delegate() { return external_delegate_; } |
+ |
const std::vector<string16>& autofill_values() const { |
return autofill_values_; |
} |
@@ -55,8 +65,16 @@ class AutofillPopupView : public content::NotificationObserver { |
const std::vector<string16>& autofill_icons() const { |
return autofill_icons_; |
} |
+ const std::vector<int>& autofill_unique_ids() const { |
+ return autofill_unique_ids_; |
+ } |
int separator_index() const { return separator_index_; } |
+ int selected_line() const { return selected_line_; } |
+ |
+ // Change which line is currently selected by the user. |
+ void SetSelectedLine(int selected_line); |
+ |
private: |
// content::NotificationObserver method override. |
virtual void Observe(int type, |
@@ -66,6 +84,8 @@ class AutofillPopupView : public content::NotificationObserver { |
// A scoped container for notification registries. |
content::NotificationRegistrar registrar_; |
+ AutofillExternalDelegate* external_delegate_; |
+ |
// The bounds of the text element that is the focus of the Autofill. |
gfx::Rect element_bounds_; |
@@ -78,6 +98,10 @@ class AutofillPopupView : public content::NotificationObserver { |
// The location of the separator index (which separates the returned values |
// from the Autofill options). |
int separator_index_; |
+ |
+ // The line that is currently selected by the user. |
+ // -1 indicates that no line is currently selected. |
+ int selected_line_; |
}; |
#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_POPUP_VIEW_H_ |