mirror of
https://github.com/Sani7/remote-ui.git
synced 2026-10-27 06:01:14 +01:00
66 lines
2.6 KiB
C++
66 lines
2.6 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, [this](std::string id, double value) { slider_changed(id, value); }),
|
|
m_dial("dial", "Dial", Color(Color::White), Color(Color::Black), 0, 100, 50),
|
|
m_thermo("thermo", "Thermo", Color(Color::White), Color(Color::Black), 0, 100, 50),
|
|
m_led("led", "Led", Color(Color::White), Color(Color::Black), Color(Color::Red))
|
|
{
|
|
this->m_thermo.set_start_color(Color(Color::Red));
|
|
this->m_thermo.set_end_color(Color(Color::Red));
|
|
this->m_thermo.add_color_stop(0.10, Color(Color::Yellow));
|
|
this->m_thermo.add_color_stop(0.50, Color(Color::Green));
|
|
this->m_thermo.add_color_stop(0.60, Color(Color::Yellow));
|
|
this->m_thermo.add_color_stop(0.90, 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_dial);
|
|
this->add_UI_item(&this->m_thermo);
|
|
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;
|
|
}
|
|
}
|
|
|
|
void Test_Sim::slider_changed(std::string id, double value)
|
|
{
|
|
spdlog::info("Slider {} changed to {}", id, value);
|
|
if (id == "slider")
|
|
{
|
|
this->m_label.set_text(std::to_string(value));
|
|
this->m_dial.set_value(value);
|
|
this->m_thermo.set_value(value);
|
|
return;
|
|
}
|
|
} |