fix(pa01): custom switches not working (#6790)

Co-authored-by: philmoz <phil.a.mitchell@gmail.com>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
philmoz
2025-11-15 11:13:10 +10:00
committed by GitHub
co-authored by philmoz Peter Feerick
parent 85f6d39d65
commit 48b10017f2
2 changed files with 23 additions and 3 deletions
@@ -115,8 +115,8 @@ class FunctionSwitch : public Window
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
#if NARROW_LAYOUT
new StaticText(this, {C1_X - C1_W - PAD_TINY, C1_Y + COLLBL_YO, C1_W, 0}, STR_OFF, COLOR_THEME_PRIMARY1_INDEX, FONT(XS) | RIGHT);
new StaticText(this, {C2_X - C2_W - PAD_TINY, C2_Y + COLLBL_YO, C2_W, 0}, STR_ON_ONE_SWITCHES[0], COLOR_THEME_PRIMARY1_INDEX, FONT(XS) | RIGHT);
offLabel = new StaticText(this, {C1_X - C1_W - PAD_TINY, C1_Y + COLLBL_YO, C1_W, 0}, STR_OFF, COLOR_THEME_PRIMARY1_INDEX, FONT(XS) | RIGHT);
onLabel = new StaticText(this, {C2_X - C2_W - PAD_TINY, C2_Y + COLLBL_YO, C2_W, 0}, STR_ON_ONE_SWITCHES[0], COLOR_THEME_PRIMARY1_INDEX, FONT(XS) | RIGHT);
#endif
offValue = g_model.cfsOffColor(switchIndex);
@@ -183,6 +183,7 @@ class FunctionSwitch : public Window
static LAYOUT_VAL_SCALED(GR_W, 84)
static constexpr coord_t ST_X = GR_X + GR_W + PAD_SMALL;
static LAYOUT_VAL_SCALED(ST_W, 60)
static constexpr coord_t ROW_HS = EdgeTxStyles::UI_ELEMENT_HEIGHT + PAD_OUTLINE * 2;
#if NARROW_LAYOUT
static constexpr coord_t ROW_H = EdgeTxStyles::UI_ELEMENT_HEIGHT * 3 + PAD_OUTLINE * 4;
static constexpr coord_t C1_X = GR_X;
@@ -227,6 +228,10 @@ class FunctionSwitch : public Window
Choice* groupChoice = nullptr;
Choice* startChoice = nullptr;
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
#if defined(NARROW_LAYOUT)
StaticText *offLabel = nullptr;
StaticText *onLabel = nullptr;
#endif
ColorPicker* offColor = nullptr;
ColorPicker* onColor = nullptr;
RGBLedColor offValue;
@@ -252,6 +257,10 @@ class FunctionSwitch : public Window
startChoice->show(typ == SWITCH_2POS && g_model.cfsGroup(switchIndex) == 0);
groupChoice->show(typ != SWITCH_NONE && typ != SWITCH_GLOBAL);
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
#if NARROW_LAYOUT
offLabel->show(typ != SWITCH_NONE && typ != SWITCH_GLOBAL);
onLabel->show(typ != SWITCH_NONE && typ != SWITCH_GLOBAL);
#endif
offColor->show(typ != SWITCH_NONE && typ != SWITCH_GLOBAL);
onColor->show(typ != SWITCH_NONE && typ != SWITCH_GLOBAL);
overrideLabel->show(typ != SWITCH_NONE && typ != SWITCH_GLOBAL);
@@ -260,7 +269,7 @@ class FunctionSwitch : public Window
if (typ != SWITCH_NONE && typ != SWITCH_GLOBAL)
setHeight(ROW_H);
else
setHeight(ROW_H - EdgeTxStyles::UI_ELEMENT_HEIGHT - PAD_OUTLINE);
setHeight(ROW_HS);
#endif
}
+11
View File
@@ -88,3 +88,14 @@ uint16_t bsp_input_get()
bsp_input_read();
return inputState;
}
SwitchHwPos boardSwitchGetPosition(uint8_t idx)
{
if (idx < 6) {
extern const stm32_switch_t* boardGetSwitchDef(uint8_t idx);
const stm32_switch_t* sw = boardGetSwitchDef(idx);
return stm32_switch_get_position(sw);
}
return getFctKeyState(idx - 6) ? SWITCH_HW_DOWN : SWITCH_HW_UP;
}