| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/rotator/screen_rotation_animator.h" | 5 #include "ash/rotator/screen_rotation_animator.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/display/display_info.h" | 10 #include "ash/display/display_info.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 namespace { | 35 namespace { |
| 36 | 36 |
| 37 // The number of degrees that the rotation animations animate through. | 37 // The number of degrees that the rotation animations animate through. |
| 38 const int kRotationDegrees = 20; | 38 const int kRotationDegrees = 20; |
| 39 | 39 |
| 40 // The time it takes for the rotation animations to run. | 40 // The time it takes for the rotation animations to run. |
| 41 const int kRotationDurationInMs = 250; | 41 const int kRotationDurationInMs = 250; |
| 42 | 42 |
| 43 // Gets the current display rotation for the display with the specified | 43 // Gets the current display rotation for the display with the specified |
| 44 // |display_id|. | 44 // |display_id|. |
| 45 gfx::Display::Rotation GetCurrentRotation(int64 display_id) { | 45 gfx::Display::Rotation GetCurrentRotation(int64_t display_id) { |
| 46 return Shell::GetInstance() | 46 return Shell::GetInstance() |
| 47 ->display_manager() | 47 ->display_manager() |
| 48 ->GetDisplayInfo(display_id) | 48 ->GetDisplayInfo(display_id) |
| 49 .GetActiveRotation(); | 49 .GetActiveRotation(); |
| 50 } | 50 } |
| 51 | 51 |
| 52 // Returns true if the rotation between |initial_rotation| and |new_rotation| is | 52 // Returns true if the rotation between |initial_rotation| and |new_rotation| is |
| 53 // 180 degrees. | 53 // 180 degrees. |
| 54 bool Is180DegreeFlip(gfx::Display::Rotation initial_rotation, | 54 bool Is180DegreeFlip(gfx::Display::Rotation initial_rotation, |
| 55 gfx::Display::Rotation new_rotation) { | 55 gfx::Display::Rotation new_rotation) { |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 for (ui::Layer* child_layer : layer->children()) | 138 for (ui::Layer* child_layer : layer->children()) |
| 139 AbortAnimations(child_layer); | 139 AbortAnimations(child_layer); |
| 140 layer->GetAnimator()->AbortAllAnimations(); | 140 layer->GetAnimator()->AbortAllAnimations(); |
| 141 } | 141 } |
| 142 | 142 |
| 143 // Set the screen orientation for the given |display_id| to |new_rotation| and | 143 // Set the screen orientation for the given |display_id| to |new_rotation| and |
| 144 // animate the change. The animation will rotate the initial orientation's | 144 // animate the change. The animation will rotate the initial orientation's |
| 145 // layer towards the new orientation through |rotation_degrees| while fading | 145 // layer towards the new orientation through |rotation_degrees| while fading |
| 146 // out, and the new orientation's layer will be rotated in to the | 146 // out, and the new orientation's layer will be rotated in to the |
| 147 // |new_orientation| through |rotation_degrees| arc. | 147 // |new_orientation| through |rotation_degrees| arc. |
| 148 void RotateScreen(int64 display_id, | 148 void RotateScreen(int64_t display_id, |
| 149 gfx::Display::Rotation new_rotation, | 149 gfx::Display::Rotation new_rotation, |
| 150 gfx::Display::RotationSource source) { | 150 gfx::Display::RotationSource source) { |
| 151 aura::Window* root_window = Shell::GetInstance() | 151 aura::Window* root_window = Shell::GetInstance() |
| 152 ->window_tree_host_manager() | 152 ->window_tree_host_manager() |
| 153 ->GetRootWindowForDisplayId(display_id); | 153 ->GetRootWindowForDisplayId(display_id); |
| 154 | 154 |
| 155 const gfx::Display::Rotation initial_orientation = | 155 const gfx::Display::Rotation initial_orientation = |
| 156 GetCurrentRotation(display_id); | 156 GetCurrentRotation(display_id); |
| 157 | 157 |
| 158 const gfx::Rect original_screen_bounds = root_window->GetTargetBounds(); | 158 const gfx::Rect original_screen_bounds = root_window->GetTargetBounds(); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 scoped_ptr<ui::LayerAnimationSequence> animation_sequence( | 236 scoped_ptr<ui::LayerAnimationSequence> animation_sequence( |
| 237 new ui::LayerAnimationSequence(screen_rotation.release())); | 237 new ui::LayerAnimationSequence(screen_rotation.release())); |
| 238 // Add an observer so that the cloned layers can be cleaned up with the | 238 // Add an observer so that the cloned layers can be cleaned up with the |
| 239 // animation completes/aborts. | 239 // animation completes/aborts. |
| 240 animation_sequence->AddObserver(layer_cleanup_observer.release()); | 240 animation_sequence->AddObserver(layer_cleanup_observer.release()); |
| 241 animator->StartAnimation(animation_sequence.release()); | 241 animator->StartAnimation(animation_sequence.release()); |
| 242 } | 242 } |
| 243 | 243 |
| 244 } // namespace | 244 } // namespace |
| 245 | 245 |
| 246 ScreenRotationAnimator::ScreenRotationAnimator(int64 display_id) | 246 ScreenRotationAnimator::ScreenRotationAnimator(int64_t display_id) |
| 247 : display_id_(display_id) { | 247 : display_id_(display_id) {} |
| 248 } | |
| 249 | 248 |
| 250 ScreenRotationAnimator::~ScreenRotationAnimator() { | 249 ScreenRotationAnimator::~ScreenRotationAnimator() { |
| 251 } | 250 } |
| 252 | 251 |
| 253 bool ScreenRotationAnimator::CanAnimate() const { | 252 bool ScreenRotationAnimator::CanAnimate() const { |
| 254 return Shell::GetInstance() | 253 return Shell::GetInstance() |
| 255 ->display_manager() | 254 ->display_manager() |
| 256 ->GetDisplayForId(display_id_) | 255 ->GetDisplayForId(display_id_) |
| 257 .is_valid(); | 256 .is_valid(); |
| 258 } | 257 } |
| 259 | 258 |
| 260 void ScreenRotationAnimator::Rotate(gfx::Display::Rotation new_rotation, | 259 void ScreenRotationAnimator::Rotate(gfx::Display::Rotation new_rotation, |
| 261 gfx::Display::RotationSource source) { | 260 gfx::Display::RotationSource source) { |
| 262 const gfx::Display::Rotation current_rotation = | 261 const gfx::Display::Rotation current_rotation = |
| 263 GetCurrentRotation(display_id_); | 262 GetCurrentRotation(display_id_); |
| 264 | 263 |
| 265 if (current_rotation == new_rotation) | 264 if (current_rotation == new_rotation) |
| 266 return; | 265 return; |
| 267 | 266 |
| 268 RotateScreen(display_id_, new_rotation, source); | 267 RotateScreen(display_id_, new_rotation, source); |
| 269 } | 268 } |
| 270 | 269 |
| 271 } // namespace ash | 270 } // namespace ash |
| OLD | NEW |