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

Side by Side Diff: ui/views/corewm/window_animations.cc

Issue 134453004: Use a bitfield to store animatable properties. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix another win build error (signed/unsigned comp). 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/compositor/test/layer_animator_test_controller.cc ('k') | no next file » | 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 #include "ui/views/corewm/window_animations.h" 5 #include "ui/views/corewm/window_animations.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <vector> 10 #include <vector>
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 351
352 void AnimateBounce(aura::Window* window) { 352 void AnimateBounce(aura::Window* window) {
353 ui::ScopedLayerAnimationSettings scoped_settings( 353 ui::ScopedLayerAnimationSettings scoped_settings(
354 window->layer()->GetAnimator()); 354 window->layer()->GetAnimator());
355 scoped_settings.SetPreemptionStrategy( 355 scoped_settings.SetPreemptionStrategy(
356 ui::LayerAnimator::REPLACE_QUEUED_ANIMATIONS); 356 ui::LayerAnimator::REPLACE_QUEUED_ANIMATIONS);
357 window->layer()->set_delegate(window); 357 window->layer()->set_delegate(window);
358 scoped_ptr<ui::LayerAnimationSequence> sequence( 358 scoped_ptr<ui::LayerAnimationSequence> sequence(
359 new ui::LayerAnimationSequence); 359 new ui::LayerAnimationSequence);
360 sequence->AddElement(CreateGrowShrinkElement(window, true)); 360 sequence->AddElement(CreateGrowShrinkElement(window, true));
361 ui::LayerAnimationElement::AnimatableProperties paused_properties;
362 paused_properties.insert(ui::LayerAnimationElement::BOUNDS);
363 sequence->AddElement(ui::LayerAnimationElement::CreatePauseElement( 361 sequence->AddElement(ui::LayerAnimationElement::CreatePauseElement(
364 paused_properties, 362 ui::LayerAnimationElement::BOUNDS,
365 base::TimeDelta::FromMilliseconds( 363 base::TimeDelta::FromMilliseconds(
366 kWindowAnimation_Bounce_DurationMS * 364 kWindowAnimation_Bounce_DurationMS *
367 (100 - 2 * kWindowAnimation_Bounce_GrowShrinkDurationPercent) / 365 (100 - 2 * kWindowAnimation_Bounce_GrowShrinkDurationPercent) /
368 100))); 366 100)));
369 sequence->AddElement(CreateGrowShrinkElement(window, false)); 367 sequence->AddElement(CreateGrowShrinkElement(window, false));
370 window->layer()->GetAnimator()->StartAnimation(sequence.release()); 368 window->layer()->GetAnimator()->StartAnimation(sequence.release());
371 } 369 }
372 370
373 void AddLayerAnimationsForRotate(aura::Window* window, bool show) { 371 void AddLayerAnimationsForRotate(aura::Window* window, bool show) {
374 window->layer()->set_delegate(window); 372 window->layer()->set_delegate(window);
375 if (show) 373 if (show)
376 window->layer()->SetOpacity(kWindowAnimation_HideOpacity); 374 window->layer()->SetOpacity(kWindowAnimation_HideOpacity);
377 375
378 base::TimeDelta duration = base::TimeDelta::FromMilliseconds( 376 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(
379 kWindowAnimation_Rotate_DurationMS); 377 kWindowAnimation_Rotate_DurationMS);
380 378
381 if (!show) { 379 if (!show) {
382 new HidingWindowAnimationObserver(window); 380 new HidingWindowAnimationObserver(window);
383 window->layer()->GetAnimator()->SchedulePauseForProperties( 381 window->layer()->GetAnimator()->SchedulePauseForProperties(
384 duration * (100 - kWindowAnimation_Rotate_OpacityDurationPercent) / 100, 382 duration * (100 - kWindowAnimation_Rotate_OpacityDurationPercent) / 100,
385 ui::LayerAnimationElement::OPACITY, 383 ui::LayerAnimationElement::OPACITY);
386 -1);
387 } 384 }
388 scoped_ptr<ui::LayerAnimationElement> opacity( 385 scoped_ptr<ui::LayerAnimationElement> opacity(
389 ui::LayerAnimationElement::CreateOpacityElement( 386 ui::LayerAnimationElement::CreateOpacityElement(
390 show ? kWindowAnimation_ShowOpacity : kWindowAnimation_HideOpacity, 387 show ? kWindowAnimation_ShowOpacity : kWindowAnimation_HideOpacity,
391 duration * kWindowAnimation_Rotate_OpacityDurationPercent / 100)); 388 duration * kWindowAnimation_Rotate_OpacityDurationPercent / 100));
392 opacity->set_tween_type(gfx::Tween::EASE_IN_OUT); 389 opacity->set_tween_type(gfx::Tween::EASE_IN_OUT);
393 window->layer()->GetAnimator()->ScheduleAnimation( 390 window->layer()->GetAnimator()->ScheduleAnimation(
394 new ui::LayerAnimationSequence(opacity.release())); 391 new ui::LayerAnimationSequence(opacity.release()));
395 392
396 float xcenter = window->bounds().width() * 0.5; 393 float xcenter = window->bounds().width() * 0.5;
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 561
565 bool WindowAnimationsDisabled(aura::Window* window) { 562 bool WindowAnimationsDisabled(aura::Window* window) {
566 return (window && 563 return (window &&
567 window->GetProperty(aura::client::kAnimationsDisabledKey)) || 564 window->GetProperty(aura::client::kAnimationsDisabledKey)) ||
568 CommandLine::ForCurrentProcess()->HasSwitch( 565 CommandLine::ForCurrentProcess()->HasSwitch(
569 switches::kWindowAnimationsDisabled); 566 switches::kWindowAnimationsDisabled);
570 } 567 }
571 568
572 } // namespace corewm 569 } // namespace corewm
573 } // namespace views 570 } // namespace views
OLDNEW
« no previous file with comments | « ui/compositor/test/layer_animator_test_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698