#ifndef STICKYTABLEVIEW_H
#define STICKYTABLEVIEW_H

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

class StickyTableView : public QTableView
{
    Q_OBJECT
public:
    explicit StickyTableView(QWidget *parent = nullptr);
    
    // Установить количество липких столбцов (по умолчанию 1 - только обозначение)
    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;

private:
    void updateStickyColumnGeometry();
    void paintStickyColumns(QPainter *painter);
    
    int m_stickyColumns;
    int m_stickyColumnWidth;
    bool m_isScrolling;
};

#endif // STICKYTABLEVIEW_H 