Index: chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc |
diff --git a/chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc b/chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc |
deleted file mode 100644 |
index 9addbb159e720ef07e16f56a3dee5bbbcecc0fbe..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc |
+++ /dev/null |
@@ -1,237 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.h" |
- |
-#include <stddef.h> |
- |
-#include <memory> |
- |
-#include "base/macros.h" |
-#include "base/memory/ptr_util.h" |
-#include "base/strings/string16.h" |
-#include "chrome/browser/chooser_controller/chooser_controller.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_window.h" |
-#include "chrome/browser/ui/views/device_chooser_content_view.h" |
-#include "chrome/browser/ui/views/exclusive_access_bubble_views.h" |
-#include "chrome/browser/ui/views/frame/browser_view.h" |
-#include "chrome/browser/ui/views/frame/top_container_view.h" |
-#include "chrome/browser/ui/views/location_bar/location_bar_view.h" |
-#include "chrome/browser/ui/views/location_bar/location_icon_view.h" |
-#include "chrome/browser/ui/website_settings/chooser_bubble_delegate.h" |
-#include "components/bubble/bubble_controller.h" |
-#include "ui/views/controls/image_view.h" |
-#include "ui/views/controls/link.h" |
-#include "ui/views/controls/styled_label.h" |
-#include "ui/views/controls/table/table_view_observer.h" |
-#include "ui/views/window/dialog_client_view.h" |
- |
-std::unique_ptr<BubbleUi> ChooserBubbleDelegate::BuildBubbleUi() { |
- return base::MakeUnique<ChooserBubbleUiView>(browser_, |
- std::move(chooser_controller_)); |
-} |
- |
-/////////////////////////////////////////////////////////////////////////////// |
-// View implementation for the chooser bubble. |
-class ChooserBubbleUiViewDelegate : public views::BubbleDialogDelegateView, |
- public views::TableViewObserver { |
- public: |
- ChooserBubbleUiViewDelegate( |
- views::View* anchor_view, |
- views::BubbleBorder::Arrow anchor_arrow, |
- std::unique_ptr<ChooserController> chooser_controller); |
- ~ChooserBubbleUiViewDelegate() override; |
- |
- // views::WidgetDelegate: |
- base::string16 GetWindowTitle() const override; |
- |
- // views::DialogDelegate: |
- base::string16 GetDialogButtonLabel(ui::DialogButton button) const override; |
- bool IsDialogButtonEnabled(ui::DialogButton button) const override; |
- views::View* CreateFootnoteView() override; |
- bool Accept() override; |
- bool Cancel() override; |
- bool Close() override; |
- |
- // views::DialogDelegateView: |
- views::View* GetContentsView() override; |
- views::Widget* GetWidget() override; |
- const views::Widget* GetWidget() const override; |
- |
- // views::TableViewObserver: |
- void OnSelectionChanged() override; |
- |
- // Updates the anchor's arrow and view. Also repositions the bubble so it's |
- // displayed in the correct location. |
- void UpdateAnchor(views::View* anchor_view, |
- views::BubbleBorder::Arrow anchor_arrow); |
- |
- void set_bubble_reference(BubbleReference bubble_reference); |
- void UpdateTableView() const; |
- |
- private: |
- DeviceChooserContentView* device_chooser_content_view_; |
- BubbleReference bubble_reference_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ChooserBubbleUiViewDelegate); |
-}; |
- |
-ChooserBubbleUiViewDelegate::ChooserBubbleUiViewDelegate( |
- views::View* anchor_view, |
- views::BubbleBorder::Arrow anchor_arrow, |
- std::unique_ptr<ChooserController> chooser_controller) |
- : views::BubbleDialogDelegateView(anchor_view, anchor_arrow), |
- device_chooser_content_view_(nullptr) { |
- // ------------------------------------ |
- // | Chooser bubble title | |
- // | -------------------------------- | |
- // | | option 0 | | |
- // | | option 1 | | |
- // | | option 2 | | |
- // | | | | |
- // | | | | |
- // | | | | |
- // | -------------------------------- | |
- // | [ Connect ] [ Cancel ] | |
- // |----------------------------------| |
- // | Get help | |
- // ------------------------------------ |
- |
- device_chooser_content_view_ = |
- new DeviceChooserContentView(this, std::move(chooser_controller)); |
-} |
- |
-ChooserBubbleUiViewDelegate::~ChooserBubbleUiViewDelegate() {} |
- |
-base::string16 ChooserBubbleUiViewDelegate::GetWindowTitle() const { |
- return device_chooser_content_view_->GetWindowTitle(); |
-} |
- |
-base::string16 ChooserBubbleUiViewDelegate::GetDialogButtonLabel( |
- ui::DialogButton button) const { |
- return device_chooser_content_view_->GetDialogButtonLabel(button); |
-} |
- |
-bool ChooserBubbleUiViewDelegate::IsDialogButtonEnabled( |
- ui::DialogButton button) const { |
- return device_chooser_content_view_->IsDialogButtonEnabled(button); |
-} |
- |
-views::View* ChooserBubbleUiViewDelegate::CreateFootnoteView() { |
- return device_chooser_content_view_->footnote_link(); |
-} |
- |
-bool ChooserBubbleUiViewDelegate::Accept() { |
- device_chooser_content_view_->Accept(); |
- if (bubble_reference_) |
- bubble_reference_->CloseBubble(BUBBLE_CLOSE_ACCEPTED); |
- return true; |
-} |
- |
-bool ChooserBubbleUiViewDelegate::Cancel() { |
- device_chooser_content_view_->Cancel(); |
- if (bubble_reference_) |
- bubble_reference_->CloseBubble(BUBBLE_CLOSE_CANCELED); |
- return true; |
-} |
- |
-bool ChooserBubbleUiViewDelegate::Close() { |
- device_chooser_content_view_->Close(); |
- return true; |
-} |
- |
-views::View* ChooserBubbleUiViewDelegate::GetContentsView() { |
- return device_chooser_content_view_; |
-} |
- |
-views::Widget* ChooserBubbleUiViewDelegate::GetWidget() { |
- return device_chooser_content_view_->GetWidget(); |
-} |
- |
-const views::Widget* ChooserBubbleUiViewDelegate::GetWidget() const { |
- return device_chooser_content_view_->GetWidget(); |
-} |
- |
-void ChooserBubbleUiViewDelegate::OnSelectionChanged() { |
- GetDialogClientView()->UpdateDialogButtons(); |
-} |
- |
-void ChooserBubbleUiViewDelegate::UpdateAnchor( |
- views::View* anchor_view, |
- views::BubbleBorder::Arrow anchor_arrow) { |
- if (GetAnchorView() == anchor_view && arrow() == anchor_arrow) |
- return; |
- |
- set_arrow(anchor_arrow); |
- |
- // Reposition the bubble based on the updated arrow and view. |
- SetAnchorView(anchor_view); |
-} |
- |
-void ChooserBubbleUiViewDelegate::set_bubble_reference( |
- BubbleReference bubble_reference) { |
- bubble_reference_ = bubble_reference; |
- DCHECK(bubble_reference_); |
-} |
- |
-void ChooserBubbleUiViewDelegate::UpdateTableView() const { |
- device_chooser_content_view_->UpdateTableView(); |
-} |
- |
-////////////////////////////////////////////////////////////////////////////// |
-// ChooserBubbleUiView |
-ChooserBubbleUiView::ChooserBubbleUiView( |
- Browser* browser, |
- std::unique_ptr<ChooserController> chooser_controller) |
- : browser_(browser), chooser_bubble_ui_view_delegate_(nullptr) { |
- DCHECK(browser_); |
- DCHECK(chooser_controller); |
- chooser_bubble_ui_view_delegate_ = new ChooserBubbleUiViewDelegate( |
- GetAnchorView(), GetAnchorArrow(), std::move(chooser_controller)); |
-} |
- |
-ChooserBubbleUiView::~ChooserBubbleUiView() {} |
- |
-void ChooserBubbleUiView::Show(BubbleReference bubble_reference) { |
- chooser_bubble_ui_view_delegate_->set_bubble_reference(bubble_reference); |
- |
- // Set |parent_window| because some valid anchors can become hidden. |
- views::Widget* widget = views::Widget::GetWidgetForNativeWindow( |
- browser_->window()->GetNativeWindow()); |
- chooser_bubble_ui_view_delegate_->set_parent_window(widget->GetNativeView()); |
- |
- views::BubbleDialogDelegateView::CreateBubble( |
- chooser_bubble_ui_view_delegate_) |
- ->Show(); |
- |
- chooser_bubble_ui_view_delegate_->UpdateTableView(); |
-} |
- |
-void ChooserBubbleUiView::Close() {} |
- |
-void ChooserBubbleUiView::UpdateAnchorPosition() { |
- chooser_bubble_ui_view_delegate_->UpdateAnchor(GetAnchorView(), |
- GetAnchorArrow()); |
-} |
- |
-views::View* ChooserBubbleUiView::GetAnchorView() { |
- BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_); |
- |
- if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR)) |
- return browser_view->GetLocationBarView() |
- ->location_icon_view() |
- ->GetImageView(); |
- |
- if (browser_view->IsFullscreenBubbleVisible()) |
- return browser_view->exclusive_access_bubble()->GetView(); |
- |
- return browser_view->top_container(); |
-} |
- |
-views::BubbleBorder::Arrow ChooserBubbleUiView::GetAnchorArrow() { |
- if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR)) |
- return views::BubbleBorder::TOP_LEFT; |
- return views::BubbleBorder::NONE; |
-} |