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

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

Issue 11106003: Tweaks workspace animation code per latest from Nicholas. Additionally (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to trunk Created 8 years, 2 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
« no previous file with comments | « ash/wm/shelf_layout_manager.cc ('k') | ash/wm/window_animations.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 #ifndef ASH_WM_WINDOW_ANIMATIONS_H_ 5 #ifndef ASH_WM_WINDOW_ANIMATIONS_H_
6 #define ASH_WM_WINDOW_ANIMATIONS_H_ 6 #define ASH_WM_WINDOW_ANIMATIONS_H_
7 7
8 #include "ash/ash_export.h" 8 #include "ash/ash_export.h"
9 9
10 namespace aura { 10 namespace aura {
(...skipping 25 matching lines...) Expand all
36 WINDOW_VISIBILITY_ANIMATION_TYPE_WORKSPACE_HIDE, // Inverse of SHOW. 36 WINDOW_VISIBILITY_ANIMATION_TYPE_WORKSPACE_HIDE, // Inverse of SHOW.
37 WINDOW_VISIBILITY_ANIMATION_TYPE_MINIMIZE, // Window scale/rotates down 37 WINDOW_VISIBILITY_ANIMATION_TYPE_MINIMIZE, // Window scale/rotates down
38 // to its launcher icon. 38 // to its launcher icon.
39 // Fade in/out using brightness and grayscale web filters. 39 // Fade in/out using brightness and grayscale web filters.
40 WINDOW_VISIBILITY_ANIMATION_TYPE_BRIGHTNESS_GRAYSCALE, 40 WINDOW_VISIBILITY_ANIMATION_TYPE_BRIGHTNESS_GRAYSCALE,
41 }; 41 };
42 42
43 // Type of visibility change transition that a window should animate. 43 // Type of visibility change transition that a window should animate.
44 // Default behavior is to animate both show and hide. 44 // Default behavior is to animate both show and hide.
45 enum WindowVisibilityAnimationTransition { 45 enum WindowVisibilityAnimationTransition {
46 // 0 is used as default.
47 ANIMATE_SHOW = 0x1, 46 ANIMATE_SHOW = 0x1,
48 ANIMATE_HIDE = 0x2, 47 ANIMATE_HIDE = 0x2,
49 ANIMATE_BOTH = ANIMATE_SHOW | ANIMATE_HIDE, 48 ANIMATE_BOTH = ANIMATE_SHOW | ANIMATE_HIDE,
50 ANIMATE_NONE = 0x4, 49 ANIMATE_NONE = 0x4,
51 }; 50 };
52 51
53 ASH_EXPORT void SetWindowVisibilityAnimationType( 52 ASH_EXPORT void SetWindowVisibilityAnimationType(
54 aura::Window* window, 53 aura::Window* window,
55 WindowVisibilityAnimationType type); 54 WindowVisibilityAnimationType type);
56 55
(...skipping 16 matching lines...) Expand all
73 // associated with a Window so that the animation can continue after the Window 72 // associated with a Window so that the animation can continue after the Window
74 // has been destroyed. 73 // has been destroyed.
75 // The returned object deletes itself when the animations are done. 74 // The returned object deletes itself when the animations are done.
76 ASH_EXPORT ui::ImplicitAnimationObserver* CreateHidingWindowAnimationObserver( 75 ASH_EXPORT ui::ImplicitAnimationObserver* CreateHidingWindowAnimationObserver(
77 aura::Window* window); 76 aura::Window* window);
78 77
79 // Animate a cross-fade of |window| from its current bounds to |new_bounds|. 78 // Animate a cross-fade of |window| from its current bounds to |new_bounds|.
80 ASH_EXPORT void CrossFadeToBounds(aura::Window* window, 79 ASH_EXPORT void CrossFadeToBounds(aura::Window* window,
81 const gfx::Rect& new_bounds); 80 const gfx::Rect& new_bounds);
82 81
83 // Cross fade |layer| (which is a clone of |window|s layer before it was 82 // Cross fades |layer| (which is a clone of |window|s layer before it was
84 // resized) to windows current bounds. |new_workspace| is the original workspace 83 // resized) to |window|s current bounds. |new_workspace| is the Window of the
85 // |window| was in and |new_workspace| the new workspace. 84 // workspace |window| was added to.
86 // This takes ownership of |layer|. 85 // This takes ownership of |layer|.
87 ASH_EXPORT void CrossFadeWindowBetweenWorkspaces(aura::Window* old_workspace, 86 ASH_EXPORT void CrossFadeWindowBetweenWorkspaces(aura::Window* new_workspace,
88 aura::Window* new_workspace,
89 aura::Window* window, 87 aura::Window* window,
90 ui::Layer* layer); 88 ui::Layer* layer);
91 89
92 // Indicates the direction the workspace should appear to go.
93 enum WorkspaceAnimationDirection {
94 WORKSPACE_ANIMATE_UP,
95 WORKSPACE_ANIMATE_DOWN,
96 };
97
98 enum WorkspaceType {
99 WORKSPACE_MAXIMIZED,
100 WORKSPACE_DESKTOP,
101 };
102
103 // Amount of time for the workspace switch animation.
104 extern const int kWorkspaceSwitchTimeMS;
105
106 // Animates between two workspaces. If |animate_old| is false |old_window| is
107 // not animated, otherwise it is. |is_restoring_maximized_window| is true if
108 // the switch is the result of a minmized window being restored.
109 ASH_EXPORT void AnimateBetweenWorkspaces(aura::Window* old_window,
110 WorkspaceType old_type,
111 bool animate_old,
112 aura::Window* new_window,
113 WorkspaceType new_type,
114 bool is_restoring_maximized_window);
115
116 // Animates the workspace visualy in or out. This is used when the workspace is
117 // becoming active, and out when the workspace was active. If |initial_animate|
118 // is true, this animation is the result of logging in.
119 ASH_EXPORT void AnimateWorkspaceIn(aura::Window* window,
120 WorkspaceAnimationDirection direction,
121 bool initial_animate,
122 base::TimeDelta delta);
123 ASH_EXPORT void AnimateWorkspaceOut(aura::Window* window,
124 WorkspaceAnimationDirection direction,
125 WorkspaceType type,
126 bool initial_animate,
127 base::TimeDelta delta);
128
129 // Returns the amount of time before destroying the system background.
130 ASH_EXPORT base::TimeDelta GetSystemBackgroundDestroyDuration();
131
132 // Returns the duration of the cross-fade animation based on the |old_bounds| 90 // Returns the duration of the cross-fade animation based on the |old_bounds|
133 // and |new_bounds| of the window. 91 // and |new_bounds| of the window.
134 ASH_EXPORT base::TimeDelta GetCrossFadeDuration(const gfx::Rect& old_bounds, 92 ASH_EXPORT base::TimeDelta GetCrossFadeDuration(const gfx::Rect& old_bounds,
135 const gfx::Rect& new_bounds); 93 const gfx::Rect& new_bounds);
136 94
137 namespace internal { 95 namespace internal {
138 96
139 // Returns false if the |window| didn't animate. 97 // Returns false if the |window| didn't animate.
140 ASH_EXPORT bool AnimateOnChildWindowVisibilityChanged( 98 ASH_EXPORT bool AnimateOnChildWindowVisibilityChanged(aura::Window* window,
141 aura::Window* window, bool visible); 99 bool visible);
142 100
143 } // namespace internal 101 } // namespace internal
144 } // namespace ash 102 } // namespace ash
145 103
146 104
147 #endif // ASH_WM_WINDOW_ANIMATIONS_H_ 105 #endif // ASH_WM_WINDOW_ANIMATIONS_H_
OLDNEW
« no previous file with comments | « ash/wm/shelf_layout_manager.cc ('k') | ash/wm/window_animations.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698