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

Unified Diff: ui/views/corewm/window_animations.cc

Issue 105673008: Remove unneeded ScopedLayerAnimationSettings::LockTransitionDuration() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/corewm/window_animations.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/corewm/window_animations.cc
diff --git a/ui/views/corewm/window_animations.cc b/ui/views/corewm/window_animations.cc
index 1f90b40a62a0994485274204cad998837210a7d5..d4262ff984807bfb0ea62eeac69c2aa50161c371 100644
--- a/ui/views/corewm/window_animations.cc
+++ b/ui/views/corewm/window_animations.cc
@@ -56,7 +56,8 @@ const float kWindowAnimation_Vertical_TranslateY = 15.f;
DEFINE_WINDOW_PROPERTY_KEY(int,
kWindowVisibilityAnimationTypeKey,
WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT);
-DEFINE_WINDOW_PROPERTY_KEY(int, kWindowVisibilityAnimationDurationKey, 0);
+DEFINE_WINDOW_PROPERTY_KEY(int, kWindowShowAnimationDurationKey, 0);
+DEFINE_WINDOW_PROPERTY_KEY(int, kWindowHideAnimationDurationKey, 0);
DEFINE_WINDOW_PROPERTY_KEY(WindowVisibilityAnimationTransition,
kWindowVisibilityAnimationTransitionKey,
ANIMATE_BOTH);
@@ -66,6 +67,7 @@ DEFINE_WINDOW_PROPERTY_KEY(float,
namespace {
+const int kDefaultAnimationDurationMS = 200;
const int kDefaultAnimationDurationForMenuMS = 150;
const float kWindowAnimation_HideOpacity = 0.f;
@@ -84,14 +86,11 @@ const float kWindowAnimation_Bounce_Scale = 1.02f;
const int kWindowAnimation_Bounce_DurationMS = 180;
const int kWindowAnimation_Bounce_GrowShrinkDurationPercent = 40;
-base::TimeDelta GetWindowVisibilityAnimationDuration(aura::Window* window) {
- int duration =
- window->GetProperty(kWindowVisibilityAnimationDurationKey);
- if (duration == 0 && window->type() == ui::wm::WINDOW_TYPE_MENU) {
- return base::TimeDelta::FromMilliseconds(
- kDefaultAnimationDurationForMenuMS);
- }
- return TimeDelta::FromInternalValue(duration);
+base::TimeDelta GetDefaultWindowVisibilityAnimationDuration(
+ aura::Window* window) {
+ int duration_ms = (window->type() == ui::wm::WINDOW_TYPE_MENU) ?
+ kDefaultAnimationDurationForMenuMS : kDefaultAnimationDurationMS;
+ return base::TimeDelta::FromMilliseconds(duration_ms);
}
// Gets/sets the WindowVisibilityAnimationType associated with a window.
@@ -255,9 +254,9 @@ void AnimateShowWindowCommon(aura::Window* window,
{
// Property sets within this scope will be implicitly animated.
ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
- base::TimeDelta duration = GetWindowVisibilityAnimationDuration(window);
- if (duration.ToInternalValue() > 0)
- settings.SetTransitionDuration(duration);
+ base::TimeDelta duration = GetWindowShowAnimationDuration(window,
+ GetDefaultWindowVisibilityAnimationDuration(window));
+ settings.SetTransitionDuration(duration);
window->layer()->SetTransform(end_transform);
window->layer()->SetOpacity(kWindowAnimation_ShowOpacity);
@@ -273,11 +272,10 @@ void AnimateHideWindowCommon(aura::Window* window,
// Property sets within this scope will be implicitly animated.
ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
- settings.AddObserver(new HidingWindowAnimationObserver(window));
-
- base::TimeDelta duration = GetWindowVisibilityAnimationDuration(window);
- if (duration.ToInternalValue() > 0)
- settings.SetTransitionDuration(duration);
+ settings.AddObserver(CreateHidingWindowAnimationObserver(window));
+ base::TimeDelta duration = GetWindowHideAnimationDuration(window,
+ GetDefaultWindowVisibilityAnimationDuration(window));
+ settings.SetTransitionDuration(duration);
window->layer()->SetOpacity(kWindowAnimation_HideOpacity);
window->layer()->SetTransform(end_transform);
@@ -370,17 +368,26 @@ void AnimateBounce(aura::Window* window) {
void AddLayerAnimationsForRotate(aura::Window* window, bool show) {
window->layer()->set_delegate(window);
- if (show)
+ if (show) {
window->layer()->SetOpacity(kWindowAnimation_HideOpacity);
+ window->layer()->SetVisible(true);
+ }
- base::TimeDelta duration = base::TimeDelta::FromMilliseconds(
+ base::TimeDelta default_duration = base::TimeDelta::FromMilliseconds(
kWindowAnimation_Rotate_DurationMS);
+ base::TimeDelta duration = show ?
+ GetWindowShowAnimationDuration(window, default_duration) :
+ GetWindowHideAnimationDuration(window, default_duration);
+
+ ui::ScopedLayerAnimationSettings settings(window->layer()->GetAnimator());
+ settings.SetTransitionDuration(duration);
if (!show) {
- new HidingWindowAnimationObserver(window);
+ settings.AddObserver(CreateHidingWindowAnimationObserver(window));
window->layer()->GetAnimator()->SchedulePauseForProperties(
duration * (100 - kWindowAnimation_Rotate_OpacityDurationPercent) / 100,
ui::LayerAnimationElement::OPACITY);
+ window->layer()->SetVisible(false);
}
scoped_ptr<ui::LayerAnimationElement> opacity(
ui::LayerAnimationElement::CreateOpacityElement(
@@ -522,12 +529,34 @@ bool HasWindowVisibilityAnimationTransition(
return (prop & transition) != 0;
}
-void SetWindowVisibilityAnimationDuration(aura::Window* window,
- const TimeDelta& duration) {
- window->SetProperty(kWindowVisibilityAnimationDurationKey,
+void SetWindowShowAnimationDuration(aura::Window* window,
+ const base::TimeDelta& duration) {
+ window->SetProperty(kWindowShowAnimationDurationKey,
static_cast<int>(duration.ToInternalValue()));
}
+void SetWindowHideAnimationDuration(aura::Window* window,
+ const base::TimeDelta& duration) {
+ window->SetProperty(kWindowHideAnimationDurationKey,
+ static_cast<int>(duration.ToInternalValue()));
+}
+
+base::TimeDelta GetWindowShowAnimationDuration(
+ aura::Window* window,
+ const base::TimeDelta& default_duration) {
+ int duration = window->GetProperty(kWindowShowAnimationDurationKey);
+ return (duration == 0) ?
+ default_duration : base::TimeDelta::FromInternalValue(duration);
+}
+
+base::TimeDelta GetWindowHideAnimationDuration(
+ aura::Window* window,
+ const base::TimeDelta& default_duration) {
+ int duration = window->GetProperty(kWindowHideAnimationDurationKey);
+ return (duration == 0) ?
+ default_duration : base::TimeDelta::FromInternalValue(duration);
+}
+
void SetWindowVisibilityAnimationVerticalPosition(aura::Window* window,
float position) {
window->SetProperty(kWindowVisibilityAnimationVerticalPositionKey, position);
« no previous file with comments | « ui/views/corewm/window_animations.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698