#ifndef TRASHBUTTONDELEGATEEDITOR_H
#define TRASHBUTTONDELEGATEEDITOR_H

#include <QWidget>
#include <QStyleOptionViewItem>
#include <QModelIndex>
#include <QFont>
#include "editorsettingsoptions.h"

class QTreeView;
class QListView;

// TrashButtonDelegateEditor ������
class TrashButtonDelegateEditor : public QWidget
{
    Q_OBJECT
public:
    // ���캯��
    explicit TrashButtonDelegateEditor(QTreeView *view, const QStyleOptionViewItem &option,
                                       const QModelIndex &index, QListView *listView,
                                       QWidget *parent = nullptr);
    // �������⺯��
    void setTheme(Theme::Value theme);

private:
    QStyleOptionViewItem m_option; // 存储视图项的样式选项
    QModelIndex m_index; // 存储模型索引
    QString m_displayFont; // 显示字体
    QFont m_titleFont; // 标题字体
    QFont m_numberOfNotesFont; // 备注字体
    QColor m_titleColor; // 标题颜色
    QColor m_titleSelectedColor; // 标题选中颜色
    QColor m_activeColor; // 激活状态颜色
    QColor m_hoverColor; // 悬停状态颜色
    QColor m_folderIconColor; // 文件夹图标颜色
    QColor m_numberOfNotesColor; // 备注颜色
    QColor m_numberOfNotesSelectedColor; // 备注选中颜色
    QTreeView *m_view; // 视图指针
    QListView *m_listView; // 列表视图指针
    Theme::Value m_theme; // 主题值
    // QWidget interface
    // QWidget �ӿ�
protected:
    // �����¼���������
    virtual void paintEvent(QPaintEvent *event) override; // 绘制事件
};

#endif // TRASHBUTTONDELEGATEEDITOR_H