#ifndef STICKYTABLEVIEW_FIXED_H
#define STICKYTABLEVIEW_FIXED_H

#include <QTableView>
#include <QHeaderView>
#include <QScrollBar>
#include <QPainter>
#include <QApplication>

class StickyTableViewFixed : public QTableView
{
    Q_OBJECT
public:
    explicit StickyTableViewFixed(QWidget *parent = nullptr);
    
    // Установить количество липких столбцов
    void setStickyColumns(int count);
    
    // Получить количество липких столбцов
    int stickyColumns() const { return m_stickyColumns; }

protected:
    void paintEvent(QPaintEvent *event) override;
    void scrollContentsBy(int dx, int dy) override;
    void resizeEvent(QResizeEvent *event) override;
    QModelIndex indexAt(const QPoint &point) const override;
    QRect visualRect(const QModelIndex &index) const override;

private:
    void updateStickyColumnGeometry();
    void paintStickyColumns(QPainter *painter);
    QRect stickyColumnRect(int row, int col) const;
    
    int m_stickyColumns;
    int m_stickyColumnWidth;
};

#endif // STICKYTABLEVIEW_FIXED_H 