feat(color): add theme colors for quick menu (#6799)
This commit is contained in:
@@ -38,6 +38,8 @@ const uint16_t defaultColors[] = {
|
||||
RGB(255, 222, 0), // ACTIVE
|
||||
RGB(224, 0, 0), // WARNING
|
||||
RGB(140, 140, 140), // DISABLED
|
||||
RGB(0, 0, 0), // Quick Menu Background
|
||||
RGB(255, 255, 255), // Quick Menu Foreground
|
||||
RGB(170, 85, 0), // CUSTOM
|
||||
// Fixed
|
||||
RGB(0x00, 0x00, 0x00), // BLACK
|
||||
@@ -76,6 +78,8 @@ uint16_t lcdColorTable[] = {
|
||||
RGB(255, 222, 0), // ACTIVE
|
||||
RGB(224, 0, 0), // WARNING
|
||||
RGB(140, 140, 140), // DISABLED
|
||||
RGB(0, 0, 0), // Quick Menu Background
|
||||
RGB(255, 255, 255), // Quick Menu Foreground
|
||||
RGB(170, 85, 0), // CUSTOM
|
||||
// Fixed
|
||||
RGB(0x00, 0x00, 0x00), // BLACK
|
||||
|
||||
@@ -40,6 +40,8 @@ enum LcdColorIndex {
|
||||
COLOR_THEME_ACTIVE_INDEX,
|
||||
COLOR_THEME_WARNING_INDEX,
|
||||
COLOR_THEME_DISABLED_INDEX,
|
||||
COLOR_THEME_QM_BG_INDEX,
|
||||
COLOR_THEME_QM_FG_INDEX,
|
||||
CUSTOM_COLOR_INDEX,
|
||||
|
||||
// Variable count
|
||||
@@ -136,6 +138,8 @@ extern const uint16_t defaultColors[];
|
||||
#define COLOR_THEME_ACTIVE COLOR(COLOR_THEME_ACTIVE_INDEX)
|
||||
#define COLOR_THEME_WARNING COLOR(COLOR_THEME_WARNING_INDEX)
|
||||
#define COLOR_THEME_DISABLED COLOR(COLOR_THEME_DISABLED_INDEX)
|
||||
#define COLOR_THEME_QM_BG COLOR(COLOR_THEME_QM_BG_INDEX)
|
||||
#define COLOR_THEME_QM_FG COLOR(COLOR_THEME_QM_FG_INDEX)
|
||||
#define CUSTOM_COLOR COLOR(CUSTOM_COLOR_INDEX)
|
||||
|
||||
constexpr int MAX_SATURATION = 100;
|
||||
|
||||
@@ -365,7 +365,7 @@ class ThemeColorType : public ColorType
|
||||
m_color = color;
|
||||
|
||||
auto vbox = new Window(parent, rect_t{});
|
||||
vbox->setFlexLayout(LV_FLEX_FLOW_COLUMN, PAD_MEDIUM);
|
||||
vbox->setFlexLayout(LV_FLEX_FLOW_COLUMN, PAD_ZERO);
|
||||
|
||||
makeButtonsRow(vbox, COLOR_THEME_PRIMARY1_INDEX, COLOR_THEME_PRIMARY2_INDEX,
|
||||
COLOR_THEME_PRIMARY3_INDEX);
|
||||
@@ -375,6 +375,8 @@ class ThemeColorType : public ColorType
|
||||
COLOR_THEME_ACTIVE_INDEX);
|
||||
makeButtonsRow(vbox, COLOR_THEME_WARNING_INDEX, COLOR_THEME_DISABLED_INDEX,
|
||||
COLOR_THEME_DISABLED_INDEX);
|
||||
makeButtonsRow(vbox, COLOR_THEME_QM_BG_INDEX, COLOR_THEME_QM_FG_INDEX,
|
||||
COLOR_THEME_QM_FG_INDEX);
|
||||
}
|
||||
|
||||
uint32_t getRGB() { return m_color; }
|
||||
@@ -397,13 +399,13 @@ class ThemeColorType : public ColorType
|
||||
void makeButtonsRow(Window* parent, uint16_t c1, uint16_t c2, uint16_t c3)
|
||||
{
|
||||
auto hbox = new Window(parent, rect_t{});
|
||||
hbox->padAll(PAD_TINY);
|
||||
hbox->setFlexLayout(LV_FLEX_FLOW_ROW, PAD_MEDIUM);
|
||||
hbox->padAll(PAD_OUTLINE);
|
||||
hbox->setFlexLayout(LV_FLEX_FLOW_ROW, PAD_OUTLINE);
|
||||
lv_obj_set_flex_align(hbox->getLvObj(), LV_FLEX_ALIGN_CENTER,
|
||||
LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_SPACE_AROUND);
|
||||
|
||||
makeButton(hbox, c1);
|
||||
makeButton(hbox, c2);
|
||||
if (c2 != c1) makeButton(hbox, c2);
|
||||
if (c3 != c2) makeButton(hbox, c3);
|
||||
}
|
||||
|
||||
|
||||
@@ -217,19 +217,19 @@ const lv_style_const_prop_t disabled_props[] = {
|
||||
};
|
||||
LV_STYLE_CONST_MULTI_INIT(EdgeTxStyles::disabled, disabled_props);
|
||||
|
||||
static lv_color_t darkgrey_filter_cb(const lv_color_filter_dsc_t* f,
|
||||
static lv_color_t qm_disabled_filter_cb(const lv_color_filter_dsc_t* f,
|
||||
lv_color_t color, lv_opa_t opa)
|
||||
{
|
||||
LV_UNUSED(f);
|
||||
return lv_color_mix(lv_palette_darken(LV_PALETTE_GREY, 2), color, opa);
|
||||
return lv_color_mix(makeLvColor(COLOR_THEME_QM_FG_INDEX), color, opa);
|
||||
}
|
||||
|
||||
const lv_color_filter_dsc_t darkgrey_filter = {.filter_cb = darkgrey_filter_cb,
|
||||
const lv_color_filter_dsc_t qm_disabled_filter = {.filter_cb = qm_disabled_filter_cb,
|
||||
.user_data = 0};
|
||||
|
||||
const lv_style_const_prop_t qm_disabled_props[] = {
|
||||
LV_STYLE_CONST_COLOR_FILTER_DSC(&darkgrey_filter),
|
||||
LV_STYLE_CONST_COLOR_FILTER_OPA(LV_OPA_90),
|
||||
LV_STYLE_CONST_COLOR_FILTER_DSC(&qm_disabled_filter),
|
||||
LV_STYLE_CONST_COLOR_FILTER_OPA(LV_OPA_60),
|
||||
LV_STYLE_PROP_INV,
|
||||
};
|
||||
LV_STYLE_CONST_MULTI_INIT(EdgeTxStyles::qmdisabled, qm_disabled_props);
|
||||
|
||||
@@ -26,10 +26,7 @@
|
||||
#include "etx_lv_theme.h"
|
||||
#include "trims.h"
|
||||
#include "topbar.h"
|
||||
|
||||
extern inline tmr10ms_t getTicks() { return g_tmr10ms; }
|
||||
|
||||
#define PREVIEW_WINDOW_REFRESH_INTERVAL ((1000 / 10) * 1)
|
||||
#include "quick_menu_group.h"
|
||||
|
||||
// class to hold a color list and apply / restore it while drawing standard
|
||||
// controls
|
||||
@@ -146,35 +143,56 @@ PreviewWindow::PreviewWindow(Window *window, rect_t rect,
|
||||
|
||||
etx_solid_bg(lvobj, COLOR_THEME_SECONDARY3_INDEX);
|
||||
|
||||
auto topbar = new Window(this, {0, 0, LV_PCT(100), TopBar::TOPBAR_ZONE_HEIGHT});
|
||||
auto topbar = new Window(this, {0, 0, LV_PCT(100), EdgeTxStyles::MENU_HEADER_HEIGHT});
|
||||
etx_solid_bg(topbar->getLvObj(), COLOR_THEME_SECONDARY1_INDEX);
|
||||
|
||||
new StaticIcon(topbar, ICON_X1, ICON_Y, ICON_RADIO,
|
||||
COLOR_THEME_PRIMARY2_INDEX);
|
||||
new StaticIcon(topbar, ICON_X2, ICON_Y, ICON_RADIO_TOOLS,
|
||||
COLOR_THEME_PRIMARY2_INDEX);
|
||||
new StaticIcon(topbar, ICON_X3, ICON_Y, ICON_RADIO_SETUP,
|
||||
COLOR_THEME_PRIMARY2_INDEX);
|
||||
new HeaderIcon(topbar, ICON_EDGETX);
|
||||
|
||||
new StaticText(this, {ICON_X1, CBT_Y, CBT_W, EdgeTxStyles::STD_FONT_HEIGHT}, STR_THEME_CHECKBOX);
|
||||
new StaticText(this, {CBT_X, CBT_Y, CBT_W, EdgeTxStyles::STD_FONT_HEIGHT}, STR_THEME_CHECKBOX);
|
||||
new ThemedCheckBox(this, {CB1_X, CB_Y, CB_W, 0}, true);
|
||||
new ThemedCheckBox(this, {CB2_X, CB_Y, CB_W, 0}, false);
|
||||
(new ThemedButton(this, {BTN_X, BTN1_Y, BTN_W, 0}, STR_THEME_ACTIVE, true))
|
||||
->check(true);
|
||||
new ThemedButton(this, {BTN_X, BTN2_Y, BTN_W, 0}, STR_THEME_REGULAR, false);
|
||||
new MainViewTrim(this, {ICON_X1, TRIM_Y, MainViewSlider::HORIZONTAL_SLIDERS_WIDTH, EdgeTxStyles::STD_FONT_HEIGHT}, 0, false);
|
||||
new MainViewSlider(this, {ICON_X1, SLIDER_Y, MainViewSlider::HORIZONTAL_SLIDERS_WIDTH, EdgeTxStyles::STD_FONT_HEIGHT}, 0, false);
|
||||
new StaticText(this, {ICON_X1, TXT1_Y, TXT_W, EdgeTxStyles::STD_FONT_HEIGHT}, STR_THEME_WARNING,
|
||||
new MainViewTrim(this, {CBT_X, TRIM_Y, MainViewSlider::HORIZONTAL_SLIDERS_WIDTH, EdgeTxStyles::STD_FONT_HEIGHT}, 0, false);
|
||||
new MainViewSlider(this, {CBT_X, SLIDER_Y, MainViewSlider::HORIZONTAL_SLIDERS_WIDTH, EdgeTxStyles::STD_FONT_HEIGHT}, 0, false);
|
||||
new StaticText(this, {CBT_X, TXT1_Y, TXT_W, EdgeTxStyles::STD_FONT_HEIGHT}, STR_THEME_WARNING,
|
||||
COLOR_THEME_WARNING_INDEX);
|
||||
new StaticText(this, {ICON_X1, TXT2_Y, TXT_W, EdgeTxStyles::STD_FONT_HEIGHT}, STR_THEME_DISABLED,
|
||||
new StaticText(this, {CBT_X, TXT2_Y, TXT_W, EdgeTxStyles::STD_FONT_HEIGHT}, STR_THEME_DISABLED,
|
||||
COLOR_THEME_DISABLED_INDEX);
|
||||
|
||||
new ThemedTextEdit(this, {ICON_X1, EDT_Y, TXT_W, 0}, STR_THEME_EDIT, true);
|
||||
new ThemedTextEdit(this, {EDT2_X, EDT_Y, TXT_W, 0}, STR_THEME_FOCUS, false);
|
||||
ticks = 0;
|
||||
new ThemedTextEdit(this, {CBT_X, EDT_Y, EDY_W, 0}, STR_THEME_EDIT, true);
|
||||
new ThemedTextEdit(this, {EDT2_X, EDT_Y, EDY_W, 0}, STR_THEME_FOCUS, false);
|
||||
|
||||
new HeaderDateTime(this, width() - DATE_XO, PAD_SMALL);
|
||||
|
||||
auto qm = new Window(this, {QM_X, QM_Y, QM_W, QM_H});
|
||||
etx_solid_bg(qm->getLvObj(), COLOR_THEME_QM_BG_INDEX);
|
||||
etx_obj_add_style(qm->getLvObj(), styles->bg_opacity_90, LV_PART_MAIN);
|
||||
auto sep = lv_obj_create(qm->getLvObj());
|
||||
etx_solid_bg(sep, COLOR_THEME_QM_FG_INDEX);
|
||||
lv_obj_set_size(sep, LCD_W, PAD_THREE);
|
||||
auto mask = getBuiltinIcon(ICON_TOP_LOGO);
|
||||
new StaticIcon(qm, (QM_W - mask->width) / 2, 0, ICON_TOP_LOGO, COLOR_THEME_QM_FG_INDEX);
|
||||
|
||||
auto qmb = new Window(qm, {PAD_SMALL, mask->height + PAD_SMALL, QuickMenuGroup::QM_BUTTON_WIDTH, QuickMenuGroup::QM_BUTTON_HEIGHT});
|
||||
etx_obj_add_style(qmb->getLvObj(), styles->rounded, LV_PART_MAIN);
|
||||
etx_txt_color(qmb->getLvObj(), COLOR_THEME_QM_FG_INDEX, LV_PART_MAIN);
|
||||
etx_solid_bg(qmb->getLvObj(), COLOR_THEME_QM_BG_INDEX, LV_PART_MAIN);
|
||||
auto iconPtr = new StaticIcon(qmb, (QuickMenuGroup::QM_BUTTON_WIDTH - QuickMenuGroup::QM_ICON_SIZE) / 2, PAD_SMALL,
|
||||
ICON_MODEL_SELECT, COLOR_THEME_QM_FG_INDEX);
|
||||
auto textPtr = new StaticText(qmb, {0, QuickMenuGroup::QM_ICON_SIZE + PAD_TINY * 2, QuickMenuGroup::QM_BUTTON_WIDTH - 1, 0},
|
||||
STR_QM_MANAGE_MODELS, COLOR_THEME_QM_FG_INDEX, CENTERED | FONT(XS));
|
||||
|
||||
qmb = new Window(qm, {QuickMenuGroup::QM_BUTTON_WIDTH + PAD_SMALL * 2, mask->height + PAD_SMALL, QuickMenuGroup::QM_BUTTON_WIDTH, QuickMenuGroup::QM_BUTTON_HEIGHT});
|
||||
etx_obj_add_style(qmb->getLvObj(), styles->rounded, LV_PART_MAIN);
|
||||
etx_txt_color(qmb->getLvObj(), COLOR_THEME_QM_BG_INDEX, LV_PART_MAIN);
|
||||
etx_solid_bg(qmb->getLvObj(), COLOR_THEME_QM_FG_INDEX, LV_PART_MAIN);
|
||||
iconPtr = new StaticIcon(qmb, (QuickMenuGroup::QM_BUTTON_WIDTH - QuickMenuGroup::QM_ICON_SIZE) / 2, PAD_SMALL,
|
||||
ICON_MODEL, COLOR_THEME_QM_BG_INDEX);
|
||||
textPtr = new StaticText(qmb, {0, QuickMenuGroup::QM_ICON_SIZE + PAD_TINY * 2, QuickMenuGroup::QM_BUTTON_WIDTH - 1, 0},
|
||||
STR_QM_MODEL_SETUP, COLOR_THEME_QM_BG_INDEX, CENTERED | FONT(XS));
|
||||
|
||||
lv_group_set_default(def_group);
|
||||
|
||||
colorMaintainer.restoreColorValues();
|
||||
|
||||
@@ -34,29 +34,28 @@ class PreviewWindow : public Window
|
||||
|
||||
void setColorList(std::vector<ColorEntry> colorList);
|
||||
|
||||
static LAYOUT_VAL_SCALED(ICON_X1, 5)
|
||||
static LAYOUT_VAL_SCALED(ICON_X2, 38)
|
||||
static LAYOUT_VAL_SCALED(ICON_X3, 71)
|
||||
static LAYOUT_VAL_SCALED(ICON_Y, 5)
|
||||
static LAYOUT_VAL_SCALED(DATE_XO, 46)
|
||||
static LAYOUT_VAL_SCALED(CBT_Y, 44)
|
||||
static LAYOUT_VAL_SCALED(CBT_X, 5)
|
||||
static LAYOUT_VAL_SCALED(CBT_Y, 54)
|
||||
static LAYOUT_VAL_SCALED(CBT_W, 100)
|
||||
static LAYOUT_VAL_SCALED(CB1_X, 100)
|
||||
static LAYOUT_VAL_SCALED(CB2_X, 154)
|
||||
static LAYOUT_VAL_SCALED(CB_Y, 40)
|
||||
static LAYOUT_VAL_SCALED(CB_Y, 50)
|
||||
static LAYOUT_VAL_SCALED(CB_W, 50)
|
||||
static LAYOUT_VAL_SCALED(BTN_X, 210)
|
||||
static LAYOUT_VAL_SCALED(BTN1_Y, 40)
|
||||
static LAYOUT_VAL_SCALED(BTN2_Y, 79)
|
||||
static LAYOUT_VAL_SCALED(BTN1_Y, 48)
|
||||
static LAYOUT_VAL_SCALED(BTN2_Y, 82)
|
||||
static LAYOUT_VAL_SCALED(BTN_W, 100)
|
||||
static LAYOUT_VAL_SCALED(TRIM_Y, 79)
|
||||
static LAYOUT_VAL_SCALED(SLIDER_Y, 101)
|
||||
static LAYOUT_VAL_SCALED(TXT1_Y, 122)
|
||||
static LAYOUT_VAL_SCALED(TXT2_Y, 144)
|
||||
static LAYOUT_VAL_SCALED(TRIM_Y, 89)
|
||||
static LAYOUT_VAL_SCALED(SLIDER_Y, 111)
|
||||
static LAYOUT_VAL_SCALED(TXT1_Y, 132)
|
||||
static LAYOUT_VAL_SCALED(TXT2_Y, 154)
|
||||
static LAYOUT_VAL_SCALED(TXT_W, 100)
|
||||
static LAYOUT_VAL_SCALED(EDT2_X, 114)
|
||||
static LAYOUT_VAL_SCALED(EDT_Y, 170)
|
||||
|
||||
protected:
|
||||
tmr10ms_t ticks;
|
||||
static LAYOUT_VAL_SCALED(EDT2_X, 94)
|
||||
static LAYOUT_VAL_SCALED(EDT_Y, 180)
|
||||
static LAYOUT_VAL_SCALED(EDY_W, 80)
|
||||
static LAYOUT_VAL_SCALED(QM_X, 180)
|
||||
static LAYOUT_VAL_SCALED(QM_Y, 117)
|
||||
static LAYOUT_VAL_SCALED(QM_W, 140)
|
||||
static LAYOUT_VAL_SCALED(QM_H, 104)
|
||||
};
|
||||
|
||||
@@ -226,14 +226,14 @@ QuickMenu::QuickMenu() :
|
||||
setWindowFlag(OPAQUE);
|
||||
|
||||
etx_obj_add_style(lvobj, styles->bg_opacity_90, LV_PART_MAIN);
|
||||
etx_bg_color(lvobj, COLOR_BLACK_INDEX);
|
||||
etx_bg_color(lvobj, COLOR_THEME_QM_BG_INDEX);
|
||||
|
||||
auto sep = lv_obj_create(lvobj);
|
||||
etx_solid_bg(sep, COLOR_WHITE_INDEX);
|
||||
etx_solid_bg(sep, COLOR_THEME_QM_FG_INDEX);
|
||||
lv_obj_set_size(sep, LCD_W, PAD_THREE);
|
||||
|
||||
auto mask = getBuiltinIcon(ICON_TOP_LOGO);
|
||||
new StaticIcon(this, (LCD_W - mask->width) / 2, 0, ICON_TOP_LOGO, COLOR_WHITE_INDEX);
|
||||
new StaticIcon(this, (LCD_W - mask->width) / 2, 0, ICON_TOP_LOGO, COLOR_THEME_QM_FG_INDEX);
|
||||
|
||||
new ButtonBase(
|
||||
this, {0, 0, LCD_W, EdgeTxStyles::UI_ELEMENT_HEIGHT},
|
||||
|
||||
@@ -29,11 +29,11 @@ static void etx_quick_button_constructor(const lv_obj_class_t* class_p,
|
||||
lv_obj_t* obj)
|
||||
{
|
||||
etx_obj_add_style(obj, styles->rounded, LV_PART_MAIN);
|
||||
etx_txt_color(obj, COLOR_WHITE_INDEX, LV_PART_MAIN);
|
||||
etx_obj_add_style(obj, styles->pad_medium, LV_PART_MAIN);
|
||||
etx_solid_bg(obj, COLOR_BLACK_INDEX, LV_PART_MAIN);
|
||||
etx_txt_color(obj, COLOR_THEME_QM_FG_INDEX, LV_PART_MAIN);
|
||||
etx_obj_add_style(obj, styles->pad_zero, LV_PART_MAIN);
|
||||
etx_solid_bg(obj, COLOR_THEME_QM_BG_INDEX, LV_PART_MAIN);
|
||||
|
||||
etx_solid_bg(obj, COLOR_WHITE_INDEX, LV_PART_MAIN | LV_STATE_FOCUSED);
|
||||
etx_solid_bg(obj, COLOR_THEME_QM_FG_INDEX, LV_PART_MAIN | LV_STATE_FOCUSED);
|
||||
}
|
||||
|
||||
static const lv_obj_class_t etx_quick_button_class = {
|
||||
@@ -63,16 +63,14 @@ class QuickMenuButton : public ButtonBase
|
||||
ButtonBase(parent, {}, pressHandler, etx_quick_button_create),
|
||||
visibleHandler(std::move(visibleHandler))
|
||||
{
|
||||
padAll(PAD_ZERO);
|
||||
|
||||
iconPtr = new StaticIcon(this, (QuickMenuGroup::QM_BUTTON_WIDTH - QuickMenuGroup::QM_ICON_SIZE) / 2, PAD_SMALL, icon, COLOR_WHITE_INDEX);
|
||||
iconPtr = new StaticIcon(this, (QuickMenuGroup::QM_BUTTON_WIDTH - QuickMenuGroup::QM_ICON_SIZE) / 2, PAD_SMALL, icon, COLOR_THEME_QM_FG_INDEX);
|
||||
etx_obj_add_style(iconPtr->getLvObj(), styles->qmdisabled, LV_PART_MAIN | LV_STATE_DISABLED);
|
||||
etx_img_color(iconPtr->getLvObj(), COLOR_BLACK_INDEX, LV_STATE_USER_1);
|
||||
etx_img_color(iconPtr->getLvObj(), COLOR_THEME_QM_BG_INDEX, LV_STATE_USER_1);
|
||||
|
||||
textPtr = new StaticText(this, {0, QuickMenuGroup::QM_ICON_SIZE + PAD_TINY * 2, QuickMenuGroup::QM_BUTTON_WIDTH - 1, 0},
|
||||
title, COLOR_WHITE_INDEX, CENTERED | FONT(XS));
|
||||
title, COLOR_THEME_QM_FG_INDEX, CENTERED | FONT(XS));
|
||||
etx_obj_add_style(textPtr->getLvObj(), styles->qmdisabled, LV_PART_MAIN | LV_STATE_DISABLED);
|
||||
etx_txt_color(textPtr->getLvObj(), COLOR_BLACK_INDEX, LV_STATE_USER_1);
|
||||
etx_txt_color(textPtr->getLvObj(), COLOR_THEME_QM_BG_INDEX, LV_STATE_USER_1);
|
||||
|
||||
lv_obj_add_event_cb(lvobj, QuickMenuButton::focused_cb, LV_EVENT_FOCUSED, nullptr);
|
||||
lv_obj_add_event_cb(lvobj, QuickMenuButton::defocused_cb, LV_EVENT_DEFOCUSED, nullptr);
|
||||
|
||||
@@ -104,6 +104,8 @@ static const struct YamlNode struct_YAMLThemeColors[] = {
|
||||
YAML_UNSIGNED_CUST("ACTIVE", 32, r_color, w_color),
|
||||
YAML_UNSIGNED_CUST("WARNING", 32, r_color, w_color),
|
||||
YAML_UNSIGNED_CUST("DISABLED", 32, r_color, w_color),
|
||||
YAML_UNSIGNED_CUST("QM_BG", 32, r_color, w_color),
|
||||
YAML_UNSIGNED_CUST("QM_FG", 32, r_color, w_color),
|
||||
YAML_END};
|
||||
|
||||
// This hack is required to ensure the YAML file written is backward compatible
|
||||
@@ -131,7 +133,8 @@ static const char* const colorNames[THEME_COLOR_COUNT] = {
|
||||
STR_THEME_COLOR_SECONDARY2, STR_THEME_COLOR_SECONDARY3,
|
||||
STR_THEME_COLOR_FOCUS, STR_THEME_COLOR_EDIT,
|
||||
STR_THEME_COLOR_ACTIVE, STR_THEME_COLOR_WARNING,
|
||||
STR_THEME_COLOR_DISABLED, STR_THEME_COLOR_CUSTOM,
|
||||
STR_THEME_COLOR_DISABLED, STR_THEME_COLOR_QM_BG,
|
||||
STR_THEME_COLOR_QM_FG, STR_THEME_COLOR_CUSTOM,
|
||||
};
|
||||
|
||||
ThemeFile::ThemeFile(std::string themePath, bool loadYAML) : path(themePath)
|
||||
@@ -201,6 +204,10 @@ void ThemeFile::deSerialize()
|
||||
struct YAMLTheme yt;
|
||||
struct YamlNode themeRootNode = YAML_ROOT(r_struct_YAMLTheme);
|
||||
|
||||
// initialize the color table to defaults (in case of missing entries)
|
||||
for (uint8_t i = COLOR_THEME_PRIMARY1_INDEX; i < THEME_COLOR_COUNT - 1; i += 1)
|
||||
yt.colors.colors[i] = defaultColors[i];
|
||||
|
||||
YamlTreeWalker tree;
|
||||
tree.reset(&themeRootNode, (uint8_t*)&yt);
|
||||
auto err = readYamlFile(path.c_str(), YamlTreeWalker::get_parser_calls(),
|
||||
@@ -475,9 +482,8 @@ class DefaultEdgeTxTheme : public ThemeFile
|
||||
setAuthor("EdgeTX Team");
|
||||
setInfo("Default EdgeTX Color Scheme");
|
||||
|
||||
// initializze the default color table
|
||||
for (uint8_t i = COLOR_THEME_PRIMARY1_INDEX;
|
||||
i <= COLOR_THEME_DISABLED_INDEX; i += 1)
|
||||
// initialize the default color table
|
||||
for (uint8_t i = COLOR_THEME_PRIMARY1_INDEX; i < THEME_COLOR_COUNT - 1; i += 1)
|
||||
colorList.emplace_back(ColorEntry{(LcdColorIndex)i, defaultColors[i]});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1260,6 +1260,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "激活"
|
||||
#define TR_THEME_COLOR_WARNING "警告"
|
||||
#define TR_THEME_COLOR_DISABLED "禁用"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "自定义"
|
||||
#define TR_THEME_CHECKBOX "复选框"
|
||||
#define TR_THEME_ACTIVE "激活"
|
||||
|
||||
@@ -1264,6 +1264,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "AKTIVNÍ"
|
||||
#define TR_THEME_COLOR_WARNING "VAROVÁNÍ"
|
||||
#define TR_THEME_COLOR_DISABLED "VYPNUTÉ"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "VLASTNÍ"
|
||||
#define TR_THEME_CHECKBOX "Pole výběru"
|
||||
#define TR_THEME_ACTIVE "Aktivní"
|
||||
|
||||
@@ -1274,6 +1274,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "AKTIV"
|
||||
#define TR_THEME_COLOR_WARNING "ADVARSEL"
|
||||
#define TR_THEME_COLOR_DISABLED "DEAKTIV"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "BRUGER STYRET"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "Aktiv"
|
||||
|
||||
@@ -1263,6 +1263,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "Aktiv"
|
||||
#define TR_THEME_COLOR_WARNING "Warnung"
|
||||
#define TR_THEME_COLOR_DISABLED "Deaktiviert"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "Eigene"
|
||||
#define TR_THEME_CHECKBOX "Schalter"
|
||||
#define TR_THEME_ACTIVE "Aktiv"
|
||||
|
||||
@@ -1261,6 +1261,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "ACTIVE"
|
||||
#define TR_THEME_COLOR_WARNING "WARNING"
|
||||
#define TR_THEME_COLOR_DISABLED "DISABLED"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "CUSTOM"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "Active"
|
||||
|
||||
@@ -1264,6 +1264,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "ACTIVE"
|
||||
#define TR_THEME_COLOR_WARNING "WARNING"
|
||||
#define TR_THEME_COLOR_DISABLED "DISABLED"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "CUSTOM"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "Active"
|
||||
|
||||
@@ -1266,6 +1266,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "ACTIVE"
|
||||
#define TR_THEME_COLOR_WARNING "WARNING"
|
||||
#define TR_THEME_COLOR_DISABLED "DISABLED"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "CUSTOM"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "Active"
|
||||
|
||||
@@ -1269,6 +1269,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "ACTIF"
|
||||
#define TR_THEME_COLOR_WARNING "ATTENTION"
|
||||
#define TR_THEME_COLOR_DISABLED "DESACTIVE"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "PERSO"
|
||||
#define TR_THEME_CHECKBOX "Case à cocher"
|
||||
#define TR_THEME_ACTIVE "Actif"
|
||||
|
||||
@@ -1263,6 +1263,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "פעיל"
|
||||
#define TR_THEME_COLOR_WARNING "אזהרה"
|
||||
#define TR_THEME_COLOR_DISABLED "לא פעיל"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "מתקדם"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "פעיל"
|
||||
|
||||
@@ -1260,6 +1260,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "ATTIVO"
|
||||
#define TR_THEME_COLOR_WARNING "ATTENZIONE"
|
||||
#define TR_THEME_COLOR_DISABLED "DISABILITATO"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "PERSONALE"
|
||||
#define TR_THEME_CHECKBOX "Casella di spunta"
|
||||
#define TR_THEME_ACTIVE "Attivo"
|
||||
|
||||
@@ -1259,6 +1259,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "有効"
|
||||
#define TR_THEME_COLOR_WARNING "警告"
|
||||
#define TR_THEME_COLOR_DISABLED "無効"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "カスタム"
|
||||
#define TR_THEME_CHECKBOX "チェック"
|
||||
#define TR_THEME_ACTIVE "有効"
|
||||
|
||||
@@ -1305,6 +1305,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "활성 항목"
|
||||
#define TR_THEME_COLOR_WARNING "경고"
|
||||
#define TR_THEME_COLOR_DISABLED "비활성"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "사용자 정의"
|
||||
#define TR_THEME_CHECKBOX "체크박스"
|
||||
#define TR_THEME_ACTIVE "활성"
|
||||
|
||||
@@ -1265,6 +1265,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "ACTIVE"
|
||||
#define TR_THEME_COLOR_WARNING "WARNING"
|
||||
#define TR_THEME_COLOR_DISABLED "DISABLED"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "CUSTOM"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "Active"
|
||||
|
||||
@@ -1260,6 +1260,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "AKTYWNY"
|
||||
#define TR_THEME_COLOR_WARNING "OSTRZEŻENIE"
|
||||
#define TR_THEME_COLOR_DISABLED "WYŁĄCZONY"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "WŁASNY"
|
||||
#define TR_THEME_CHECKBOX "Pole wyboru"
|
||||
#define TR_THEME_ACTIVE "Aktywny"
|
||||
|
||||
@@ -1261,6 +1261,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "ACTIVE"
|
||||
#define TR_THEME_COLOR_WARNING "WARNING"
|
||||
#define TR_THEME_COLOR_DISABLED "DISABLED"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "CUSTOM"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "Active"
|
||||
|
||||
@@ -1262,6 +1262,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "АКТИВНАЯ"
|
||||
#define TR_THEME_COLOR_WARNING "ПРЕД-НИЕ"
|
||||
#define TR_THEME_COLOR_DISABLED "ОТКЛ-НАЯ"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "ПОЛ-КАЯ"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "АКТИВНАЯ"
|
||||
|
||||
@@ -1277,6 +1277,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "AKTIV"
|
||||
#define TR_THEME_COLOR_WARNING "VARNING"
|
||||
#define TR_THEME_COLOR_DISABLED "INAKTIV"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "ANPASSAD"
|
||||
#define TR_THEME_CHECKBOX "Kryssruta"
|
||||
#define TR_THEME_ACTIVE "Aktiv"
|
||||
|
||||
@@ -1258,6 +1258,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "激活"
|
||||
#define TR_THEME_COLOR_WARNING "警告"
|
||||
#define TR_THEME_COLOR_DISABLED "禁用"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "自定義"
|
||||
#define TR_THEME_CHECKBOX "復選框"
|
||||
#define TR_THEME_ACTIVE "激活"
|
||||
|
||||
@@ -1261,6 +1261,8 @@
|
||||
#define TR_THEME_COLOR_ACTIVE "АКТИВНИЙ"
|
||||
#define TR_THEME_COLOR_WARNING "WARNING"
|
||||
#define TR_THEME_COLOR_DISABLED "ДЕАКТИВОВАНИЙ"
|
||||
#define TR_THEME_COLOR_QM_BG "Quick Menu BG"
|
||||
#define TR_THEME_COLOR_QM_FG "Quick Menu FG"
|
||||
#define TR_THEME_COLOR_CUSTOM "КОРИСТУВАЦЬКИЙ"
|
||||
#define TR_THEME_CHECKBOX "Checkbox"
|
||||
#define TR_THEME_ACTIVE "Активний"
|
||||
|
||||
@@ -157,6 +157,8 @@
|
||||
#define STR_THEME_COLOR_SECONDARY2 currentLangStrings->STR_THEME_COLOR_SECONDARY2
|
||||
#define STR_THEME_COLOR_SECONDARY3 currentLangStrings->STR_THEME_COLOR_SECONDARY3
|
||||
#define STR_THEME_COLOR_WARNING currentLangStrings->STR_THEME_COLOR_WARNING
|
||||
#define STR_THEME_COLOR_QM_BG currentLangStrings->STR_THEME_COLOR_QM_BG
|
||||
#define STR_THEME_COLOR_QM_FG currentLangStrings->STR_THEME_COLOR_QM_FG
|
||||
#define STR_THEME_DISABLED currentLangStrings->STR_THEME_DISABLED
|
||||
#define STR_THEME_EDIT currentLangStrings->STR_THEME_EDIT
|
||||
#define STR_THEME_EXISTS currentLangStrings->STR_THEME_EXISTS
|
||||
|
||||
@@ -156,6 +156,8 @@ STR(THEME_COLOR_SECONDARY1)
|
||||
STR(THEME_COLOR_SECONDARY2)
|
||||
STR(THEME_COLOR_SECONDARY3)
|
||||
STR(THEME_COLOR_WARNING)
|
||||
STR(THEME_COLOR_QM_BG)
|
||||
STR(THEME_COLOR_QM_FG)
|
||||
STR(THEME_DISABLED)
|
||||
STR(THEME_EDIT)
|
||||
STR(THEME_EXISTS)
|
||||
|
||||
Reference in New Issue
Block a user