Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: chrome/browser/ui/autofill/autofill_popup_controller.h

Issue 11636040: AutofillPopupController clarifications + simplifications. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: relative patchset Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_CONTROLLER_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "ui/gfx/native_widget_types.h" 11 #include "ui/gfx/native_widget_types.h"
12 12
13 namespace gfx { 13 namespace gfx {
14 class Font; 14 class Font;
15 class Point; 15 class Point;
16 class Rect; 16 class Rect;
17 } 17 }
18 18
19 // This interface provides data to an AutofillPopupView. 19 // This interface provides data to an AutofillPopupView.
20 class AutofillPopupController { 20 class AutofillPopupController {
21 public: 21 public:
22 // Called when the view is going down. 22 // Called when the view is going down.
23 virtual void ViewDestroyed() = 0; 23 virtual void ViewDestroyed() = 0;
24 24
25 // Recalculate the height and width of the popup and trigger a redraw. 25 // Recalculates the height and width of the popup and triggers a redraw.
26 virtual void UpdateBoundsAndRedrawPopup() = 0; 26 virtual void UpdateBoundsAndRedrawPopup() = 0;
27 27
28 // Change which line is selected by the user, based on coordinates. 28 // The user has moved the mouse within the popup.
29 virtual void SetSelectedPosition(int x, int y) = 0; 29 virtual void MouseHovered(int x, int y) = 0;
30 30
31 // Accepts the described Autofill suggestion. 31 // The user clicked the mouse within the popup.
32 virtual bool AcceptAutofillSuggestion(const string16& value, 32 virtual void MouseClicked(int x, int y) = 0;
33 int unique_id,
34 unsigned index) = 0;
35 33
36 // Select the value at the given position. 34 // The user has moved the mouse outside of the popup.
37 virtual void AcceptSelectedPosition(int x, int y) = 0; 35 virtual void MouseLeftPopup() = 0;
Ilya Sherman 2012/12/20 04:34:52 Optional nit: Perhaps "exited" rather than "left"?
Evan Stade 2012/12/20 20:01:25 Done.
38 36
39 // Clear the currently selected line so that nothing is selected. 37 // Accepts the suggestion at |index|.
40 virtual void ClearSelectedLine() = 0; 38 virtual void AcceptSuggestion(size_t index) = 0;
Ilya Sherman 2012/12/20 04:34:52 nit: Perhaps name this variable |row|, or else ren
Evan Stade 2012/12/20 20:01:25 Done.
41 39
42 // Get the resource value for the given resource, returning -1 if the 40 // Gets the resource value for the given resource, returning -1 if the
43 // resource isn't recognized. 41 // resource isn't recognized.
44 virtual int GetIconResourceID(const string16& resource_name) = 0; 42 virtual int GetIconResourceID(const string16& resource_name) = 0;
45 43
46 // Returns true if the given id refers to an element that can be deleted. 44 // Returns true if the given index refers to an element that can be deleted.
47 virtual bool CanDelete(int id) = 0; 45 virtual bool CanDelete(size_t index) = 0;
48 46
49 #if !defined(OS_ANDROID) 47 #if !defined(OS_ANDROID)
50 // Get width of popup needed by values. 48 // Calculates width of popup based on its contents.
Ilya Sherman 2012/12/20 04:34:52 nit: "width of popup" -> "the width of the popup"
Evan Stade 2012/12/20 20:01:25 Done.
51 virtual int GetPopupRequiredWidth() = 0; 49 virtual int GetPopupRequiredWidth() = 0;
52 50
53 // Get height of popup needed by values. 51 // Calculates height of popup based on its contents.
54 virtual int GetPopupRequiredHeight() = 0; 52 virtual int GetPopupRequiredHeight() = 0;
55 #endif 53 #endif
56 54
57 // Updates the bounds of the popup and initiates a redraw. 55 // Updates the bounds of the popup and initiates a redraw.
58 virtual void SetPopupBounds(const gfx::Rect& bounds) = 0; 56 virtual void SetPopupBounds(const gfx::Rect& bounds) = 0;
59 57
60 // Get the height of the given row. 58 // Returns the bounds of the item at index |row| in the popup, relative to
61 virtual int GetRowHeightFromId(int unique_id) = 0; 59 // the top left of the popup.
62 60 virtual gfx::Rect GetRowBounds(size_t row) = 0;
63 // Returns the rectangle containing the item at position |row| in the popup.
64 // |row| is the index of the row, and |width| is its width.
65 virtual gfx::Rect GetRectForRow(size_t row, int width) = 0;
66 61
67 // The actual bounds of the popup. 62 // The actual bounds of the popup.
68 virtual const gfx::Rect& popup_bounds() const = 0; 63 virtual const gfx::Rect& popup_bounds() const = 0;
69 64
70 // The view that the form field element sits in. 65 // The view that the form field element sits in.
71 virtual gfx::NativeView container_view() const = 0; 66 virtual gfx::NativeView container_view() const = 0;
72 67
73 // The bounds of the form field element (relative to |container_origin|). 68 // The bounds of the form field element (screen coordinates).
74 virtual const gfx::Rect& element_bounds() const = 0; 69 virtual const gfx::Rect& element_bounds() const = 0;
75 70
76 virtual const std::vector<string16>& autofill_values() const = 0; 71 // The main labels for each autofill item.
77 virtual const std::vector<string16>& autofill_labels() const = 0; 72 virtual const std::vector<string16>& labels() const = 0;
78 virtual const std::vector<string16>& autofill_icons() const = 0; 73
79 virtual const std::vector<int>& autofill_unique_ids() const = 0; 74 // Smaller labels for each autofill item.
75 virtual const std::vector<string16>& sub_labels() const = 0;
76
77 // A string which identifies the icon to be shown for each autofill item.
78 virtual const std::vector<string16>& icons() const = 0;
79
80 // Identifier for the row.
81 virtual const std::vector<int>& identifiers() const = 0;
80 82
81 #if !defined(OS_ANDROID) 83 #if !defined(OS_ANDROID)
82 virtual const gfx::Font& label_font() const = 0; 84 virtual const gfx::Font& label_font() const = 0;
83 virtual const gfx::Font& value_font() const = 0; 85 virtual const gfx::Font& sub_label_font() const = 0;
84 #endif 86 #endif
85 87
88 // Returns the index of the selected line. A line is "selected" when it is
89 // hovered or has keyboard focus.
86 virtual int selected_line() const = 0; 90 virtual int selected_line() const = 0;
91
92 // Returns true if the delete icon of the selected line is currently hovered.
87 virtual bool delete_icon_hovered() const = 0; 93 virtual bool delete_icon_hovered() const = 0;
88 94
89 protected: 95 protected:
90 virtual ~AutofillPopupController() {} 96 virtual ~AutofillPopupController() {}
91 }; 97 };
92 98
93 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_CONTROLLER_H_ 99 #endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698