#include "WidgetFactory.hpp" #include "LabelWidget.hpp" #include "ButtonWidget.hpp" #include "LedWidget.hpp" #include "IconWidget.hpp" #include "TabViewWidget.hpp" #include "TabPageWidget.hpp" #include "PowerFlowWidget.hpp" #include "PowerNodeWidget.hpp" #include "PowerLinkWidget.hpp" #include "ChartWidget.hpp" #include "ClockWidget.hpp" #include "RoomCardWidget.hpp" std::unique_ptr WidgetFactory::create(const WidgetConfig& config) { if (!config.visible) return nullptr; switch (config.type) { case WidgetType::LABEL: return std::make_unique(config); case WidgetType::BUTTON: return std::make_unique(config); case WidgetType::LED: return std::make_unique(config); case WidgetType::ICON: return std::make_unique(config); case WidgetType::TABVIEW: return std::make_unique(config); case WidgetType::TABPAGE: return std::make_unique(config); case WidgetType::POWERFLOW: return std::make_unique(config); case WidgetType::POWERNODE: return std::make_unique(config); case WidgetType::POWERLINK: return std::make_unique(config); case WidgetType::CHART: return std::make_unique(config); case WidgetType::CLOCK: return std::make_unique(config); case WidgetType::ROOMCARD: return std::make_unique(config); default: return nullptr; } }