1#![allow(non_camel_case_types, non_snake_case)]
4#![allow(dead_code)]
5
6use capi::sctypes::*;
7use capi::scdef::{GFX_LAYER, ELEMENT_BITMAP_RECEIVER};
8use capi::scdom::HELEMENT;
9use capi::scbehavior::{MOUSE_BUTTONS, MOUSE_EVENTS, KEY_EVENTS, KEYBOARD_STATES};
10
11
12#[repr(C)]
13#[derive(Copy, Clone)]
14#[derive(Debug, PartialOrd, PartialEq)]
15pub enum SCITER_X_MSG_CODE
16{
17 SXM_CREATE = 0,
18 SXM_DESTROY = 1,
19 SXM_SIZE = 2,
20 SXM_PAINT = 3,
21 SXM_RESOLUTION = 4,
22 SXM_HEARTBIT = 5,
23 SXM_MOUSE = 6,
24 SXM_KEY = 7,
25 SXM_FOCUS = 8,
26}
27
28#[repr(C)]
29#[derive(Debug)]
30pub struct SCITER_X_MSG
32{
33 pub msg: SCITER_X_MSG_CODE,
34}
35
36impl From<SCITER_X_MSG_CODE> for SCITER_X_MSG {
37 fn from(code: SCITER_X_MSG_CODE) -> Self {
38 Self { msg: code }
39 }
40}
41
42#[repr(C)]
43#[derive(Debug)]
44pub struct SCITER_X_MSG_CREATE
46{
47 pub header: SCITER_X_MSG,
48 pub backend: GFX_LAYER,
49 pub transparent: BOOL,
50}
51
52#[repr(C)]
53#[derive(Debug)]
54pub struct SCITER_X_MSG_DESTROY
56{
57 pub header: SCITER_X_MSG,
58}
59
60#[repr(C)]
61#[derive(Debug)]
62pub struct SCITER_X_MSG_SIZE
64{
65 pub header: SCITER_X_MSG,
66 pub width: UINT,
67 pub height: UINT,
68}
69
70#[repr(C)]
71#[derive(Debug)]
72pub struct SCITER_X_MSG_RESOLUTION
74{
75 pub header: SCITER_X_MSG,
76
77 pub ppi: UINT,
79}
80
81#[repr(C)]
82#[derive(Debug)]
83pub struct SCITER_X_MSG_MOUSE
85{
86 pub header: SCITER_X_MSG,
87
88 pub event: MOUSE_EVENTS,
89 pub button: MOUSE_BUTTONS,
90 pub modifiers: KEYBOARD_STATES,
91 pub pos: POINT,
92}
93
94#[repr(C)]
95#[derive(Debug)]
96pub struct SCITER_X_MSG_KEY
98{
99 pub header: SCITER_X_MSG,
100
101 pub event: KEY_EVENTS,
102 pub code: UINT,
103 pub modifiers: KEYBOARD_STATES,
104}
105
106#[repr(C)]
107#[derive(Debug)]
108pub struct SCITER_X_MSG_FOCUS
110{
111 pub header: SCITER_X_MSG,
112
113 pub enter: BOOL,
114}
115
116#[repr(C)]
117#[derive(Debug)]
118pub struct SCITER_X_MSG_HEARTBIT
120{
121 pub header: SCITER_X_MSG,
122
123 pub time: UINT,
125}
126
127#[repr(C)]
128#[derive(Copy, Clone)]
129#[derive(Debug, PartialOrd, PartialEq)]
130pub enum SCITER_PAINT_TARGET_TYPE
132{
133 SPT_DEFAULT = 0,
135
136 SPT_RECEIVER = 1,
138
139 SPT_SURFACE = 2,
141}
142
143#[repr(C)]
145pub struct SCITER_X_MSG_PAINT
146{
147 pub header: SCITER_X_MSG,
148 pub element: HELEMENT,
149 pub isFore: BOOL,
150 pub targetType: SCITER_PAINT_TARGET_TYPE,
151
152 pub context: LPVOID,
155 pub callback: Option<ELEMENT_BITMAP_RECEIVER>,
156 }
158
159pub mod key_codes
163{
164 #[repr(C)]
165 #[derive(Copy, Clone)]
166 #[derive(Debug, PartialOrd, PartialEq)]
167 pub enum KEYBOARD_CODES {
169 KB_SPACE = 32,
170 KB_APOSTROPHE = 39, KB_COMMA = 44, KB_MINUS = 45, KB_PERIOD = 46, KB_SLASH = 47, KB_0 = 48,
177 KB_1 = 49,
178 KB_2 = 50,
179 KB_3 = 51,
180 KB_4 = 52,
181 KB_5 = 53,
182 KB_6 = 54,
183 KB_7 = 55,
184 KB_8 = 56,
185 KB_9 = 57,
186 KB_SEMICOLON = 59, KB_EQUAL = 61, KB_A = 65,
189 KB_B = 66,
190 KB_C = 67,
191 KB_D = 68,
192 KB_E = 69,
193 KB_F = 70,
194 KB_G = 71,
195 KB_H = 72,
196 KB_I = 73,
197 KB_J = 74,
198 KB_K = 75,
199 KB_L = 76,
200 KB_M = 77,
201 KB_N = 78,
202 KB_O = 79,
203 KB_P = 80,
204 KB_Q = 81,
205 KB_R = 82,
206 KB_S = 83,
207 KB_T = 84,
208 KB_U = 85,
209 KB_V = 86,
210 KB_W = 87,
211 KB_X = 88,
212 KB_Y = 89,
213 KB_Z = 90,
214 KB_LEFT_BRACKET = 91, KB_BACKSLASH = 92, KB_RIGHT_BRACKET = 93, KB_GRAVE_ACCENT = 96, KB_WORLD_1 = 161, KB_WORLD_2 = 162, KB_ESCAPE = 256,
226 KB_ENTER = 257,
227 KB_TAB = 258,
229 KB_BACKSPACE = 259,
230 KB_INSERT = 260,
232 KB_DELETE = 261,
233 KB_RIGHT = 262,
234 KB_LEFT = 263,
235 KB_DOWN = 264,
236 KB_UP = 265,
237 KB_PAGE_UP = 266,
238 KB_PAGE_DOWN = 267,
240 KB_HOME = 268,
242 KB_END = 269,
243 KB_CAPS_LOCK = 280,
244 KB_SCROLL_LOCK = 281,
246 KB_NUM_LOCK = 282,
248 KB_PRINT_SCREEN = 283,
250 KB_PAUSE = 284,
251 KB_F1 = 290,
252 KB_F2 = 291,
253 KB_F3 = 292,
254 KB_F4 = 293,
255 KB_F5 = 294,
256 KB_F6 = 295,
257 KB_F7 = 296,
258 KB_F8 = 297,
259 KB_F9 = 298,
260 KB_F10 = 299,
261 KB_F11 = 300,
262 KB_F12 = 301,
263 KB_F13 = 302,
264 KB_F14 = 303,
265 KB_F15 = 304,
266 KB_F16 = 305,
267 KB_F17 = 306,
268 KB_F18 = 307,
269 KB_F19 = 308,
270 KB_F20 = 309,
271 KB_F21 = 310,
272 KB_F22 = 311,
273 KB_F23 = 312,
274 KB_F24 = 313,
275 KB_F25 = 314,
276 KB_NUMPAD0 = 320,
277 KB_NUMPAD1 = 321,
278 KB_NUMPAD2 = 322,
279 KB_NUMPAD3 = 323,
280 KB_NUMPAD4 = 324,
281 KB_NUMPAD5 = 325,
282 KB_NUMPAD6 = 326,
283 KB_NUMPAD7 = 327,
284 KB_NUMPAD8 = 328,
285 KB_NUMPAD9 = 329,
286 KB_NUMPAD_DECIMAL = 330,
287 KB_NUMPAD_DIVIDE = 331,
289 KB_NUMPAD_MULTIPLY = 332,
291 KB_NUMPAD_SUBTRACT = 333,
293 KB_NUMPAD_ADD = 334,
295 KB_NUMPAD_ENTER = 335,
297 KB_NUMPAD_EQUAL = 336,
298 KB_LEFT_SHIFT = 340,
299 KB_LEFT_CONTROL = 341,
301 KB_LEFT_ALT = 342,
303 KB_LEFT_SUPER = 343,
304 KB_RIGHT_SHIFT = 344,
305 KB_RIGHT_CONTROL = 345,
306 KB_RIGHT_ALT = 346,
307 KB_RIGHT_SUPER = 347,
308 KB_MENU = 348,
309}
310
311 pub const KB_SPACE : u32 = 32;
312 pub const KB_APOSTROPHE : u32 = 39; pub const KB_COMMA : u32 = 44; pub const KB_QUOTE : u32 = KB_COMMA;
315 pub const KB_MINUS : u32 = 45; pub const KB_PERIOD : u32 = 46; pub const KB_SLASH : u32 = 47; pub const KB_0 : u32 = 48;
320 pub const KB_1 : u32 = 49;
321 pub const KB_2 : u32 = 50;
322 pub const KB_3 : u32 = 51;
323 pub const KB_4 : u32 = 52;
324 pub const KB_5 : u32 = 53;
325 pub const KB_6 : u32 = 54;
326 pub const KB_7 : u32 = 55;
327 pub const KB_8 : u32 = 56;
328 pub const KB_9 : u32 = 57;
329
330 pub const KB_SEMICOLON : u32 = 59; pub const KB_EQUAL : u32 = 61; pub const KB_A : u32 = 65;
334 pub const KB_B : u32 = 66;
335 pub const KB_C : u32 = 67;
336 pub const KB_D : u32 = 68;
337 pub const KB_E : u32 = 69;
338 pub const KB_F : u32 = 70;
339 pub const KB_G : u32 = 71;
340 pub const KB_H : u32 = 72;
341 pub const KB_I : u32 = 73;
342 pub const KB_J : u32 = 74;
343 pub const KB_K : u32 = 75;
344 pub const KB_L : u32 = 76;
345 pub const KB_M : u32 = 77;
346 pub const KB_N : u32 = 78;
347 pub const KB_O : u32 = 79;
348 pub const KB_P : u32 = 80;
349 pub const KB_Q : u32 = 81;
350 pub const KB_R : u32 = 82;
351 pub const KB_S : u32 = 83;
352 pub const KB_T : u32 = 84;
353 pub const KB_U : u32 = 85;
354 pub const KB_V : u32 = 86;
355 pub const KB_W : u32 = 87;
356 pub const KB_X : u32 = 88;
357 pub const KB_Y : u32 = 89;
358 pub const KB_Z : u32 = 90;
359
360 pub const KB_LEFT_BRACKET : u32 = 91; pub const KB_LEFTBRACKET : u32 = KB_LEFT_BRACKET;
362 pub const KB_BACKSLASH : u32 = 92; pub const KB_RIGHT_BRACKET : u32 = 93; pub const KB_RIGHTBRACKET : u32 = KB_RIGHT_BRACKET;
365 pub const KB_GRAVE_ACCENT : u32 = 96; pub const KB_WORLD_1 : u32 = 161; pub const KB_DOT : u32 = KB_WORLD_1;
368 pub const KB_WORLD_2 : u32 = 162; pub const KB_ESCAPE : u32 = 256;
372 pub const KB_ENTER : u32 = 257;
373 pub const KB_RETURN : u32 = KB_ENTER;
374 pub const KB_TAB : u32 = 258;
375 pub const KB_BACKSPACE : u32 = 259;
376 pub const KB_BACK : u32 = KB_BACKSPACE;
377 pub const KB_INSERT : u32 = 260;
378 pub const KB_DELETE : u32 = 261;
379 pub const KB_RIGHT : u32 = 262;
380 pub const KB_LEFT : u32 = 263;
381 pub const KB_DOWN : u32 = 264;
382 pub const KB_UP : u32 = 265;
383 pub const KB_PAGE_UP : u32 = 266;
384 pub const KB_PRIOR : u32 = KB_PAGE_UP;
385 pub const KB_PAGE_DOWN : u32 = 267;
386 pub const KB_NEXT : u32 = KB_PAGE_DOWN;
387 pub const KB_HOME : u32 = 268;
388 pub const KB_END : u32 = 269;
389 pub const KB_CAPS_LOCK : u32 = 280;
390 pub const KB_CAPITAL : u32 = KB_CAPS_LOCK;
391 pub const KB_SCROLL_LOCK : u32 = 281;
392 pub const KB_SCROLL : u32 = KB_SCROLL_LOCK;
393 pub const KB_NUM_LOCK : u32 = 282;
394 pub const KB_NUMLOCK : u32 = KB_NUM_LOCK;
395 pub const KB_PRINT_SCREEN : u32 = 283;
396 pub const KB_PAUSE : u32 = 284;
397
398 pub const KB_F1 : u32 = 290;
399 pub const KB_F2 : u32 = 291;
400 pub const KB_F3 : u32 = 292;
401 pub const KB_F4 : u32 = 293;
402 pub const KB_F5 : u32 = 294;
403 pub const KB_F6 : u32 = 295;
404 pub const KB_F7 : u32 = 296;
405 pub const KB_F8 : u32 = 297;
406 pub const KB_F9 : u32 = 298;
407 pub const KB_F10 : u32 = 299;
408 pub const KB_F11 : u32 = 300;
409 pub const KB_F12 : u32 = 301;
410 pub const KB_F13 : u32 = 302;
411 pub const KB_F14 : u32 = 303;
412 pub const KB_F15 : u32 = 304;
413 pub const KB_F16 : u32 = 305;
414 pub const KB_F17 : u32 = 306;
415 pub const KB_F18 : u32 = 307;
416 pub const KB_F19 : u32 = 308;
417 pub const KB_F20 : u32 = 309;
418 pub const KB_F21 : u32 = 310;
419 pub const KB_F22 : u32 = 311;
420 pub const KB_F23 : u32 = 312;
421 pub const KB_F24 : u32 = 313;
422 pub const KB_F25 : u32 = 314;
423
424 pub const KB_NUMPAD0 : u32 = 320;
425 pub const KB_NUMPAD1 : u32 = 321;
426 pub const KB_NUMPAD2 : u32 = 322;
427 pub const KB_NUMPAD3 : u32 = 323;
428 pub const KB_NUMPAD4 : u32 = 324;
429 pub const KB_NUMPAD5 : u32 = 325;
430 pub const KB_NUMPAD6 : u32 = 326;
431 pub const KB_NUMPAD7 : u32 = 327;
432 pub const KB_NUMPAD8 : u32 = 328;
433 pub const KB_NUMPAD9 : u32 = 329;
434
435 pub const KB_NUMPAD_DECIMAL : u32 = 330;
436 pub const KB_DECIMAL : u32 = KB_NUMPAD_DECIMAL;
437 pub const KB_SEPARATOR : u32 = KB_DECIMAL;
438 pub const KB_NUMPAD_DIVIDE : u32 = 331;
439 pub const KB_DIVIDE : u32 = KB_NUMPAD_DIVIDE;
440 pub const KB_NUMPAD_MULTIPLY : u32 = 332;
441 pub const KB_MULTIPLY : u32 = KB_NUMPAD_MULTIPLY;
442 pub const KB_NUMPAD_SUBTRACT : u32 = 333;
443 pub const KB_SUBTRACT : u32 = KB_NUMPAD_SUBTRACT;
444 pub const KB_NUMPAD_ADD : u32 = 334;
445 pub const KB_ADD : u32 = KB_NUMPAD_ADD;
446 pub const KB_PLUS : u32 = KB_ADD;
447 pub const KB_NUMPAD_ENTER : u32 = 335;
448 pub const KB_NUMPAD_EQUAL : u32 = 336;
449
450 pub const KB_LEFT_SHIFT : u32 = 340;
451 pub const KB_SHIFT : u32 = KB_LEFT_SHIFT;
452 pub const KB_LEFT_CONTROL : u32 = 341;
453 pub const KB_CONTROL : u32 = KB_LEFT_CONTROL;
454 pub const KB_SHORTCUT : u32 = KB_CONTROL;
455 pub const KB_LEFT_ALT : u32 = 342;
456 pub const KB_LEFT_SUPER : u32 = 343;
457 pub const KB_RIGHT_SHIFT : u32 = 344;
458 pub const KB_RIGHT_CONTROL : u32 = 345;
459 pub const KB_RIGHT_ALT : u32 = 346;
460 pub const KB_RIGHT_SUPER : u32 = 347;
461 pub const KB_MENU : u32 = 348;
462}