fix(color): Ouputs tab wrong value used for min/max highlighting (#2926)

This commit is contained in:
Michael
2022-12-23 09:40:01 +10:00
committed by GitHub
parent 8eb55452a5
commit 21f686ee9b
2 changed files with 35 additions and 12 deletions
+30 -11
View File
@@ -66,8 +66,6 @@ OutputEditWindow::OutputEditWindow(uint8_t channel) :
title += "\n";
title += getSourceString(MIXSRC_CH1 + channel);
chanZero = calcRESXto100(ex_chans[channel]);
auto form = new FormWindow(&body, rect_t{});
auto form_obj = form->getLvObj();
lv_obj_set_style_pad_all(form_obj, lv_dpx(8), 0);
@@ -83,16 +81,38 @@ void OutputEditWindow::checkEvents()
value = newValue;
int chanVal = calcRESXto100(ex_chans[channel]);
minText->setBackgroudOpacity(chanVal < chanZero - 1 ? LV_OPA_COVER : LV_OPA_TRANSP);
minText->setFont(chanVal < chanZero - 1 ? FONT(BOLD) : FONT(STD));
minText->invalidate();
lv_obj_set_style_text_font(minEdit->getLvObj(), getFont(chanVal < chanZero - 1 ? FONT(BOLD) : FONT(STD)), 0);
minEdit->invalidate();
maxText->setBackgroudOpacity(chanVal > chanZero + 1 ? LV_OPA_COVER : LV_OPA_TRANSP);
maxText->setFont(chanVal > chanZero + 1 ? FONT(BOLD) : FONT(STD));
if(chanVal < -DEADBAND) {
lv_obj_set_style_text_font(minEdit->getLvObj(), getFont(FONT(BOLD)), 0);
minText->setBackgroudOpacity(LV_OPA_COVER);
minText->setFont(FONT(BOLD));
lv_obj_set_style_text_font(maxEdit->getLvObj(), getFont(FONT(STD)), 0);
maxText->setBackgroudOpacity(LV_OPA_TRANSP);
maxText->setFont(FONT(STD));
} else {
if(chanVal > DEADBAND) {
lv_obj_set_style_text_font(minEdit->getLvObj(), getFont(FONT(STD)), 0);
minText->setBackgroudOpacity(LV_OPA_TRANSP);
minText->setFont(FONT(STD));
lv_obj_set_style_text_font(maxEdit->getLvObj(), getFont(FONT(BOLD)), 0);
maxText->setBackgroudOpacity(LV_OPA_COVER);
maxText->setFont(FONT(BOLD));
} else {
lv_obj_set_style_text_font(minEdit->getLvObj(), getFont(FONT(STD)), 0);
minText->setBackgroudOpacity(LV_OPA_TRANSP);
minText->setFont(FONT(STD));
lv_obj_set_style_text_font(maxEdit->getLvObj(), getFont(FONT(STD)), 0);
maxText->setBackgroudOpacity(LV_OPA_TRANSP);
maxText->setFont(FONT(STD));
}
}
minText->invalidate();
maxText->invalidate();
lv_obj_set_style_text_font(maxEdit->getLvObj(), getFont(chanVal > chanZero + 1 ? FONT(BOLD) : FONT(STD)), 0);
minEdit->invalidate();
maxEdit->invalidate();
}
@@ -164,7 +184,6 @@ void OutputEditWindow::buildBody(FormWindow* form)
new StaticText(line, rect_t{}, STR_INVERTED, 0, COLOR_THEME_PRIMARY1);
new CheckBox(line, rect_t{}, GET_DEFAULT(output->revert),
[output, this](uint8_t newValue) {
if (newValue != output->revert) chanZero = -chanZero;
output->revert = newValue;
SET_DIRTY();
});
+5 -1
View File
@@ -26,6 +26,11 @@
#include "gvar_numberedit.h"
#include "static.h"
// deadband in % for switching direction of Min/Max text and value field highlighting
// 0 = no deadband
// 1..100 = [-DEADBAND; DEADBAND]
#define DEADBAND 0
class OutputEditStatusBar;
class OutputEditWindow : public Page
@@ -36,7 +41,6 @@ class OutputEditWindow : public Page
protected:
uint8_t channel;
int value = 0;
int chanZero = 0;
StaticText *minText;
GVarNumberEdit* minEdit;
StaticText *maxText;