diff --git a/radio/src/gui/128x64/model_logical_switches.cpp b/radio/src/gui/128x64/model_logical_switches.cpp index e3ed1e151..4645fe937 100644 --- a/radio/src/gui/128x64/model_logical_switches.cpp +++ b/radio/src/gui/128x64/model_logical_switches.cpp @@ -195,7 +195,7 @@ void menuModelLogicalSwitchOne(event_t event) case LS_FIELD_ANDSW: lcdDrawTextAlignedLeft(y, STR_AND_SWITCH); drawSwitch(CSWONE_2ND_COLUMN, y, cs->andsw, attr); - if (attr) CHECK_INCDEC_MODELVAR_CHECK(event, cs->andsw, -MAX_LS_ANDSW, MAX_LS_ANDSW, isSwitchAvailableInLogicalSwitches); + if (attr) CHECK_INCDEC_MODELSWITCH(event, cs->andsw, -MAX_LS_ANDSW, MAX_LS_ANDSW, isSwitchAvailableInLogicalSwitches); break; case LS_FIELD_DURATION: @@ -219,6 +219,29 @@ void menuModelLogicalSwitchOne(event_t event) } } +void onLogicalSwitchesMenu(const char *result) +{ + int8_t sub = menuVerticalPosition; + LogicalSwitchData * cs = lswAddress(sub); + + if (result == STR_EDIT) { + pushMenu(menuModelLogicalSwitchOne); + } + + if (result == STR_COPY) { + clipboard.type = CLIPBOARD_TYPE_CUSTOM_SWITCH; + clipboard.data.csw = *cs; + } + else if (result == STR_PASTE) { + *cs = clipboard.data.csw; + storageDirty(EE_MODEL); + } + else if (result == STR_CLEAR) { + memset(cs, 0, sizeof(LogicalSwitchData)); + storageDirty(EE_MODEL); + } +} + void menuModelLogicalSwitches(event_t event) { SIMPLE_MENU(STR_MENULOGICALSWITCHES, menuTabModel, MENU_MODEL_LOGICAL_SWITCHES, HEADER_LINE+MAX_LOGICAL_SWITCHES); @@ -227,19 +250,19 @@ void menuModelLogicalSwitches(event_t event) uint8_t k = 0; int8_t sub = menuVerticalPosition - HEADER_LINE; - switch (event) { -#if defined(ROTARY_ENCODER_NAVIGATION) - case EVT_ROTARY_BREAK: -#endif -#if !defined(PCBX7) - case EVT_KEY_FIRST(KEY_RIGHT): -#endif - case EVT_KEY_FIRST(KEY_ENTER): - if (sub >= 0) { - s_currIdx = sub; - pushMenu(menuModelLogicalSwitchOne); - } - break; + if (event==EVT_KEY_FIRST(KEY_ENTER)) { + killEvents(event); + LogicalSwitchData * cs = lswAddress(sub); + if (cs->func) + s_currIdx = sub; + POPUP_MENU_ADD_ITEM(STR_EDIT); + if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw) + POPUP_MENU_ADD_ITEM(STR_COPY); + if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_SWITCH) + POPUP_MENU_ADD_ITEM(STR_PASTE); + if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw) + POPUP_MENU_ADD_ITEM(STR_CLEAR); + POPUP_MENU_START(onLogicalSwitchesMenu); } for (uint8_t i=0; imin = 0; + ld->max = 0; + ld->offset = 0; + ld->ppmCenter = 0; + ld->revert = false; + ld->curve = 0; + } + else if (result == STR_COPY_STICKS_TO_OFS) { + copySticksToOffset(ch); + } + else if (result == STR_COPY_TRIMS_TO_OFS) { + copyTrimsToOffset(ch); + } +} +#endif + void menuModelLimits(event_t event) { uint8_t sub = menuVerticalPosition - HEADER_LINE; @@ -144,9 +167,19 @@ void menuModelLimits(event_t event) #endif limit_min_max_t limit = (g_model.extendedLimits ? LIMIT_EXT_MAX : 100); - + putsChn(0, y, k+1, IS_LINE_SELECTED(sub, k) ? INVERS : 0); +#if defined(CPUARM) + if (sub==k && CURSOR_ON_LINE() && event==EVT_KEY_LONG(KEY_ENTER) && !READ_ONLY()) { + killEvents(event); + POPUP_MENU_ADD_ITEM(STR_RESET); + POPUP_MENU_ADD_ITEM(STR_COPY_TRIMS_TO_OFS); + POPUP_MENU_ADD_ITEM(STR_COPY_STICKS_TO_OFS); + POPUP_MENU_START(onLimitsMenu); + } +#endif + for (uint8_t j=0; j0) ? BLINK|INVERS : INVERS) : 0); uint8_t active = (attr && (s_editMode>0 || p1valdiff)) ; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 8b3665d38..caa81235d 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -1107,8 +1107,8 @@ #define TR_PT "č." #define TR_PTS " b." #define TR_SMOOTH "Hladká" -#define TR_COPY_STICKS_TO_OFS "Kopie pák do subtrimu" -#define TR_COPY_TRIMS_TO_OFS "Kopíe trimů do subtrimu" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim","Kopie pák do subtrimu") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Kopíe trimů do subtrimu") #define TR_INCDEC "Zvěšit/Zmenšit" #define TR_GLOBALVAR "Glob. proměnná" #define TR_MIXSOURCE "Zdroje mixeru" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 78a3a000e..59efbce27 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -1107,8 +1107,8 @@ #define TR_PT "Pt" #define TR_PTS "Pts" #define TR_SMOOTH "Runden" -#define TR_COPY_STICKS_TO_OFS "Kopie Stick to Servo-Mitte" -#define TR_COPY_TRIMS_TO_OFS "Kopie Trimm to Servo-Mitte" // "Trim to Subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Kopie Stick to Servo-Mitte") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Kopie Trimm to Servo-Mitte") // "Trim to Subtrim" #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global Var" #define TR_MIXSOURCE "Mixer Quelle" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index cf34c9845..56859eba1 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -1082,8 +1082,8 @@ #define TR_PT "pt" #define TR_PTS "pts" #define TR_SMOOTH "Smooth" -#define TR_COPY_STICKS_TO_OFS "Copy sticks to subtrim" -#define TR_COPY_TRIMS_TO_OFS "Copy trims to subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy sticks to subtrim") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global var" #define TR_MIXSOURCE "Mixer source" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 3cfd629ef..a9980840e 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1055,8 +1055,8 @@ #define TR_PT "pt" #define TR_PTS "pts" #define TR_SMOOTH "Smooth" -#define TR_COPY_STICKS_TO_OFS "Copy Sticks To Offset" -#define TR_COPY_TRIMS_TO_OFS "Copy trims to subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy Sticks To Offset") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global Var" #define TR_MIXSOURCE "Mixer Source" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 9e116deaa..05e5be985 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -1055,8 +1055,8 @@ #define TR_PT "pt" #define TR_PTS "pts" #define TR_SMOOTH "Smooth" -#define TR_COPY_STICKS_TO_OFS "Copy Sticks To Offset" -#define TR_COPY_TRIMS_TO_OFS "Copy trims to subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy Sticks To Offset") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global Var" #define TR_MIXSOURCE "Mixer Source" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 8a2cf40a6..d8486f046 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1089,8 +1089,8 @@ #define TR_PT "pt" #define TR_PTS "pts" #define TR_SMOOTH "Lissage" -#define TR_COPY_STICKS_TO_OFS "Manche vers subtrim" -#define TR_COPY_TRIMS_TO_OFS "Trim vers subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Manche vers subtrim") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Trim vers subtrim") #define TR_INCDEC "Inc/décrementer" #define TR_GLOBALVAR "Var. globale" #define TR_MIXSOURCE "Source mixeur" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 7041d8afc..099b990a7 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -1090,8 +1090,8 @@ #define TR_PT "pt" #define TR_PTS "pti" #define TR_SMOOTH "Smussa" -#define TR_COPY_STICKS_TO_OFS "Copia Stick su Offset" -#define TR_COPY_TRIMS_TO_OFS "Copia Trim in Subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copia Stick su Offset") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copia Trim in Subtrim") #define TR_INCDEC "Inc/Decrementa" #define TR_GLOBALVAR "Var Globale" #define TR_MIXSOURCE "Sorgente Mixer" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 27bbcfb83..c46b46a61 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -1084,8 +1084,8 @@ #define TR_PT "Pt" #define TR_PTS "Ptn" #define TR_SMOOTH "Zacht" -#define TR_COPY_STICKS_TO_OFS "Kopieer Sticks naar Subtrim" -#define TR_COPY_TRIMS_TO_OFS "Kopieer Trim naar Subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Kopieer Sticks naar Subtrim") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Kopieer Trim naar Subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Globale Var" #define TR_MIXSOURCE "Mixer Bron" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 80b76c309..6e6fd0df8 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -1092,8 +1092,8 @@ #define TR_PT "pkt" #define TR_PTS "pkty" #define TR_SMOOTH "Gładka" -#define TR_COPY_STICKS_TO_OFS "Skopiuj Drążki Do Offsetu" -#define TR_COPY_TRIMS_TO_OFS "Skopiuj Trymery Do subtrymerów" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Skopiuj Drążki Do Offsetu") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Skopiuj Trymery Do subtrymerów") #define TR_INCDEC "Zwiększ/Zmnie" #define TR_GLOBALVAR "Zm.Global." #define TR_MIXSOURCE "Źródło Miks." diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index adb3ef36e..c233e6d7c 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -1050,8 +1050,8 @@ #define TR_PT "pt" #define TR_PTS "pts" #define TR_SMOOTH "Smooth" -#define TR_COPY_STICKS_TO_OFS "Copy Sticks To Offset" -#define TR_COPY_TRIMS_TO_OFS "Copy trims to subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy Sticks To Offset") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global Var" #define TR_MIXSOURCE "Mixer Source" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index ec44d6069..5ff6d51d0 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -1095,8 +1095,8 @@ #define TR_PT "pt" #define TR_PTS "pkt" #define TR_SMOOTH "Mjuk" -#define TR_COPY_STICKS_TO_OFS "Spara spakar som subtrim" -#define TR_COPY_TRIMS_TO_OFS "Spara trimmar som subtrim" +#define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Spara spakar som subtrim") +#define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Spara trimmar som subtrim") #define TR_INCDEC "Inkr/Dekrement" #define TR_GLOBALVAR "Globala Var" #define TR_MIXSOURCE "Mixer Källa"