| Index: chrome/browser/ui/views/browser_bubble_win.cc
|
| diff --git a/chrome/browser/ui/views/browser_bubble_win.cc b/chrome/browser/ui/views/browser_bubble_win.cc
|
| deleted file mode 100644
|
| index aa3de5a724794d9fa8dd51dc34c8e9e254e9b99c..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/views/browser_bubble_win.cc
|
| +++ /dev/null
|
| @@ -1,154 +0,0 @@
|
| -// Copyright (c) 2011 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/browser_bubble.h"
|
| -
|
| -#include "chrome/browser/ui/views/bubble/border_contents.h"
|
| -#include "chrome/browser/ui/views/bubble/border_widget_win.h"
|
| -#include "chrome/browser/ui/views/frame/browser_view.h"
|
| -#include "ui/views/widget/native_widget_win.h"
|
| -#include "ui/views/widget/root_view.h"
|
| -#include "ui/views/widget/widget.h"
|
| -
|
| -class BubbleWidget : public views::NativeWidgetWin {
|
| - public:
|
| - explicit BubbleWidget(BrowserBubble* bubble)
|
| - : views::NativeWidgetWin(new views::Widget),
|
| - bubble_(bubble),
|
| - border_widget_(new BorderWidgetWin) {
|
| - set_window_style(WS_POPUP | WS_CLIPCHILDREN);
|
| - set_window_ex_style(WS_EX_TOOLWINDOW);
|
| - }
|
| -
|
| - void ShowAndActivate(bool activate) {
|
| - // Show the border first, then the popup overlaid on top.
|
| - border_widget_->Show();
|
| - if (activate)
|
| - ShowWindow(SW_SHOW);
|
| - else
|
| - views::NativeWidgetWin::Show();
|
| - }
|
| -
|
| - void Close() {
|
| - if (!bubble_)
|
| - return; // We have already been closed.
|
| - if (IsActive()) {
|
| - BrowserBubble::Delegate* delegate = bubble_->delegate();
|
| - if (delegate)
|
| - delegate->BubbleLostFocus(bubble_, NULL);
|
| - }
|
| - border_widget_->Close();
|
| - views::NativeWidgetWin::Close();
|
| - bubble_ = NULL;
|
| - }
|
| -
|
| - void Hide() {
|
| - if (IsActive() && bubble_) {
|
| - BrowserBubble::Delegate* delegate = bubble_->delegate();
|
| - if (delegate)
|
| - delegate->BubbleLostFocus(bubble_, NULL);
|
| - }
|
| - views::NativeWidgetWin::Hide();
|
| - border_widget_->Hide();
|
| - }
|
| -
|
| - void OnActivate(UINT action, BOOL minimized, HWND window) {
|
| - NativeWidgetWin::OnActivate(action, minimized, window);
|
| - if (!bubble_)
|
| - return;
|
| -
|
| - BrowserBubble::Delegate* delegate = bubble_->delegate();
|
| - if (!delegate) {
|
| - if (action == WA_INACTIVE) {
|
| - bubble_->DetachFromBrowser();
|
| - delete bubble_;
|
| - }
|
| - return;
|
| - }
|
| -
|
| - if (action == WA_INACTIVE) {
|
| - bool lost_focus_to_child = false;
|
| -
|
| - // Are we a parent of this window?
|
| - gfx::NativeView parent = window;
|
| - while (parent = ::GetParent(parent)) {
|
| - if (window == GetNativeView()) {
|
| - lost_focus_to_child = true;
|
| - break;
|
| - }
|
| - }
|
| -
|
| - // Do we own this window?
|
| - if (!lost_focus_to_child &&
|
| - ::GetWindow(window, GW_OWNER) == GetNativeView()) {
|
| - lost_focus_to_child = true;
|
| - }
|
| -
|
| - delegate->BubbleLostFocus(bubble_, lost_focus_to_child);
|
| - }
|
| - }
|
| -
|
| - virtual void OnSetFocus(HWND focused_window) {
|
| - NativeWidgetWin::OnSetFocus(focused_window);
|
| - if (bubble_ && bubble_->delegate())
|
| - bubble_->delegate()->BubbleGotFocus(bubble_);
|
| - }
|
| -
|
| - BorderWidgetWin* border_widget() {
|
| - return border_widget_;
|
| - }
|
| -
|
| - private:
|
| - BrowserBubble* bubble_;
|
| - BorderWidgetWin* border_widget_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BubbleWidget);
|
| -};
|
| -
|
| -void BrowserBubble::InitPopup(const gfx::Insets& content_margins) {
|
| - // popup_ is a Widget, but we need to do some NativeWidgetWin stuff first,
|
| - // then we'll assign it into popup_.
|
| - BubbleWidget* bubble_widget = new BubbleWidget(this);
|
| -
|
| - BorderWidgetWin* border_widget = bubble_widget->border_widget();
|
| - border_widget->InitBorderWidgetWin(new BorderContents,
|
| - frame_->GetNativeView());
|
| - border_widget->border_contents()->set_content_margins(content_margins);
|
| -
|
| - popup_ = bubble_widget->GetWidget();
|
| - // We make the BorderWidgetWin the owner of the Bubble HWND, so that the
|
| - // latter is displayed on top of the former.
|
| - views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
|
| - params.native_widget = bubble_widget;
|
| - params.parent = border_widget->GetNativeView();
|
| - popup_->Init(params);
|
| - popup_->SetContentsView(view_);
|
| -
|
| - ResizeToView();
|
| - Reposition();
|
| - AttachToBrowser();
|
| -}
|
| -
|
| -void BrowserBubble::Show(bool activate) {
|
| - if (!popup_->IsVisible()) {
|
| - static_cast<BubbleWidget*>(popup_->native_widget())->ShowAndActivate(
|
| - activate);
|
| - }
|
| -}
|
| -
|
| -void BrowserBubble::Hide() {
|
| - if (popup_->IsVisible())
|
| - static_cast<BubbleWidget*>(popup_->native_widget())->Hide();
|
| -}
|
| -
|
| -void BrowserBubble::ResizeToView() {
|
| - BorderWidgetWin* border_widget =
|
| - static_cast<BubbleWidget*>(popup_->native_widget())->border_widget();
|
| -
|
| - gfx::Rect window_bounds;
|
| - window_bounds = border_widget->SizeAndGetBounds(GetAbsoluteRelativeTo(),
|
| - arrow_location_, view_->size());
|
| -
|
| - SetAbsoluteBounds(window_bounds);
|
| -}
|
|
|