Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CEventGraphics.hpp
Go to the documentation of this file.
1#ifndef LIBS_GRAPHICSCOMP_CEVENTGRAPHICS_HPP_
2#define LIBS_GRAPHICSCOMP_CEVENTGRAPHICS_HPP_
3
4#include "CDialogGraphics.hpp"
5
6#include <string>
7
9{
10public:
11 static const char kPrvEscape = 27;
12 static const char kPrvBackspace = 8;
13 static const char kPrvEnter = 13;
14
15 enum class ESpecialKey
16 {
18 Enter
19 };
20
21 enum class EMouseEventType
22 {
25 Motion,
27 };
28
30 {
31 None,
32 Left,
33 Right
34 };
35
36 enum class EDragType
37 {
38 NoDrag,
39 Drag,
40 Drop
41 };
42
43 static CEventGraphics *createEventFinish(IGraphics *graphicsRef);
44
45 static CEventGraphics *createEventKeyPulsed(uint16_t key, bool isShiftPressed, bool isControlPressed,
46 bool isAltPressed, bool isEnterPressed, IGraphics *graphicsRef);
47
48 static CEventGraphics *createEventLongPulsation(double x, double y, double radius, IGraphics *graphicsRef);
49
50 static CEventGraphics *createEventMouse(double x, double y, double xRel, double yRel, double radius,
52 CEventGraphics::EMouseButtonType buttonPulsed, IGraphics *graphicsRef);
53
55 IGraphics *graphicsRef);
56
57 static CEventGraphics *createEventOut(IGraphics *graphicsRef);
58
59 static CEventGraphics *createEventOutting(IGraphics *graphicsRef);
60
61 //CEventGraphics(const CEventGraphics &eventGraphics);
63
64 virtual ~CEventGraphics();
65
66 void closeDialog();
67
68 void processDrag(const CEventGraphics *previousEventOpt);
69
70 [[nodiscard]] std::string toString() const;
71
73
75
76 [[nodiscard]] CEventGraphics::EDragType getDrag() const;
77
78 void getDxDyMouse(double *dx, double *dy) const;
79
81
82 void getPosMouse(double *xPos, double *yPos, double *radius) const;
83
85
87 void setDialogFather(CDialogGraphics *dialog);
88
89 void setEventConsumed(AbstractComponentGraphics *compConsumedRef);
90
91 void setFocus(AbstractComponentGraphics *compFocus);
92
93 bool hasFocus(AbstractComponentGraphics **compFocus);
94
95 [[nodiscard]] bool isBackspace() const;
96
97 bool isConsumed(AbstractComponentGraphics **compConsumedOpt = nullptr) const;
98
99 [[nodiscard]] bool isStartedFromDialog() const;
100 [[nodiscard]] bool isDrag() const;
101
102 [[nodiscard]] bool isEnter() const;
103
104 [[nodiscard]] bool isEventDragMouse() const;
105
106 [[nodiscard]] bool isEventFinish() const;
107
108 [[nodiscard]] bool isEventKey() const;
109
110 [[nodiscard]] bool isEventMouse() const;
111
112 [[nodiscard]] bool isEventOutting() const;
113
114 static bool isKey(char key, bool shiftPulsed, bool controlPulsed, bool altPulsed);
115
116 [[nodiscard]] bool isKeyEscape() const;
117
118 bool isKeyVisible(char *key) const;
119
120 [[nodiscard]] bool isLongPulsation() const;
121
122 [[nodiscard]] bool isPulsedButtonLeft() const;
123
124 [[nodiscard]] bool isPulsedButtonLeftWithMotion() const;
125
126private:
127 enum class EPrvEventType
128 {
129 Finish,
130 Keyboard,
131 Mouse,
132 Out,
133 Outting,
134 };
135
149
151 {
152 uint16_t m_key {0};
153
154 bool m_isShiftPressed {false};
155 bool m_isControlPressed {false};
156 bool m_isAltPressed {false};
157 bool m_isEnterPressed {false};
158 };
159
161
162 static CEventGraphics::EDragType prvProcessDrag(const SPrvMouse &mouse, const SPrvMouse &previousMouse);
163
164 [[nodiscard]] std::string prvTxtDragAndDrop() const;
165
166 [[nodiscard]] std::string prvTxtTypeEventMouse() const;
167
168 [[nodiscard]] std::string prvTxtButtonPulsed() const;
169
170 [[nodiscard]] bool prvIsKey(char key) const;
171
173
175
178
179public:
182
185
187};
188
189#endif /* LIBS_GRAPHICSCOMP_CEVENTGRAPHICS_HPP_ */
Definition AbstractComponentGraphics.hpp:21
Definition CDialogGraphics.hpp:17
Definition CEventGraphics.hpp:9
static CEventGraphics * createEventKeyPulsed(uint16_t key, bool isShiftPressed, bool isControlPressed, bool isAltPressed, bool isEnterPressed, IGraphics *graphicsRef)
Definition CEventGraphics.cpp:34
CEventGraphics & operator=(const CEventGraphics &other)
Definition CEventGraphics.cpp:177
static const char kPrvEscape
Definition CEventGraphics.hpp:11
bool isConsumed(AbstractComponentGraphics **compConsumedOpt=nullptr) const
Definition CEventGraphics.cpp:564
std::string toString() const
Definition CEventGraphics.cpp:407
bool isEventFinish() const
Definition CEventGraphics.cpp:604
static CEventGraphics * createEventFinish(IGraphics *graphicsRef)
Definition CEventGraphics.cpp:23
EPrvEventType
Definition CEventGraphics.hpp:128
bool isEventDragMouse() const
Definition CEventGraphics.cpp:589
bool prvIsKey(char key) const
Definition CEventGraphics.cpp:384
CEventGraphics()
Definition CEventGraphics.cpp:9
void setFocus(AbstractComponentGraphics *compFocus)
Definition CEventGraphics.cpp:531
EMouseButtonType
Definition CEventGraphics.hpp:30
void closeDialog()
Definition CEventGraphics.cpp:211
AbstractComponentGraphics * m_compConsumedRef
Definition CEventGraphics.hpp:184
bool isPulsedButtonLeft() const
Definition CEventGraphics.cpp:704
std::string prvTxtDragAndDrop() const
Definition CEventGraphics.cpp:303
void setIsStartedFromDialog(bool isStartedFromDialog)
Definition CEventGraphics.cpp:515
SPrvMouse m_mouse
Definition CEventGraphics.hpp:180
EMouseEventType
Definition CEventGraphics.hpp:22
CDialogGraphics * m_dialog
Definition CEventGraphics.hpp:174
std::string prvTxtTypeEventMouse() const
Definition CEventGraphics.cpp:329
bool isKeyVisible(char *key) const
Definition CEventGraphics.cpp:653
bool isEventOutting() const
Definition CEventGraphics.cpp:619
CDialogGraphics * getDialogFather()
Definition CEventGraphics.cpp:475
bool m_isStartedFromDialog
Definition CEventGraphics.hpp:177
bool isLongPulsation() const
Definition CEventGraphics.cpp:675
static CEventGraphics * createEventLongPulsation(double x, double y, double radius, IGraphics *graphicsRef)
Definition CEventGraphics.cpp:51
IGraphics * m_graphicsRef
Definition CEventGraphics.hpp:186
virtual ~CEventGraphics()
static const char kPrvBackspace
Definition CEventGraphics.hpp:12
void getPosMouse(double *xPos, double *yPos, double *radius) const
Definition CEventGraphics.cpp:499
IGraphics * getGraphics()
Definition CEventGraphics.cpp:494
static bool isKey(char key, bool shiftPulsed, bool controlPulsed, bool altPulsed)
Definition CEventGraphics.cpp:624
void processDrag(const CEventGraphics *previousEventOpt)
Definition CEventGraphics.cpp:273
void getDxDyMouse(double *dx, double *dy) const
Definition CEventGraphics.cpp:485
bool isPulsedButtonLeftWithMotion() const
Definition CEventGraphics.cpp:741
AbstractComponentGraphics * m_compFocusRef
Definition CEventGraphics.hpp:183
std::string prvTxtButtonPulsed() const
Definition CEventGraphics.cpp:359
CEventGraphics::EPrvEventType m_eventType
Definition CEventGraphics.hpp:172
void setDialogFather(CDialogGraphics *dialog)
Definition CEventGraphics.cpp:520
bool isStartedFromDialog() const
Definition CEventGraphics.cpp:574
ESpecialKey
Definition CEventGraphics.hpp:16
EDragType
Definition CEventGraphics.hpp:37
bool m_isConsumed
Definition CEventGraphics.hpp:176
void setEventConsumed(AbstractComponentGraphics *compConsumedRef)
Definition CEventGraphics.cpp:525
static CEventGraphics * createEventOut(IGraphics *graphicsRef)
Definition CEventGraphics.cpp:120
CEventGraphics::EMouseButtonType getButtonPulsed() const
Definition CEventGraphics.cpp:470
static CEventGraphics::EDragType prvProcessDrag(const SPrvMouse &mouse, const SPrvMouse &previousMouse)
Definition CEventGraphics.cpp:216
bool isKeyEscape() const
Definition CEventGraphics.cpp:630
bool isBackspace() const
Definition CEventGraphics.cpp:559
CEventGraphics::EDragType getDrag() const
Definition CEventGraphics.cpp:480
bool isEventKey() const
Definition CEventGraphics.cpp:609
CEventGraphics::EMouseEventType getTypeEventMouse() const
Definition CEventGraphics.cpp:510
static CEventGraphics * createEventOutting(IGraphics *graphicsRef)
Definition CEventGraphics.cpp:134
SPrvKeyboard m_keyboard
Definition CEventGraphics.hpp:181
bool isEnter() const
Definition CEventGraphics.cpp:584
static const char kPrvEnter
Definition CEventGraphics.hpp:13
bool isEventMouse() const
Definition CEventGraphics.cpp:614
static CEventGraphics * createEventMouse(double x, double y, double xRel, double yRel, double radius, CEventGraphics::EMouseEventType mouseEventType, CEventGraphics::EMouseButtonType buttonPulsed, IGraphics *graphicsRef)
Definition CEventGraphics.cpp:71
bool isDrag() const
Definition CEventGraphics.cpp:579
bool hasFocus(AbstractComponentGraphics **compFocus)
Definition CEventGraphics.cpp:539
static CEventGraphics * createEventSpecialKey(CDialogGraphics *dialog, CEventGraphics::ESpecialKey specialKey, IGraphics *graphicsRef)
Definition CEventGraphics.cpp:93
Definition IGraphics.hpp:20
Definition CEventGraphics.hpp:151
bool m_isEnterPressed
Definition CEventGraphics.hpp:157
uint16_t m_key
Definition CEventGraphics.hpp:152
bool m_isShiftPressed
Definition CEventGraphics.hpp:154
bool m_isControlPressed
Definition CEventGraphics.hpp:155
bool m_isAltPressed
Definition CEventGraphics.hpp:156
Definition CEventGraphics.hpp:137
CEventGraphics::EDragType m_dragAndDrop
Definition CEventGraphics.hpp:141
double m_x
Definition CEventGraphics.hpp:142
CEventGraphics::EMouseButtonType m_buttonPulsed
Definition CEventGraphics.hpp:139
double m_xRel
Definition CEventGraphics.hpp:144
double m_radius
Definition CEventGraphics.hpp:147
double m_yRel
Definition CEventGraphics.hpp:145
double m_y
Definition CEventGraphics.hpp:143
bool m_isLongPulsation
Definition CEventGraphics.hpp:146
CEventGraphics::EMouseEventType m_eventType
Definition CEventGraphics.hpp:138