#ifndef COCKATRICE_PALETTE_GRID_WIDGET_H #define COCKATRICE_PALETTE_GRID_WIDGET_H #include "../theme_config.h" #include "color_button.h" #include #include #include #include class QLabel; class QScrollArea; // Scrollable grid of ColorButtons — one per (ColorGroup × ColorRole) cell. // Owns the load/read round-trip for PaletteConfig but has no file I/O itself. class PaletteGridWidget : public QWidget { Q_OBJECT public: explicit PaletteGridWidget(QWidget *parent = nullptr); void loadPalette(const PaletteConfig &cfg); PaletteConfig currentPaletteConfig() const; signals: void paletteChanged(); private: void buildGrid(QWidget *host); void changeEvent(QEvent *e); void refreshChromePalettes(); QMap> colorButtons; QMap appColorButtons; QScrollArea *scroll; QWidget *gridHost; QVBoxLayout *layout; QVector headerLabels; QVector rowShadeWidgets; }; #endif // COCKATRICE_PALETTE_GRID_WIDGET_H