#ifndef MATERIALBOX_H
#define MATERIALBOX_H

#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QMouseEvent>
#include <vector>
#include <QString>
#include <QDebug>
#include "MaterialBoxGraphicsView.h"
#include <QFrame>
#include <dt.h>
#include "CViewInterface.h"
// 枚举定义:料盒的状态
enum BoxStatus {
    Idle,       // 空闲
    Occupied,   // 已占用
};

// 料盒
class MaterialBox : public QWidget 
{
public:
    MaterialBox(int flag, QWidget *parent = nullptr);

    void paintInitFrom(QWidget *parent);

    QPixmap getGlobalPixmap() const;

    void initFrom(QWidget *parent);

    void UpdataVal(std::vector<ns_module::MATERIAL_BOX_STRUCT>& veMaterial);

    void UpdataGenerateTestData();

private slots:
    void handleLayerRightClicked(int layer);

protected:
    void paintEvent(QPaintEvent *event) override;

private:
    // 所有料盒的数据
    ns_module::MATERIAL_BOX_STRUCT  m_boxes; 

    QPixmap                         globalPixmap;

public:
    MaterialBoxGraphicsView*        m_pView = nullptr;

    QGraphicsScene*                 m_pScene = nullptr;
};

#endif // MATERIALBOX_H