Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CButtonGraphics.hpp
Go to the documentation of this file.
1#ifndef LIBS_GRAPHICSCOMP_CBUTTONGRAPHICS_HPP_
2#define LIBS_GRAPHICSCOMP_CBUTTONGRAPHICS_HPP_
3
9#include "ui/gui/enums.hpp"
12
13#include <optional>
14#include <string>
15
17
19{
20public:
21 CButtonGraphics() = delete;
22 CButtonGraphics(const std::string &txtButtonOpt, const std::shared_ptr<CImageGraphics> &imageOpt,
24 AbstractClickComponentGUI *buttonRef);
25 CButtonGraphics(const std::string &txtButtonOpt, const std::shared_ptr<CImageGraphics> &imageOpt,
26 CEnumComponentsGUI::EImagePosition imagePosition, bool withBackground, bool withShadow,
27 bool enableFlashClick = true);
28 CButtonGraphics(const CButtonGraphics &buttonGraphics) = delete;
29 CButtonGraphics(CButtonGraphics &&buttonGraphics) = delete;
30 ~CButtonGraphics() override;
31
32 CButtonGraphics &operator=(const CButtonGraphics &buttonGraphics) = delete;
33 CButtonGraphics &operator=(CButtonGraphics &&buttonGraphics) = delete;
34 bool operator==(const CButtonGraphics &b) const;
35
36 void addListener(IListenerClickGraphics **listener);
37 void update(IGraphics *graphics, CLibraryImages *libraryImage) override;
38 void updateButton(const std::string &txtButton, const std::shared_ptr<CImageGraphics> &imageOpt,
39 IGraphics *graphics);
40 bool sizeChanged() override;
41
42 [[nodiscard]] std::string getTxtButton() const;
43
44 void setColorARGB(std::optional<iv::types::color> colorARGB);
45 void setBlinking(bool isBlinking);
46 void setBlinkingColorARGB(std::optional<iv::types::color> colorARGB);
49 void setColorTextARGB(std::optional<iv::types::color> colorARGB);
50 void setShadowColorARGB(std::optional<iv::types::color> colorARGB);
51
52private:
53 //TODO: revisar refactorizacion de los métodos privados para añadir prefijo prv
54 void calculatePosGlobal(double xFather, double yFather) override;
55 void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp,
56 double *sizeYComp) override;
57 void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override;
58 void drawComponent(IGraphics *graphics, const CTheme *theme) override;
59 void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override;
60 void nextFrameChildren() override;
61 void removeObjectDraw(IGraphics *graphics) override;
62
63 std::string m_textButtonOpt;
64 std::weak_ptr<CImageGraphics> m_imageOpt;
67
70
71 std::vector<IListenerClickGraphics *> m_listeners;
72
75 std::optional<iv::types::color> m_shadowColor;
76
77 std::unique_ptr<CRectangleGraphics> m_rectangleButton;
78 std::unique_ptr<CRectangleGraphics> m_rectangleShadow;
79
81 std::optional<iv::types::color> m_textColor;
82
83 struct Constants
84 {
85 static constexpr double disabledDarkenFactor {0.5};
86 static constexpr iv::types::color inactiveScrimColor {0xBB121221};
87 };
89};
90
91#endif /* LIBS_GRAPHICSCOMP_CBUTTONGRAPHICS_HPP_ */
Definition AbstractClickComponentGUI.hpp:10
Definition AbstractComponentGraphics.hpp:21
Definition CButtonGraphics.hpp:19
void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp, double *sizeYComp) override
Definition CButtonGraphics.cpp:218
void updateButton(const std::string &txtButton, const std::shared_ptr< CImageGraphics > &imageOpt, IGraphics *graphics)
Definition CButtonGraphics.cpp:107
std::string getTxtButton() const
Definition CButtonGraphics.cpp:133
void calculatePosGlobal(double xFather, double yFather) override
Definition CButtonGraphics.cpp:214
CButtonGraphics(const CButtonGraphics &buttonGraphics)=delete
void setBlinkingColorARGB(std::optional< iv::types::color > colorARGB)
Definition CButtonGraphics.cpp:159
CButtonGraphics & operator=(CButtonGraphics &&buttonGraphics)=delete
void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override
Definition CButtonGraphics.cpp:293
void setBlinking(bool isBlinking)
Definition CButtonGraphics.cpp:152
void nextFrameChildren() override
Definition CButtonGraphics.cpp:544
bool _withShadow
Definition CButtonGraphics.hpp:74
void removeObjectDraw(IGraphics *graphics) override
Definition CButtonGraphics.cpp:548
bool _withBackground
Definition CButtonGraphics.hpp:73
~CButtonGraphics() override
Definition CButtonGraphics.cpp:77
CButtonGraphics & operator=(const CButtonGraphics &buttonGraphics)=delete
void setBlinkingType(iv::gui::eButtonBlinkType blinkType)
Definition CButtonGraphics.cpp:173
std::weak_ptr< CImageGraphics > m_imageOpt
Definition CButtonGraphics.hpp:64
CButtonGraphics()=delete
void setShadowColorARGB(std::optional< iv::types::color > colorARGB)
Definition CButtonGraphics.cpp:209
void addListener(IListenerClickGraphics **listener)
Definition CButtonGraphics.cpp:97
std::optional< iv::types::color > m_shadowColor
Definition CButtonGraphics.hpp:75
void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override
Definition CButtonGraphics.cpp:526
bool operator==(const CButtonGraphics &b) const
Definition CButtonGraphics.cpp:88
std::unique_ptr< CRectangleGraphics > m_rectangleShadow
Definition CButtonGraphics.hpp:78
iv::core::MonotonicTimer m_timerFlashClick
Definition CButtonGraphics.hpp:80
std::string m_textButtonOpt
Definition CButtonGraphics.hpp:63
iv::gui::eButtonBlinkType m_blinkType
Definition CButtonGraphics.hpp:66
void update(IGraphics *graphics, CLibraryImages *libraryImage) override
Definition CButtonGraphics.cpp:103
void setColorForegroundARGB(iv::types::color colorARGB)
Definition CButtonGraphics.cpp:178
std::vector< IListenerClickGraphics * > m_listeners
Definition CButtonGraphics.hpp:71
void setColorARGB(std::optional< iv::types::color > colorARGB)
Definition CButtonGraphics.cpp:138
bool m_enableFlashClick
Definition CButtonGraphics.hpp:88
void setColorTextARGB(std::optional< iv::types::color > colorARGB)
Definition CButtonGraphics.cpp:193
CEnumComponentsGUI::EImagePosition m_imagePosition
Definition CButtonGraphics.hpp:65
bool m_isChangeText
Definition CButtonGraphics.hpp:68
void drawComponent(IGraphics *graphics, const CTheme *theme) override
Definition CButtonGraphics.cpp:303
AbstractClickComponentGUI * m_buttonRefOpt
Definition CButtonGraphics.hpp:69
bool sizeChanged() override
Definition CButtonGraphics.cpp:122
CButtonGraphics(CButtonGraphics &&buttonGraphics)=delete
std::unique_ptr< CRectangleGraphics > m_rectangleButton
Definition CButtonGraphics.hpp:77
std::optional< iv::types::color > m_textColor
Definition CButtonGraphics.hpp:81
EImagePosition
Definition CEnumComponentsGUI.hpp:81
Definition CEventGraphics.hpp:9
Definition CLibraryImages.hpp:11
Definition CTheme.hpp:10
Definition IGraphics.hpp:20
Definition IListenerClickGraphics.hpp:7
Definition MonotonicTimer.hpp:12
eButtonBlinkType
Definition enums.hpp:8
uint32_t color
Definition types.hpp:12
Definition CButtonGraphics.hpp:84
static constexpr double disabledDarkenFactor
Definition CButtonGraphics.hpp:85
static constexpr iv::types::color inactiveScrimColor
Definition CButtonGraphics.hpp:86