• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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