Skip to content

Commit

Permalink
feat(el18): Add help popup showing mapping when using hats as keys (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
philmoz authored Dec 12, 2023
1 parent 071193c commit e4dd546
Show file tree
Hide file tree
Showing 23 changed files with 224 additions and 3 deletions.
19 changes: 19 additions & 0 deletions radio/src/gui/colorlcd/message_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,25 @@ void MessageDialog::onClicked()
deleteLater();
}

HelpDialog::HelpDialog(Window* parent, rect_t rect, const char* title,
const char* message,
LcdFlags messageFlags) :
Dialog(parent, title, rect)
{
messageWidget = new StaticText(
content,
{0, 33, content->width(), content->height() - 33},
message, 0, messageFlags);
messageWidget->padAll(6);

setCloseWhenClickOutside(true);
}

void HelpDialog::onClicked()
{
deleteLater();
}

DynamicMessageDialog::DynamicMessageDialog(
Window* parent, const char* title, std::function<std::string()> textHandler,
const char* message, const int lineHeight,
Expand Down
16 changes: 16 additions & 0 deletions radio/src/gui/colorlcd/message_dialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,22 @@ class MessageDialog : public Dialog
void onClicked() override;
};

class HelpDialog : public Dialog
{
public:
HelpDialog(Window* parent, rect_t rect, const char* title, const char* message,
LcdFlags messageFlags = CENTERED);

protected:
StaticText* messageWidget;

#if defined(DEBUG_WINDOWS)
std::string getName() const override { return "HelpDialog"; }
#endif

void onClicked() override;
};

class DynamicMessageDialog : public Dialog
{
public:
Expand Down
11 changes: 9 additions & 2 deletions radio/src/gui/colorlcd/radio_setup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -819,8 +819,15 @@ void RadioSetupPage::build(FormWindow * window)
#if defined(USE_HATS_AS_KEYS)
line = window->newLine(&grid);
new StaticText(line, rect_t{}, STR_HATSMODE, 0, COLOR_THEME_PRIMARY1);
new Choice(line, rect_t{}, STR_HATSOPT, HATSMODE_TRIMS_ONLY, HATSMODE_SWITCHABLE,
GET_SET_DEFAULT(g_eeGeneral.hatsMode));
auto box = new FormWindow(line, rect_t{});
box->setFlexLayout(LV_FLEX_FLOW_ROW, 4);
new Choice(box, rect_t{}, STR_HATSOPT, HATSMODE_TRIMS_ONLY,
HATSMODE_SWITCHABLE, GET_SET_DEFAULT(g_eeGeneral.hatsMode));
new TextButton(box, rect_t{}, "?", [=]() {
new HelpDialog(window, {50, 100, LCD_W - 100, LCD_H - 200},
STR_HATSMODE_KEYS, STR_HATSMODE_KEYS_HELP, LEFT);
return 0;
});
#endif

// RX channel order
Expand Down
9 changes: 8 additions & 1 deletion radio/src/gui/colorlcd/trims_setup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,15 @@ TrimsSetup::TrimsSetup() : Page(ICON_MODEL_SETUP)
// Hats mode for NV14/EL18
line = body.newLine(&grid);
new StaticText(line, rect_t{}, STR_HATSMODE, 0, COLOR_THEME_PRIMARY1);
new Choice(line, rect_t{}, STR_HATSOPT, HATSMODE_TRIMS_ONLY, HATSMODE_GLOBAL,
auto box = new FormWindow(line, rect_t{});
box->setFlexLayout(LV_FLEX_FLOW_ROW, 4);
new Choice(box, rect_t{}, STR_HATSOPT, HATSMODE_TRIMS_ONLY, HATSMODE_GLOBAL,
GET_SET_DEFAULT(g_model.hatsMode));
new TextButton(box, rect_t{}, "?", [=]() {
new HelpDialog(this, {50, 100, LCD_W - 100, LCD_H - 200},
STR_HATSMODE_KEYS, STR_HATSMODE_KEYS_HELP, LEFT);
return 0;
});
#endif

// Trim step
Expand Down
1 change: 1 addition & 0 deletions radio/src/translations.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,7 @@ const char STR_HATSMODE[] = TR_HATSMODE;
ISTR(HATSOPT);
const char STR_HATSMODE_TRIMS[] = TR_HATSMODE_TRIMS;
const char STR_HATSMODE_KEYS[] = TR_HATSMODE_KEYS;
const char STR_HATSMODE_KEYS_HELP[] = TR_HATSMODE_KEYS_HELP;
#endif

const char STR_MIXERS_MONITOR[] = TR_MIXERS_MONITOR;
Expand Down
1 change: 1 addition & 0 deletions radio/src/translations.h
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ extern const char STR_HATSMODE[];
extern const char* const STR_HATSOPT[];
extern const char STR_HATSMODE_TRIMS[];
extern const char STR_HATSMODE_KEYS[];
extern const char STR_HATSMODE_KEYS_HELP[];
#endif

extern const char* const STR_VTMRMODES[];
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/cn.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,16 @@
#define TR_HATSOPT "微调","导航键","可切换","全局"
#define TR_HATSMODE_TRIMS "按键帽: 微调"
#define TR_HATSMODE_KEYS "按键帽: 导航键"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/cz.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,16 @@
#define TR_HATSOPT "Pouze trimy","Pouze tlačítka","Přepinatelné","Globální"
#define TR_HATSMODE_TRIMS "Režim kloboučků: Trimy"
#define TR_HATSMODE_KEYS "Režim kloboučků: Tlačítka"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/da.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,16 @@
#define TR_HATSOPT "Kun trim","Kun knap","Trim / Knap", "Global"
#define TR_HATSMODE_TRIMS "Joystik: Trim"
#define TR_HATSMODE_KEYS "Joystik: Knap"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/de.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,16 @@
#define TR_HATSOPT "Nur Trimmung","Nur Tasten","Umschaltbar","Global"
#define TR_HATSMODE_TRIMS "Joystick Modus: Trimmung"
#define TR_HATSMODE_KEYS "Joystick Modus: Tasten"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/en.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,16 @@
#define TR_HATSOPT "Trims only","Keys only","Switchable","Global"
#define TR_HATSMODE_TRIMS "Hats mode: Trims"
#define TR_HATSMODE_KEYS "Hats mode: Keys"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/es.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,16 @@
#define TR_HATSOPT "Trims only","Keys only","Switchable","Global"
#define TR_HATSMODE_TRIMS "Hats mode: Trims"
#define TR_HATSMODE_KEYS "Hats mode: Keys"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/fi.h
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,16 @@
#define TR_HATSOPT "Trims only","Keys only","Switchable","Global"
#define TR_HATSMODE_TRIMS "Hats mode: Trims"
#define TR_HATSMODE_KEYS "Hats mode: Keys"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/fr.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,16 @@
#define TR_HATSOPT "Trims uniquement","Touches uniquement","Commutable","Global"
#define TR_HATSMODE_TRIMS "Mode joystick: trims"
#define TR_HATSMODE_KEYS "Mode joystick: touches"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/he.h
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,16 @@
#define TR_HATSOPT "קיזוזים בלבד","ניווט בלבד","משולב","גלובאלי"
#define TR_HATSMODE_TRIMS "מצב כובעונים: קיזוזים"
#define TR_HATSMODE_KEYS "מצב כובעונים: ניווט"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/it.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,16 @@
#define TR_HATSOPT "Solo trims","Solo keys","Commutabile","Globale"
#define TR_HATSMODE_TRIMS "Modo joystick: trims"
#define TR_HATSMODE_KEYS "Modo joystick: keys"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/jp.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,16 @@
#define TR_HATSOPT "トリムのみ","キーのみ","スイッチ","すべて"
#define TR_HATSMODE_TRIMS "アナログスティック: トリム"
#define TR_HATSMODE_KEYS "アナログスティック: キー"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/nl.h
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,16 @@
#define TR_HATSOPT "Trims only","Keys only","Switchable","Global"
#define TR_HATSMODE_TRIMS "Hats mode: Trims"
#define TR_HATSMODE_KEYS "Hats mode: Keys"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/pl.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,16 @@
#define TR_HATSOPT "Tylko trymy","Tylko przyciski","Przełączane","Globalne"
#define TR_HATSMODE_TRIMS "Tryb grzybków: trymy"
#define TR_HATSMODE_KEYS "Tryb grzybków: przyciski"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/pt.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,16 @@
#define TR_HATSOPT "Trims only","Keys only","Switchable","Global"
#define TR_HATSMODE_TRIMS "Hats mode: Trims"
#define TR_HATSMODE_KEYS "Hats mode: Keys"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/ru.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,16 @@
#define TR_HATSOPT "Тримы","Кнопки","Тумбл","Глоб"
#define TR_HATSMODE_TRIMS "Hats mode: Тримы"
#define TR_HATSMODE_KEYS "Hats mode: Кнопки"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/se.h
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,16 @@
#define TR_HATSOPT "Endast trimm","Endast knapp","Ändringsbar","Global"
#define TR_HATSMODE_TRIMS "Hattläge: Trimmar"
#define TR_HATSMODE_KEYS "Hattläge: Knappar"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(IMU)
Expand Down
10 changes: 10 additions & 0 deletions radio/src/translations/tw.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,16 @@
#define TR_HATSOPT "微調","導航鍵","可切換","全局"
#define TR_HATSMODE_TRIMS "按鍵帽: 微調"
#define TR_HATSMODE_KEYS "按鍵帽: 導航鍵"
#define TR_HATSMODE_KEYS_HELP "Left side:\n"\
" Right = MDL\n"\
" Up = SYS\n"\
" Down = TELE\n"\
"\n"\
"Right side:\n"\
" Left = PAGE<\n"\
" Right = PAGE>\n"\
" Up = PREV/INC\n"\
" Down = NEXT/DEC"
#endif

#if defined(COLORLCD)
Expand Down

0 comments on commit e4dd546

Please sign in to comment.