Fixed various issues while running "teckel12/LuaTelemetry" widget
This commit is contained in:
committed by
Raphael Coeffic
parent
9b648a14e4
commit
f0f6a1e093
@@ -101,7 +101,7 @@ class Layout: public LayoutBase
|
||||
ViewMainDecoration* decoration = nullptr;
|
||||
|
||||
// Decoration settings bitmask to detect updates
|
||||
uint8_t decorationSettings = 0;
|
||||
uint8_t decorationSettings = 255;
|
||||
|
||||
// Last time we refreshed the window
|
||||
uint32_t lastRefresh = 0;
|
||||
|
||||
@@ -66,6 +66,13 @@ void ViewMainDecoration::setSlidersVisible(bool visible)
|
||||
sliders[SLIDERS_EXT2]->setWidth(visible ? TRIM_SQUARE_SIZE : 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (visible) {
|
||||
visibilityMask |= VM_SLIDERS;
|
||||
}
|
||||
else {
|
||||
visibilityMask &= ~VM_SLIDERS;
|
||||
}
|
||||
}
|
||||
|
||||
void ViewMainDecoration::setTrimsVisible(bool visible)
|
||||
@@ -75,11 +82,25 @@ void ViewMainDecoration::setTrimsVisible(bool visible)
|
||||
|
||||
trims[TRIMS_LV]->setWidth(visible ? TRIM_SQUARE_SIZE : 0);
|
||||
trims[TRIMS_RV]->setWidth(visible ? TRIM_SQUARE_SIZE : 0);
|
||||
|
||||
if (visible) {
|
||||
visibilityMask |= VM_TRIMS;
|
||||
}
|
||||
else {
|
||||
visibilityMask &= ~VM_TRIMS;
|
||||
}
|
||||
}
|
||||
|
||||
void ViewMainDecoration::setFlightModeVisible(bool visible)
|
||||
{
|
||||
flightMode->setHeight(visible ? FM_LABEL_HEIGHT : 0);
|
||||
|
||||
if (visible) {
|
||||
visibilityMask |= VM_FM;
|
||||
}
|
||||
else {
|
||||
visibilityMask &= ~VM_FM;
|
||||
}
|
||||
}
|
||||
|
||||
void ViewMainDecoration::adjustDecoration()
|
||||
@@ -191,13 +212,14 @@ void ViewMainDecoration::adjustDecoration()
|
||||
|
||||
rect_t ViewMainDecoration::getMainZone() const
|
||||
{
|
||||
coord_t border = (getVisibilityMask() == VM_NONE ?
|
||||
0 : MAIN_ZONE_BORDER);
|
||||
rect_t zone = {
|
||||
trims[TRIMS_LV]->right() + MAIN_ZONE_BORDER,
|
||||
/*topbar->bottom() +*/ MAIN_ZONE_BORDER,
|
||||
trims[TRIMS_LV]->right() + border, border,
|
||||
0, 0 // let's compute them!
|
||||
};
|
||||
|
||||
zone.w = trims[TRIMS_RV]->left() - MAIN_ZONE_BORDER - zone.x;
|
||||
zone.w = trims[TRIMS_RV]->left() - border - zone.x;
|
||||
|
||||
// min(trims[TRIMS_LH]->top(), flightMode->top())
|
||||
if (trims[TRIMS_LH]->top() < flightMode->top())
|
||||
@@ -205,7 +227,7 @@ rect_t ViewMainDecoration::getMainZone() const
|
||||
else
|
||||
zone.h = flightMode->top();
|
||||
|
||||
zone.h -= MAIN_ZONE_BORDER + zone.y;
|
||||
zone.h -= border + zone.y;
|
||||
|
||||
return zone;
|
||||
}
|
||||
|
||||
@@ -47,6 +47,19 @@ class ViewMainDecoration: public Window
|
||||
// (without decoration)
|
||||
rect_t getMainZone() const;
|
||||
|
||||
enum VisibilityMask {
|
||||
VM_NONE = 0,
|
||||
VM_TRIMS = 1 << 0,
|
||||
VM_SLIDERS = 1 << 1,
|
||||
VM_FM = 1 << 2,
|
||||
VM_ALL = VM_TRIMS | VM_SLIDERS | VM_FM,
|
||||
};
|
||||
|
||||
unsigned getVisibilityMask() const
|
||||
{
|
||||
return visibilityMask;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
#if defined(DEBUG_WINDOWS)
|
||||
@@ -78,6 +91,7 @@ class ViewMainDecoration: public Window
|
||||
Window* sliders[SLIDERS_MAX];
|
||||
Window* trims[TRIMS_MAX];
|
||||
Window* flightMode;
|
||||
unsigned visibilityMask = VM_NONE;
|
||||
|
||||
void createSliders();
|
||||
void createTrims();
|
||||
|
||||
@@ -128,7 +128,6 @@ WidgetSettings::WidgetSettings(Window * parent, Widget * widget) :
|
||||
break;
|
||||
|
||||
case ZoneOption::Color:
|
||||
for (uint8_t part = 0; part < 3; part++)
|
||||
new ColorEdit(form, grid.getFieldSlot(),
|
||||
[=]() -> int { // getValue
|
||||
return (int) widget->getOptionValue(optIdx)->unsignedValue;
|
||||
|
||||
Reference in New Issue
Block a user