Files
qt6-migration-pipeline/Lts/Common/LtsTimeline/timeline_header_view_mouse_handler.h
T

50 lines
1.0 KiB
C++
Executable File

#pragma once
#include <LtsTimeline/ltstimeline_export.h>
#include <QPoint>
class QMouseEvent;
class QWheelEvent;
namespace LtsTimeline
{
class TimelineHeaderView;
class LTSTIMELINE_EXPORT TimelineHeaderViewMouseHandler
{
public:
explicit TimelineHeaderViewMouseHandler(TimelineHeaderView *header);
void mouseMoveEvent(QMouseEvent *e);
void mousePressEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
void wheelEvent(QWheelEvent *e);
bool isBusy() const { return m_isIndicatorSelected || m_isResizingSection; }
bool isIndicatorSelected() const { return m_isIndicatorSelected; }
private:
bool isMouseWithinRangeX(int x) const;
bool isMouseWithinRangeY(int y) const;
bool isMouseOverIndicator(const QPoint &pos) const;
private:
TimelineHeaderView *m_header{nullptr};
QPoint m_lastPos;
bool m_isLeftButtonPressed{false};
bool m_isRightButtonPressed{false};
bool m_hasMouseMovedLeft{false};
bool m_hasMouseMovedRight{false};
bool m_isIndicatorSelected{false};
bool m_isResizingSection{false};
};
}