| Index: chrome/browser/ui/views/browser_bubble.cc
|
| diff --git a/chrome/browser/ui/views/browser_bubble.cc b/chrome/browser/ui/views/browser_bubble.cc
|
| deleted file mode 100644
|
| index 71a92765b642c3c972d79da7141809433e0d708c..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/views/browser_bubble.cc
|
| +++ /dev/null
|
| @@ -1,130 +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/browser.h"
|
| -#include "chrome/browser/ui/views/frame/browser_view.h"
|
| -#include "ui/views/widget/widget.h"
|
| -
|
| -BrowserBubble::BrowserBubble(Browser* browser,
|
| - views::View* view,
|
| - const gfx::Rect& relative_to,
|
| - views::BubbleBorder::ArrowLocation arrow_location)
|
| - : frame_(NULL),
|
| - view_(view),
|
| - relative_to_(relative_to),
|
| - arrow_location_(arrow_location),
|
| - delegate_(NULL),
|
| - attached_(false),
|
| - bubble_host_(NULL) {
|
| - BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser);
|
| - frame_ = browser_view->GetWidget();
|
| - bubble_host_ = browser_view;
|
| - // Keep relative_to_ in frame-relative coordinates to aid in drag
|
| - // positioning.
|
| - gfx::Point origin = relative_to_.origin();
|
| - views::View::ConvertPointToView(NULL, frame_->GetRootView(), &origin);
|
| - relative_to_.set_origin(origin);
|
| -
|
| - // Use half the corner radius as contents margins so that contents fit better
|
| - // in the bubble. See http://crbug.com/80416.
|
| - int corner_inset = views::BubbleBorder::GetCornerRadius() / 2;
|
| - gfx::Insets content_margins(corner_inset, corner_inset,
|
| - corner_inset, corner_inset);
|
| - InitPopup(content_margins);
|
| -}
|
| -
|
| -BrowserBubble::~BrowserBubble() {
|
| - DCHECK(!attached_);
|
| - popup_->Close();
|
| -
|
| - // Don't call DetachFromBrowser from here. It needs to talk to the
|
| - // BrowserView to deregister itself, and if BrowserBubble is owned
|
| - // by a child of BrowserView, then it's possible that this stack frame
|
| - // is a descendant of BrowserView's destructor, which leads to problems.
|
| - // In that case, Detach doesn't need to get called anyway since BrowserView
|
| - // will do the necessary cleanup.
|
| -}
|
| -
|
| -void BrowserBubble::DetachFromBrowser() {
|
| - DCHECK(attached_);
|
| - if (!attached_)
|
| - return;
|
| - attached_ = false;
|
| -
|
| - if (bubble_host_)
|
| - bubble_host_->DetachBrowserBubble(this);
|
| -}
|
| -
|
| -void BrowserBubble::AttachToBrowser() {
|
| - DCHECK(!attached_);
|
| - if (attached_)
|
| - return;
|
| -
|
| - if (bubble_host_)
|
| - bubble_host_->AttachBrowserBubble(this);
|
| -
|
| - attached_ = true;
|
| -}
|
| -
|
| -void BrowserBubble::BrowserWindowMoved() {
|
| - if (delegate_)
|
| - delegate_->BubbleBrowserWindowMoved(this);
|
| - else
|
| - Hide();
|
| - if (popup_->IsVisible())
|
| - Reposition();
|
| -}
|
| -
|
| -void BrowserBubble::BrowserWindowClosing() {
|
| - if (delegate_)
|
| - delegate_->BubbleBrowserWindowClosing(this);
|
| - else
|
| - Hide();
|
| -}
|
| -
|
| -void BrowserBubble::SetBounds(int x, int y, int w, int h) {
|
| - // If the UI layout is RTL, we don't need to mirror coordinates, since
|
| - // View logic will do that for us.
|
| - bounds_.SetRect(x, y, w, h);
|
| - Reposition();
|
| -}
|
| -
|
| -void BrowserBubble::MoveTo(int x, int y) {
|
| - SetBounds(x, y, bounds_.width(), bounds_.height());
|
| -}
|
| -
|
| -void BrowserBubble::Reposition() {
|
| - gfx::Point top_left;
|
| - views::View::ConvertPointToScreen(frame_->GetRootView(), &top_left);
|
| - MovePopup(top_left.x() + bounds_.x(),
|
| - top_left.y() + bounds_.y(),
|
| - bounds_.width(),
|
| - bounds_.height());
|
| -}
|
| -
|
| -gfx::Rect BrowserBubble::GetAbsoluteRelativeTo() {
|
| - // |relative_to_| is in browser-relative coordinates, so convert it to
|
| - // screen coordinates for use in placing the popup widgets.
|
| - gfx::Rect relative_rect = relative_to_;
|
| - gfx::Point relative_origin = relative_rect.origin();
|
| - views::View::ConvertPointToScreen(frame_->GetRootView(), &relative_origin);
|
| - relative_rect.set_origin(relative_origin);
|
| -
|
| - return relative_rect;
|
| -}
|
| -
|
| -void BrowserBubble::SetAbsoluteBounds(const gfx::Rect& window_bounds) {
|
| - // Convert screen coordinates to frame relative.
|
| - gfx::Point relative_origin = window_bounds.origin();
|
| - views::View::ConvertPointToView(NULL, frame_->GetRootView(),
|
| - &relative_origin);
|
| - SetBounds(relative_origin.x(), relative_origin.y(),
|
| - window_bounds.width(), window_bounds.height());
|
| -}
|
| -
|
| -void BrowserBubble::MovePopup(int x, int y, int w, int h) {
|
| - popup_->SetBounds(gfx::Rect(x, y, w, h));
|
| -}
|
|
|