| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/wm/frame_painter.h" | 5 #include "ash/wm/frame_painter.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "ash/ash_constants.h" | 9 #include "ash/ash_constants.h" |
| 10 #include "ash/root_window_controller.h" | 10 #include "ash/root_window_controller.h" |
| 11 #include "ash/root_window_settings.h" | 11 #include "ash/root_window_settings.h" |
| 12 #include "ash/shell.h" | 12 #include "ash/shell.h" |
| 13 #include "ash/shell_window_ids.h" | 13 #include "ash/shell_window_ids.h" |
| 14 #include "ash/wm/property_util.h" | 14 #include "ash/wm/property_util.h" |
| 15 #include "ash/wm/window_settings.h" | 15 #include "ash/wm/window_settings.h" |
| 16 #include "ash/wm/window_util.h" | 16 #include "ash/wm/window_util.h" |
| 17 #include "ash/wm/workspace/frame_caption_button_container_view.h" | 17 #include "ash/wm/workspace/frame_caption_button_container_view.h" |
| 18 #include "base/logging.h" // DCHECK | 18 #include "base/logging.h" // DCHECK |
| 19 #include "grit/ash_resources.h" | 19 #include "grit/ash_resources.h" |
| 20 #include "third_party/skia/include/core/SkCanvas.h" | 20 #include "third_party/skia/include/core/SkCanvas.h" |
| 21 #include "third_party/skia/include/core/SkColor.h" | 21 #include "third_party/skia/include/core/SkColor.h" |
| 22 #include "third_party/skia/include/core/SkPaint.h" | 22 #include "third_party/skia/include/core/SkPaint.h" |
| 23 #include "third_party/skia/include/core/SkPath.h" | 23 #include "third_party/skia/include/core/SkPath.h" |
| 24 #include "ui/aura/client/aura_constants.h" | 24 #include "ui/aura/client/aura_constants.h" |
| 25 #include "ui/aura/env.h" | 25 #include "ui/aura/env.h" |
| 26 #include "ui/aura/root_window.h" | 26 #include "ui/aura/root_window.h" |
| 27 #include "ui/aura/window.h" | 27 #include "ui/aura/window.h" |
| 28 #include "ui/base/animation/slide_animation.h" | |
| 29 #include "ui/base/hit_test.h" | 28 #include "ui/base/hit_test.h" |
| 30 #include "ui/base/layout.h" | 29 #include "ui/base/layout.h" |
| 31 #include "ui/base/resource/resource_bundle.h" | 30 #include "ui/base/resource/resource_bundle.h" |
| 32 #include "ui/base/theme_provider.h" | 31 #include "ui/base/theme_provider.h" |
| 32 #include "ui/gfx/animation/slide_animation.h" |
| 33 #include "ui/gfx/canvas.h" | 33 #include "ui/gfx/canvas.h" |
| 34 #include "ui/gfx/font.h" | 34 #include "ui/gfx/font.h" |
| 35 #include "ui/gfx/image/image.h" | 35 #include "ui/gfx/image/image.h" |
| 36 #include "ui/gfx/screen.h" | 36 #include "ui/gfx/screen.h" |
| 37 #include "ui/gfx/skia_util.h" | 37 #include "ui/gfx/skia_util.h" |
| 38 #include "ui/views/widget/widget.h" | 38 #include "ui/views/widget/widget.h" |
| 39 #include "ui/views/widget/widget_delegate.h" | 39 #include "ui/views/widget/widget_delegate.h" |
| 40 | 40 |
| 41 using aura::RootWindow; | 41 using aura::RootWindow; |
| 42 using aura::Window; | 42 using aura::Window; |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 // animating. Doing so results in continually painting during the animation | 411 // animating. Doing so results in continually painting during the animation |
| 412 // and gives a slower frame rate. | 412 // and gives a slower frame rate. |
| 413 // TODO(sky): expose a better way to determine this rather than assuming | 413 // TODO(sky): expose a better way to determine this rather than assuming |
| 414 // the parent is a workspace. | 414 // the parent is a workspace. |
| 415 bool parent_animating = parent && | 415 bool parent_animating = parent && |
| 416 (parent->layer()->GetAnimator()->IsAnimatingProperty( | 416 (parent->layer()->GetAnimator()->IsAnimatingProperty( |
| 417 ui::LayerAnimationElement::OPACITY) || | 417 ui::LayerAnimationElement::OPACITY) || |
| 418 parent->layer()->GetAnimator()->IsAnimatingProperty( | 418 parent->layer()->GetAnimator()->IsAnimatingProperty( |
| 419 ui::LayerAnimationElement::VISIBILITY)); | 419 ui::LayerAnimationElement::VISIBILITY)); |
| 420 if (!parent_animating) { | 420 if (!parent_animating) { |
| 421 crossfade_animation_.reset(new ui::SlideAnimation(this)); | 421 crossfade_animation_.reset(new gfx::SlideAnimation(this)); |
| 422 crossfade_theme_frame_id_ = previous_theme_frame_id_; | 422 crossfade_theme_frame_id_ = previous_theme_frame_id_; |
| 423 crossfade_theme_frame_overlay_id_ = previous_theme_frame_overlay_id_; | 423 crossfade_theme_frame_overlay_id_ = previous_theme_frame_overlay_id_; |
| 424 crossfade_opacity_ = previous_opacity_; | 424 crossfade_opacity_ = previous_opacity_; |
| 425 crossfade_animation_->SetSlideDuration(kActivationCrossfadeDurationMs); | 425 crossfade_animation_->SetSlideDuration(kActivationCrossfadeDurationMs); |
| 426 crossfade_animation_->Show(); | 426 crossfade_animation_->Show(); |
| 427 } else { | 427 } else { |
| 428 crossfade_animation_.reset(); | 428 crossfade_animation_.reset(); |
| 429 } | 429 } |
| 430 } | 430 } |
| 431 | 431 |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 695 } | 695 } |
| 696 | 696 |
| 697 void FramePainter::OnWindowRemovingFromRootWindow(aura::Window* window) { | 697 void FramePainter::OnWindowRemovingFromRootWindow(aura::Window* window) { |
| 698 // Needs to trigger the window appearance change if the window moves across | 698 // Needs to trigger the window appearance change if the window moves across |
| 699 // root windows and only one window is left in the previous root. Because | 699 // root windows and only one window is left in the previous root. Because |
| 700 // |window| is not yet moved, |window| has to be ignored. | 700 // |window| is not yet moved, |window| has to be ignored. |
| 701 UpdateSoloWindowInRoot(window->GetRootWindow(), window); | 701 UpdateSoloWindowInRoot(window->GetRootWindow(), window); |
| 702 } | 702 } |
| 703 | 703 |
| 704 /////////////////////////////////////////////////////////////////////////////// | 704 /////////////////////////////////////////////////////////////////////////////// |
| 705 // ui::AnimationDelegate overrides: | 705 // gfx::AnimationDelegate overrides: |
| 706 | 706 |
| 707 void FramePainter::AnimationProgressed(const ui::Animation* animation) { | 707 void FramePainter::AnimationProgressed(const gfx::Animation* animation) { |
| 708 frame_->non_client_view()->SchedulePaintInRect(header_frame_bounds_); | 708 frame_->non_client_view()->SchedulePaintInRect(header_frame_bounds_); |
| 709 } | 709 } |
| 710 | 710 |
| 711 /////////////////////////////////////////////////////////////////////////////// | 711 /////////////////////////////////////////////////////////////////////////////// |
| 712 // FramePainter, private: | 712 // FramePainter, private: |
| 713 | 713 |
| 714 int FramePainter::GetTitleOffsetX() const { | 714 int FramePainter::GetTitleOffsetX() const { |
| 715 return window_icon_ ? | 715 return window_icon_ ? |
| 716 window_icon_->bounds().right() + kTitleIconOffsetX : | 716 window_icon_->bounds().right() + kTitleIconOffsetX : |
| 717 kTitleNoIconOffsetX; | 717 kTitleNoIconOffsetX; |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 // icon. Don't use |window_icon_| for this computation as it may be NULL. | 841 // icon. Don't use |window_icon_| for this computation as it may be NULL. |
| 842 int title_y = GetCaptionButtonContainerCenterY() - title_font.GetHeight() / 2; | 842 int title_y = GetCaptionButtonContainerCenterY() - title_font.GetHeight() / 2; |
| 843 return gfx::Rect( | 843 return gfx::Rect( |
| 844 title_x, | 844 title_x, |
| 845 std::max(0, title_y), | 845 std::max(0, title_y), |
| 846 std::max(0, caption_button_container_->x() - kTitleLogoSpacing - title_x), | 846 std::max(0, caption_button_container_->x() - kTitleLogoSpacing - title_x), |
| 847 title_font.GetHeight()); | 847 title_font.GetHeight()); |
| 848 } | 848 } |
| 849 | 849 |
| 850 } // namespace ash | 850 } // namespace ash |
| OLD | NEW |