Wavelength
Privacy-focused, cross-platform, and open-source communication application
Loading...
Searching...
No Matches
cyber_button.h
Go to the documentation of this file.
1#ifndef CYBER_BUTTON_H
2#define CYBER_BUTTON_H
3
4#include <QPushButton>
5
14class CyberButton final : public QPushButton {
15 Q_OBJECT
17 Q_PROPERTY(double glowIntensity READ GetGlowIntensity WRITE SetGlowIntensity)
18
19public:
28 explicit CyberButton(const QString &text, QWidget *parent = nullptr, bool isPrimary = true);
29
34 double GetGlowIntensity() const { return glow_intensity_; }
35
41 void SetGlowIntensity(double intensity);
42
43protected:
50 void paintEvent(QPaintEvent *event) override;
51
56 void enterEvent(QEvent *event) override;
57
62 void leaveEvent(QEvent *event) override;
63
68 void mousePressEvent(QMouseEvent *event) override;
69
74 void mouseReleaseEvent(QMouseEvent *event) override;
75
76private:
81};
82
83#endif //CYBER_BUTTON_H
void enterEvent(QEvent *event) override
Overridden enter event handler. Animates the glow intensity to a higher value.
Definition cyber_button.cpp:99
double glow_intensity_
Current intensity of the glow effect. Modified by animations and mouse events.
Definition cyber_button.h:78
void leaveEvent(QEvent *event) override
Overridden leave event handler. Animates the glow intensity back to its default value.
Definition cyber_button.cpp:108
double GetGlowIntensity() const
Gets the current intensity of the glow effect.
Definition cyber_button.h:34
void mouseReleaseEvent(QMouseEvent *event) override
Overridden mouse release event handler. Sets the glow intensity back to the hover level and triggers ...
Definition cyber_button.cpp:123
double glowIntensity
Property controlling the intensity of the button's glow effect (0.0 to 1.0+). Animatable.
Definition cyber_button.h:17
void paintEvent(QPaintEvent *event) override
Overridden paint event handler. Draws the custom cyberpunk button appearance. Renders the clipped bac...
Definition cyber_button.cpp:19
void mousePressEvent(QMouseEvent *event) override
Overridden mouse press event handler. Sets the glow intensity to maximum and triggers a repaint.
Definition cyber_button.cpp:117
bool is_primary_
Flag determining the color scheme (true for primary blue/cyan, false for secondary pink/magenta).
Definition cyber_button.h:80
CyberButton(const QString &text, QWidget *parent=nullptr, bool isPrimary=true)
Constructs a CyberButton. Initializes the button style (transparent background, no border,...
Definition cyber_button.cpp:7
void SetGlowIntensity(double intensity)
Sets the intensity of the glow effect. Triggers a repaint of the button.
Definition cyber_button.cpp:14