feat: 添加ElaWidgetTool库
This commit is contained in:
40
ElaWidgetTools/private/ElaPromotionViewPrivate.h
Normal file
40
ElaWidgetTools/private/ElaPromotionViewPrivate.h
Normal file
@@ -0,0 +1,40 @@
|
||||
#ifndef ELAPROMOTIONVIEWPRIVATE_H
|
||||
#define ELAPROMOTIONVIEWPRIVATE_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QPixmap>
|
||||
|
||||
#include "ElaDef.h"
|
||||
class ElaPromotionCard;
|
||||
class ElaPromotionView;
|
||||
class ElaPromotionViewPrivate : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_D_CREATE(ElaPromotionView)
|
||||
Q_PROPERTY_CREATE_D(int, CardExpandWidth)
|
||||
Q_PROPERTY_CREATE_D(int, CardCollapseWidth)
|
||||
Q_PROPERTY_CREATE_D(int, CurrentIndex)
|
||||
Q_PROPERTY_CREATE_D(bool, IsAutoScroll)
|
||||
Q_PROPERTY_CREATE_D(int, AutoScrollInterval)
|
||||
public:
|
||||
explicit ElaPromotionViewPrivate(QObject* parent = nullptr);
|
||||
~ElaPromotionViewPrivate();
|
||||
void onPromotionCardClicked(ElaPromotionCard* clickedCard);
|
||||
|
||||
private:
|
||||
ElaThemeType::ThemeMode _themeMode;
|
||||
QTimer* _autoScrollTimer{nullptr};
|
||||
int _leftPadding{40};
|
||||
int _cardSpacing{5};
|
||||
int _bottomMargin{30};
|
||||
int _indicatorSpacing{12};
|
||||
bool _isAllowSwitch{true};
|
||||
QList<ElaPromotionCard*> _promotionCardList;
|
||||
void _startCardGeometryAnimation(ElaPromotionCard* card, QRect start, QRect end);
|
||||
void _startHorizontalCardPixmapRatioAnimation(ElaPromotionCard* card, qreal start, qreal end);
|
||||
void _updatePromotionCardGeometry();
|
||||
int _getAdjacentIndex(Qt::LayoutDirection direction, int index);
|
||||
int _getRightLimitX();
|
||||
};
|
||||
|
||||
#endif // ELAPROMOTIONVIEWPRIVATE_H
|
||||
Reference in New Issue
Block a user