Index: athena/system/power_button_controller.h |
diff --git a/athena/system/power_button_controller.h b/athena/system/power_button_controller.h |
index 69fa9a8ac71538b4971a2539cebd03a058bf25ec..85bb8dc7f647e2a8bc955b5d35ac109ff16af93c 100644 |
--- a/athena/system/power_button_controller.h |
+++ b/athena/system/power_button_controller.h |
@@ -5,23 +5,38 @@ |
#ifndef ATHENA_SYSTEM_POWER_BUTTON_CONTROLLER_H_ |
#define ATHENA_SYSTEM_POWER_BUTTON_CONTROLLER_H_ |
+#include "base/time/time.h" |
#include "chromeos/dbus/power_manager_client.h" |
+#include "ui/compositor/layer_animation_observer.h" |
namespace athena { |
// Shuts down in response to the power button being pressed. |
-class PowerButtonController : public chromeos::PowerManagerClient::Observer { |
+class PowerButtonController : public chromeos::PowerManagerClient::Observer, |
+ public ui::ImplicitAnimationObserver { |
public: |
PowerButtonController(); |
virtual ~PowerButtonController(); |
+ private: |
+ // Starts an animation of the root window to |target| brightness and |
+ // grayscale. |
+ void StartGrayscaleAndBrightnessAnimation(float target, |
+ int duration_ms, |
+ gfx::Tween::Type tween_type); |
+ |
+ // Requests system shutdown on the D-Bus. |
+ void Shutdown(); |
+ |
// chromeos::PowerManagerClient::Observer: |
virtual void BrightnessChanged(int level, bool user_initiated) OVERRIDE; |
virtual void PowerButtonEventReceived( |
bool down, |
const base::TimeTicks& timestamp) OVERRIDE; |
- private: |
+ // ui::ImplicitAnimationObserver: |
+ virtual void OnImplicitAnimationsCompleted() OVERRIDE; |
+ |
// Whether the screen brightness was reduced to 0%. |
bool brightness_is_zero_; |
@@ -31,6 +46,9 @@ class PowerButtonController : public chromeos::PowerManagerClient::Observer { |
// Whether shutdown was requested. |
bool shutdown_requested_; |
+ // Whether the shutdown request can be canceled. |
+ bool can_cancel_shutdown_; |
+ |
DISALLOW_COPY_AND_ASSIGN(PowerButtonController); |
}; |