#ifndef ASH_GAME_DASHBOARD_GAME_DASHBOARD_BATTERY_VIEW_H_
#define ASH_GAME_DASHBOARD_GAME_DASHBOARD_BATTERY_VIEW_H_
#include <optional>
#include "ash/system/power/power_status.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/views/controls/image_view.h"
namespace ash {
class ASH_EXPORT GameDashboardBatteryView : public views::ImageView,
public PowerStatus::Observer {
METADATA_HEADER(GameDashboardBatteryView, views::ImageView)
public:
GameDashboardBatteryView();
GameDashboardBatteryView(const GameDashboardBatteryView&) = delete;
GameDashboardBatteryView& operator=(const GameDashboardBatteryView&) = delete;
~GameDashboardBatteryView() override;
void OnThemeChanged() override;
void OnPowerStatusChanged() override;
private:
void UpdateStatus(bool theme_changed = false);
void MaybeUpdateImage(bool theme_changed);
std::optional<PowerStatus::BatteryImageInfo> battery_image_info_;
};
}
#endif