// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "BatteryBar.hpp" #include "Style.hpp" #include namespace gui::status_bar { namespace { constexpr auto batteryLow = "battery_low"; constexpr auto batteryCharging = "battery_charging"; constexpr auto batteryChargingReady = "battery_charging_ready"; constexpr auto battery1 = "battery_1"; constexpr auto battery2 = "battery_2"; constexpr auto battery3 = "battery_3"; constexpr auto battery4 = "battery_4"; constexpr auto battery5 = "battery_5"; constexpr auto level1Threshold = 15; constexpr auto level2Threshold = 35; constexpr auto level3Threshold = 55; constexpr auto level4Threshold = 75; constexpr auto level5Threshold = 95; } // namespace BatteryBar::BatteryBar(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h) : BatteryBase(parent, x, y, w, h) { img = new Image(this, battery1, style::status_bar::imageTypeSpecifier); setMinimumSize(img->getWidth(), style::status_bar::height); } void BatteryBar::showBatteryLevel(std::uint32_t percentage) { if (percentage < level1Threshold) { img->set(batteryLow, style::status_bar::imageTypeSpecifier); } else if (percentage < level2Threshold) { img->set(battery1, style::status_bar::imageTypeSpecifier); } else if (percentage < level3Threshold) { img->set(battery2, style::status_bar::imageTypeSpecifier); } else if (percentage < level4Threshold) { img->set(battery3, style::status_bar::imageTypeSpecifier); } else if (percentage < level5Threshold) { img->set(battery4, style::status_bar::imageTypeSpecifier); } else { img->set(battery5, style::status_bar::imageTypeSpecifier); } } void BatteryBar::showBatteryCharging() { img->set(batteryCharging, style::status_bar::imageTypeSpecifier); } void BatteryBar::showBatteryChargingDone() { img->set(batteryChargingReady, style::status_bar::imageTypeSpecifier); } } // namespace gui::status_bar