#pragma once #include "RoomCardWidgetBase.hpp" class RoomCardTileWidget : public RoomCardWidgetBase { public: explicit RoomCardTileWidget(const WidgetConfig& config); ~RoomCardTileWidget() override = default; lv_obj_t* create(lv_obj_t* parent) override; void applyStyle() override; void clearLvglObject() override; // Text line KNX updates void onTextLineValue(uint8_t index, float value); protected: void calculateSubButtonPosition(uint8_t index, const SubButtonConfig& cfg, int16_t& x, int16_t& y) override; private: // Tile-specific elements lv_obj_t* decorIcon_ = nullptr; // Text line elements (rows with icon + label) lv_obj_t* textLineLabels_[MAX_TEXTLINES] = {}; void createTileLayout(); void createTextLines(); void updateTextLineValue(uint8_t index, float value); };