OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef UI_VIEWS_COREWM_WINDOW_ANIMATIONS_H_ | |
6 #define UI_VIEWS_COREWM_WINDOW_ANIMATIONS_H_ | |
7 | |
8 #include <vector> | |
9 | |
10 #include "ui/views/views_export.h" | |
11 | |
12 namespace aura { | |
13 class Window; | |
14 } | |
15 namespace base { | |
16 class TimeDelta; | |
17 } | |
18 namespace gfx { | |
19 class Rect; | |
20 } | |
21 namespace ui { | |
22 class ImplicitAnimationObserver; | |
23 class Layer; | |
24 class LayerAnimationSequence; | |
25 } | |
26 | |
27 namespace views { | |
28 namespace corewm { | |
29 | |
30 // A variety of canned animations for window transitions. | |
31 enum WindowVisibilityAnimationType { | |
32 WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT = 0, // Default. Lets the system | |
33 // decide based on window | |
34 // type. | |
35 WINDOW_VISIBILITY_ANIMATION_TYPE_DROP, // Window shrinks in. | |
36 WINDOW_VISIBILITY_ANIMATION_TYPE_VERTICAL, // Vertical Glenimation. | |
37 WINDOW_VISIBILITY_ANIMATION_TYPE_FADE, // Fades in/out. | |
38 WINDOW_VISIBILITY_ANIMATION_TYPE_ROTATE, // Window rotates in. | |
39 | |
40 // Downstream library animations start above this point. | |
41 WINDOW_VISIBILITY_ANIMATION_MAX | |
42 }; | |
43 | |
44 // Canned animations that take effect once but don't have a symmetric pair as | |
45 // visibility animations do. | |
46 enum WindowAnimationType { | |
47 WINDOW_ANIMATION_TYPE_BOUNCE = 0, // Window scales up and down. | |
48 }; | |
49 | |
50 // Type of visibility change transition that a window should animate. | |
51 // Default behavior is to animate both show and hide. | |
52 enum WindowVisibilityAnimationTransition { | |
53 ANIMATE_SHOW = 0x1, | |
54 ANIMATE_HIDE = 0x2, | |
55 ANIMATE_BOTH = ANIMATE_SHOW | ANIMATE_HIDE, | |
56 ANIMATE_NONE = 0x4, | |
57 }; | |
58 | |
59 // These two methods use int for type rather than WindowVisibilityAnimationType | |
60 // since downstream libraries can extend the set of animations. | |
61 VIEWS_EXPORT void SetWindowVisibilityAnimationType(aura::Window* window, | |
62 int type); | |
63 VIEWS_EXPORT int GetWindowVisibilityAnimationType(aura::Window* window); | |
64 | |
65 VIEWS_EXPORT void SetWindowVisibilityAnimationTransition( | |
66 aura::Window* window, | |
67 WindowVisibilityAnimationTransition transition); | |
68 | |
69 VIEWS_EXPORT bool HasWindowVisibilityAnimationTransition( | |
70 aura::Window* window, | |
71 WindowVisibilityAnimationTransition transition); | |
72 | |
73 VIEWS_EXPORT void SetWindowVisibilityAnimationDuration( | |
74 aura::Window* window, | |
75 const base::TimeDelta& duration); | |
76 | |
77 VIEWS_EXPORT base::TimeDelta GetWindowVisibilityAnimationDuration( | |
78 const aura::Window& window); | |
79 | |
80 VIEWS_EXPORT void SetWindowVisibilityAnimationVerticalPosition( | |
81 aura::Window* window, | |
82 float position); | |
83 | |
84 // Creates an ImplicitAnimationObserver that takes ownership of the layers | |
85 // associated with a Window so that the animation can continue after the Window | |
86 // has been destroyed. | |
87 // The returned object deletes itself when the animations are done. | |
88 VIEWS_EXPORT ui::ImplicitAnimationObserver* CreateHidingWindowAnimationObserver( | |
89 aura::Window* window); | |
90 | |
91 // Returns false if the |window| didn't animate. | |
92 VIEWS_EXPORT bool AnimateOnChildWindowVisibilityChanged(aura::Window* window, | |
93 bool visible); | |
94 VIEWS_EXPORT bool AnimateWindow(aura::Window* window, WindowAnimationType type); | |
95 | |
96 // Returns true if window animations are disabled for |window|. Window | |
97 // animations are enabled by default. If |window| is NULL, this just checks | |
98 // if the global flag disabling window animations is present. | |
99 VIEWS_EXPORT bool WindowAnimationsDisabled(aura::Window* window); | |
100 | |
101 } // namespace corewm | |
102 } // namespace views | |
103 | |
104 #endif // UI_VIEWS_COREWM_WINDOW_ANIMATIONS_H_ | |
OLD | NEW |