blob: caa47d7b33bd433816e80079d0000ddefcfd5175 [file] [log] [blame]
// Copyright 2016 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/platform_util.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#import "chrome/browser/ui/cocoa/global_error_bubble_controller.h"
#include "chrome/browser/ui/views/global_error_bubble_view.h"
#import "chrome/browser/ui/cocoa/bubble_anchor_helper_views.h"
#import "ui/base/cocoa/cocoa_base_utils.h"
#import "ui/gfx/mac/coordinate_conversion.h"
GlobalErrorBubbleViewBase* ShowViewsGlobalErrorBubbleOnCocoaBrowser(
NSPoint anchor,
Browser* browser,
const base::WeakPtr<GlobalErrorWithStandardBubble>& error) {
gfx::Point anchor_point =
gfx::ScreenPointFromNSPoint(ui::ConvertPointFromWindowToScreen(
browser->window()->GetNativeWindow(), anchor));
gfx::NativeView parent =
platform_util::GetViewForWindow(browser->window()->GetNativeWindow());
DCHECK(parent);
GlobalErrorBubbleView* bubble_view = new GlobalErrorBubbleView(
nullptr, anchor_point, views::BubbleBorder::TOP_RIGHT, browser, error);
bubble_view->set_parent_window(parent);
views::BubbleDialogDelegateView::CreateBubble(bubble_view);
bubble_view->GetWidget()->Show();
KeepBubbleAnchored(bubble_view);
return bubble_view;
}