| Index: chrome/browser/ui/views/browser_bubble_gtk.cc
|
| diff --git a/chrome/browser/ui/views/browser_bubble_gtk.cc b/chrome/browser/ui/views/browser_bubble_gtk.cc
|
| deleted file mode 100644
|
| index c4ef16aae8c40b85941bdbc9c1e0e12298bb61ac..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/views/browser_bubble_gtk.cc
|
| +++ /dev/null
|
| @@ -1,159 +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 <vector>
|
| -
|
| -#include "chrome/browser/ui/views/bubble/border_contents.h"
|
| -#include "chrome/browser/ui/views/frame/browser_view.h"
|
| -#include "ui/views/widget/native_widget_gtk.h"
|
| -#include "ui/views/widget/root_view.h"
|
| -
|
| -#if defined(OS_CHROMEOS) && defined(TOOLKIT_USES_GTK)
|
| -#include "chrome/browser/chromeos/legacy_window_manager/wm_ipc.h"
|
| -#include "third_party/cros_system_api/window_manager/chromeos_wm_ipc_enums.h"
|
| -#endif
|
| -
|
| -using std::vector;
|
| -
|
| -namespace {
|
| -
|
| -class BubbleWidget : public views::NativeWidgetGtk {
|
| - public:
|
| - BubbleWidget(BrowserBubble* bubble, const gfx::Insets& content_margins)
|
| - : views::NativeWidgetGtk(new views::Widget),
|
| - bubble_(bubble),
|
| - border_contents_(new BorderContents) {
|
| - border_contents_->Init();
|
| - border_contents_->set_content_margins(content_margins);
|
| - }
|
| -
|
| - void ShowAndActivate(bool activate) {
|
| - // TODO: honor activate.
|
| - views::NativeWidgetGtk::Show();
|
| - }
|
| -
|
| - virtual void Close() OVERRIDE {
|
| - if (!bubble_)
|
| - return; // We have already been closed.
|
| - if (IsActive()) {
|
| - BrowserBubble::Delegate* delegate = bubble_->delegate();
|
| - if (delegate)
|
| - delegate->BubbleLostFocus(bubble_, false);
|
| - }
|
| - views::NativeWidgetGtk::Close();
|
| - bubble_ = NULL;
|
| - }
|
| -
|
| - virtual void Hide() OVERRIDE {
|
| - if (IsActive() && bubble_) {
|
| - BrowserBubble::Delegate* delegate = bubble_->delegate();
|
| - if (delegate)
|
| - delegate->BubbleLostFocus(bubble_, false);
|
| - }
|
| - views::NativeWidgetGtk::Hide();
|
| - }
|
| -
|
| - virtual void OnActiveChanged() OVERRIDE {
|
| - if (IsActive() || !bubble_)
|
| - return;
|
| - BrowserBubble::Delegate* delegate = bubble_->delegate();
|
| - if (!delegate) {
|
| - bubble_->DetachFromBrowser();
|
| - delete bubble_;
|
| - return;
|
| - }
|
| -
|
| - // TODO(jcampan): http://crbugs.com/29131 Check if the window we are losing
|
| - // focus to is a child window and pass that to the call
|
| - // below.
|
| - delegate->BubbleLostFocus(bubble_, false);
|
| - }
|
| -
|
| - virtual gboolean OnFocusIn(GtkWidget* widget, GdkEventFocus* event) OVERRIDE {
|
| - if (bubble_ && bubble_->delegate())
|
| - bubble_->delegate()->BubbleGotFocus(bubble_);
|
| - return views::NativeWidgetGtk::OnFocusIn(widget, event);
|
| - }
|
| -
|
| - BorderContents* border_contents() {
|
| - return border_contents_;
|
| - }
|
| -
|
| - private:
|
| - BrowserBubble* bubble_;
|
| - BorderContents* border_contents_; // Owned by root view of this widget.
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BubbleWidget);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -void BrowserBubble::InitPopup(const gfx::Insets& content_margins) {
|
| - // TODO(port)
|
| - BubbleWidget* bubble_widget = new BubbleWidget(this, content_margins);
|
| - popup_ = bubble_widget->GetWidget();
|
| - views::Widget::InitParams params(
|
| - views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
|
| - params.transparent = true;
|
| - params.parent = frame_->GetNativeView();
|
| - params.native_widget = bubble_widget;
|
| - popup_->Init(params);
|
| -#if defined(OS_CHROMEOS) && defined(TOOLKIT_USES_GTK)
|
| - {
|
| - vector<int> params;
|
| - params.push_back(0); // don't show while screen is locked
|
| - chromeos::WmIpc::instance()->SetWindowType(
|
| - popup_->GetNativeView(),
|
| - chromeos::WM_IPC_WINDOW_CHROME_INFO_BUBBLE,
|
| - ¶ms);
|
| - }
|
| -#endif
|
| -
|
| - views::View* contents_view = new views::View;
|
| -
|
| - // We add |contents_view| to ourselves before the AddChildView() call below so
|
| - // that when |contents| gets added, it will already have a widget, and thus
|
| - // any NativeButtons it creates in ViewHierarchyChanged() will be functional
|
| - // (e.g. calling SetChecked() on checkboxes is safe).
|
| - popup_->SetContentsView(contents_view);
|
| -
|
| - // Added border_contents before |view_| so it will paint under it.
|
| - contents_view->AddChildView(bubble_widget->border_contents());
|
| - contents_view->AddChildView(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() {
|
| - BorderContents* border_contents =
|
| - static_cast<BubbleWidget*>(popup_->native_widget())->border_contents();
|
| -
|
| - // Calculate and set the bounds for all windows and views.
|
| - gfx::Rect window_bounds;
|
| - gfx::Rect contents_bounds;
|
| - border_contents->SizeAndGetBounds(GetAbsoluteRelativeTo(),
|
| - arrow_location_, false, view_->size(),
|
| - &contents_bounds, &window_bounds);
|
| -
|
| - border_contents->SetBoundsRect(gfx::Rect(gfx::Point(), window_bounds.size()));
|
| - view_->SetBoundsRect(contents_bounds);
|
| -
|
| - SetAbsoluteBounds(window_bounds);
|
| -}
|
|
|