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

Side by Side Diff: chrome/browser/ui/views/permission_bubble/chooser_bubble_ui_views.cc

Issue 2853143003: MacViews: Allows the toolkit-views Device Chooser bubble to be used (Closed)
Patch Set: MacViews: Allows the toolkit-views Device Chooser bubble to be used (nits) Created 3 years, 7 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/macros.h"
6 #include "base/memory/ptr_util.h"
7 #include "chrome/browser/chooser_controller/chooser_controller.h"
8 #include "chrome/browser/ui/browser.h"
9 #include "chrome/browser/ui/browser_window.h"
10 #include "chrome/browser/ui/permission_bubble/chooser_bubble_delegate.h"
11 #include "chrome/browser/ui/views/exclusive_access_bubble_views.h"
12 #include "chrome/browser/ui/views/frame/browser_view.h"
13 #include "chrome/browser/ui/views/frame/top_container_view.h"
14 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
15 #include "chrome/browser/ui/views/location_bar/location_icon_view.h"
16 #include "chrome/browser/ui/views/permission_bubble/chooser_bubble_ui.h"
juncai 2017/05/04 18:27:15 maybe move this include to the top of the include
varkha 2017/05/05 18:23:29 Done.
17 #include "ui/views/controls/image_view.h"
18
19 // The Views browser implementation of ChooserBubbleUi's anchor methods.
20 // Views browsers have a native View to anchor the bubble to, which these
21 // functions provide.
22
23 std::unique_ptr<BubbleUi> ChooserBubbleDelegate::BuildBubbleUi() {
24 return base::MakeUnique<ChooserBubbleUi>(browser_,
25 std::move(chooser_controller_));
26 }
27
28 void ChooserBubbleUi::CreateAndShow(views::BubbleDialogDelegateView* delegate) {
29 // Set |parent_window| because some valid anchors can become hidden.
juncai 2017/05/04 18:27:15 nit: s/|parent_window|/|parent_window_|
varkha 2017/05/05 18:23:29 Done.
30 views::Widget* widget = views::Widget::GetWidgetForNativeWindow(
31 browser_->window()->GetNativeWindow());
32 gfx::NativeView parent = widget->GetNativeView();
33 DCHECK(parent);
34 delegate->set_parent_window(parent);
35 views::BubbleDialogDelegateView::CreateBubble(delegate)->Show();
36 }
37
38 views::View* ChooserBubbleUi::GetAnchorView() {
39 BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_);
40
41 if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR)) {
42 return browser_view->GetLocationBarView()
43 ->location_icon_view()
44 ->GetImageView();
45 }
46 if (browser_view->IsFullscreenBubbleVisible())
47 return browser_view->exclusive_access_bubble()->GetView();
48
49 return browser_view->top_container();
50 }
51
52 gfx::Point ChooserBubbleUi::GetAnchorPoint() {
53 return gfx::Point();
54 }
55
56 views::BubbleBorder::Arrow ChooserBubbleUi::GetAnchorArrow() {
57 if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR))
58 return views::BubbleBorder::TOP_LEFT;
59 return views::BubbleBorder::NONE;
60 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698