#ifndef ELAFRAMEWORK_ELAWIDGETTOOLS_DEVELOPERCOMPONENTS_ELADRAWERHEADER_H_ #define ELAFRAMEWORK_ELAWIDGETTOOLS_DEVELOPERCOMPONENTS_ELADRAWERHEADER_H_ #include "ElaDef.h" #include #include class ElaDrawerHeader : public QWidget { Q_OBJECT Q_PRIVATE_CREATE(int, BorderRadius) Q_PRIVATE_CREATE(bool, IsExpand) Q_PROPERTY_CREATE(qreal, ExpandIconRotate) public: explicit ElaDrawerHeader(QWidget *parent = nullptr); ~ElaDrawerHeader() override; void setHeaderWidget(QWidget *widget); void doExpandOrCollpaseAnimation(); Q_SIGNALS: Q_SIGNAL void drawerHeaderClicked(bool isExpand); protected: virtual bool event(QEvent *event) override; virtual void mousePressEvent(QMouseEvent *event) override; virtual void mouseReleaseEvent(QMouseEvent *event) override; virtual void mouseMoveEvent(QMouseEvent *event) override; virtual void paintEvent(QPaintEvent *event) override; private: ElaThemeType::ThemeMode _themeMode; bool _isPressed{false}; QWidget *_headerWidget{nullptr}; QVBoxLayout *_mainLayout{nullptr}; }; #endif // ELAFRAMEWORK_ELAWIDGETTOOLS_DEVELOPERCOMPONENTS_ELADRAWERHEADER_H_