Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CDialogGraphics.hpp
Go to the documentation of this file.
1#ifndef LIBS_GRAPHICSCOMP_CDIALOGGRAPHICS_HPP_
2#define LIBS_GRAPHICSCOMP_CDIALOGGRAPHICS_HPP_
3
4#include "CButtonGraphics.hpp"
7#include "IWindowGraphics.hpp"
10
11#include <memory>
12#include <string>
13
15
16class CDialogGraphics final : public IWindowGraphics
17{
18public:
19 //TODO CEnumcomponentsGUI ya tiene este enumerado ver viabilidad de usarlo
20 enum class EDialogResponse
21 {
23 Accept,
24 Close,
25 Ok,
26 Cancel,
27 Yes,
28 No,
29 X
30 };
31
32 static CDialogGraphics *createDialogModal(const std::string &title, CEnumComponentsGUI::EDialogButtons buttons,
33 IWindowGraphics *dlgFatherRef,
34 AbstractComponentGraphics *compAreaContentFrameRef,
35 AbstractComponentGUI *compAreaComponentRef,
36 const std::shared_ptr<CImageGraphics> &imageX, bool hasDestroyComponent);
37
38 static CDialogGraphics *createDialogModalSystem(const std::string &title, IWindowGraphics *dlgFatherRef,
39 AbstractComponentGraphics *compAreaContentFrameRef);
40
41 static CDialogGraphics *createDialogNoModal(const std::string &title, IWindowGraphics *dlgFatherRef,
42 AbstractComponentGraphics *compAreaContentFrameRef,
43 AbstractComponentGUI *compAreaContent);
44 ~CDialogGraphics() override;
45
46 void addButton(const std::string &text, CDialogGraphics::EDialogResponse response);
47 void distribute(IGraphics *graphics, double xSizeScreen, double ySizeScreen, const CTheme *theme,
48 CLibraryImages *libraryImage) override;
49
51
52 void setPosition(double xPos, double yPos, unsigned char justify);
54
55 void setCanBeClosed(bool canBeClosed) override;
56 void setClosed() override;
57 void setClosedRecursively() override;
58
59 [[nodiscard]] bool isClosed() const override;
60 [[nodiscard]] bool isOk() const;
61 [[nodiscard]] virtual bool isYes() const;
62
63private:
65
80
81 //TODO Revisar estos conceptos
82 enum class EPrvDialogType
83 {
84 Normal,
85 NoModal,
86 System
87 };
88
89 void drawScene(IGraphics *graphics, double xSizeScreen, double ySizeScreen, const CTheme *theme) override;
90 void nextFrameAnimation() override;
91 void processEvent(CEventGraphics *evt, double xSizeScreen, double ySizeScreen) override;
92 void removeObjectDraw(IGraphics *graphics) override;
93 bool sizeChanged() override;
94 void update(IGraphics *graphics, CLibraryImages *libraryImage) override;
95
96 bool isFullSize() const override;
97 void distributeFullSizeWindow(IGraphics *graphics, double sizeXScreen, double sizeYScreen, CTheme *theme,
98 CLibraryImages *libraryImages) override;
99
100 void getSize(double *sizeXOpt, double *sizeYOpt) const override;
101 [[nodiscard]] bool getVisible() const override;
102
103 void setActive(bool isActive) override;
104 void setVisible(bool isVisible) override;
105
106 [[nodiscard]] bool hasProcessFocus() const override;
107 [[nodiscard]] bool isModal() const override;
108 void processDialogFatherEvent(CEventGraphics *evt, double xSizeScreen, double ySizeScreen) override;
109
110 void prvAddButton(const std::string &textButton, const std::shared_ptr<CImageGraphics> &imageOpt,
111 const CDialogGraphics::EDialogResponse &responseDialog,
112 AbstractComponentGUI *compAreaComponentRef, bool withBackground = true, bool withShadow = false);
113 void prvSetClosed();
114
116
117 std::string m_title;
118
121
123 double m_xPos;
124 double m_yPos;
125 uint64_t m_justify;
127 bool m_canBeClosed {true};
128 double m_xSize;
129 double m_ySize;
131
133
139 std::vector<CButtonGraphics *> *m_buttonsRegistered;
140
143};
144
145#endif /* LIBS_GRAPHICSCOMP_CDIALOGGRAPHICS_HPP_ */
Definition AbstractComponentGUI.hpp:30
Definition AbstractComponentGraphics.hpp:21
Definition CDialogGraphics.hpp:67
CDialogGraphics::EDialogResponse * m_responseDialog
Definition CDialogGraphics.hpp:75
CPrvClickButton(AbstractComponentGUI *compAreaComponentOptRef, CDialogGraphics::EDialogResponse responseClick, CDialogGraphics::EDialogResponse *responseDialog, bool *isClosed)
Definition CDialogGraphics.cpp:206
bool * m_isClosed
Definition CDialogGraphics.hpp:76
AbstractComponentGUI * m_compAreaComponentOptRef
Definition CDialogGraphics.hpp:73
CDialogGraphics::EDialogResponse m_responseClick
Definition CDialogGraphics.hpp:74
void click(CEventGraphics &evt) override
Definition CDialogGraphics.cpp:216
Definition CDialogGraphics.hpp:17
void nextFrameAnimation() override
Definition CDialogGraphics.cpp:677
void setPosition(double xPos, double yPos, unsigned char justify)
Definition CDialogGraphics.cpp:490
AbstractComponentGUI * m_compAreaComponentOptRef
Definition CDialogGraphics.hpp:134
IWindowGraphics * m_dlgFatherRef
Definition CDialogGraphics.hpp:135
bool m_isPositionDefault
Definition CDialogGraphics.hpp:122
EDialogResponse
Definition CDialogGraphics.hpp:21
void setActive(bool isActive) override
Definition CDialogGraphics.cpp:823
CEnumComponentsGUI::EDialogResponse getResponse() const
Definition CDialogGraphics.cpp:445
bool sizeChanged() override
Definition CDialogGraphics.cpp:775
static CDialogGraphics * createDialogNoModal(const std::string &title, IWindowGraphics *dlgFatherRef, AbstractComponentGraphics *compAreaContentFrameRef, AbstractComponentGUI *compAreaContent)
Definition CDialogGraphics.cpp:137
bool hasProcessFocus() const override
Definition CDialogGraphics.cpp:835
void processDialogFatherEvent(CEventGraphics *evt, double xSizeScreen, double ySizeScreen) override
Definition CDialogGraphics.cpp:885
CLayoutBoxGraphics * m_compAreaButtonsOpt
Definition CDialogGraphics.hpp:136
virtual bool isYes() const
Definition CDialogGraphics.cpp:567
double m_yPos
Definition CDialogGraphics.hpp:124
static CDialogGraphics * createDialogModal(const std::string &title, CEnumComponentsGUI::EDialogButtons buttons, IWindowGraphics *dlgFatherRef, AbstractComponentGraphics *compAreaContentFrameRef, AbstractComponentGUI *compAreaComponentRef, const std::shared_ptr< CImageGraphics > &imageX, bool hasDestroyComponent)
Definition CDialogGraphics.cpp:48
void processEvent(CEventGraphics *evt, double xSizeScreen, double ySizeScreen) override
Definition CDialogGraphics.cpp:685
bool m_isClosed
Definition CDialogGraphics.hpp:126
~CDialogGraphics() override
Definition CDialogGraphics.cpp:170
void distribute(IGraphics *graphics, double xSizeScreen, double ySizeScreen, const CTheme *theme, CLibraryImages *libraryImage) override
Definition CDialogGraphics.cpp:362
bool getVisible() const override
Definition CDialogGraphics.cpp:818
void prvSetClosed()
Definition CDialogGraphics.cpp:504
CLayoutBoxGraphics * m_compAreaDialogWithButtons
Definition CDialogGraphics.hpp:137
CDialogGraphics()
Definition CDialogGraphics.cpp:23
bool isClosed() const override
Definition CDialogGraphics.cpp:536
bool isFullSize() const override
Definition CDialogGraphics.cpp:796
CRectangleGraphics * m_rectangleShadowDialog
Definition CDialogGraphics.hpp:142
double m_xPos
Definition CDialogGraphics.hpp:123
void addButton(const std::string &text, CDialogGraphics::EDialogResponse response)
Definition CDialogGraphics.cpp:287
void setClosed() override
Definition CDialogGraphics.cpp:524
EPrvDialogType
Definition CDialogGraphics.hpp:83
void removeObjectDraw(IGraphics *graphics) override
Definition CDialogGraphics.cpp:763
bool m_isClosedWithOutPulsed
Definition CDialogGraphics.hpp:130
void setClosedRecursively() override
Definition CDialogGraphics.cpp:529
void getSize(double *sizeXOpt, double *sizeYOpt) const override
Definition CDialogGraphics.cpp:813
std::vector< CButtonGraphics * > * m_buttonsRegistered
Definition CDialogGraphics.hpp:139
void update(IGraphics *graphics, CLibraryImages *libraryImage) override
Definition CDialogGraphics.cpp:791
bool isModal() const override
Definition CDialogGraphics.cpp:860
double m_ySize
Definition CDialogGraphics.hpp:129
CDialogGraphics::EPrvDialogType m_dialogType
Definition CDialogGraphics.hpp:115
uint64_t m_justify
Definition CDialogGraphics.hpp:125
CEnumComponentsGUI::EDialogButtons m_buttons
Definition CDialogGraphics.hpp:138
CDialogGraphics::EDialogResponse m_dialogResponse
Definition CDialogGraphics.hpp:132
bool m_isActivated
Definition CDialogGraphics.hpp:120
void setClosedWhenOutPulsed()
Definition CDialogGraphics.cpp:499
void setVisible(bool isVisible) override
Definition CDialogGraphics.cpp:829
double m_xSize
Definition CDialogGraphics.hpp:128
bool m_canBeClosed
Definition CDialogGraphics.hpp:127
void setCanBeClosed(bool canBeClosed) override
Definition CDialogGraphics.cpp:519
void prvAddButton(const std::string &textButton, const std::shared_ptr< CImageGraphics > &imageOpt, const CDialogGraphics::EDialogResponse &responseDialog, AbstractComponentGUI *compAreaComponentRef, bool withBackground=true, bool withShadow=false)
Definition CDialogGraphics.cpp:261
bool m_isVisible
Definition CDialogGraphics.hpp:119
std::string m_title
Definition CDialogGraphics.hpp:117
void distributeFullSizeWindow(IGraphics *graphics, double sizeXScreen, double sizeYScreen, CTheme *theme, CLibraryImages *libraryImages) override
Definition CDialogGraphics.cpp:801
CRectangleGraphics * m_rectangleDialog
Definition CDialogGraphics.hpp:141
void drawScene(IGraphics *graphics, double xSizeScreen, double ySizeScreen, const CTheme *theme) override
Definition CDialogGraphics.cpp:631
static CDialogGraphics * createDialogModalSystem(const std::string &title, IWindowGraphics *dlgFatherRef, AbstractComponentGraphics *compAreaContentFrameRef)
Definition CDialogGraphics.cpp:105
bool isOk() const
Definition CDialogGraphics.cpp:541
EDialogButtons
Definition CEnumComponentsGUI.hpp:39
EDialogResponse
Definition CEnumComponentsGUI.hpp:53
Definition CEventGraphics.hpp:9
Definition CLayoutBoxGraphics.hpp:14
Definition CLibraryImages.hpp:11
Definition CRectangleGraphics.hpp:10
Definition CTheme.hpp:10
Definition IGraphics.hpp:20
Definition IListenerClickGraphics.hpp:7
Definition IWindowGraphics.hpp:12