Files
cbh/ElaWidgetTools/private/ElaPopularCardPrivate.h
2025-09-19 22:40:52 +08:00

46 lines
1.3 KiB
C++

#ifndef ELAPOPULARCARDPRIVATE_H
#define ELAPOPULARCARDPRIVATE_H
#include <QObject>
#include <QPixmap>
#include "ElaDef.h"
class ElaPopularCard;
class ElaPopularCardFloater;
class ElaPopularCardPrivate : public QObject
{
Q_OBJECT
Q_D_CREATE(ElaPopularCard)
Q_PROPERTY_CREATE_D(int, BorderRadius)
Q_PROPERTY_CREATE_D(QPixmap, CardPixmap)
Q_PROPERTY_CREATE_D(QString, Title)
Q_PROPERTY_CREATE_D(QString, SubTitle)
Q_PROPERTY_CREATE_D(QString, InteractiveTips)
Q_PROPERTY_CREATE_D(QString, DetailedText)
Q_PROPERTY_CREATE_D(QString, CardButtonText)
Q_PROPERTY_CREATE_D(QWidget*, CardFloatArea)
Q_PROPERTY_CREATE_D(QPixmap, CardFloatPixmap)
Q_PROPERTY_CREATE(qreal, HoverYOffset);
Q_PROPERTY_CREATE(qreal, HoverOpacity);
public:
explicit ElaPopularCardPrivate(QObject* parent = nullptr);
~ElaPopularCardPrivate();
private:
friend class ElaPopularCardFloater;
ElaThemeType::ThemeMode _themeMode;
QTimer* _floatTimer{nullptr};
ElaPopularCardFloater* _floater{nullptr};
bool _isFloating{false};
int _shadowBorderWidth{6};
int _textHSpacing{20};
int _textVSpacing{5};
QRectF _interactiveTipsBaseRect;
QRect _buttonTargetRect;
void _showFloater();
};
#endif // ELAPOPULARCARDPRIVATE_H