fix(color): Fix single widget layout size, improve code readability (#2962)

This commit is contained in:
philmoz
2023-01-01 11:11:59 +10:00
committed by GitHub
parent bc8087cbf1
commit 943b1e7cd0
2 changed files with 17 additions and 7 deletions
@@ -93,11 +93,11 @@ void Layout::adjustLayout()
{
// Check if deco setting are still up-to-date
uint8_t checkSettings =
(hasTopbar() ? 1 << 0 : 0) |
(hasSliders() ? 1 << 1 : 0) |
(hasTrims() ? 1 << 2 : 0) |
(hasFlightMode() ? 1 << 3 : 0) |
(isMirrored() ? 1 << 4 : 0);
(hasTopbar() ? DECORATION_TOPBAR : 0) |
(hasSliders() ? DECORATION_SLIDERS : 0) |
(hasTrims() ? DECORATION_TRIMS : 0) |
(hasFlightMode() ? DECORATION_FLIGHTMODE : 0) |
(isMirrored() ? DECORATION_MIRRORED : 0);
if (checkSettings == decorationSettings) {
// everything ok, exit!
@@ -119,7 +119,7 @@ void Layout::adjustLayout()
rect_t Layout::getMainZone() const
{
rect_t zone = decoration->getMainZone();
if (decorationSettings & 0x7) {
if (decorationSettings & (DECORATION_SLIDERS|DECORATION_TRIMS|DECORATION_FLIGHTMODE)) {
// some decoration activated
zone.x += MAIN_ZONE_BORDER;
zone.y += MAIN_ZONE_BORDER;
@@ -105,8 +105,18 @@ class Layout: public LayoutBase
const LayoutFactory * factory = nullptr;
std::unique_ptr<ViewMainDecoration> decoration;
enum DecorationSettings {
DECORATION_NONE = 0x00,
DECORATION_TOPBAR = 0x01,
DECORATION_SLIDERS = 0x02,
DECORATION_TRIMS = 0x04,
DECORATION_FLIGHTMODE = 0x08,
DECORATION_MIRRORED = 0x10,
DECORATION_UNKNOWN = 0xFF
};
// Decoration settings bitmask to detect updates
uint8_t decorationSettings = 255;
uint8_t decorationSettings = DECORATION_UNKNOWN;
// Last time we refreshed the window
uint32_t lastRefresh = 0;