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

Side by Side Diff: ui/wm/core/window_animations.h

Issue 180273025: Keep dedicated layers for hiding animation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
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 #ifndef UI_WM_CORE_WINDOW_ANIMATIONS_H_ 5 #ifndef UI_WM_CORE_WINDOW_ANIMATIONS_H_
6 #define UI_WM_CORE_WINDOW_ANIMATIONS_H_ 6 #define UI_WM_CORE_WINDOW_ANIMATIONS_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "ui/compositor/scoped_layer_animation_settings.h"
10 #include "ui/wm/core/wm_core_export.h" 11 #include "ui/wm/core/wm_core_export.h"
11 12
12 namespace aura { 13 namespace aura {
13 class Window; 14 class Window;
14 } 15 }
15 namespace base { 16 namespace base {
16 class TimeDelta; 17 class TimeDelta;
17 } 18 }
18 namespace gfx { 19 namespace gfx {
19 class Rect; 20 class Rect;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 aura::Window* window, 75 aura::Window* window,
75 const base::TimeDelta& duration); 76 const base::TimeDelta& duration);
76 77
77 WM_CORE_EXPORT base::TimeDelta GetWindowVisibilityAnimationDuration( 78 WM_CORE_EXPORT base::TimeDelta GetWindowVisibilityAnimationDuration(
78 const aura::Window& window); 79 const aura::Window& window);
79 80
80 WM_CORE_EXPORT void SetWindowVisibilityAnimationVerticalPosition( 81 WM_CORE_EXPORT void SetWindowVisibilityAnimationVerticalPosition(
81 aura::Window* window, 82 aura::Window* window,
82 float position); 83 float position);
83 84
84 // Creates an ImplicitAnimationObserver that takes ownership of the layers 85 class HidingWindowAnimationObserver;
85 // associated with a Window so that the animation can continue after the Window 86 // A wrapper of ui::ScopedLayerAnimationSettings for hiding animations.
86 // has been destroyed. 87 // Use this to ensure that the hiding animation is visible even after
87 // The returned object deletes itself when the animations are done. 88 // the window is deleted or deactivated, instead of using
88 WM_CORE_EXPORT ui::ImplicitAnimationObserver* 89 // ui::ScopedLayerAnimationSettings directly.
89 CreateHidingWindowAnimationObserver(aura::Window* window); 90 class WM_CORE_EXPORT ScopedHidingAnimationSettings {
91 public:
92 explicit ScopedHidingAnimationSettings(aura::Window* window);
93 ~ScopedHidingAnimationSettings();
94
95 // Returns the wrapped ScopedLayeAnimationSettings instance.
96 ui::ScopedLayerAnimationSettings* layer_animation_settings() {
97 return &layer_animation_settings_;
98 }
99
100 private:
101 ui::ScopedLayerAnimationSettings layer_animation_settings_;
102 HidingWindowAnimationObserver* observer_;
103
104 DISALLOW_COPY_AND_ASSIGN(ScopedHidingAnimationSettings);
105 };
90 106
91 // Returns false if the |window| didn't animate. 107 // Returns false if the |window| didn't animate.
92 WM_CORE_EXPORT bool AnimateOnChildWindowVisibilityChanged(aura::Window* window, 108 WM_CORE_EXPORT bool AnimateOnChildWindowVisibilityChanged(aura::Window* window,
93 bool visible); 109 bool visible);
94 WM_CORE_EXPORT bool AnimateWindow(aura::Window* window, 110 WM_CORE_EXPORT bool AnimateWindow(aura::Window* window,
95 WindowAnimationType type); 111 WindowAnimationType type);
96 112
97 // Returns true if window animations are disabled for |window|. Window 113 // Returns true if window animations are disabled for |window|. Window
98 // animations are enabled by default. If |window| is NULL, this just checks 114 // animations are enabled by default. If |window| is NULL, this just checks
99 // if the global flag disabling window animations is present. 115 // if the global flag disabling window animations is present.
100 WM_CORE_EXPORT bool WindowAnimationsDisabled(aura::Window* window); 116 WM_CORE_EXPORT bool WindowAnimationsDisabled(aura::Window* window);
101 117
102 } // namespace corewm 118 } // namespace corewm
103 } // namespace views 119 } // namespace views
104 120
105 #endif // UI_WM_CORE_WINDOW_ANIMATIONS_H_ 121 #endif // UI_WM_CORE_WINDOW_ANIMATIONS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698