diff options
Diffstat (limited to 'chromium/ash/wm/power_button_controller.h')
-rw-r--r-- | chromium/ash/wm/power_button_controller.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/chromium/ash/wm/power_button_controller.h b/chromium/ash/wm/power_button_controller.h new file mode 100644 index 00000000000..558bf6d0ae1 --- /dev/null +++ b/chromium/ash/wm/power_button_controller.h @@ -0,0 +1,69 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_WM_POWER_BUTTON_CONTROLLER_H_ +#define ASH_WM_POWER_BUTTON_CONTROLLER_H_ + +#include "ash/ash_export.h" +#include "ash/wm/session_state_animator.h" +#include "base/basictypes.h" + +namespace gfx { +class Rect; +class Size; +} + +namespace ui { +class Layer; +} + +namespace ash { + +namespace test { +class PowerButtonControllerTest; +} + +class LockStateController; + +// Displays onscreen animations and locks or suspends the system in response to +// the power button being pressed or released. +class ASH_EXPORT PowerButtonController { + public: + + explicit PowerButtonController(LockStateController* controller); + virtual ~PowerButtonController(); + + void set_has_legacy_power_button_for_test(bool legacy) { + has_legacy_power_button_ = legacy; + } + + // Called when the current screen brightness changes. + void OnScreenBrightnessChanged(double percent); + + // Called when the power or lock buttons are pressed or released. + void OnPowerButtonEvent(bool down, const base::TimeTicks& timestamp); + void OnLockButtonEvent(bool down, const base::TimeTicks& timestamp); + + private: + friend class test::PowerButtonControllerTest; + + // Are the power or lock buttons currently held? + bool power_button_down_; + bool lock_button_down_; + + // Is the screen currently turned off? + bool screen_is_off_; + + // Was a command-line switch set telling us that we're running on hardware + // that misreports power button releases? + bool has_legacy_power_button_; + + LockStateController* controller_; // Not owned. + + DISALLOW_COPY_AND_ASSIGN(PowerButtonController); +}; + +} // namespace ash + +#endif // ASH_WM_POWER_BUTTON_CONTROLLER_H_ |