Files
remote-ui/tools/simulators/test_sim.cpp
T
sani7 7656402ae9 test sim
Add led
2024-08-27 11:10:41 +02:00

44 lines
1.8 KiB
C++

#include "test_sim.hpp"
#include <iostream>
Test_Sim::Test_Sim() :
Simulator_base("Test_Sim"),
m_button("button", "Off", Color(Color::White), Color(Color::Red), [this](std::string id) { button_clicked(id); }),
m_combobox("combobox", "Combobox", Color(Color::White), Color(Color::Black), {"Option 1", "Option 2", "Option 3"}, 0, [](std::string id, std::string selected) { spdlog::info("Combobox {} selected {}", id, selected); }),
m_label("label", "Label", Color(Color::White), Color(Color::Black)),
m_checkbox("checkbox", "Checkbox", Color(Color::White), Color(Color::Black), {"Option 1", "Option 2", "Option 3"}, [](std::string id, std::vector<std::string> selected) { spdlog::info("Checkbox {} selected {}", id, (selected.size() > 0 ? selected[0] : "")); }),
m_slider("slider", "Slider", Color(Color::White), Color(Color::Black), 0, 100, 50, [](std::string id, double value) { spdlog::info("Slider {} changed to {}", id, value); }),
m_led("led", "Led", Color(Color::White), Color(Color::Black), Color(Color::Red))
{
this->add_UI_item(&this->m_button);
this->add_UI_item(&this->m_combobox);
this->add_UI_item(&this->m_label);
this->add_UI_item(&this->m_checkbox);
this->add_UI_item(&this->m_slider);
this->add_UI_item(&this->m_led);
}
void Test_Sim::timer()
{
// Timer function
}
void Test_Sim::run_at_startup()
{
// Run at startup
spdlog::info("Test_Sim started");
}
void Test_Sim::button_clicked(std::string id)
{
if (id == "button")
{
bool state = this->m_button.bg_color() == Color(Color::Red) ? true : false;
this->m_button.set_bg_color(state ? Color(Color::Green) : Color(Color::Red));
this->m_button.set_text(state ? "On" : "Off");
this->m_led.set_led_color(state ? Color(Color::Green) : Color(Color::Red));
return;
}
}