mirror of
https://github.com/Sani7/remote-ui.git
synced 2026-10-27 06:01:14 +01:00
UI
Add dial and thermo
This commit is contained in:
@@ -12,14 +12,16 @@ target_compile_options(UI PRIVATE $<$<CONFIG:Debug>:
|
|||||||
target_sources(UI
|
target_sources(UI
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_item.cpp
|
${CMAKE_CURRENT_LIST_DIR}/UI_item.cpp
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/UI_button.cpp
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/UI_checkbox.cpp
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/UI_combobox.cpp
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/UI_dial.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_label.cpp
|
${CMAKE_CURRENT_LIST_DIR}/UI_label.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_led.cpp
|
${CMAKE_CURRENT_LIST_DIR}/UI_led.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_button.cpp
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_slider.cpp
|
${CMAKE_CURRENT_LIST_DIR}/UI_slider.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_textbox.cpp
|
${CMAKE_CURRENT_LIST_DIR}/UI_textbox.cpp
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/UI_thermo.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_x_boxes.cpp
|
${CMAKE_CURRENT_LIST_DIR}/UI_x_boxes.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_combobox.cpp
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/UI_checkbox.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(UI
|
target_include_directories(UI
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
#include "UI_button.hpp"
|
#include "UI_button.hpp"
|
||||||
#include "UI_checkbox.hpp"
|
#include "UI_checkbox.hpp"
|
||||||
#include "UI_combobox.hpp"
|
#include "UI_combobox.hpp"
|
||||||
|
#include "UI_dial.hpp"
|
||||||
#include "UI_label.hpp"
|
#include "UI_label.hpp"
|
||||||
#include "UI_led.hpp"
|
#include "UI_led.hpp"
|
||||||
#include "UI_slider.hpp"
|
#include "UI_slider.hpp"
|
||||||
|
#include "UI_thermo.hpp"
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#include "UI_dial.hpp"
|
||||||
|
|
||||||
|
UI_dial::UI_dial(std::string id, std::string text, Color fg_color, Color bg_color, double min, double max, double value)
|
||||||
|
: UI_item(id, UI_DIAL_TYPE, text, 12, fg_color, bg_color), m_min(min), m_max(max), m_value(value)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
UI_dial::UI_dial(const json& j)
|
||||||
|
: UI_item(UI_DIAL_TYPE)
|
||||||
|
{
|
||||||
|
from_json(j);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UI_dial::set_value(double value)
|
||||||
|
{
|
||||||
|
if (value < m_min || value > m_max)
|
||||||
|
return;
|
||||||
|
if (value == m_value)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this->m_value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
double UI_dial::value() const
|
||||||
|
{
|
||||||
|
return m_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UI_dial::from_json(const json& j)
|
||||||
|
{
|
||||||
|
UI_item::from_json(j);
|
||||||
|
|
||||||
|
this->m_min = j["min"];
|
||||||
|
this->m_max = j["max"];
|
||||||
|
this->m_value = j["value"];
|
||||||
|
}
|
||||||
|
|
||||||
|
json UI_dial::to_json() const
|
||||||
|
{
|
||||||
|
json j = UI_item::to_json();
|
||||||
|
j["min"] = this->m_min;
|
||||||
|
j["max"] = this->m_max;
|
||||||
|
j["value"] = this->m_value;
|
||||||
|
return j;
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "UI_item.hpp"
|
||||||
|
|
||||||
|
#define UI_DIAL_TYPE std::string("UI_dial")
|
||||||
|
|
||||||
|
class UI_dial : public UI_item
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
UI_dial(std::string id, std::string text, Color fg_color, Color bg_color, double min, double max, double value);
|
||||||
|
UI_dial(const json& j);
|
||||||
|
|
||||||
|
void set_value(double value) override;
|
||||||
|
double value() const;
|
||||||
|
|
||||||
|
void from_json(const json& j) override;
|
||||||
|
json to_json() const override;
|
||||||
|
private:
|
||||||
|
double m_min;
|
||||||
|
double m_max;
|
||||||
|
double m_value;
|
||||||
|
};
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#include "UI_thermo.hpp"
|
||||||
|
|
||||||
|
UI_thermo::UI_thermo(std::string id, std::string text, Color fg_color, Color bg_color, double min, double max, double value)
|
||||||
|
: UI_item(id, UI_THERMO_TYPE, text, 12, fg_color, bg_color), m_min(min), m_max(max), m_value(value)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
UI_thermo::UI_thermo(const json& j)
|
||||||
|
: UI_item(UI_THERMO_TYPE)
|
||||||
|
{
|
||||||
|
from_json(j);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UI_thermo::set_value(double value)
|
||||||
|
{
|
||||||
|
if (value < m_min || value > m_max)
|
||||||
|
return;
|
||||||
|
if (value == m_value)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this->m_value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
double UI_thermo::value() const
|
||||||
|
{
|
||||||
|
return m_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UI_thermo::from_json(const json& j)
|
||||||
|
{
|
||||||
|
UI_item::from_json(j);
|
||||||
|
|
||||||
|
this->m_min = j["min"];
|
||||||
|
this->m_max = j["max"];
|
||||||
|
this->m_value = j["value"];
|
||||||
|
}
|
||||||
|
|
||||||
|
json UI_thermo::to_json() const
|
||||||
|
{
|
||||||
|
json j = UI_item::to_json();
|
||||||
|
j["min"] = this->m_min;
|
||||||
|
j["max"] = this->m_max;
|
||||||
|
j["value"] = this->m_value;
|
||||||
|
return j;
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "UI_item.hpp"
|
||||||
|
|
||||||
|
#define UI_THERMO_TYPE std::string("UI_thermo")
|
||||||
|
|
||||||
|
// TODO: Add color scale
|
||||||
|
class UI_thermo : public UI_item
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
UI_thermo(std::string id, std::string text, Color fg_color, Color bg_color, double min, double max, double value);
|
||||||
|
UI_thermo(const json& j);
|
||||||
|
|
||||||
|
void set_value(double value) override;
|
||||||
|
double value() const;
|
||||||
|
|
||||||
|
void from_json(const json& j) override;
|
||||||
|
json to_json() const override;
|
||||||
|
private:
|
||||||
|
double m_min;
|
||||||
|
double m_max;
|
||||||
|
double m_value;
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user