#include "DieItem.h"

DieItem::DieItem(int row, int col, PICK_DIE_STATUS status, qreal size, QGraphicsItem* parent)
    : QGraphicsRectItem(parent), row(row), col(col), status(status) {
    setRect(0, 0, size, size); // 设置单元格大小
    setBrush(getColorByStatus(status));

    // 设置边框（Pen）
    setPen(QPen(QColor(0, 0, 0), 0.5)); // 黑色边框，宽度为0.5
}

void DieItem::setSelected(bool selected) {
    if (selected) {
        setPen(QPen(Qt::green, 1));  // 选中时边框变为绿色
    } else {
        setPen(QPen(Qt::black, 0.5));  // 未选中时恢复为黑色边框
    }
    qDebug() << "DieItem clicked: Row:" << row << "Col:" << col;
}

// void DieItem::mousePressEvent(QGraphicsSceneMouseEvent *event) {
//     if (event->button() == Qt::LeftButton) {
//         // isSelected = !isSelected;  // 切换选中状态
//         // setSelected(isSelected);  // 更新边框颜色
//         // 获取当前图形项的包围矩形
//         QRectF itemRect = boundingRect();
//         QPointF center = itemRect.center();  // 矩形的中心点

//         // 计算新的矩形尺寸（长宽的 95%）
//         qreal newWidth = itemRect.width() * 0.95;
//         qreal newHeight = itemRect.height() * 0.95;

//         // 计算新的矩形的左上角位置，使其保持原中心位置
//         qreal newX = center.x() - newWidth / 2;
//         qreal newY = center.y() - newHeight / 2;

//         // 创建新的矩形，作为响应区域
//         QRectF validArea(newX, newY, newWidth, newHeight);

//         // 获取鼠标点击位置
//         QPointF clickPos = event->pos();

//         // 判断点击位置是否在新的矩形区域内
//         if (validArea.contains(clickPos)) {
//             // 如果点击在有效区域内，则切换选中状态
//             isSelected = !isSelected;  // 切换选中状态
//             setSelected(isSelected);   // 更新边框颜色
//         }
//     }
//     QGraphicsRectItem::mousePressEvent(event);  // 调用基类的事件处理
// }

QColor DieItem::getColorByStatus(PICK_DIE_STATUS status) {
    switch (status) {
    case DIE_EXIST: return QColor(0, 102, 255); // 蓝色
    case NO_EXIST: return QColor(200, 200, 200); // 浅灰
    case PICK_ING: return QColor(255, 255, 0); // 黄色
    case SKIP_DIE: return QColor(128, 128, 128); // 深灰
    case EDGE_DIE: return QColor(255, 165, 0); // 橙色
    default: return QColor(0, 0, 0);
    }
}

int DieItem::getRow() const {
    return row;
}

int DieItem::getCol() const {
    return col;
}

// void DieItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) {
//     // 创建右键菜单
//     QMenu menu;
//     QAction *action1 = menu.addAction("菜单项 1");
//     QAction *action2 = menu.addAction("菜单项 2");

//     // 连接菜单项的信号和槽
//     connect(action1, &QAction::triggered, this, &DieItem::handleAction1);
//     connect(action2, &QAction::triggered, this, &DieItem::handleAction2);

//     // 显示菜单
//     menu.exec(event->screenPos());
// }

// void DieItem::handleAction1() {
//     // 处理菜单项 1 的逻辑
//     qDebug() << "菜单项 1 被点击";
// }

// void DieItem::handleAction2() {
//     // 处理菜单项 2 的逻辑
//     qDebug() << "菜单项 2 被点击";
// }
