Index: chrome/browser/ui/views/autofill/autofill_dialog_views.h |
diff --git a/chrome/browser/ui/views/autofill/autofill_dialog_views.h b/chrome/browser/ui/views/autofill/autofill_dialog_views.h |
index defdb5293f83c5323c632da2f73d2f68aad6a3df..a6b1fdca2c744816cb1171949c90416f725b1f02 100644 |
--- a/chrome/browser/ui/views/autofill/autofill_dialog_views.h |
+++ b/chrome/browser/ui/views/autofill/autofill_dialog_views.h |
@@ -15,6 +15,7 @@ |
#include "chrome/browser/ui/autofill/autofill_dialog_view.h" |
#include "chrome/browser/ui/autofill/autofill_dialog_view_delegate.h" |
#include "chrome/browser/ui/autofill/testable_autofill_dialog_view.h" |
+#include "chrome/browser/ui/views/autofill/learn_more_icon.h" |
#include "ui/views/bubble/bubble_delegate.h" |
#include "ui/views/controls/button/button.h" |
#include "ui/views/controls/button/menu_button.h" |
@@ -68,7 +69,8 @@ class AutofillDialogViews : public AutofillDialogView, |
public views::FocusChangeListener, |
public views::ComboboxListener, |
public views::StyledLabelListener, |
- public views::MenuButtonListener { |
+ public views::MenuButtonListener, |
+ public LearnMoreIconDelegate { |
public: |
explicit AutofillDialogViews(AutofillDialogViewDelegate* delegate); |
virtual ~AutofillDialogViews(); |
@@ -170,6 +172,10 @@ class AutofillDialogViews : public AutofillDialogView, |
virtual void OnMenuButtonClicked(views::View* source, |
const gfx::Point& point) OVERRIDE; |
+ // LearnMoreIconDelegate implementation. |
+ virtual void OnLearnMoreIconMouseEntered(LearnMoreIcon* icon) OVERRIDE; |
+ virtual void OnLearnMoreIconMouseExited(LearnMoreIcon* icon) OVERRIDE; |
+ |
protected: |
// Exposed for testing. |
views::View* GetLoadingShieldForTesting(); |
@@ -187,12 +193,12 @@ class AutofillDialogViews : public AutofillDialogView, |
}; |
// A class that creates and manages a widget for error messages. |
- class ErrorBubble : public views::BubbleDelegateView { |
+ class InfoBubble : public views::BubbleDelegateView { |
public: |
- ErrorBubble(views::View* anchor, |
- views::View* anchor_container, |
- const base::string16& message); |
- virtual ~ErrorBubble(); |
+ InfoBubble(views::View* anchor, |
+ const base::string16& message, |
+ bool snap_to_grid); |
+ virtual ~InfoBubble(); |
// Updates the position of the bubble. |
void UpdatePosition(); |
@@ -227,8 +233,9 @@ class AutofillDialogViews : public AutofillDialogView, |
// Whether the bubble should be shown above the anchor (default is below). |
const bool show_above_anchor_; |
+ const bool snap_to_grid_; |
- DISALLOW_COPY_AND_ASSIGN(ErrorBubble); |
+ DISALLOW_COPY_AND_ASSIGN(InfoBubble); |
}; |
// A View which displays the currently selected account and lets the user |
@@ -312,7 +319,9 @@ class AutofillDialogViews : public AutofillDialogView, |
// An area for notifications. Some notifications point at the account chooser. |
class NotificationArea : public views::View { |
public: |
- explicit NotificationArea(AutofillDialogViewDelegate* delegate); |
+ explicit NotificationArea( |
+ AutofillDialogViewDelegate* delegate, |
+ const base::WeakPtr<LearnMoreIconDelegate>& icon_delegate); |
virtual ~NotificationArea(); |
// Displays the given notifications. |
@@ -338,6 +347,10 @@ class AutofillDialogViews : public AutofillDialogView, |
// Used to report when checkboxes change their values. |
AutofillDialogViewDelegate* delegate_; // weak |
+ // A weak pointer to the delegate that should be passed to any created |
+ // LearnMoreIcons (see: |SetNotifications()|). |
+ base::WeakPtr<LearnMoreIconDelegate> icon_delegate_; |
+ |
// If HasArrow() is true, the arrow should point at this. |
base::WeakPtr<views::View> arrow_centering_anchor_; |
@@ -586,8 +599,12 @@ class AutofillDialogViews : public AutofillDialogView, |
// |validity_map_|. |
void ShowErrorBubbleForViewIfNecessary(views::View* view); |
- // Hides |error_bubble_| (if it exists). |
+ // Shows an informational "learn more" bubble pointing at |icon|. |
+ void ShowLearnMoreBubbleIfNecessary(LearnMoreIcon* icon); |
+ |
+ // Hides |error_bubble_| or |learn_more_bubble_| (if they exist). |
void HideErrorBubble(); |
+ void HideLearnMoreBubble(); |
// Updates validity of the inputs in |section| with new |validity_messages|. |
// Fields are only updated with unsure messages if |overwrite_valid| is true. |
@@ -711,8 +728,9 @@ class AutofillDialogViews : public AutofillDialogView, |
// The focus manager for |window_|. |
views::FocusManager* focus_manager_; |
- // The object that manages the error bubble widget. |
- ErrorBubble* error_bubble_; // Weak; owns itself. |
+ // Bubbles to show validation errors or informational messages. |
+ InfoBubble* error_bubble_; // Weak; owns itself. |
+ InfoBubble* learn_more_bubble_; // Weak; owns itself. |
// Map from input view (textfield or combobox) to error string. |
std::map<views::View*, base::string16> validity_map_; |
@@ -722,6 +740,8 @@ class AutofillDialogViews : public AutofillDialogView, |
// Delegate for the sign-in dialog's webview. |
scoped_ptr<AutofillDialogSignInDelegate> sign_in_delegate_; |
+ base::WeakPtrFactory<AutofillDialogViews> weak_ptr_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(AutofillDialogViews); |
}; |