Files
ts-qt/creeper-qt/widget/cards/elevated-card.hh
2025-11-25 15:59:47 +08:00

40 lines
1.2 KiB
C++

#pragma once
#include "basic-card.hh"
namespace creeper {
namespace elevated_card::internal {
class ElevatedCard : public BasicCard {
public:
explicit ElevatedCard() {
using namespace card::internal;
shadow_effect.setBlurRadius(kElevatedShadowBlurRadius);
shadow_effect.setOffset(kElevatedShadowOffsetX, kElevatedShadowOffsetY);
setGraphicsEffect(&shadow_effect);
}
void set_color_scheme(const ColorScheme& scheme) {
using namespace card::internal;
auto shadow_color = scheme.shadow;
shadow_color.setAlphaF(kElevatedShadowOpacity);
shadow_effect.setColor(shadow_color);
Card::set_color_scheme(scheme);
}
void load_theme_manager(ThemeManager& manager) {
manager.append_handler(this,
[this](const ThemeManager& manager) { set_color_scheme(manager.color_scheme()); });
}
private:
QGraphicsDropShadowEffect shadow_effect {};
};
}
namespace elevated_card::pro {
using namespace card::pro;
}
using ElevatedCard = Declarative<elevated_card::internal::ElevatedCard, BasicCard::Checker>;
}