| 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 |