#ifndef NAVPROGRESS_H
#define NAVPROGRESS_H


#include <QWidget>
#include <QPainter>
#include <QPen>
#include <QFont>
#include <QRect>
#include <QString>
#include <QVector>
#include <QVBoxLayout>
#include <QPushButton>
#include <QApplication>
#include <QDebug>
#include <QTimer>


// 定义导航样式枚举
enum NavStyle {
    NavStyle_JD,
};

class NavProgress : public QWidget {
    Q_OBJECT
public:
    NavProgress(QWidget *parent = nullptr);

    // 设置导航样式
    void setNavStyle(NavStyle style);

    // 设置最大步骤数
    void setMaxStep(int step);

    // 设置顶部信息
    void setTopInfo(const QVector<QString>& info);

    // 设置第一个圆为绿色
    void setFirstCircleGreen(bool green);
    // 开始或停止第一个空心圆闪烁
    void setFirstCircleBlinking(bool blinking);

    // 获取每个圆的颜色
    QVector<QColor> getCircleColors();

    // 设置状态
    void setState(int newState);

protected:
    void paintEvent(QPaintEvent *) override;
    void drawBg_JD(QPainter *painter);
    void drawText_JD(QPainter *painter);
    // 其他样式的绘制函数，这里简单占位
    // void drawCurrentBg_JD(QPainter *painter);
    // void drawCurrentText_JD(QPainter *painter);

private slots:
    void toggleBlinkColors();

private:
    NavStyle navStyle;
    int maxStep;
    int state;
    QColor background;
    QColor foreground;
    QVector<QString> topInfo;
    bool firstCircleGreen;
    bool firstCircleBlinking;
    bool secondCircleBlinking;
    bool secondCircleGreen;
    bool thridCircleBlinking;
    bool thridCircleGreen;
    QColor blinkColor;
    QColor secondBlinkColor;
    QTimer *blinkTimer;
};

#endif // NAVPROGRESS_H
