8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164 | class ShaderMessage:
# # Special
class Custom:
"""Any data type"""
data: Any
# # Mouse
class Mouse:
@define
class Position:
# Real
x: int = 0
y: int = 0
dx: int = 0
dy: int = 0
# Normalized
u: float = 0.0
v: float = 0.0
du: float = 0.0
dv: float = 0.0
@define
class Press:
button: int = 0
# Real
x: int = 0
y: int = 0
# Normalized
u: float = 0.0
v: float = 0.0
@define
class Release:
button: int = 0
# Real
x: int = 0
y: int = 0
# Normalized
u: float = 0.0
v: float = 0.0
@define
class Drag:
# Real
x: int = 0
y: int = 0
dx: int = 0
dy: int = 0
# Normalized
u: float = 0.0
v: float = 0.0
du: float = 0.0
dv: float = 0.0
@define
class Scroll:
# Real
dx: int = 0
dy: int = 0
# Normalized
du: float = 0.0
dv: float = 0.0
@define
class Enter:
state: bool
# # Window
class Window:
@define
class Resize:
width: int = None
height: int = None
@property
def size(self) -> tuple[int, int]:
return self.width, self.height
@define
class Iconify:
state: bool = None
@define
class FileDrop:
files: list[str] = None
def get(self, index: int) -> Optional[str]:
return list_get(self.files, index)
@property
def first(self) -> Optional[str]:
return self.get(0)
@property
def second(self) -> Optional[str]:
return self.get(1)
@property
def third(self) -> Optional[str]:
return self.get(2)
@define
class Close:
...
# # Shader
class Shader:
@define
class RecreateTextures:
...
@define
class Compile:
...
@define
class Render:
...
# # Keyboard
class Keyboard:
@define
class Press:
key: int = None
action: int = None
modifiers: int = None
@define
class KeyDown:
key: int = None
modifiers: int = None
@define
class KeyUp:
key: int = None
modifiers: int = None
@define
class Unicode:
char: str = None
|