Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
utils.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_UI_GTK_UTILS_HPP_
2#define IV_SRC_UI_GTK_UTILS_HPP_
3
5
6#include <gtk/gtk.h>
7
9{
10
11inline iv::ui::MouseClickInfo extractMouseClickInfo(const GdkEventButton *event)
12{
13 iv::ui::MouseClickInfo mouseClickInfo {};
14
15 switch (event->button)
16 {
17 case 1:
18 mouseClickInfo.isLeftClick = true;
19 break;
20
21 case 2:
22 mouseClickInfo.isMiddleClick = true;
23 break;
24
25 case 3:
26 mouseClickInfo.isRightClick = true;
27 break;
28 }
29
30 switch (event->type)
31 {
32 case GDK_DOUBLE_BUTTON_PRESS:
33 mouseClickInfo.isDoubleClick = true;
34 break;
35
36 case GDK_TRIPLE_BUTTON_PRESS:
37 mouseClickInfo.isTripleClick = true;
38 break;
39
40 default:
41 break;
42 }
43
44 return mouseClickInfo;
45}
46
48{
49 iv::ui::StateKeysPressed stateKeysPressed {};
50
51 if ((state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK)
52 {
53 stateKeysPressed.isShift = true;
54 }
55
56 if ((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK)
57 {
58 stateKeysPressed.isControl = true;
59 }
60
61 return stateKeysPressed;
62}
63
64inline iv::ui::KeysPressed extractKeysPressed(const GdkEventKey *event)
65{
66 iv::ui::KeysPressed keysPressed {};
67
68 if ((event->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK)
69 {
70 keysPressed.isShift = true;
71 }
72
73 if ((event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK)
74 {
75 keysPressed.isControl = true;
76 }
77
78 switch (event->keyval)
79 {
80 case GDK_KEY_Escape:
81 keysPressed.isKeyEsc = true;
82 break;
83
84 case GDK_KEY_Delete:
85 keysPressed.isKeyDelete = true;
86 break;
87
88 case GDK_KEY_c:
89 case GDK_KEY_C:
90 keysPressed.isKeyC = true;
91 break;
92
93 case GDK_KEY_v:
94 case GDK_KEY_V:
95 keysPressed.isKeyV = true;
96 break;
97
98 case GDK_KEY_x:
99 case GDK_KEY_X:
100 keysPressed.isKeyX = true;
101 break;
102
103 case GDK_KEY_z:
104 case GDK_KEY_Z:
105 keysPressed.isKeyZ = true;
106 break;
107
108 case GDK_KEY_y:
109 case GDK_KEY_Y:
110 keysPressed.isKeyY = true;
111 break;
112
113 case GDK_KEY_r:
114 case GDK_KEY_R:
115 keysPressed.isKeyR = true;
116 break;
117
118 case GDK_KEY_e:
119 case GDK_KEY_E:
120 keysPressed.isKeyE = true;
121 break;
122
123 case GDK_KEY_a:
124 case GDK_KEY_A:
125 keysPressed.isKeyA = true;
126 break;
127
128 case GDK_KEY_p:
129 case GDK_KEY_P:
130 keysPressed.isKeyP = true;
131 break;
132
133 case GDK_KEY_plus:
134 case GDK_KEY_KP_Add:
135 keysPressed.isKeyPlus = true;
136 break;
137
138 case GDK_KEY_Up:
139 keysPressed.isArrowKeyUp = true;
140 break;
141
142 case GDK_KEY_Right:
143 keysPressed.isArrowKeyRight = true;
144 break;
145
146 case GDK_KEY_Down:
147 keysPressed.isArrowKeyDown = true;
148 break;
149
150 case GDK_KEY_Left:
151 keysPressed.isArrowKeyLeft = true;
152 break;
153
154 default:
155 break;
156 }
157
158 return keysPressed;
159}
160
161}// namespace iv::gtk::utils
162
163#endif//IV_SRC_UI_GTK_UTILS_HPP_
Definition utils.hpp:9
iv::ui::KeysPressed extractKeysPressed(const GdkEventKey *event)
Definition utils.hpp:64
iv::ui::MouseClickInfo extractMouseClickInfo(const GdkEventButton *event)
Definition utils.hpp:11
iv::ui::StateKeysPressed extractStateKeysPressed(const guint state)
Definition utils.hpp:47
Definition interactionsStructs.hpp:24
Definition interactionsStructs.hpp:8
Definition interactionsStructs.hpp:18