#include "LabelWidget.hpp" #include LabelWidget::LabelWidget(const WidgetConfig& config) : Widget(config) { } lv_obj_t* LabelWidget::create(lv_obj_t* parent) { obj_ = lv_label_create(parent); lv_label_set_text(obj_, config_.text); lv_obj_set_pos(obj_, config_.x, config_.y); if (config_.width > 0 && config_.height > 0) { lv_obj_set_size(obj_, config_.width, config_.height); } return obj_; } void LabelWidget::onKnxValue(float value) { if (obj_ == nullptr) return; if (config_.textSource != TextSource::KNX_DPT_TEMP) return; char buf[32]; snprintf(buf, sizeof(buf), config_.text, value); lv_label_set_text(obj_, buf); } void LabelWidget::onKnxSwitch(bool value) { if (obj_ == nullptr) return; if (config_.textSource != TextSource::KNX_DPT_SWITCH) return; lv_label_set_text(obj_, value ? "EIN" : "AUS"); } void LabelWidget::onKnxText(const char* text) { if (obj_ == nullptr) return; if (config_.textSource != TextSource::KNX_DPT_TEXT) return; lv_label_set_text(obj_, text); }