#ifndef ELAAPPLICATIONPRIVATE_H #define ELAAPPLICATIONPRIVATE_H #include #include #include #include "ElaDef.h" class ElaApplication; class ElaApplicationPrivate : public QObject { Q_OBJECT Q_D_CREATE(ElaApplication) Q_PROPERTY_CREATE_D(ElaApplicationType::WindowDisplayMode, WindowDisplayMode) Q_PROPERTY_CREATE_D(QString, ElaMicaImagePath) public: explicit ElaApplicationPrivate(QObject* parent = nullptr); ~ElaApplicationPrivate() override; Q_SLOT void onThemeModeChanged(ElaThemeType::ThemeMode themeMode); Q_SIGNALS: Q_SIGNAL void initMicaBase(QImage img); protected: virtual bool eventFilter(QObject* watched, QEvent* event) override; private: friend class ElaMicaBaseInitObject; ElaThemeType::ThemeMode _themeMode; QList _micaWidgetList; QImage _lightBaseImage; QImage _darkBaseImage; void _initMicaBaseImage(QImage img); QRect _calculateWindowVirtualGeometry(QWidget* widget); void _updateMica(QWidget* widget, bool isProcessEvent = true); void _updateAllMicaWidget(); void _resetAllMicaWidget(); }; #endif // ELAAPPLICATIONPRIVATE_H