#pragma once

#include "Widget.hpp"

#include <string>
#include <vector>

class ButtonMatrixWidget : public Widget {
public:
    explicit ButtonMatrixWidget(const WidgetConfig& config);
    ~ButtonMatrixWidget() override;

    lv_obj_t* create(lv_obj_t* parent) override;
    void applyStyle() override;

private:
    static void valueChangedCallback(lv_event_t* e);
    void rebuildMapStorage();

    std::vector<std::string> mapStorage_;
    std::vector<const char*> mapPointers_;
};
