| Index: ash/wm/power_button_controller.h
|
| diff --git a/ash/wm/power_button_controller.h b/ash/wm/power_button_controller.h
|
| index eee5f1cd9ee832ca9cd4509402e9f008eeddec70..9b85aa890aaeac6fa15c8408ad2d2af01ce635d4 100644
|
| --- a/ash/wm/power_button_controller.h
|
| +++ b/ash/wm/power_button_controller.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include "ash/ash_export.h"
|
| #include "ash/shell_observer.h"
|
| +#include "ash/wm/session_state_animator.h"
|
| #include "base/basictypes.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/time.h"
|
| @@ -42,31 +43,16 @@ class ASH_EXPORT PowerButtonControllerDelegate {
|
| class ASH_EXPORT PowerButtonController : public aura::RootWindowObserver,
|
| public ShellObserver {
|
| public:
|
| - // Animations that can be applied to groups of containers.
|
| - // Exposed here for TestApi::ContainerGroupIsAnimated().
|
| - enum AnimationType {
|
| - ANIMATION_SLOW_CLOSE = 0,
|
| - ANIMATION_UNDO_SLOW_CLOSE,
|
| - ANIMATION_FAST_CLOSE,
|
| - ANIMATION_FADE_IN,
|
| - ANIMATION_HIDE,
|
| - ANIMATION_RESTORE,
|
| - };
|
| -
|
| - // Groups of containers that can be animated.
|
| - // Exposed here for TestApi::ContainerGroupIsAnimated().
|
| - enum ContainerGroup {
|
| - ALL_CONTAINERS = 0,
|
| - SCREEN_LOCKER_CONTAINERS,
|
| - SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - ALL_BUT_SCREEN_LOCKER_AND_RELATED_CONTAINERS,
|
| - };
|
| -
|
| // Helper class used by tests to access internal state.
|
| class ASH_EXPORT TestApi {
|
| public:
|
| explicit TestApi(PowerButtonController* controller)
|
| - : controller_(controller) {}
|
| + : controller_(controller),
|
| + animator_api_(new SessionStateAnimator::TestApi(
|
| + controller->animator_)) {}
|
| + virtual ~TestApi() {
|
| + delete animator_api_;
|
| + }
|
|
|
| bool lock_timer_is_running() const {
|
| return controller_->lock_timer_.IsRunning();
|
| @@ -84,7 +70,7 @@ class ASH_EXPORT PowerButtonController : public aura::RootWindowObserver,
|
| return controller_->real_shutdown_timer_.IsRunning();
|
| }
|
| bool hide_background_layer_timer_is_running() const {
|
| - return controller_->hide_background_layer_timer_.IsRunning();
|
| + return animator_api_->hide_background_layer_timer_is_running();
|
| }
|
|
|
| void trigger_lock_timeout() {
|
| @@ -108,24 +94,30 @@ class ASH_EXPORT PowerButtonController : public aura::RootWindowObserver,
|
| controller_->real_shutdown_timer_.Stop();
|
| }
|
| void trigger_hide_background_layer_timeout() {
|
| - controller_->HideBackgroundLayer();
|
| - controller_->hide_background_layer_timer_.Stop();
|
| + animator_api_->trigger_hide_background_layer_timeout();
|
| }
|
|
|
| // Returns true if the given set of containers was last animated with
|
| // |type| (probably; the analysis is fairly ad-hoc).
|
| - bool ContainerGroupIsAnimated(ContainerGroup group,
|
| - AnimationType type) const;
|
| + bool ContainerGroupIsAnimated(AnimationContainerGroup group,
|
| + SessionStateAnimationType type) const {
|
| + return animator_api_->ContainerGroupIsAnimated(group, type);
|
| + }
|
|
|
| // Returns true if |background_layer_| is non-NULL and visible.
|
| - bool BackgroundLayerIsVisible() const;
|
| + bool BackgroundLayerIsVisible() const {
|
| + return animator_api_->BackgroundLayerIsVisible();
|
| + }
|
|
|
| // Returns |background_layer_|'s bounds, or an empty rect if the layer is
|
| // NULL.
|
| - gfx::Rect GetBackgroundLayerBounds() const;
|
| + gfx::Rect GetBackgroundLayerBounds() const {
|
| + return animator_api_->GetBackgroundLayerBounds();
|
| + }
|
|
|
| private:
|
| PowerButtonController* controller_; // not owned
|
| + SessionStateAnimator::TestApi* animator_api_; // owned
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TestApi);
|
| };
|
| @@ -155,8 +147,6 @@ class ASH_EXPORT PowerButtonController : public aura::RootWindowObserver,
|
| void RequestShutdown();
|
|
|
| // aura::RootWindowObserver overrides:
|
| - virtual void OnRootWindowResized(const aura::RootWindow* root,
|
| - const gfx::Size& old_size) OVERRIDE;
|
| virtual void OnRootWindowHostCloseRequested(
|
| const aura::RootWindow* root) OVERRIDE;
|
|
|
| @@ -190,11 +180,6 @@ class ASH_EXPORT PowerButtonController : public aura::RootWindowObserver,
|
| // Displays the shutdown animation and starts |real_shutdown_timer_|.
|
| void StartShutdownAnimationAndRequestShutdown();
|
|
|
| - // Shows or hides |background_layer_|. The show method creates and
|
| - // initializes the layer if it doesn't already exist.
|
| - void ShowBackgroundLayer();
|
| - void HideBackgroundLayer();
|
| -
|
| scoped_ptr<PowerButtonControllerDelegate> delegate_;
|
|
|
| // The current login status.
|
| @@ -221,13 +206,6 @@ class ASH_EXPORT PowerButtonController : public aura::RootWindowObserver,
|
| // that misreports power button releases?
|
| bool has_legacy_power_button_;
|
|
|
| - // Layer that's stacked under all of the root window's children to provide a
|
| - // black background when we're scaling all of the other windows down.
|
| - // TODO(derat): Remove this in favor of having the compositor only clear the
|
| - // viewport when there are regions not covered by a layer:
|
| - // http://crbug.com/113445
|
| - scoped_ptr<ui::Layer> background_layer_;
|
| -
|
| // Started when the user first presses the power button while in a
|
| // logged-in-as-a-non-guest-user, unlocked state. When it fires, we lock the
|
| // screen.
|
| @@ -251,10 +229,7 @@ class ASH_EXPORT PowerButtonController : public aura::RootWindowObserver,
|
| // etc. are shut down.
|
| base::OneShotTimer<PowerButtonController> real_shutdown_timer_;
|
|
|
| - // Started when we abort the pre-lock state. When it fires, we hide
|
| - // |background_layer_|, as the desktop background is now covering the whole
|
| - // screen.
|
| - base::OneShotTimer<PowerButtonController> hide_background_layer_timer_;
|
| + SessionStateAnimator* animator_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(PowerButtonController);
|
| };
|
|
|