Index: ui/views/desktop/desktop_window_view.cc |
=================================================================== |
--- ui/views/desktop/desktop_window_view.cc (revision 110826) |
+++ ui/views/desktop/desktop_window_view.cc (working copy) |
@@ -1,295 +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 "ui/views/desktop/desktop_window_view.h" |
- |
-#include "base/utf_string_conversions.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/gfx/compositor/layer.h" |
-#include "ui/gfx/compositor/layer_animator.h" |
-#include "ui/gfx/transform.h" |
-#include "ui/views/desktop/desktop_background.h" |
-#include "ui/views/desktop/desktop_window_manager.h" |
-#include "ui/views/window/native_frame_view.h" |
-#include "views/widget/native_widget_view.h" |
-#include "views/widget/native_widget_views.h" |
-#include "views/widget/widget.h" |
- |
-#if defined(USE_AURA) |
-#include "views/widget/native_widget_aura.h" |
-#elif defined(OS_WIN) |
-#include "views/widget/native_widget_win.h" |
-#elif defined(USE_WAYLAND) |
-#include "views/widget/native_widget_wayland.h" |
-#elif defined(TOOLKIT_USES_GTK) |
-#include "views/widget/native_widget_gtk.h" |
-#endif |
- |
-namespace views { |
-namespace desktop { |
- |
-// The Widget that hosts the DesktopWindowView. Subclasses Widget to override |
-// CreateRootView() so that the DesktopWindowRootView can be supplied instead |
-// for custom event filtering. |
-class DesktopWindow : public Widget { |
- public: |
- explicit DesktopWindow(DesktopWindowView* desktop_window_view) |
- : desktop_window_view_(desktop_window_view) {} |
- virtual ~DesktopWindow() {} |
- |
- private: |
- // Overridden from Widget: |
- virtual bool OnKeyEvent(const KeyEvent& event) OVERRIDE { |
- return WindowManager::Get()->HandleKeyEvent(this, event); |
- } |
- |
- virtual bool OnMouseEvent(const MouseEvent& event) OVERRIDE { |
- return WindowManager::Get()->HandleMouseEvent(this, event) || |
- Widget::OnMouseEvent(event); |
- } |
- |
- virtual ui::TouchStatus OnTouchEvent(const TouchEvent& event) OVERRIDE { |
- ui::TouchStatus status = WindowManager::Get()-> |
- HandleTouchEvent(this, event); |
- if (status == ui::TOUCH_STATUS_UNKNOWN) |
- status = Widget::OnTouchEvent(event); |
- return status; |
- } |
- |
- DesktopWindowView* desktop_window_view_; |
- |
- DISALLOW_COPY_AND_ASSIGN(DesktopWindow); |
-}; |
- |
-class TestWindowContentView : public WidgetDelegateView { |
- public: |
- TestWindowContentView(const string16& title, SkColor color) |
- : title_(title), |
- color_(color) { |
- } |
- virtual ~TestWindowContentView() {} |
- |
- private: |
- // Overridden from View: |
- virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE { |
- canvas->FillRect(color_, GetLocalBounds()); |
- } |
- |
- // Overridden from WindowDelegate: |
- virtual string16 GetWindowTitle() const OVERRIDE { |
- return title_; |
- } |
- virtual View* GetContentsView() { |
- return this; |
- } |
- virtual bool CanMaximize() const OVERRIDE { |
- return true; |
- } |
- virtual bool OnMousePressed(const MouseEvent& event) OVERRIDE { |
- Widget* widget = View::GetWidget(); |
- if (widget->IsMinimized()) |
- widget->Restore(); |
- else |
- widget->Minimize(); |
- return true; |
- } |
- |
- string16 title_; |
- SkColor color_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TestWindowContentView); |
-}; |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// DesktopWindowView, public: |
- |
-// static |
-DesktopWindowView* DesktopWindowView::desktop_window_view = NULL; |
- |
-DesktopWindowView::DesktopWindowView(DesktopType type) |
- : type_(type) { |
- switch (type_) { |
- case DESKTOP_DEFAULT: |
- case DESKTOP_NETBOOK: |
- set_background(new DesktopBackground); |
- break; |
- case DESKTOP_OTHER: |
- set_background(Background::CreateStandardPanelBackground()); |
- break; |
- } |
-} |
- |
-DesktopWindowView::~DesktopWindowView() { |
-} |
- |
-// static |
-void DesktopWindowView::CreateDesktopWindow(DesktopType type) { |
- DCHECK(!desktop_window_view); |
- desktop_window_view = new DesktopWindowView(type); |
- views::Widget* window = new DesktopWindow(desktop_window_view); |
- desktop_window_view->widget_ = window; |
- |
- WindowManager::Install(new DesktopWindowManager(window)); |
- |
- views::Widget::InitParams params; |
- params.delegate = desktop_window_view; |
- // In this environment, CreateChromeWindow will default to creating a views- |
- // window, so we need to construct a NativeWidgetWin by hand. |
- // TODO(beng): Replace this with NativeWindow::CreateNativeRootWindow(). |
-#if defined(USE_AURA) |
- params.native_widget = new views::NativeWidgetAura(window); |
-#elif defined(OS_WIN) |
- params.native_widget = new views::NativeWidgetWin(window); |
-#elif defined(USE_WAYLAND) |
- params.native_widget = new views::NativeWidgetWayland(window); |
-#elif defined(TOOLKIT_USES_GTK) |
- params.native_widget = new views::NativeWidgetGtk(window); |
- params.show_state = ui::SHOW_STATE_MAXIMIZED; |
-#endif |
- params.bounds = gfx::Rect(20, 20, 1920, 1200); |
- window->Init(params); |
- window->Show(); |
-} |
- |
-void DesktopWindowView::CreateTestWindow(const string16& title, |
- SkColor color, |
- gfx::Rect initial_bounds, |
- bool rotate) { |
- views::Widget* window = views::Widget::CreateWindowWithBounds( |
- new TestWindowContentView(title, color), |
- initial_bounds); |
- window->Show(); |
- |
- NativeWidgetViews* native_widget_views = |
- static_cast<NativeWidgetViews*>(window->native_widget()); |
- |
- if (rotate) { |
- ui::Transform transform; |
- transform.SetRotate(90.0f); |
- transform.SetTranslateX(window->GetWindowScreenBounds().width()); |
- native_widget_views->GetView()->SetTransform(transform); |
- } |
- |
- native_widget_views->GetView()->SetPaintToLayer(true); |
- if (native_widget_views->GetView()->layer()) { |
- native_widget_views->GetView()->layer()->SetAnimator( |
- ui::LayerAnimator::CreateImplicitAnimator()); |
- } |
-} |
- |
-void DesktopWindowView::AddObserver(DesktopWindowView::Observer* observer) { |
- observers_.AddObserver(observer); |
-} |
- |
-void DesktopWindowView::RemoveObserver(DesktopWindowView::Observer* observer) { |
- observers_.RemoveObserver(observer); |
-} |
- |
-bool DesktopWindowView::HasObserver(DesktopWindowView::Observer* observer) { |
- return observers_.HasObserver(observer); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// DesktopWindowView, View overrides: |
- |
-void DesktopWindowView::Layout() { |
-} |
- |
-void DesktopWindowView::OnBoundsChanged(const gfx::Rect& previous_bounds) { |
- static_cast<DesktopWindowManager*>(WindowManager::Get())-> |
- UpdateWindowsAfterScreenSizeChanged(bounds()); |
- |
- FOR_EACH_OBSERVER(Observer, observers_, |
- OnDesktopBoundsChanged(previous_bounds)); |
-} |
- |
-void DesktopWindowView::ViewHierarchyChanged( |
- bool is_add, View* parent, View* child) { |
- if (child->GetClassName() == internal::NativeWidgetView::kViewClassName) { |
- Widget* widget = |
- static_cast<internal::NativeWidgetView*>(child)->GetAssociatedWidget(); |
- if (is_add) |
- WindowManager::Get()->Register(widget); |
- } |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// DesktopWindowView, WidgetDelegate implementation: |
- |
-Widget* DesktopWindowView::GetWidget() { |
- return widget_; |
-} |
- |
-const Widget* DesktopWindowView::GetWidget() const { |
- return widget_; |
-} |
- |
-bool DesktopWindowView::CanResize() const { |
- return true; |
-} |
- |
-bool DesktopWindowView::CanMaximize() const { |
- return CanResize(); |
-} |
- |
-string16 DesktopWindowView::GetWindowTitle() const { |
- return ASCIIToUTF16("Aura Desktop"); |
-} |
- |
-SkBitmap DesktopWindowView::GetWindowAppIcon() { |
- return SkBitmap(); |
-} |
- |
-SkBitmap DesktopWindowView::GetWindowIcon() { |
- return SkBitmap(); |
-} |
- |
-bool DesktopWindowView::ShouldShowWindowIcon() const { |
- return false; |
-} |
- |
-void DesktopWindowView::WindowClosing() { |
- MessageLoopForUI::current()->Quit(); |
-} |
- |
-View* DesktopWindowView::GetContentsView() { |
- return this; |
-} |
- |
-NonClientFrameView* DesktopWindowView::CreateNonClientFrameView() { |
- switch (type_) { |
- case DESKTOP_DEFAULT: |
- case DESKTOP_NETBOOK: |
- return NULL; |
- |
- case DESKTOP_OTHER: |
- return new NativeFrameView(widget_); |
- } |
- return NULL; |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// ui::LayerAnimationObserver Implementation: |
- |
-void DesktopWindowView::OnLayerAnimationEnded( |
- const ui::LayerAnimationSequence* animation) { |
- // The layer, and all the observers should be notified of the |
- // transformed size of the desktop. |
- if (widget_) { |
- gfx::Rect current_bounds(widget_->GetClientAreaScreenBounds().size()); |
- layer()->transform().TransformRect(¤t_bounds); |
- SetBoundsRect(gfx::Rect(current_bounds.size())); |
- } |
-} |
- |
-void DesktopWindowView::OnLayerAnimationScheduled( |
- const ui::LayerAnimationSequence* animation) { |
-} |
- |
-void DesktopWindowView::OnLayerAnimationAborted( |
- const ui::LayerAnimationSequence* animation) { |
-} |
- |
-} // namespace desktop |
-} // namespace views |