From a93c543576ef68cb1650753c6cdbee006582a7b5 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 13 Jul 2021 09:11:06 +0200 Subject: [PATCH] Display proper script status and custom name --- .../src/gui/colorlcd/model_mixer_scripts.cpp | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/radio/src/gui/colorlcd/model_mixer_scripts.cpp b/radio/src/gui/colorlcd/model_mixer_scripts.cpp index a7cb72bfe..0e0fd012a 100644 --- a/radio/src/gui/colorlcd/model_mixer_scripts.cpp +++ b/radio/src/gui/colorlcd/model_mixer_scripts.cpp @@ -166,6 +166,9 @@ class ScriptEditWindow : public Page { } }; +constexpr char SCRIPT_STATUS_ERROR[] = "(error)"; +constexpr char SCRIPT_STATUS_KILLED[] = "(killed)"; + class ScriptLineButton : public Button { public: @@ -184,9 +187,31 @@ class ScriptLineButton : public Button dc->drawSolidFilledRect(0, 0, width(), height(), bgColor); if (runtimeData) { - dc->drawSizedText(FIELD_PADDING_LEFT, FIELD_PADDING_TOP, - scriptData.file, LEN_SCRIPT_FILENAME, - textColor); + coord_t x = 2*FIELD_PADDING_LEFT; + coord_t y = FIELD_PADDING_TOP; + + x = dc->drawSizedText(x, y, scriptData.name, sizeof(scriptData.name), textColor); + x += 4*FIELD_PADDING_LEFT; + + dc->drawSizedText(x, y, scriptData.file, sizeof(scriptData.file), textColor); + + x = width() - 2*FIELD_PADDING_LEFT; + y = FIELD_PADDING_TOP; + textColor |= RIGHT; + + switch (runtimeData->state) { + case SCRIPT_SYNTAX_ERROR: + dc->drawSizedText(x, y, SCRIPT_STATUS_ERROR, + sizeof(SCRIPT_STATUS_ERROR), textColor); + break; + case SCRIPT_KILLED: + dc->drawSizedText(x, y, SCRIPT_STATUS_KILLED, + sizeof(SCRIPT_STATUS_KILLED), textColor); + break; + default: + dc->drawNumber(x, y, runtimeData->instructions, textColor, 0, nullptr, "%"); + break; + } } // bounding rect