Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
AbstractComponentGraphics.hpp
Go to the documentation of this file.
1#ifndef LIBS_GRAPHICSCOMP_ABSTRACTCOMPONENTGRAPHICS_HPP_
2#define LIBS_GRAPHICSCOMP_ABSTRACTCOMPONENTGRAPHICS_HPP_
3
4#include "core/defines.hpp"
8#include "ui/gui/IWidget.hpp"
9
10#include <atomic>
11
12class CAttrColorComp;
13class CEventGraphics;
14class CLibraryImages;
15class CTheme;
16class IAnimation;
17class IGraphics;
18class IListenerTimer;
19
21{
22public:
23 //AbstractComponentGraphics() = delete;
24 AbstractComponentGraphics(bool fillHorizontal, bool fillVertical);
25 //AbstractComponentGraphics(const AbstractComponentGraphics &abstractComponentGraphics);
27
28 void addTimer(uint64_t timeoutMillis, bool destroyListener, IListenerTimer *rcpTimers);
29 void addClose(IListenerClose *rcpClose);
30 void calculatePosGlobalComponent(double xFather, double yFather);
31 void calculateSizeComponent(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage);
32 void distributeComponent(IGraphics *graphics, double xOrg, double yOrg, double sizeX, double sizeY);
33 void draw(IGraphics *graphics, const CTheme *theme);
34 void processClose();
35 void processEvent(CEventGraphics *event, double xOrg, double yOrg);
37 void processNextFrame();
38 void resetComponent(IGraphics *graphics);
39 void updateColorAttr(CAttrColorComp *attrColor);
40
41 void getPosGlobal(double *xPosGlobal, double *yPosGlobal) const;
42 void getSizeArea(double *sizeXOpt, double *sizeYOpt) const;
43 void getSizeComp(double *sizeXOpt, double *sizeYOpt) const;
44 [[nodiscard]] bool getVisible() const;
45
46 void setActivated(bool isActivated);
49 void setAnimation(IAnimation **animation);
50 void setClip(IGraphics *graphics) const;
51 void setCompact();
52 void setSizeMinimum(iv::types::width sizeXMinimum, iv::types::height sizeYMinimum);
53 void setWidthMaximum(iv::types::width sizeXMaximum);
54 void setHeightMaximum(iv::types::height sizeYMaximum);
55 void setVisible(bool isVisible);
56
57 [[nodiscard]] bool isCursorInComponent() const;
58
59 bool visibilityChanged();
60 virtual bool sizeChanged() = 0;
62 virtual void update(IGraphics *graphics, CLibraryImages *libraryImage) = 0;
63 virtual void handleEvent(CEventGraphics *event, double xOrg, double yOrg) = 0;
64
65 virtual bool hasLongClick() const;
66
67protected:
69 [[nodiscard]] const CAttrColorComp *getAttrColorConst() const;
70 [[nodiscard]] bool isActivated() const;
71 [[nodiscard]] bool isAnimating() const;
72
73private:
74 void prvDraw(IGraphics *graphics, const CTheme *theme);
75
76 virtual void calculatePosGlobal(double xFather, double yFather) = 0;
77 virtual void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage,
78 double *sizeXComp, double *sizeYComp) = 0;
79
80 virtual void nextFrameChildren() = 0;
81 virtual void removeObjectDraw(IGraphics *graphics) = 0;
82
83 virtual void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) = 0;
84 virtual void drawComponent(IGraphics *graphics, const CTheme *theme) = 0;
85
86 virtual void closing();
87 virtual void handleEventOut(CEventGraphics *event);
88
91
96
98
99 std::vector<IListenerClose *> m_rcpClose;
100
102
103 double m_dx;
104 double m_dy;
105
110
111 double m_xGlobal;
112 double m_yGlobal;
113
116
119
123 std::atomic_bool m_isVisibilityChanged {false};
124};
125
126#endif /* LIBS_GRAPHICSCOMP_ABSTRACTCOMPONENTGRAPHICS_HPP_ */
Definition AbstractComponentGraphics.hpp:21
void draw(IGraphics *graphics, const CTheme *theme)
Definition AbstractComponentGraphics.cpp:274
void setActivated(bool isActivated)
Definition AbstractComponentGraphics.cpp:467
void setAlignmentHorizontal(CEnumComponentsGUI::EAlignmentHorizontal alignment)
Definition AbstractComponentGraphics.cpp:472
double m_yGlobal
Definition AbstractComponentGraphics.hpp:112
iv::types::width m_sizeXMaximum
Definition AbstractComponentGraphics.hpp:118
void processNextFrame()
Definition AbstractComponentGraphics.cpp:360
virtual void calculatePosGlobal(double xFather, double yFather)=0
double m_sizeYArea
Definition AbstractComponentGraphics.hpp:109
double m_sizeYComp
Definition AbstractComponentGraphics.hpp:107
bool m_isCursorInside
Definition AbstractComponentGraphics.hpp:121
void addTimer(uint64_t timeoutMillis, bool destroyListener, IListenerTimer *rcpTimers)
Definition AbstractComponentGraphics.cpp:112
virtual void drawComponent(IGraphics *graphics, const CTheme *theme)=0
CTimerGraphics m_timer
Definition AbstractComponentGraphics.hpp:90
void getSizeComp(double *sizeXOpt, double *sizeYOpt) const
Definition AbstractComponentGraphics.cpp:434
void setAlignmentVertical(CEnumComponentsGUI::EAlignmentVertical alignment)
Definition AbstractComponentGraphics.cpp:477
virtual void nextFrameChildren()=0
bool getVisible() const
Definition AbstractComponentGraphics.cpp:462
double m_xGlobal
Definition AbstractComponentGraphics.hpp:111
virtual void handleEventOut(CEventGraphics *event)
Definition AbstractComponentGraphics.cpp:666
void setCompact()
Definition AbstractComponentGraphics.cpp:502
void getSizeArea(double *sizeXOpt, double *sizeYOpt) const
Definition AbstractComponentGraphics.cpp:404
double m_sizeXComp
Definition AbstractComponentGraphics.hpp:106
bool m_isActivated
Definition AbstractComponentGraphics.hpp:120
virtual bool sizeChanged()=0
virtual void handleEvent(CEventGraphics *event, double xOrg, double yOrg)=0
IAnimation * m_animation
Definition AbstractComponentGraphics.hpp:89
void setClip(IGraphics *graphics) const
Definition AbstractComponentGraphics.cpp:493
bool m_fillVertical
Definition AbstractComponentGraphics.hpp:93
double m_dy
Definition AbstractComponentGraphics.hpp:104
double m_dx
Definition AbstractComponentGraphics.hpp:103
bool visibilityOrSizeChanged()
Definition AbstractComponentGraphics.cpp:570
virtual void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp)=0
void setWidthMaximum(iv::types::width sizeXMaximum)
Definition AbstractComponentGraphics.cpp:531
bool m_isVisible
Definition AbstractComponentGraphics.hpp:122
iv::types::width m_sizeXMinimum
Definition AbstractComponentGraphics.hpp:114
std::vector< IListenerClose * > m_rcpClose
Definition AbstractComponentGraphics.hpp:99
virtual void update(IGraphics *graphics, CLibraryImages *libraryImage)=0
CAttrColorComp * getAttrColor()
Definition AbstractComponentGraphics.cpp:593
void setSizeMinimum(iv::types::width sizeXMinimum, iv::types::height sizeYMinimum)
Definition AbstractComponentGraphics.cpp:521
void setHeightMaximum(iv::types::height sizeYMaximum)
Definition AbstractComponentGraphics.cpp:540
bool m_isDistributed
Definition AbstractComponentGraphics.hpp:101
void addClose(IListenerClose *rcpClose)
Definition AbstractComponentGraphics.cpp:117
void prvDraw(IGraphics *graphics, const CTheme *theme)
Definition AbstractComponentGraphics.cpp:613
std::atomic_bool m_isVisibilityChanged
Definition AbstractComponentGraphics.hpp:123
void processClose()
Definition AbstractComponentGraphics.cpp:282
virtual void removeObjectDraw(IGraphics *graphics)=0
~AbstractComponentGraphics() override
Definition AbstractComponentGraphics.cpp:100
void calculateSizeComponent(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage)
Definition AbstractComponentGraphics.cpp:131
bool isCursorInComponent() const
Definition AbstractComponentGraphics.cpp:558
bool m_fillHorizontal
Definition AbstractComponentGraphics.hpp:92
void distributeComponent(IGraphics *graphics, double xOrg, double yOrg, double sizeX, double sizeY)
Definition AbstractComponentGraphics.cpp:149
void processEventOut(CEventGraphics *event)
Definition AbstractComponentGraphics.cpp:352
bool isActivated() const
Definition AbstractComponentGraphics.cpp:603
virtual void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp, double *sizeYComp)=0
iv::types::height m_sizeYMinimum
Definition AbstractComponentGraphics.hpp:115
void calculatePosGlobalComponent(double xFather, double yFather)
Definition AbstractComponentGraphics.cpp:122
void setAnimation(IAnimation **animation)
Definition AbstractComponentGraphics.cpp:482
double m_sizeXArea
Definition AbstractComponentGraphics.hpp:108
iv::types::height m_sizeYMaximum
Definition AbstractComponentGraphics.hpp:117
void updateColorAttr(CAttrColorComp *attrColor)
Definition AbstractComponentGraphics.cpp:388
CEnumComponentsGUI::EAlignmentVertical m_alignmentVertical
Definition AbstractComponentGraphics.hpp:95
void getPosGlobal(double *xPosGlobal, double *yPosGlobal) const
Definition AbstractComponentGraphics.cpp:394
void processEvent(CEventGraphics *event, double xOrg, double yOrg)
Definition AbstractComponentGraphics.cpp:296
void setVisible(bool isVisible)
Definition AbstractComponentGraphics.cpp:549
void resetComponent(IGraphics *graphics)
Definition AbstractComponentGraphics.cpp:378
AbstractComponentGraphics(bool fillHorizontal, bool fillVertical)
Definition AbstractComponentGraphics.cpp:40
bool visibilityChanged()
Definition AbstractComponentGraphics.cpp:563
bool isAnimating() const
Definition AbstractComponentGraphics.cpp:608
virtual void closing()
Definition AbstractComponentGraphics.cpp:662
const CAttrColorComp * getAttrColorConst() const
Definition AbstractComponentGraphics.cpp:598
CAttrColorComp * m_attrColor
Definition AbstractComponentGraphics.hpp:97
virtual bool hasLongClick() const
Definition AbstractComponentGraphics.cpp:588
CEnumComponentsGUI::EAlignmentHorizontal m_alignmentHorizontal
Definition AbstractComponentGraphics.hpp:94
Definition CAttrColorComp.hpp:10
EAlignmentHorizontal
Definition CEnumComponentsGUI.hpp:8
EAlignmentVertical
Definition CEnumComponentsGUI.hpp:16
Definition CEventGraphics.hpp:9
Definition CLibraryImages.hpp:11
Definition CTheme.hpp:10
Definition CTimerGraphics.hpp:13
Definition IAnimation.hpp:7
Definition IGraphics.hpp:20
Definition IListenerClose.hpp:5
Definition IListenerTimer.hpp:5
Definition IWidget.hpp:5
double height
Definition types.hpp:14
double width
Definition types.hpp:23