Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(702)

Side by Side Diff: ash/wm/window_animations.cc

Issue 1867223004: Convert //ash from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/wm/window_animations.h ('k') | ash/wm/window_animations_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/window_animations.h" 5 #include "ash/wm/window_animations.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 // Recalculate the transform at restore time since the launcher item may have 98 // Recalculate the transform at restore time since the launcher item may have
99 // moved while the window was minimized. 99 // moved while the window was minimized.
100 gfx::Rect bounds = window->bounds(); 100 gfx::Rect bounds = window->bounds();
101 gfx::Rect target_bounds = GetMinimizeAnimationTargetBoundsInScreen(window); 101 gfx::Rect target_bounds = GetMinimizeAnimationTargetBoundsInScreen(window);
102 target_bounds = 102 target_bounds =
103 ScreenUtil::ConvertRectFromScreen(window->parent(), target_bounds); 103 ScreenUtil::ConvertRectFromScreen(window->parent(), target_bounds);
104 104
105 float scale_x = static_cast<float>(target_bounds.width()) / bounds.width(); 105 float scale_x = static_cast<float>(target_bounds.width()) / bounds.width();
106 float scale_y = static_cast<float>(target_bounds.height()) / bounds.height(); 106 float scale_y = static_cast<float>(target_bounds.height()) / bounds.height();
107 107
108 scoped_ptr<ui::InterpolatedTransform> scale( 108 std::unique_ptr<ui::InterpolatedTransform> scale(new ui::InterpolatedScale(
109 new ui::InterpolatedScale(gfx::Point3F(1, 1, 1), 109 gfx::Point3F(1, 1, 1), gfx::Point3F(scale_x, scale_y, 1)));
110 gfx::Point3F(scale_x, scale_y, 1)));
111 110
112 scoped_ptr<ui::InterpolatedTransform> translation( 111 std::unique_ptr<ui::InterpolatedTransform> translation(
113 new ui::InterpolatedTranslation( 112 new ui::InterpolatedTranslation(
114 gfx::PointF(), gfx::PointF(target_bounds.x() - bounds.x(), 113 gfx::PointF(), gfx::PointF(target_bounds.x() - bounds.x(),
115 target_bounds.y() - bounds.y()))); 114 target_bounds.y() - bounds.y())));
116 115
117 scale->SetChild(translation.release()); 116 scale->SetChild(translation.release());
118 scale->SetReversed(show); 117 scale->SetReversed(show);
119 118
120 base::TimeDelta duration = window->layer()->GetAnimator()-> 119 base::TimeDelta duration = window->layer()->GetAnimator()->
121 GetTransitionDuration(); 120 GetTransitionDuration();
122 121
123 scoped_ptr<ui::LayerAnimationElement> transition( 122 std::unique_ptr<ui::LayerAnimationElement> transition(
124 ui::LayerAnimationElement::CreateInterpolatedTransformElement( 123 ui::LayerAnimationElement::CreateInterpolatedTransformElement(
125 scale.release(), duration)); 124 scale.release(), duration));
126 125
127 transition->set_tween_type( 126 transition->set_tween_type(
128 show ? gfx::Tween::EASE_IN : gfx::Tween::EASE_IN_OUT); 127 show ? gfx::Tween::EASE_IN : gfx::Tween::EASE_IN_OUT);
129 128
130 window->layer()->GetAnimator()->ScheduleAnimation( 129 window->layer()->GetAnimator()->ScheduleAnimation(
131 new ui::LayerAnimationSequence(transition.release())); 130 new ui::LayerAnimationSequence(transition.release()));
132 131
133 // When hiding a window, turn off blending until the animation is 3 / 4 done 132 // When hiding a window, turn off blending until the animation is 3 / 4 done
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 // Observer for a window cross-fade animation. If either the window closes or 261 // Observer for a window cross-fade animation. If either the window closes or
263 // the layer's animation completes or compositing is aborted due to GPU crash, 262 // the layer's animation completes or compositing is aborted due to GPU crash,
264 // it deletes the layer and removes itself as an observer. 263 // it deletes the layer and removes itself as an observer.
265 class CrossFadeObserver : public ui::CompositorObserver, 264 class CrossFadeObserver : public ui::CompositorObserver,
266 public aura::WindowObserver, 265 public aura::WindowObserver,
267 public ui::ImplicitAnimationObserver { 266 public ui::ImplicitAnimationObserver {
268 public: 267 public:
269 // Observes |window| for destruction, but does not take ownership. 268 // Observes |window| for destruction, but does not take ownership.
270 // Takes ownership of |layer| and its child layers. 269 // Takes ownership of |layer| and its child layers.
271 CrossFadeObserver(aura::Window* window, 270 CrossFadeObserver(aura::Window* window,
272 scoped_ptr<ui::LayerTreeOwner> layer_owner) 271 std::unique_ptr<ui::LayerTreeOwner> layer_owner)
273 : window_(window), layer_owner_(std::move(layer_owner)) { 272 : window_(window), layer_owner_(std::move(layer_owner)) {
274 window_->AddObserver(this); 273 window_->AddObserver(this);
275 layer_owner_->root()->GetCompositor()->AddObserver(this); 274 layer_owner_->root()->GetCompositor()->AddObserver(this);
276 } 275 }
277 ~CrossFadeObserver() override { 276 ~CrossFadeObserver() override {
278 window_->RemoveObserver(this); 277 window_->RemoveObserver(this);
279 window_ = NULL; 278 window_ = NULL;
280 layer_owner_->root()->GetCompositor()->RemoveObserver(this); 279 layer_owner_->root()->GetCompositor()->RemoveObserver(this);
281 } 280 }
282 281
(...skipping 17 matching lines...) Expand all
300 void OnWindowRemovingFromRootWindow(aura::Window* window, 299 void OnWindowRemovingFromRootWindow(aura::Window* window,
301 aura::Window* new_root) override { 300 aura::Window* new_root) override {
302 layer_owner_->root()->GetAnimator()->StopAnimating(); 301 layer_owner_->root()->GetAnimator()->StopAnimating();
303 } 302 }
304 303
305 // ui::ImplicitAnimationObserver overrides: 304 // ui::ImplicitAnimationObserver overrides:
306 void OnImplicitAnimationsCompleted() override { delete this; } 305 void OnImplicitAnimationsCompleted() override { delete this; }
307 306
308 private: 307 private:
309 aura::Window* window_; // not owned 308 aura::Window* window_; // not owned
310 scoped_ptr<ui::LayerTreeOwner> layer_owner_; 309 std::unique_ptr<ui::LayerTreeOwner> layer_owner_;
311 310
312 DISALLOW_COPY_AND_ASSIGN(CrossFadeObserver); 311 DISALLOW_COPY_AND_ASSIGN(CrossFadeObserver);
313 }; 312 };
314 313
315 base::TimeDelta CrossFadeAnimation( 314 base::TimeDelta CrossFadeAnimation(
316 aura::Window* window, 315 aura::Window* window,
317 scoped_ptr<ui::LayerTreeOwner> old_layer_owner, 316 std::unique_ptr<ui::LayerTreeOwner> old_layer_owner,
318 gfx::Tween::Type tween_type) { 317 gfx::Tween::Type tween_type) {
319 DCHECK(old_layer_owner->root()); 318 DCHECK(old_layer_owner->root());
320 const gfx::Rect old_bounds(old_layer_owner->root()->bounds()); 319 const gfx::Rect old_bounds(old_layer_owner->root()->bounds());
321 gfx::RectF old_transformed_bounds(old_bounds); 320 gfx::RectF old_transformed_bounds(old_bounds);
322 gfx::Transform old_transform(old_layer_owner->root()->transform()); 321 gfx::Transform old_transform(old_layer_owner->root()->transform());
323 gfx::Transform old_transform_in_root; 322 gfx::Transform old_transform_in_root;
324 old_transform_in_root.Translate(old_bounds.x(), old_bounds.y()); 323 old_transform_in_root.Translate(old_bounds.x(), old_bounds.y());
325 old_transform_in_root.PreconcatTransform(old_transform); 324 old_transform_in_root.PreconcatTransform(old_transform);
326 old_transform_in_root.Translate(-old_bounds.x(), -old_bounds.y()); 325 old_transform_in_root.Translate(-old_bounds.x(), -old_bounds.y());
327 old_transform_in_root.TransformRect(&old_transformed_bounds); 326 old_transform_in_root.TransformRect(&old_transformed_bounds);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 return AnimateShowWindow(window); 405 return AnimateShowWindow(window);
407 // Don't start hiding the window again if it's already being hidden. 406 // Don't start hiding the window again if it's already being hidden.
408 return window->layer()->GetTargetOpacity() != 0.0f && 407 return window->layer()->GetTargetOpacity() != 0.0f &&
409 AnimateHideWindow(window); 408 AnimateHideWindow(window);
410 } 409 }
411 410
412 std::vector<ui::LayerAnimationSequence*> 411 std::vector<ui::LayerAnimationSequence*>
413 CreateBrightnessGrayscaleAnimationSequence(float target_value, 412 CreateBrightnessGrayscaleAnimationSequence(float target_value,
414 base::TimeDelta duration) { 413 base::TimeDelta duration) {
415 gfx::Tween::Type animation_type = gfx::Tween::EASE_OUT; 414 gfx::Tween::Type animation_type = gfx::Tween::EASE_OUT;
416 scoped_ptr<ui::LayerAnimationSequence> brightness_sequence( 415 std::unique_ptr<ui::LayerAnimationSequence> brightness_sequence(
417 new ui::LayerAnimationSequence()); 416 new ui::LayerAnimationSequence());
418 scoped_ptr<ui::LayerAnimationSequence> grayscale_sequence( 417 std::unique_ptr<ui::LayerAnimationSequence> grayscale_sequence(
419 new ui::LayerAnimationSequence()); 418 new ui::LayerAnimationSequence());
420 419
421 scoped_ptr<ui::LayerAnimationElement> brightness_element( 420 std::unique_ptr<ui::LayerAnimationElement> brightness_element(
422 ui::LayerAnimationElement::CreateBrightnessElement( 421 ui::LayerAnimationElement::CreateBrightnessElement(target_value,
423 target_value, duration)); 422 duration));
424 brightness_element->set_tween_type(animation_type); 423 brightness_element->set_tween_type(animation_type);
425 brightness_sequence->AddElement(brightness_element.release()); 424 brightness_sequence->AddElement(brightness_element.release());
426 425
427 scoped_ptr<ui::LayerAnimationElement> grayscale_element( 426 std::unique_ptr<ui::LayerAnimationElement> grayscale_element(
428 ui::LayerAnimationElement::CreateGrayscaleElement( 427 ui::LayerAnimationElement::CreateGrayscaleElement(target_value,
429 target_value, duration)); 428 duration));
430 grayscale_element->set_tween_type(animation_type); 429 grayscale_element->set_tween_type(animation_type);
431 grayscale_sequence->AddElement(grayscale_element.release()); 430 grayscale_sequence->AddElement(grayscale_element.release());
432 431
433 std::vector<ui::LayerAnimationSequence*> animations; 432 std::vector<ui::LayerAnimationSequence*> animations;
434 animations.push_back(brightness_sequence.release()); 433 animations.push_back(brightness_sequence.release());
435 animations.push_back(grayscale_sequence.release()); 434 animations.push_back(grayscale_sequence.release());
436 435
437 return animations; 436 return animations;
438 } 437 }
439 438
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 gfx::Rect work_area = 489 gfx::Rect work_area =
491 gfx::Screen::GetScreen()->GetDisplayNearestWindow(window).work_area(); 490 gfx::Screen::GetScreen()->GetDisplayNearestWindow(window).work_area();
492 int ltr_adjusted_x = base::i18n::IsRTL() ? work_area.right() : work_area.x(); 491 int ltr_adjusted_x = base::i18n::IsRTL() ? work_area.right() : work_area.x();
493 return shelf->SelectValueForShelfAlignment( 492 return shelf->SelectValueForShelfAlignment(
494 gfx::Rect(ltr_adjusted_x, work_area.bottom(), 0, 0), 493 gfx::Rect(ltr_adjusted_x, work_area.bottom(), 0, 0),
495 gfx::Rect(work_area.x(), work_area.y(), 0, 0), 494 gfx::Rect(work_area.x(), work_area.y(), 0, 0),
496 gfx::Rect(work_area.right(), work_area.y(), 0, 0)); 495 gfx::Rect(work_area.right(), work_area.y(), 0, 0));
497 } 496 }
498 497
499 } // namespace ash 498 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/window_animations.h ('k') | ash/wm/window_animations_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698