culturered_client/TouchScreen/IrregularButton.h
2024-09-07 11:34:44 +08:00

48 lines
1.3 KiB
C++

#ifndef QIRREGULARBUTTON_H
#define QIRREGULARBUTTON_H
#include <QPushButton>
#include "Config.h"
class IrregularButton : public QPushButton {
Q_OBJECT
public:
explicit IrregularButton(QWidget* parent = nullptr);
explicit IrregularButton(const QString& text, QWidget* parent = nullptr);
IrregularButton(const QIcon& icon, const QString& text, QWidget* parent = nullptr);
void SetStartEnd(const QPointF& start, const QPointF& end) { m_start = start; m_end = end; }
void SetDetailedType(DetailedType dt) { m_detailedType = dt; }
DetailedType GetDetailedType() const { return m_detailedType; }
void SetBtnName(const QString& btnName) { m_btnName = btnName; }
const QString GetBtnName() const { return m_btnName;}
void OnEmitEnter();
signals:
void Enter(const QPointF& start, const QPointF& end);
void Leave();
protected:
bool event(QEvent* e) override;
//void enterEvent(QEnterEvent* event) override;
//void leaveEvent(QEvent* event) override;
void mousePressEvent(QMouseEvent* e) override;
void mouseReleaseEvent(QMouseEvent* e) override;
QPointF GetEndPoint(const QPointF& target);
void InitParentWidgetSlot(QWidget* parent);
private:
QPointF m_start;
QPointF m_end;
DetailedType m_detailedType;
QString m_btnName;
bool m_bTouchEnd = false;
};
#endif // QIRREGULARBUTTON_H