SDLPainter 0.1.0
QPainter benzeri SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
Yüklüyor...
Arıyor...
Eşleşme Yok
events.h
1#pragma once
2
3#include <cstdint>
4
5namespace sdl_painter {
6
11enum class Key : uint16_t {
12 kUnknown = 0,
13
14 // Harfler (bitişik).
15 kA,
16 kB,
17 kC,
18 kD,
19 kE,
20 kF,
21 kG,
22 kH,
23 kI,
24 kJ,
25 kK,
26 kL,
27 kM,
28 kN,
29 kO,
30 kP,
31 kQ,
32 kR,
33 kS,
34 kT,
35 kU,
36 kV,
37 kW,
38 kX,
39 kY,
40 kZ,
41
42 // Rakamlar (bitişik).
43 k0,
44 k1,
45 k2,
46 k3,
47 k4,
48 k5,
49 k6,
50 k7,
51 k8,
52 k9,
53
54 // Fonksiyon tuşları (bitişik).
55 kF1,
56 kF2,
57 kF3,
58 kF4,
59 kF5,
60 kF6,
61 kF7,
62 kF8,
63 kF9,
64 kF10,
65 kF11,
66 kF12,
67
68 // Yön tuşları.
69 kUp,
70 kDown,
71 kLeft,
72 kRight,
73
74 // Kontrol / düzenleme tuşları.
75 kEscape,
76 kEnter,
77 kSpace,
78 kTab,
79 kBackspace,
80 kDelete,
81 kHome,
82 kEnd,
83 kPageUp,
84 kPageDown,
85
86 // Değiştirici (modifier) tuşları.
87 kLeftShift,
88 kRightShift,
89 kLeftCtrl,
90 kRightCtrl,
91 kLeftAlt,
92 kRightAlt,
93 kLeftGui,
94 kRightGui,
95};
96
98enum class KeyModifier : uint8_t {
99 kNone = 0,
100 kShift = 1U << 0U,
101 kCtrl = 1U << 1U,
102 kAlt = 1U << 2U,
103 kGui = 1U << 3U,
104};
105
107constexpr KeyModifier operator|(KeyModifier lhs, KeyModifier rhs) noexcept {
108 return static_cast<KeyModifier>(static_cast<uint8_t>(lhs) |
109 static_cast<uint8_t>(rhs));
110}
111
113constexpr KeyModifier operator&(KeyModifier lhs, KeyModifier rhs) noexcept {
114 return static_cast<KeyModifier>(static_cast<uint8_t>(lhs) &
115 static_cast<uint8_t>(rhs));
116}
117
119constexpr bool HasModifier(KeyModifier mods, KeyModifier flag) noexcept {
120 return (mods & flag) == flag && flag != KeyModifier::kNone;
121}
122
124enum class MouseButton : uint8_t {
125 kUnknown = 0,
126 kLeft,
127 kMiddle,
128 kRight,
129 kX1,
130 kX2,
131};
132
134struct KeyEvent {
135 Key key{Key::kUnknown};
136 KeyModifier modifiers{KeyModifier::kNone};
137 bool repeat{false};
138};
139
142 MouseButton button{MouseButton::kUnknown};
143 float x{0.0F};
144 float y{0.0F};
145 uint8_t clicks{1};
146};
147
150 float x{0.0F};
151 float y{0.0F};
152 float dx{0.0F};
153 float dy{0.0F};
154};
155
158 float dx{0.0F};
159 float dy{0.0F};
160 float mouse_x{0.0F};
161 float mouse_y{0.0F};
162};
163
166 int32_t width{0};
167 int32_t height{0};
168};
169
170} // namespace sdl_painter
Klavye olayı.
Definition events.h:134
bool repeat
Basılı tutmadan üretilen tekrar olayı mı?
Definition events.h:137
Fare düğmesi olayı.
Definition events.h:141
uint8_t clicks
1 = tek tık, 2 = çift tık.
Definition events.h:145
Fare hareketi olayı.
Definition events.h:149
float dy
Son olaydan bu yana dikey değişim.
Definition events.h:153
float dx
Son olaydan bu yana yatay değişim.
Definition events.h:152
Fare tekerleği olayı.
Definition events.h:157
float dy
Dikey tekerlek kaydırması.
Definition events.h:159
float dx
Yatay tekerlek kaydırması.
Definition events.h:158
float mouse_x
Olay anındaki fare X konumu.
Definition events.h:160
float mouse_y
Olay anındaki fare Y konumu.
Definition events.h:161
Pencere yeniden boyutlandırma olayı.
Definition events.h:165