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

Side by Side Diff: chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h

Issue 2907983002: Allow dialogs to use a custom View as their title. (Closed)
Patch Set: pass strings by reference Created 3 years, 6 months 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_VIEWS_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_VIEW_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_VIEW_H_
6 #define CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_VIEW_H_ 6 #define CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_VIEW_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
10 #include "chrome/browser/ui/views/location_bar/location_bar_bubble_delegate_view .h" 10 #include "chrome/browser/ui/views/location_bar/location_bar_bubble_delegate_view .h"
11 #include "ui/base/ui_features.h" 11 #include "ui/base/ui_features.h"
12 #include "ui/views/controls/styled_label_listener.h"
12 13
13 namespace content { 14 namespace content {
14 class WebContents; 15 class WebContents;
15 } 16 }
16 17
17 // The ManagePasswordsBubbleView controls the contents of the bubble which 18 // The ManagePasswordsBubbleView controls the contents of the bubble which
18 // pops up when Chrome offers to save a user's password, or when the user 19 // pops up when Chrome offers to save a user's password, or when the user
19 // interacts with the Omnibox icon. It has two distinct states: 20 // interacts with the Omnibox icon. It has two distinct states:
20 // 21 //
21 // 1. PendingView: Offers the user the possibility of saving credentials. 22 // 1. PendingView: Offers the user the possibility of saving credentials.
22 // 2. ManageView: Displays the current page's saved credentials. 23 // 2. ManageView: Displays the current page's saved credentials.
23 // 3. BlacklistedView: Informs the user that the current page is blacklisted. 24 // 3. BlacklistedView: Informs the user that the current page is blacklisted.
24 // 25 //
25 class ManagePasswordsBubbleView : public LocationBarBubbleDelegateView { 26 class ManagePasswordsBubbleView : public LocationBarBubbleDelegateView,
27 public views::StyledLabelListener {
26 public: 28 public:
27 static constexpr int kDesiredBubbleWidth = 370; 29 static constexpr int kDesiredBubbleWidth = 370;
28 30
29 #if !defined(OS_MACOSX) || BUILDFLAG(MAC_VIEWS_BROWSER) 31 #if !defined(OS_MACOSX) || BUILDFLAG(MAC_VIEWS_BROWSER)
30 // Shows the bubble. 32 // Shows the bubble.
31 static void ShowBubble(content::WebContents* web_contents, 33 static void ShowBubble(content::WebContents* web_contents,
32 DisplayReason reason); 34 DisplayReason reason);
33 #endif 35 #endif
34 36
35 // Closes the existing bubble. 37 // Closes the existing bubble.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 class UpdatePendingView; 73 class UpdatePendingView;
72 74
73 ~ManagePasswordsBubbleView() override; 75 ~ManagePasswordsBubbleView() override;
74 76
75 // LocationBarBubbleDelegateView: 77 // LocationBarBubbleDelegateView:
76 int GetDialogButtons() const override; 78 int GetDialogButtons() const override;
77 views::View* GetInitiallyFocusedView() override; 79 views::View* GetInitiallyFocusedView() override;
78 void Init() override; 80 void Init() override;
79 void CloseBubble() override; 81 void CloseBubble() override;
80 82
81 // WidgetDelegate: 83 // views::BubbleDialogDelegateView:
Peter Kasting 2017/06/17 01:16:20 Nit: You don't directly subclass this class, or Wi
Bret 2017/06/21 22:37:54 Moved both lists under LocationBarBubbleDelegateVi
84 views::View* CreateTitleView(const base::string16& title_text) override;
85
86 // views::WidgetDelegate:
82 base::string16 GetWindowTitle() const override; 87 base::string16 GetWindowTitle() const override;
83 gfx::ImageSkia GetWindowIcon() override; 88 gfx::ImageSkia GetWindowIcon() override;
84 bool ShouldShowWindowTitle() const override;
85 bool ShouldShowWindowIcon() const override; 89 bool ShouldShowWindowIcon() const override;
86 bool ShouldShowCloseButton() const override; 90 bool ShouldShowCloseButton() const override;
87 91
92 // views::StyledLabelListener:
93 void StyledLabelLinkClicked(views::StyledLabel* label,
94 const gfx::Range& range,
95 int event_flags) override;
96
88 // Refreshes the bubble's state. 97 // Refreshes the bubble's state.
89 void Refresh(); 98 void Refresh();
90 99
91 // Sets up a child view according to the model state. 100 // Sets up a child view according to the model state.
92 void CreateChild(); 101 void CreateChild();
93 102
94 void set_initially_focused_view(views::View* view) { 103 void set_initially_focused_view(views::View* view) {
95 DCHECK(!initially_focused_view_); 104 DCHECK(!initially_focused_view_);
96 initially_focused_view_ = view; 105 initially_focused_view_ = view;
97 } 106 }
98 107
99 // Singleton instance of the Password bubble. The Password bubble can only be 108 // Singleton instance of the Password bubble. The Password bubble can only be
100 // shown on the active browser window, so there is no case in which it will be 109 // shown on the active browser window, so there is no case in which it will be
101 // shown twice at the same time. The instance is owned by the Bubble and will 110 // shown twice at the same time. The instance is owned by the Bubble and will
102 // be deleted when the bubble closes. 111 // be deleted when the bubble closes.
103 static ManagePasswordsBubbleView* manage_passwords_bubble_; 112 static ManagePasswordsBubbleView* manage_passwords_bubble_;
104 113
105 // The timeout in seconds for the auto sign-in toast. 114 // The timeout in seconds for the auto sign-in toast.
106 static int auto_signin_toast_timeout_; 115 static int auto_signin_toast_timeout_;
107 116
108 ManagePasswordsBubbleModel model_; 117 ManagePasswordsBubbleModel model_;
109 118
110 views::View* initially_focused_view_; 119 views::View* initially_focused_view_;
111 120
121 // Used by BubbleFrameView as the dialog title.
122 views::StyledLabel* title_view_;
123
112 std::unique_ptr<WebContentMouseHandler> mouse_handler_; 124 std::unique_ptr<WebContentMouseHandler> mouse_handler_;
113 125
114 DISALLOW_COPY_AND_ASSIGN(ManagePasswordsBubbleView); 126 DISALLOW_COPY_AND_ASSIGN(ManagePasswordsBubbleView);
115 }; 127 };
116 128
117 #endif // CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_VIEW_H_ 129 #endif // CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_VIEW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698