OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.h" | 5 #include "chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
11 #include "base/macros.h" | 11 #include "base/macros.h" |
12 #include "base/memory/ptr_util.h" | 12 #include "base/memory/ptr_util.h" |
13 #include "base/strings/string16.h" | 13 #include "base/strings/string16.h" |
14 #include "chrome/browser/chooser_controller/chooser_controller.h" | 14 #include "chrome/browser/chooser_controller/chooser_controller.h" |
15 #include "chrome/browser/ui/browser.h" | 15 #include "chrome/browser/ui/browser.h" |
16 #include "chrome/browser/ui/browser_window.h" | 16 #include "chrome/browser/ui/browser_window.h" |
17 #include "chrome/browser/ui/views/chooser_content_view.h" | 17 #include "chrome/browser/ui/views/device_chooser_content_view.h" |
18 #include "chrome/browser/ui/views/exclusive_access_bubble_views.h" | 18 #include "chrome/browser/ui/views/exclusive_access_bubble_views.h" |
19 #include "chrome/browser/ui/views/frame/browser_view.h" | 19 #include "chrome/browser/ui/views/frame/browser_view.h" |
20 #include "chrome/browser/ui/views/frame/top_container_view.h" | 20 #include "chrome/browser/ui/views/frame/top_container_view.h" |
21 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" | 21 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" |
22 #include "chrome/browser/ui/views/location_bar/location_icon_view.h" | 22 #include "chrome/browser/ui/views/location_bar/location_icon_view.h" |
23 #include "chrome/browser/ui/website_settings/chooser_bubble_delegate.h" | 23 #include "chrome/browser/ui/website_settings/chooser_bubble_delegate.h" |
24 #include "components/bubble/bubble_controller.h" | 24 #include "components/bubble/bubble_controller.h" |
25 #include "ui/views/controls/image_view.h" | 25 #include "ui/views/controls/image_view.h" |
26 #include "ui/views/controls/link.h" | 26 #include "ui/views/controls/link.h" |
27 #include "ui/views/controls/styled_label.h" | 27 #include "ui/views/controls/styled_label.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 | 65 |
66 // Updates the anchor's arrow and view. Also repositions the bubble so it's | 66 // Updates the anchor's arrow and view. Also repositions the bubble so it's |
67 // displayed in the correct location. | 67 // displayed in the correct location. |
68 void UpdateAnchor(views::View* anchor_view, | 68 void UpdateAnchor(views::View* anchor_view, |
69 views::BubbleBorder::Arrow anchor_arrow); | 69 views::BubbleBorder::Arrow anchor_arrow); |
70 | 70 |
71 void set_bubble_reference(BubbleReference bubble_reference); | 71 void set_bubble_reference(BubbleReference bubble_reference); |
72 void UpdateTableView() const; | 72 void UpdateTableView() const; |
73 | 73 |
74 private: | 74 private: |
75 ChooserContentView* chooser_content_view_; | 75 DeviceChooserContentView* device_chooser_content_view_; |
76 BubbleReference bubble_reference_; | 76 BubbleReference bubble_reference_; |
77 | 77 |
78 DISALLOW_COPY_AND_ASSIGN(ChooserBubbleUiViewDelegate); | 78 DISALLOW_COPY_AND_ASSIGN(ChooserBubbleUiViewDelegate); |
79 }; | 79 }; |
80 | 80 |
81 ChooserBubbleUiViewDelegate::ChooserBubbleUiViewDelegate( | 81 ChooserBubbleUiViewDelegate::ChooserBubbleUiViewDelegate( |
82 views::View* anchor_view, | 82 views::View* anchor_view, |
83 views::BubbleBorder::Arrow anchor_arrow, | 83 views::BubbleBorder::Arrow anchor_arrow, |
84 std::unique_ptr<ChooserController> chooser_controller) | 84 std::unique_ptr<ChooserController> chooser_controller) |
85 : views::BubbleDialogDelegateView(anchor_view, anchor_arrow), | 85 : views::BubbleDialogDelegateView(anchor_view, anchor_arrow), |
86 chooser_content_view_(nullptr) { | 86 device_chooser_content_view_(nullptr) { |
87 // ------------------------------------ | 87 // ------------------------------------ |
88 // | Chooser bubble title | | 88 // | Chooser bubble title | |
89 // | -------------------------------- | | 89 // | -------------------------------- | |
90 // | | option 0 | | | 90 // | | option 0 | | |
91 // | | option 1 | | | 91 // | | option 1 | | |
92 // | | option 2 | | | 92 // | | option 2 | | |
93 // | | | | | 93 // | | | | |
94 // | | | | | 94 // | | | | |
95 // | | | | | 95 // | | | | |
96 // | -------------------------------- | | 96 // | -------------------------------- | |
97 // | [ Connect ] [ Cancel ] | | 97 // | [ Connect ] [ Cancel ] | |
98 // |----------------------------------| | 98 // |----------------------------------| |
99 // | Get help | | 99 // | Get help | |
100 // ------------------------------------ | 100 // ------------------------------------ |
101 | 101 |
102 chooser_content_view_ = | 102 device_chooser_content_view_ = |
103 new ChooserContentView(this, std::move(chooser_controller)); | 103 new DeviceChooserContentView(this, std::move(chooser_controller)); |
104 } | 104 } |
105 | 105 |
106 ChooserBubbleUiViewDelegate::~ChooserBubbleUiViewDelegate() {} | 106 ChooserBubbleUiViewDelegate::~ChooserBubbleUiViewDelegate() {} |
107 | 107 |
108 base::string16 ChooserBubbleUiViewDelegate::GetWindowTitle() const { | 108 base::string16 ChooserBubbleUiViewDelegate::GetWindowTitle() const { |
109 return chooser_content_view_->GetWindowTitle(); | 109 return device_chooser_content_view_->GetWindowTitle(); |
110 } | 110 } |
111 | 111 |
112 base::string16 ChooserBubbleUiViewDelegate::GetDialogButtonLabel( | 112 base::string16 ChooserBubbleUiViewDelegate::GetDialogButtonLabel( |
113 ui::DialogButton button) const { | 113 ui::DialogButton button) const { |
114 return chooser_content_view_->GetDialogButtonLabel(button); | 114 return device_chooser_content_view_->GetDialogButtonLabel(button); |
115 } | 115 } |
116 | 116 |
117 bool ChooserBubbleUiViewDelegate::IsDialogButtonEnabled( | 117 bool ChooserBubbleUiViewDelegate::IsDialogButtonEnabled( |
118 ui::DialogButton button) const { | 118 ui::DialogButton button) const { |
119 return chooser_content_view_->IsDialogButtonEnabled(button); | 119 return device_chooser_content_view_->IsDialogButtonEnabled(button); |
120 } | 120 } |
121 | 121 |
122 views::View* ChooserBubbleUiViewDelegate::CreateFootnoteView() { | 122 views::View* ChooserBubbleUiViewDelegate::CreateFootnoteView() { |
123 return chooser_content_view_->footnote_link(); | 123 return device_chooser_content_view_->footnote_link(); |
124 } | 124 } |
125 | 125 |
126 bool ChooserBubbleUiViewDelegate::Accept() { | 126 bool ChooserBubbleUiViewDelegate::Accept() { |
127 chooser_content_view_->Accept(); | 127 device_chooser_content_view_->Accept(); |
128 if (bubble_reference_) | 128 if (bubble_reference_) |
129 bubble_reference_->CloseBubble(BUBBLE_CLOSE_ACCEPTED); | 129 bubble_reference_->CloseBubble(BUBBLE_CLOSE_ACCEPTED); |
130 return true; | 130 return true; |
131 } | 131 } |
132 | 132 |
133 bool ChooserBubbleUiViewDelegate::Cancel() { | 133 bool ChooserBubbleUiViewDelegate::Cancel() { |
134 chooser_content_view_->Cancel(); | 134 device_chooser_content_view_->Cancel(); |
135 if (bubble_reference_) | 135 if (bubble_reference_) |
136 bubble_reference_->CloseBubble(BUBBLE_CLOSE_CANCELED); | 136 bubble_reference_->CloseBubble(BUBBLE_CLOSE_CANCELED); |
137 return true; | 137 return true; |
138 } | 138 } |
139 | 139 |
140 bool ChooserBubbleUiViewDelegate::Close() { | 140 bool ChooserBubbleUiViewDelegate::Close() { |
141 chooser_content_view_->Close(); | 141 device_chooser_content_view_->Close(); |
142 return true; | 142 return true; |
143 } | 143 } |
144 | 144 |
145 views::View* ChooserBubbleUiViewDelegate::GetContentsView() { | 145 views::View* ChooserBubbleUiViewDelegate::GetContentsView() { |
146 return chooser_content_view_; | 146 return device_chooser_content_view_; |
147 } | 147 } |
148 | 148 |
149 views::Widget* ChooserBubbleUiViewDelegate::GetWidget() { | 149 views::Widget* ChooserBubbleUiViewDelegate::GetWidget() { |
150 return chooser_content_view_->GetWidget(); | 150 return device_chooser_content_view_->GetWidget(); |
151 } | 151 } |
152 | 152 |
153 const views::Widget* ChooserBubbleUiViewDelegate::GetWidget() const { | 153 const views::Widget* ChooserBubbleUiViewDelegate::GetWidget() const { |
154 return chooser_content_view_->GetWidget(); | 154 return device_chooser_content_view_->GetWidget(); |
155 } | 155 } |
156 | 156 |
157 void ChooserBubbleUiViewDelegate::OnSelectionChanged() { | 157 void ChooserBubbleUiViewDelegate::OnSelectionChanged() { |
158 GetDialogClientView()->UpdateDialogButtons(); | 158 GetDialogClientView()->UpdateDialogButtons(); |
159 } | 159 } |
160 | 160 |
161 void ChooserBubbleUiViewDelegate::UpdateAnchor( | 161 void ChooserBubbleUiViewDelegate::UpdateAnchor( |
162 views::View* anchor_view, | 162 views::View* anchor_view, |
163 views::BubbleBorder::Arrow anchor_arrow) { | 163 views::BubbleBorder::Arrow anchor_arrow) { |
164 if (GetAnchorView() == anchor_view && arrow() == anchor_arrow) | 164 if (GetAnchorView() == anchor_view && arrow() == anchor_arrow) |
165 return; | 165 return; |
166 | 166 |
167 set_arrow(anchor_arrow); | 167 set_arrow(anchor_arrow); |
168 | 168 |
169 // Reposition the bubble based on the updated arrow and view. | 169 // Reposition the bubble based on the updated arrow and view. |
170 SetAnchorView(anchor_view); | 170 SetAnchorView(anchor_view); |
171 } | 171 } |
172 | 172 |
173 void ChooserBubbleUiViewDelegate::set_bubble_reference( | 173 void ChooserBubbleUiViewDelegate::set_bubble_reference( |
174 BubbleReference bubble_reference) { | 174 BubbleReference bubble_reference) { |
175 bubble_reference_ = bubble_reference; | 175 bubble_reference_ = bubble_reference; |
176 DCHECK(bubble_reference_); | 176 DCHECK(bubble_reference_); |
177 } | 177 } |
178 | 178 |
179 void ChooserBubbleUiViewDelegate::UpdateTableView() const { | 179 void ChooserBubbleUiViewDelegate::UpdateTableView() const { |
180 chooser_content_view_->UpdateTableView(); | 180 device_chooser_content_view_->UpdateTableView(); |
181 } | 181 } |
182 | 182 |
183 ////////////////////////////////////////////////////////////////////////////// | 183 ////////////////////////////////////////////////////////////////////////////// |
184 // ChooserBubbleUiView | 184 // ChooserBubbleUiView |
185 ChooserBubbleUiView::ChooserBubbleUiView( | 185 ChooserBubbleUiView::ChooserBubbleUiView( |
186 Browser* browser, | 186 Browser* browser, |
187 std::unique_ptr<ChooserController> chooser_controller) | 187 std::unique_ptr<ChooserController> chooser_controller) |
188 : browser_(browser), chooser_bubble_ui_view_delegate_(nullptr) { | 188 : browser_(browser), chooser_bubble_ui_view_delegate_(nullptr) { |
189 DCHECK(browser_); | 189 DCHECK(browser_); |
190 DCHECK(chooser_controller); | 190 DCHECK(chooser_controller); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 return browser_view->exclusive_access_bubble()->GetView(); | 228 return browser_view->exclusive_access_bubble()->GetView(); |
229 | 229 |
230 return browser_view->top_container(); | 230 return browser_view->top_container(); |
231 } | 231 } |
232 | 232 |
233 views::BubbleBorder::Arrow ChooserBubbleUiView::GetAnchorArrow() { | 233 views::BubbleBorder::Arrow ChooserBubbleUiView::GetAnchorArrow() { |
234 if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR)) | 234 if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR)) |
235 return views::BubbleBorder::TOP_LEFT; | 235 return views::BubbleBorder::TOP_LEFT; |
236 return views::BubbleBorder::NONE; | 236 return views::BubbleBorder::NONE; |
237 } | 237 } |
OLD | NEW |