| 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 |