scrollbar optimization

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2025-06-15 14:42:35 +02:00
parent ea0208083f
commit d9a0dfb8bd
4 changed files with 46 additions and 29 deletions

View File

@@ -19,10 +19,9 @@ LightSettingsMenu::LightSettingsMenu(menu_options_t *options) : Menu(options), m
}
// Add section counter selection (allows choosing number of sections)
addSelection(LightSettingsMenuItem::SECTION_COUNTER, "Sektionen", values, 0);
addSelection(LightSettingsMenuItem::SECTION_COUNTER, "Sektionen", values, 7);
// Add first section configuration item
addSelection(1, "Sektion 1", values, 0);
setItemSize(std::stoull(getItem(0).getValue()));
}
void LightSettingsMenu::onButtonPressed(const MenuItem &menuItem, const ButtonType button)

View File

@@ -4,31 +4,41 @@
#include "ui/LightMenu.h"
#include "ui/SettingsMenu.h"
namespace MainMenuItem
{
constexpr uint8_t LIGHT = 0;
constexpr uint8_t EXTERNAL_DEVICES = 1;
constexpr uint8_t SETTINGS = 2;
}
MainMenu::MainMenu(menu_options_t *options) : Menu(options), m_options(options)
{
addText(1, "Lichtsteuerung");
addText(2, "externe Geraete");
addText(3, "Einstellungen");
addText(MainMenuItem::LIGHT, "Lichtsteuerung");
addText(MainMenuItem::EXTERNAL_DEVICES, "externe Geraete");
addText(MainMenuItem::SETTINGS, "Einstellungen");
}
void MainMenu::onButtonPressed(const MenuItem &menuItem, const ButtonType button)
{
std::shared_ptr<Widget> widget;
switch (menuItem.getId())
if (button == ButtonType::SELECT)
{
case 1:
widget = std::make_shared<LightMenu>(m_options);
break;
std::shared_ptr<Widget> widget;
switch (menuItem.getId())
{
case MainMenuItem::LIGHT:
widget = std::make_shared<LightMenu>(m_options);
break;
case 3:
widget = std::make_shared<SettingsMenu>(m_options);
break;
default:
break;
}
case MainMenuItem::SETTINGS:
widget = std::make_shared<SettingsMenu>(m_options);
break;
default:
break;
}
if (m_options && m_options->pushScreen)
{
m_options->pushScreen(widget);
if (m_options && m_options->pushScreen)
{
m_options->pushScreen(widget);
}
}
}