| Index: athena/system/power_button_controller.h
|
| diff --git a/athena/system/power_button_controller.h b/athena/system/power_button_controller.h
|
| index 0d4bd0e50b609069573f45c7df9a08bab221681d..10ff8cc2dd3b294d731ef1d69cd23744403edcce 100644
|
| --- a/athena/system/power_button_controller.h
|
| +++ b/athena/system/power_button_controller.h
|
| @@ -5,24 +5,35 @@
|
| #ifndef ATHENA_SYSTEM_POWER_BUTTON_CONTROLLER_H_
|
| #define ATHENA_SYSTEM_POWER_BUTTON_CONTROLLER_H_
|
|
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/time/time.h"
|
| +#include "base/timer/timer.h"
|
| #include "chromeos/dbus/power_manager_client.h"
|
| -#include "ui/compositor/layer_animation_observer.h"
|
| -#include "ui/gfx/animation/tween.h"
|
| +
|
| +namespace aura {
|
| +class Window;
|
| +}
|
| +
|
| +namespace views {
|
| +class Widget;
|
| +}
|
|
|
| namespace athena {
|
|
|
| // Shuts down in response to the power button being pressed.
|
| -class PowerButtonController : public chromeos::PowerManagerClient::Observer,
|
| - public ui::ImplicitAnimationObserver {
|
| +class PowerButtonController : public chromeos::PowerManagerClient::Observer {
|
| public:
|
| - PowerButtonController();
|
| + explicit PowerButtonController(aura::Window* dialog_container);
|
| virtual ~PowerButtonController();
|
|
|
| private:
|
| enum State {
|
| - // The screen is animating prior to shutdown. Shutdown can be canceled.
|
| - STATE_PRE_SHUTDOWN_ANIMATION,
|
| + // Releasing the power button sends a suspend request.
|
| + STATE_SUSPEND_ON_RELEASE,
|
| +
|
| + // A warning that the device is about to be shutdown is visible. Releasing
|
| + // the power button does not send a suspend or a shutdown request.
|
| + STATE_SHUTDOWN_WARNING_VISIBLE,
|
|
|
| // A D-Bus shutdown request has been sent. Shutdown cannot be canceled.
|
| STATE_SHUTDOWN_REQUESTED,
|
| @@ -30,10 +41,11 @@ class PowerButtonController : public chromeos::PowerManagerClient::Observer,
|
| STATE_OTHER
|
| };
|
|
|
| - // Animates the screen's grayscale and brightness to |target|.
|
| - void StartGrayscaleAndBrightnessAnimation(float target,
|
| - int duration_ms,
|
| - gfx::Tween::Type tween_type);
|
| + // Shows the shutdown warning dialog.
|
| + void ShowShutdownWarningDialog();
|
| +
|
| + // Requests shutdown.
|
| + void Shutdown();
|
|
|
| // chromeos::PowerManagerClient::Observer:
|
| virtual void BrightnessChanged(int level, bool user_initiated) OVERRIDE;
|
| @@ -41,8 +53,11 @@ class PowerButtonController : public chromeos::PowerManagerClient::Observer,
|
| bool down,
|
| const base::TimeTicks& timestamp) OVERRIDE;
|
|
|
| - // ui::ImplicitAnimationObserver:
|
| - virtual void OnImplicitAnimationsCompleted() OVERRIDE;
|
| + // |shutdown_warning_message_|'s parent container.
|
| + aura::Window* warning_message_container_;
|
| +
|
| + // Shows a warning that the device is about to be shutdown.
|
| + scoped_ptr<views::Widget> shutdown_warning_message_;
|
|
|
| // Whether the screen brightness was reduced to 0%.
|
| bool brightness_is_zero_;
|
| @@ -52,6 +67,8 @@ class PowerButtonController : public chromeos::PowerManagerClient::Observer,
|
|
|
| State state_;
|
|
|
| + base::OneShotTimer<PowerButtonController> timer_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(PowerButtonController);
|
| };
|
|
|
|
|