Fixed editName() 128x64

This commit is contained in:
Raphael Coeffic
2021-06-05 20:29:09 +02:00
committed by Raphael Coeffic
parent b429855675
commit 27252a41ac
10 changed files with 59 additions and 26 deletions
+5 -4
View File
@@ -35,13 +35,14 @@ uint8_t s_maxLines = 8;
uint8_t s_copySrcIdx;
uint8_t s_copySrcCh;
uint8_t editNameCursorPos = 0;
uint8_t editNameCursorPos = 0;
void editSingleName(coord_t x, coord_t y, const char * label, char * name, uint8_t size, event_t event, uint8_t active)
void editSingleName(coord_t x, coord_t y, const char* label, char* name,
uint8_t size, event_t event, uint8_t active,
uint8_t old_editMode)
{
lcdDrawTextAlignedLeft(y, label);
editName(x, y, name, size, event, active);
editName(x, y, name, size, event, active, 0, old_editMode);
}
uint8_t s_currIdx;
+5 -2
View File
@@ -93,13 +93,16 @@ void menuModelCurveOne(event_t event)
int8_t * points = curveAddress(s_currIdxSubMenu);
drawStringWithIndex(PSIZE(TR_MENUCURVES)*FW+FW, 0, STR_CV, s_currIdxSubMenu+1);
uint8_t old_editMode = s_editMode;
SIMPLE_SUBMENU(STR_MENUCURVES, 4 + 5+crv.points + (crv.type==CURVE_TYPE_CUSTOM ? 5+crv.points-2 : 0));
// Curve name
lcdDrawTextAlignedLeft(FH + 1, STR_NAME);
editName(INDENT_WIDTH, 2 * FH + 1, crv.name, sizeof(crv.name), event, menuVerticalPosition == 0);
editName(INDENT_WIDTH, 2 * FH + 1, crv.name, sizeof(crv.name), event,
menuVerticalPosition == 0, 0, old_editMode);
// Curve type
lcdDrawTextAlignedLeft(3 * FH + 1, NO_INDENT(STR_TYPE));
LcdFlags attr = (menuVerticalPosition == 1 ? (s_editMode > 0 ? INVERS | BLINK : INVERS) : 0);
+12 -9
View File
@@ -61,6 +61,8 @@ void menuModelCustomScriptOne(event_t event)
drawStringWithIndex(PSIZE(TR_MENUCUSTOMSCRIPTS)*FW+FW, 0, "LUA", s_currIdx+1, 0);
lcdDrawFilledRect(0, 0, LCD_W, FH, SOLID, 0);
uint8_t old_editMode = s_editMode;
SUBMENU(STR_MENUCUSTOMSCRIPTS, 3+scriptInputsOutputs[s_currIdx].inputsCount+scriptInputsOutputs[s_currIdx].outputsCount + 1 /*outputs label*/, { 0, 0, LABEL(inputs), 0/*repeated*/ });
int8_t sub = menuVerticalPosition;
@@ -88,12 +90,12 @@ void menuModelCustomScriptOne(event_t event)
}
else if (i == ITEM_MODEL_CUSTOMSCRIPT_NAME) {
lcdDrawTextAlignedLeft(y, TR_NAME);
editName(SCRIPT_ONE_2ND_COLUMN_POS, y, sd.name, sizeof(sd.name), event, attr);
}
else if (i == ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL) {
editName(SCRIPT_ONE_2ND_COLUMN_POS, y, sd.name, sizeof(sd.name), event,
(attr != 0), attr, old_editMode);
} else if (i == ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL) {
lcdDrawTextAlignedLeft(y, STR_INPUTS);
}
else if (i <= ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL+scriptInputsOutputs[s_currIdx].inputsCount) {
} else if (i <= ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL +
scriptInputsOutputs[s_currIdx].inputsCount) {
int inputIdx = i-ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL-1;
lcdDrawSizedText(INDENT_WIDTH, y, scriptInputsOutputs[s_currIdx].inputs[inputIdx].name, 10, 0);
if (scriptInputsOutputs[s_currIdx].inputs[inputIdx].type == INPUT_TYPE_VALUE) {
@@ -111,14 +113,15 @@ void menuModelCustomScriptOne(event_t event)
CHECK_INCDEC_MODELSOURCE(event, g_model.scriptsData[s_currIdx].inputs[inputIdx].source, 0, MIXSRC_LAST_TELEM);
}
}
}
else if (i == ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL+scriptInputsOutputs[s_currIdx].inputsCount+1) {
} else if (i == ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL +
scriptInputsOutputs[s_currIdx].inputsCount + 1) {
lcdDrawTextAlignedLeft(y, STR_OUTPUTS);
if (attr) {
REPEAT_LAST_CURSOR_MOVE();
}
}
else if (i <= ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL+scriptInputsOutputs[s_currIdx].inputsCount+scriptInputsOutputs[s_currIdx].outputsCount+1) {
} else if (i <= ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL +
scriptInputsOutputs[s_currIdx].inputsCount +
scriptInputsOutputs[s_currIdx].outputsCount + 1) {
int outputIdx = i-(ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL+scriptInputsOutputs[s_currIdx].inputsCount)-2;
lcdDrawSizedText(INDENT_WIDTH, y, scriptInputsOutputs[s_currIdx].outputs[outputIdx].name, 10, 0);
lcdDrawNumber(SCRIPT_ONE_2ND_COLUMN_POS, y, calcRESXto1000(scriptInputsOutputs[s_currIdx].outputs[outputIdx].value), attr|PREC1|LEFT);
+4 -1
View File
@@ -63,6 +63,8 @@ void menuModelFlightModeOne(event_t event)
FlightModeData * fm = flightModeAddress(s_currIdx);
drawFlightMode(13*FW, 0, s_currIdx+1, (getFlightMode()==s_currIdx ? BOLD : 0));
uint8_t old_editMode = s_editMode;
#if defined(GVARS) && !defined(GVARS_IN_CURVES_SCREEN)
#define VERTICAL_SHIFT (ITEM_MODEL_FLIGHT_MODE_FADE_IN-ITEM_MODEL_FLIGHT_MODE_TRIMS)
static const uint8_t mstate_tab_fm1[] = {0, 3, 0, 0, (uint8_t)-1, 1, 1, 1, 1, 1, 1};
@@ -98,7 +100,8 @@ void menuModelFlightModeOne(event_t event)
#endif
switch (i) {
case ITEM_MODEL_FLIGHT_MODE_NAME:
editSingleName(MIXES_2ND_COLUMN, y, STR_PHASENAME, fm->name, sizeof(fm->name), event, attr);
editSingleName(MIXES_2ND_COLUMN, y, STR_PHASENAME, fm->name,
sizeof(fm->name), event, attr, old_editMode);
break;
case ITEM_MODEL_FLIGHT_MODE_SWITCH:
+4 -1
View File
@@ -70,6 +70,8 @@ void menuModelGVarOne(event_t event)
drawGVarValue(32*FW, 0, s_currIdxSubMenu, getGVarValue(s_currIdxSubMenu, getFlightMode()));
lcdDrawFilledRect(0, 0, LCD_W, FH, SOLID);
uint8_t old_editMode = s_editMode;
SIMPLE_SUBMENU(STR_GVARS, GVAR_FIELD_LAST);
for (int i=0; i<NUM_BODY_LINES; i++) {
@@ -79,7 +81,8 @@ void menuModelGVarOne(event_t event)
switch (k) {
case GVAR_FIELD_NAME:
editSingleName(GVAR_2ND_COLUMN, y, STR_NAME, gvar->name, LEN_GVAR_NAME, event, attr);
editSingleName(GVAR_2ND_COLUMN, y, STR_NAME, gvar->name, LEN_GVAR_NAME,
event, attr, old_editMode);
break;
case GVAR_FIELD_UNIT:
+9 -3
View File
@@ -67,7 +67,9 @@ void menuModelExpoOne(event_t event)
#endif
ExpoData * ed = expoAddress(s_currIdx);
drawSource(PSIZE(TR_MENUINPUTS)*FW+FW, 0, MIXSRC_FIRST_INPUT+ed->chn, 0);
uint8_t old_editMode = s_editMode;
SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, ed->srcRaw >= MIXSRC_FIRST_TELEM ? (uint8_t)0 : (uint8_t)HIDDEN_ROW, 0, 0, LABEL(Curve), 1, CASE_FLIGHT_MODES(LABEL(Flight Mode)) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/});
int8_t sub = menuVerticalPosition;
@@ -85,11 +87,15 @@ void menuModelExpoOne(event_t event)
switch (i) {
case EXPO_FIELD_INPUT_NAME:
editSingleName(EXPO_ONE_2ND_COLUMN-LEN_INPUT_NAME*FW, y, STR_INPUTNAME, g_model.inputNames[ed->chn], LEN_INPUT_NAME, event, attr);
editSingleName(EXPO_ONE_2ND_COLUMN - LEN_INPUT_NAME * FW, y,
STR_INPUTNAME, g_model.inputNames[ed->chn],
LEN_INPUT_NAME, event, (attr != 0), old_editMode);
break;
case EXPO_FIELD_LINE_NAME:
editSingleName(EXPO_ONE_2ND_COLUMN-LEN_EXPOMIX_NAME*FW, y, STR_EXPONAME, ed->name, LEN_EXPOMIX_NAME, event, attr);
editSingleName(EXPO_ONE_2ND_COLUMN - LEN_EXPOMIX_NAME * FW, y,
STR_EXPONAME, ed->name, LEN_EXPOMIX_NAME, event,
(attr != 0), old_editMode);
break;
case EXPO_FIELD_SOURCE:
+5 -1
View File
@@ -103,6 +103,8 @@ void menuModelMixOne(event_t event)
#endif
MixData * md2 = mixAddress(s_currIdx) ;
putsChn(PSIZE(TR_MIXES)*FW+FW, 0, md2->destCh+1,0);
uint8_t old_editMode = s_editMode;
SUBMENU(STR_MIXES, MIX_FIELD_COUNT, {0, 0, 0, 0, 0, 1, CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0, 0 /*, ...*/});
@@ -122,7 +124,9 @@ void menuModelMixOne(event_t event)
LcdFlags attr = (sub==i ? (editMode>0 ? BLINK|INVERS : INVERS) : 0);
switch(i) {
case MIX_FIELD_NAME:
editSingleName(MIXES_2ND_COLUMN, y, STR_MIXNAME, md2->name, sizeof(md2->name), event, attr);
editSingleName(MIXES_2ND_COLUMN, y, STR_MIXNAME, md2->name,
sizeof(md2->name), event, (attr != 0),
old_editMode);
break;
case MIX_FIELD_SOURCE:
+4 -1
View File
@@ -105,6 +105,8 @@ void menuModelLimitsOne(event_t event)
lcdDrawNumber(19*FW, 0, PPM_CH_CENTER(s_currIdx)+channelOutputs[s_currIdx]/2, RIGHT);
lcdDrawText(19*FW, 0, STR_US);
uint8_t old_editMode = s_editMode;
SUBMENU_NOTITLE(ITEM_OUTPUTONE_MAXROW, { 0, 0, 0, 0, 0, 0 , 0 /*, 0...*/ });
int8_t sub = menuVerticalPosition;
@@ -118,7 +120,8 @@ void menuModelLimitsOne(event_t event)
switch (i) {
case ITEM_OUTPUTONE_CH_NAME:
editSingleName(LIMITS_ONE_2ND_COLUMN, y, STR_NAME, ld->name, sizeof(ld->name), event, attr);
editSingleName(LIMITS_ONE_2ND_COLUMN, y, STR_NAME, ld->name,
sizeof(ld->name), event, attr, old_editMode);
break;
case ITEM_OUTPUTONE_OFFSET:
+7 -3
View File
@@ -485,8 +485,11 @@ void menuModelSetup(event_t event)
switch (k) {
case ITEM_MODEL_SETUP_NAME:
editSingleName(MODEL_SETUP_2ND_COLUMN, y, STR_MODELNAME, g_model.header.name, sizeof(g_model.header.name), event, attr);
memcpy(modelHeaders[g_eeGeneral.currModel].name, g_model.header.name, sizeof(g_model.header.name));
editSingleName(MODEL_SETUP_2ND_COLUMN, y, STR_MODELNAME,
g_model.header.name, sizeof(g_model.header.name), event,
attr, old_editMode);
memcpy(modelHeaders[g_eeGeneral.currModel].name, g_model.header.name,
sizeof(g_model.header.name));
break;
case ITEM_MODEL_SETUP_TIMER1:
@@ -543,7 +546,8 @@ void menuModelSetup(event_t event)
case ITEM_MODEL_SETUP_TIMER3_NAME:
{
TimerData * timer = &g_model.timers[k>=ITEM_MODEL_SETUP_TIMER3 ? 2 : (k>=ITEM_MODEL_SETUP_TIMER2 ? 1 : 0)];
editSingleName(MODEL_SETUP_2ND_COLUMN, y, INDENT TR_NAME, timer->name, sizeof(timer->name), event, attr);
editSingleName(MODEL_SETUP_2ND_COLUMN, y, INDENT TR_NAME, timer->name,
sizeof(timer->name), event, attr, old_editMode);
break;
}
@@ -47,6 +47,8 @@ void menuModelSensor(event_t event)
{
TelemetrySensor * sensor = & g_model.telemetrySensors[s_currIdx];
uint8_t old_editMode = s_editMode;
SUBMENU(STR_MENUSENSOR, SENSOR_FIELD_MAX, {
0, // Name
0, // Type
@@ -85,7 +87,8 @@ void menuModelSensor(event_t event)
switch (k) {
case SENSOR_FIELD_NAME:
editSingleName(SENSOR_2ND_COLUMN, y, STR_NAME, sensor->label, TELEM_LABEL_LEN, event, attr);
editSingleName(SENSOR_2ND_COLUMN, y, STR_NAME, sensor->label,
TELEM_LABEL_LEN, event, attr, old_editMode);
break;
case SENSOR_FIELD_TYPE: