diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index 409ee399..6a66ede8 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -159,6 +159,9 @@ void SettingsActivity::render() const { // Draw header renderer.drawCenteredText(READER_FONT_ID, 10, "Settings", true, BOLD); + // Draw selection + renderer.fillRect(0, 60 + selectedSettingIndex * 30 - 2, pageWidth - 1, 30); + // Draw all settings for (int i = 0; i < settingsCount; i++) { const int settingY = 60 + i * 30; // 30 pixels between settings @@ -169,18 +172,19 @@ void SettingsActivity::render() const { } // Draw setting name - renderer.drawText(UI_FONT_ID, 20, settingY, settingsList[i].name); + renderer.drawText(UI_FONT_ID, 20, settingY, settingsList[i].name, i != selectedSettingIndex); // Draw value based on setting type + std::string valueText = ""; if (settingsList[i].type == SettingType::TOGGLE && settingsList[i].valuePtr != nullptr) { const bool value = SETTINGS.*(settingsList[i].valuePtr); - renderer.drawText(UI_FONT_ID, pageWidth - 80, settingY, value ? "ON" : "OFF"); + valueText = value ? "ON" : "OFF"; } else if (settingsList[i].type == SettingType::ENUM && settingsList[i].valuePtr != nullptr) { const uint8_t value = SETTINGS.*(settingsList[i].valuePtr); - auto valueText = settingsList[i].enumValues[value]; - const auto width = renderer.getTextWidth(UI_FONT_ID, valueText.c_str()); - renderer.drawText(UI_FONT_ID, pageWidth - 50 - width, settingY, valueText.c_str()); + valueText = settingsList[i].enumValues[value]; } + const auto width = renderer.getTextWidth(UI_FONT_ID, valueText.c_str()); + renderer.drawText(UI_FONT_ID, pageWidth - 20 - width, settingY, valueText.c_str(), i != selectedSettingIndex); } // Draw version text above button hints