1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_VIEW_H_ 6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_VIEW_H_ 7 8 #include "ui/gfx/native_widget_types.h" 9 10 namespace gfx { 11 class Rect; 12 } 13 14 namespace ui { 15 class KeyEvent; 16 } 17 18 namespace autofill { 19 20 class AutofillPopupController; 21 22 // The interface for creating and controlling a platform-dependent 23 // AutofillPopupView. 24 class AutofillPopupView { 25 public: 26 // The minimum amount of padding between the Autofill name and subtext, 27 // in pixels. 28 static const size_t kNamePadding = 15; 29 30 // The amount of padding between icons in pixels. 31 static const int kIconPadding = 5; 32 33 // The amount of padding at the end of the popup in pixels. 34 static const int kEndPadding = 3; 35 36 // Height of the delete icon in pixels. 37 static const int kDeleteIconHeight = 16; 38 39 // Width of the delete icon in pixels. 40 static const int kDeleteIconWidth = 16; 41 42 // Displays the Autofill popup and fills it in with data from the controller. 43 virtual void Show() = 0; 44 45 // Hides the popup from view. This will cause the popup to be deleted. 46 virtual void Hide() = 0; 47 48 // Invalidates the given row and redraw it. 49 virtual void InvalidateRow(size_t row) = 0; 50 51 // Refreshes the position of the popup. 52 virtual void UpdateBoundsAndRedrawPopup() = 0; 53 54 // Factory function for creating the view. 55 static AutofillPopupView* Create(AutofillPopupController* controller); 56 57 protected: ~AutofillPopupView()58 virtual ~AutofillPopupView() {} 59 }; 60 61 } // namespace autofill 62 63 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_VIEW_H_ 64