#ifndef ELACALENDARPRIVATE_H #define ELACALENDARPRIVATE_H #include #include #include #include "ElaDef.h" class ElaCalendar; class ElaBaseListView; class ElaCalendarModel; class ElaCalendarDelegate; class ElaToolButton; class ElaCalendarPrivate : public QObject { Q_OBJECT Q_D_CREATE(ElaCalendar) Q_PROPERTY_CREATE_D(int, BorderRaiuds) Q_PROPERTY_CREATE_D(QDate, SelectedDate) Q_PROPERTY_CREATE(qreal, ZoomRatio) Q_PROPERTY_CREATE(qreal, PixOpacity) public: explicit ElaCalendarPrivate(QObject *parent = nullptr); ~ElaCalendarPrivate(); Q_SLOT void onSwitchButtonClicked(); Q_SLOT void onCalendarViewClicked(const QModelIndex &index); Q_SLOT void onUpButtonClicked(); Q_SLOT void onDownButtonClicked(); private: QPixmap _oldCalendarViewPix; QPixmap _newCalendarViewPix; int _lastSelectedYear{0}; int _lastSelectedMonth{1}; qreal _borderWidth{1.5}; ElaThemeType::ThemeMode _themeMode; ElaBaseListView *_calendarView{nullptr}; ElaCalendarModel *_calendarModel{nullptr}; ElaCalendarDelegate *_calendarDelegate{nullptr}; ElaBaseListView *_calendarTitleView{nullptr}; ElaToolButton *_modeSwitchButton{nullptr}; ElaToolButton *_upButton{nullptr}; ElaToolButton *_downButton{nullptr}; bool _isSwitchAnimationFinished{true}; bool _isDrawNewPix{false}; void _scrollToDate(QDate date); void _doSwitchAnimation(bool isZoomIn); void _updateSwitchButtonText(); }; #endif // ELACALENDARPRIVATE_H