Index: ash/common/system/chromeos/power/power_status.h |
diff --git a/ash/common/system/chromeos/power/power_status.h b/ash/common/system/chromeos/power/power_status.h |
index f94c740b2603ead9faea90b21e0fb67b6616ea44..90d06fff1e2ce62d65695fc8d09b63d9a805222e 100644 |
--- a/ash/common/system/chromeos/power/power_status.h |
+++ b/ash/common/system/chromeos/power/power_status.h |
@@ -17,10 +17,6 @@ |
#include "chromeos/dbus/power_manager_client.h" |
#include "ui/gfx/image/image_skia.h" |
-namespace gfx { |
-struct VectorIcon; |
-} |
- |
namespace ash { |
// PowerStatus is a singleton that receives updates about the system's |
@@ -28,6 +24,15 @@ |
// available to interested classes within Ash. |
class ASH_EXPORT PowerStatus : public chromeos::PowerManagerClient::Observer { |
public: |
+ // Types of badges which can be drawn on top of a battery icon. |
+ enum IconBadge { |
+ ICON_BADGE_NONE, |
+ ICON_BADGE_ALERT, |
+ ICON_BADGE_BOLT, |
+ ICON_BADGE_X, |
+ ICON_BADGE_UNRELIABLE |
+ }; |
+ |
// Different styles of battery icons. |
enum IconSet { ICON_LIGHT, ICON_DARK }; |
@@ -68,18 +73,39 @@ |
// updating onscreen icons (GetBatteryImage() creates a new image on each |
// call). |
struct BatteryImageInfo { |
- BatteryImageInfo() : icon_badge(nullptr), charge_level(-1) {} |
+ BatteryImageInfo() |
+ : resource_id(-1), |
+ offset(-1), |
+ index(-1), |
+ icon_badge(ICON_BADGE_NONE), |
+ charge_level(-1) {} |
bool operator==(const BatteryImageInfo& o) const; |
bool operator!=(const BatteryImageInfo& o) const { return !(*this == o); } |
+ // Resource ID of the image containing the specific battery icon to use. |
+ // Only used in non-MD. |
+ int resource_id; |
+ |
+ // Horizontal offset in the battery icon array image. The USB / "unreliable |
+ // charging" image has a single column of icons; the other image contains a |
+ // "battery" column on the left and a "line power" column on the right. |
+ // Only used in non-MD. |
+ int offset; |
+ |
+ // Vertical offset corresponding to the current battery level. Only used in |
+ // non-MD. |
+ int index; |
+ |
// The badge (lightning bolt, exclamation mark, etc) that should be drawn |
- // on top of the battery icon. |
- const gfx::VectorIcon* icon_badge; |
- |
- // A value between 0 and kBatteryImageHeight representing the height |
- // of the battery's charge level in dp. |
+ // on top of the battery icon. Only used for MD. |
+ // TODO(tdanderson): Consider using gfx::VectorIconId instead of this enum |
+ // once all possible badges have been vectorized. See crbug.com/617298. |
+ IconBadge icon_badge; |
+ |
+ // A value between 0 and kBatteryImageHeightMD representing the height |
+ // of the battery's charge level in dp. Only used for MD. |
int charge_level; |
}; |
@@ -88,10 +114,10 @@ |
// get very large; avoid displaying these large numbers. |
static const int kMaxBatteryTimeToDisplaySec; |
- // An alert badge is drawn over the battery icon if the battery is not |
- // connected to a charger and has less than |kCriticalBatteryChargePercentage| |
- // percentage of charge remaining. |
- static const double kCriticalBatteryChargePercentage; |
+ // An alert badge is drawn over the material design battery icon if the |
+ // battery is not connected to a charger and has less than |
+ // |kCriticalBatteryChargePercentageMd| percentage of charge remaining. |
+ static const double kCriticalBatteryChargePercentageMd; |
// Sets the global instance. Must be called before any calls to Get(). |
static void Initialize(); |
@@ -194,12 +220,23 @@ |
// returned by this method to avoid creating new images unnecessarily. |
BatteryImageInfo GetBatteryImageInfo(IconSet icon_set) const; |
- // A helper function called by GetBatteryImageInfo(). Populates the fields of |
- // |info|. |
- void CalculateBatteryImageInfo(BatteryImageInfo* info) const; |
+ // A helper function called by GetBatteryImageInfo(). Populates the |
+ // MD-specific fields of |info|. |
+ void CalculateBatteryImageInfoMd(BatteryImageInfo* info) const; |
+ |
+ // A helper function called by GetBatteryImageInfo(). Populates the |
+ // non-MD-specific fields of |info|. |
+ void CalculateBatteryImageInfoNonMd(BatteryImageInfo* info, |
+ const IconSet& icon_set) const; |
// Creates a new image that should be shown for the battery's current state. |
gfx::ImageSkia GetBatteryImage(const BatteryImageInfo& info) const; |
+ |
+ // A version of GetBatteryImage() that is used when material design is not |
+ // enabled. |
+ // TODO(tdanderson): Remove this once material design is enabled by default. |
+ // See crbug.com/614453. |
+ gfx::ImageSkia GetBatteryImageNonMd(const BatteryImageInfo& info) const; |
// Returns an string describing the current state for accessibility. |
base::string16 GetAccessibleNameString(bool full_description) const; |