#ifndef WINDOW_H
#define WINDOW_H

#include <QWidget>
#include <QPushButton>
#include <QProgressBar>
#include <QSlider>
#include "cell.h"
class QSpacerItem;
class Window : public QWidget
{
    Q_OBJECT
public:
    explicit Window(QWidget *parent = nullptr);

private:
    QPushButton *m_clearButton;
    QPushButton *m_solveButton;
    QSlider *m_slider;
    std::array<Cell, 81> m_cell;
    int m_delay = 300;
    QSpacerItem *m_spacer[3];
    struct History
    {
        Cell *cell;
        std::vector<int> index;
        History(Cell *c, std::vector<int> in, int choice)
        {
            cell = c;
            for (int i = 0; i < in.size(); i++)
            {
                if (i == choice)
                    continue;
                index.push_back(in[i]);
            }
        }
    };
    inline void delay(int millisecondsWait);

signals:
    void counterReached();
private slots:
    void setValue(int s);
    void solveButtonClicked();
    void clearButtonClicked();
};

#endif // WINDOW_H