nappgui_sys/
nappgui.rs

1/* automatically generated by rust-bindgen 0.71.1 */
2
3pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
4pub const _SAL_VERSION: u32 = 20;
5pub const __SAL_H_VERSION: u32 = 180000000;
6pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
7pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
8pub const _CRT_PACKING: u32 = 8;
9pub const _HAS_EXCEPTIONS: u32 = 1;
10pub const _STL_LANG: u32 = 0;
11pub const _HAS_CXX17: u32 = 0;
12pub const _HAS_CXX20: u32 = 0;
13pub const _HAS_CXX23: u32 = 0;
14pub const _HAS_NODISCARD: u32 = 0;
15pub const WCHAR_MIN: u32 = 0;
16pub const WCHAR_MAX: u32 = 65535;
17pub const WINT_MIN: u32 = 0;
18pub const WINT_MAX: u32 = 65535;
19pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1;
20pub const _CRT_BUILD_DESKTOP_APP: u32 = 1;
21pub const _ARGMAX: u32 = 100;
22pub const _CRT_INT_MAX: u32 = 2147483647;
23pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1;
24pub const _CRT_HAS_CXX17: u32 = 0;
25pub const _CRT_HAS_C11: u32 = 1;
26pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1;
27pub const __STDC_SECURE_LIB__: u32 = 200411;
28pub const __GOT_SECURE_LIB__: u32 = 200411;
29pub const __STDC_WANT_SECURE_LIB__: u32 = 1;
30pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 254;
31pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES: u32 = 0;
32pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT: u32 = 0;
33pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES: u32 = 1;
34pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
35pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 0;
36pub const REAL32_MAX: f64 = 100000000000000000000.0;
37pub const REAL64_MAX: f64 = 100000000000000000000000000000000000000.0;
38pub const REAL32_MIN: f64 = 0.00000000000000000001;
39pub const REAL64_MIN: f64 = 0.00000000000000000000000000000000000001;
40pub const PRIu64: &[u8; 4] = b"llu\0";
41pub const PRId64: &[u8; 4] = b"lld\0";
42pub const DIR_SEPARATOR: u8 = 92u8;
43pub const kKEY_MAX: u32 = 112;
44pub const HEAPARR: &[u8; 6] = b"::arr\0";
45pub const ARRST: &[u8; 8] = b"ArrSt::\0";
46pub const ARRPT: &[u8; 8] = b"ArrPt::\0";
47pub const SETST: &[u8; 8] = b"SetSt::\0";
48pub const SETPT: &[u8; 8] = b"SetPt::\0";
49pub const GUI_CONTEXT_NUM_COMPONENTS: u32 = 17;
50pub const kTEXTFILTER_SIZE: u32 = 4096;
51pub type va_list = *mut ::libc::c_char;
52pub type __vcrt_bool = bool;
53pub type wchar_t = ::libc::c_ushort;
54unsafe extern "C" {
55    pub static mut __security_cookie: usize;
56}
57pub type int_least8_t = ::libc::c_schar;
58pub type int_least16_t = ::libc::c_short;
59pub type int_least32_t = ::libc::c_int;
60pub type int_least64_t = ::libc::c_longlong;
61pub type uint_least8_t = ::libc::c_uchar;
62pub type uint_least16_t = ::libc::c_ushort;
63pub type uint_least32_t = ::libc::c_uint;
64pub type uint_least64_t = ::libc::c_ulonglong;
65pub type int_fast8_t = ::libc::c_schar;
66pub type int_fast16_t = ::libc::c_int;
67pub type int_fast32_t = ::libc::c_int;
68pub type int_fast64_t = ::libc::c_longlong;
69pub type uint_fast8_t = ::libc::c_uchar;
70pub type uint_fast16_t = ::libc::c_uint;
71pub type uint_fast32_t = ::libc::c_uint;
72pub type uint_fast64_t = ::libc::c_ulonglong;
73pub type intmax_t = ::libc::c_longlong;
74pub type uintmax_t = ::libc::c_ulonglong;
75pub type __crt_bool = bool;
76pub type errno_t = ::libc::c_int;
77pub type wint_t = ::libc::c_ushort;
78pub type wctype_t = ::libc::c_ushort;
79pub type __time32_t = ::libc::c_long;
80pub type __time64_t = ::libc::c_longlong;
81#[repr(C)]
82#[derive(Debug, Copy, Clone)]
83pub struct __crt_locale_data_public {
84    pub _locale_pctype: *const ::libc::c_ushort,
85    pub _locale_mb_cur_max: ::libc::c_int,
86    pub _locale_lc_codepage: ::libc::c_uint,
87}
88#[repr(C)]
89#[derive(Debug, Copy, Clone)]
90pub struct __crt_locale_pointers {
91    pub locinfo: *mut __crt_locale_data,
92    pub mbcinfo: *mut __crt_multibyte_data,
93}
94pub type _locale_t = *mut __crt_locale_pointers;
95#[repr(C)]
96#[derive(Debug, Copy, Clone)]
97pub struct _Mbstatet {
98    pub _Wchar: ::libc::c_ulong,
99    pub _Byte: ::libc::c_ushort,
100    pub _State: ::libc::c_ushort,
101}
102pub type mbstate_t = _Mbstatet;
103pub type time_t = __time64_t;
104pub type rsize_t = usize;
105pub type char_t = ::libc::c_char;
106pub type byte_t = ::libc::c_uchar;
107pub type bool_t = ::libc::c_char;
108pub type real32_t = f32;
109pub type real64_t = f64;
110#[repr(i32)]
111#[non_exhaustive]
112#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
113pub enum _enum_t {
114    ekENUM_GENERIC_VALUE = 0,
115}
116pub use self::_enum_t as enum_t;
117#[repr(i32)]
118#[non_exhaustive]
119#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
120pub enum _unicode_t {
121    ekUTF8 = 0,
122    ekUTF16 = 1,
123    ekUTF32 = 2,
124}
125pub use self::_unicode_t as unicode_t;
126#[repr(C)]
127#[derive(Debug, Copy, Clone)]
128pub struct _renv_t {
129    _unused: [u8; 0],
130}
131pub type REnv = _renv_t;
132pub type FPtr_destroy =
133    ::core::option::Option<unsafe extern "C" fn(item: *mut *mut ::libc::c_void)>;
134pub type FPtr_copy = ::core::option::Option<
135    unsafe extern "C" fn(item: *const ::libc::c_void) -> *mut ::libc::c_void,
136>;
137pub type FPtr_scopy = ::core::option::Option<
138    unsafe extern "C" fn(dest: *mut ::libc::c_void, src: *const ::libc::c_void),
139>;
140pub type FPtr_compare = ::core::option::Option<
141    unsafe extern "C" fn(
142        item1: *const ::libc::c_void,
143        item2: *const ::libc::c_void,
144    ) -> ::libc::c_int,
145>;
146pub type FPtr_compare_ex = ::core::option::Option<
147    unsafe extern "C" fn(
148        item1: *const ::libc::c_void,
149        item2: *const ::libc::c_void,
150        data: *const ::libc::c_void,
151    ) -> ::libc::c_int,
152>;
153pub type FPtr_assert = ::core::option::Option<
154    unsafe extern "C" fn(
155        item: *mut ::libc::c_void,
156        group: u32,
157        caption: *const char_t,
158        detail: *const char_t,
159        file: *const char_t,
160        line: u32,
161    ),
162>;
163#[repr(i32)]
164#[non_exhaustive]
165#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
166pub enum _platform_t {
167    ekWINDOWS = 1,
168    ekMACOS = 2,
169    ekLINUX = 3,
170    ekIOS = 4,
171}
172pub use self::_platform_t as platform_t;
173#[repr(i32)]
174#[non_exhaustive]
175#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
176pub enum _device_t {
177    ekDESKTOP = 1,
178    ekPHONE = 2,
179    ekTABLET = 3,
180}
181pub use self::_device_t as device_t;
182#[repr(i32)]
183#[non_exhaustive]
184#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
185pub enum _win_t {
186    ekWIN_9x = 1,
187    ekWIN_NT4 = 2,
188    ekWIN_2K = 3,
189    ekWIN_XP = 4,
190    ekWIN_XP1 = 5,
191    ekWIN_XP2 = 6,
192    ekWIN_XP3 = 7,
193    ekWIN_VI = 8,
194    ekWIN_VI1 = 9,
195    ekWIN_VI2 = 10,
196    ekWIN_7 = 11,
197    ekWIN_71 = 12,
198    ekWIN_8 = 13,
199    ekWIN_81 = 14,
200    ekWIN_10 = 15,
201    ekWIN_NO = 16,
202}
203pub use self::_win_t as win_t;
204#[repr(i32)]
205#[non_exhaustive]
206#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
207pub enum _endian_t {
208    ekLITEND = 1,
209    ekBIGEND = 2,
210}
211pub use self::_endian_t as endian_t;
212#[repr(i32)]
213#[non_exhaustive]
214#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
215pub enum _week_day_t {
216    ekSUNDAY = 0,
217    ekMONDAY = 1,
218    ekTUESDAY = 2,
219    ekWEDNESDAY = 3,
220    ekTHURSDAY = 4,
221    ekFRIDAY = 5,
222    ekSATURDAY = 6,
223}
224pub use self::_week_day_t as week_day_t;
225#[repr(i32)]
226#[non_exhaustive]
227#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
228pub enum _month_t {
229    ekJANUARY = 1,
230    ekFEBRUARY = 2,
231    ekMARCH = 3,
232    ekAPRIL = 4,
233    ekMAY = 5,
234    ekJUNE = 6,
235    ekJULY = 7,
236    ekAUGUST = 8,
237    ekSEPTEMBER = 9,
238    ekOCTOBER = 10,
239    ekNOVEMBER = 11,
240    ekDECEMBER = 12,
241}
242pub use self::_month_t as month_t;
243#[repr(i32)]
244#[non_exhaustive]
245#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
246pub enum _file_type_t {
247    ekARCHIVE = 1,
248    ekDIRECTORY = 2,
249    ekOTHERFILE = 3,
250}
251pub use self::_file_type_t as file_type_t;
252#[repr(i32)]
253#[non_exhaustive]
254#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
255pub enum _file_mode_t {
256    ekREAD = 1,
257    ekWRITE = 2,
258    ekAPPEND = 3,
259}
260pub use self::_file_mode_t as file_mode_t;
261#[repr(i32)]
262#[non_exhaustive]
263#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
264pub enum _file_seek_t {
265    ekSEEKSET = 1,
266    ekSEEKCUR = 2,
267    ekSEEKEND = 3,
268}
269pub use self::_file_seek_t as file_seek_t;
270#[repr(i32)]
271#[non_exhaustive]
272#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
273pub enum _ferror_t {
274    ekFEXISTS = 1,
275    ekFNOPATH = 2,
276    ekFNOFILE = 3,
277    ekFBIGNAME = 4,
278    ekFNOFILES = 5,
279    ekFNOEMPTY = 6,
280    ekFNOACCESS = 7,
281    ekFLOCK = 8,
282    ekFBIG = 9,
283    ekFSEEKNEG = 10,
284    ekFUNDEF = 11,
285    ekFOK = 12,
286}
287pub use self::_ferror_t as ferror_t;
288#[repr(i32)]
289#[non_exhaustive]
290#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
291pub enum _perror_t {
292    ekPPIPE = 1,
293    ekPEXEC = 2,
294    ekPOK = 3,
295}
296pub use self::_perror_t as perror_t;
297#[repr(i32)]
298#[non_exhaustive]
299#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
300pub enum _serror_t {
301    ekSNONET = 1,
302    ekSNOHOST = 2,
303    ekSTIMEOUT = 3,
304    ekSSTREAM = 4,
305    ekSUNDEF = 5,
306    ekSOK = 6,
307}
308pub use self::_serror_t as serror_t;
309pub type Date = _date_t;
310#[repr(C)]
311#[derive(Debug, Copy, Clone)]
312pub struct _dir_t {
313    _unused: [u8; 0],
314}
315pub type Dir = _dir_t;
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct _file_t {
319    _unused: [u8; 0],
320}
321pub type File = _file_t;
322#[repr(C)]
323#[derive(Debug, Copy, Clone)]
324pub struct _mutex_t {
325    _unused: [u8; 0],
326}
327pub type Mutex = _mutex_t;
328#[repr(C)]
329#[derive(Debug, Copy, Clone)]
330pub struct _process_t {
331    _unused: [u8; 0],
332}
333pub type Proc = _process_t;
334#[repr(C)]
335#[derive(Debug, Copy, Clone)]
336pub struct _dlib_t {
337    _unused: [u8; 0],
338}
339pub type DLib = _dlib_t;
340#[repr(C)]
341#[derive(Debug, Copy, Clone)]
342pub struct _thread_t {
343    _unused: [u8; 0],
344}
345pub type Thread = _thread_t;
346#[repr(C)]
347#[derive(Debug, Copy, Clone)]
348pub struct _socket_t {
349    _unused: [u8; 0],
350}
351pub type Socket = _socket_t;
352pub type FPtr_thread_main =
353    ::core::option::Option<unsafe extern "C" fn(data: *mut ::libc::c_void) -> u32>;
354pub type FPtr_libproc = ::core::option::Option<unsafe extern "C" fn()>;
355#[repr(C)]
356#[derive(Debug, Copy, Clone)]
357pub struct _date_t {
358    pub year: i16,
359    pub month: u8,
360    pub wday: u8,
361    pub mday: u8,
362    pub hour: u8,
363    pub minute: u8,
364    pub second: u8,
365}
366#[repr(i32)]
367#[non_exhaustive]
368#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
369pub enum _core_event_t {
370    ekEASSERT = 256,
371    ekEFILE = 257,
372    ekEENTRY = 258,
373    ekEEXIT = 259,
374}
375pub use self::_core_event_t as core_event_t;
376#[repr(i32)]
377#[non_exhaustive]
378#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
379pub enum _sstate_t {
380    ekSTOK = 0,
381    ekSTEND = 1,
382    ekSTCORRUPT = 2,
383    ekSTBROKEN = 3,
384}
385pub use self::_sstate_t as sstate_t;
386#[repr(i32)]
387#[non_exhaustive]
388#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
389pub enum _key_t {
390    ekKEY_UNDEF = 0,
391    ekKEY_A = 1,
392    ekKEY_S = 2,
393    ekKEY_D = 3,
394    ekKEY_F = 4,
395    ekKEY_H = 5,
396    ekKEY_G = 6,
397    ekKEY_Z = 7,
398    ekKEY_X = 8,
399    ekKEY_C = 9,
400    ekKEY_V = 10,
401    ekKEY_BSLASH = 11,
402    ekKEY_B = 12,
403    ekKEY_Q = 13,
404    ekKEY_W = 14,
405    ekKEY_E = 15,
406    ekKEY_R = 16,
407    ekKEY_Y = 17,
408    ekKEY_T = 18,
409    ekKEY_1 = 19,
410    ekKEY_2 = 20,
411    ekKEY_3 = 21,
412    ekKEY_4 = 22,
413    ekKEY_6 = 23,
414    ekKEY_5 = 24,
415    ekKEY_9 = 25,
416    ekKEY_7 = 26,
417    ekKEY_8 = 27,
418    ekKEY_0 = 28,
419    ekKEY_RCURLY = 29,
420    ekKEY_O = 30,
421    ekKEY_U = 31,
422    ekKEY_LCURLY = 32,
423    ekKEY_I = 33,
424    ekKEY_P = 34,
425    ekKEY_RETURN = 35,
426    ekKEY_L = 36,
427    ekKEY_J = 37,
428    ekKEY_SEMICOLON = 38,
429    ekKEY_K = 39,
430    ekKEY_QUEST = 40,
431    ekKEY_COMMA = 41,
432    ekKEY_MINUS = 42,
433    ekKEY_N = 43,
434    ekKEY_M = 44,
435    ekKEY_PERIOD = 45,
436    ekKEY_TAB = 46,
437    ekKEY_SPACE = 47,
438    ekKEY_GTLT = 48,
439    ekKEY_BACK = 49,
440    ekKEY_ESCAPE = 50,
441    ekKEY_F17 = 51,
442    ekKEY_NUMDECIMAL = 52,
443    ekKEY_NUMMULT = 53,
444    ekKEY_NUMADD = 54,
445    ekKEY_NUMLOCK = 55,
446    ekKEY_NUMDIV = 56,
447    ekKEY_NUMRET = 57,
448    ekKEY_NUMMINUS = 58,
449    ekKEY_F18 = 59,
450    ekKEY_F19 = 60,
451    ekKEY_NUMEQUAL = 61,
452    ekKEY_NUM0 = 62,
453    ekKEY_NUM1 = 63,
454    ekKEY_NUM2 = 64,
455    ekKEY_NUM3 = 65,
456    ekKEY_NUM4 = 66,
457    ekKEY_NUM5 = 67,
458    ekKEY_NUM6 = 68,
459    ekKEY_NUM7 = 69,
460    ekKEY_NUM8 = 70,
461    ekKEY_NUM9 = 71,
462    ekKEY_F5 = 72,
463    ekKEY_F6 = 73,
464    ekKEY_F7 = 74,
465    ekKEY_F3 = 75,
466    ekKEY_F8 = 76,
467    ekKEY_F9 = 77,
468    ekKEY_F11 = 78,
469    ekKEY_F13 = 79,
470    ekKEY_F16 = 80,
471    ekKEY_F14 = 81,
472    ekKEY_F10 = 82,
473    ekKEY_F12 = 83,
474    ekKEY_F15 = 84,
475    ekKEY_PAGEUP = 85,
476    ekKEY_HOME = 86,
477    ekKEY_SUPR = 87,
478    ekKEY_F4 = 88,
479    ekKEY_PAGEDOWN = 89,
480    ekKEY_F2 = 90,
481    ekKEY_END = 91,
482    ekKEY_F1 = 92,
483    ekKEY_LEFT = 93,
484    ekKEY_RIGHT = 94,
485    ekKEY_DOWN = 95,
486    ekKEY_UP = 96,
487    ekKEY_LSHIFT = 97,
488    ekKEY_RSHIFT = 98,
489    ekKEY_LCTRL = 99,
490    ekKEY_RCTRL = 100,
491    ekKEY_LALT = 101,
492    ekKEY_RALT = 102,
493    ekKEY_INSERT = 103,
494    ekKEY_EXCLAM = 104,
495    ekKEY_MENU = 105,
496    ekKEY_LWIN = 106,
497    ekKEY_RWIN = 107,
498    ekKEY_CAPS = 108,
499    ekKEY_TILDE = 109,
500    ekKEY_GRAVE = 110,
501    ekKEY_PLUS = 111,
502}
503pub use self::_key_t as vkey_t;
504#[repr(i32)]
505#[non_exhaustive]
506#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
507pub enum _mkey_t {
508    ekMKEY_NONE = 0,
509    ekMKEY_SHIFT = 1,
510    ekMKEY_CONTROL = 2,
511    ekMKEY_ALT = 4,
512    ekMKEY_COMMAND = 8,
513}
514pub use self::_mkey_t as mkey_t;
515#[repr(i32)]
516#[non_exhaustive]
517#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
518pub enum _token_t {
519    ekTSLCOM = 1,
520    ekTMLCOM = 2,
521    ekTSPACE = 3,
522    ekTEOL = 4,
523    ekTLESS = 5,
524    ekTGREAT = 6,
525    ekTCOMMA = 7,
526    ekTPERIOD = 8,
527    ekTSCOLON = 9,
528    ekTCOLON = 10,
529    ekTOPENPAR = 11,
530    ekTCLOSPAR = 12,
531    ekTOPENBRAC = 13,
532    ekTCLOSBRAC = 14,
533    ekTOPENCURL = 15,
534    ekTCLOSCURL = 16,
535    ekTPLUS = 17,
536    ekTMINUS = 18,
537    ekTASTERK = 19,
538    ekTEQUALS = 20,
539    ekTDOLLAR = 21,
540    ekTPERCENT = 22,
541    ekTPOUND = 23,
542    ekTAMPER = 24,
543    ekTAPOST = 25,
544    ekTQUOTE = 26,
545    ekTCIRCUM = 27,
546    ekTTILDE = 28,
547    ekTEXCLA = 29,
548    ekTQUEST = 30,
549    ekTVLINE = 31,
550    ekTSLASH = 32,
551    ekTBSLASH = 33,
552    ekTAT = 34,
553    ekTINTEGER = 35,
554    ekTOCTAL = 36,
555    ekTHEX = 37,
556    ekTREAL = 38,
557    ekTSTRING = 39,
558    ekTIDENT = 40,
559    ekTUNDEF = 41,
560    ekTCORRUP = 42,
561    ekTEOF = 43,
562    ekTRESERVED = 44,
563}
564pub use self::_token_t as ltoken_t;
565#[repr(i32)]
566#[non_exhaustive]
567#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
568pub enum _dbindst_t {
569    ekDBIND_OK = 0,
570    ekDBIND_MEMBER_EXISTS = 1,
571    ekDBIND_TYPE_EXISTS = 2,
572    ekDBIND_TYPE_UNKNOWN = 3,
573    ekDBIND_TYPE_USED = 4,
574    ekDBIND_ALIAS_SIZE = 5,
575}
576pub use self::_dbindst_t as dbindst_t;
577pub type Buffer = _buffer_t;
578pub type String = _string_t;
579#[repr(C)]
580#[derive(Debug, Copy, Clone)]
581pub struct _stream_t {
582    _unused: [u8; 0],
583}
584pub type Stream = _stream_t;
585#[repr(C)]
586#[derive(Debug, Copy, Clone)]
587pub struct _array_t {
588    _unused: [u8; 0],
589}
590pub type Array = _array_t;
591#[repr(C)]
592#[derive(Debug, Copy, Clone)]
593pub struct _rbtree_t {
594    _unused: [u8; 0],
595}
596pub type RBTree = _rbtree_t;
597#[repr(C)]
598#[derive(Debug, Copy, Clone)]
599pub struct _regex {
600    _unused: [u8; 0],
601}
602pub type RegEx = _regex;
603#[repr(C)]
604#[derive(Debug, Copy, Clone)]
605pub struct _event_t {
606    _unused: [u8; 0],
607}
608pub type Event = _event_t;
609#[repr(C)]
610#[derive(Debug, Copy, Clone)]
611pub struct _keybuf_t {
612    _unused: [u8; 0],
613}
614pub type KeyBuf = _keybuf_t;
615#[repr(C)]
616#[derive(Debug, Copy, Clone)]
617pub struct _listener_t {
618    _unused: [u8; 0],
619}
620pub type Listener = _listener_t;
621pub type DirEntry = _direntry_t;
622pub type EvFileDir = _evfiledir_t;
623#[repr(C)]
624#[derive(Debug, Copy, Clone)]
625pub struct _respack {
626    _unused: [u8; 0],
627}
628pub type ResPack = _respack;
629pub type ResId = *const char_t;
630#[repr(C)]
631#[derive(Debug, Copy, Clone)]
632pub struct _clock_t {
633    _unused: [u8; 0],
634}
635pub type Clock = _clock_t;
636pub type Object = _object_t;
637pub type FPtr_remove = ::core::option::Option<unsafe extern "C" fn(obj: *mut ::libc::c_void)>;
638pub type FPtr_event_handler =
639    ::core::option::Option<unsafe extern "C" fn(obj: *mut ::libc::c_void, event: *mut Event)>;
640pub type FPtr_read =
641    ::core::option::Option<unsafe extern "C" fn(stream: *mut Stream) -> *mut ::libc::c_void>;
642pub type FPtr_read_init =
643    ::core::option::Option<unsafe extern "C" fn(stream: *mut Stream, obj: *mut ::libc::c_void)>;
644pub type FPtr_write =
645    ::core::option::Option<unsafe extern "C" fn(stream: *mut Stream, obj: *const ::libc::c_void)>;
646#[repr(C)]
647#[derive(Debug, Copy, Clone)]
648pub struct _buffer_t {
649    pub size: u32,
650    pub data: [::libc::c_char; 512usize],
651}
652#[repr(C)]
653#[derive(Debug, Copy, Clone)]
654pub struct _object_t {
655    pub count: u32,
656}
657#[repr(C)]
658#[derive(Debug, Copy, Clone)]
659pub struct _string_t {
660    pub size: u32,
661    pub data: [::libc::c_char; 512usize],
662}
663#[repr(C)]
664#[derive(Debug, Copy, Clone)]
665pub struct _direntry_t {
666    pub name: *mut String,
667    pub type_: file_type_t,
668    pub size: u64,
669    pub date: Date,
670}
671#[repr(C)]
672#[derive(Debug, Copy, Clone)]
673pub struct _evfiledir_t {
674    pub filename: *const char_t,
675    pub pathname: *const char_t,
676    pub depth: u32,
677}
678unsafe extern "C" {
679    pub fn array_create(esize: u16, type_: *const char_t) -> *mut Array;
680}
681unsafe extern "C" {
682    pub fn array_copy(
683        array: *const Array,
684        func_copy: FPtr_scopy,
685        type_: *const char_t,
686    ) -> *mut Array;
687}
688unsafe extern "C" {
689    pub fn array_copy_ptr(
690        array: *const Array,
691        func_copy: FPtr_copy,
692        type_: *const char_t,
693    ) -> *mut Array;
694}
695unsafe extern "C" {
696    pub fn array_read(
697        stream: *mut Stream,
698        esize: u16,
699        func_read_init: FPtr_read_init,
700        type_: *const char_t,
701    ) -> *mut Array;
702}
703unsafe extern "C" {
704    pub fn array_read_ptr(
705        stream: *mut Stream,
706        func_read: FPtr_read,
707        type_: *const char_t,
708    ) -> *mut Array;
709}
710unsafe extern "C" {
711    pub fn array_destroy(array: *mut *mut Array, func_remove: FPtr_remove, type_: *const char_t);
712}
713unsafe extern "C" {
714    pub fn array_destopt(array: *mut *mut Array, func_remove: FPtr_remove, type_: *const char_t);
715}
716unsafe extern "C" {
717    pub fn array_destroy_ptr(
718        array: *mut *mut Array,
719        func_destroy: FPtr_destroy,
720        type_: *const char_t,
721    );
722}
723unsafe extern "C" {
724    pub fn array_destopt_ptr(
725        array: *mut *mut Array,
726        func_destroy: FPtr_destroy,
727        type_: *const char_t,
728    );
729}
730unsafe extern "C" {
731    pub fn array_clear(array: *mut Array, func_remove: FPtr_remove);
732}
733unsafe extern "C" {
734    pub fn array_clear_ptr(array: *mut Array, func_destroy: FPtr_destroy);
735}
736unsafe extern "C" {
737    pub fn array_write(stream: *mut Stream, array: *const Array, func_write: FPtr_write);
738}
739unsafe extern "C" {
740    pub fn array_write_ptr(stream: *mut Stream, array: *const Array, func_write: FPtr_write);
741}
742unsafe extern "C" {
743    pub fn array_size(array: *const Array) -> u32;
744}
745unsafe extern "C" {
746    pub fn array_esize(array: *const Array) -> u32;
747}
748unsafe extern "C" {
749    pub fn array_get(array: *const Array, pos: u32) -> *mut byte_t;
750}
751unsafe extern "C" {
752    pub fn array_get_last(array: *const Array) -> *mut byte_t;
753}
754unsafe extern "C" {
755    pub fn array_all(array: *const Array) -> *mut byte_t;
756}
757unsafe extern "C" {
758    pub fn array_insert(array: *mut Array, pos: u32, n: u32) -> *mut byte_t;
759}
760unsafe extern "C" {
761    pub fn array_insert0(array: *mut Array, pos: u32, n: u32) -> *mut byte_t;
762}
763unsafe extern "C" {
764    pub fn array_join(dest: *mut Array, src: *const Array, func_copy: FPtr_scopy);
765}
766unsafe extern "C" {
767    pub fn array_join_ptr(dest: *mut Array, src: *const Array, func_copy: FPtr_copy);
768}
769unsafe extern "C" {
770    pub fn array_delete(array: *mut Array, pos: u32, n: u32, func_remove: FPtr_remove);
771}
772unsafe extern "C" {
773    pub fn array_delete_ptr(array: *mut Array, pos: u32, n: u32, func_destroy: FPtr_destroy);
774}
775unsafe extern "C" {
776    pub fn array_pop(array: *mut Array, func_remove: FPtr_remove);
777}
778unsafe extern "C" {
779    pub fn array_pop_ptr(array: *mut Array, func_destroy: FPtr_destroy);
780}
781unsafe extern "C" {
782    pub fn array_sort(array: *mut Array, func_compare: FPtr_compare);
783}
784unsafe extern "C" {
785    pub fn array_sort_ex(
786        array: *mut Array,
787        func_compare: FPtr_compare_ex,
788        data: *mut ::libc::c_void,
789    );
790}
791unsafe extern "C" {
792    pub fn array_sort_ptr(array: *mut Array, func_compare: FPtr_compare);
793}
794unsafe extern "C" {
795    pub fn array_sort_ptr_ex(
796        array: *mut Array,
797        func_compare: FPtr_compare_ex,
798        data: *mut ::libc::c_void,
799    );
800}
801unsafe extern "C" {
802    pub fn array_find_ptr(array: *const Array, elem: *const ::libc::c_void) -> u32;
803}
804unsafe extern "C" {
805    pub fn array_search(
806        array: *const Array,
807        func_compare: FPtr_compare,
808        key: *const ::libc::c_void,
809        pos: *mut u32,
810    ) -> *mut byte_t;
811}
812unsafe extern "C" {
813    pub fn array_search_ptr(
814        array: *const Array,
815        func_compare: FPtr_compare,
816        key: *const ::libc::c_void,
817        pos: *mut u32,
818    ) -> *mut byte_t;
819}
820unsafe extern "C" {
821    pub fn array_bsearch(
822        array: *const Array,
823        func_compare: FPtr_compare,
824        key: *const ::libc::c_void,
825        pos: *mut u32,
826    ) -> *mut byte_t;
827}
828unsafe extern "C" {
829    pub fn array_bsearch_ptr(
830        array: *const Array,
831        func_compare: FPtr_compare,
832        key: *const ::libc::c_void,
833        pos: *mut u32,
834    ) -> *mut byte_t;
835}
836unsafe extern "C" {
837    pub fn rbtree_create(
838        func_compare: FPtr_compare,
839        esize: u16,
840        ksize: u16,
841        type_: *const char_t,
842        ktype: *const char_t,
843    ) -> *mut RBTree;
844}
845unsafe extern "C" {
846    pub fn rbtree_destroy(
847        tree: *mut *mut RBTree,
848        func_remove: FPtr_remove,
849        func_destroy_key: FPtr_destroy,
850        type_: *const char_t,
851    );
852}
853unsafe extern "C" {
854    pub fn rbtree_destroy_ptr(
855        tree: *mut *mut RBTree,
856        func_destroy: FPtr_destroy,
857        func_destroy_key: FPtr_destroy,
858        type_: *const char_t,
859    );
860}
861unsafe extern "C" {
862    pub fn rbtree_size(tree: *const RBTree) -> u32;
863}
864unsafe extern "C" {
865    pub fn rbtree_get(
866        tree: *const RBTree,
867        key: *const ::libc::c_void,
868        isptr: bool_t,
869        ktype: *const char_t,
870    ) -> *mut byte_t;
871}
872unsafe extern "C" {
873    pub fn rbtree_insert(
874        tree: *mut RBTree,
875        key: *const ::libc::c_void,
876        func_key_copy: FPtr_copy,
877        ktype: *const char_t,
878    ) -> *mut byte_t;
879}
880unsafe extern "C" {
881    pub fn rbtree_insert_ptr(
882        tree: *mut RBTree,
883        key: *const ::libc::c_void,
884        ptr: *mut ::libc::c_void,
885        ktype: *const char_t,
886    ) -> bool_t;
887}
888unsafe extern "C" {
889    pub fn rbtree_delete(
890        tree: *mut RBTree,
891        key: *const ::libc::c_void,
892        func_remove: FPtr_remove,
893        func_destroy_key: FPtr_destroy,
894        ktype: *const char_t,
895    ) -> bool_t;
896}
897unsafe extern "C" {
898    pub fn rbtree_delete_ptr(
899        tree: *mut RBTree,
900        key: *const ::libc::c_void,
901        func_destroy: FPtr_destroy,
902        func_destroy_key: FPtr_destroy,
903        ktype: *const char_t,
904    ) -> bool_t;
905}
906unsafe extern "C" {
907    pub fn rbtree_first(tree: *mut RBTree) -> *mut byte_t;
908}
909unsafe extern "C" {
910    pub fn rbtree_last(tree: *mut RBTree) -> *mut byte_t;
911}
912unsafe extern "C" {
913    pub fn rbtree_next(tree: *mut RBTree) -> *mut byte_t;
914}
915unsafe extern "C" {
916    pub fn rbtree_prev(tree: *mut RBTree) -> *mut byte_t;
917}
918unsafe extern "C" {
919    pub fn rbtree_first_ptr(tree: *mut RBTree) -> *mut byte_t;
920}
921unsafe extern "C" {
922    pub fn rbtree_last_ptr(tree: *mut RBTree) -> *mut byte_t;
923}
924unsafe extern "C" {
925    pub fn rbtree_next_ptr(tree: *mut RBTree) -> *mut byte_t;
926}
927unsafe extern "C" {
928    pub fn rbtree_prev_ptr(tree: *mut RBTree) -> *mut byte_t;
929}
930unsafe extern "C" {
931    pub fn rbtree_get_key(tree: *const RBTree) -> *const char_t;
932}
933unsafe extern "C" {
934    pub fn rbtree_check(tree: *const RBTree) -> bool_t;
935}
936#[repr(C)]
937#[derive(Debug, Copy, Clone)]
938pub struct bool_tData {
939    pub elem: [bool_t; 1024usize],
940}
941#[repr(C)]
942#[derive(Debug, Copy, Clone)]
943pub struct ArrStbool_t {
944    pub reserved: u32,
945    pub size: u32,
946    pub elem_sizeof: u16,
947    pub content: *mut bool_tData,
948}
949#[repr(C)]
950#[derive(Debug, Copy, Clone)]
951pub struct NodeStbool_t {
952    pub rb: u32,
953    pub left: *mut NodeStbool_t,
954    pub right: *mut NodeStbool_t,
955    pub data: bool_t,
956}
957#[repr(C)]
958#[derive(Debug, Copy, Clone)]
959pub struct SetStbool_t {
960    pub elems: u32,
961    pub esize: u16,
962    pub ksize: u16,
963    pub root: *mut NodeStbool_t,
964    pub func_compare: FPtr_compare,
965}
966#[repr(C)]
967#[derive(Debug, Copy, Clone)]
968pub struct _arrstendbool_t_t {
969    _unused: [u8; 0],
970}
971pub type arrstendbool_t = _arrstendbool_t_t;
972#[repr(C)]
973#[derive(Debug, Copy, Clone)]
974pub struct _setstendbool_t_t {
975    _unused: [u8; 0],
976}
977pub type setstendbool_t = _setstendbool_t_t;
978#[repr(C)]
979#[derive(Debug, Copy, Clone)]
980pub struct int8_tData {
981    pub elem: [i8; 1024usize],
982}
983#[repr(C)]
984#[derive(Debug, Copy, Clone)]
985pub struct ArrStint8_t {
986    pub reserved: u32,
987    pub size: u32,
988    pub elem_sizeof: u16,
989    pub content: *mut int8_tData,
990}
991#[repr(C)]
992#[derive(Debug, Copy, Clone)]
993pub struct NodeStint8_t {
994    pub rb: u32,
995    pub left: *mut NodeStint8_t,
996    pub right: *mut NodeStint8_t,
997    pub data: i8,
998}
999#[repr(C)]
1000#[derive(Debug, Copy, Clone)]
1001pub struct SetStint8_t {
1002    pub elems: u32,
1003    pub esize: u16,
1004    pub ksize: u16,
1005    pub root: *mut NodeStint8_t,
1006    pub func_compare: FPtr_compare,
1007}
1008#[repr(C)]
1009#[derive(Debug, Copy, Clone)]
1010pub struct _arrstendint8_t_t {
1011    _unused: [u8; 0],
1012}
1013pub type arrstendint8_t = _arrstendint8_t_t;
1014#[repr(C)]
1015#[derive(Debug, Copy, Clone)]
1016pub struct _setstendint8_t_t {
1017    _unused: [u8; 0],
1018}
1019pub type setstendint8_t = _setstendint8_t_t;
1020#[repr(C)]
1021#[derive(Debug, Copy, Clone)]
1022pub struct int16_tData {
1023    pub elem: [i16; 1024usize],
1024}
1025#[repr(C)]
1026#[derive(Debug, Copy, Clone)]
1027pub struct ArrStint16_t {
1028    pub reserved: u32,
1029    pub size: u32,
1030    pub elem_sizeof: u16,
1031    pub content: *mut int16_tData,
1032}
1033#[repr(C)]
1034#[derive(Debug, Copy, Clone)]
1035pub struct NodeStint16_t {
1036    pub rb: u32,
1037    pub left: *mut NodeStint16_t,
1038    pub right: *mut NodeStint16_t,
1039    pub data: i16,
1040}
1041#[repr(C)]
1042#[derive(Debug, Copy, Clone)]
1043pub struct SetStint16_t {
1044    pub elems: u32,
1045    pub esize: u16,
1046    pub ksize: u16,
1047    pub root: *mut NodeStint16_t,
1048    pub func_compare: FPtr_compare,
1049}
1050#[repr(C)]
1051#[derive(Debug, Copy, Clone)]
1052pub struct _arrstendint16_t_t {
1053    _unused: [u8; 0],
1054}
1055pub type arrstendint16_t = _arrstendint16_t_t;
1056#[repr(C)]
1057#[derive(Debug, Copy, Clone)]
1058pub struct _setstendint16_t_t {
1059    _unused: [u8; 0],
1060}
1061pub type setstendint16_t = _setstendint16_t_t;
1062#[repr(C)]
1063#[derive(Debug, Copy, Clone)]
1064pub struct int32_tData {
1065    pub elem: [i32; 1024usize],
1066}
1067#[repr(C)]
1068#[derive(Debug, Copy, Clone)]
1069pub struct ArrStint32_t {
1070    pub reserved: u32,
1071    pub size: u32,
1072    pub elem_sizeof: u16,
1073    pub content: *mut int32_tData,
1074}
1075#[repr(C)]
1076#[derive(Debug, Copy, Clone)]
1077pub struct NodeStint32_t {
1078    pub rb: u32,
1079    pub left: *mut NodeStint32_t,
1080    pub right: *mut NodeStint32_t,
1081    pub data: i32,
1082}
1083#[repr(C)]
1084#[derive(Debug, Copy, Clone)]
1085pub struct SetStint32_t {
1086    pub elems: u32,
1087    pub esize: u16,
1088    pub ksize: u16,
1089    pub root: *mut NodeStint32_t,
1090    pub func_compare: FPtr_compare,
1091}
1092#[repr(C)]
1093#[derive(Debug, Copy, Clone)]
1094pub struct _arrstendint32_t_t {
1095    _unused: [u8; 0],
1096}
1097pub type arrstendint32_t = _arrstendint32_t_t;
1098#[repr(C)]
1099#[derive(Debug, Copy, Clone)]
1100pub struct _setstendint32_t_t {
1101    _unused: [u8; 0],
1102}
1103pub type setstendint32_t = _setstendint32_t_t;
1104#[repr(C)]
1105#[derive(Debug, Copy, Clone)]
1106pub struct int64_tData {
1107    pub elem: [i64; 1024usize],
1108}
1109#[repr(C)]
1110#[derive(Debug, Copy, Clone)]
1111pub struct ArrStint64_t {
1112    pub reserved: u32,
1113    pub size: u32,
1114    pub elem_sizeof: u16,
1115    pub content: *mut int64_tData,
1116}
1117#[repr(C)]
1118#[derive(Debug, Copy, Clone)]
1119pub struct NodeStint64_t {
1120    pub rb: u32,
1121    pub left: *mut NodeStint64_t,
1122    pub right: *mut NodeStint64_t,
1123    pub data: i64,
1124}
1125#[repr(C)]
1126#[derive(Debug, Copy, Clone)]
1127pub struct SetStint64_t {
1128    pub elems: u32,
1129    pub esize: u16,
1130    pub ksize: u16,
1131    pub root: *mut NodeStint64_t,
1132    pub func_compare: FPtr_compare,
1133}
1134#[repr(C)]
1135#[derive(Debug, Copy, Clone)]
1136pub struct _arrstendint64_t_t {
1137    _unused: [u8; 0],
1138}
1139pub type arrstendint64_t = _arrstendint64_t_t;
1140#[repr(C)]
1141#[derive(Debug, Copy, Clone)]
1142pub struct _setstendint64_t_t {
1143    _unused: [u8; 0],
1144}
1145pub type setstendint64_t = _setstendint64_t_t;
1146#[repr(C)]
1147#[derive(Debug, Copy, Clone)]
1148pub struct uint8_tData {
1149    pub elem: [u8; 1024usize],
1150}
1151#[repr(C)]
1152#[derive(Debug, Copy, Clone)]
1153pub struct ArrStuint8_t {
1154    pub reserved: u32,
1155    pub size: u32,
1156    pub elem_sizeof: u16,
1157    pub content: *mut uint8_tData,
1158}
1159#[repr(C)]
1160#[derive(Debug, Copy, Clone)]
1161pub struct NodeStuint8_t {
1162    pub rb: u32,
1163    pub left: *mut NodeStuint8_t,
1164    pub right: *mut NodeStuint8_t,
1165    pub data: u8,
1166}
1167#[repr(C)]
1168#[derive(Debug, Copy, Clone)]
1169pub struct SetStuint8_t {
1170    pub elems: u32,
1171    pub esize: u16,
1172    pub ksize: u16,
1173    pub root: *mut NodeStuint8_t,
1174    pub func_compare: FPtr_compare,
1175}
1176#[repr(C)]
1177#[derive(Debug, Copy, Clone)]
1178pub struct _arrstenduint8_t_t {
1179    _unused: [u8; 0],
1180}
1181pub type arrstenduint8_t = _arrstenduint8_t_t;
1182#[repr(C)]
1183#[derive(Debug, Copy, Clone)]
1184pub struct _setstenduint8_t_t {
1185    _unused: [u8; 0],
1186}
1187pub type setstenduint8_t = _setstenduint8_t_t;
1188#[repr(C)]
1189#[derive(Debug, Copy, Clone)]
1190pub struct uint16_tData {
1191    pub elem: [u16; 1024usize],
1192}
1193#[repr(C)]
1194#[derive(Debug, Copy, Clone)]
1195pub struct ArrStuint16_t {
1196    pub reserved: u32,
1197    pub size: u32,
1198    pub elem_sizeof: u16,
1199    pub content: *mut uint16_tData,
1200}
1201#[repr(C)]
1202#[derive(Debug, Copy, Clone)]
1203pub struct NodeStuint16_t {
1204    pub rb: u32,
1205    pub left: *mut NodeStuint16_t,
1206    pub right: *mut NodeStuint16_t,
1207    pub data: u16,
1208}
1209#[repr(C)]
1210#[derive(Debug, Copy, Clone)]
1211pub struct SetStuint16_t {
1212    pub elems: u32,
1213    pub esize: u16,
1214    pub ksize: u16,
1215    pub root: *mut NodeStuint16_t,
1216    pub func_compare: FPtr_compare,
1217}
1218#[repr(C)]
1219#[derive(Debug, Copy, Clone)]
1220pub struct _arrstenduint16_t_t {
1221    _unused: [u8; 0],
1222}
1223pub type arrstenduint16_t = _arrstenduint16_t_t;
1224#[repr(C)]
1225#[derive(Debug, Copy, Clone)]
1226pub struct _setstenduint16_t_t {
1227    _unused: [u8; 0],
1228}
1229pub type setstenduint16_t = _setstenduint16_t_t;
1230#[repr(C)]
1231#[derive(Debug, Copy, Clone)]
1232pub struct uint32_tData {
1233    pub elem: [u32; 1024usize],
1234}
1235#[repr(C)]
1236#[derive(Debug, Copy, Clone)]
1237pub struct ArrStuint32_t {
1238    pub reserved: u32,
1239    pub size: u32,
1240    pub elem_sizeof: u16,
1241    pub content: *mut uint32_tData,
1242}
1243#[repr(C)]
1244#[derive(Debug, Copy, Clone)]
1245pub struct NodeStuint32_t {
1246    pub rb: u32,
1247    pub left: *mut NodeStuint32_t,
1248    pub right: *mut NodeStuint32_t,
1249    pub data: u32,
1250}
1251#[repr(C)]
1252#[derive(Debug, Copy, Clone)]
1253pub struct SetStuint32_t {
1254    pub elems: u32,
1255    pub esize: u16,
1256    pub ksize: u16,
1257    pub root: *mut NodeStuint32_t,
1258    pub func_compare: FPtr_compare,
1259}
1260#[repr(C)]
1261#[derive(Debug, Copy, Clone)]
1262pub struct _arrstenduint32_t_t {
1263    _unused: [u8; 0],
1264}
1265pub type arrstenduint32_t = _arrstenduint32_t_t;
1266#[repr(C)]
1267#[derive(Debug, Copy, Clone)]
1268pub struct _setstenduint32_t_t {
1269    _unused: [u8; 0],
1270}
1271pub type setstenduint32_t = _setstenduint32_t_t;
1272#[repr(C)]
1273#[derive(Debug, Copy, Clone)]
1274pub struct uint64_tData {
1275    pub elem: [u64; 1024usize],
1276}
1277#[repr(C)]
1278#[derive(Debug, Copy, Clone)]
1279pub struct ArrStuint64_t {
1280    pub reserved: u32,
1281    pub size: u32,
1282    pub elem_sizeof: u16,
1283    pub content: *mut uint64_tData,
1284}
1285#[repr(C)]
1286#[derive(Debug, Copy, Clone)]
1287pub struct NodeStuint64_t {
1288    pub rb: u32,
1289    pub left: *mut NodeStuint64_t,
1290    pub right: *mut NodeStuint64_t,
1291    pub data: u64,
1292}
1293#[repr(C)]
1294#[derive(Debug, Copy, Clone)]
1295pub struct SetStuint64_t {
1296    pub elems: u32,
1297    pub esize: u16,
1298    pub ksize: u16,
1299    pub root: *mut NodeStuint64_t,
1300    pub func_compare: FPtr_compare,
1301}
1302#[repr(C)]
1303#[derive(Debug, Copy, Clone)]
1304pub struct _arrstenduint64_t_t {
1305    _unused: [u8; 0],
1306}
1307pub type arrstenduint64_t = _arrstenduint64_t_t;
1308#[repr(C)]
1309#[derive(Debug, Copy, Clone)]
1310pub struct _setstenduint64_t_t {
1311    _unused: [u8; 0],
1312}
1313pub type setstenduint64_t = _setstenduint64_t_t;
1314#[repr(C)]
1315#[derive(Debug, Copy, Clone)]
1316pub struct real32_tData {
1317    pub elem: [real32_t; 1024usize],
1318}
1319#[repr(C)]
1320#[derive(Debug, Copy, Clone)]
1321pub struct ArrStreal32_t {
1322    pub reserved: u32,
1323    pub size: u32,
1324    pub elem_sizeof: u16,
1325    pub content: *mut real32_tData,
1326}
1327#[repr(C)]
1328#[derive(Debug, Copy, Clone)]
1329pub struct NodeStreal32_t {
1330    pub rb: u32,
1331    pub left: *mut NodeStreal32_t,
1332    pub right: *mut NodeStreal32_t,
1333    pub data: real32_t,
1334}
1335#[repr(C)]
1336#[derive(Debug, Copy, Clone)]
1337pub struct SetStreal32_t {
1338    pub elems: u32,
1339    pub esize: u16,
1340    pub ksize: u16,
1341    pub root: *mut NodeStreal32_t,
1342    pub func_compare: FPtr_compare,
1343}
1344#[repr(C)]
1345#[derive(Debug, Copy, Clone)]
1346pub struct _arrstendreal32_t_t {
1347    _unused: [u8; 0],
1348}
1349pub type arrstendreal32_t = _arrstendreal32_t_t;
1350#[repr(C)]
1351#[derive(Debug, Copy, Clone)]
1352pub struct _setstendreal32_t_t {
1353    _unused: [u8; 0],
1354}
1355pub type setstendreal32_t = _setstendreal32_t_t;
1356#[repr(C)]
1357#[derive(Debug, Copy, Clone)]
1358pub struct real64_tData {
1359    pub elem: [real64_t; 1024usize],
1360}
1361#[repr(C)]
1362#[derive(Debug, Copy, Clone)]
1363pub struct ArrStreal64_t {
1364    pub reserved: u32,
1365    pub size: u32,
1366    pub elem_sizeof: u16,
1367    pub content: *mut real64_tData,
1368}
1369#[repr(C)]
1370#[derive(Debug, Copy, Clone)]
1371pub struct NodeStreal64_t {
1372    pub rb: u32,
1373    pub left: *mut NodeStreal64_t,
1374    pub right: *mut NodeStreal64_t,
1375    pub data: real64_t,
1376}
1377#[repr(C)]
1378#[derive(Debug, Copy, Clone)]
1379pub struct SetStreal64_t {
1380    pub elems: u32,
1381    pub esize: u16,
1382    pub ksize: u16,
1383    pub root: *mut NodeStreal64_t,
1384    pub func_compare: FPtr_compare,
1385}
1386#[repr(C)]
1387#[derive(Debug, Copy, Clone)]
1388pub struct _arrstendreal64_t_t {
1389    _unused: [u8; 0],
1390}
1391pub type arrstendreal64_t = _arrstendreal64_t_t;
1392#[repr(C)]
1393#[derive(Debug, Copy, Clone)]
1394pub struct _setstendreal64_t_t {
1395    _unused: [u8; 0],
1396}
1397pub type setstendreal64_t = _setstendreal64_t_t;
1398#[repr(C)]
1399#[derive(Debug, Copy, Clone)]
1400pub struct StringPtData {
1401    pub elem: [*mut String; 1024usize],
1402}
1403#[repr(C)]
1404#[derive(Debug, Copy, Clone)]
1405pub struct ArrPtString {
1406    pub reserved: u32,
1407    pub size: u32,
1408    pub elem_sizeof: u16,
1409    pub content: *mut StringPtData,
1410}
1411#[repr(C)]
1412#[derive(Debug, Copy, Clone)]
1413pub struct NodePtString {
1414    pub rb: u32,
1415    pub left: *mut NodePtString,
1416    pub right: *mut NodePtString,
1417    pub data: *mut String,
1418}
1419#[repr(C)]
1420#[derive(Debug, Copy, Clone)]
1421pub struct SetPtString {
1422    pub elems: u32,
1423    pub esize: u16,
1424    pub ksize: u16,
1425    pub root: *mut NodePtString,
1426    pub func_compare: FPtr_compare,
1427}
1428#[repr(C)]
1429#[derive(Debug, Copy, Clone)]
1430pub struct _arrptendString_t {
1431    _unused: [u8; 0],
1432}
1433pub type arrptendString = _arrptendString_t;
1434#[repr(C)]
1435#[derive(Debug, Copy, Clone)]
1436pub struct _setptendString_t {
1437    _unused: [u8; 0],
1438}
1439pub type setptendString = _setptendString_t;
1440#[repr(C)]
1441#[derive(Debug, Copy, Clone)]
1442pub struct DirEntryData {
1443    pub elem: [DirEntry; 1024usize],
1444}
1445#[repr(C)]
1446#[derive(Debug, Copy, Clone)]
1447pub struct ArrStDirEntry {
1448    pub reserved: u32,
1449    pub size: u32,
1450    pub elem_sizeof: u16,
1451    pub content: *mut DirEntryData,
1452}
1453#[repr(C)]
1454#[derive(Debug, Copy, Clone)]
1455pub struct NodeStDirEntry {
1456    pub rb: u32,
1457    pub left: *mut NodeStDirEntry,
1458    pub right: *mut NodeStDirEntry,
1459    pub data: DirEntry,
1460}
1461#[repr(C)]
1462#[derive(Debug, Copy, Clone)]
1463pub struct SetStDirEntry {
1464    pub elems: u32,
1465    pub esize: u16,
1466    pub ksize: u16,
1467    pub root: *mut NodeStDirEntry,
1468    pub func_compare: FPtr_compare,
1469}
1470#[repr(C)]
1471#[derive(Debug, Copy, Clone)]
1472pub struct _arrstendDirEntry_t {
1473    _unused: [u8; 0],
1474}
1475pub type arrstendDirEntry = _arrstendDirEntry_t;
1476#[repr(C)]
1477#[derive(Debug, Copy, Clone)]
1478pub struct _setstendDirEntry_t {
1479    _unused: [u8; 0],
1480}
1481pub type setstendDirEntry = _setstendDirEntry_t;
1482#[repr(C)]
1483#[derive(Debug, Copy, Clone)]
1484pub struct ResPackPtData {
1485    pub elem: [*mut ResPack; 1024usize],
1486}
1487#[repr(C)]
1488#[derive(Debug, Copy, Clone)]
1489pub struct ArrPtResPack {
1490    pub reserved: u32,
1491    pub size: u32,
1492    pub elem_sizeof: u16,
1493    pub content: *mut ResPackPtData,
1494}
1495#[repr(C)]
1496#[derive(Debug, Copy, Clone)]
1497pub struct NodePtResPack {
1498    pub rb: u32,
1499    pub left: *mut NodePtResPack,
1500    pub right: *mut NodePtResPack,
1501    pub data: *mut ResPack,
1502}
1503#[repr(C)]
1504#[derive(Debug, Copy, Clone)]
1505pub struct SetPtResPack {
1506    pub elems: u32,
1507    pub esize: u16,
1508    pub ksize: u16,
1509    pub root: *mut NodePtResPack,
1510    pub func_compare: FPtr_compare,
1511}
1512#[repr(C)]
1513#[derive(Debug, Copy, Clone)]
1514pub struct _arrptendResPack_t {
1515    _unused: [u8; 0],
1516}
1517pub type arrptendResPack = _arrptendResPack_t;
1518#[repr(C)]
1519#[derive(Debug, Copy, Clone)]
1520pub struct _setptendResPack_t {
1521    _unused: [u8; 0],
1522}
1523pub type setptendResPack = _setptendResPack_t;
1524#[repr(C)]
1525#[derive(Debug, Copy, Clone)]
1526pub struct RegExPtData {
1527    pub elem: [*mut RegEx; 1024usize],
1528}
1529#[repr(C)]
1530#[derive(Debug, Copy, Clone)]
1531pub struct ArrPtRegEx {
1532    pub reserved: u32,
1533    pub size: u32,
1534    pub elem_sizeof: u16,
1535    pub content: *mut RegExPtData,
1536}
1537#[repr(C)]
1538#[derive(Debug, Copy, Clone)]
1539pub struct NodePtRegEx {
1540    pub rb: u32,
1541    pub left: *mut NodePtRegEx,
1542    pub right: *mut NodePtRegEx,
1543    pub data: *mut RegEx,
1544}
1545#[repr(C)]
1546#[derive(Debug, Copy, Clone)]
1547pub struct SetPtRegEx {
1548    pub elems: u32,
1549    pub esize: u16,
1550    pub ksize: u16,
1551    pub root: *mut NodePtRegEx,
1552    pub func_compare: FPtr_compare,
1553}
1554#[repr(C)]
1555#[derive(Debug, Copy, Clone)]
1556pub struct _arrptendRegEx_t {
1557    _unused: [u8; 0],
1558}
1559pub type arrptendRegEx = _arrptendRegEx_t;
1560#[repr(C)]
1561#[derive(Debug, Copy, Clone)]
1562pub struct _setptendRegEx_t {
1563    _unused: [u8; 0],
1564}
1565pub type setptendRegEx = _setptendRegEx_t;
1566pub type V2Df = _v2df_t;
1567pub type V2Dd = _v2dd_t;
1568pub type S2Df = _s2df_t;
1569pub type S2Dd = _s2dd_t;
1570pub type R2Df = _r2df_t;
1571pub type R2Dd = _r2dd_t;
1572pub type T2Df = _t2df_t;
1573pub type T2Dd = _t2dd_t;
1574pub type Seg2Df = _seg2df_t;
1575pub type Seg2Dd = _seg2dd_t;
1576pub type Cir2Df = _cir2df_t;
1577pub type Cir2Dd = _cir2dd_t;
1578pub type Box2Df = _box2df_t;
1579pub type Box2Dd = _box2dd_t;
1580#[repr(C)]
1581#[derive(Debug, Copy, Clone)]
1582pub struct _obb2df_t {
1583    _unused: [u8; 0],
1584}
1585pub type OBB2Df = _obb2df_t;
1586#[repr(C)]
1587#[derive(Debug, Copy, Clone)]
1588pub struct _obb2dd_t {
1589    _unused: [u8; 0],
1590}
1591pub type OBB2Dd = _obb2dd_t;
1592pub type Tri2Df = _tri2df_t;
1593pub type Tri2Dd = _tri2dd_t;
1594#[repr(C)]
1595#[derive(Debug, Copy, Clone)]
1596pub struct _pol2df_t {
1597    _unused: [u8; 0],
1598}
1599pub type Pol2Df = _pol2df_t;
1600#[repr(C)]
1601#[derive(Debug, Copy, Clone)]
1602pub struct _pol2dd_t {
1603    _unused: [u8; 0],
1604}
1605pub type Pol2Dd = _pol2dd_t;
1606pub type Col2Df = _col2df_t;
1607pub type Col2Dd = _col2dd_t;
1608#[repr(C)]
1609#[derive(Debug, Copy, Clone)]
1610pub struct _v2df_t {
1611    pub x: real32_t,
1612    pub y: real32_t,
1613}
1614#[repr(C)]
1615#[derive(Debug, Copy, Clone)]
1616pub struct _v2dd_t {
1617    pub x: real64_t,
1618    pub y: real64_t,
1619}
1620#[repr(C)]
1621#[derive(Debug, Copy, Clone)]
1622pub struct _s2df_t {
1623    pub width: real32_t,
1624    pub height: real32_t,
1625}
1626#[repr(C)]
1627#[derive(Debug, Copy, Clone)]
1628pub struct _s2dd_t {
1629    pub width: real64_t,
1630    pub height: real64_t,
1631}
1632#[repr(C)]
1633#[derive(Debug, Copy, Clone)]
1634pub struct _r2df_t {
1635    pub pos: V2Df,
1636    pub size: S2Df,
1637}
1638#[repr(C)]
1639#[derive(Debug, Copy, Clone)]
1640pub struct _r2dd_t {
1641    pub pos: V2Dd,
1642    pub size: S2Dd,
1643}
1644#[repr(C)]
1645#[derive(Debug, Copy, Clone)]
1646pub struct _t2df_t {
1647    pub i: V2Df,
1648    pub j: V2Df,
1649    pub p: V2Df,
1650}
1651#[repr(C)]
1652#[derive(Debug, Copy, Clone)]
1653pub struct _t2dd_t {
1654    pub i: V2Dd,
1655    pub j: V2Dd,
1656    pub p: V2Dd,
1657}
1658#[repr(C)]
1659#[derive(Debug, Copy, Clone)]
1660pub struct _seg2df_t {
1661    pub p0: V2Df,
1662    pub p1: V2Df,
1663}
1664#[repr(C)]
1665#[derive(Debug, Copy, Clone)]
1666pub struct _seg2dd_t {
1667    pub p0: V2Dd,
1668    pub p1: V2Dd,
1669}
1670#[repr(C)]
1671#[derive(Debug, Copy, Clone)]
1672pub struct _cir2df_t {
1673    pub c: V2Df,
1674    pub r: real32_t,
1675}
1676#[repr(C)]
1677#[derive(Debug, Copy, Clone)]
1678pub struct _cir2dd_t {
1679    pub c: V2Dd,
1680    pub r: real64_t,
1681}
1682#[repr(C)]
1683#[derive(Debug, Copy, Clone)]
1684pub struct _box2df_t {
1685    pub min: V2Df,
1686    pub max: V2Df,
1687}
1688#[repr(C)]
1689#[derive(Debug, Copy, Clone)]
1690pub struct _box2dd_t {
1691    pub min: V2Dd,
1692    pub max: V2Dd,
1693}
1694#[repr(C)]
1695#[derive(Debug, Copy, Clone)]
1696pub struct _tri2df_t {
1697    pub p0: V2Df,
1698    pub p1: V2Df,
1699    pub p2: V2Df,
1700}
1701#[repr(C)]
1702#[derive(Debug, Copy, Clone)]
1703pub struct _tri2dd_t {
1704    pub p0: V2Dd,
1705    pub p1: V2Dd,
1706    pub p2: V2Dd,
1707}
1708#[repr(C)]
1709#[derive(Debug, Copy, Clone)]
1710pub struct _col2df_t {
1711    pub p: V2Df,
1712    pub n: V2Df,
1713    pub d: real32_t,
1714}
1715#[repr(C)]
1716#[derive(Debug, Copy, Clone)]
1717pub struct _col2dd_t {
1718    pub p: V2Dd,
1719    pub n: V2Dd,
1720    pub d: real64_t,
1721}
1722#[repr(C)]
1723#[derive(Debug, Copy, Clone)]
1724pub struct V2DfData {
1725    pub elem: [V2Df; 1024usize],
1726}
1727#[repr(C)]
1728#[derive(Debug, Copy, Clone)]
1729pub struct ArrStV2Df {
1730    pub reserved: u32,
1731    pub size: u32,
1732    pub elem_sizeof: u16,
1733    pub content: *mut V2DfData,
1734}
1735#[repr(C)]
1736#[derive(Debug, Copy, Clone)]
1737pub struct NodeStV2Df {
1738    pub rb: u32,
1739    pub left: *mut NodeStV2Df,
1740    pub right: *mut NodeStV2Df,
1741    pub data: V2Df,
1742}
1743#[repr(C)]
1744#[derive(Debug, Copy, Clone)]
1745pub struct SetStV2Df {
1746    pub elems: u32,
1747    pub esize: u16,
1748    pub ksize: u16,
1749    pub root: *mut NodeStV2Df,
1750    pub func_compare: FPtr_compare,
1751}
1752#[repr(C)]
1753#[derive(Debug, Copy, Clone)]
1754pub struct _arrstendV2Df_t {
1755    _unused: [u8; 0],
1756}
1757pub type arrstendV2Df = _arrstendV2Df_t;
1758#[repr(C)]
1759#[derive(Debug, Copy, Clone)]
1760pub struct _setstendV2Df_t {
1761    _unused: [u8; 0],
1762}
1763pub type setstendV2Df = _setstendV2Df_t;
1764#[repr(C)]
1765#[derive(Debug, Copy, Clone)]
1766pub struct V2DdData {
1767    pub elem: [V2Dd; 1024usize],
1768}
1769#[repr(C)]
1770#[derive(Debug, Copy, Clone)]
1771pub struct ArrStV2Dd {
1772    pub reserved: u32,
1773    pub size: u32,
1774    pub elem_sizeof: u16,
1775    pub content: *mut V2DdData,
1776}
1777#[repr(C)]
1778#[derive(Debug, Copy, Clone)]
1779pub struct NodeStV2Dd {
1780    pub rb: u32,
1781    pub left: *mut NodeStV2Dd,
1782    pub right: *mut NodeStV2Dd,
1783    pub data: V2Dd,
1784}
1785#[repr(C)]
1786#[derive(Debug, Copy, Clone)]
1787pub struct SetStV2Dd {
1788    pub elems: u32,
1789    pub esize: u16,
1790    pub ksize: u16,
1791    pub root: *mut NodeStV2Dd,
1792    pub func_compare: FPtr_compare,
1793}
1794#[repr(C)]
1795#[derive(Debug, Copy, Clone)]
1796pub struct _arrstendV2Dd_t {
1797    _unused: [u8; 0],
1798}
1799pub type arrstendV2Dd = _arrstendV2Dd_t;
1800#[repr(C)]
1801#[derive(Debug, Copy, Clone)]
1802pub struct _setstendV2Dd_t {
1803    _unused: [u8; 0],
1804}
1805pub type setstendV2Dd = _setstendV2Dd_t;
1806#[repr(C)]
1807#[derive(Debug, Copy, Clone)]
1808pub struct S2DfData {
1809    pub elem: [S2Df; 1024usize],
1810}
1811#[repr(C)]
1812#[derive(Debug, Copy, Clone)]
1813pub struct ArrStS2Df {
1814    pub reserved: u32,
1815    pub size: u32,
1816    pub elem_sizeof: u16,
1817    pub content: *mut S2DfData,
1818}
1819#[repr(C)]
1820#[derive(Debug, Copy, Clone)]
1821pub struct NodeStS2Df {
1822    pub rb: u32,
1823    pub left: *mut NodeStS2Df,
1824    pub right: *mut NodeStS2Df,
1825    pub data: S2Df,
1826}
1827#[repr(C)]
1828#[derive(Debug, Copy, Clone)]
1829pub struct SetStS2Df {
1830    pub elems: u32,
1831    pub esize: u16,
1832    pub ksize: u16,
1833    pub root: *mut NodeStS2Df,
1834    pub func_compare: FPtr_compare,
1835}
1836#[repr(C)]
1837#[derive(Debug, Copy, Clone)]
1838pub struct _arrstendS2Df_t {
1839    _unused: [u8; 0],
1840}
1841pub type arrstendS2Df = _arrstendS2Df_t;
1842#[repr(C)]
1843#[derive(Debug, Copy, Clone)]
1844pub struct _setstendS2Df_t {
1845    _unused: [u8; 0],
1846}
1847pub type setstendS2Df = _setstendS2Df_t;
1848#[repr(C)]
1849#[derive(Debug, Copy, Clone)]
1850pub struct S2DdData {
1851    pub elem: [S2Dd; 1024usize],
1852}
1853#[repr(C)]
1854#[derive(Debug, Copy, Clone)]
1855pub struct ArrStS2Dd {
1856    pub reserved: u32,
1857    pub size: u32,
1858    pub elem_sizeof: u16,
1859    pub content: *mut S2DdData,
1860}
1861#[repr(C)]
1862#[derive(Debug, Copy, Clone)]
1863pub struct NodeStS2Dd {
1864    pub rb: u32,
1865    pub left: *mut NodeStS2Dd,
1866    pub right: *mut NodeStS2Dd,
1867    pub data: S2Dd,
1868}
1869#[repr(C)]
1870#[derive(Debug, Copy, Clone)]
1871pub struct SetStS2Dd {
1872    pub elems: u32,
1873    pub esize: u16,
1874    pub ksize: u16,
1875    pub root: *mut NodeStS2Dd,
1876    pub func_compare: FPtr_compare,
1877}
1878#[repr(C)]
1879#[derive(Debug, Copy, Clone)]
1880pub struct _arrstendS2Dd_t {
1881    _unused: [u8; 0],
1882}
1883pub type arrstendS2Dd = _arrstendS2Dd_t;
1884#[repr(C)]
1885#[derive(Debug, Copy, Clone)]
1886pub struct _setstendS2Dd_t {
1887    _unused: [u8; 0],
1888}
1889pub type setstendS2Dd = _setstendS2Dd_t;
1890#[repr(C)]
1891#[derive(Debug, Copy, Clone)]
1892pub struct R2DfData {
1893    pub elem: [R2Df; 1024usize],
1894}
1895#[repr(C)]
1896#[derive(Debug, Copy, Clone)]
1897pub struct ArrStR2Df {
1898    pub reserved: u32,
1899    pub size: u32,
1900    pub elem_sizeof: u16,
1901    pub content: *mut R2DfData,
1902}
1903#[repr(C)]
1904#[derive(Debug, Copy, Clone)]
1905pub struct NodeStR2Df {
1906    pub rb: u32,
1907    pub left: *mut NodeStR2Df,
1908    pub right: *mut NodeStR2Df,
1909    pub data: R2Df,
1910}
1911#[repr(C)]
1912#[derive(Debug, Copy, Clone)]
1913pub struct SetStR2Df {
1914    pub elems: u32,
1915    pub esize: u16,
1916    pub ksize: u16,
1917    pub root: *mut NodeStR2Df,
1918    pub func_compare: FPtr_compare,
1919}
1920#[repr(C)]
1921#[derive(Debug, Copy, Clone)]
1922pub struct _arrstendR2Df_t {
1923    _unused: [u8; 0],
1924}
1925pub type arrstendR2Df = _arrstendR2Df_t;
1926#[repr(C)]
1927#[derive(Debug, Copy, Clone)]
1928pub struct _setstendR2Df_t {
1929    _unused: [u8; 0],
1930}
1931pub type setstendR2Df = _setstendR2Df_t;
1932#[repr(C)]
1933#[derive(Debug, Copy, Clone)]
1934pub struct R2DdData {
1935    pub elem: [R2Dd; 1024usize],
1936}
1937#[repr(C)]
1938#[derive(Debug, Copy, Clone)]
1939pub struct ArrStR2Dd {
1940    pub reserved: u32,
1941    pub size: u32,
1942    pub elem_sizeof: u16,
1943    pub content: *mut R2DdData,
1944}
1945#[repr(C)]
1946#[derive(Debug, Copy, Clone)]
1947pub struct NodeStR2Dd {
1948    pub rb: u32,
1949    pub left: *mut NodeStR2Dd,
1950    pub right: *mut NodeStR2Dd,
1951    pub data: R2Dd,
1952}
1953#[repr(C)]
1954#[derive(Debug, Copy, Clone)]
1955pub struct SetStR2Dd {
1956    pub elems: u32,
1957    pub esize: u16,
1958    pub ksize: u16,
1959    pub root: *mut NodeStR2Dd,
1960    pub func_compare: FPtr_compare,
1961}
1962#[repr(C)]
1963#[derive(Debug, Copy, Clone)]
1964pub struct _arrstendR2Dd_t {
1965    _unused: [u8; 0],
1966}
1967pub type arrstendR2Dd = _arrstendR2Dd_t;
1968#[repr(C)]
1969#[derive(Debug, Copy, Clone)]
1970pub struct _setstendR2Dd_t {
1971    _unused: [u8; 0],
1972}
1973pub type setstendR2Dd = _setstendR2Dd_t;
1974#[repr(C)]
1975#[derive(Debug, Copy, Clone)]
1976pub struct T2DfData {
1977    pub elem: [T2Df; 1024usize],
1978}
1979#[repr(C)]
1980#[derive(Debug, Copy, Clone)]
1981pub struct ArrStT2Df {
1982    pub reserved: u32,
1983    pub size: u32,
1984    pub elem_sizeof: u16,
1985    pub content: *mut T2DfData,
1986}
1987#[repr(C)]
1988#[derive(Debug, Copy, Clone)]
1989pub struct NodeStT2Df {
1990    pub rb: u32,
1991    pub left: *mut NodeStT2Df,
1992    pub right: *mut NodeStT2Df,
1993    pub data: T2Df,
1994}
1995#[repr(C)]
1996#[derive(Debug, Copy, Clone)]
1997pub struct SetStT2Df {
1998    pub elems: u32,
1999    pub esize: u16,
2000    pub ksize: u16,
2001    pub root: *mut NodeStT2Df,
2002    pub func_compare: FPtr_compare,
2003}
2004#[repr(C)]
2005#[derive(Debug, Copy, Clone)]
2006pub struct _arrstendT2Df_t {
2007    _unused: [u8; 0],
2008}
2009pub type arrstendT2Df = _arrstendT2Df_t;
2010#[repr(C)]
2011#[derive(Debug, Copy, Clone)]
2012pub struct _setstendT2Df_t {
2013    _unused: [u8; 0],
2014}
2015pub type setstendT2Df = _setstendT2Df_t;
2016#[repr(C)]
2017#[derive(Debug, Copy, Clone)]
2018pub struct T2DdData {
2019    pub elem: [T2Dd; 1024usize],
2020}
2021#[repr(C)]
2022#[derive(Debug, Copy, Clone)]
2023pub struct ArrStT2Dd {
2024    pub reserved: u32,
2025    pub size: u32,
2026    pub elem_sizeof: u16,
2027    pub content: *mut T2DdData,
2028}
2029#[repr(C)]
2030#[derive(Debug, Copy, Clone)]
2031pub struct NodeStT2Dd {
2032    pub rb: u32,
2033    pub left: *mut NodeStT2Dd,
2034    pub right: *mut NodeStT2Dd,
2035    pub data: T2Dd,
2036}
2037#[repr(C)]
2038#[derive(Debug, Copy, Clone)]
2039pub struct SetStT2Dd {
2040    pub elems: u32,
2041    pub esize: u16,
2042    pub ksize: u16,
2043    pub root: *mut NodeStT2Dd,
2044    pub func_compare: FPtr_compare,
2045}
2046#[repr(C)]
2047#[derive(Debug, Copy, Clone)]
2048pub struct _arrstendT2Dd_t {
2049    _unused: [u8; 0],
2050}
2051pub type arrstendT2Dd = _arrstendT2Dd_t;
2052#[repr(C)]
2053#[derive(Debug, Copy, Clone)]
2054pub struct _setstendT2Dd_t {
2055    _unused: [u8; 0],
2056}
2057pub type setstendT2Dd = _setstendT2Dd_t;
2058#[repr(C)]
2059#[derive(Debug, Copy, Clone)]
2060pub struct Seg2DfData {
2061    pub elem: [Seg2Df; 1024usize],
2062}
2063#[repr(C)]
2064#[derive(Debug, Copy, Clone)]
2065pub struct ArrStSeg2Df {
2066    pub reserved: u32,
2067    pub size: u32,
2068    pub elem_sizeof: u16,
2069    pub content: *mut Seg2DfData,
2070}
2071#[repr(C)]
2072#[derive(Debug, Copy, Clone)]
2073pub struct NodeStSeg2Df {
2074    pub rb: u32,
2075    pub left: *mut NodeStSeg2Df,
2076    pub right: *mut NodeStSeg2Df,
2077    pub data: Seg2Df,
2078}
2079#[repr(C)]
2080#[derive(Debug, Copy, Clone)]
2081pub struct SetStSeg2Df {
2082    pub elems: u32,
2083    pub esize: u16,
2084    pub ksize: u16,
2085    pub root: *mut NodeStSeg2Df,
2086    pub func_compare: FPtr_compare,
2087}
2088#[repr(C)]
2089#[derive(Debug, Copy, Clone)]
2090pub struct _arrstendSeg2Df_t {
2091    _unused: [u8; 0],
2092}
2093pub type arrstendSeg2Df = _arrstendSeg2Df_t;
2094#[repr(C)]
2095#[derive(Debug, Copy, Clone)]
2096pub struct _setstendSeg2Df_t {
2097    _unused: [u8; 0],
2098}
2099pub type setstendSeg2Df = _setstendSeg2Df_t;
2100#[repr(C)]
2101#[derive(Debug, Copy, Clone)]
2102pub struct Seg2DdData {
2103    pub elem: [Seg2Dd; 1024usize],
2104}
2105#[repr(C)]
2106#[derive(Debug, Copy, Clone)]
2107pub struct ArrStSeg2Dd {
2108    pub reserved: u32,
2109    pub size: u32,
2110    pub elem_sizeof: u16,
2111    pub content: *mut Seg2DdData,
2112}
2113#[repr(C)]
2114#[derive(Debug, Copy, Clone)]
2115pub struct NodeStSeg2Dd {
2116    pub rb: u32,
2117    pub left: *mut NodeStSeg2Dd,
2118    pub right: *mut NodeStSeg2Dd,
2119    pub data: Seg2Dd,
2120}
2121#[repr(C)]
2122#[derive(Debug, Copy, Clone)]
2123pub struct SetStSeg2Dd {
2124    pub elems: u32,
2125    pub esize: u16,
2126    pub ksize: u16,
2127    pub root: *mut NodeStSeg2Dd,
2128    pub func_compare: FPtr_compare,
2129}
2130#[repr(C)]
2131#[derive(Debug, Copy, Clone)]
2132pub struct _arrstendSeg2Dd_t {
2133    _unused: [u8; 0],
2134}
2135pub type arrstendSeg2Dd = _arrstendSeg2Dd_t;
2136#[repr(C)]
2137#[derive(Debug, Copy, Clone)]
2138pub struct _setstendSeg2Dd_t {
2139    _unused: [u8; 0],
2140}
2141pub type setstendSeg2Dd = _setstendSeg2Dd_t;
2142#[repr(C)]
2143#[derive(Debug, Copy, Clone)]
2144pub struct Cir2DfData {
2145    pub elem: [Cir2Df; 1024usize],
2146}
2147#[repr(C)]
2148#[derive(Debug, Copy, Clone)]
2149pub struct ArrStCir2Df {
2150    pub reserved: u32,
2151    pub size: u32,
2152    pub elem_sizeof: u16,
2153    pub content: *mut Cir2DfData,
2154}
2155#[repr(C)]
2156#[derive(Debug, Copy, Clone)]
2157pub struct NodeStCir2Df {
2158    pub rb: u32,
2159    pub left: *mut NodeStCir2Df,
2160    pub right: *mut NodeStCir2Df,
2161    pub data: Cir2Df,
2162}
2163#[repr(C)]
2164#[derive(Debug, Copy, Clone)]
2165pub struct SetStCir2Df {
2166    pub elems: u32,
2167    pub esize: u16,
2168    pub ksize: u16,
2169    pub root: *mut NodeStCir2Df,
2170    pub func_compare: FPtr_compare,
2171}
2172#[repr(C)]
2173#[derive(Debug, Copy, Clone)]
2174pub struct _arrstendCir2Df_t {
2175    _unused: [u8; 0],
2176}
2177pub type arrstendCir2Df = _arrstendCir2Df_t;
2178#[repr(C)]
2179#[derive(Debug, Copy, Clone)]
2180pub struct _setstendCir2Df_t {
2181    _unused: [u8; 0],
2182}
2183pub type setstendCir2Df = _setstendCir2Df_t;
2184#[repr(C)]
2185#[derive(Debug, Copy, Clone)]
2186pub struct Cir2DdData {
2187    pub elem: [Cir2Dd; 1024usize],
2188}
2189#[repr(C)]
2190#[derive(Debug, Copy, Clone)]
2191pub struct ArrStCir2Dd {
2192    pub reserved: u32,
2193    pub size: u32,
2194    pub elem_sizeof: u16,
2195    pub content: *mut Cir2DdData,
2196}
2197#[repr(C)]
2198#[derive(Debug, Copy, Clone)]
2199pub struct NodeStCir2Dd {
2200    pub rb: u32,
2201    pub left: *mut NodeStCir2Dd,
2202    pub right: *mut NodeStCir2Dd,
2203    pub data: Cir2Dd,
2204}
2205#[repr(C)]
2206#[derive(Debug, Copy, Clone)]
2207pub struct SetStCir2Dd {
2208    pub elems: u32,
2209    pub esize: u16,
2210    pub ksize: u16,
2211    pub root: *mut NodeStCir2Dd,
2212    pub func_compare: FPtr_compare,
2213}
2214#[repr(C)]
2215#[derive(Debug, Copy, Clone)]
2216pub struct _arrstendCir2Dd_t {
2217    _unused: [u8; 0],
2218}
2219pub type arrstendCir2Dd = _arrstendCir2Dd_t;
2220#[repr(C)]
2221#[derive(Debug, Copy, Clone)]
2222pub struct _setstendCir2Dd_t {
2223    _unused: [u8; 0],
2224}
2225pub type setstendCir2Dd = _setstendCir2Dd_t;
2226#[repr(C)]
2227#[derive(Debug, Copy, Clone)]
2228pub struct Box2DfData {
2229    pub elem: [Box2Df; 1024usize],
2230}
2231#[repr(C)]
2232#[derive(Debug, Copy, Clone)]
2233pub struct ArrStBox2Df {
2234    pub reserved: u32,
2235    pub size: u32,
2236    pub elem_sizeof: u16,
2237    pub content: *mut Box2DfData,
2238}
2239#[repr(C)]
2240#[derive(Debug, Copy, Clone)]
2241pub struct NodeStBox2Df {
2242    pub rb: u32,
2243    pub left: *mut NodeStBox2Df,
2244    pub right: *mut NodeStBox2Df,
2245    pub data: Box2Df,
2246}
2247#[repr(C)]
2248#[derive(Debug, Copy, Clone)]
2249pub struct SetStBox2Df {
2250    pub elems: u32,
2251    pub esize: u16,
2252    pub ksize: u16,
2253    pub root: *mut NodeStBox2Df,
2254    pub func_compare: FPtr_compare,
2255}
2256#[repr(C)]
2257#[derive(Debug, Copy, Clone)]
2258pub struct _arrstendBox2Df_t {
2259    _unused: [u8; 0],
2260}
2261pub type arrstendBox2Df = _arrstendBox2Df_t;
2262#[repr(C)]
2263#[derive(Debug, Copy, Clone)]
2264pub struct _setstendBox2Df_t {
2265    _unused: [u8; 0],
2266}
2267pub type setstendBox2Df = _setstendBox2Df_t;
2268#[repr(C)]
2269#[derive(Debug, Copy, Clone)]
2270pub struct Box2DdData {
2271    pub elem: [Box2Dd; 1024usize],
2272}
2273#[repr(C)]
2274#[derive(Debug, Copy, Clone)]
2275pub struct ArrStBox2Dd {
2276    pub reserved: u32,
2277    pub size: u32,
2278    pub elem_sizeof: u16,
2279    pub content: *mut Box2DdData,
2280}
2281#[repr(C)]
2282#[derive(Debug, Copy, Clone)]
2283pub struct NodeStBox2Dd {
2284    pub rb: u32,
2285    pub left: *mut NodeStBox2Dd,
2286    pub right: *mut NodeStBox2Dd,
2287    pub data: Box2Dd,
2288}
2289#[repr(C)]
2290#[derive(Debug, Copy, Clone)]
2291pub struct SetStBox2Dd {
2292    pub elems: u32,
2293    pub esize: u16,
2294    pub ksize: u16,
2295    pub root: *mut NodeStBox2Dd,
2296    pub func_compare: FPtr_compare,
2297}
2298#[repr(C)]
2299#[derive(Debug, Copy, Clone)]
2300pub struct _arrstendBox2Dd_t {
2301    _unused: [u8; 0],
2302}
2303pub type arrstendBox2Dd = _arrstendBox2Dd_t;
2304#[repr(C)]
2305#[derive(Debug, Copy, Clone)]
2306pub struct _setstendBox2Dd_t {
2307    _unused: [u8; 0],
2308}
2309pub type setstendBox2Dd = _setstendBox2Dd_t;
2310#[repr(C)]
2311#[derive(Debug, Copy, Clone)]
2312pub struct Tri2DfData {
2313    pub elem: [Tri2Df; 1024usize],
2314}
2315#[repr(C)]
2316#[derive(Debug, Copy, Clone)]
2317pub struct ArrStTri2Df {
2318    pub reserved: u32,
2319    pub size: u32,
2320    pub elem_sizeof: u16,
2321    pub content: *mut Tri2DfData,
2322}
2323#[repr(C)]
2324#[derive(Debug, Copy, Clone)]
2325pub struct NodeStTri2Df {
2326    pub rb: u32,
2327    pub left: *mut NodeStTri2Df,
2328    pub right: *mut NodeStTri2Df,
2329    pub data: Tri2Df,
2330}
2331#[repr(C)]
2332#[derive(Debug, Copy, Clone)]
2333pub struct SetStTri2Df {
2334    pub elems: u32,
2335    pub esize: u16,
2336    pub ksize: u16,
2337    pub root: *mut NodeStTri2Df,
2338    pub func_compare: FPtr_compare,
2339}
2340#[repr(C)]
2341#[derive(Debug, Copy, Clone)]
2342pub struct _arrstendTri2Df_t {
2343    _unused: [u8; 0],
2344}
2345pub type arrstendTri2Df = _arrstendTri2Df_t;
2346#[repr(C)]
2347#[derive(Debug, Copy, Clone)]
2348pub struct _setstendTri2Df_t {
2349    _unused: [u8; 0],
2350}
2351pub type setstendTri2Df = _setstendTri2Df_t;
2352#[repr(C)]
2353#[derive(Debug, Copy, Clone)]
2354pub struct Tri2DdData {
2355    pub elem: [Tri2Dd; 1024usize],
2356}
2357#[repr(C)]
2358#[derive(Debug, Copy, Clone)]
2359pub struct ArrStTri2Dd {
2360    pub reserved: u32,
2361    pub size: u32,
2362    pub elem_sizeof: u16,
2363    pub content: *mut Tri2DdData,
2364}
2365#[repr(C)]
2366#[derive(Debug, Copy, Clone)]
2367pub struct NodeStTri2Dd {
2368    pub rb: u32,
2369    pub left: *mut NodeStTri2Dd,
2370    pub right: *mut NodeStTri2Dd,
2371    pub data: Tri2Dd,
2372}
2373#[repr(C)]
2374#[derive(Debug, Copy, Clone)]
2375pub struct SetStTri2Dd {
2376    pub elems: u32,
2377    pub esize: u16,
2378    pub ksize: u16,
2379    pub root: *mut NodeStTri2Dd,
2380    pub func_compare: FPtr_compare,
2381}
2382#[repr(C)]
2383#[derive(Debug, Copy, Clone)]
2384pub struct _arrstendTri2Dd_t {
2385    _unused: [u8; 0],
2386}
2387pub type arrstendTri2Dd = _arrstendTri2Dd_t;
2388#[repr(C)]
2389#[derive(Debug, Copy, Clone)]
2390pub struct _setstendTri2Dd_t {
2391    _unused: [u8; 0],
2392}
2393pub type setstendTri2Dd = _setstendTri2Dd_t;
2394#[repr(C)]
2395#[derive(Debug, Copy, Clone)]
2396pub struct Pol2DfPtData {
2397    pub elem: [*mut Pol2Df; 1024usize],
2398}
2399#[repr(C)]
2400#[derive(Debug, Copy, Clone)]
2401pub struct ArrPtPol2Df {
2402    pub reserved: u32,
2403    pub size: u32,
2404    pub elem_sizeof: u16,
2405    pub content: *mut Pol2DfPtData,
2406}
2407#[repr(C)]
2408#[derive(Debug, Copy, Clone)]
2409pub struct NodePtPol2Df {
2410    pub rb: u32,
2411    pub left: *mut NodePtPol2Df,
2412    pub right: *mut NodePtPol2Df,
2413    pub data: *mut Pol2Df,
2414}
2415#[repr(C)]
2416#[derive(Debug, Copy, Clone)]
2417pub struct SetPtPol2Df {
2418    pub elems: u32,
2419    pub esize: u16,
2420    pub ksize: u16,
2421    pub root: *mut NodePtPol2Df,
2422    pub func_compare: FPtr_compare,
2423}
2424#[repr(C)]
2425#[derive(Debug, Copy, Clone)]
2426pub struct _arrptendPol2Df_t {
2427    _unused: [u8; 0],
2428}
2429pub type arrptendPol2Df = _arrptendPol2Df_t;
2430#[repr(C)]
2431#[derive(Debug, Copy, Clone)]
2432pub struct _setptendPol2Df_t {
2433    _unused: [u8; 0],
2434}
2435pub type setptendPol2Df = _setptendPol2Df_t;
2436#[repr(C)]
2437#[derive(Debug, Copy, Clone)]
2438pub struct Pol2DdPtData {
2439    pub elem: [*mut Pol2Dd; 1024usize],
2440}
2441#[repr(C)]
2442#[derive(Debug, Copy, Clone)]
2443pub struct ArrPtPol2Dd {
2444    pub reserved: u32,
2445    pub size: u32,
2446    pub elem_sizeof: u16,
2447    pub content: *mut Pol2DdPtData,
2448}
2449#[repr(C)]
2450#[derive(Debug, Copy, Clone)]
2451pub struct NodePtPol2Dd {
2452    pub rb: u32,
2453    pub left: *mut NodePtPol2Dd,
2454    pub right: *mut NodePtPol2Dd,
2455    pub data: *mut Pol2Dd,
2456}
2457#[repr(C)]
2458#[derive(Debug, Copy, Clone)]
2459pub struct SetPtPol2Dd {
2460    pub elems: u32,
2461    pub esize: u16,
2462    pub ksize: u16,
2463    pub root: *mut NodePtPol2Dd,
2464    pub func_compare: FPtr_compare,
2465}
2466#[repr(C)]
2467#[derive(Debug, Copy, Clone)]
2468pub struct _arrptendPol2Dd_t {
2469    _unused: [u8; 0],
2470}
2471pub type arrptendPol2Dd = _arrptendPol2Dd_t;
2472#[repr(C)]
2473#[derive(Debug, Copy, Clone)]
2474pub struct _setptendPol2Dd_t {
2475    _unused: [u8; 0],
2476}
2477pub type setptendPol2Dd = _setptendPol2Dd_t;
2478#[repr(C)]
2479#[derive(Debug, Copy, Clone)]
2480pub struct Col2DfData {
2481    pub elem: [Col2Df; 1024usize],
2482}
2483#[repr(C)]
2484#[derive(Debug, Copy, Clone)]
2485pub struct ArrStCol2Df {
2486    pub reserved: u32,
2487    pub size: u32,
2488    pub elem_sizeof: u16,
2489    pub content: *mut Col2DfData,
2490}
2491#[repr(C)]
2492#[derive(Debug, Copy, Clone)]
2493pub struct NodeStCol2Df {
2494    pub rb: u32,
2495    pub left: *mut NodeStCol2Df,
2496    pub right: *mut NodeStCol2Df,
2497    pub data: Col2Df,
2498}
2499#[repr(C)]
2500#[derive(Debug, Copy, Clone)]
2501pub struct SetStCol2Df {
2502    pub elems: u32,
2503    pub esize: u16,
2504    pub ksize: u16,
2505    pub root: *mut NodeStCol2Df,
2506    pub func_compare: FPtr_compare,
2507}
2508#[repr(C)]
2509#[derive(Debug, Copy, Clone)]
2510pub struct _arrstendCol2Df_t {
2511    _unused: [u8; 0],
2512}
2513pub type arrstendCol2Df = _arrstendCol2Df_t;
2514#[repr(C)]
2515#[derive(Debug, Copy, Clone)]
2516pub struct _setstendCol2Df_t {
2517    _unused: [u8; 0],
2518}
2519pub type setstendCol2Df = _setstendCol2Df_t;
2520#[repr(C)]
2521#[derive(Debug, Copy, Clone)]
2522pub struct Col2DdData {
2523    pub elem: [Col2Dd; 1024usize],
2524}
2525#[repr(C)]
2526#[derive(Debug, Copy, Clone)]
2527pub struct ArrStCol2Dd {
2528    pub reserved: u32,
2529    pub size: u32,
2530    pub elem_sizeof: u16,
2531    pub content: *mut Col2DdData,
2532}
2533#[repr(C)]
2534#[derive(Debug, Copy, Clone)]
2535pub struct NodeStCol2Dd {
2536    pub rb: u32,
2537    pub left: *mut NodeStCol2Dd,
2538    pub right: *mut NodeStCol2Dd,
2539    pub data: Col2Dd,
2540}
2541#[repr(C)]
2542#[derive(Debug, Copy, Clone)]
2543pub struct SetStCol2Dd {
2544    pub elems: u32,
2545    pub esize: u16,
2546    pub ksize: u16,
2547    pub root: *mut NodeStCol2Dd,
2548    pub func_compare: FPtr_compare,
2549}
2550#[repr(C)]
2551#[derive(Debug, Copy, Clone)]
2552pub struct _arrstendCol2Dd_t {
2553    _unused: [u8; 0],
2554}
2555pub type arrstendCol2Dd = _arrstendCol2Dd_t;
2556#[repr(C)]
2557#[derive(Debug, Copy, Clone)]
2558pub struct _setstendCol2Dd_t {
2559    _unused: [u8; 0],
2560}
2561pub type setstendCol2Dd = _setstendCol2Dd_t;
2562#[repr(i32)]
2563#[non_exhaustive]
2564#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2565pub enum _pixformat_t {
2566    ekINDEX1 = 0,
2567    ekINDEX2 = 1,
2568    ekINDEX4 = 2,
2569    ekINDEX8 = 3,
2570    ekGRAY8 = 4,
2571    ekRGB24 = 5,
2572    ekRGBA32 = 6,
2573    ekFIMAGE = 7,
2574}
2575pub use self::_pixformat_t as pixformat_t;
2576#[repr(i32)]
2577#[non_exhaustive]
2578#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2579pub enum _codec_t {
2580    ekJPG = 1,
2581    ekPNG = 2,
2582    ekBMP = 3,
2583    ekGIF = 4,
2584}
2585pub use self::_codec_t as codec_t;
2586impl _fstyle_t {
2587    pub const ekFPIXELS: _fstyle_t = _fstyle_t::ekFNORMAL;
2588}
2589#[repr(i32)]
2590#[non_exhaustive]
2591#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2592pub enum _fstyle_t {
2593    ekFNORMAL = 0,
2594    ekFBOLD = 1,
2595    ekFITALIC = 2,
2596    ekFSTRIKEOUT = 4,
2597    ekFUNDERLINE = 8,
2598    ekFSUBSCRIPT = 16,
2599    ekFSUPSCRIPT = 32,
2600    ekFPOINTS = 64,
2601    ekFCELL = 128,
2602}
2603pub use self::_fstyle_t as fstyle_t;
2604#[repr(i32)]
2605#[non_exhaustive]
2606#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2607pub enum _linecap_t {
2608    ekLCFLAT = 0,
2609    ekLCSQUARE = 1,
2610    ekLCROUND = 2,
2611}
2612pub use self::_linecap_t as linecap_t;
2613#[repr(i32)]
2614#[non_exhaustive]
2615#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2616pub enum _linejoin_t {
2617    ekLJMITER = 0,
2618    ekLJROUND = 1,
2619    ekLJBEVEL = 2,
2620}
2621pub use self::_linejoin_t as linejoin_t;
2622#[repr(i32)]
2623#[non_exhaustive]
2624#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2625pub enum _fillwrap_t {
2626    ekFCLAMP = 0,
2627    ekFTILE = 1,
2628    ekFFLIP = 2,
2629}
2630pub use self::_fillwrap_t as fillwrap_t;
2631#[repr(i32)]
2632#[non_exhaustive]
2633#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2634pub enum _drawop_t {
2635    ekSTROKE = 1,
2636    ekFILL = 2,
2637    ekSKFILL = 3,
2638    ekFILLSK = 4,
2639}
2640pub use self::_drawop_t as drawop_t;
2641impl _align_t {
2642    pub const ekTOP: _align_t = _align_t::ekLEFT;
2643}
2644impl _align_t {
2645    pub const ekBOTTOM: _align_t = _align_t::ekRIGHT;
2646}
2647#[repr(i32)]
2648#[non_exhaustive]
2649#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2650pub enum _align_t {
2651    ekLEFT = 1,
2652    ekCENTER = 2,
2653    ekRIGHT = 3,
2654    ekJUSTIFY = 4,
2655}
2656pub use self::_align_t as align_t;
2657#[repr(i32)]
2658#[non_exhaustive]
2659#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2660pub enum _ellipsis_t {
2661    ekELLIPNONE = 1,
2662    ekELLIPBEGIN = 2,
2663    ekELLIPMIDDLE = 3,
2664    ekELLIPEND = 4,
2665    ekELLIPMLINE = 5,
2666}
2667pub use self::_ellipsis_t as ellipsis_t;
2668#[repr(i32)]
2669#[non_exhaustive]
2670#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2671pub enum _indicator_t {
2672    ekINDNONE = 0,
2673    ekINDUP_ARROW = 1,
2674    ekINDDOWN_ARROW = 2,
2675}
2676pub use self::_indicator_t as indicator_t;
2677pub type color_t = u32;
2678#[repr(C)]
2679#[derive(Debug, Copy, Clone)]
2680pub struct _dctx_t {
2681    _unused: [u8; 0],
2682}
2683pub type DCtx = _dctx_t;
2684#[repr(C)]
2685#[derive(Debug, Copy, Clone)]
2686pub struct _palette_t {
2687    _unused: [u8; 0],
2688}
2689pub type Palette = _palette_t;
2690#[repr(C)]
2691#[derive(Debug, Copy, Clone)]
2692pub struct _pixbuf_t {
2693    _unused: [u8; 0],
2694}
2695pub type Pixbuf = _pixbuf_t;
2696#[repr(C)]
2697#[derive(Debug, Copy, Clone)]
2698pub struct _image_t {
2699    _unused: [u8; 0],
2700}
2701pub type Image = _image_t;
2702#[repr(C)]
2703#[derive(Debug, Copy, Clone)]
2704pub struct _font_t {
2705    _unused: [u8; 0],
2706}
2707pub type Font = _font_t;
2708#[repr(C)]
2709#[derive(Debug, Copy, Clone)]
2710pub struct color_tData {
2711    pub elem: [color_t; 1024usize],
2712}
2713#[repr(C)]
2714#[derive(Debug, Copy, Clone)]
2715pub struct ArrStcolor_t {
2716    pub reserved: u32,
2717    pub size: u32,
2718    pub elem_sizeof: u16,
2719    pub content: *mut color_tData,
2720}
2721#[repr(C)]
2722#[derive(Debug, Copy, Clone)]
2723pub struct NodeStcolor_t {
2724    pub rb: u32,
2725    pub left: *mut NodeStcolor_t,
2726    pub right: *mut NodeStcolor_t,
2727    pub data: color_t,
2728}
2729#[repr(C)]
2730#[derive(Debug, Copy, Clone)]
2731pub struct SetStcolor_t {
2732    pub elems: u32,
2733    pub esize: u16,
2734    pub ksize: u16,
2735    pub root: *mut NodeStcolor_t,
2736    pub func_compare: FPtr_compare,
2737}
2738#[repr(C)]
2739#[derive(Debug, Copy, Clone)]
2740pub struct _arrstendcolor_t_t {
2741    _unused: [u8; 0],
2742}
2743pub type arrstendcolor_t = _arrstendcolor_t_t;
2744#[repr(C)]
2745#[derive(Debug, Copy, Clone)]
2746pub struct _setstendcolor_t_t {
2747    _unused: [u8; 0],
2748}
2749pub type setstendcolor_t = _setstendcolor_t_t;
2750#[repr(C)]
2751#[derive(Debug, Copy, Clone)]
2752pub struct ImagePtData {
2753    pub elem: [*mut Image; 1024usize],
2754}
2755#[repr(C)]
2756#[derive(Debug, Copy, Clone)]
2757pub struct ArrPtImage {
2758    pub reserved: u32,
2759    pub size: u32,
2760    pub elem_sizeof: u16,
2761    pub content: *mut ImagePtData,
2762}
2763#[repr(C)]
2764#[derive(Debug, Copy, Clone)]
2765pub struct NodePtImage {
2766    pub rb: u32,
2767    pub left: *mut NodePtImage,
2768    pub right: *mut NodePtImage,
2769    pub data: *mut Image,
2770}
2771#[repr(C)]
2772#[derive(Debug, Copy, Clone)]
2773pub struct SetPtImage {
2774    pub elems: u32,
2775    pub esize: u16,
2776    pub ksize: u16,
2777    pub root: *mut NodePtImage,
2778    pub func_compare: FPtr_compare,
2779}
2780#[repr(C)]
2781#[derive(Debug, Copy, Clone)]
2782pub struct _arrptendImage_t {
2783    _unused: [u8; 0],
2784}
2785pub type arrptendImage = _arrptendImage_t;
2786#[repr(C)]
2787#[derive(Debug, Copy, Clone)]
2788pub struct _setptendImage_t {
2789    _unused: [u8; 0],
2790}
2791pub type setptendImage = _setptendImage_t;
2792#[repr(i32)]
2793#[non_exhaustive]
2794#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2795pub enum _gui_orient_t {
2796    ekGUI_HORIZONTAL = 1,
2797    ekGUI_VERTICAL = 2,
2798}
2799pub use self::_gui_orient_t as gui_orient_t;
2800#[repr(i32)]
2801#[non_exhaustive]
2802#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2803pub enum _gui_state_t {
2804    ekGUI_OFF = 0,
2805    ekGUI_ON = 1,
2806    ekGUI_MIXED = 2,
2807}
2808pub use self::_gui_state_t as gui_state_t;
2809#[repr(i32)]
2810#[non_exhaustive]
2811#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2812pub enum _gui_mouse_t {
2813    ekGUI_MOUSE_LEFT = 1,
2814    ekGUI_MOUSE_RIGHT = 2,
2815    ekGUI_MOUSE_MIDDLE = 3,
2816}
2817pub use self::_gui_mouse_t as gui_mouse_t;
2818#[repr(i32)]
2819#[non_exhaustive]
2820#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2821pub enum _gui_cursor_t {
2822    ekGUI_CURSOR_ARROW = 1,
2823    ekGUI_CURSOR_HAND = 2,
2824    ekGUI_CURSOR_IBEAM = 3,
2825    ekGUI_CURSOR_CROSS = 4,
2826    ekGUI_CURSOR_SIZEWE = 5,
2827    ekGUI_CURSOR_SIZENS = 6,
2828    ekGUI_CURSOR_USER = 7,
2829}
2830pub use self::_gui_cursor_t as gui_cursor_t;
2831#[repr(i32)]
2832#[non_exhaustive]
2833#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2834pub enum _gui_close_t {
2835    ekGUI_CLOSE_ESC = 1,
2836    ekGUI_CLOSE_INTRO = 2,
2837    ekGUI_CLOSE_BUTTON = 3,
2838    ekGUI_CLOSE_DEACT = 4,
2839}
2840pub use self::_gui_close_t as gui_close_t;
2841#[repr(i32)]
2842#[non_exhaustive]
2843#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2844pub enum _gui_scale_t {
2845    ekGUI_SCALE_NONE = 1,
2846    ekGUI_SCALE_AUTO = 2,
2847    ekGUI_SCALE_ASPECT = 3,
2848    ekGUI_SCALE_ASPECTDW = 4,
2849    ekGUI_SCALE_ADJUST = 5,
2850}
2851pub use self::_gui_scale_t as gui_scale_t;
2852#[repr(i32)]
2853#[non_exhaustive]
2854#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2855pub enum _gui_scroll_t {
2856    ekGUI_SCROLL_BEGIN = 1,
2857    ekGUI_SCROLL_END = 2,
2858    ekGUI_SCROLL_STEP_LEFT = 3,
2859    ekGUI_SCROLL_STEP_RIGHT = 4,
2860    ekGUI_SCROLL_PAGE_LEFT = 5,
2861    ekGUI_SCROLL_PAGE_RIGHT = 6,
2862    ekGUI_SCROLL_THUMB = 7,
2863}
2864pub use self::_gui_scroll_t as gui_scroll_t;
2865#[repr(i32)]
2866#[non_exhaustive]
2867#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2868pub enum _gui_focus_t {
2869    ekGUI_FOCUS_CHANGED = 1,
2870    ekGUI_FOCUS_KEEP = 2,
2871    ekGUI_FOCUS_NO_NEXT = 3,
2872    ekGUI_FOCUS_NO_RESIGN = 4,
2873    ekGUI_FOCUS_NO_ACCEPT = 5,
2874}
2875pub use self::_gui_focus_t as gui_focus_t;
2876#[repr(i32)]
2877#[non_exhaustive]
2878#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2879pub enum _gui_tab_t {
2880    ekGUI_TAB_KEY = 1,
2881    ekGUI_TAB_BACKKEY = 2,
2882    ekGUI_TAB_NEXT = 3,
2883    ekGUI_TAB_PREV = 4,
2884    ekGUI_TAB_MOVE = 5,
2885    ekGUI_TAB_CLICK = 6,
2886}
2887pub use self::_gui_tab_t as gui_tab_t;
2888#[repr(i32)]
2889#[non_exhaustive]
2890#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2891pub enum _gui_event_t {
2892    ekGUI_EVENT_LABEL = 1024,
2893    ekGUI_EVENT_BUTTON = 1025,
2894    ekGUI_EVENT_POPUP = 1026,
2895    ekGUI_EVENT_LISTBOX = 1027,
2896    ekGUI_EVENT_SLIDER = 1028,
2897    ekGUI_EVENT_UPDOWN = 1029,
2898    ekGUI_EVENT_TXTFILTER = 1030,
2899    ekGUI_EVENT_TXTCHANGE = 1031,
2900    ekGUI_EVENT_FOCUS_RESIGN = 1032,
2901    ekGUI_EVENT_FOCUS_ACCEPT = 1033,
2902    ekGUI_EVENT_FOCUS = 1034,
2903    ekGUI_EVENT_MENU = 1035,
2904    ekGUI_EVENT_DRAW = 1036,
2905    ekGUI_EVENT_OVERLAY = 1037,
2906    ekGUI_EVENT_RESIZE = 1038,
2907    ekGUI_EVENT_ENTER = 1039,
2908    ekGUI_EVENT_EXIT = 1040,
2909    ekGUI_EVENT_MOVED = 1041,
2910    ekGUI_EVENT_DOWN = 1042,
2911    ekGUI_EVENT_UP = 1043,
2912    ekGUI_EVENT_CLICK = 1044,
2913    ekGUI_EVENT_DRAG = 1045,
2914    ekGUI_EVENT_WHEEL = 1046,
2915    ekGUI_EVENT_KEYDOWN = 1047,
2916    ekGUI_EVENT_KEYUP = 1048,
2917    ekGUI_EVENT_SCROLL = 1049,
2918    ekGUI_EVENT_WND_MOVED = 1050,
2919    ekGUI_EVENT_WND_SIZING = 1051,
2920    ekGUI_EVENT_WND_SIZE = 1052,
2921    ekGUI_EVENT_WND_CLOSE = 1053,
2922    ekGUI_EVENT_COLOR = 1054,
2923    ekGUI_EVENT_THEME = 1055,
2924    ekGUI_EVENT_OBJCHANGE = 1056,
2925    ekGUI_EVENT_TBL_NROWS = 1057,
2926    ekGUI_EVENT_TBL_BEGIN = 1058,
2927    ekGUI_EVENT_TBL_END = 1059,
2928    ekGUI_EVENT_TBL_CELL = 1060,
2929    ekGUI_EVENT_TBL_SEL = 1061,
2930    ekGUI_EVENT_TBL_HEADCLICK = 1062,
2931    ekGUI_EVENT_TBL_ROWCLICK = 1063,
2932    ekGUI_EVENT_IDLE = 1064,
2933}
2934pub use self::_gui_event_t as gui_event_t;
2935#[repr(i32)]
2936#[non_exhaustive]
2937#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2938pub enum _gui_type_t {
2939    ekGUI_TYPE_LABEL = 0,
2940    ekGUI_TYPE_BUTTON = 1,
2941    ekGUI_TYPE_POPUP = 2,
2942    ekGUI_TYPE_EDITBOX = 3,
2943    ekGUI_TYPE_COMBOBOX = 4,
2944    ekGUI_TYPE_SLIDER = 5,
2945    ekGUI_TYPE_UPDOWN = 6,
2946    ekGUI_TYPE_PROGRESS = 7,
2947    ekGUI_TYPE_TEXTVIEW = 8,
2948    ekGUI_TYPE_WEBVIEW = 9,
2949    ekGUI_TYPE_TREEVIEW = 10,
2950    ekGUI_TYPE_BOXVIEW = 11,
2951    ekGUI_TYPE_SPLITVIEW = 12,
2952    ekGUI_TYPE_CUSTOMVIEW = 13,
2953    ekGUI_TYPE_PANEL = 14,
2954    ekGUI_TYPE_LINE = 15,
2955    ekGUI_TYPE_HEADER = 16,
2956    ekGUI_TYPE_WINDOW = 17,
2957    ekGUI_TYPE_TOOLBAR = 18,
2958}
2959pub use self::_gui_type_t as gui_type_t;
2960#[repr(i32)]
2961#[non_exhaustive]
2962#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2963pub enum _gui_size_t {
2964    ekGUI_SIZE_MINI = 1,
2965    ekGUI_SIZE_SMALL = 2,
2966    ekGUI_SIZE_REGULAR = 3,
2967}
2968pub use self::_gui_size_t as gui_size_t;
2969#[repr(i32)]
2970#[non_exhaustive]
2971#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2972pub enum _gui_role_t {
2973    ekGUI_ROLE_MAIN = 0,
2974    ekGUI_ROLE_OVERLAY = 1,
2975    ekGUI_ROLE_MODAL = 2,
2976    ekGUI_ROLE_MANAGED = 3,
2977}
2978pub use self::_gui_role_t as gui_role_t;
2979#[repr(i32)]
2980#[non_exhaustive]
2981#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2982pub enum _gui_prop_t {
2983    ekGUI_PROP_CHILDREN = 0,
2984}
2985pub use self::_gui_prop_t as gui_prop_t;
2986#[repr(i32)]
2987#[non_exhaustive]
2988#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2989pub enum _gui_text_t {
2990    ekGUI_TEXT_FAMILY = 0,
2991    ekGUI_TEXT_UNITS = 1,
2992    ekGUI_TEXT_SIZE = 2,
2993    ekGUI_TEXT_STYLE = 3,
2994    ekGUI_TEXT_COLOR = 4,
2995    ekGUI_TEXT_BGCOLOR = 5,
2996    ekGUI_TEXT_PGCOLOR = 6,
2997    ekGUI_TEXT_PARALIGN = 7,
2998    ekGUI_TEXT_LSPACING = 8,
2999    ekGUI_TEXT_BFPARSPACE = 9,
3000    ekGUI_TEXT_AFPARSPACE = 10,
3001    ekGUI_TEXT_APPLY_ALL = 11,
3002    ekGUI_TEXT_APPLY_SEL = 12,
3003    ekGUI_TEXT_SELECT = 13,
3004    ekGUI_TEXT_SHOW_SELECT = 14,
3005    ekGUI_TEXT_SCROLL = 15,
3006    ekGUI_TEXT_WRAP_MODE = 16,
3007}
3008pub use self::_gui_text_t as gui_text_t;
3009#[repr(i32)]
3010#[non_exhaustive]
3011#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3012pub enum _gui_web_t {
3013    ekGUI_WEB_NAVIGATE = 1,
3014    ekGUI_WEB_BACK = 2,
3015    ekGUI_WEB_FORWARD = 3,
3016}
3017pub use self::_gui_web_t as gui_web_t;
3018#[repr(i32)]
3019#[non_exhaustive]
3020#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3021pub enum _clipboard_t {
3022    ekCLIPBOARD_COPY = 0,
3023    ekCLIPBOARD_CUT = 1,
3024    ekCLIPBOARD_PASTE = 2,
3025}
3026pub use self::_clipboard_t as clipboard_t;
3027impl _label_flag_t {
3028    pub const ekLABEL_SINGLE: _label_flag_t = _label_flag_t::ekLABEL_FLAG;
3029}
3030impl _label_flag_t {
3031    pub const ekLABEL_TYPE: _label_flag_t = _label_flag_t::ekLABEL_MULTI;
3032}
3033#[repr(i32)]
3034#[non_exhaustive]
3035#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3036pub enum _label_flag_t {
3037    ekLABEL_FLAG = 0,
3038    ekLABEL_MULTI = 1,
3039}
3040pub use self::_label_flag_t as label_flag_t;
3041impl _button_flag_t {
3042    pub const ekBUTTON_PUSH: _button_flag_t = _button_flag_t::ekBUTTON_FLAG;
3043}
3044#[repr(i32)]
3045#[non_exhaustive]
3046#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3047pub enum _button_flag_t {
3048    ekBUTTON_FLAG = 0,
3049    ekBUTTON_CHECK2 = 1,
3050    ekBUTTON_CHECK3 = 2,
3051    ekBUTTON_RADIO = 3,
3052    ekBUTTON_FLAT = 4,
3053    ekBUTTON_FLATGLE = 5,
3054    ekBUTTON_TYPE = 7,
3055}
3056pub use self::_button_flag_t as button_flag_t;
3057#[repr(i32)]
3058#[non_exhaustive]
3059#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3060pub enum _popup_flag_t {
3061    ekPOPUP_FLAG = 0,
3062}
3063pub use self::_popup_flag_t as popup_flag_t;
3064impl _edit_flag_t {
3065    pub const ekEDIT_SINGLE: _edit_flag_t = _edit_flag_t::ekEDIT_FLAG;
3066}
3067impl _edit_flag_t {
3068    pub const ekEDIT_TYPE: _edit_flag_t = _edit_flag_t::ekEDIT_MULTI;
3069}
3070#[repr(i32)]
3071#[non_exhaustive]
3072#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3073pub enum _edit_flag_t {
3074    ekEDIT_FLAG = 0,
3075    ekEDIT_MULTI = 1,
3076    ekEDIT_AUTOSEL = 4,
3077}
3078pub use self::_edit_flag_t as edit_flag_t;
3079#[repr(i32)]
3080#[non_exhaustive]
3081#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3082pub enum _combo_flag_t {
3083    ekCOMBO_FLAG = 0,
3084}
3085pub use self::_combo_flag_t as combo_flag_t;
3086impl _slider_flag_t {
3087    pub const ekSLIDER_HORZ: _slider_flag_t = _slider_flag_t::ekSLIDER_FLAG;
3088}
3089impl _slider_flag_t {
3090    pub const ekSLIDER_TYPE: _slider_flag_t = _slider_flag_t::ekSLIDER_VERT;
3091}
3092#[repr(i32)]
3093#[non_exhaustive]
3094#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3095pub enum _slider_flag_t {
3096    ekSLIDER_FLAG = 0,
3097    ekSLIDER_VERT = 1,
3098}
3099pub use self::_slider_flag_t as slider_flag_t;
3100#[repr(i32)]
3101#[non_exhaustive]
3102#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3103pub enum _updown_flag_t {
3104    ekUPDOWN_FLAG = 0,
3105}
3106pub use self::_updown_flag_t as updown_flag_t;
3107impl _progress_flag_t {
3108    pub const ekPROGRESS_HORZ: _progress_flag_t = _progress_flag_t::ekPROGRESS_FLAG;
3109}
3110impl _progress_flag_t {
3111    pub const ekPROGRESS_TYPE: _progress_flag_t = _progress_flag_t::ekPROGRESS_VERT;
3112}
3113#[repr(i32)]
3114#[non_exhaustive]
3115#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3116pub enum _progress_flag_t {
3117    ekPROGRESS_FLAG = 0,
3118    ekPROGRESS_VERT = 1,
3119}
3120pub use self::_progress_flag_t as progress_flag_t;
3121#[repr(i32)]
3122#[non_exhaustive]
3123#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3124pub enum _view_flag_t {
3125    ekVIEW_OPENGL = 1,
3126    ekVIEW_HSCROLL = 2,
3127    ekVIEW_VSCROLL = 4,
3128    ekVIEW_BORDER = 8,
3129    ekVIEW_NOERASE = 32,
3130    ekVIEW_CONTROL = 64,
3131}
3132pub use self::_view_flag_t as view_flag_t;
3133#[repr(i32)]
3134#[non_exhaustive]
3135#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3136pub enum _text_flag_t {
3137    ekTEXT_FLAG = 0,
3138}
3139pub use self::_text_flag_t as text_flag_t;
3140#[repr(i32)]
3141#[non_exhaustive]
3142#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3143pub enum _table_flag_t {
3144    ekTABLE_FLAG = 0,
3145    ekTABLE_TEXT = 1,
3146    ekTABLE_ICON16 = 2,
3147    ekTABLE_EDIT = 4,
3148    ekTABLE_COMBO = 8,
3149    ekTABLE_POPUP = 16,
3150    ekTABLE_RADIO = 32,
3151    ekTABLE_CHECK = 64,
3152    ekTABLE_TOOLTIP = 128,
3153    ekTABLE_BGCOLOR = 256,
3154    ekTABLE_ROWALT = 512,
3155    ekTABLE_ROWPRESEL = 1024,
3156}
3157pub use self::_table_flag_t as table_flag_t;
3158impl _split_flag_t {
3159    pub const ekSPLIT_VERT: _split_flag_t = _split_flag_t::ekSPLIT_FLAG;
3160}
3161impl _split_flag_t {
3162    pub const ekSPLIT_TYPE: _split_flag_t = _split_flag_t::ekSPLIT_HORZ;
3163}
3164#[repr(i32)]
3165#[non_exhaustive]
3166#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3167pub enum _split_flag_t {
3168    ekSPLIT_FLAG = 0,
3169    ekSPLIT_HORZ = 1,
3170}
3171pub use self::_split_flag_t as split_flag_t;
3172#[repr(i32)]
3173#[non_exhaustive]
3174#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3175pub enum _split_mode_t {
3176    ekSPLIT_NORMAL = 1,
3177    ekSPLIT_FIXED0 = 2,
3178    ekSPLIT_FIXED1 = 3,
3179}
3180pub use self::_split_mode_t as split_mode_t;
3181#[repr(i32)]
3182#[non_exhaustive]
3183#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3184pub enum _window_flag_t {
3185    ekWINDOW_FLAG = 0,
3186    ekWINDOW_EDGE = 1,
3187    ekWINDOW_TITLE = 2,
3188    ekWINDOW_MAX = 4,
3189    ekWINDOW_MIN = 8,
3190    ekWINDOW_CLOSE = 16,
3191    ekWINDOW_RESIZE = 32,
3192    ekWINDOW_RETURN = 64,
3193    ekWINDOW_ESC = 128,
3194    ekWINDOW_OFFSCREEN = 256,
3195    ekWINDOW_MODAL_NOHIDE = 512,
3196    ekWINDOW_STD = 26,
3197    ekWINDOW_STDRES = 62,
3198}
3199pub use self::_window_flag_t as window_flag_t;
3200#[repr(i32)]
3201#[non_exhaustive]
3202#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3203pub enum _menu_flag_t {
3204    ekMENU_FLAG = 0,
3205    ekMENU_ITEM = 1,
3206    ekMENU_SEPARATOR = 2,
3207}
3208pub use self::_menu_flag_t as menu_flag_t;
3209#[repr(i32)]
3210#[non_exhaustive]
3211#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3212pub enum _ctrl_state_t {
3213    ekCTRL_STATE_NORMAL = 0,
3214    ekCTRL_STATE_HOT = 1,
3215    ekCTRL_STATE_PRESSED = 2,
3216    ekCTRL_STATE_BKNORMAL = 3,
3217    ekCTRL_STATE_BKHOT = 4,
3218    ekCTRL_STATE_BKPRESSED = 5,
3219    ekCTRL_STATE_DISABLED = 6,
3220}
3221pub use self::_ctrl_state_t as ctrl_state_t;
3222#[repr(i32)]
3223#[non_exhaustive]
3224#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3225pub enum _ctrl_msel_t {
3226    ekCTRL_MSEL_NO = 0,
3227    ekCTRL_MSEL_SINGLE = 1,
3228    ekCTRL_MSEL_BURST = 2,
3229}
3230pub use self::_ctrl_msel_t as ctrl_msel_t;
3231#[repr(i32)]
3232#[non_exhaustive]
3233#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3234pub enum _ctrl_op_t {
3235    ekCTRL_OP_ADD = 1,
3236    ekCTRL_OP_DEL = 2,
3237    ekCTRL_OP_INS = 3,
3238    ekCTRL_OP_SET = 4,
3239}
3240pub use self::_ctrl_op_t as ctrl_op_t;
3241#[repr(i32)]
3242#[non_exhaustive]
3243#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3244pub enum _syscolor_t {
3245    ekSYSCOLOR_DARKMODE = 0,
3246    ekSYSCOLOR_LABEL = 1,
3247    ekSYSCOLOR_VIEW = 2,
3248    ekSYSCOLOR_LINE = 3,
3249    ekSYSCOLOR_LINK = 4,
3250    ekSYSCOLOR_BORDER = 5,
3251}
3252pub use self::_syscolor_t as syscolor_t;
3253#[repr(C)]
3254#[derive(Debug, Copy, Clone)]
3255pub struct _ccursor_t {
3256    _unused: [u8; 0],
3257}
3258pub type Cursor = _ccursor_t;
3259pub type GuiCtx = _guictx_t;
3260pub type EvButton = _evbutton_t;
3261pub type EvSlider = _evslider_t;
3262pub type EvText = _evtext_t;
3263pub type EvTextFilter = _evtextfilter_t;
3264pub type EvDraw = _evdraw_t;
3265pub type EvMouse = _evmouse_t;
3266pub type EvWheel = _evwheel_t;
3267pub type EvKey = _evkey_t;
3268pub type EvPos = _evpos_t;
3269pub type EvSize = _evsize_t;
3270pub type EvWinClose = _evwinclose_t;
3271pub type EvMenu = _evmenu_t;
3272pub type EvScroll = _evscroll_t;
3273pub type EvTbPos = _evtbpos_t;
3274pub type EvTbRow = _evtbrow_t;
3275pub type EvTbRect = _evtbrect_t;
3276pub type EvTbSel = _evtbsel_t;
3277pub type EvTbCell = _evtbcell_t;
3278pub type FPtr_gctx_create =
3279    ::core::option::Option<unsafe extern "C" fn(flags: u32) -> *mut ::libc::c_void>;
3280pub type FPtr_gctx_create2 =
3281    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::libc::c_void) -> *mut ::libc::c_void>;
3282pub type FPtr_gctx_destroy =
3283    ::core::option::Option<unsafe extern "C" fn(item: *mut *mut ::libc::c_void)>;
3284pub type FPtr_gctx_set_text =
3285    ::core::option::Option<unsafe extern "C" fn(item: *mut ::libc::c_void, text: *const char_t)>;
3286pub type FPtr_gctx_set_ptr = ::core::option::Option<
3287    unsafe extern "C" fn(item: *mut ::libc::c_void, ptr: *mut ::libc::c_void),
3288>;
3289pub type FPtr_gctx_set_ptr2 = ::core::option::Option<
3290    unsafe extern "C" fn(item: *mut ::libc::c_void, ptr: *mut ::libc::c_void) -> u32,
3291>;
3292pub type FPtr_gctx_set_ptr3 = ::core::option::Option<
3293    unsafe extern "C" fn(item: *mut ::libc::c_void, ptr: *mut ::libc::c_void) -> enum_t,
3294>;
3295pub type FPtr_gctx_set_cptr = ::core::option::Option<
3296    unsafe extern "C" fn(item: *mut ::libc::c_void, ptr: *const ::libc::c_void),
3297>;
3298pub type FPtr_gctx_set_listener = ::core::option::Option<
3299    unsafe extern "C" fn(item: *mut ::libc::c_void, listener: *mut Listener),
3300>;
3301pub type FPtr_gctx_set_bool =
3302    ::core::option::Option<unsafe extern "C" fn(item: *mut ::libc::c_void, value: bool_t)>;
3303pub type FPtr_gctx_set_uint32 =
3304    ::core::option::Option<unsafe extern "C" fn(item: *mut ::libc::c_void, value: u32)>;
3305pub type FPtr_gctx_set_real32 =
3306    ::core::option::Option<unsafe extern "C" fn(item: *mut ::libc::c_void, value: real32_t)>;
3307pub type FPtr_gctx_set_enum =
3308    ::core::option::Option<unsafe extern "C" fn(item: *mut ::libc::c_void, value: enum_t)>;
3309pub type FPtr_gctx_set_enum2 =
3310    ::core::option::Option<unsafe extern "C" fn(item: *mut ::libc::c_void, arg1: bool_t) -> enum_t>;
3311pub type FPtr_gctx_set_elem = ::core::option::Option<
3312    unsafe extern "C" fn(
3313        item: *mut ::libc::c_void,
3314        op: ctrl_op_t,
3315        index: u32,
3316        text: *const char_t,
3317        data: *const Image,
3318    ),
3319>;
3320pub type FPtr_gctx_set_property = ::core::option::Option<
3321    unsafe extern "C" fn(item: *mut ::libc::c_void, prop: enum_t, value: *const ::libc::c_void),
3322>;
3323pub type FPtr_gctx_set_key = ::core::option::Option<
3324    unsafe extern "C" fn(item: *mut ::libc::c_void, key: vkey_t, modifiers: u32),
3325>;
3326pub type FPtr_gctx_set_hotkey = ::core::option::Option<
3327    unsafe extern "C" fn(item: *mut ::libc::c_void, arg1: vkey_t, arg2: u32, arg3: *mut Listener),
3328>;
3329pub type FPtr_gctx_set_area = ::core::option::Option<
3330    unsafe extern "C" fn(
3331        item: *mut ::libc::c_void,
3332        obj: *mut ::libc::c_void,
3333        bgcolor: color_t,
3334        skcolor: color_t,
3335        x: real32_t,
3336        y: real32_t,
3337        width: real32_t,
3338        height: real32_t,
3339    ),
3340>;
3341pub type FPtr_gctx_set2_bool = ::core::option::Option<
3342    unsafe extern "C" fn(item: *mut ::libc::c_void, value1: bool_t, value2: bool_t),
3343>;
3344pub type FPtr_gctx_set2_int32 = ::core::option::Option<
3345    unsafe extern "C" fn(item: *mut ::libc::c_void, value1: i32, value2: i32),
3346>;
3347pub type FPtr_gctx_set2_real32 = ::core::option::Option<
3348    unsafe extern "C" fn(item: *mut ::libc::c_void, value1: real32_t, value2: real32_t),
3349>;
3350pub type FPtr_gctx_set2_real64 = ::core::option::Option<
3351    unsafe extern "C" fn(item: *mut ::libc::c_void, value1: real64_t, value2: real64_t),
3352>;
3353pub type FPtr_gctx_set4_real32 = ::core::option::Option<
3354    unsafe extern "C" fn(
3355        item: *mut ::libc::c_void,
3356        value1: real32_t,
3357        value2: real32_t,
3358        value3: real32_t,
3359        value4: real32_t,
3360    ),
3361>;
3362pub type FPtr_gctx_get_text =
3363    ::core::option::Option<unsafe extern "C" fn(item: *const ::libc::c_void) -> *const char_t>;
3364pub type FPtr_gctx_get_ptr = ::core::option::Option<
3365    unsafe extern "C" fn(item: *const ::libc::c_void) -> *mut ::libc::c_void,
3366>;
3367pub type FPtr_gctx_get_bool =
3368    ::core::option::Option<unsafe extern "C" fn(item: *const ::libc::c_void) -> bool_t>;
3369pub type FPtr_gctx_get_uint32 =
3370    ::core::option::Option<unsafe extern "C" fn(item: *const ::libc::c_void) -> u32>;
3371pub type FPtr_gctx_get_real32 =
3372    ::core::option::Option<unsafe extern "C" fn(item: *const ::libc::c_void) -> real32_t>;
3373pub type FPtr_gctx_get_enum =
3374    ::core::option::Option<unsafe extern "C" fn(item: *const ::libc::c_void) -> enum_t>;
3375pub type FPtr_gctx_get_enum2 = ::core::option::Option<
3376    unsafe extern "C" fn(item: *const ::libc::c_void, arg1: enum_t) -> enum_t,
3377>;
3378pub type FPtr_gctx_get_enum3 = ::core::option::Option<
3379    unsafe extern "C" fn(item: *const ::libc::c_void, ptr: *mut *mut ::libc::c_void) -> enum_t,
3380>;
3381pub type FPtr_gctx_get_real32e = ::core::option::Option<
3382    unsafe extern "C" fn(item: *const ::libc::c_void, value: enum_t) -> real32_t,
3383>;
3384pub type FPtr_gctx_get2_real32 = ::core::option::Option<
3385    unsafe extern "C" fn(item: *const ::libc::c_void, value1: *mut real32_t, value2: *mut real32_t),
3386>;
3387pub type FPtr_gctx_get_indexed =
3388    ::core::option::Option<unsafe extern "C" fn(arg1: u32, arg2: *mut ::libc::c_void)>;
3389pub type FPtr_gctx_call = ::core::option::Option<unsafe extern "C" fn(item: *mut ::libc::c_void)>;
3390pub type FPtr_gctx_bounds1 = ::core::option::Option<
3391    unsafe extern "C" fn(
3392        item: *const ::libc::c_void,
3393        text: *const char_t,
3394        refwidth: real32_t,
3395        width: *mut real32_t,
3396        height: *mut real32_t,
3397    ),
3398>;
3399pub type FPtr_gctx_bounds2 = ::core::option::Option<
3400    unsafe extern "C" fn(
3401        item: *const ::libc::c_void,
3402        text: *const char_t,
3403        refwidth: real32_t,
3404        refheight: real32_t,
3405        width: *mut real32_t,
3406        height: *mut real32_t,
3407    ),
3408>;
3409pub type FPtr_gctx_bounds3 = ::core::option::Option<
3410    unsafe extern "C" fn(
3411        item: *const ::libc::c_void,
3412        text: *const char_t,
3413        width: *mut real32_t,
3414        height: *mut real32_t,
3415    ),
3416>;
3417pub type FPtr_gctx_bounds4 = ::core::option::Option<
3418    unsafe extern "C" fn(
3419        item: *const ::libc::c_void,
3420        refwidth: real32_t,
3421        lines: u32,
3422        width: *mut real32_t,
3423        height: *mut real32_t,
3424    ),
3425>;
3426pub type FPtr_gctx_bounds5 = ::core::option::Option<
3427    unsafe extern "C" fn(
3428        item: *const ::libc::c_void,
3429        refwidth: real32_t,
3430        width: *mut real32_t,
3431        height: *mut real32_t,
3432    ),
3433>;
3434pub type FPtr_gctx_bounds6 = ::core::option::Option<
3435    unsafe extern "C" fn(
3436        item: *const ::libc::c_void,
3437        length: real32_t,
3438        size: gui_size_t,
3439        width: *mut real32_t,
3440        height: *mut real32_t,
3441    ),
3442>;
3443pub type FPtr_gctx_tickmarks = ::core::option::Option<
3444    unsafe extern "C" fn(
3445        item: *mut ::libc::c_void,
3446        num_tickmarks: u32,
3447        tickmarks_at_left_top: bool_t,
3448    ),
3449>;
3450pub type FPtr_gctx_insert = ::core::option::Option<
3451    unsafe extern "C" fn(item: *mut ::libc::c_void, pos: u32, child: *mut ::libc::c_void),
3452>;
3453pub type FPtr_gctx_menu = ::core::option::Option<
3454    unsafe extern "C" fn(
3455        item: *mut ::libc::c_void,
3456        window: *mut ::libc::c_void,
3457        x: real32_t,
3458        y: real32_t,
3459    ),
3460>;
3461pub type FPtr_gctx_win_file = ::core::option::Option<
3462    unsafe extern "C" fn(
3463        parent: *mut ::libc::c_void,
3464        ftypes: *mut *const char_t,
3465        size: u32,
3466        start_dir: *const char_t,
3467        open: bool_t,
3468    ) -> *const char_t,
3469>;
3470pub type FPtr_gctx_win_color = ::core::option::Option<
3471    unsafe extern "C" fn(
3472        parent: *mut ::libc::c_void,
3473        title: *const char_t,
3474        x: real32_t,
3475        y: real32_t,
3476        halign: align_t,
3477        valign: align_t,
3478        current: color_t,
3479        colors: *mut color_t,
3480        n: u32,
3481        OnChange: *mut Listener,
3482    ),
3483>;
3484pub type FPtr_gctx_cursor = ::core::option::Option<
3485    unsafe extern "C" fn(
3486        arg1: enum_t,
3487        arg2: *const Image,
3488        arg3: real32_t,
3489        arg4: real32_t,
3490    ) -> *mut Cursor,
3491>;
3492pub type FPtr_gctx_draw_rect = ::core::option::Option<
3493    unsafe extern "C" fn(
3494        arg1: *mut ::libc::c_void,
3495        arg2: i32,
3496        arg3: i32,
3497        arg4: u32,
3498        arg5: u32,
3499        arg6: enum_t,
3500    ),
3501>;
3502pub type FPtr_gctx_draw_line = ::core::option::Option<
3503    unsafe extern "C" fn(arg1: *mut ::libc::c_void, arg2: i32, arg3: i32, arg4: i32, arg5: i32),
3504>;
3505pub type FPtr_gctx_draw_text = ::core::option::Option<
3506    unsafe extern "C" fn(
3507        arg1: *mut ::libc::c_void,
3508        arg2: *const char_t,
3509        arg3: i32,
3510        arg4: i32,
3511        arg5: enum_t,
3512    ),
3513>;
3514pub type FPtr_gctx_draw_image = ::core::option::Option<
3515    unsafe extern "C" fn(
3516        arg1: *mut ::libc::c_void,
3517        arg2: *const Image,
3518        arg3: i32,
3519        arg4: i32,
3520        arg5: enum_t,
3521    ),
3522>;
3523pub type FPtr_gctx_clipboard =
3524    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::libc::c_void, arg2: clipboard_t)>;
3525pub type FPtr_gctx_command = ::core::option::Option<
3526    unsafe extern "C" fn(
3527        arg1: *mut ::libc::c_void,
3528        arg2: enum_t,
3529        arg3: *const ::libc::c_void,
3530        arg4: *mut ::libc::c_void,
3531    ),
3532>;
3533#[repr(C)]
3534#[derive(Debug, Copy, Clone)]
3535pub struct _guictx_t {
3536    pub retain_count: u32,
3537    pub func_create: [FPtr_gctx_create; 17usize],
3538    pub func_destroy: [FPtr_gctx_destroy; 17usize],
3539    pub func_set_tooltip: [FPtr_gctx_set_text; 17usize],
3540    pub func_attach_to_panel: [FPtr_gctx_set_ptr; 17usize],
3541    pub func_detach_from_panel: [FPtr_gctx_set_ptr; 17usize],
3542    pub func_set_visible: [FPtr_gctx_set_bool; 17usize],
3543    pub func_set_enabled: [FPtr_gctx_set_bool; 17usize],
3544    pub func_get_size: [FPtr_gctx_get2_real32; 17usize],
3545    pub func_get_origin: [FPtr_gctx_get2_real32; 17usize],
3546    pub func_set_frame: [FPtr_gctx_set4_real32; 17usize],
3547    pub func_label_OnClick: FPtr_gctx_set_listener,
3548    pub func_label_OnMouseEnter: FPtr_gctx_set_listener,
3549    pub func_label_OnMouseExit: FPtr_gctx_set_listener,
3550    pub func_label_set_text: FPtr_gctx_set_text,
3551    pub func_label_set_font: FPtr_gctx_set_cptr,
3552    pub func_label_set_flags: FPtr_gctx_set_uint32,
3553    pub func_label_set_align: FPtr_gctx_set_enum,
3554    pub func_label_set_ellipsis: FPtr_gctx_set_enum,
3555    pub func_label_set_text_color: FPtr_gctx_set_uint32,
3556    pub func_label_set_bg_color: FPtr_gctx_set_uint32,
3557    pub func_label_bounds: FPtr_gctx_bounds1,
3558    pub func_button_OnClick: FPtr_gctx_set_listener,
3559    pub func_button_set_text: FPtr_gctx_set_text,
3560    pub func_button_set_font: FPtr_gctx_set_cptr,
3561    pub func_button_set_align: FPtr_gctx_set_enum,
3562    pub func_button_set_image: FPtr_gctx_set_cptr,
3563    pub func_button_set_state: FPtr_gctx_set_enum,
3564    pub func_button_get_state: FPtr_gctx_get_enum,
3565    pub func_button_set_vpadding: FPtr_gctx_set_real32,
3566    pub func_button_bounds: FPtr_gctx_bounds2,
3567    pub func_popup_OnSelect: FPtr_gctx_set_listener,
3568    pub func_popup_set_elem: FPtr_gctx_set_elem,
3569    pub func_popup_set_font: FPtr_gctx_set_cptr,
3570    pub func_popup_list_height: FPtr_gctx_set_uint32,
3571    pub func_popup_set_selected: FPtr_gctx_set_uint32,
3572    pub func_popup_get_selected: FPtr_gctx_get_uint32,
3573    pub func_popup_bounds: FPtr_gctx_bounds3,
3574    pub func_edit_OnFilter: FPtr_gctx_set_listener,
3575    pub func_edit_OnChange: FPtr_gctx_set_listener,
3576    pub func_edit_OnFocus: FPtr_gctx_set_listener,
3577    pub func_edit_set_text: FPtr_gctx_set_text,
3578    pub func_edit_set_font: FPtr_gctx_set_cptr,
3579    pub func_edit_set_align: FPtr_gctx_set_enum,
3580    pub func_edit_set_passmode: FPtr_gctx_set_bool,
3581    pub func_edit_set_editable: FPtr_gctx_set_bool,
3582    pub func_edit_set_autoselect: FPtr_gctx_set_bool,
3583    pub func_edit_set_select: FPtr_gctx_set2_int32,
3584    pub func_edit_set_text_color: FPtr_gctx_set_uint32,
3585    pub func_edit_set_bg_color: FPtr_gctx_set_uint32,
3586    pub func_edit_set_vpadding: FPtr_gctx_set_real32,
3587    pub func_edit_bounds: FPtr_gctx_bounds4,
3588    pub func_edit_clipboard: FPtr_gctx_clipboard,
3589    pub func_combo_OnFilter: FPtr_gctx_set_listener,
3590    pub func_combo_OnChange: FPtr_gctx_set_listener,
3591    pub func_combo_OnFocus: FPtr_gctx_set_listener,
3592    pub func_combo_OnSelect: FPtr_gctx_set_listener,
3593    pub func_combo_set_text: FPtr_gctx_set_text,
3594    pub func_combo_set_font: FPtr_gctx_set_cptr,
3595    pub func_combo_set_align: FPtr_gctx_set_enum,
3596    pub func_combo_set_passmode: FPtr_gctx_set_bool,
3597    pub func_combo_set_text_color: FPtr_gctx_set_uint32,
3598    pub func_combo_set_bg_color: FPtr_gctx_set_uint32,
3599    pub func_combo_set_elem: FPtr_gctx_set_elem,
3600    pub func_combo_set_selected: FPtr_gctx_set_uint32,
3601    pub func_combo_get_selected: FPtr_gctx_get_uint32,
3602    pub func_combo_bounds: FPtr_gctx_bounds5,
3603    pub func_slider_OnMoved: FPtr_gctx_set_listener,
3604    pub func_slider_set_tickmarks: FPtr_gctx_tickmarks,
3605    pub func_slider_get_position: FPtr_gctx_get_real32,
3606    pub func_slider_set_position: FPtr_gctx_set_real32,
3607    pub func_slider_bounds: FPtr_gctx_bounds6,
3608    pub func_updown_OnClick: FPtr_gctx_set_listener,
3609    pub func_progress_set_position: FPtr_gctx_set_real32,
3610    pub func_progress_get_thickness: FPtr_gctx_get_real32e,
3611    pub func_text_OnFilter: FPtr_gctx_set_listener,
3612    pub func_text_OnFocus: FPtr_gctx_set_listener,
3613    pub func_text_set_text: FPtr_gctx_set_text,
3614    pub func_text_add_text: FPtr_gctx_set_text,
3615    pub func_text_ins_text: FPtr_gctx_set_text,
3616    pub func_text_set_rtf: FPtr_gctx_set_ptr,
3617    pub func_text_set_prop: FPtr_gctx_set_property,
3618    pub func_text_set_editable: FPtr_gctx_set_bool,
3619    pub func_text_get_text: FPtr_gctx_get_text,
3620    pub func_text_scroller_visible: FPtr_gctx_set2_bool,
3621    pub func_text_set_need_display: FPtr_gctx_call,
3622    pub func_text_clipboard: FPtr_gctx_clipboard,
3623    pub func_web_OnFocus: FPtr_gctx_set_listener,
3624    pub func_web_command: FPtr_gctx_command,
3625    pub func_web_scroller_visible: FPtr_gctx_set2_bool,
3626    pub func_web_set_need_display: FPtr_gctx_call,
3627    pub func_web_clipboard: FPtr_gctx_clipboard,
3628    pub func_split_attach_control: FPtr_gctx_set_ptr,
3629    pub func_split_detach_control: FPtr_gctx_set_ptr,
3630    pub func_split_OnDrag: FPtr_gctx_set_listener,
3631    pub func_split_track_area: FPtr_gctx_set4_real32,
3632    pub func_view_OnDraw: FPtr_gctx_set_listener,
3633    pub func_view_OnOverlay: FPtr_gctx_set_listener,
3634    pub func_view_OnEnter: FPtr_gctx_set_listener,
3635    pub func_view_OnExit: FPtr_gctx_set_listener,
3636    pub func_view_OnMoved: FPtr_gctx_set_listener,
3637    pub func_view_OnDown: FPtr_gctx_set_listener,
3638    pub func_view_OnUp: FPtr_gctx_set_listener,
3639    pub func_view_OnClick: FPtr_gctx_set_listener,
3640    pub func_view_OnDrag: FPtr_gctx_set_listener,
3641    pub func_view_OnWheel: FPtr_gctx_set_listener,
3642    pub func_view_OnKeyDown: FPtr_gctx_set_listener,
3643    pub func_view_OnKeyUp: FPtr_gctx_set_listener,
3644    pub func_view_OnFocus: FPtr_gctx_set_listener,
3645    pub func_view_OnResignFocus: FPtr_gctx_set_listener,
3646    pub func_view_OnAcceptFocus: FPtr_gctx_set_listener,
3647    pub func_view_OnScroll: FPtr_gctx_set_listener,
3648    pub func_view_OnTouchTap: FPtr_gctx_set_listener,
3649    pub func_view_OnTouchStartDrag: FPtr_gctx_set_listener,
3650    pub func_view_OnTouchDragging: FPtr_gctx_set_listener,
3651    pub func_view_OnTouchEndDrag: FPtr_gctx_set_listener,
3652    pub func_view_OnTouchStartPinch: FPtr_gctx_set_listener,
3653    pub func_view_OnTouchPinching: FPtr_gctx_set_listener,
3654    pub func_view_OnTouchEndPinch: FPtr_gctx_set_listener,
3655    pub func_view_allow_key: FPtr_gctx_set_key,
3656    pub func_view_scroll: FPtr_gctx_set2_real32,
3657    pub func_view_scroll_get: FPtr_gctx_get2_real32,
3658    pub func_view_scroller_size: FPtr_gctx_get2_real32,
3659    pub func_view_scroller_visible: FPtr_gctx_set2_bool,
3660    pub func_view_content_size: FPtr_gctx_set4_real32,
3661    pub func_view_scale_factor: FPtr_gctx_get_real32,
3662    pub func_view_set_need_display: FPtr_gctx_call,
3663    pub func_view_set_drawable: FPtr_gctx_set_bool,
3664    pub func_view_get_native_view: FPtr_gctx_get_ptr,
3665    pub func_panel_area: FPtr_gctx_set_area,
3666    pub func_panel_scroller_size: FPtr_gctx_get2_real32,
3667    pub func_panel_content_size: FPtr_gctx_set4_real32,
3668    pub func_panel_set_need_display: FPtr_gctx_call,
3669    pub func_menu_create: FPtr_gctx_create,
3670    pub func_menu_destroy: FPtr_gctx_destroy,
3671    pub func_menu_insert_item: FPtr_gctx_insert,
3672    pub func_menu_delete_item: FPtr_gctx_set_ptr,
3673    pub func_menu_launch_popup: FPtr_gctx_menu,
3674    pub func_menu_hide_popup: FPtr_gctx_call,
3675    pub func_menu_is_menubar: FPtr_gctx_get_bool,
3676    pub func_menuitem_create: FPtr_gctx_create,
3677    pub func_menuitem_destroy: FPtr_gctx_destroy,
3678    pub func_menuitem_OnClick: FPtr_gctx_set_listener,
3679    pub func_menuitem_set_enabled: FPtr_gctx_set_bool,
3680    pub func_menuitem_set_visible: FPtr_gctx_set_bool,
3681    pub func_menuitem_set_text: FPtr_gctx_set_text,
3682    pub func_menuitem_set_image: FPtr_gctx_set_cptr,
3683    pub func_menuitem_set_key_equivalent: FPtr_gctx_set_key,
3684    pub func_menuitem_set_state: FPtr_gctx_set_enum,
3685    pub func_attach_menu_to_menu_item: FPtr_gctx_set_ptr,
3686    pub func_detach_menu_from_menu_item: FPtr_gctx_set_ptr,
3687    pub func_window_create: FPtr_gctx_create,
3688    pub func_window_managed: FPtr_gctx_create2,
3689    pub func_window_destroy: FPtr_gctx_destroy,
3690    pub func_window_OnMoved: FPtr_gctx_set_listener,
3691    pub func_window_OnResize: FPtr_gctx_set_listener,
3692    pub func_window_OnClose: FPtr_gctx_set_listener,
3693    pub func_window_set_title: FPtr_gctx_set_text,
3694    pub func_window_set_edited: FPtr_gctx_set_bool,
3695    pub func_window_set_movable: FPtr_gctx_set_bool,
3696    pub func_window_set_z_order: FPtr_gctx_set_ptr,
3697    pub func_window_set_alpha: FPtr_gctx_set_real32,
3698    pub func_window_enable_mouse_events: FPtr_gctx_set_bool,
3699    pub func_window_hotkey: FPtr_gctx_set_hotkey,
3700    pub func_window_set_taborder: FPtr_gctx_set_ptr,
3701    pub func_window_tabcycle: FPtr_gctx_set_bool,
3702    pub func_window_tabstop: FPtr_gctx_set_enum2,
3703    pub func_window_set_focus: FPtr_gctx_set_ptr3,
3704    pub func_window_get_focus: FPtr_gctx_get_ptr,
3705    pub func_window_info_focus: FPtr_gctx_get_enum3,
3706    pub func_attach_main_panel_to_window: FPtr_gctx_set_ptr,
3707    pub func_detach_main_panel_from_window: FPtr_gctx_set_ptr,
3708    pub func_attach_window_to_window: FPtr_gctx_set_ptr,
3709    pub func_detach_window_from_window: FPtr_gctx_set_ptr,
3710    pub func_window_launch: FPtr_gctx_set_ptr,
3711    pub func_window_hide: FPtr_gctx_set_ptr,
3712    pub func_window_launch_modal: FPtr_gctx_set_ptr2,
3713    pub func_window_stop_modal: FPtr_gctx_set_uint32,
3714    pub func_window_get_origin_in_screen_coordinates: FPtr_gctx_get2_real32,
3715    pub func_window_set_origin_in_screen_coordinates: FPtr_gctx_set2_real32,
3716    pub func_window_get_size: FPtr_gctx_get2_real32,
3717    pub func_window_set_size: FPtr_gctx_set2_real32,
3718    pub func_window_set_default_pushbutton: FPtr_gctx_set_ptr,
3719    pub func_window_set_cursor: FPtr_gctx_set_ptr,
3720    pub func_window_set_property: FPtr_gctx_set_property,
3721    pub func_comwin_file: FPtr_gctx_win_file,
3722    pub func_comwin_color: FPtr_gctx_win_color,
3723    pub func_globals_device: FPtr_gctx_get_enum,
3724    pub func_globals_color: FPtr_gctx_get_enum,
3725    pub func_globals_resolution: FPtr_gctx_get2_real32,
3726    pub func_globals_mouse_position: FPtr_gctx_get2_real32,
3727    pub func_globals_cursor: FPtr_gctx_cursor,
3728    pub func_globals_cursor_destroy: FPtr_gctx_destroy,
3729    pub func_globals_value: FPtr_gctx_get_indexed,
3730    pub func_globals_transitions: FPtr_gctx_set2_real64,
3731    pub func_globals_OnIdle: FPtr_gctx_set_listener,
3732    pub func_drawctrl_font: FPtr_gctx_get_ptr,
3733    pub func_drawctrl_row_padding: FPtr_gctx_get_uint32,
3734    pub func_drawctrl_check_width: FPtr_gctx_get_uint32,
3735    pub func_drawctrl_check_height: FPtr_gctx_get_uint32,
3736    pub func_drawctrl_multisel: FPtr_gctx_get_enum2,
3737    pub func_drawctrl_clear: FPtr_gctx_draw_rect,
3738    pub func_drawctrl_header: FPtr_gctx_draw_rect,
3739    pub func_drawctrl_indicator: FPtr_gctx_draw_rect,
3740    pub func_drawctrl_fill: FPtr_gctx_draw_rect,
3741    pub func_drawctrl_focus: FPtr_gctx_draw_rect,
3742    pub func_drawctrl_line: FPtr_gctx_draw_line,
3743    pub func_drawctrl_text: FPtr_gctx_draw_text,
3744    pub func_drawctrl_image: FPtr_gctx_draw_image,
3745    pub func_drawctrl_checkbox: FPtr_gctx_draw_rect,
3746    pub func_drawctrl_uncheckbox: FPtr_gctx_draw_rect,
3747}
3748#[repr(C)]
3749#[derive(Debug, Copy, Clone)]
3750pub struct _evbutton_t {
3751    pub index: u32,
3752    pub state: gui_state_t,
3753    pub text: *const char_t,
3754}
3755#[repr(C)]
3756#[derive(Debug, Copy, Clone)]
3757pub struct _evslider_t {
3758    pub pos: real32_t,
3759    pub incr: real32_t,
3760    pub step: u32,
3761}
3762#[repr(C)]
3763#[derive(Debug, Copy, Clone)]
3764pub struct _evtext_t {
3765    pub text: *const char_t,
3766    pub cpos: u32,
3767    pub len: i32,
3768}
3769#[repr(C)]
3770#[derive(Debug, Copy, Clone)]
3771pub struct _evtextfilter_t {
3772    pub apply: bool_t,
3773    pub text: [char_t; 4096usize],
3774    pub cpos: u32,
3775}
3776#[repr(C)]
3777#[derive(Debug, Copy, Clone)]
3778pub struct _evdraw_t {
3779    pub ctx: *mut DCtx,
3780    pub x: real32_t,
3781    pub y: real32_t,
3782    pub width: real32_t,
3783    pub height: real32_t,
3784}
3785#[repr(C)]
3786#[derive(Debug, Copy, Clone)]
3787pub struct _evmouse_t {
3788    pub x: real32_t,
3789    pub y: real32_t,
3790    pub lx: real32_t,
3791    pub ly: real32_t,
3792    pub button: gui_mouse_t,
3793    pub count: u32,
3794    pub modifiers: u32,
3795    pub tag: u32,
3796}
3797#[repr(C)]
3798#[derive(Debug, Copy, Clone)]
3799pub struct _evwheel_t {
3800    pub x: real32_t,
3801    pub y: real32_t,
3802    pub dx: real32_t,
3803    pub dy: real32_t,
3804    pub dz: real32_t,
3805}
3806#[repr(C)]
3807#[derive(Debug, Copy, Clone)]
3808pub struct _evkey_t {
3809    pub key: vkey_t,
3810    pub modifiers: u32,
3811}
3812#[repr(C)]
3813#[derive(Debug, Copy, Clone)]
3814pub struct _evpos_t {
3815    pub x: real32_t,
3816    pub y: real32_t,
3817}
3818#[repr(C)]
3819#[derive(Debug, Copy, Clone)]
3820pub struct _evsize_t {
3821    pub width: real32_t,
3822    pub height: real32_t,
3823}
3824#[repr(C)]
3825#[derive(Debug, Copy, Clone)]
3826pub struct _evwinclose_t {
3827    pub origin: gui_close_t,
3828}
3829#[repr(C)]
3830#[derive(Debug, Copy, Clone)]
3831pub struct _evmenu_t {
3832    pub index: u32,
3833    pub state: gui_state_t,
3834    pub text: *const char_t,
3835}
3836#[repr(C)]
3837#[derive(Debug, Copy, Clone)]
3838pub struct _evscroll_t {
3839    pub orient: gui_orient_t,
3840    pub scroll: gui_scroll_t,
3841    pub cpos: real32_t,
3842}
3843#[repr(C)]
3844#[derive(Debug, Copy, Clone)]
3845pub struct _evtbpos_t {
3846    pub col: u32,
3847    pub row: u32,
3848}
3849#[repr(C)]
3850#[derive(Debug, Copy, Clone)]
3851pub struct _evtbrow_t {
3852    pub sel: bool_t,
3853    pub row: u32,
3854}
3855#[repr(C)]
3856#[derive(Debug, Copy, Clone)]
3857pub struct _evtbrect_t {
3858    pub stcol: u32,
3859    pub edcol: u32,
3860    pub strow: u32,
3861    pub edrow: u32,
3862}
3863#[repr(C)]
3864#[derive(Debug, Copy, Clone)]
3865pub struct _evtbsel_t {
3866    pub sel: *mut ArrStuint32_t,
3867}
3868#[repr(C)]
3869#[derive(Debug, Copy, Clone)]
3870pub struct _evtbcell_t {
3871    pub text: *const char_t,
3872    pub align: align_t,
3873}
3874#[repr(i32)]
3875#[non_exhaustive]
3876#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3877pub enum _gui_notif_t {
3878    ekGUI_NOTIF_LANGUAGE = 1,
3879    ekGUI_NOTIF_WIN_DESTROY = 2,
3880    ekGUI_NOTIF_MENU_DESTROY = 3,
3881}
3882pub use self::_gui_notif_t as gui_notif_t;
3883#[repr(C)]
3884#[derive(Debug, Copy, Clone)]
3885pub struct _guicontrol_t {
3886    _unused: [u8; 0],
3887}
3888pub type GuiControl = _guicontrol_t;
3889#[repr(C)]
3890#[derive(Debug, Copy, Clone)]
3891pub struct _label_t {
3892    _unused: [u8; 0],
3893}
3894pub type Label = _label_t;
3895#[repr(C)]
3896#[derive(Debug, Copy, Clone)]
3897pub struct _button_t {
3898    _unused: [u8; 0],
3899}
3900pub type Button = _button_t;
3901#[repr(C)]
3902#[derive(Debug, Copy, Clone)]
3903pub struct _popup_t {
3904    _unused: [u8; 0],
3905}
3906pub type PopUp = _popup_t;
3907#[repr(C)]
3908#[derive(Debug, Copy, Clone)]
3909pub struct _edit_t {
3910    _unused: [u8; 0],
3911}
3912pub type Edit = _edit_t;
3913#[repr(C)]
3914#[derive(Debug, Copy, Clone)]
3915pub struct _combo_t {
3916    _unused: [u8; 0],
3917}
3918pub type Combo = _combo_t;
3919#[repr(C)]
3920#[derive(Debug, Copy, Clone)]
3921pub struct _listbox_t {
3922    _unused: [u8; 0],
3923}
3924pub type ListBox = _listbox_t;
3925#[repr(C)]
3926#[derive(Debug, Copy, Clone)]
3927pub struct _updown_t {
3928    _unused: [u8; 0],
3929}
3930pub type UpDown = _updown_t;
3931#[repr(C)]
3932#[derive(Debug, Copy, Clone)]
3933pub struct _slider_t {
3934    _unused: [u8; 0],
3935}
3936pub type Slider = _slider_t;
3937#[repr(C)]
3938#[derive(Debug, Copy, Clone)]
3939pub struct _progress_t {
3940    _unused: [u8; 0],
3941}
3942pub type Progress = _progress_t;
3943#[repr(C)]
3944#[derive(Debug, Copy, Clone)]
3945pub struct _view_t {
3946    _unused: [u8; 0],
3947}
3948pub type View = _view_t;
3949#[repr(C)]
3950#[derive(Debug, Copy, Clone)]
3951pub struct _textview_t {
3952    _unused: [u8; 0],
3953}
3954pub type TextView = _textview_t;
3955#[repr(C)]
3956#[derive(Debug, Copy, Clone)]
3957pub struct _webview_t {
3958    _unused: [u8; 0],
3959}
3960pub type WebView = _webview_t;
3961#[repr(C)]
3962#[derive(Debug, Copy, Clone)]
3963pub struct _imageview_t {
3964    _unused: [u8; 0],
3965}
3966pub type ImageView = _imageview_t;
3967#[repr(C)]
3968#[derive(Debug, Copy, Clone)]
3969pub struct _tableview_t {
3970    _unused: [u8; 0],
3971}
3972pub type TableView = _tableview_t;
3973#[repr(C)]
3974#[derive(Debug, Copy, Clone)]
3975pub struct _splitview_t {
3976    _unused: [u8; 0],
3977}
3978pub type SplitView = _splitview_t;
3979#[repr(C)]
3980#[derive(Debug, Copy, Clone)]
3981pub struct _layout_t {
3982    _unused: [u8; 0],
3983}
3984pub type Layout = _layout_t;
3985#[repr(C)]
3986#[derive(Debug, Copy, Clone)]
3987pub struct _cell_t {
3988    _unused: [u8; 0],
3989}
3990pub type Cell = _cell_t;
3991#[repr(C)]
3992#[derive(Debug, Copy, Clone)]
3993pub struct _panel_t {
3994    _unused: [u8; 0],
3995}
3996pub type Panel = _panel_t;
3997#[repr(C)]
3998#[derive(Debug, Copy, Clone)]
3999pub struct _window_t {
4000    _unused: [u8; 0],
4001}
4002pub type Window = _window_t;
4003#[repr(C)]
4004#[derive(Debug, Copy, Clone)]
4005pub struct _menu_t {
4006    _unused: [u8; 0],
4007}
4008pub type Menu = _menu_t;
4009#[repr(C)]
4010#[derive(Debug, Copy, Clone)]
4011pub struct _menu_item_t {
4012    _unused: [u8; 0],
4013}
4014pub type MenuItem = _menu_item_t;
4015pub type FocusInfo = _focus_info_t;
4016pub type FPtr_respack =
4017    ::core::option::Option<unsafe extern "C" fn(locale: *const char_t) -> *mut ResPack>;
4018#[repr(C)]
4019#[derive(Debug, Copy, Clone)]
4020pub struct _focus_info_t {
4021    pub action: gui_tab_t,
4022    pub next: *mut GuiControl,
4023}
4024#[repr(C)]
4025#[derive(Debug, Copy, Clone)]
4026pub struct FPtr_respackData {
4027    pub elem: [FPtr_respack; 1024usize],
4028}
4029#[repr(C)]
4030#[derive(Debug, Copy, Clone)]
4031pub struct ArrStFPtr_respack {
4032    pub reserved: u32,
4033    pub size: u32,
4034    pub elem_sizeof: u16,
4035    pub content: *mut FPtr_respackData,
4036}
4037#[repr(C)]
4038#[derive(Debug, Copy, Clone)]
4039pub struct NodeStFPtr_respack {
4040    pub rb: u32,
4041    pub left: *mut NodeStFPtr_respack,
4042    pub right: *mut NodeStFPtr_respack,
4043    pub data: FPtr_respack,
4044}
4045#[repr(C)]
4046#[derive(Debug, Copy, Clone)]
4047pub struct SetStFPtr_respack {
4048    pub elems: u32,
4049    pub esize: u16,
4050    pub ksize: u16,
4051    pub root: *mut NodeStFPtr_respack,
4052    pub func_compare: FPtr_compare,
4053}
4054#[repr(C)]
4055#[derive(Debug, Copy, Clone)]
4056pub struct _arrstendFPtr_respack_t {
4057    _unused: [u8; 0],
4058}
4059pub type arrstendFPtr_respack = _arrstendFPtr_respack_t;
4060#[repr(C)]
4061#[derive(Debug, Copy, Clone)]
4062pub struct _setstendFPtr_respack_t {
4063    _unused: [u8; 0],
4064}
4065pub type setstendFPtr_respack = _setstendFPtr_respack_t;
4066pub type FPtr_task_main =
4067    ::core::option::Option<unsafe extern "C" fn(data: *mut ::libc::c_void) -> u32>;
4068pub type FPtr_task_update = ::core::option::Option<unsafe extern "C" fn(data: *mut ::libc::c_void)>;
4069pub type FPtr_task_end =
4070    ::core::option::Option<unsafe extern "C" fn(data: *mut ::libc::c_void, rvalue: u32)>;
4071unsafe extern "C" {
4072    pub fn osapp_finish();
4073}
4074unsafe extern "C" {
4075    pub fn osapp_argc() -> u32;
4076}
4077unsafe extern "C" {
4078    pub fn osapp_argv(index: u32, argv: *mut char_t, size: u32) -> u32;
4079}
4080unsafe extern "C" {
4081    pub fn osapp_task_imp(
4082        data: *mut ::libc::c_void,
4083        updtime: real32_t,
4084        func_task_main: FPtr_task_main,
4085        func_task_update: FPtr_task_update,
4086        func_task_end: FPtr_task_end,
4087    );
4088}
4089unsafe extern "C" {
4090    pub fn osapp_menubar(menu: *mut Menu, window: *mut Window);
4091}
4092unsafe extern "C" {
4093    pub fn osapp_open_url(url: *const char_t);
4094}
4095unsafe extern "C" {
4096    pub fn button_push() -> *mut Button;
4097}
4098unsafe extern "C" {
4099    pub fn button_check() -> *mut Button;
4100}
4101unsafe extern "C" {
4102    pub fn button_check3() -> *mut Button;
4103}
4104unsafe extern "C" {
4105    pub fn button_radio() -> *mut Button;
4106}
4107unsafe extern "C" {
4108    pub fn button_flat() -> *mut Button;
4109}
4110unsafe extern "C" {
4111    pub fn button_flatgle() -> *mut Button;
4112}
4113unsafe extern "C" {
4114    pub fn button_OnClick(button: *mut Button, listener: *mut Listener);
4115}
4116unsafe extern "C" {
4117    pub fn button_min_width(button: *mut Button, width: real32_t);
4118}
4119unsafe extern "C" {
4120    pub fn button_text(button: *mut Button, text: *const char_t);
4121}
4122unsafe extern "C" {
4123    pub fn button_text_alt(button: *mut Button, text: *const char_t);
4124}
4125unsafe extern "C" {
4126    pub fn button_tooltip(button: *mut Button, text: *const char_t);
4127}
4128unsafe extern "C" {
4129    pub fn button_font(button: *mut Button, font: *const Font);
4130}
4131unsafe extern "C" {
4132    pub fn button_get_font(button: *const Button) -> *const Font;
4133}
4134unsafe extern "C" {
4135    pub fn button_image(button: *mut Button, image: *const Image);
4136}
4137unsafe extern "C" {
4138    pub fn button_image_alt(button: *mut Button, image: *const Image);
4139}
4140unsafe extern "C" {
4141    pub fn button_state(button: *mut Button, state: gui_state_t);
4142}
4143unsafe extern "C" {
4144    pub fn button_tag(button: *mut Button, tag: u32);
4145}
4146unsafe extern "C" {
4147    pub fn button_vpadding(button: *mut Button, padding: real32_t);
4148}
4149unsafe extern "C" {
4150    pub fn button_get_state(button: *const Button) -> gui_state_t;
4151}
4152unsafe extern "C" {
4153    pub fn button_get_tag(button: *const Button) -> u32;
4154}
4155unsafe extern "C" {
4156    pub fn button_get_height(button: *const Button) -> real32_t;
4157}
4158unsafe extern "C" {
4159    pub fn cell_empty(cell: *mut Cell) -> bool_t;
4160}
4161unsafe extern "C" {
4162    pub fn cell_control(cell: *mut Cell) -> *mut GuiControl;
4163}
4164unsafe extern "C" {
4165    pub fn cell_label(cell: *mut Cell) -> *mut Label;
4166}
4167unsafe extern "C" {
4168    pub fn cell_button(cell: *mut Cell) -> *mut Button;
4169}
4170unsafe extern "C" {
4171    pub fn cell_popup(cell: *mut Cell) -> *mut PopUp;
4172}
4173unsafe extern "C" {
4174    pub fn cell_edit(cell: *mut Cell) -> *mut Edit;
4175}
4176unsafe extern "C" {
4177    pub fn cell_combo(cell: *mut Cell) -> *mut Combo;
4178}
4179unsafe extern "C" {
4180    pub fn cell_listbox(cell: *mut Cell) -> *mut ListBox;
4181}
4182unsafe extern "C" {
4183    pub fn cell_updown(cell: *mut Cell) -> *mut UpDown;
4184}
4185unsafe extern "C" {
4186    pub fn cell_slider(cell: *mut Cell) -> *mut Slider;
4187}
4188unsafe extern "C" {
4189    pub fn cell_progress(cell: *mut Cell) -> *mut Progress;
4190}
4191unsafe extern "C" {
4192    pub fn cell_view(cell: *mut Cell) -> *mut View;
4193}
4194unsafe extern "C" {
4195    pub fn cell_textview(cell: *mut Cell) -> *mut TextView;
4196}
4197unsafe extern "C" {
4198    pub fn cell_webview(cell: *mut Cell) -> *mut WebView;
4199}
4200unsafe extern "C" {
4201    pub fn cell_imageview(cell: *mut Cell) -> *mut ImageView;
4202}
4203unsafe extern "C" {
4204    pub fn cell_tableview(cell: *mut Cell) -> *mut TableView;
4205}
4206unsafe extern "C" {
4207    pub fn cell_splitview(cell: *mut Cell) -> *mut SplitView;
4208}
4209unsafe extern "C" {
4210    pub fn cell_panel(cell: *mut Cell) -> *mut Panel;
4211}
4212unsafe extern "C" {
4213    pub fn cell_layout(cell: *mut Cell) -> *mut Layout;
4214}
4215unsafe extern "C" {
4216    pub fn cell_enabled(cell: *mut Cell, enabled: bool_t);
4217}
4218unsafe extern "C" {
4219    pub fn cell_visible(cell: *mut Cell, visible: bool_t);
4220}
4221unsafe extern "C" {
4222    pub fn cell_padding(cell: *mut Cell, pall: real32_t);
4223}
4224unsafe extern "C" {
4225    pub fn cell_padding2(cell: *mut Cell, ptb: real32_t, plr: real32_t);
4226}
4227unsafe extern "C" {
4228    pub fn cell_padding4(cell: *mut Cell, pt: real32_t, pr: real32_t, pb: real32_t, pl: real32_t);
4229}
4230unsafe extern "C" {
4231    pub fn cell_dbind_imp(
4232        cell: *mut Cell,
4233        type_: *const char_t,
4234        size: u16,
4235        mname: *const char_t,
4236        mtype: *const char_t,
4237        moffset: u16,
4238        msize: u16,
4239    );
4240}
4241unsafe extern "C" {
4242    pub fn combo_create() -> *mut Combo;
4243}
4244unsafe extern "C" {
4245    pub fn combo_OnFilter(combo: *mut Combo, listener: *mut Listener);
4246}
4247unsafe extern "C" {
4248    pub fn combo_OnChange(combo: *mut Combo, listener: *mut Listener);
4249}
4250unsafe extern "C" {
4251    pub fn combo_text(combo: *mut Combo, text: *const char_t);
4252}
4253unsafe extern "C" {
4254    pub fn combo_align(combo: *mut Combo, align: align_t);
4255}
4256unsafe extern "C" {
4257    pub fn combo_tooltip(combo: *mut Combo, text: *const char_t);
4258}
4259unsafe extern "C" {
4260    pub fn combo_color(combo: *mut Combo, color: color_t);
4261}
4262unsafe extern "C" {
4263    pub fn combo_color_focus(combo: *mut Combo, color: color_t);
4264}
4265unsafe extern "C" {
4266    pub fn combo_bgcolor(combo: *mut Combo, color: color_t);
4267}
4268unsafe extern "C" {
4269    pub fn combo_bgcolor_focus(combo: *mut Combo, color: color_t);
4270}
4271unsafe extern "C" {
4272    pub fn combo_phtext(combo: *mut Combo, text: *const char_t);
4273}
4274unsafe extern "C" {
4275    pub fn combo_phcolor(combo: *mut Combo, color: color_t);
4276}
4277unsafe extern "C" {
4278    pub fn combo_phstyle(combo: *mut Combo, fstyle: u32);
4279}
4280unsafe extern "C" {
4281    pub fn combo_get_text(combo: *const Combo, index: u32) -> *const char_t;
4282}
4283unsafe extern "C" {
4284    pub fn combo_count(combo: *const Combo) -> u32;
4285}
4286unsafe extern "C" {
4287    pub fn combo_add_elem(combo: *mut Combo, text: *const char_t, image: *const Image);
4288}
4289unsafe extern "C" {
4290    pub fn combo_set_elem(combo: *mut Combo, index: u32, text: *const char_t, image: *const Image);
4291}
4292unsafe extern "C" {
4293    pub fn combo_ins_elem(combo: *mut Combo, index: u32, text: *const char_t, image: *const Image);
4294}
4295unsafe extern "C" {
4296    pub fn combo_del_elem(combo: *mut Combo, index: u32);
4297}
4298unsafe extern "C" {
4299    pub fn combo_duplicates(combo: *mut Combo, duplicates: bool_t);
4300}
4301unsafe extern "C" {
4302    pub fn comwin_open_file(
4303        parent: *mut Window,
4304        ftypes: *mut *const char_t,
4305        size: u32,
4306        start_dir: *const char_t,
4307    ) -> *const char_t;
4308}
4309unsafe extern "C" {
4310    pub fn comwin_save_file(
4311        parent: *mut Window,
4312        ftypes: *mut *const char_t,
4313        size: u32,
4314        start_dir: *const char_t,
4315    ) -> *const char_t;
4316}
4317unsafe extern "C" {
4318    pub fn comwin_color(
4319        parent: *mut Window,
4320        title: *const char_t,
4321        x: real32_t,
4322        y: real32_t,
4323        halign: align_t,
4324        valign: align_t,
4325        current: color_t,
4326        colors: *mut color_t,
4327        n: u32,
4328        OnChange: *mut Listener,
4329    );
4330}
4331unsafe extern "C" {
4332    pub fn edit_create() -> *mut Edit;
4333}
4334unsafe extern "C" {
4335    pub fn edit_multiline() -> *mut Edit;
4336}
4337unsafe extern "C" {
4338    pub fn edit_OnFilter(edit: *mut Edit, listener: *mut Listener);
4339}
4340unsafe extern "C" {
4341    pub fn edit_OnChange(edit: *mut Edit, listener: *mut Listener);
4342}
4343unsafe extern "C" {
4344    pub fn edit_OnFocus(edit: *mut Edit, listener: *mut Listener);
4345}
4346unsafe extern "C" {
4347    pub fn edit_min_width(edit: *mut Edit, width: real32_t);
4348}
4349unsafe extern "C" {
4350    pub fn edit_min_height(edit: *mut Edit, height: real32_t);
4351}
4352unsafe extern "C" {
4353    pub fn edit_text(edit: *mut Edit, text: *const char_t);
4354}
4355unsafe extern "C" {
4356    pub fn edit_font(edit: *mut Edit, font: *const Font);
4357}
4358unsafe extern "C" {
4359    pub fn edit_align(edit: *mut Edit, align: align_t);
4360}
4361unsafe extern "C" {
4362    pub fn edit_passmode(edit: *mut Edit, passmode: bool_t);
4363}
4364unsafe extern "C" {
4365    pub fn edit_editable(edit: *mut Edit, is_editable: bool_t);
4366}
4367unsafe extern "C" {
4368    pub fn edit_autoselect(edit: *mut Edit, autoselect: bool_t);
4369}
4370unsafe extern "C" {
4371    pub fn edit_select(edit: *mut Edit, start: i32, end: i32);
4372}
4373unsafe extern "C" {
4374    pub fn edit_tooltip(edit: *mut Edit, text: *const char_t);
4375}
4376unsafe extern "C" {
4377    pub fn edit_color(edit: *mut Edit, color: color_t);
4378}
4379unsafe extern "C" {
4380    pub fn edit_color_focus(edit: *mut Edit, color: color_t);
4381}
4382unsafe extern "C" {
4383    pub fn edit_bgcolor(edit: *mut Edit, color: color_t);
4384}
4385unsafe extern "C" {
4386    pub fn edit_bgcolor_focus(edit: *mut Edit, color: color_t);
4387}
4388unsafe extern "C" {
4389    pub fn edit_phtext(edit: *mut Edit, text: *const char_t);
4390}
4391unsafe extern "C" {
4392    pub fn edit_phcolor(edit: *mut Edit, color: color_t);
4393}
4394unsafe extern "C" {
4395    pub fn edit_phstyle(edit: *mut Edit, fstyle: u32);
4396}
4397unsafe extern "C" {
4398    pub fn edit_vpadding(edit: *mut Edit, padding: real32_t);
4399}
4400unsafe extern "C" {
4401    pub fn edit_get_text(edit: *const Edit) -> *const char_t;
4402}
4403unsafe extern "C" {
4404    pub fn edit_get_height(edit: *const Edit) -> real32_t;
4405}
4406unsafe extern "C" {
4407    pub fn edit_copy(edit: *const Edit);
4408}
4409unsafe extern "C" {
4410    pub fn edit_cut(edit: *mut Edit);
4411}
4412unsafe extern "C" {
4413    pub fn edit_paste(edit: *mut Edit);
4414}
4415unsafe extern "C" {
4416    pub fn globals_device() -> device_t;
4417}
4418unsafe extern "C" {
4419    pub fn globals_resolution(resolution: *mut S2Df);
4420}
4421unsafe extern "C" {
4422    pub fn globals_mouse_position() -> V2Df;
4423}
4424unsafe extern "C" {
4425    pub fn gui_start();
4426}
4427unsafe extern "C" {
4428    pub fn gui_finish();
4429}
4430unsafe extern "C" {
4431    pub fn gui_respack(func_respack: FPtr_respack);
4432}
4433unsafe extern "C" {
4434    pub fn gui_language(lang: *const char_t);
4435}
4436unsafe extern "C" {
4437    pub fn gui_text(id: ResId) -> *const char_t;
4438}
4439unsafe extern "C" {
4440    pub fn gui_image(id: ResId) -> *const Image;
4441}
4442unsafe extern "C" {
4443    pub fn gui_file(id: ResId, size: *mut u32) -> *const byte_t;
4444}
4445unsafe extern "C" {
4446    pub fn gui_dark_mode() -> bool_t;
4447}
4448unsafe extern "C" {
4449    pub fn gui_alt_color(light_color: color_t, dark_color: color_t) -> color_t;
4450}
4451unsafe extern "C" {
4452    pub fn gui_label_color() -> color_t;
4453}
4454unsafe extern "C" {
4455    pub fn gui_view_color() -> color_t;
4456}
4457unsafe extern "C" {
4458    pub fn gui_line_color() -> color_t;
4459}
4460unsafe extern "C" {
4461    pub fn gui_link_color() -> color_t;
4462}
4463unsafe extern "C" {
4464    pub fn gui_border_color() -> color_t;
4465}
4466unsafe extern "C" {
4467    pub fn gui_resolution() -> S2Df;
4468}
4469unsafe extern "C" {
4470    pub fn gui_mouse_pos() -> V2Df;
4471}
4472unsafe extern "C" {
4473    pub fn gui_update();
4474}
4475unsafe extern "C" {
4476    pub fn gui_OnThemeChanged(listener: *mut Listener);
4477}
4478unsafe extern "C" {
4479    pub fn gui_update_transitions(prtime: real64_t, crtime: real64_t);
4480}
4481unsafe extern "C" {
4482    pub fn gui_OnNotification(listener: *mut Listener);
4483}
4484unsafe extern "C" {
4485    pub fn gui_OnIdle(listener: *mut Listener);
4486}
4487unsafe extern "C" {
4488    pub fn gui_info_window(
4489        fatal: bool_t,
4490        msg: *const char_t,
4491        caption: *const char_t,
4492        detail: *const char_t,
4493        file: *const char_t,
4494        line: u32,
4495        buttons: *const ArrPtString,
4496        defindex: u32,
4497    ) -> u32;
4498}
4499unsafe extern "C" {
4500    pub fn evbind_object_imp(e: *mut Event, type_: *const char_t) -> *mut ::libc::c_void;
4501}
4502unsafe extern "C" {
4503    pub fn evbind_modify_imp(
4504        e: *mut Event,
4505        type_: *const char_t,
4506        size: u16,
4507        mname: *const char_t,
4508        mtype: *const char_t,
4509        moffset: u16,
4510        msize: u16,
4511    ) -> bool_t;
4512}
4513unsafe extern "C" {
4514    pub fn guicontrol_label(control: *mut GuiControl) -> *mut Label;
4515}
4516unsafe extern "C" {
4517    pub fn guicontrol_button(control: *mut GuiControl) -> *mut Button;
4518}
4519unsafe extern "C" {
4520    pub fn guicontrol_popup(control: *mut GuiControl) -> *mut PopUp;
4521}
4522unsafe extern "C" {
4523    pub fn guicontrol_edit(control: *mut GuiControl) -> *mut Edit;
4524}
4525unsafe extern "C" {
4526    pub fn guicontrol_combo(control: *mut GuiControl) -> *mut Combo;
4527}
4528unsafe extern "C" {
4529    pub fn guicontrol_listbox(control: *mut GuiControl) -> *mut ListBox;
4530}
4531unsafe extern "C" {
4532    pub fn guicontrol_updown(control: *mut GuiControl) -> *mut UpDown;
4533}
4534unsafe extern "C" {
4535    pub fn guicontrol_slider(control: *mut GuiControl) -> *mut Slider;
4536}
4537unsafe extern "C" {
4538    pub fn guicontrol_progress(control: *mut GuiControl) -> *mut Progress;
4539}
4540unsafe extern "C" {
4541    pub fn guicontrol_view(control: *mut GuiControl) -> *mut View;
4542}
4543unsafe extern "C" {
4544    pub fn guicontrol_textview(control: *mut GuiControl) -> *mut TextView;
4545}
4546unsafe extern "C" {
4547    pub fn guicontrol_webview(control: *mut GuiControl) -> *mut WebView;
4548}
4549unsafe extern "C" {
4550    pub fn guicontrol_imageview(control: *mut GuiControl) -> *mut ImageView;
4551}
4552unsafe extern "C" {
4553    pub fn guicontrol_tableview(control: *mut GuiControl) -> *mut TableView;
4554}
4555unsafe extern "C" {
4556    pub fn guicontrol_splitview(control: *mut GuiControl) -> *mut SplitView;
4557}
4558unsafe extern "C" {
4559    pub fn guicontrol_panel(control: *mut GuiControl) -> *mut Panel;
4560}
4561unsafe extern "C" {
4562    pub fn guicontrol_tag(control: *mut GuiControl, tag: u32);
4563}
4564unsafe extern "C" {
4565    pub fn guicontrol_get_tag(control: *const GuiControl) -> u32;
4566}
4567unsafe extern "C" {
4568    pub fn imageview_create() -> *mut ImageView;
4569}
4570unsafe extern "C" {
4571    pub fn imageview_size(view: *mut ImageView, size: S2Df);
4572}
4573unsafe extern "C" {
4574    pub fn imageview_scale(view: *mut ImageView, scale: gui_scale_t);
4575}
4576unsafe extern "C" {
4577    pub fn imageview_image(view: *mut ImageView, image: *const Image);
4578}
4579unsafe extern "C" {
4580    pub fn imageview_OnClick(view: *mut ImageView, listener: *mut Listener);
4581}
4582unsafe extern "C" {
4583    pub fn imageview_OnOverDraw(view: *mut ImageView, listener: *mut Listener);
4584}
4585unsafe extern "C" {
4586    pub fn label_create() -> *mut Label;
4587}
4588unsafe extern "C" {
4589    pub fn label_OnClick(label: *mut Label, listener: *mut Listener);
4590}
4591unsafe extern "C" {
4592    pub fn label_min_width(label: *mut Label, width: real32_t);
4593}
4594unsafe extern "C" {
4595    pub fn label_text(label: *mut Label, text: *const char_t);
4596}
4597unsafe extern "C" {
4598    pub fn label_size_text(label: *mut Label, text: *const char_t);
4599}
4600unsafe extern "C" {
4601    pub fn label_font(label: *mut Label, font: *const Font);
4602}
4603unsafe extern "C" {
4604    pub fn label_get_font(label: *const Label) -> *const Font;
4605}
4606unsafe extern "C" {
4607    pub fn label_style_over(label: *mut Label, fstyle: u32);
4608}
4609unsafe extern "C" {
4610    pub fn label_multiline(label: *mut Label, multiline: bool_t);
4611}
4612unsafe extern "C" {
4613    pub fn label_align(label: *mut Label, align: align_t);
4614}
4615unsafe extern "C" {
4616    pub fn label_color(label: *mut Label, color: color_t);
4617}
4618unsafe extern "C" {
4619    pub fn label_color_over(label: *mut Label, color: color_t);
4620}
4621unsafe extern "C" {
4622    pub fn label_bgcolor(label: *mut Label, color: color_t);
4623}
4624unsafe extern "C" {
4625    pub fn label_bgcolor_over(label: *mut Label, color: color_t);
4626}
4627unsafe extern "C" {
4628    pub fn layout_create(ncols: u32, nrows: u32) -> *mut Layout;
4629}
4630unsafe extern "C" {
4631    pub fn layout_cell(layout: *mut Layout, col: u32, row: u32) -> *mut Cell;
4632}
4633unsafe extern "C" {
4634    pub fn layout_control(layout: *mut Layout, col: u32, row: u32) -> *mut GuiControl;
4635}
4636unsafe extern "C" {
4637    pub fn layout_label(layout: *mut Layout, label: *mut Label, col: u32, row: u32);
4638}
4639unsafe extern "C" {
4640    pub fn layout_button(layout: *mut Layout, button: *mut Button, col: u32, row: u32);
4641}
4642unsafe extern "C" {
4643    pub fn layout_popup(layout: *mut Layout, popup: *mut PopUp, col: u32, row: u32);
4644}
4645unsafe extern "C" {
4646    pub fn layout_edit(layout: *mut Layout, edit: *mut Edit, col: u32, row: u32);
4647}
4648unsafe extern "C" {
4649    pub fn layout_combo(layout: *mut Layout, combo: *mut Combo, col: u32, row: u32);
4650}
4651unsafe extern "C" {
4652    pub fn layout_listbox(layout: *mut Layout, list: *mut ListBox, col: u32, row: u32);
4653}
4654unsafe extern "C" {
4655    pub fn layout_updown(layout: *mut Layout, updown: *mut UpDown, col: u32, row: u32);
4656}
4657unsafe extern "C" {
4658    pub fn layout_slider(layout: *mut Layout, slider: *mut Slider, col: u32, row: u32);
4659}
4660unsafe extern "C" {
4661    pub fn layout_progress(layout: *mut Layout, progress: *mut Progress, col: u32, row: u32);
4662}
4663unsafe extern "C" {
4664    pub fn layout_view(layout: *mut Layout, view: *mut View, col: u32, row: u32);
4665}
4666unsafe extern "C" {
4667    pub fn layout_textview(layout: *mut Layout, view: *mut TextView, col: u32, row: u32);
4668}
4669unsafe extern "C" {
4670    pub fn layout_webview(layout: *mut Layout, view: *mut WebView, col: u32, row: u32);
4671}
4672unsafe extern "C" {
4673    pub fn layout_imageview(layout: *mut Layout, view: *mut ImageView, col: u32, row: u32);
4674}
4675unsafe extern "C" {
4676    pub fn layout_tableview(layout: *mut Layout, view: *mut TableView, col: u32, row: u32);
4677}
4678unsafe extern "C" {
4679    pub fn layout_splitview(layout: *mut Layout, view: *mut SplitView, col: u32, row: u32);
4680}
4681unsafe extern "C" {
4682    pub fn layout_panel(layout: *mut Layout, panel: *mut Panel, col: u32, row: u32);
4683}
4684unsafe extern "C" {
4685    pub fn layout_panel_replace(layout: *mut Layout, panel: *mut Panel, col: u32, row: u32);
4686}
4687unsafe extern "C" {
4688    pub fn layout_layout(layout: *mut Layout, sublayout: *mut Layout, col: u32, row: u32);
4689}
4690unsafe extern "C" {
4691    pub fn layout_get_label(layout: *mut Layout, col: u32, row: u32) -> *mut Label;
4692}
4693unsafe extern "C" {
4694    pub fn layout_get_button(layout: *mut Layout, col: u32, row: u32) -> *mut Button;
4695}
4696unsafe extern "C" {
4697    pub fn layout_get_popup(layout: *mut Layout, col: u32, row: u32) -> *mut PopUp;
4698}
4699unsafe extern "C" {
4700    pub fn layout_get_edit(layout: *mut Layout, col: u32, row: u32) -> *mut Edit;
4701}
4702unsafe extern "C" {
4703    pub fn layout_get_combo(layout: *mut Layout, col: u32, row: u32) -> *mut Combo;
4704}
4705unsafe extern "C" {
4706    pub fn layout_get_listbox(layout: *mut Layout, col: u32, row: u32) -> *mut ListBox;
4707}
4708unsafe extern "C" {
4709    pub fn layout_get_updown(layout: *mut Layout, col: u32, row: u32) -> *mut UpDown;
4710}
4711unsafe extern "C" {
4712    pub fn layout_get_slider(layout: *mut Layout, col: u32, row: u32) -> *mut Slider;
4713}
4714unsafe extern "C" {
4715    pub fn layout_get_progress(layout: *mut Layout, col: u32, row: u32) -> *mut Progress;
4716}
4717unsafe extern "C" {
4718    pub fn layout_get_view(layout: *mut Layout, col: u32, row: u32) -> *mut View;
4719}
4720unsafe extern "C" {
4721    pub fn layout_get_textview(layout: *mut Layout, col: u32, row: u32) -> *mut TextView;
4722}
4723unsafe extern "C" {
4724    pub fn layout_get_webview(layout: *mut Layout, col: u32, row: u32) -> *mut WebView;
4725}
4726unsafe extern "C" {
4727    pub fn layout_get_imageview(layout: *mut Layout, col: u32, row: u32) -> *mut ImageView;
4728}
4729unsafe extern "C" {
4730    pub fn layout_get_tableview(layout: *mut Layout, col: u32, row: u32) -> *mut TableView;
4731}
4732unsafe extern "C" {
4733    pub fn layout_get_splitview(layout: *mut Layout, col: u32, row: u32) -> *mut SplitView;
4734}
4735unsafe extern "C" {
4736    pub fn layout_get_panel(layout: *mut Layout, col: u32, row: u32) -> *mut Panel;
4737}
4738unsafe extern "C" {
4739    pub fn layout_get_layout(layout: *mut Layout, col: u32, row: u32) -> *mut Layout;
4740}
4741unsafe extern "C" {
4742    pub fn layout_ncols(layout: *const Layout) -> u32;
4743}
4744unsafe extern "C" {
4745    pub fn layout_nrows(layout: *const Layout) -> u32;
4746}
4747unsafe extern "C" {
4748    pub fn layout_insert_col(layout: *mut Layout, col: u32);
4749}
4750unsafe extern "C" {
4751    pub fn layout_insert_row(layout: *mut Layout, row: u32);
4752}
4753unsafe extern "C" {
4754    pub fn layout_remove_col(layout: *mut Layout, col: u32);
4755}
4756unsafe extern "C" {
4757    pub fn layout_remove_row(layout: *mut Layout, row: u32);
4758}
4759unsafe extern "C" {
4760    pub fn layout_taborder(layout: *mut Layout, order: gui_orient_t);
4761}
4762unsafe extern "C" {
4763    pub fn layout_tabstop(layout: *mut Layout, col: u32, row: u32, tabstop: bool_t);
4764}
4765unsafe extern "C" {
4766    pub fn layout_hsize(layout: *mut Layout, col: u32, width: real32_t);
4767}
4768unsafe extern "C" {
4769    pub fn layout_vsize(layout: *mut Layout, row: u32, height: real32_t);
4770}
4771unsafe extern "C" {
4772    pub fn layout_hmargin(layout: *mut Layout, col: u32, margin: real32_t);
4773}
4774unsafe extern "C" {
4775    pub fn layout_vmargin(layout: *mut Layout, row: u32, margin: real32_t);
4776}
4777unsafe extern "C" {
4778    pub fn layout_hexpand(layout: *mut Layout, col: u32);
4779}
4780unsafe extern "C" {
4781    pub fn layout_hexpand2(layout: *mut Layout, col1: u32, col2: u32, exp: real32_t);
4782}
4783unsafe extern "C" {
4784    pub fn layout_hexpand3(
4785        layout: *mut Layout,
4786        col1: u32,
4787        col2: u32,
4788        col3: u32,
4789        exp1: real32_t,
4790        exp2: real32_t,
4791    );
4792}
4793unsafe extern "C" {
4794    pub fn layout_vexpand(layout: *mut Layout, row: u32);
4795}
4796unsafe extern "C" {
4797    pub fn layout_vexpand2(layout: *mut Layout, row1: u32, row2: u32, exp: real32_t);
4798}
4799unsafe extern "C" {
4800    pub fn layout_vexpand3(
4801        layout: *mut Layout,
4802        row1: u32,
4803        row2: u32,
4804        row3: u32,
4805        exp1: real32_t,
4806        exp2: real32_t,
4807    );
4808}
4809unsafe extern "C" {
4810    pub fn layout_halign(layout: *mut Layout, col: u32, row: u32, align: align_t);
4811}
4812unsafe extern "C" {
4813    pub fn layout_valign(layout: *mut Layout, col: u32, row: u32, align: align_t);
4814}
4815unsafe extern "C" {
4816    pub fn layout_show_col(layout: *mut Layout, col: u32, visible: bool_t);
4817}
4818unsafe extern "C" {
4819    pub fn layout_show_row(layout: *mut Layout, row: u32, visible: bool_t);
4820}
4821unsafe extern "C" {
4822    pub fn layout_margin(layout: *mut Layout, mall: real32_t);
4823}
4824unsafe extern "C" {
4825    pub fn layout_margin2(layout: *mut Layout, mtb: real32_t, mlr: real32_t);
4826}
4827unsafe extern "C" {
4828    pub fn layout_margin4(
4829        layout: *mut Layout,
4830        mt: real32_t,
4831        mr: real32_t,
4832        mb: real32_t,
4833        ml: real32_t,
4834    );
4835}
4836unsafe extern "C" {
4837    pub fn layout_bgcolor(layout: *mut Layout, color: color_t);
4838}
4839unsafe extern "C" {
4840    pub fn layout_skcolor(layout: *mut Layout, color: color_t);
4841}
4842unsafe extern "C" {
4843    pub fn layout_update(layout: *const Layout);
4844}
4845unsafe extern "C" {
4846    pub fn layout_dbind_imp(
4847        layout: *mut Layout,
4848        listener: *mut Listener,
4849        type_: *const char_t,
4850        size: u16,
4851    );
4852}
4853unsafe extern "C" {
4854    pub fn layout_dbind_obj_imp(
4855        layout: *mut Layout,
4856        obj: *mut ::libc::c_void,
4857        type_: *const char_t,
4858    );
4859}
4860unsafe extern "C" {
4861    pub fn layout_dbind_get_obj_imp(
4862        layout: *mut Layout,
4863        type_: *const char_t,
4864    ) -> *mut ::libc::c_void;
4865}
4866unsafe extern "C" {
4867    pub fn layout_dbind_update_imp(
4868        layout: *mut Layout,
4869        type_: *const char_t,
4870        size: u16,
4871        mname: *const char_t,
4872        mtype: *const char_t,
4873        moffset: u16,
4874        msize: u16,
4875    );
4876}
4877unsafe extern "C" {
4878    pub fn listbox_create() -> *mut ListBox;
4879}
4880unsafe extern "C" {
4881    pub fn listbox_OnDown(listbox: *mut ListBox, listener: *mut Listener);
4882}
4883unsafe extern "C" {
4884    pub fn listbox_OnSelect(listbox: *mut ListBox, listener: *mut Listener);
4885}
4886unsafe extern "C" {
4887    pub fn listbox_size(listbox: *mut ListBox, size: S2Df);
4888}
4889unsafe extern "C" {
4890    pub fn listbox_checkbox(listbox: *mut ListBox, show: bool_t);
4891}
4892unsafe extern "C" {
4893    pub fn listbox_multisel(listbox: *mut ListBox, multisel: bool_t);
4894}
4895unsafe extern "C" {
4896    pub fn listbox_add_elem(listbox: *mut ListBox, text: *const char_t, image: *const Image);
4897}
4898unsafe extern "C" {
4899    pub fn listbox_set_elem(
4900        listbox: *mut ListBox,
4901        index: u32,
4902        text: *const char_t,
4903        image: *const Image,
4904    );
4905}
4906unsafe extern "C" {
4907    pub fn listbox_del_elem(listbox: *mut ListBox, index: u32);
4908}
4909unsafe extern "C" {
4910    pub fn listbox_font(listbox: *mut ListBox, font: *const Font);
4911}
4912unsafe extern "C" {
4913    pub fn listbox_clear(listbox: *mut ListBox);
4914}
4915unsafe extern "C" {
4916    pub fn listbox_color(listbox: *mut ListBox, index: u32, color: color_t);
4917}
4918unsafe extern "C" {
4919    pub fn listbox_select(listbox: *mut ListBox, index: u32, select: bool_t);
4920}
4921unsafe extern "C" {
4922    pub fn listbox_check(listbox: *mut ListBox, index: u32, check: bool_t);
4923}
4924unsafe extern "C" {
4925    pub fn listbox_count(listbox: *const ListBox) -> u32;
4926}
4927unsafe extern "C" {
4928    pub fn listbox_text(listbox: *const ListBox, index: u32) -> *const char_t;
4929}
4930unsafe extern "C" {
4931    pub fn listbox_selected(listbox: *const ListBox, index: u32) -> bool_t;
4932}
4933unsafe extern "C" {
4934    pub fn listbox_checked(listbox: *const ListBox, index: u32) -> bool_t;
4935}
4936unsafe extern "C" {
4937    pub fn listbox_get_selected(listbox: *const ListBox) -> u32;
4938}
4939unsafe extern "C" {
4940    pub fn listbox_get_row_height(listbox: *const ListBox) -> real32_t;
4941}
4942unsafe extern "C" {
4943    pub fn menu_create() -> *mut Menu;
4944}
4945unsafe extern "C" {
4946    pub fn menu_destroy(menu: *mut *mut Menu);
4947}
4948unsafe extern "C" {
4949    pub fn menu_add_item(menu: *mut Menu, item: *mut MenuItem);
4950}
4951unsafe extern "C" {
4952    pub fn menu_ins_item(menu: *mut Menu, pos: u32, item: *mut MenuItem);
4953}
4954unsafe extern "C" {
4955    pub fn menu_del_item(menu: *mut Menu, pos: u32);
4956}
4957unsafe extern "C" {
4958    pub fn menu_launch(menu: *mut Menu, window: *mut Window, position: V2Df);
4959}
4960unsafe extern "C" {
4961    pub fn menu_off_items(menu: *mut Menu);
4962}
4963unsafe extern "C" {
4964    pub fn menu_count(menu: *const Menu) -> u32;
4965}
4966unsafe extern "C" {
4967    pub fn menu_get_item(menu: *mut Menu, index: u32) -> *mut MenuItem;
4968}
4969unsafe extern "C" {
4970    pub fn menu_get_citem(menu: *const Menu, index: u32) -> *const MenuItem;
4971}
4972unsafe extern "C" {
4973    pub fn menu_is_menubar(menu: *const Menu) -> bool_t;
4974}
4975unsafe extern "C" {
4976    pub fn menu_imp(menu: *const Menu) -> *mut ::libc::c_void;
4977}
4978unsafe extern "C" {
4979    pub fn menuitem_create() -> *mut MenuItem;
4980}
4981unsafe extern "C" {
4982    pub fn menuitem_separator() -> *mut MenuItem;
4983}
4984unsafe extern "C" {
4985    pub fn menuitem_OnClick(item: *mut MenuItem, listener: *mut Listener);
4986}
4987unsafe extern "C" {
4988    pub fn menuitem_enabled(item: *mut MenuItem, enabled: bool_t);
4989}
4990unsafe extern "C" {
4991    pub fn menuitem_visible(item: *mut MenuItem, visible: bool_t);
4992}
4993unsafe extern "C" {
4994    pub fn menuitem_state(item: *mut MenuItem, state: gui_state_t);
4995}
4996unsafe extern "C" {
4997    pub fn menuitem_text(item: *mut MenuItem, text: *const char_t);
4998}
4999unsafe extern "C" {
5000    pub fn menuitem_image(item: *mut MenuItem, image: *const Image);
5001}
5002unsafe extern "C" {
5003    pub fn menuitem_key(item: *mut MenuItem, key: vkey_t, modifiers: u32);
5004}
5005unsafe extern "C" {
5006    pub fn menuitem_submenu(item: *mut MenuItem, submenu: *mut *mut Menu);
5007}
5008unsafe extern "C" {
5009    pub fn menuitem_get_text(item: *const MenuItem) -> *const char_t;
5010}
5011unsafe extern "C" {
5012    pub fn menuitem_get_image(item: *const MenuItem) -> *const Image;
5013}
5014unsafe extern "C" {
5015    pub fn menuitem_get_separator(item: *const MenuItem) -> bool_t;
5016}
5017unsafe extern "C" {
5018    pub fn menuitem_get_enabled(item: *const MenuItem) -> bool_t;
5019}
5020unsafe extern "C" {
5021    pub fn menuitem_get_visible(item: *const MenuItem) -> bool_t;
5022}
5023unsafe extern "C" {
5024    pub fn menuitem_get_state(item: *const MenuItem) -> gui_state_t;
5025}
5026unsafe extern "C" {
5027    pub fn menuitem_get_submenu(item: *const MenuItem) -> *mut Menu;
5028}
5029unsafe extern "C" {
5030    pub fn panel_create() -> *mut Panel;
5031}
5032unsafe extern "C" {
5033    pub fn panel_scroll(hscroll: bool_t, vscroll: bool_t) -> *mut Panel;
5034}
5035unsafe extern "C" {
5036    pub fn panel_custom(hscroll: bool_t, vscroll: bool_t, border: bool_t) -> *mut Panel;
5037}
5038unsafe extern "C" {
5039    pub fn panel_data_imp(
5040        panel: *mut Panel,
5041        data: *mut *mut ::libc::c_void,
5042        func_destroy_data: FPtr_destroy,
5043    );
5044}
5045unsafe extern "C" {
5046    pub fn panel_get_data_imp(panel: *const Panel) -> *mut ::libc::c_void;
5047}
5048unsafe extern "C" {
5049    pub fn panel_size(panel: *mut Panel, size: S2Df);
5050}
5051unsafe extern "C" {
5052    pub fn panel_layout(panel: *mut Panel, layout: *mut Layout) -> u32;
5053}
5054unsafe extern "C" {
5055    pub fn panel_get_layout(panel: *mut Panel, index: u32) -> *mut Layout;
5056}
5057unsafe extern "C" {
5058    pub fn panel_visible_layout(panel: *mut Panel, index: u32);
5059}
5060unsafe extern "C" {
5061    pub fn panel_update(panel: *mut Panel);
5062}
5063unsafe extern "C" {
5064    pub fn panel_scroll_width(panel: *const Panel) -> real32_t;
5065}
5066unsafe extern "C" {
5067    pub fn panel_scroll_height(panel: *const Panel) -> real32_t;
5068}
5069unsafe extern "C" {
5070    pub fn popup_create() -> *mut PopUp;
5071}
5072unsafe extern "C" {
5073    pub fn popup_OnSelect(popup: *mut PopUp, listener: *mut Listener);
5074}
5075unsafe extern "C" {
5076    pub fn popup_tooltip(popup: *mut PopUp, text: *const char_t);
5077}
5078unsafe extern "C" {
5079    pub fn popup_add_elem(popup: *mut PopUp, text: *const char_t, image: *const Image);
5080}
5081unsafe extern "C" {
5082    pub fn popup_set_elem(popup: *mut PopUp, index: u32, text: *const char_t, image: *const Image);
5083}
5084unsafe extern "C" {
5085    pub fn popup_clear(popup: *mut PopUp);
5086}
5087unsafe extern "C" {
5088    pub fn popup_count(popup: *const PopUp) -> u32;
5089}
5090unsafe extern "C" {
5091    pub fn popup_list_height(popup: *mut PopUp, elems: u32);
5092}
5093unsafe extern "C" {
5094    pub fn popup_selected(popup: *mut PopUp, index: u32);
5095}
5096unsafe extern "C" {
5097    pub fn popup_get_selected(popup: *const PopUp) -> u32;
5098}
5099unsafe extern "C" {
5100    pub fn popup_get_text(popup: *const PopUp, index: u32) -> *const char_t;
5101}
5102unsafe extern "C" {
5103    pub fn progress_create() -> *mut Progress;
5104}
5105unsafe extern "C" {
5106    pub fn progress_min_width(progress: *mut Progress, width: real32_t);
5107}
5108unsafe extern "C" {
5109    pub fn progress_undefined(progress: *mut Progress, running: bool_t);
5110}
5111unsafe extern "C" {
5112    pub fn progress_value(progress: *mut Progress, value: real32_t);
5113}
5114unsafe extern "C" {
5115    pub fn slider_create() -> *mut Slider;
5116}
5117unsafe extern "C" {
5118    pub fn slider_vertical() -> *mut Slider;
5119}
5120unsafe extern "C" {
5121    pub fn slider_OnMoved(slider: *mut Slider, listener: *mut Listener);
5122}
5123unsafe extern "C" {
5124    pub fn slider_min_width(slider: *mut Slider, width: real32_t);
5125}
5126unsafe extern "C" {
5127    pub fn slider_tooltip(slider: *mut Slider, text: *const char_t);
5128}
5129unsafe extern "C" {
5130    pub fn slider_steps(slider: *mut Slider, steps: u32);
5131}
5132unsafe extern "C" {
5133    pub fn slider_value(slider: *mut Slider, value: real32_t);
5134}
5135unsafe extern "C" {
5136    pub fn slider_get_value(slider: *const Slider) -> real32_t;
5137}
5138unsafe extern "C" {
5139    pub fn splitview_horizontal() -> *mut SplitView;
5140}
5141unsafe extern "C" {
5142    pub fn splitview_vertical() -> *mut SplitView;
5143}
5144unsafe extern "C" {
5145    pub fn splitview_view(split: *mut SplitView, view: *mut View, tabstop: bool_t);
5146}
5147unsafe extern "C" {
5148    pub fn splitview_textview(split: *mut SplitView, view: *mut TextView, tabstop: bool_t);
5149}
5150unsafe extern "C" {
5151    pub fn splitview_webview(split: *mut SplitView, view: *mut WebView, tabstop: bool_t);
5152}
5153unsafe extern "C" {
5154    pub fn splitview_tableview(split: *mut SplitView, view: *mut TableView, tabstop: bool_t);
5155}
5156unsafe extern "C" {
5157    pub fn splitview_splitview(split: *mut SplitView, view: *mut SplitView);
5158}
5159unsafe extern "C" {
5160    pub fn splitview_panel(split: *mut SplitView, panel: *mut Panel);
5161}
5162unsafe extern "C" {
5163    pub fn splitview_pos(split: *mut SplitView, mode: split_mode_t, pos: real32_t);
5164}
5165unsafe extern "C" {
5166    pub fn splitview_get_pos(split: *const SplitView, mode: split_mode_t) -> real32_t;
5167}
5168unsafe extern "C" {
5169    pub fn splitview_visible0(split: *mut SplitView, visible: bool_t);
5170}
5171unsafe extern "C" {
5172    pub fn splitview_visible1(split: *mut SplitView, visible: bool_t);
5173}
5174unsafe extern "C" {
5175    pub fn splitview_minsize0(split: *mut SplitView, size: real32_t);
5176}
5177unsafe extern "C" {
5178    pub fn splitview_minsize1(split: *mut SplitView, size: real32_t);
5179}
5180unsafe extern "C" {
5181    pub fn tableview_create() -> *mut TableView;
5182}
5183unsafe extern "C" {
5184    pub fn tableview_OnData(view: *mut TableView, listener: *mut Listener);
5185}
5186unsafe extern "C" {
5187    pub fn tableview_OnSelect(view: *mut TableView, listener: *mut Listener);
5188}
5189unsafe extern "C" {
5190    pub fn tableview_OnRowClick(view: *mut TableView, listener: *mut Listener);
5191}
5192unsafe extern "C" {
5193    pub fn tableview_OnHeaderClick(view: *mut TableView, listener: *mut Listener);
5194}
5195unsafe extern "C" {
5196    pub fn tableview_font(view: *mut TableView, font: *const Font);
5197}
5198unsafe extern "C" {
5199    pub fn tableview_size(view: *mut TableView, size: S2Df);
5200}
5201unsafe extern "C" {
5202    pub fn tableview_new_column_text(view: *mut TableView) -> u32;
5203}
5204unsafe extern "C" {
5205    pub fn tableview_column_width(view: *mut TableView, column_id: u32, width: real32_t);
5206}
5207unsafe extern "C" {
5208    pub fn tableview_column_limits(
5209        view: *mut TableView,
5210        column_id: u32,
5211        min: real32_t,
5212        max: real32_t,
5213    );
5214}
5215unsafe extern "C" {
5216    pub fn tableview_column_align(view: *mut TableView, column_id: u32, align: align_t);
5217}
5218unsafe extern "C" {
5219    pub fn tableview_column_resizable(view: *mut TableView, column_id: u32, resizable: bool_t);
5220}
5221unsafe extern "C" {
5222    pub fn tableview_column_freeze(view: *mut TableView, last_column_id: u32);
5223}
5224unsafe extern "C" {
5225    pub fn tableview_header_title(view: *mut TableView, column_id: u32, text: *const char_t);
5226}
5227unsafe extern "C" {
5228    pub fn tableview_header_align(view: *mut TableView, column_id: u32, align: align_t);
5229}
5230unsafe extern "C" {
5231    pub fn tableview_header_indicator(view: *mut TableView, column_id: u32, indicator: u32);
5232}
5233unsafe extern "C" {
5234    pub fn tableview_header_visible(view: *mut TableView, visible: bool_t);
5235}
5236unsafe extern "C" {
5237    pub fn tableview_header_clickable(view: *mut TableView, clickable: bool_t);
5238}
5239unsafe extern "C" {
5240    pub fn tableview_header_resizable(view: *mut TableView, resizable: bool_t);
5241}
5242unsafe extern "C" {
5243    pub fn tableview_header_height(view: *mut TableView, height: real32_t);
5244}
5245unsafe extern "C" {
5246    pub fn tableview_row_height(view: *mut TableView, height: real32_t);
5247}
5248unsafe extern "C" {
5249    pub fn tableview_hkey_scroll(view: *mut TableView, force_column: bool_t, scroll: real32_t);
5250}
5251unsafe extern "C" {
5252    pub fn tableview_multisel(view: *mut TableView, multisel: bool_t, preserve: bool_t);
5253}
5254unsafe extern "C" {
5255    pub fn tableview_grid(view: *mut TableView, hlines: bool_t, vlines: bool_t);
5256}
5257unsafe extern "C" {
5258    pub fn tableview_update(view: *mut TableView);
5259}
5260unsafe extern "C" {
5261    pub fn tableview_select(view: *mut TableView, rows: *const u32, n: u32);
5262}
5263unsafe extern "C" {
5264    pub fn tableview_deselect(view: *mut TableView, rows: *const u32, n: u32);
5265}
5266unsafe extern "C" {
5267    pub fn tableview_deselect_all(view: *mut TableView);
5268}
5269unsafe extern "C" {
5270    pub fn tableview_selected(view: *const TableView) -> *const ArrStuint32_t;
5271}
5272unsafe extern "C" {
5273    pub fn tableview_focus_row(view: *mut TableView, row: u32, align: align_t);
5274}
5275unsafe extern "C" {
5276    pub fn tableview_get_focus_row(view: *const TableView) -> u32;
5277}
5278unsafe extern "C" {
5279    pub fn tableview_scroll_visible(view: *mut TableView, horizontal: bool_t, vertical: bool_t);
5280}
5281unsafe extern "C" {
5282    pub fn textview_create() -> *mut TextView;
5283}
5284unsafe extern "C" {
5285    pub fn textview_OnFilter(view: *mut TextView, listener: *mut Listener);
5286}
5287unsafe extern "C" {
5288    pub fn textview_OnFocus(view: *mut TextView, listener: *mut Listener);
5289}
5290unsafe extern "C" {
5291    pub fn textview_size(view: *mut TextView, size: S2Df);
5292}
5293unsafe extern "C" {
5294    pub fn textview_clear(view: *mut TextView);
5295}
5296unsafe extern "C" {
5297    pub fn textview_printf(view: *mut TextView, format: *const char_t, ...) -> u32;
5298}
5299unsafe extern "C" {
5300    pub fn textview_writef(view: *mut TextView, text: *const char_t);
5301}
5302unsafe extern "C" {
5303    pub fn textview_cpos_printf(view: *mut TextView, format: *const char_t, ...) -> u32;
5304}
5305unsafe extern "C" {
5306    pub fn textview_cpos_writef(view: *mut TextView, text: *const char_t);
5307}
5308unsafe extern "C" {
5309    pub fn textview_rtf(view: *mut TextView, rtf_in: *mut Stream);
5310}
5311unsafe extern "C" {
5312    pub fn textview_units(view: *mut TextView, units: u32);
5313}
5314unsafe extern "C" {
5315    pub fn textview_family(view: *mut TextView, family: *const char_t);
5316}
5317unsafe extern "C" {
5318    pub fn textview_fsize(view: *mut TextView, size: real32_t);
5319}
5320unsafe extern "C" {
5321    pub fn textview_fstyle(view: *mut TextView, fstyle: u32);
5322}
5323unsafe extern "C" {
5324    pub fn textview_color(view: *mut TextView, color: color_t);
5325}
5326unsafe extern "C" {
5327    pub fn textview_bgcolor(view: *mut TextView, color: color_t);
5328}
5329unsafe extern "C" {
5330    pub fn textview_pgcolor(view: *mut TextView, color: color_t);
5331}
5332unsafe extern "C" {
5333    pub fn textview_halign(view: *mut TextView, align: align_t);
5334}
5335unsafe extern "C" {
5336    pub fn textview_lspacing(view: *mut TextView, scale: real32_t);
5337}
5338unsafe extern "C" {
5339    pub fn textview_bfspace(view: *mut TextView, space: real32_t);
5340}
5341unsafe extern "C" {
5342    pub fn textview_afspace(view: *mut TextView, space: real32_t);
5343}
5344unsafe extern "C" {
5345    pub fn textview_apply_all(view: *mut TextView);
5346}
5347unsafe extern "C" {
5348    pub fn textview_apply_select(view: *mut TextView);
5349}
5350unsafe extern "C" {
5351    pub fn textview_scroll_visible(view: *mut TextView, horizontal: bool_t, vertical: bool_t);
5352}
5353unsafe extern "C" {
5354    pub fn textview_editable(view: *mut TextView, is_editable: bool_t);
5355}
5356unsafe extern "C" {
5357    pub fn textview_select(view: *mut TextView, start: i32, end: i32);
5358}
5359unsafe extern "C" {
5360    pub fn textview_show_select(view: *mut TextView, show: bool_t);
5361}
5362unsafe extern "C" {
5363    pub fn textview_del_select(view: *mut TextView);
5364}
5365unsafe extern "C" {
5366    pub fn textview_scroll_caret(view: *mut TextView);
5367}
5368unsafe extern "C" {
5369    pub fn textview_get_text(view: *const TextView) -> *const char_t;
5370}
5371unsafe extern "C" {
5372    pub fn textview_copy(view: *const TextView);
5373}
5374unsafe extern "C" {
5375    pub fn textview_cut(view: *mut TextView);
5376}
5377unsafe extern "C" {
5378    pub fn textview_paste(view: *mut TextView);
5379}
5380unsafe extern "C" {
5381    pub fn textview_wrap(view: *mut TextView, wrap: bool_t);
5382}
5383unsafe extern "C" {
5384    pub fn webview_create() -> *mut WebView;
5385}
5386unsafe extern "C" {
5387    pub fn webview_OnFocus(view: *mut WebView, listener: *mut Listener);
5388}
5389unsafe extern "C" {
5390    pub fn webview_size(view: *mut WebView, size: S2Df);
5391}
5392unsafe extern "C" {
5393    pub fn webview_navigate(view: *mut WebView, url: *const char_t);
5394}
5395unsafe extern "C" {
5396    pub fn webview_back(view: *mut WebView);
5397}
5398unsafe extern "C" {
5399    pub fn webview_forward(view: *mut WebView);
5400}
5401unsafe extern "C" {
5402    pub fn updown_create() -> *mut UpDown;
5403}
5404unsafe extern "C" {
5405    pub fn updown_OnClick(updown: *mut UpDown, listener: *mut Listener);
5406}
5407unsafe extern "C" {
5408    pub fn updown_tooltip(updown: *mut UpDown, text: *const char_t);
5409}
5410unsafe extern "C" {
5411    pub fn view_create() -> *mut View;
5412}
5413unsafe extern "C" {
5414    pub fn view_scroll() -> *mut View;
5415}
5416unsafe extern "C" {
5417    pub fn view_custom(scroll: bool_t, border: bool_t) -> *mut View;
5418}
5419unsafe extern "C" {
5420    pub fn view_data_imp(
5421        view: *mut View,
5422        data: *mut *mut ::libc::c_void,
5423        func_destroy_data: FPtr_destroy,
5424    );
5425}
5426unsafe extern "C" {
5427    pub fn view_get_data_imp(view: *const View) -> *mut ::libc::c_void;
5428}
5429unsafe extern "C" {
5430    pub fn view_size(view: *mut View, size: S2Df);
5431}
5432unsafe extern "C" {
5433    pub fn view_OnDraw(view: *mut View, listener: *mut Listener);
5434}
5435unsafe extern "C" {
5436    pub fn view_OnOverlay(view: *mut View, listener: *mut Listener);
5437}
5438unsafe extern "C" {
5439    pub fn view_OnSize(view: *mut View, listener: *mut Listener);
5440}
5441unsafe extern "C" {
5442    pub fn view_OnEnter(view: *mut View, listener: *mut Listener);
5443}
5444unsafe extern "C" {
5445    pub fn view_OnExit(view: *mut View, listener: *mut Listener);
5446}
5447unsafe extern "C" {
5448    pub fn view_OnMove(view: *mut View, listener: *mut Listener);
5449}
5450unsafe extern "C" {
5451    pub fn view_OnDown(view: *mut View, listener: *mut Listener);
5452}
5453unsafe extern "C" {
5454    pub fn view_OnUp(view: *mut View, listener: *mut Listener);
5455}
5456unsafe extern "C" {
5457    pub fn view_OnClick(view: *mut View, listener: *mut Listener);
5458}
5459unsafe extern "C" {
5460    pub fn view_OnDrag(view: *mut View, listener: *mut Listener);
5461}
5462unsafe extern "C" {
5463    pub fn view_OnWheel(view: *mut View, listener: *mut Listener);
5464}
5465unsafe extern "C" {
5466    pub fn view_OnKeyDown(view: *mut View, listener: *mut Listener);
5467}
5468unsafe extern "C" {
5469    pub fn view_OnKeyUp(view: *mut View, listener: *mut Listener);
5470}
5471unsafe extern "C" {
5472    pub fn view_OnFocus(view: *mut View, listener: *mut Listener);
5473}
5474unsafe extern "C" {
5475    pub fn view_OnResignFocus(view: *mut View, listener: *mut Listener);
5476}
5477unsafe extern "C" {
5478    pub fn view_OnAcceptFocus(view: *mut View, listener: *mut Listener);
5479}
5480unsafe extern "C" {
5481    pub fn view_OnScroll(view: *mut View, listener: *mut Listener);
5482}
5483unsafe extern "C" {
5484    pub fn view_allow_tab(view: *mut View, allow: bool_t);
5485}
5486unsafe extern "C" {
5487    pub fn view_keybuf(view: *mut View, buffer: *mut KeyBuf);
5488}
5489unsafe extern "C" {
5490    pub fn view_get_size(view: *const View, size: *mut S2Df);
5491}
5492unsafe extern "C" {
5493    pub fn view_content_size(view: *mut View, size: S2Df, line: S2Df);
5494}
5495unsafe extern "C" {
5496    pub fn view_scroll_x(view: *mut View, pos: real32_t);
5497}
5498unsafe extern "C" {
5499    pub fn view_scroll_y(view: *mut View, pos: real32_t);
5500}
5501unsafe extern "C" {
5502    pub fn view_scroll_size(view: *const View, width: *mut real32_t, height: *mut real32_t);
5503}
5504unsafe extern "C" {
5505    pub fn view_scroll_visible(view: *mut View, horizontal: bool_t, vertical: bool_t);
5506}
5507unsafe extern "C" {
5508    pub fn view_viewport(view: *const View, pos: *mut V2Df, size: *mut S2Df);
5509}
5510unsafe extern "C" {
5511    pub fn view_point_scale(view: *const View, scale: *mut real32_t);
5512}
5513unsafe extern "C" {
5514    pub fn view_update(view: *mut View);
5515}
5516unsafe extern "C" {
5517    pub fn view_native(view: *mut View) -> *mut ::libc::c_void;
5518}
5519unsafe extern "C" {
5520    pub fn window_create(flags: u32) -> *mut Window;
5521}
5522unsafe extern "C" {
5523    pub fn window_destroy(window: *mut *mut Window);
5524}
5525unsafe extern "C" {
5526    pub fn window_panel(window: *mut Window, panel: *mut Panel);
5527}
5528unsafe extern "C" {
5529    pub fn window_OnClose(window: *mut Window, listener: *mut Listener);
5530}
5531unsafe extern "C" {
5532    pub fn window_OnMoved(window: *mut Window, listener: *mut Listener);
5533}
5534unsafe extern "C" {
5535    pub fn window_OnResize(window: *mut Window, listener: *mut Listener);
5536}
5537unsafe extern "C" {
5538    pub fn window_title(window: *mut Window, text: *const char_t);
5539}
5540unsafe extern "C" {
5541    pub fn window_show(window: *mut Window);
5542}
5543unsafe extern "C" {
5544    pub fn window_hide(window: *mut Window);
5545}
5546unsafe extern "C" {
5547    pub fn window_overlay(window: *mut Window, parent: *mut Window);
5548}
5549unsafe extern "C" {
5550    pub fn window_modal(window: *mut Window, parent: *mut Window) -> u32;
5551}
5552unsafe extern "C" {
5553    pub fn window_stop_modal(window: *mut Window, return_value: u32);
5554}
5555unsafe extern "C" {
5556    pub fn window_is_visible(window: *const Window) -> bool_t;
5557}
5558unsafe extern "C" {
5559    pub fn window_hotkey(window: *mut Window, key: vkey_t, modifiers: u32, listener: *mut Listener);
5560}
5561unsafe extern "C" {
5562    pub fn window_clear_hotkeys(window: *mut Window);
5563}
5564unsafe extern "C" {
5565    pub fn window_cycle_tabstop(window: *mut Window, cycle: bool_t);
5566}
5567unsafe extern "C" {
5568    pub fn window_next_tabstop(window: *mut Window) -> gui_focus_t;
5569}
5570unsafe extern "C" {
5571    pub fn window_previous_tabstop(window: *mut Window) -> gui_focus_t;
5572}
5573unsafe extern "C" {
5574    pub fn window_focus(window: *mut Window, control: *mut GuiControl) -> gui_focus_t;
5575}
5576unsafe extern "C" {
5577    pub fn window_get_focus(window: *mut Window) -> *mut GuiControl;
5578}
5579unsafe extern "C" {
5580    pub fn window_focus_info(window: *const Window, info: *mut FocusInfo);
5581}
5582unsafe extern "C" {
5583    pub fn window_update(window: *mut Window);
5584}
5585unsafe extern "C" {
5586    pub fn window_origin(window: *mut Window, origin: V2Df);
5587}
5588unsafe extern "C" {
5589    pub fn window_size(window: *mut Window, size: S2Df);
5590}
5591unsafe extern "C" {
5592    pub fn window_get_origin(window: *const Window) -> V2Df;
5593}
5594unsafe extern "C" {
5595    pub fn window_get_size(window: *const Window) -> S2Df;
5596}
5597unsafe extern "C" {
5598    pub fn window_get_client_size(window: *const Window) -> S2Df;
5599}
5600unsafe extern "C" {
5601    pub fn window_control_frame(window: *const Window, control: *const GuiControl) -> R2Df;
5602}
5603unsafe extern "C" {
5604    pub fn window_client_to_screen(window: *const Window, point: V2Df) -> V2Df;
5605}
5606unsafe extern "C" {
5607    pub fn window_defbutton(window: *mut Window, button: *mut Button);
5608}
5609unsafe extern "C" {
5610    pub fn window_cursor(
5611        window: *mut Window,
5612        cursor: gui_cursor_t,
5613        image: *const Image,
5614        hot_x: real32_t,
5615        hot_y: real32_t,
5616    );
5617}
5618unsafe extern "C" {
5619    pub fn window_imp(window: *const Window) -> *mut ::libc::c_void;
5620}
5621unsafe extern "C" {
5622    pub fn color_rgb(r: u8, g: u8, b: u8) -> color_t;
5623}
5624unsafe extern "C" {
5625    pub fn color_rgba(r: u8, g: u8, b: u8, a: u8) -> color_t;
5626}
5627unsafe extern "C" {
5628    pub fn color_rgbaf(r: real32_t, g: real32_t, b: real32_t, a: real32_t) -> color_t;
5629}
5630unsafe extern "C" {
5631    pub fn color_hsbf(hue: real32_t, sat: real32_t, bright: real32_t) -> color_t;
5632}
5633unsafe extern "C" {
5634    pub fn color_red(r: u8) -> color_t;
5635}
5636unsafe extern "C" {
5637    pub fn color_green(g: u8) -> color_t;
5638}
5639unsafe extern "C" {
5640    pub fn color_blue(b: u8) -> color_t;
5641}
5642unsafe extern "C" {
5643    pub fn color_gray(l: u8) -> color_t;
5644}
5645unsafe extern "C" {
5646    pub fn color_bgr(bgr: u32) -> color_t;
5647}
5648unsafe extern "C" {
5649    pub fn color_html(html: *const char_t) -> color_t;
5650}
5651unsafe extern "C" {
5652    pub fn color_indexed(index: u16, color: color_t) -> color_t;
5653}
5654unsafe extern "C" {
5655    pub fn color_to_hsbf(
5656        color: color_t,
5657        hue: *mut real32_t,
5658        sat: *mut real32_t,
5659        bright: *mut real32_t,
5660    );
5661}
5662unsafe extern "C" {
5663    pub fn color_to_html(color: color_t, html: *mut char_t, size: u32);
5664}
5665unsafe extern "C" {
5666    pub fn color_get_rgb(color: color_t, r: *mut u8, g: *mut u8, b: *mut u8);
5667}
5668unsafe extern "C" {
5669    pub fn color_get_rgbf(color: color_t, r: *mut real32_t, g: *mut real32_t, b: *mut real32_t);
5670}
5671unsafe extern "C" {
5672    pub fn color_get_rgba(color: color_t, r: *mut u8, g: *mut u8, b: *mut u8, a: *mut u8);
5673}
5674unsafe extern "C" {
5675    pub fn color_get_rgbaf(
5676        color: color_t,
5677        r: *mut real32_t,
5678        g: *mut real32_t,
5679        b: *mut real32_t,
5680        a: *mut real32_t,
5681    );
5682}
5683unsafe extern "C" {
5684    pub fn color_get_alpha(color: color_t) -> u8;
5685}
5686unsafe extern "C" {
5687    pub fn color_set_alpha(color: color_t, alpha: u8) -> color_t;
5688}
5689unsafe extern "C" {
5690    pub static kCOLOR_TRANSPARENT: color_t;
5691}
5692unsafe extern "C" {
5693    pub static kCOLOR_DEFAULT: color_t;
5694}
5695unsafe extern "C" {
5696    pub static kCOLOR_BLACK: color_t;
5697}
5698unsafe extern "C" {
5699    pub static kCOLOR_WHITE: color_t;
5700}
5701unsafe extern "C" {
5702    pub static kCOLOR_RED: color_t;
5703}
5704unsafe extern "C" {
5705    pub static kCOLOR_GREEN: color_t;
5706}
5707unsafe extern "C" {
5708    pub static kCOLOR_BLUE: color_t;
5709}
5710unsafe extern "C" {
5711    pub static kCOLOR_YELLOW: color_t;
5712}
5713unsafe extern "C" {
5714    pub static kCOLOR_CYAN: color_t;
5715}
5716unsafe extern "C" {
5717    pub static kCOLOR_MAGENTA: color_t;
5718}
5719unsafe extern "C" {
5720    pub fn dctx_bitmap(width: u32, height: u32, format: pixformat_t) -> *mut DCtx;
5721}
5722unsafe extern "C" {
5723    pub fn dctx_image(ctx: *mut *mut DCtx) -> *mut Image;
5724}
5725unsafe extern "C" {
5726    pub fn draw_clear(ctx: *mut DCtx, color: color_t);
5727}
5728unsafe extern "C" {
5729    pub fn draw_matrixf(ctx: *mut DCtx, t2d: *const T2Df);
5730}
5731unsafe extern "C" {
5732    pub fn draw_matrixd(ctx: *mut DCtx, t2d: *const T2Dd);
5733}
5734unsafe extern "C" {
5735    pub fn draw_matrix_cartesianf(ctx: *mut DCtx, t2d: *const T2Df);
5736}
5737unsafe extern "C" {
5738    pub fn draw_matrix_cartesiand(ctx: *mut DCtx, t2d: *const T2Dd);
5739}
5740unsafe extern "C" {
5741    pub fn draw_antialias(ctx: *mut DCtx, on: bool_t);
5742}
5743unsafe extern "C" {
5744    pub fn draw_line(ctx: *mut DCtx, x0: real32_t, y0: real32_t, x1: real32_t, y1: real32_t);
5745}
5746unsafe extern "C" {
5747    pub fn draw_polyline(ctx: *mut DCtx, closed: bool_t, points: *const V2Df, n: u32);
5748}
5749unsafe extern "C" {
5750    pub fn draw_arc(
5751        ctx: *mut DCtx,
5752        x: real32_t,
5753        y: real32_t,
5754        radius: real32_t,
5755        start: real32_t,
5756        sweep: real32_t,
5757    );
5758}
5759unsafe extern "C" {
5760    pub fn draw_bezier(
5761        ctx: *mut DCtx,
5762        x0: real32_t,
5763        y0: real32_t,
5764        x1: real32_t,
5765        y1: real32_t,
5766        x2: real32_t,
5767        y2: real32_t,
5768        x3: real32_t,
5769        y3: real32_t,
5770    );
5771}
5772unsafe extern "C" {
5773    pub fn draw_line_color(ctx: *mut DCtx, color: color_t);
5774}
5775unsafe extern "C" {
5776    pub fn draw_line_fill(ctx: *mut DCtx);
5777}
5778unsafe extern "C" {
5779    pub fn draw_line_width(ctx: *mut DCtx, width: real32_t);
5780}
5781unsafe extern "C" {
5782    pub fn draw_line_cap(ctx: *mut DCtx, cap: linecap_t);
5783}
5784unsafe extern "C" {
5785    pub fn draw_line_join(ctx: *mut DCtx, join: linejoin_t);
5786}
5787unsafe extern "C" {
5788    pub fn draw_line_dash(ctx: *mut DCtx, pattern: *const real32_t, n: u32);
5789}
5790unsafe extern "C" {
5791    pub fn draw_rect(
5792        ctx: *mut DCtx,
5793        op: drawop_t,
5794        x: real32_t,
5795        y: real32_t,
5796        width: real32_t,
5797        height: real32_t,
5798    );
5799}
5800unsafe extern "C" {
5801    pub fn draw_rndrect(
5802        ctx: *mut DCtx,
5803        op: drawop_t,
5804        x: real32_t,
5805        y: real32_t,
5806        width: real32_t,
5807        height: real32_t,
5808        radius: real32_t,
5809    );
5810}
5811unsafe extern "C" {
5812    pub fn draw_circle(ctx: *mut DCtx, op: drawop_t, x: real32_t, y: real32_t, radius: real32_t);
5813}
5814unsafe extern "C" {
5815    pub fn draw_ellipse(
5816        ctx: *mut DCtx,
5817        op: drawop_t,
5818        x: real32_t,
5819        y: real32_t,
5820        radx: real32_t,
5821        rady: real32_t,
5822    );
5823}
5824unsafe extern "C" {
5825    pub fn draw_polygon(ctx: *mut DCtx, op: drawop_t, points: *const V2Df, n: u32);
5826}
5827unsafe extern "C" {
5828    pub fn draw_fill_color(ctx: *mut DCtx, color: color_t);
5829}
5830unsafe extern "C" {
5831    pub fn draw_fill_linear(
5832        ctx: *mut DCtx,
5833        color: *const color_t,
5834        stop: *const real32_t,
5835        n: u32,
5836        x0: real32_t,
5837        y0: real32_t,
5838        x1: real32_t,
5839        y1: real32_t,
5840    );
5841}
5842unsafe extern "C" {
5843    pub fn draw_fill_matrix(ctx: *mut DCtx, t2d: *const T2Df);
5844}
5845unsafe extern "C" {
5846    pub fn draw_fill_wrap(ctx: *mut DCtx, wrap: fillwrap_t);
5847}
5848unsafe extern "C" {
5849    pub fn draw_font(ctx: *mut DCtx, font: *const Font);
5850}
5851unsafe extern "C" {
5852    pub fn draw_text_color(ctx: *mut DCtx, color: color_t);
5853}
5854unsafe extern "C" {
5855    pub fn draw_text(ctx: *mut DCtx, text: *const char_t, x: real32_t, y: real32_t);
5856}
5857unsafe extern "C" {
5858    pub fn draw_text_single_line(ctx: *mut DCtx, text: *const char_t, x: real32_t, y: real32_t);
5859}
5860unsafe extern "C" {
5861    pub fn draw_text_path(
5862        ctx: *mut DCtx,
5863        op: drawop_t,
5864        text: *const char_t,
5865        x: real32_t,
5866        y: real32_t,
5867    );
5868}
5869unsafe extern "C" {
5870    pub fn draw_text_width(ctx: *mut DCtx, width: real32_t);
5871}
5872unsafe extern "C" {
5873    pub fn draw_text_trim(ctx: *mut DCtx, ellipsis: ellipsis_t);
5874}
5875unsafe extern "C" {
5876    pub fn draw_text_align(ctx: *mut DCtx, halign: align_t, valign: align_t);
5877}
5878unsafe extern "C" {
5879    pub fn draw_text_halign(ctx: *mut DCtx, halign: align_t);
5880}
5881unsafe extern "C" {
5882    pub fn draw_text_extents(
5883        ctx: *mut DCtx,
5884        text: *const char_t,
5885        refwidth: real32_t,
5886        width: *mut real32_t,
5887        height: *mut real32_t,
5888    );
5889}
5890unsafe extern "C" {
5891    pub fn draw_image(ctx: *mut DCtx, image: *const Image, x: real32_t, y: real32_t);
5892}
5893unsafe extern "C" {
5894    pub fn draw_image_frame(
5895        ctx: *mut DCtx,
5896        image: *const Image,
5897        frame: u32,
5898        x: real32_t,
5899        y: real32_t,
5900    );
5901}
5902unsafe extern "C" {
5903    pub fn draw_image_align(ctx: *mut DCtx, halign: align_t, valign: align_t);
5904}
5905unsafe extern "C" {
5906    pub fn draw2d_start();
5907}
5908unsafe extern "C" {
5909    pub fn draw2d_finish();
5910}
5911unsafe extern "C" {
5912    pub fn draw2d_preferred_monospace(family: *const char_t);
5913}
5914unsafe extern "C" {
5915    pub fn draw_v2df(ctx: *mut DCtx, op: drawop_t, v2d: *const V2Df, radius: real32_t);
5916}
5917unsafe extern "C" {
5918    pub fn draw_v2dd(ctx: *mut DCtx, op: drawop_t, v2d: *const V2Dd, radius: real64_t);
5919}
5920unsafe extern "C" {
5921    pub fn draw_seg2df(ctx: *mut DCtx, seg: *const Seg2Df);
5922}
5923unsafe extern "C" {
5924    pub fn draw_seg2dd(ctx: *mut DCtx, seg: *const Seg2Dd);
5925}
5926unsafe extern "C" {
5927    pub fn draw_r2df(ctx: *mut DCtx, op: drawop_t, rect: *const R2Df);
5928}
5929unsafe extern "C" {
5930    pub fn draw_r2dd(ctx: *mut DCtx, op: drawop_t, rect: *const R2Dd);
5931}
5932unsafe extern "C" {
5933    pub fn draw_cir2df(ctx: *mut DCtx, op: drawop_t, cir: *const Cir2Df);
5934}
5935unsafe extern "C" {
5936    pub fn draw_cir2dd(ctx: *mut DCtx, op: drawop_t, cir: *const Cir2Dd);
5937}
5938unsafe extern "C" {
5939    pub fn draw_box2df(ctx: *mut DCtx, op: drawop_t, box_: *const Box2Df);
5940}
5941unsafe extern "C" {
5942    pub fn draw_box2dd(ctx: *mut DCtx, op: drawop_t, box_: *const Box2Dd);
5943}
5944unsafe extern "C" {
5945    pub fn draw_obb2df(ctx: *mut DCtx, op: drawop_t, obb: *const OBB2Df);
5946}
5947unsafe extern "C" {
5948    pub fn draw_obb2dd(ctx: *mut DCtx, op: drawop_t, obb: *const OBB2Dd);
5949}
5950unsafe extern "C" {
5951    pub fn draw_tri2df(ctx: *mut DCtx, op: drawop_t, tri: *const Tri2Df);
5952}
5953unsafe extern "C" {
5954    pub fn draw_tri2dd(ctx: *mut DCtx, op: drawop_t, tri: *const Tri2Dd);
5955}
5956unsafe extern "C" {
5957    pub fn draw_pol2df(ctx: *mut DCtx, op: drawop_t, pol: *const Pol2Df);
5958}
5959unsafe extern "C" {
5960    pub fn draw_pol2dd(ctx: *mut DCtx, op: drawop_t, pol: *const Pol2Dd);
5961}
5962unsafe extern "C" {
5963    pub fn font_create(family: *const char_t, size: real32_t, style: u32) -> *mut Font;
5964}
5965unsafe extern "C" {
5966    pub fn font_system(size: real32_t, style: u32) -> *mut Font;
5967}
5968unsafe extern "C" {
5969    pub fn font_monospace(size: real32_t, style: u32) -> *mut Font;
5970}
5971unsafe extern "C" {
5972    pub fn font_with_style(font: *const Font, style: u32) -> *mut Font;
5973}
5974unsafe extern "C" {
5975    pub fn font_with_width(font: *const Font, width: real32_t) -> *mut Font;
5976}
5977unsafe extern "C" {
5978    pub fn font_with_xscale(font: *const Font, scale: real32_t) -> *mut Font;
5979}
5980unsafe extern "C" {
5981    pub fn font_copy(font: *const Font) -> *mut Font;
5982}
5983unsafe extern "C" {
5984    pub fn font_destroy(font: *mut *mut Font);
5985}
5986unsafe extern "C" {
5987    pub fn font_equals(font1: *const Font, font2: *const Font) -> bool_t;
5988}
5989unsafe extern "C" {
5990    pub fn font_regular_size() -> real32_t;
5991}
5992unsafe extern "C" {
5993    pub fn font_small_size() -> real32_t;
5994}
5995unsafe extern "C" {
5996    pub fn font_mini_size() -> real32_t;
5997}
5998unsafe extern "C" {
5999    pub fn font_family(font: *const Font) -> *const char_t;
6000}
6001unsafe extern "C" {
6002    pub fn font_size(font: *const Font) -> real32_t;
6003}
6004unsafe extern "C" {
6005    pub fn font_height(font: *const Font) -> real32_t;
6006}
6007unsafe extern "C" {
6008    pub fn font_width(font: *const Font) -> real32_t;
6009}
6010unsafe extern "C" {
6011    pub fn font_xscale(font: *const Font) -> real32_t;
6012}
6013unsafe extern "C" {
6014    pub fn font_ascent(font: *const Font) -> real32_t;
6015}
6016unsafe extern "C" {
6017    pub fn font_descent(font: *const Font) -> real32_t;
6018}
6019unsafe extern "C" {
6020    pub fn font_leading(font: *const Font) -> real32_t;
6021}
6022unsafe extern "C" {
6023    pub fn font_is_monospace(font: *const Font) -> bool_t;
6024}
6025unsafe extern "C" {
6026    pub fn font_style(font: *const Font) -> u32;
6027}
6028unsafe extern "C" {
6029    pub fn font_extents(
6030        font: *const Font,
6031        text: *const char_t,
6032        refwidth: real32_t,
6033        width: *mut real32_t,
6034        height: *mut real32_t,
6035    );
6036}
6037unsafe extern "C" {
6038    pub fn font_exists_family(family: *const char_t) -> bool_t;
6039}
6040unsafe extern "C" {
6041    pub fn font_installed_families() -> *mut ArrPtString;
6042}
6043unsafe extern "C" {
6044    pub fn font_installed_monospace() -> *mut ArrPtString;
6045}
6046unsafe extern "C" {
6047    pub fn font_native(font: *const Font) -> *const ::libc::c_void;
6048}
6049unsafe extern "C" {
6050    pub fn image_from_pixels(
6051        width: u32,
6052        height: u32,
6053        format: pixformat_t,
6054        data: *const byte_t,
6055        palette: *const color_t,
6056        palsize: u32,
6057    ) -> *mut Image;
6058}
6059unsafe extern "C" {
6060    pub fn image_from_pixbuf(pixbuf: *const Pixbuf, palette: *const Palette) -> *mut Image;
6061}
6062unsafe extern "C" {
6063    pub fn image_from_file(pathname: *const char_t, error: *mut ferror_t) -> *mut Image;
6064}
6065unsafe extern "C" {
6066    pub fn image_from_data(data: *const byte_t, size: u32) -> *mut Image;
6067}
6068unsafe extern "C" {
6069    pub fn image_from_resource(pack: *const ResPack, id: ResId) -> *const Image;
6070}
6071unsafe extern "C" {
6072    pub fn image_copy(image: *const Image) -> *mut Image;
6073}
6074unsafe extern "C" {
6075    pub fn image_trim(image: *const Image, x: u32, y: u32, width: u32, height: u32) -> *mut Image;
6076}
6077unsafe extern "C" {
6078    pub fn image_rotate(
6079        image: *const Image,
6080        angle: real32_t,
6081        nsize: bool_t,
6082        background: color_t,
6083        t2d: *mut T2Df,
6084    ) -> *mut Image;
6085}
6086unsafe extern "C" {
6087    pub fn image_scale(image: *const Image, nwidth: u32, nheight: u32) -> *mut Image;
6088}
6089unsafe extern "C" {
6090    pub fn image_read(stm: *mut Stream) -> *mut Image;
6091}
6092unsafe extern "C" {
6093    pub fn image_to_file(
6094        image: *const Image,
6095        pathname: *const char_t,
6096        error: *mut ferror_t,
6097    ) -> bool_t;
6098}
6099unsafe extern "C" {
6100    pub fn image_write(stream: *mut Stream, image: *const Image);
6101}
6102unsafe extern "C" {
6103    pub fn image_destroy(image: *mut *mut Image);
6104}
6105unsafe extern "C" {
6106    pub fn image_format(image: *const Image) -> pixformat_t;
6107}
6108unsafe extern "C" {
6109    pub fn image_width(image: *const Image) -> u32;
6110}
6111unsafe extern "C" {
6112    pub fn image_height(image: *const Image) -> u32;
6113}
6114unsafe extern "C" {
6115    pub fn image_pixels(image: *const Image, format: pixformat_t) -> *mut Pixbuf;
6116}
6117unsafe extern "C" {
6118    pub fn image_codec(image: *const Image, codec: codec_t) -> bool_t;
6119}
6120unsafe extern "C" {
6121    pub fn image_get_codec(image: *const Image) -> codec_t;
6122}
6123unsafe extern "C" {
6124    pub fn image_num_frames(image: *const Image) -> u32;
6125}
6126unsafe extern "C" {
6127    pub fn image_frame_length(image: *const Image, findex: u32) -> real32_t;
6128}
6129unsafe extern "C" {
6130    pub fn image_data_imp(
6131        image: *mut Image,
6132        data: *mut *mut ::libc::c_void,
6133        func_destroy_data: FPtr_destroy,
6134    );
6135}
6136unsafe extern "C" {
6137    pub fn image_get_data_imp(image: *const Image) -> *mut ::libc::c_void;
6138}
6139unsafe extern "C" {
6140    pub fn image_native(image: *const Image) -> *const ::libc::c_void;
6141}
6142unsafe extern "C" {
6143    pub fn palette_create(size: u32) -> *mut Palette;
6144}
6145unsafe extern "C" {
6146    pub fn palette_cga2(mode: bool_t, intense: bool_t) -> *mut Palette;
6147}
6148unsafe extern "C" {
6149    pub fn palette_ega4() -> *mut Palette;
6150}
6151unsafe extern "C" {
6152    pub fn palette_rgb8() -> *mut Palette;
6153}
6154unsafe extern "C" {
6155    pub fn palette_gray1() -> *mut Palette;
6156}
6157unsafe extern "C" {
6158    pub fn palette_gray2() -> *mut Palette;
6159}
6160unsafe extern "C" {
6161    pub fn palette_gray4() -> *mut Palette;
6162}
6163unsafe extern "C" {
6164    pub fn palette_gray8() -> *mut Palette;
6165}
6166unsafe extern "C" {
6167    pub fn palette_binary(zero: color_t, one: color_t) -> *mut Palette;
6168}
6169unsafe extern "C" {
6170    pub fn palette_destroy(palette: *mut *mut Palette);
6171}
6172unsafe extern "C" {
6173    pub fn palette_size(palette: *const Palette) -> u32;
6174}
6175unsafe extern "C" {
6176    pub fn palette_colors(palette: *mut Palette) -> *mut color_t;
6177}
6178unsafe extern "C" {
6179    pub fn palette_ccolors(palette: *const Palette) -> *const color_t;
6180}
6181unsafe extern "C" {
6182    pub fn pixbuf_create(width: u32, height: u32, format: pixformat_t) -> *mut Pixbuf;
6183}
6184unsafe extern "C" {
6185    pub fn pixbuf_copy(pixbuf: *const Pixbuf) -> *mut Pixbuf;
6186}
6187unsafe extern "C" {
6188    pub fn pixbuf_trim(
6189        pixbuf: *const Pixbuf,
6190        x: u32,
6191        y: u32,
6192        width: u32,
6193        height: u32,
6194    ) -> *mut Pixbuf;
6195}
6196unsafe extern "C" {
6197    pub fn pixbuf_convert(
6198        pixbuf: *const Pixbuf,
6199        palette: *const Palette,
6200        oformat: pixformat_t,
6201    ) -> *mut Pixbuf;
6202}
6203unsafe extern "C" {
6204    pub fn pixbuf_destroy(pixbuf: *mut *mut Pixbuf);
6205}
6206unsafe extern "C" {
6207    pub fn pixbuf_format(pixbuf: *const Pixbuf) -> pixformat_t;
6208}
6209unsafe extern "C" {
6210    pub fn pixbuf_width(pixbuf: *const Pixbuf) -> u32;
6211}
6212unsafe extern "C" {
6213    pub fn pixbuf_height(pixbuf: *const Pixbuf) -> u32;
6214}
6215unsafe extern "C" {
6216    pub fn pixbuf_size(pixbuf: *const Pixbuf) -> u32;
6217}
6218unsafe extern "C" {
6219    pub fn pixbuf_dsize(pixbuf: *const Pixbuf) -> u32;
6220}
6221unsafe extern "C" {
6222    pub fn pixbuf_cdata(pixbuf: *const Pixbuf) -> *const byte_t;
6223}
6224unsafe extern "C" {
6225    pub fn pixbuf_data(pixbuf: *mut Pixbuf) -> *mut byte_t;
6226}
6227unsafe extern "C" {
6228    pub fn pixbuf_format_bpp(format: pixformat_t) -> u32;
6229}
6230unsafe extern "C" {
6231    pub fn pixbuf_get(pixbuf: *const Pixbuf, x: u32, y: u32) -> u32;
6232}
6233unsafe extern "C" {
6234    pub fn pixbuf_set(pixbuf: *mut Pixbuf, x: u32, y: u32, value: u32);
6235}
6236unsafe extern "C" {
6237    pub fn box2df(minX: real32_t, minY: real32_t, maxX: real32_t, maxY: real32_t) -> Box2Df;
6238}
6239unsafe extern "C" {
6240    pub fn box2dd(minX: real64_t, minY: real64_t, maxX: real64_t, maxY: real64_t) -> Box2Dd;
6241}
6242unsafe extern "C" {
6243    pub fn box2d_from_pointsf(p: *const V2Df, n: u32) -> Box2Df;
6244}
6245unsafe extern "C" {
6246    pub fn box2d_from_pointsd(p: *const V2Dd, n: u32) -> Box2Dd;
6247}
6248unsafe extern "C" {
6249    pub fn box2d_centerf(box_: *const Box2Df) -> V2Df;
6250}
6251unsafe extern "C" {
6252    pub fn box2d_centerd(box_: *const Box2Dd) -> V2Dd;
6253}
6254unsafe extern "C" {
6255    pub fn box2d_addf(box_: *mut Box2Df, p: *const V2Df);
6256}
6257unsafe extern "C" {
6258    pub fn box2d_addd(box_: *mut Box2Dd, p: *const V2Dd);
6259}
6260unsafe extern "C" {
6261    pub fn box2d_addnf(box_: *mut Box2Df, p: *const V2Df, n: u32);
6262}
6263unsafe extern "C" {
6264    pub fn box2d_addnd(box_: *mut Box2Dd, p: *const V2Dd, n: u32);
6265}
6266unsafe extern "C" {
6267    pub fn box2d_add_circlef(box_: *mut Box2Df, cir: *const Cir2Df);
6268}
6269unsafe extern "C" {
6270    pub fn box2d_add_circled(box_: *mut Box2Dd, cir: *const Cir2Dd);
6271}
6272unsafe extern "C" {
6273    pub fn box2d_mergef(dest: *mut Box2Df, src: *const Box2Df);
6274}
6275unsafe extern "C" {
6276    pub fn box2d_merged(dest: *mut Box2Dd, src: *const Box2Dd);
6277}
6278unsafe extern "C" {
6279    pub fn box2d_segmentsf(box_: *const Box2Df, segs: *mut Seg2Df);
6280}
6281unsafe extern "C" {
6282    pub fn box2d_segmentsd(box_: *const Box2Dd, segs: *mut Seg2Dd);
6283}
6284unsafe extern "C" {
6285    pub fn box2d_areaf(box_: *const Box2Df) -> real32_t;
6286}
6287unsafe extern "C" {
6288    pub fn box2d_aread(box_: *const Box2Dd) -> real64_t;
6289}
6290unsafe extern "C" {
6291    pub fn box2d_is_nullf(box_: *const Box2Df) -> bool_t;
6292}
6293unsafe extern "C" {
6294    pub fn box2d_is_nulld(box_: *const Box2Dd) -> bool_t;
6295}
6296unsafe extern "C" {
6297    pub static kBOX2D_NULLf: Box2Df;
6298}
6299unsafe extern "C" {
6300    pub static kBOX2D_NULLd: Box2Dd;
6301}
6302unsafe extern "C" {
6303    pub fn cir2df(x: real32_t, y: real32_t, r: real32_t) -> Cir2Df;
6304}
6305unsafe extern "C" {
6306    pub fn cir2dd(x: real64_t, y: real64_t, r: real64_t) -> Cir2Dd;
6307}
6308unsafe extern "C" {
6309    pub fn cir2d_from_boxf(box_: *const Box2Df) -> Cir2Df;
6310}
6311unsafe extern "C" {
6312    pub fn cir2d_from_boxd(box_: *const Box2Dd) -> Cir2Dd;
6313}
6314unsafe extern "C" {
6315    pub fn cir2d_from_pointsf(p: *const V2Df, n: u32) -> Cir2Df;
6316}
6317unsafe extern "C" {
6318    pub fn cir2d_from_pointsd(p: *const V2Dd, n: u32) -> Cir2Dd;
6319}
6320unsafe extern "C" {
6321    pub fn cir2d_minimumf(p: *const V2Df, n: u32) -> Cir2Df;
6322}
6323unsafe extern "C" {
6324    pub fn cir2d_minimumd(p: *const V2Dd, n: u32) -> Cir2Dd;
6325}
6326unsafe extern "C" {
6327    pub fn cir2d_areaf(cir: *const Cir2Df) -> real32_t;
6328}
6329unsafe extern "C" {
6330    pub fn cir2d_aread(cir: *const Cir2Dd) -> real64_t;
6331}
6332unsafe extern "C" {
6333    pub fn cir2d_is_nullf(cir: *const Cir2Df) -> bool_t;
6334}
6335unsafe extern "C" {
6336    pub fn cir2d_is_nulld(cir: *const Cir2Dd) -> bool_t;
6337}
6338unsafe extern "C" {
6339    pub static kCIR2D_NULLf: Cir2Df;
6340}
6341unsafe extern "C" {
6342    pub static kCIR2D_NULLd: Cir2Dd;
6343}
6344unsafe extern "C" {
6345    pub fn col2d_point_pointf(
6346        pnt1: *const V2Df,
6347        pnt2: *const V2Df,
6348        tol: real32_t,
6349        col: *mut Col2Df,
6350    ) -> bool_t;
6351}
6352unsafe extern "C" {
6353    pub fn col2d_point_pointd(
6354        pnt1: *const V2Dd,
6355        pnt2: *const V2Dd,
6356        tol: real64_t,
6357        col: *mut Col2Dd,
6358    ) -> bool_t;
6359}
6360unsafe extern "C" {
6361    pub fn col2d_segment_pointf(
6362        seg: *const Seg2Df,
6363        pnt: *const V2Df,
6364        tol: real32_t,
6365        col: *mut Col2Df,
6366    ) -> bool_t;
6367}
6368unsafe extern "C" {
6369    pub fn col2d_segment_pointd(
6370        seg: *const Seg2Dd,
6371        pnt: *const V2Dd,
6372        tol: real64_t,
6373        col: *mut Col2Dd,
6374    ) -> bool_t;
6375}
6376unsafe extern "C" {
6377    pub fn col2d_segment_segmentf(
6378        seg1: *const Seg2Df,
6379        seg2: *const Seg2Df,
6380        col: *mut Col2Df,
6381    ) -> bool_t;
6382}
6383unsafe extern "C" {
6384    pub fn col2d_segment_segmentd(
6385        seg1: *const Seg2Dd,
6386        seg2: *const Seg2Dd,
6387        col: *mut Col2Dd,
6388    ) -> bool_t;
6389}
6390unsafe extern "C" {
6391    pub fn col2d_circle_pointf(cir: *const Cir2Df, pnt: *const V2Df, col: *mut Col2Df) -> bool_t;
6392}
6393unsafe extern "C" {
6394    pub fn col2d_circle_pointd(cir: *const Cir2Dd, pnt: *const V2Dd, col: *mut Col2Dd) -> bool_t;
6395}
6396unsafe extern "C" {
6397    pub fn col2d_circle_segmentf(
6398        cir: *const Cir2Df,
6399        seg: *const Seg2Df,
6400        col: *mut Col2Df,
6401    ) -> bool_t;
6402}
6403unsafe extern "C" {
6404    pub fn col2d_circle_segmentd(
6405        cir: *const Cir2Dd,
6406        seg: *const Seg2Dd,
6407        col: *mut Col2Dd,
6408    ) -> bool_t;
6409}
6410unsafe extern "C" {
6411    pub fn col2d_circle_circlef(
6412        cir1: *const Cir2Df,
6413        cir2: *const Cir2Df,
6414        col: *mut Col2Df,
6415    ) -> bool_t;
6416}
6417unsafe extern "C" {
6418    pub fn col2d_circle_circled(
6419        cir1: *const Cir2Dd,
6420        cir2: *const Cir2Dd,
6421        col: *mut Col2Dd,
6422    ) -> bool_t;
6423}
6424unsafe extern "C" {
6425    pub fn col2d_box_pointf(box_: *const Box2Df, pnt: *const V2Df, col: *mut Col2Df) -> bool_t;
6426}
6427unsafe extern "C" {
6428    pub fn col2d_box_pointd(box_: *const Box2Dd, pnt: *const V2Dd, col: *mut Col2Dd) -> bool_t;
6429}
6430unsafe extern "C" {
6431    pub fn col2d_box_segmentf(box_: *const Box2Df, seg: *const Seg2Df, col: *mut Col2Df) -> bool_t;
6432}
6433unsafe extern "C" {
6434    pub fn col2d_box_segmentd(box_: *const Box2Dd, seg: *const Seg2Dd, col: *mut Col2Df) -> bool_t;
6435}
6436unsafe extern "C" {
6437    pub fn col2d_box_circlef(box_: *const Box2Df, cir: *const Cir2Df, col: *mut Col2Df) -> bool_t;
6438}
6439unsafe extern "C" {
6440    pub fn col2d_box_circled(box_: *const Box2Dd, cir: *const Cir2Dd, col: *mut Col2Dd) -> bool_t;
6441}
6442unsafe extern "C" {
6443    pub fn col2d_box_boxf(box1: *const Box2Df, box2: *const Box2Df, col: *mut Col2Df) -> bool_t;
6444}
6445unsafe extern "C" {
6446    pub fn col2d_box_boxd(box1: *const Box2Dd, box2: *const Box2Dd, col: *mut Col2Dd) -> bool_t;
6447}
6448unsafe extern "C" {
6449    pub fn col2d_obb_pointf(obb: *const OBB2Df, pnt: *const V2Df, col: *mut Col2Df) -> bool_t;
6450}
6451unsafe extern "C" {
6452    pub fn col2d_obb_pointd(obb: *const OBB2Dd, pnt: *const V2Dd, col: *mut Col2Dd) -> bool_t;
6453}
6454unsafe extern "C" {
6455    pub fn col2d_obb_segmentf(obb: *const OBB2Df, seg: *const Seg2Df, col: *mut Col2Df) -> bool_t;
6456}
6457unsafe extern "C" {
6458    pub fn col2d_obb_segmentd(obb: *const OBB2Dd, seg: *const Seg2Dd, col: *mut Col2Dd) -> bool_t;
6459}
6460unsafe extern "C" {
6461    pub fn col2d_obb_circlef(obb: *const OBB2Df, cir: *const Cir2Df, col: *mut Col2Df) -> bool_t;
6462}
6463unsafe extern "C" {
6464    pub fn col2d_obb_circled(obb: *const OBB2Dd, cir: *const Cir2Dd, col: *mut Col2Dd) -> bool_t;
6465}
6466unsafe extern "C" {
6467    pub fn col2d_obb_boxf(obb: *const OBB2Df, box_: *const Box2Df, col: *mut Col2Df) -> bool_t;
6468}
6469unsafe extern "C" {
6470    pub fn col2d_obb_boxd(obb: *const OBB2Dd, box_: *const Box2Dd, col: *mut Col2Dd) -> bool_t;
6471}
6472unsafe extern "C" {
6473    pub fn col2d_obb_obbf(obb1: *const OBB2Df, obb2: *const OBB2Df, col: *mut Col2Df) -> bool_t;
6474}
6475unsafe extern "C" {
6476    pub fn col2d_obb_obbd(obb1: *const OBB2Dd, obb2: *const OBB2Dd, col: *mut Col2Dd) -> bool_t;
6477}
6478unsafe extern "C" {
6479    pub fn col2d_tri_pointf(tri: *const Tri2Df, pnt: *const V2Df, col: *mut Col2Df) -> bool_t;
6480}
6481unsafe extern "C" {
6482    pub fn col2d_tri_pointd(tri: *const Tri2Dd, pnt: *const V2Dd, col: *mut Col2Dd) -> bool_t;
6483}
6484unsafe extern "C" {
6485    pub fn col2d_tri_segmentf(tri: *const Tri2Df, seg: *const Seg2Df, col: *mut Col2Df) -> bool_t;
6486}
6487unsafe extern "C" {
6488    pub fn col2d_tri_segmentd(tri: *const Tri2Dd, seg: *const Seg2Dd, col: *mut Col2Dd) -> bool_t;
6489}
6490unsafe extern "C" {
6491    pub fn col2d_tri_circlef(tri: *const Tri2Df, cir: *const Cir2Df, col: *mut Col2Df) -> bool_t;
6492}
6493unsafe extern "C" {
6494    pub fn col2d_tri_circled(tri: *const Tri2Dd, cir: *const Cir2Df, col: *mut Col2Df) -> bool_t;
6495}
6496unsafe extern "C" {
6497    pub fn col2d_tri_boxf(tri: *const Tri2Df, box_: *const Box2Df, col: *mut Col2Df) -> bool_t;
6498}
6499unsafe extern "C" {
6500    pub fn col2d_tri_boxd(tri: *const Tri2Dd, box_: *const Box2Df, col: *mut Col2Df) -> bool_t;
6501}
6502unsafe extern "C" {
6503    pub fn col2d_tri_obbf(tri: *const Tri2Df, obb: *const OBB2Df, col: *mut Col2Df) -> bool_t;
6504}
6505unsafe extern "C" {
6506    pub fn col2d_tri_obbd(tri: *const Tri2Dd, obb: *const OBB2Dd, col: *mut Col2Dd) -> bool_t;
6507}
6508unsafe extern "C" {
6509    pub fn col2d_tri_trif(tri1: *const Tri2Df, tri2: *const Tri2Df, col: *mut Col2Df) -> bool_t;
6510}
6511unsafe extern "C" {
6512    pub fn col2d_tri_trid(tri1: *const Tri2Dd, tri2: *const Tri2Dd, col: *mut Col2Dd) -> bool_t;
6513}
6514unsafe extern "C" {
6515    pub fn col2d_poly_pointf(poly: *const Pol2Df, pnt: *const V2Df, col: *mut Col2Df) -> bool_t;
6516}
6517unsafe extern "C" {
6518    pub fn col2d_poly_pointd(poly: *const Pol2Dd, pnt: *const V2Dd, col: *mut Col2Dd) -> bool_t;
6519}
6520unsafe extern "C" {
6521    pub fn col2d_poly_segmentf(poly: *const Pol2Df, seg: *const Seg2Df, col: *mut Col2Df)
6522        -> bool_t;
6523}
6524unsafe extern "C" {
6525    pub fn col2d_poly_segmentd(poly: *const Pol2Dd, seg: *const Seg2Dd, col: *mut Col2Dd)
6526        -> bool_t;
6527}
6528unsafe extern "C" {
6529    pub fn col2d_poly_circlef(poly: *const Pol2Df, cir: *const Cir2Df, col: *mut Col2Df) -> bool_t;
6530}
6531unsafe extern "C" {
6532    pub fn col2d_poly_circled(poly: *const Pol2Dd, cir: *const Cir2Dd, col: *mut Col2Dd) -> bool_t;
6533}
6534unsafe extern "C" {
6535    pub fn col2d_poly_boxf(poly: *const Pol2Df, box_: *const Box2Df, col: *mut Col2Df) -> bool_t;
6536}
6537unsafe extern "C" {
6538    pub fn col2d_poly_boxd(poly: *const Pol2Dd, box_: *const Box2Dd, col: *mut Col2Dd) -> bool_t;
6539}
6540unsafe extern "C" {
6541    pub fn col2d_poly_obbf(poly: *const Pol2Df, obb: *const OBB2Df, col: *mut Col2Df) -> bool_t;
6542}
6543unsafe extern "C" {
6544    pub fn col2d_poly_obbd(poly: *const Pol2Dd, obb: *const OBB2Dd, col: *mut Col2Dd) -> bool_t;
6545}
6546unsafe extern "C" {
6547    pub fn col2d_poly_trif(poly: *const Pol2Df, tri: *const Tri2Df, col: *mut Col2Df) -> bool_t;
6548}
6549unsafe extern "C" {
6550    pub fn col2d_poly_trid(poly: *const Pol2Dd, tri: *const Tri2Dd, col: *mut Col2Dd) -> bool_t;
6551}
6552unsafe extern "C" {
6553    pub fn col2d_poly_polyf(poly1: *const Pol2Df, poly2: *const Pol2Df, col: *mut Col2Df)
6554        -> bool_t;
6555}
6556unsafe extern "C" {
6557    pub fn col2d_poly_polyd(poly1: *const Pol2Dd, poly2: *const Pol2Dd, col: *mut Col2Dd)
6558        -> bool_t;
6559}
6560unsafe extern "C" {
6561    pub fn obb2d_createf(
6562        center: *const V2Df,
6563        width: real32_t,
6564        height: real32_t,
6565        angle: real32_t,
6566    ) -> *mut OBB2Df;
6567}
6568unsafe extern "C" {
6569    pub fn obb2d_created(
6570        center: *const V2Dd,
6571        width: real64_t,
6572        height: real64_t,
6573        angle: real64_t,
6574    ) -> *mut OBB2Dd;
6575}
6576unsafe extern "C" {
6577    pub fn obb2d_from_linef(p0: *const V2Df, p1: *const V2Df, thickness: real32_t) -> *mut OBB2Df;
6578}
6579unsafe extern "C" {
6580    pub fn obb2d_from_lined(p0: *const V2Dd, p1: *const V2Dd, thickness: real64_t) -> *mut OBB2Dd;
6581}
6582unsafe extern "C" {
6583    pub fn obb2d_from_pointsf(p: *const V2Df, n: u32) -> *mut OBB2Df;
6584}
6585unsafe extern "C" {
6586    pub fn obb2d_from_pointsd(p: *const V2Dd, n: u32) -> *mut OBB2Dd;
6587}
6588unsafe extern "C" {
6589    pub fn obb2d_copyf(obb: *const OBB2Df) -> *mut OBB2Df;
6590}
6591unsafe extern "C" {
6592    pub fn obb2d_copyd(obb: *const OBB2Dd) -> *mut OBB2Dd;
6593}
6594unsafe extern "C" {
6595    pub fn obb2d_destroyf(obb: *mut *mut OBB2Df);
6596}
6597unsafe extern "C" {
6598    pub fn obb2d_destroyd(obb: *mut *mut OBB2Dd);
6599}
6600unsafe extern "C" {
6601    pub fn obb2d_updatef(
6602        obb: *mut OBB2Df,
6603        center: *const V2Df,
6604        width: real32_t,
6605        height: real32_t,
6606        angle: real32_t,
6607    );
6608}
6609unsafe extern "C" {
6610    pub fn obb2d_updated(
6611        obb: *mut OBB2Dd,
6612        center: *const V2Dd,
6613        width: real64_t,
6614        height: real64_t,
6615        angle: real64_t,
6616    );
6617}
6618unsafe extern "C" {
6619    pub fn obb2d_movef(obb: *mut OBB2Df, offset_x: real32_t, offset_y: real32_t);
6620}
6621unsafe extern "C" {
6622    pub fn obb2d_moved(obb: *mut OBB2Dd, offset_x: real64_t, offset_y: real64_t);
6623}
6624unsafe extern "C" {
6625    pub fn obb2d_transformf(obb: *mut OBB2Df, t2d: *const T2Df);
6626}
6627unsafe extern "C" {
6628    pub fn obb2d_transformd(obb: *mut OBB2Dd, t2d: *const T2Dd);
6629}
6630unsafe extern "C" {
6631    pub fn obb2d_cornersf(obb: *const OBB2Df) -> *const V2Df;
6632}
6633unsafe extern "C" {
6634    pub fn obb2d_cornersd(obb: *const OBB2Dd) -> *const V2Dd;
6635}
6636unsafe extern "C" {
6637    pub fn obb2d_centerf(obb: *const OBB2Df) -> V2Df;
6638}
6639unsafe extern "C" {
6640    pub fn obb2d_centerd(obb: *const OBB2Dd) -> V2Dd;
6641}
6642unsafe extern "C" {
6643    pub fn obb2d_widthf(obb: *const OBB2Df) -> real32_t;
6644}
6645unsafe extern "C" {
6646    pub fn obb2d_widthd(obb: *const OBB2Dd) -> real64_t;
6647}
6648unsafe extern "C" {
6649    pub fn obb2d_heightf(obb: *const OBB2Df) -> real32_t;
6650}
6651unsafe extern "C" {
6652    pub fn obb2d_heightd(obb: *const OBB2Dd) -> real64_t;
6653}
6654unsafe extern "C" {
6655    pub fn obb2d_anglef(obb: *const OBB2Df) -> real32_t;
6656}
6657unsafe extern "C" {
6658    pub fn obb2d_angled(obb: *const OBB2Dd) -> real64_t;
6659}
6660unsafe extern "C" {
6661    pub fn obb2d_areaf(obb: *const OBB2Df) -> real32_t;
6662}
6663unsafe extern "C" {
6664    pub fn obb2d_aread(obb: *const OBB2Dd) -> real64_t;
6665}
6666unsafe extern "C" {
6667    pub fn obb2d_boxf(obb: *const OBB2Df) -> Box2Df;
6668}
6669unsafe extern "C" {
6670    pub fn obb2d_boxd(obb: *const OBB2Dd) -> Box2Dd;
6671}
6672unsafe extern "C" {
6673    pub fn pol2d_createf(points: *const V2Df, n: u32) -> *mut Pol2Df;
6674}
6675unsafe extern "C" {
6676    pub fn pol2d_created(points: *const V2Dd, n: u32) -> *mut Pol2Dd;
6677}
6678unsafe extern "C" {
6679    pub fn pol2d_convex_hullf(points: *const V2Df, n: u32) -> *mut Pol2Df;
6680}
6681unsafe extern "C" {
6682    pub fn pol2d_convex_hulld(points: *const V2Dd, n: u32) -> *mut Pol2Dd;
6683}
6684unsafe extern "C" {
6685    pub fn pol2d_copyf(pol: *const Pol2Df) -> *mut Pol2Df;
6686}
6687unsafe extern "C" {
6688    pub fn pol2d_copyd(pol: *const Pol2Dd) -> *mut Pol2Dd;
6689}
6690unsafe extern "C" {
6691    pub fn pol2d_destroyf(pol: *mut *mut Pol2Df);
6692}
6693unsafe extern "C" {
6694    pub fn pol2d_destroyd(pol: *mut *mut Pol2Dd);
6695}
6696unsafe extern "C" {
6697    pub fn pol2d_transformf(pol: *mut Pol2Df, t2d: *const T2Df);
6698}
6699unsafe extern "C" {
6700    pub fn pol2d_transformd(pol: *mut Pol2Dd, t2d: *const T2Dd);
6701}
6702unsafe extern "C" {
6703    pub fn pol2d_pointsf(pol: *const Pol2Df) -> *const V2Df;
6704}
6705unsafe extern "C" {
6706    pub fn pol2d_pointsd(pol: *const Pol2Dd) -> *const V2Dd;
6707}
6708unsafe extern "C" {
6709    pub fn pol2d_nf(pol: *const Pol2Df) -> u32;
6710}
6711unsafe extern "C" {
6712    pub fn pol2d_nd(pol: *const Pol2Dd) -> u32;
6713}
6714unsafe extern "C" {
6715    pub fn pol2d_areaf(pol: *const Pol2Df) -> real32_t;
6716}
6717unsafe extern "C" {
6718    pub fn pol2d_aread(pol: *const Pol2Dd) -> real64_t;
6719}
6720unsafe extern "C" {
6721    pub fn pol2d_boxf(pol: *const Pol2Df) -> Box2Df;
6722}
6723unsafe extern "C" {
6724    pub fn pol2d_boxd(pol: *const Pol2Dd) -> Box2Dd;
6725}
6726unsafe extern "C" {
6727    pub fn pol2d_ccwf(pol: *const Pol2Df) -> bool_t;
6728}
6729unsafe extern "C" {
6730    pub fn pol2d_ccwd(pol: *const Pol2Dd) -> bool_t;
6731}
6732unsafe extern "C" {
6733    pub fn pol2d_convexf(pol: *const Pol2Df) -> bool_t;
6734}
6735unsafe extern "C" {
6736    pub fn pol2d_convexd(pol: *const Pol2Dd) -> bool_t;
6737}
6738unsafe extern "C" {
6739    pub fn pol2d_centroidf(pol: *const Pol2Df) -> V2Df;
6740}
6741unsafe extern "C" {
6742    pub fn pol2d_centroidd(pol: *const Pol2Dd) -> V2Dd;
6743}
6744unsafe extern "C" {
6745    pub fn pol2d_visual_centerf(pol: *const Pol2Df, norm_tol: real32_t) -> V2Df;
6746}
6747unsafe extern "C" {
6748    pub fn pol2d_visual_centerd(pol: *const Pol2Dd, norm_tol: real64_t) -> V2Dd;
6749}
6750unsafe extern "C" {
6751    pub fn pol2d_trianglesf(pol: *const Pol2Df) -> *mut ArrStTri2Df;
6752}
6753unsafe extern "C" {
6754    pub fn pol2d_trianglesd(pol: *const Pol2Dd) -> *mut ArrStTri2Dd;
6755}
6756unsafe extern "C" {
6757    pub fn pol2d_convex_partitionf(pol: *const Pol2Df) -> *mut ArrPtPol2Df;
6758}
6759unsafe extern "C" {
6760    pub fn pol2d_convex_partitiond(pol: *const Pol2Dd) -> *mut ArrPtPol2Dd;
6761}
6762unsafe extern "C" {
6763    pub fn r2df(x: real32_t, y: real32_t, width: real32_t, height: real32_t) -> R2Df;
6764}
6765unsafe extern "C" {
6766    pub fn r2dd(x: real64_t, y: real64_t, width: real64_t, height: real64_t) -> R2Dd;
6767}
6768unsafe extern "C" {
6769    pub fn r2d_centerf(r2d: *const R2Df) -> V2Df;
6770}
6771unsafe extern "C" {
6772    pub fn r2d_centerd(r2d: *const R2Dd) -> V2Dd;
6773}
6774unsafe extern "C" {
6775    pub fn r2d_collidef(r2d1: *const R2Df, r2d2: *const R2Df) -> bool_t;
6776}
6777unsafe extern "C" {
6778    pub fn r2d_collided(r2d1: *const R2Dd, r2d2: *const R2Dd) -> bool_t;
6779}
6780unsafe extern "C" {
6781    pub fn r2d_containsf(r2d: *const R2Df, x: real32_t, y: real32_t) -> bool_t;
6782}
6783unsafe extern "C" {
6784    pub fn r2d_containsd(r2d: *const R2Dd, x: real64_t, y: real64_t) -> bool_t;
6785}
6786unsafe extern "C" {
6787    pub fn r2d_clipf(viewport: *const R2Df, r2d: *const R2Df) -> bool_t;
6788}
6789unsafe extern "C" {
6790    pub fn r2d_clipd(viewport: *const R2Dd, r2d: *const R2Dd) -> bool_t;
6791}
6792unsafe extern "C" {
6793    pub fn r2d_joinf(r2d: *mut R2Df, src: *const R2Df);
6794}
6795unsafe extern "C" {
6796    pub fn r2d_joind(r2d: *mut R2Dd, src: *const R2Dd);
6797}
6798unsafe extern "C" {
6799    pub static kR2D_ZEROf: R2Df;
6800}
6801unsafe extern "C" {
6802    pub static kR2D_ZEROd: R2Dd;
6803}
6804unsafe extern "C" {
6805    pub fn s2df(width: real32_t, height: real32_t) -> S2Df;
6806}
6807unsafe extern "C" {
6808    pub fn s2di(width: u32, height: u32) -> S2Df;
6809}
6810unsafe extern "C" {
6811    pub fn s2dd(width: real64_t, height: real64_t) -> S2Dd;
6812}
6813unsafe extern "C" {
6814    pub static kS2D_ZEROf: S2Df;
6815}
6816unsafe extern "C" {
6817    pub static kS2D_ZEROd: S2Dd;
6818}
6819unsafe extern "C" {
6820    pub fn seg2df(x0: real32_t, y0: real32_t, x1: real32_t, y1: real32_t) -> Seg2Df;
6821}
6822unsafe extern "C" {
6823    pub fn seg2dd(x0: real64_t, y0: real64_t, x1: real64_t, y1: real64_t) -> Seg2Dd;
6824}
6825unsafe extern "C" {
6826    pub fn seg2d_vf(p0: *const V2Df, p1: *const V2Df) -> Seg2Df;
6827}
6828unsafe extern "C" {
6829    pub fn seg2d_vd(p0: *const V2Dd, p1: *const V2Dd) -> Seg2Dd;
6830}
6831unsafe extern "C" {
6832    pub fn seg2d_lengthf(seg: *const Seg2Df) -> real32_t;
6833}
6834unsafe extern "C" {
6835    pub fn seg2d_lengthd(seg: *const Seg2Dd) -> real64_t;
6836}
6837unsafe extern "C" {
6838    pub fn seg2d_sqlengthf(seg: *const Seg2Df) -> real32_t;
6839}
6840unsafe extern "C" {
6841    pub fn seg2d_sqlengthd(seg: *const Seg2Dd) -> real64_t;
6842}
6843unsafe extern "C" {
6844    pub fn seg2d_evalf(seg: *const Seg2Df, t: real32_t) -> V2Df;
6845}
6846unsafe extern "C" {
6847    pub fn seg2d_evald(seg: *const Seg2Dd, t: real64_t) -> V2Dd;
6848}
6849unsafe extern "C" {
6850    pub fn seg2d_close_paramf(seg: *const Seg2Df, pnt: *const V2Df) -> real32_t;
6851}
6852unsafe extern "C" {
6853    pub fn seg2d_close_paramd(seg: *const Seg2Dd, pnt: *const V2Dd) -> real64_t;
6854}
6855unsafe extern "C" {
6856    pub fn seg2d_point_sqdistf(seg: *const Seg2Df, pnt: *const V2Df, t: *mut real32_t) -> real32_t;
6857}
6858unsafe extern "C" {
6859    pub fn seg2d_point_sqdistd(seg: *const Seg2Dd, pnt: *const V2Dd, t: *mut real64_t) -> real64_t;
6860}
6861unsafe extern "C" {
6862    pub fn seg2d_sqdistf(
6863        seg1: *const Seg2Df,
6864        seg2: *const Seg2Df,
6865        t1: *mut real32_t,
6866        t2: *mut real32_t,
6867    ) -> real32_t;
6868}
6869unsafe extern "C" {
6870    pub fn seg2d_sqdistd(
6871        seg1: *const Seg2Dd,
6872        seg2: *const Seg2Dd,
6873        t1: *mut real64_t,
6874        t2: *mut real64_t,
6875    ) -> real64_t;
6876}
6877unsafe extern "C" {
6878    pub fn t2d_tof(dest: *mut T2Df, src: *const T2Dd);
6879}
6880unsafe extern "C" {
6881    pub fn t2d_tod(dest: *mut T2Dd, src: *const T2Df);
6882}
6883unsafe extern "C" {
6884    pub fn t2d_movef(dest: *mut T2Df, src: *const T2Df, x: real32_t, y: real32_t);
6885}
6886unsafe extern "C" {
6887    pub fn t2d_moved(dest: *mut T2Dd, src: *const T2Dd, x: real64_t, y: real64_t);
6888}
6889unsafe extern "C" {
6890    pub fn t2d_rotatef(dest: *mut T2Df, src: *const T2Df, angle: real32_t);
6891}
6892unsafe extern "C" {
6893    pub fn t2d_rotated(dest: *mut T2Dd, src: *const T2Dd, angle: real64_t);
6894}
6895unsafe extern "C" {
6896    pub fn t2d_scalef(dest: *mut T2Df, src: *const T2Df, sx: real32_t, sy: real32_t);
6897}
6898unsafe extern "C" {
6899    pub fn t2d_scaled(dest: *mut T2Dd, src: *const T2Dd, sx: real64_t, sy: real64_t);
6900}
6901unsafe extern "C" {
6902    pub fn t2d_invfastf(dest: *mut T2Df, src: *const T2Df);
6903}
6904unsafe extern "C" {
6905    pub fn t2d_invfastd(dest: *mut T2Dd, src: *const T2Dd);
6906}
6907unsafe extern "C" {
6908    pub fn t2d_inversef(dest: *mut T2Df, src: *const T2Df);
6909}
6910unsafe extern "C" {
6911    pub fn t2d_inversed(dest: *mut T2Dd, src: *const T2Dd);
6912}
6913unsafe extern "C" {
6914    pub fn t2d_multf(dest: *mut T2Df, src1: *const T2Df, src2: *const T2Df);
6915}
6916unsafe extern "C" {
6917    pub fn t2d_multd(dest: *mut T2Dd, src1: *const T2Dd, src2: *const T2Dd);
6918}
6919unsafe extern "C" {
6920    pub fn t2d_vmultf(dest: *mut V2Df, t2d: *const T2Df, src: *const V2Df);
6921}
6922unsafe extern "C" {
6923    pub fn t2d_vmultd(dest: *mut V2Dd, t2d: *const T2Dd, src: *const V2Dd);
6924}
6925unsafe extern "C" {
6926    pub fn t2d_vmultnf(dest: *mut V2Df, t2d: *const T2Df, src: *const V2Df, n: u32);
6927}
6928unsafe extern "C" {
6929    pub fn t2d_vmultnd(dest: *mut V2Dd, t2d: *const T2Dd, src: *const V2Dd, n: u32);
6930}
6931unsafe extern "C" {
6932    pub fn t2d_decomposef(t2d: *const T2Df, pos: *mut V2Df, angle: *mut real32_t, sc: *mut V2Df);
6933}
6934unsafe extern "C" {
6935    pub fn t2d_decomposed(t2d: *const T2Dd, pos: *mut V2Dd, angle: *mut real64_t, sc: *mut V2Dd);
6936}
6937unsafe extern "C" {
6938    pub static mut kT2D_IDENTf: *const T2Df;
6939}
6940unsafe extern "C" {
6941    pub static mut kT2D_IDENTd: *const T2Dd;
6942}
6943unsafe extern "C" {
6944    pub fn tri2df(
6945        x0: real32_t,
6946        y0: real32_t,
6947        x1: real32_t,
6948        y1: real32_t,
6949        x2: real32_t,
6950        y2: real32_t,
6951    ) -> Tri2Df;
6952}
6953unsafe extern "C" {
6954    pub fn tri2dd(
6955        x0: real64_t,
6956        y0: real64_t,
6957        x1: real64_t,
6958        y1: real64_t,
6959        x2: real64_t,
6960        y2: real64_t,
6961    ) -> Tri2Dd;
6962}
6963unsafe extern "C" {
6964    pub fn tri2d_vf(p0: *const V2Df, p1: *const V2Df, p2: *const V2Df) -> Tri2Df;
6965}
6966unsafe extern "C" {
6967    pub fn tri2d_vd(p0: *const V2Dd, p1: *const V2Dd, p2: *const V2Dd) -> Tri2Dd;
6968}
6969unsafe extern "C" {
6970    pub fn tri2d_transformf(tri: *mut Tri2Df, t2d: *const T2Df);
6971}
6972unsafe extern "C" {
6973    pub fn tri2d_transformd(tri: *mut Tri2Dd, t2d: *const T2Dd);
6974}
6975unsafe extern "C" {
6976    pub fn tri2d_areaf(tri: *const Tri2Df) -> real32_t;
6977}
6978unsafe extern "C" {
6979    pub fn tri2d_aread(tri: *const Tri2Dd) -> real64_t;
6980}
6981unsafe extern "C" {
6982    pub fn tri2d_ccwf(tri: *const Tri2Df) -> bool_t;
6983}
6984unsafe extern "C" {
6985    pub fn tri2d_ccwd(tri: *const Tri2Dd) -> bool_t;
6986}
6987unsafe extern "C" {
6988    pub fn tri2d_centroidf(tri: *const Tri2Df) -> V2Df;
6989}
6990unsafe extern "C" {
6991    pub fn tri2d_centroidd(tri: *const Tri2Dd) -> V2Dd;
6992}
6993unsafe extern "C" {
6994    pub fn v2df(x: real32_t, y: real32_t) -> V2Df;
6995}
6996unsafe extern "C" {
6997    pub fn v2dd(x: real64_t, y: real64_t) -> V2Dd;
6998}
6999unsafe extern "C" {
7000    pub fn v2d_tof(v: *const V2Dd) -> V2Df;
7001}
7002unsafe extern "C" {
7003    pub fn v2d_tod(v: *const V2Df) -> V2Dd;
7004}
7005unsafe extern "C" {
7006    pub fn v2d_tofn(vf: *mut V2Df, vd: *const V2Dd, n: u32);
7007}
7008unsafe extern "C" {
7009    pub fn v2d_todn(vd: *mut V2Dd, vf: *const V2Df, n: u32);
7010}
7011unsafe extern "C" {
7012    pub fn v2d_addf(v1: *const V2Df, v2: *const V2Df) -> V2Df;
7013}
7014unsafe extern "C" {
7015    pub fn v2d_addd(v1: *const V2Dd, v2: *const V2Dd) -> V2Dd;
7016}
7017unsafe extern "C" {
7018    pub fn v2d_subf(v1: *const V2Df, v2: *const V2Df) -> V2Df;
7019}
7020unsafe extern "C" {
7021    pub fn v2d_subd(v1: *const V2Dd, v2: *const V2Dd) -> V2Dd;
7022}
7023unsafe extern "C" {
7024    pub fn v2d_mulf(v: *const V2Df, s: real32_t) -> V2Df;
7025}
7026unsafe extern "C" {
7027    pub fn v2d_muld(v: *const V2Dd, s: real64_t) -> V2Dd;
7028}
7029unsafe extern "C" {
7030    pub fn v2d_fromf(v: *const V2Df, dir: *const V2Df, length: real32_t) -> V2Df;
7031}
7032unsafe extern "C" {
7033    pub fn v2d_fromd(v: *const V2Dd, dir: *const V2Dd, length: real64_t) -> V2Dd;
7034}
7035unsafe extern "C" {
7036    pub fn v2d_midf(v1: *const V2Df, v2: *const V2Df) -> V2Df;
7037}
7038unsafe extern "C" {
7039    pub fn v2d_midd(v1: *const V2Dd, v2: *const V2Dd) -> V2Dd;
7040}
7041unsafe extern "C" {
7042    pub fn v2d_unitf(v1: *const V2Df, v2: *const V2Df, dist: *mut real32_t) -> V2Df;
7043}
7044unsafe extern "C" {
7045    pub fn v2d_unitd(v1: *const V2Dd, v2: *const V2Dd, dist: *mut real64_t) -> V2Dd;
7046}
7047unsafe extern "C" {
7048    pub fn v2d_unit_xyf(
7049        x1: real32_t,
7050        y1: real32_t,
7051        x2: real32_t,
7052        y2: real32_t,
7053        dist: *mut real32_t,
7054    ) -> V2Df;
7055}
7056unsafe extern "C" {
7057    pub fn v2d_unit_xyd(
7058        x1: real64_t,
7059        y1: real64_t,
7060        x2: real64_t,
7061        y2: real64_t,
7062        dist: *mut real64_t,
7063    ) -> V2Dd;
7064}
7065unsafe extern "C" {
7066    pub fn v2d_perp_posf(v: *const V2Df) -> V2Df;
7067}
7068unsafe extern "C" {
7069    pub fn v2d_perp_posd(v: *const V2Dd) -> V2Dd;
7070}
7071unsafe extern "C" {
7072    pub fn v2d_perp_negf(v: *const V2Df) -> V2Df;
7073}
7074unsafe extern "C" {
7075    pub fn v2d_perp_negd(v: *const V2Dd) -> V2Dd;
7076}
7077unsafe extern "C" {
7078    pub fn v2d_from_anglef(a: real32_t) -> V2Df;
7079}
7080unsafe extern "C" {
7081    pub fn v2d_from_angled(a: real64_t) -> V2Dd;
7082}
7083unsafe extern "C" {
7084    pub fn v2d_normf(v: *mut V2Df) -> bool_t;
7085}
7086unsafe extern "C" {
7087    pub fn v2d_normd(v: *mut V2Dd) -> bool_t;
7088}
7089unsafe extern "C" {
7090    pub fn v2d_lengthf(v: *const V2Df) -> real32_t;
7091}
7092unsafe extern "C" {
7093    pub fn v2d_lengthd(v: *const V2Dd) -> real64_t;
7094}
7095unsafe extern "C" {
7096    pub fn v2d_sqlengthf(v: *const V2Df) -> real32_t;
7097}
7098unsafe extern "C" {
7099    pub fn v2d_sqlengthd(v: *const V2Dd) -> real64_t;
7100}
7101unsafe extern "C" {
7102    pub fn v2d_dotf(v1: *const V2Df, v2: *const V2Df) -> real32_t;
7103}
7104unsafe extern "C" {
7105    pub fn v2d_dotd(v1: *const V2Dd, v2: *const V2Dd) -> real64_t;
7106}
7107unsafe extern "C" {
7108    pub fn v2d_distf(v1: *const V2Df, v2: *const V2Df) -> real32_t;
7109}
7110unsafe extern "C" {
7111    pub fn v2d_distd(v1: *const V2Dd, v2: *const V2Dd) -> real64_t;
7112}
7113unsafe extern "C" {
7114    pub fn v2d_sqdistf(v1: *const V2Df, v2: *const V2Df) -> real32_t;
7115}
7116unsafe extern "C" {
7117    pub fn v2d_sqdistd(v1: *const V2Dd, v2: *const V2Dd) -> real64_t;
7118}
7119unsafe extern "C" {
7120    pub fn v2d_anglef(v1: *const V2Df, v2: *const V2Df) -> real32_t;
7121}
7122unsafe extern "C" {
7123    pub fn v2d_angled(v1: *const V2Dd, v2: *const V2Dd) -> real64_t;
7124}
7125unsafe extern "C" {
7126    pub fn v2d_rotatef(v: *mut V2Df, a: real32_t);
7127}
7128unsafe extern "C" {
7129    pub fn v2d_rotated(v: *mut V2Dd, a: real64_t);
7130}
7131unsafe extern "C" {
7132    pub static kV2D_ZEROf: V2Df;
7133}
7134unsafe extern "C" {
7135    pub static kV2D_ZEROd: V2Dd;
7136}
7137unsafe extern "C" {
7138    pub static kV2D_Xf: V2Df;
7139}
7140unsafe extern "C" {
7141    pub static kV2D_Xd: V2Dd;
7142}
7143unsafe extern "C" {
7144    pub static kV2D_Yf: V2Df;
7145}
7146unsafe extern "C" {
7147    pub static kV2D_Yd: V2Dd;
7148}
7149unsafe extern "C" {
7150    pub fn core_start();
7151}
7152unsafe extern "C" {
7153    pub fn core_finish();
7154}
7155unsafe extern "C" {
7156    pub fn bhash_from_block(data: *const byte_t, size: u32) -> u32;
7157}
7158unsafe extern "C" {
7159    pub fn bhash_append_uint32(hash: u32, value: u32) -> u32;
7160}
7161unsafe extern "C" {
7162    pub fn bhash_append_real32(hash: u32, value: real32_t) -> u32;
7163}
7164unsafe extern "C" {
7165    pub fn buffer_create(size: u32) -> *mut Buffer;
7166}
7167unsafe extern "C" {
7168    pub fn buffer_with_data(data: *const byte_t, size: u32) -> *mut Buffer;
7169}
7170unsafe extern "C" {
7171    pub fn buffer_read(stream: *mut Stream) -> *mut Buffer;
7172}
7173unsafe extern "C" {
7174    pub fn buffer_destroy(buffer: *mut *mut Buffer);
7175}
7176unsafe extern "C" {
7177    pub fn buffer_size(buffer: *const Buffer) -> u32;
7178}
7179unsafe extern "C" {
7180    pub fn buffer_data(buffer: *mut Buffer) -> *mut byte_t;
7181}
7182unsafe extern "C" {
7183    pub fn buffer_const(buffer: *const Buffer) -> *const byte_t;
7184}
7185unsafe extern "C" {
7186    pub fn buffer_write(stream: *mut Stream, buffer: *const Buffer);
7187}
7188unsafe extern "C" {
7189    pub fn clock_create(interval: real64_t) -> *mut Clock;
7190}
7191unsafe extern "C" {
7192    pub fn clock_destroy(clk: *mut *mut Clock);
7193}
7194unsafe extern "C" {
7195    pub fn clock_frame(
7196        clk: *mut Clock,
7197        prev_frame: *mut real64_t,
7198        curr_frame: *mut real64_t,
7199    ) -> bool_t;
7200}
7201unsafe extern "C" {
7202    pub fn clock_reset(clk: *mut Clock);
7203}
7204unsafe extern "C" {
7205    pub fn clock_elapsed(clk: *const Clock) -> real64_t;
7206}
7207unsafe extern "C" {
7208    pub fn date_system() -> Date;
7209}
7210unsafe extern "C" {
7211    pub fn date_pack(year: i16, month: u8, mday: u8, hour: u8, minute: u8, second: u8) -> Date;
7212}
7213unsafe extern "C" {
7214    pub fn date_add_seconds(date: *const Date, seconds: i32) -> Date;
7215}
7216unsafe extern "C" {
7217    pub fn date_add_minutes(date: *const Date, minutes: i32) -> Date;
7218}
7219unsafe extern "C" {
7220    pub fn date_add_hours(date: *const Date, hours: i32) -> Date;
7221}
7222unsafe extern "C" {
7223    pub fn date_add_days(date: *const Date, days: i32) -> Date;
7224}
7225unsafe extern "C" {
7226    pub fn date_year() -> i16;
7227}
7228unsafe extern "C" {
7229    pub fn date_cmp(date1: *const Date, date2: *const Date) -> ::libc::c_int;
7230}
7231unsafe extern "C" {
7232    pub fn date_ellapsed_seconds(from: *const Date, to: *const Date) -> i64;
7233}
7234unsafe extern "C" {
7235    pub fn date_between(date: *const Date, from: *const Date, to: *const Date) -> bool_t;
7236}
7237unsafe extern "C" {
7238    pub fn date_is_null(date: *const Date) -> bool_t;
7239}
7240unsafe extern "C" {
7241    pub fn date_is_valid(date: *const Date) -> bool_t;
7242}
7243unsafe extern "C" {
7244    pub fn date_weekday(date: *const Date) -> week_day_t;
7245}
7246unsafe extern "C" {
7247    pub fn date_format(date: *const Date, format: *const char_t) -> *mut String;
7248}
7249unsafe extern "C" {
7250    pub static mut kDATE_NULL: Date;
7251}
7252unsafe extern "C" {
7253    pub fn dbind_imp(
7254        type_: *const char_t,
7255        size: u16,
7256        mname: *const char_t,
7257        mtype: *const char_t,
7258        moffset: u16,
7259        msize: u16,
7260    ) -> dbindst_t;
7261}
7262unsafe extern "C" {
7263    pub fn dbind_enum_imp(
7264        type_: *const char_t,
7265        name: *const char_t,
7266        value: i32,
7267        alias: *const char_t,
7268    ) -> dbindst_t;
7269}
7270unsafe extern "C" {
7271    pub fn dbind_binary_imp(
7272        type_: *const char_t,
7273        func_copy: FPtr_copy,
7274        func_read: FPtr_read,
7275        func_write: FPtr_write,
7276        func_destroy: FPtr_destroy,
7277    ) -> dbindst_t;
7278}
7279unsafe extern "C" {
7280    pub fn dbind_alias_imp(
7281        type_: *const char_t,
7282        alias: *const char_t,
7283        type_size: u16,
7284        alias_size: u16,
7285    ) -> dbindst_t;
7286}
7287unsafe extern "C" {
7288    pub fn dbind_unreg_imp(type_: *const char_t) -> dbindst_t;
7289}
7290unsafe extern "C" {
7291    pub fn dbind_create_imp(type_: *const char_t) -> *mut byte_t;
7292}
7293unsafe extern "C" {
7294    pub fn dbind_copy_imp(obj: *const byte_t, type_: *const char_t) -> *mut byte_t;
7295}
7296unsafe extern "C" {
7297    pub fn dbind_init_imp(obj: *mut byte_t, type_: *const char_t);
7298}
7299unsafe extern "C" {
7300    pub fn dbind_remove_imp(obj: *mut byte_t, type_: *const char_t);
7301}
7302unsafe extern "C" {
7303    pub fn dbind_destroy_imp(obj: *mut *mut byte_t, type_: *const char_t);
7304}
7305unsafe extern "C" {
7306    pub fn dbind_destopt_imp(obj: *mut *mut byte_t, type_: *const char_t);
7307}
7308unsafe extern "C" {
7309    pub fn dbind_cmp_imp(
7310        obj1: *const byte_t,
7311        obj2: *const byte_t,
7312        type_: *const char_t,
7313    ) -> ::libc::c_int;
7314}
7315unsafe extern "C" {
7316    pub fn dbind_equ_imp(obj1: *const byte_t, obj2: *const byte_t, type_: *const char_t) -> bool_t;
7317}
7318unsafe extern "C" {
7319    pub fn dbind_read_imp(stm: *mut Stream, type_: *const char_t) -> *mut byte_t;
7320}
7321unsafe extern "C" {
7322    pub fn dbind_write_imp(stm: *mut Stream, obj: *const ::libc::c_void, type_: *const char_t);
7323}
7324unsafe extern "C" {
7325    pub fn dbind_default_imp(type_: *const char_t, mname: *const char_t, value: *const byte_t);
7326}
7327unsafe extern "C" {
7328    pub fn dbind_range_imp(
7329        type_: *const char_t,
7330        mname: *const char_t,
7331        min: *const byte_t,
7332        max: *const byte_t,
7333    );
7334}
7335unsafe extern "C" {
7336    pub fn dbind_precision_imp(type_: *const char_t, mname: *const char_t, prec: *const byte_t);
7337}
7338unsafe extern "C" {
7339    pub fn dbind_increment_imp(type_: *const char_t, mname: *const char_t, incr: *const byte_t);
7340}
7341unsafe extern "C" {
7342    pub fn dbind_suffix_imp(type_: *const char_t, mname: *const char_t, suffix: *const char_t);
7343}
7344unsafe extern "C" {
7345    pub fn listener_imp(
7346        object: *mut ::libc::c_void,
7347        func_event_handler: FPtr_event_handler,
7348    ) -> *mut Listener;
7349}
7350unsafe extern "C" {
7351    pub fn listener_destroy(listener: *mut *mut Listener);
7352}
7353unsafe extern "C" {
7354    pub fn listener_update(listener: *mut *mut Listener, new_listener: *mut Listener);
7355}
7356unsafe extern "C" {
7357    pub fn listener_event_imp(
7358        listener: *mut Listener,
7359        type_: u32,
7360        sender: *mut ::libc::c_void,
7361        params: *mut ::libc::c_void,
7362        result: *mut ::libc::c_void,
7363        sender_type: *const char_t,
7364        params_type: *const char_t,
7365        result_type: *const char_t,
7366    );
7367}
7368unsafe extern "C" {
7369    pub fn listener_pass_event_imp(
7370        listener: *mut Listener,
7371        event: *mut Event,
7372        sender: *mut ::libc::c_void,
7373        sender_type: *const char_t,
7374    );
7375}
7376unsafe extern "C" {
7377    pub fn event_type(event: *const Event) -> u32;
7378}
7379unsafe extern "C" {
7380    pub fn event_sender_imp(event: *mut Event, type_: *const char_t) -> *mut ::libc::c_void;
7381}
7382unsafe extern "C" {
7383    pub fn event_params_imp(event: *mut Event, type_: *const char_t) -> *mut ::libc::c_void;
7384}
7385unsafe extern "C" {
7386    pub fn event_result_imp(event: *mut Event, type_: *const char_t) -> *mut ::libc::c_void;
7387}
7388unsafe extern "C" {
7389    pub fn heap_start_mt();
7390}
7391unsafe extern "C" {
7392    pub fn heap_end_mt();
7393}
7394unsafe extern "C" {
7395    pub fn heap_verbose(verbose: bool_t);
7396}
7397unsafe extern "C" {
7398    pub fn heap_stats(stats: bool_t);
7399}
7400unsafe extern "C" {
7401    pub fn heap_leaks() -> bool_t;
7402}
7403unsafe extern "C" {
7404    pub fn heap_malloc_imp(size: u32, name: *const char_t, equal_sized: bool_t) -> *mut byte_t;
7405}
7406unsafe extern "C" {
7407    pub fn heap_calloc_imp(size: u32, name: *const char_t, equal_sized: bool_t) -> *mut byte_t;
7408}
7409unsafe extern "C" {
7410    pub fn heap_realloc(
7411        mem: *mut byte_t,
7412        size: u32,
7413        new_size: u32,
7414        name: *const char_t,
7415    ) -> *mut byte_t;
7416}
7417unsafe extern "C" {
7418    pub fn heap_aligned_malloc_imp(
7419        size: u32,
7420        align: u32,
7421        name: *const char_t,
7422        equal_sized: bool_t,
7423    ) -> *mut byte_t;
7424}
7425unsafe extern "C" {
7426    pub fn heap_aligned_calloc_imp(
7427        size: u32,
7428        align: u32,
7429        name: *const char_t,
7430        equal_sized: bool_t,
7431    ) -> *mut byte_t;
7432}
7433unsafe extern "C" {
7434    pub fn heap_aligned_realloc(
7435        mem: *mut byte_t,
7436        size: u32,
7437        new_size: u32,
7438        align: u32,
7439        name: *const char_t,
7440    ) -> *mut byte_t;
7441}
7442unsafe extern "C" {
7443    pub fn heap_free(mem: *mut *mut byte_t, size: u32, name: *const char_t);
7444}
7445unsafe extern "C" {
7446    pub fn heap_auditor_add(name: *const char_t);
7447}
7448unsafe extern "C" {
7449    pub fn heap_auditor_delete(name: *const char_t);
7450}
7451unsafe extern "C" {
7452    pub fn hfile_dir(pathname: *const char_t) -> bool_t;
7453}
7454unsafe extern "C" {
7455    pub fn hfile_dir_create(pathname: *const char_t, error: *mut ferror_t) -> bool_t;
7456}
7457unsafe extern "C" {
7458    pub fn hfile_dir_destroy(pathname: *const char_t, error: *mut ferror_t) -> bool_t;
7459}
7460unsafe extern "C" {
7461    pub fn hfile_dir_list(
7462        pathname: *const char_t,
7463        subdirs: bool_t,
7464        error: *mut ferror_t,
7465    ) -> *mut ArrStDirEntry;
7466}
7467unsafe extern "C" {
7468    pub fn hfile_dir_entry_remove(entry: *mut DirEntry);
7469}
7470unsafe extern "C" {
7471    pub fn hfile_date(pathname: *const char_t, recursive: bool_t) -> Date;
7472}
7473unsafe extern "C" {
7474    pub fn hfile_dir_sync(
7475        src: *const char_t,
7476        dest: *const char_t,
7477        recursive: bool_t,
7478        remove_in_dest: bool_t,
7479        except: *mut *const char_t,
7480        except_size: u32,
7481        error: *mut ferror_t,
7482    ) -> bool_t;
7483}
7484unsafe extern "C" {
7485    pub fn hfile_exists(pathname: *const char_t, file_type: *mut file_type_t) -> bool_t;
7486}
7487unsafe extern "C" {
7488    pub fn hfile_is_uptodate(src: *const char_t, dest: *const char_t) -> bool_t;
7489}
7490unsafe extern "C" {
7491    pub fn hfile_copy(from: *const char_t, to: *const char_t, error: *mut ferror_t) -> bool_t;
7492}
7493unsafe extern "C" {
7494    pub fn hfile_buffer(pathname: *const char_t, error: *mut ferror_t) -> *mut Buffer;
7495}
7496unsafe extern "C" {
7497    pub fn hfile_string(pathname: *const char_t, error: *mut ferror_t) -> *mut String;
7498}
7499unsafe extern "C" {
7500    pub fn hfile_stream(pathname: *const char_t, error: *mut ferror_t) -> *mut Stream;
7501}
7502unsafe extern "C" {
7503    pub fn hfile_from_string(
7504        pathname: *const char_t,
7505        str_: *const String,
7506        error: *mut ferror_t,
7507    ) -> bool_t;
7508}
7509unsafe extern "C" {
7510    pub fn hfile_from_data(
7511        pathname: *const char_t,
7512        data: *const byte_t,
7513        size: u32,
7514        error: *mut ferror_t,
7515    ) -> bool_t;
7516}
7517unsafe extern "C" {
7518    pub fn hfile_dir_loop(
7519        pathname: *const char_t,
7520        listener: *mut Listener,
7521        subdirs: bool_t,
7522        hiddens: bool_t,
7523        error: *mut ferror_t,
7524    ) -> bool_t;
7525}
7526unsafe extern "C" {
7527    pub fn hfile_appdata(filename: *const char_t) -> *mut String;
7528}
7529unsafe extern "C" {
7530    pub fn hfile_home_dir(path: *const char_t) -> *mut String;
7531}
7532unsafe extern "C" {
7533    pub fn hfile_tmp_path(path: *const char_t) -> *mut String;
7534}
7535unsafe extern "C" {
7536    pub fn keybuf_create() -> *mut KeyBuf;
7537}
7538unsafe extern "C" {
7539    pub fn keybuf_destroy(buffer: *mut *mut KeyBuf);
7540}
7541unsafe extern "C" {
7542    pub fn keybuf_OnUp(buffer: *mut KeyBuf, key: vkey_t);
7543}
7544unsafe extern "C" {
7545    pub fn keybuf_OnDown(buffer: *mut KeyBuf, key: vkey_t);
7546}
7547unsafe extern "C" {
7548    pub fn keybuf_clear(buffer: *mut KeyBuf);
7549}
7550unsafe extern "C" {
7551    pub fn keybuf_pressed(buffer: *const KeyBuf, key: vkey_t) -> bool_t;
7552}
7553unsafe extern "C" {
7554    pub fn keybuf_str(key: vkey_t) -> *const char_t;
7555}
7556unsafe extern "C" {
7557    pub fn keybuf_dump(buffer: *const KeyBuf);
7558}
7559unsafe extern "C" {
7560    pub fn respack_destroy(pack: *mut *mut ResPack);
7561}
7562unsafe extern "C" {
7563    pub fn respack_text(pack: *const ResPack, id: ResId) -> *const char_t;
7564}
7565unsafe extern "C" {
7566    pub fn respack_file(pack: *const ResPack, id: ResId, size: *mut u32) -> *const byte_t;
7567}
7568unsafe extern "C" {
7569    pub fn regex_create(pattern: *const char_t) -> *mut RegEx;
7570}
7571unsafe extern "C" {
7572    pub fn regex_destroy(regex: *mut *mut RegEx);
7573}
7574unsafe extern "C" {
7575    pub fn regex_match(regex: *const RegEx, str_: *const char_t) -> bool_t;
7576}
7577unsafe extern "C" {
7578    pub fn stm_from_block(data: *const byte_t, size: u32) -> *mut Stream;
7579}
7580unsafe extern "C" {
7581    pub fn stm_memory(size: u32) -> *mut Stream;
7582}
7583unsafe extern "C" {
7584    pub fn stm_from_file(pathname: *const char_t, error: *mut ferror_t) -> *mut Stream;
7585}
7586unsafe extern "C" {
7587    pub fn stm_to_file(pathname: *const char_t, error: *mut ferror_t) -> *mut Stream;
7588}
7589unsafe extern "C" {
7590    pub fn stm_append_file(pathname: *const char_t, error: *mut ferror_t) -> *mut Stream;
7591}
7592unsafe extern "C" {
7593    pub fn stm_socket(socket: *mut Socket) -> *mut Stream;
7594}
7595unsafe extern "C" {
7596    pub fn stm_close(stm: *mut *mut Stream);
7597}
7598unsafe extern "C" {
7599    pub fn stm_get_write_endian(stm: *const Stream) -> endian_t;
7600}
7601unsafe extern "C" {
7602    pub fn stm_get_read_endian(stm: *const Stream) -> endian_t;
7603}
7604unsafe extern "C" {
7605    pub fn stm_set_write_endian(stm: *mut Stream, endian: endian_t);
7606}
7607unsafe extern "C" {
7608    pub fn stm_set_read_endian(stm: *mut Stream, endian: endian_t);
7609}
7610unsafe extern "C" {
7611    pub fn stm_get_write_utf(stm: *const Stream) -> unicode_t;
7612}
7613unsafe extern "C" {
7614    pub fn stm_get_read_utf(stm: *const Stream) -> unicode_t;
7615}
7616unsafe extern "C" {
7617    pub fn stm_set_write_utf(stm: *mut Stream, format: unicode_t);
7618}
7619unsafe extern "C" {
7620    pub fn stm_set_read_utf(stm: *mut Stream, format: unicode_t);
7621}
7622unsafe extern "C" {
7623    pub fn stm_is_memory(stm: *const Stream) -> bool_t;
7624}
7625unsafe extern "C" {
7626    pub fn stm_bytes_written(stm: *const Stream) -> u64;
7627}
7628unsafe extern "C" {
7629    pub fn stm_bytes_readed(stm: *const Stream) -> u64;
7630}
7631unsafe extern "C" {
7632    pub fn stm_col(stm: *const Stream) -> u32;
7633}
7634unsafe extern "C" {
7635    pub fn stm_row(stm: *const Stream) -> u32;
7636}
7637unsafe extern "C" {
7638    pub fn stm_token_col(stm: *const Stream) -> u32;
7639}
7640unsafe extern "C" {
7641    pub fn stm_token_row(stm: *const Stream) -> u32;
7642}
7643unsafe extern "C" {
7644    pub fn stm_token_lexeme(stm: *const Stream, size: *mut u32) -> *const char_t;
7645}
7646unsafe extern "C" {
7647    pub fn stm_token_escapes(stm: *mut Stream, active_escapes: bool_t);
7648}
7649unsafe extern "C" {
7650    pub fn stm_token_spaces(stm: *mut Stream, active_spaces: bool_t);
7651}
7652unsafe extern "C" {
7653    pub fn stm_token_comments(stm: *mut Stream, active_comments: bool_t);
7654}
7655unsafe extern "C" {
7656    pub fn stm_state(stm: *const Stream) -> sstate_t;
7657}
7658unsafe extern "C" {
7659    pub fn stm_file_err(stm: *const Stream) -> ferror_t;
7660}
7661unsafe extern "C" {
7662    pub fn stm_sock_err(stm: *const Stream) -> serror_t;
7663}
7664unsafe extern "C" {
7665    pub fn stm_corrupt(stm: *mut Stream);
7666}
7667unsafe extern "C" {
7668    pub fn stm_str(stm: *const Stream) -> *mut String;
7669}
7670unsafe extern "C" {
7671    pub fn stm_buffer(stm: *const Stream) -> *const byte_t;
7672}
7673unsafe extern "C" {
7674    pub fn stm_buffer_size(stm: *const Stream) -> u32;
7675}
7676unsafe extern "C" {
7677    pub fn stm_write(stm: *mut Stream, data: *const byte_t, size: u32);
7678}
7679unsafe extern "C" {
7680    pub fn stm_write_char(stm: *mut Stream, codepoint: u32);
7681}
7682unsafe extern "C" {
7683    pub fn stm_printf(stm: *mut Stream, format: *const char_t, ...) -> u32;
7684}
7685unsafe extern "C" {
7686    pub fn stm_writef(stm: *mut Stream, str_: *const char_t) -> u32;
7687}
7688unsafe extern "C" {
7689    pub fn stm_write_bool(stm: *mut Stream, value: bool_t);
7690}
7691unsafe extern "C" {
7692    pub fn stm_write_i8(stm: *mut Stream, value: i8);
7693}
7694unsafe extern "C" {
7695    pub fn stm_write_i16(stm: *mut Stream, value: i16);
7696}
7697unsafe extern "C" {
7698    pub fn stm_write_i32(stm: *mut Stream, value: i32);
7699}
7700unsafe extern "C" {
7701    pub fn stm_write_i64(stm: *mut Stream, value: i64);
7702}
7703unsafe extern "C" {
7704    pub fn stm_write_u8(stm: *mut Stream, value: u8);
7705}
7706unsafe extern "C" {
7707    pub fn stm_write_u16(stm: *mut Stream, value: u16);
7708}
7709unsafe extern "C" {
7710    pub fn stm_write_u32(stm: *mut Stream, value: u32);
7711}
7712unsafe extern "C" {
7713    pub fn stm_write_u64(stm: *mut Stream, value: u64);
7714}
7715unsafe extern "C" {
7716    pub fn stm_write_r32(stm: *mut Stream, value: real32_t);
7717}
7718unsafe extern "C" {
7719    pub fn stm_write_r64(stm: *mut Stream, value: real64_t);
7720}
7721unsafe extern "C" {
7722    pub fn stm_read(stm: *mut Stream, data: *mut byte_t, size: u32) -> u32;
7723}
7724unsafe extern "C" {
7725    pub fn stm_read_char(stm: *mut Stream) -> u32;
7726}
7727unsafe extern "C" {
7728    pub fn stm_read_chars(stm: *mut Stream, n: u32) -> *const char_t;
7729}
7730unsafe extern "C" {
7731    pub fn stm_read_line(stm: *mut Stream) -> *const char_t;
7732}
7733unsafe extern "C" {
7734    pub fn stm_read_trim(stm: *mut Stream) -> *const char_t;
7735}
7736unsafe extern "C" {
7737    pub fn stm_read_token(stm: *mut Stream) -> ltoken_t;
7738}
7739unsafe extern "C" {
7740    pub fn stm_read_i8_tok(stm: *mut Stream) -> i8;
7741}
7742unsafe extern "C" {
7743    pub fn stm_read_i16_tok(stm: *mut Stream) -> i16;
7744}
7745unsafe extern "C" {
7746    pub fn stm_read_i32_tok(stm: *mut Stream) -> i32;
7747}
7748unsafe extern "C" {
7749    pub fn stm_read_i64_tok(stm: *mut Stream) -> i64;
7750}
7751unsafe extern "C" {
7752    pub fn stm_read_u8_tok(stm: *mut Stream) -> u8;
7753}
7754unsafe extern "C" {
7755    pub fn stm_read_u16_tok(stm: *mut Stream) -> u16;
7756}
7757unsafe extern "C" {
7758    pub fn stm_read_u32_tok(stm: *mut Stream) -> u32;
7759}
7760unsafe extern "C" {
7761    pub fn stm_read_u64_tok(stm: *mut Stream) -> u64;
7762}
7763unsafe extern "C" {
7764    pub fn stm_read_r32_tok(stm: *mut Stream) -> real32_t;
7765}
7766unsafe extern "C" {
7767    pub fn stm_read_r64_tok(stm: *mut Stream) -> real64_t;
7768}
7769unsafe extern "C" {
7770    pub fn stm_read_bool(stm: *mut Stream) -> bool_t;
7771}
7772unsafe extern "C" {
7773    pub fn stm_read_i8(stm: *mut Stream) -> i8;
7774}
7775unsafe extern "C" {
7776    pub fn stm_read_i16(stm: *mut Stream) -> i16;
7777}
7778unsafe extern "C" {
7779    pub fn stm_read_i32(stm: *mut Stream) -> i32;
7780}
7781unsafe extern "C" {
7782    pub fn stm_read_i64(stm: *mut Stream) -> i64;
7783}
7784unsafe extern "C" {
7785    pub fn stm_read_u8(stm: *mut Stream) -> u8;
7786}
7787unsafe extern "C" {
7788    pub fn stm_read_u16(stm: *mut Stream) -> u16;
7789}
7790unsafe extern "C" {
7791    pub fn stm_read_u32(stm: *mut Stream) -> u32;
7792}
7793unsafe extern "C" {
7794    pub fn stm_read_u64(stm: *mut Stream) -> u64;
7795}
7796unsafe extern "C" {
7797    pub fn stm_read_r32(stm: *mut Stream) -> real32_t;
7798}
7799unsafe extern "C" {
7800    pub fn stm_read_r64(stm: *mut Stream) -> real64_t;
7801}
7802unsafe extern "C" {
7803    pub fn stm_skip(stm: *mut Stream, size: u32);
7804}
7805unsafe extern "C" {
7806    pub fn stm_skip_bom(stm: *mut Stream);
7807}
7808unsafe extern "C" {
7809    pub fn stm_skip_token(stm: *mut Stream, token: ltoken_t);
7810}
7811unsafe extern "C" {
7812    pub fn stm_flush(stm: *mut Stream);
7813}
7814unsafe extern "C" {
7815    pub fn stm_pipe(from: *mut Stream, to: *mut Stream, n: u32);
7816}
7817unsafe extern "C" {
7818    pub static mut kSTDIN: *mut Stream;
7819}
7820unsafe extern "C" {
7821    pub static mut kSTDOUT: *mut Stream;
7822}
7823unsafe extern "C" {
7824    pub static mut kSTDERR: *mut Stream;
7825}
7826unsafe extern "C" {
7827    pub static mut kDEVNULL: *mut Stream;
7828}
7829unsafe extern "C" {
7830    pub fn tc(str_: *const String) -> *const char_t;
7831}
7832unsafe extern "C" {
7833    pub fn tcc(str_: *mut String) -> *mut char_t;
7834}
7835unsafe extern "C" {
7836    pub fn str_c(str_: *const char_t) -> *mut String;
7837}
7838unsafe extern "C" {
7839    pub fn str_cn(str_: *const char_t, n: u32) -> *mut String;
7840}
7841unsafe extern "C" {
7842    pub fn str_trim(str_: *const char_t) -> *mut String;
7843}
7844unsafe extern "C" {
7845    pub fn str_trim_n(str_: *const char_t, n: u32) -> *mut String;
7846}
7847unsafe extern "C" {
7848    pub fn str_copy(str_: *const String) -> *mut String;
7849}
7850unsafe extern "C" {
7851    pub fn str_printf(format: *const char_t, ...) -> *mut String;
7852}
7853unsafe extern "C" {
7854    pub fn str_path(platform: platform_t, format: *const char_t, ...) -> *mut String;
7855}
7856unsafe extern "C" {
7857    pub fn str_cpath(format: *const char_t, ...) -> *mut String;
7858}
7859unsafe extern "C" {
7860    pub fn str_relpath(
7861        platform: platform_t,
7862        path1: *const char_t,
7863        path2: *const char_t,
7864    ) -> *mut String;
7865}
7866unsafe extern "C" {
7867    pub fn str_crelpath(path1: *const char_t, path2: *const char_t) -> *mut String;
7868}
7869unsafe extern "C" {
7870    pub fn str_repl(str_: *const char_t, ...) -> *mut String;
7871}
7872unsafe extern "C" {
7873    pub fn str_reserve(n: u32) -> *mut String;
7874}
7875unsafe extern "C" {
7876    pub fn str_fill(n: u32, c: char_t) -> *mut String;
7877}
7878unsafe extern "C" {
7879    pub fn str_read(stream: *mut Stream) -> *mut String;
7880}
7881unsafe extern "C" {
7882    pub fn str_write(stream: *mut Stream, str_: *const String);
7883}
7884unsafe extern "C" {
7885    pub fn str_writef(stream: *mut Stream, str_: *const String);
7886}
7887unsafe extern "C" {
7888    pub fn str_copy_c(dest: *mut char_t, size: u32, src: *const char_t);
7889}
7890unsafe extern "C" {
7891    pub fn str_copy_cn(dest: *mut char_t, size: u32, src: *const char_t, n: u32);
7892}
7893unsafe extern "C" {
7894    pub fn str_cat(dest: *mut *mut String, src: *const char_t);
7895}
7896unsafe extern "C" {
7897    pub fn str_cat_c(dest: *mut char_t, size: u32, src: *const char_t);
7898}
7899unsafe extern "C" {
7900    pub fn str_upd(str_: *mut *mut String, new_str: *const char_t);
7901}
7902unsafe extern "C" {
7903    pub fn str_destroy(str_: *mut *mut String);
7904}
7905unsafe extern "C" {
7906    pub fn str_destopt(str_: *mut *mut String);
7907}
7908unsafe extern "C" {
7909    pub fn str_len(str_: *const String) -> u32;
7910}
7911unsafe extern "C" {
7912    pub fn str_len_c(str_: *const char_t) -> u32;
7913}
7914unsafe extern "C" {
7915    pub fn str_nchars(str_: *const String) -> u32;
7916}
7917unsafe extern "C" {
7918    pub fn str_prefix(str1: *const char_t, str2: *const char_t) -> u32;
7919}
7920unsafe extern "C" {
7921    pub fn str_is_prefix(str_: *const char_t, prefix: *const char_t) -> bool_t;
7922}
7923unsafe extern "C" {
7924    pub fn str_is_sufix(str_: *const char_t, sufix: *const char_t) -> bool_t;
7925}
7926unsafe extern "C" {
7927    pub fn str_scmp(str1: *const String, str2: *const String) -> ::libc::c_int;
7928}
7929unsafe extern "C" {
7930    pub fn str_cmp(str1: *const String, str2: *const char_t) -> ::libc::c_int;
7931}
7932unsafe extern "C" {
7933    pub fn str_cmp_c(str1: *const char_t, str2: *const char_t) -> ::libc::c_int;
7934}
7935unsafe extern "C" {
7936    pub fn str_cmp_cn(str1: *const char_t, str2: *const char_t, n: u32) -> ::libc::c_int;
7937}
7938unsafe extern "C" {
7939    pub fn str_empty(str_: *const String) -> bool_t;
7940}
7941unsafe extern "C" {
7942    pub fn str_empty_c(str_: *const char_t) -> bool_t;
7943}
7944unsafe extern "C" {
7945    pub fn str_equ(str1: *const String, str2: *const char_t) -> bool_t;
7946}
7947unsafe extern "C" {
7948    pub fn str_equ_c(str1: *const char_t, str2: *const char_t) -> bool_t;
7949}
7950unsafe extern "C" {
7951    pub fn str_equ_cn(str1: *const char_t, str2: *const char_t, n: u32) -> bool_t;
7952}
7953unsafe extern "C" {
7954    pub fn str_equ_nocase(str1: *const char_t, str2: *const char_t) -> bool_t;
7955}
7956unsafe extern "C" {
7957    pub fn str_equ_end(str_: *const char_t, end: *const char_t) -> bool_t;
7958}
7959unsafe extern "C" {
7960    pub fn str_upper(str_: *mut String);
7961}
7962unsafe extern "C" {
7963    pub fn str_lower(str_: *mut String);
7964}
7965unsafe extern "C" {
7966    pub fn str_upper_c(dest: *mut char_t, size: u32, str_: *const char_t);
7967}
7968unsafe extern "C" {
7969    pub fn str_lower_c(dest: *mut char_t, size: u32, str_: *const char_t);
7970}
7971unsafe extern "C" {
7972    pub fn str_subs(str_: *mut String, replace: char_t, with: char_t);
7973}
7974unsafe extern "C" {
7975    pub fn str_repl_c(str_: *mut char_t, replace: *const char_t, with: *const char_t);
7976}
7977unsafe extern "C" {
7978    pub fn str_str(str_: *const char_t, substr: *const char_t) -> *const char_t;
7979}
7980unsafe extern "C" {
7981    pub fn str_split(
7982        str_: *const char_t,
7983        substr: *const char_t,
7984        left: *mut *mut String,
7985        right: *mut *mut String,
7986    ) -> bool_t;
7987}
7988unsafe extern "C" {
7989    pub fn str_split_trim(
7990        str_: *const char_t,
7991        substr: *const char_t,
7992        left: *mut *mut String,
7993        right: *mut *mut String,
7994    ) -> bool_t;
7995}
7996unsafe extern "C" {
7997    pub fn str_splits(
7998        str_: *const char_t,
7999        substr: *const char_t,
8000        trim: bool_t,
8001        add_empty: bool_t,
8002    ) -> *mut ArrPtString;
8003}
8004unsafe extern "C" {
8005    pub fn str_split_pathname(
8006        pathname: *const char_t,
8007        path: *mut *mut String,
8008        file: *mut *mut String,
8009    );
8010}
8011unsafe extern "C" {
8012    pub fn str_split_pathext(
8013        pathname: *const char_t,
8014        path: *mut *mut String,
8015        file: *mut *mut String,
8016        ext: *mut *mut String,
8017    );
8018}
8019unsafe extern "C" {
8020    pub fn str_filename(pathname: *const char_t) -> *const char_t;
8021}
8022unsafe extern "C" {
8023    pub fn str_filext(pathname: *const char_t) -> *const char_t;
8024}
8025unsafe extern "C" {
8026    pub fn str_find(array: *const ArrPtString, str_: *const char_t) -> u32;
8027}
8028unsafe extern "C" {
8029    pub fn str_to_i8(str_: *const char_t, base: u32, error: *mut bool_t) -> i8;
8030}
8031unsafe extern "C" {
8032    pub fn str_to_i16(str_: *const char_t, base: u32, error: *mut bool_t) -> i16;
8033}
8034unsafe extern "C" {
8035    pub fn str_to_i32(str_: *const char_t, base: u32, error: *mut bool_t) -> i32;
8036}
8037unsafe extern "C" {
8038    pub fn str_to_i64(str_: *const char_t, base: u32, error: *mut bool_t) -> i64;
8039}
8040unsafe extern "C" {
8041    pub fn str_to_u8(str_: *const char_t, base: u32, error: *mut bool_t) -> u8;
8042}
8043unsafe extern "C" {
8044    pub fn str_to_u16(str_: *const char_t, base: u32, error: *mut bool_t) -> u16;
8045}
8046unsafe extern "C" {
8047    pub fn str_to_u32(str_: *const char_t, base: u32, error: *mut bool_t) -> u32;
8048}
8049unsafe extern "C" {
8050    pub fn str_to_u64(str_: *const char_t, base: u32, error: *mut bool_t) -> u64;
8051}
8052unsafe extern "C" {
8053    pub fn str_to_r32(str_: *const char_t, error: *mut bool_t) -> real32_t;
8054}
8055unsafe extern "C" {
8056    pub fn str_to_r64(str_: *const char_t, error: *mut bool_t) -> real64_t;
8057}
8058unsafe extern "C" {
8059    pub fn tfilter_date(
8060        src: *const char_t,
8061        dest: *mut char_t,
8062        size: u32,
8063        pattern: *const char_t,
8064        cpos: u32,
8065        deleted: bool_t,
8066        ncpos: *mut u32,
8067    );
8068}
8069unsafe extern "C" {
8070    pub fn tfilter_to_date(text: *const char_t, pattern: *const char_t) -> Date;
8071}
8072unsafe extern "C" {
8073    pub fn osbs_start();
8074}
8075unsafe extern "C" {
8076    pub fn osbs_finish();
8077}
8078unsafe extern "C" {
8079    pub fn osbs_platform() -> platform_t;
8080}
8081unsafe extern "C" {
8082    pub fn osbs_windows() -> win_t;
8083}
8084unsafe extern "C" {
8085    pub fn osbs_endian() -> endian_t;
8086}
8087unsafe extern "C" {
8088    pub fn osbs_memory_mt(mutex: *mut Mutex);
8089}
8090unsafe extern "C" {
8091    pub fn bfile_dir_work(pathname: *mut char_t, size: u32) -> u32;
8092}
8093unsafe extern "C" {
8094    pub fn bfile_dir_set_work(pathname: *const char_t, error: *mut ferror_t) -> bool_t;
8095}
8096unsafe extern "C" {
8097    pub fn bfile_dir_home(pathname: *mut char_t, size: u32) -> u32;
8098}
8099unsafe extern "C" {
8100    pub fn bfile_dir_data(pathname: *mut char_t, size: u32) -> u32;
8101}
8102unsafe extern "C" {
8103    pub fn bfile_dir_exec(pathname: *mut char_t, size: u32) -> u32;
8104}
8105unsafe extern "C" {
8106    pub fn bfile_dir_tmp(pathname: *mut char_t, size: u32) -> u32;
8107}
8108unsafe extern "C" {
8109    pub fn bfile_dir_create(pathname: *const char_t, error: *mut ferror_t) -> bool_t;
8110}
8111unsafe extern "C" {
8112    pub fn bfile_dir_open(pathname: *const char_t, error: *mut ferror_t) -> *mut Dir;
8113}
8114unsafe extern "C" {
8115    pub fn bfile_dir_close(dir: *mut *mut Dir);
8116}
8117unsafe extern "C" {
8118    pub fn bfile_dir_get(
8119        dir: *mut Dir,
8120        name: *mut char_t,
8121        size: u32,
8122        type_: *mut file_type_t,
8123        fsize: *mut u64,
8124        updated: *mut Date,
8125        error: *mut ferror_t,
8126    ) -> bool_t;
8127}
8128unsafe extern "C" {
8129    pub fn bfile_dir_delete(pathname: *const char_t, error: *mut ferror_t) -> bool_t;
8130}
8131unsafe extern "C" {
8132    pub fn bfile_create(pathname: *const char_t, error: *mut ferror_t) -> *mut File;
8133}
8134unsafe extern "C" {
8135    pub fn bfile_open(
8136        pathname: *const char_t,
8137        mode: file_mode_t,
8138        error: *mut ferror_t,
8139    ) -> *mut File;
8140}
8141unsafe extern "C" {
8142    pub fn bfile_close(file: *mut *mut File);
8143}
8144unsafe extern "C" {
8145    pub fn bfile_lstat(
8146        pathname: *const char_t,
8147        type_: *mut file_type_t,
8148        size: *mut u64,
8149        updated: *mut Date,
8150        error: *mut ferror_t,
8151    ) -> bool_t;
8152}
8153unsafe extern "C" {
8154    pub fn bfile_fstat(
8155        file: *const File,
8156        type_: *mut file_type_t,
8157        size: *mut u64,
8158        updated: *mut Date,
8159        error: *mut ferror_t,
8160    ) -> bool_t;
8161}
8162unsafe extern "C" {
8163    pub fn bfile_read(
8164        file: *mut File,
8165        data: *mut byte_t,
8166        size: u32,
8167        rsize: *mut u32,
8168        error: *mut ferror_t,
8169    ) -> bool_t;
8170}
8171unsafe extern "C" {
8172    pub fn bfile_write(
8173        file: *mut File,
8174        data: *const byte_t,
8175        size: u32,
8176        wsize: *mut u32,
8177        error: *mut ferror_t,
8178    ) -> bool_t;
8179}
8180unsafe extern "C" {
8181    pub fn bfile_seek(
8182        file: *mut File,
8183        offset: i64,
8184        whence: file_seek_t,
8185        error: *mut ferror_t,
8186    ) -> bool_t;
8187}
8188unsafe extern "C" {
8189    pub fn bfile_pos(file: *const File) -> u64;
8190}
8191unsafe extern "C" {
8192    pub fn bfile_delete(pathname: *const char_t, error: *mut ferror_t) -> bool_t;
8193}
8194unsafe extern "C" {
8195    pub fn bfile_rename(
8196        current_pathname: *const char_t,
8197        new_pathname: *const char_t,
8198        error: *mut ferror_t,
8199    ) -> bool_t;
8200}
8201unsafe extern "C" {
8202    pub fn bmutex_create() -> *mut Mutex;
8203}
8204unsafe extern "C" {
8205    pub fn bmutex_close(mutex: *mut *mut Mutex);
8206}
8207unsafe extern "C" {
8208    pub fn bmutex_lock(mutex: *mut Mutex);
8209}
8210unsafe extern "C" {
8211    pub fn bmutex_unlock(mutex: *mut Mutex);
8212}
8213unsafe extern "C" {
8214    pub fn bproc_exec(command: *const char_t, error: *mut perror_t) -> *mut Proc;
8215}
8216unsafe extern "C" {
8217    pub fn bproc_close(proc_: *mut *mut Proc);
8218}
8219unsafe extern "C" {
8220    pub fn bproc_cancel(proc_: *mut Proc) -> bool_t;
8221}
8222unsafe extern "C" {
8223    pub fn bproc_wait(proc_: *mut Proc) -> u32;
8224}
8225unsafe extern "C" {
8226    pub fn bproc_finish(proc_: *mut Proc, code: *mut u32) -> bool_t;
8227}
8228unsafe extern "C" {
8229    pub fn bproc_read(
8230        proc_: *mut Proc,
8231        data: *mut byte_t,
8232        size: u32,
8233        rsize: *mut u32,
8234        error: *mut perror_t,
8235    ) -> bool_t;
8236}
8237unsafe extern "C" {
8238    pub fn bproc_eread(
8239        proc_: *mut Proc,
8240        data: *mut byte_t,
8241        size: u32,
8242        rsize: *mut u32,
8243        error: *mut perror_t,
8244    ) -> bool_t;
8245}
8246unsafe extern "C" {
8247    pub fn bproc_write(
8248        proc_: *mut Proc,
8249        data: *const byte_t,
8250        size: u32,
8251        wsize: *mut u32,
8252        error: *mut perror_t,
8253    ) -> bool_t;
8254}
8255unsafe extern "C" {
8256    pub fn bproc_read_close(proc_: *mut Proc) -> bool_t;
8257}
8258unsafe extern "C" {
8259    pub fn bproc_eread_close(proc_: *mut Proc) -> bool_t;
8260}
8261unsafe extern "C" {
8262    pub fn bproc_write_close(proc_: *mut Proc) -> bool_t;
8263}
8264unsafe extern "C" {
8265    pub fn bproc_exit(code: u32);
8266}
8267unsafe extern "C" {
8268    pub fn bsocket_connect(
8269        ip: u32,
8270        port: u16,
8271        timeout_ms: u32,
8272        error: *mut serror_t,
8273    ) -> *mut Socket;
8274}
8275unsafe extern "C" {
8276    pub fn bsocket_server(port: u16, max_connect: u32, error: *mut serror_t) -> *mut Socket;
8277}
8278unsafe extern "C" {
8279    pub fn bsocket_accept(
8280        socket: *mut Socket,
8281        timeout_ms: u32,
8282        error: *mut serror_t,
8283    ) -> *mut Socket;
8284}
8285unsafe extern "C" {
8286    pub fn bsocket_close(socket: *mut *mut Socket);
8287}
8288unsafe extern "C" {
8289    pub fn bsocket_local_ip(socket: *mut Socket, ip: *mut u32, port: *mut u16);
8290}
8291unsafe extern "C" {
8292    pub fn bsocket_remote_ip(socket: *mut Socket, ip: *mut u32, port: *mut u16);
8293}
8294unsafe extern "C" {
8295    pub fn bsocket_read_timeout(socket: *mut Socket, timeout_ms: u32);
8296}
8297unsafe extern "C" {
8298    pub fn bsocket_write_timeout(socket: *mut Socket, timeout_ms: u32);
8299}
8300unsafe extern "C" {
8301    pub fn bsocket_read(
8302        socket: *mut Socket,
8303        data: *mut byte_t,
8304        size: u32,
8305        rsize: *mut u32,
8306        error: *mut serror_t,
8307    ) -> bool_t;
8308}
8309unsafe extern "C" {
8310    pub fn bsocket_write(
8311        socket: *mut Socket,
8312        data: *const byte_t,
8313        size: u32,
8314        wsize: *mut u32,
8315        error: *mut serror_t,
8316    ) -> bool_t;
8317}
8318unsafe extern "C" {
8319    pub fn bsocket_url_ip(url: *const char_t, error: *mut serror_t) -> u32;
8320}
8321unsafe extern "C" {
8322    pub fn bsocket_str_ip(ip: *const char_t) -> u32;
8323}
8324unsafe extern "C" {
8325    pub fn bsocket_host_name(buffer: *mut char_t, size: u32) -> *const char_t;
8326}
8327unsafe extern "C" {
8328    pub fn bsocket_host_name_ip(ip: u32, buffer: *mut char_t, size: u32) -> *const char_t;
8329}
8330unsafe extern "C" {
8331    pub fn bsocket_ip_str(ip: u32) -> *const char_t;
8332}
8333unsafe extern "C" {
8334    pub fn bsocket_hton2(dest: *mut byte_t, src: *const byte_t);
8335}
8336unsafe extern "C" {
8337    pub fn bsocket_hton4(dest: *mut byte_t, src: *const byte_t);
8338}
8339unsafe extern "C" {
8340    pub fn bsocket_hton8(dest: *mut byte_t, src: *const byte_t);
8341}
8342unsafe extern "C" {
8343    pub fn bsocket_ntoh2(dest: *mut byte_t, src: *const byte_t);
8344}
8345unsafe extern "C" {
8346    pub fn bsocket_ntoh4(dest: *mut byte_t, src: *const byte_t);
8347}
8348unsafe extern "C" {
8349    pub fn bsocket_ntoh8(dest: *mut byte_t, src: *const byte_t);
8350}
8351unsafe extern "C" {
8352    pub fn bthread_create_imp(thmain: FPtr_thread_main, data: *mut ::libc::c_void) -> *mut Thread;
8353}
8354unsafe extern "C" {
8355    pub fn bthread_current_id() -> ::libc::c_int;
8356}
8357unsafe extern "C" {
8358    pub fn bthread_close(thread: *mut *mut Thread);
8359}
8360unsafe extern "C" {
8361    pub fn bthread_cancel(thread: *mut Thread) -> bool_t;
8362}
8363unsafe extern "C" {
8364    pub fn bthread_wait(thread: *mut Thread) -> u32;
8365}
8366unsafe extern "C" {
8367    pub fn bthread_finish(thread: *mut Thread, code: *mut u32) -> bool_t;
8368}
8369unsafe extern "C" {
8370    pub fn bthread_sleep(milliseconds: u32);
8371}
8372unsafe extern "C" {
8373    pub fn btime_now() -> u64;
8374}
8375unsafe extern "C" {
8376    pub fn btime_date(date: *mut Date);
8377}
8378unsafe extern "C" {
8379    pub fn btime_to_micro(date: *const Date) -> u64;
8380}
8381unsafe extern "C" {
8382    pub fn btime_to_date(micro: u64, date: *mut Date);
8383}
8384unsafe extern "C" {
8385    pub fn dlib_open(path: *const char_t, libname: *const char_t) -> *mut DLib;
8386}
8387unsafe extern "C" {
8388    pub fn dlib_close(dlib: *mut *mut DLib);
8389}
8390unsafe extern "C" {
8391    pub fn dlib_proc_imp(dlib: *mut DLib, procname: *const char_t) -> FPtr_libproc;
8392}
8393unsafe extern "C" {
8394    pub fn dlib_var_imp(dlib: *mut DLib, varname: *const char_t) -> *mut ::libc::c_void;
8395}
8396unsafe extern "C" {
8397    pub fn log_printf(format: *const char_t, ...) -> u32;
8398}
8399unsafe extern "C" {
8400    pub fn log_output(std: bool_t, err: bool_t);
8401}
8402unsafe extern "C" {
8403    pub fn log_file(pathname: *const char_t);
8404}
8405unsafe extern "C" {
8406    pub fn log_get_file() -> *const char_t;
8407}
8408unsafe extern "C" {
8409    pub fn sewer_start();
8410}
8411unsafe extern "C" {
8412    pub fn sewer_finish();
8413}
8414unsafe extern "C" {
8415    pub fn sewer_nappgui_major() -> u32;
8416}
8417unsafe extern "C" {
8418    pub fn sewer_nappgui_minor() -> u32;
8419}
8420unsafe extern "C" {
8421    pub fn sewer_nappgui_patch() -> u32;
8422}
8423unsafe extern "C" {
8424    pub fn sewer_nappgui_build() -> u32;
8425}
8426unsafe extern "C" {
8427    pub fn sewer_nappgui_version(full: bool_t) -> *const char_t;
8428}
8429unsafe extern "C" {
8430    pub fn blib_strlen(str_: *const char_t) -> u32;
8431}
8432unsafe extern "C" {
8433    pub fn blib_strstr(str_: *const char_t, substr: *const char_t) -> *mut char_t;
8434}
8435unsafe extern "C" {
8436    pub fn blib_strcpy(dest: *mut char_t, size: u32, src: *const char_t);
8437}
8438unsafe extern "C" {
8439    pub fn blib_strncpy(dest: *mut char_t, size: u32, src: *const char_t, n: u32);
8440}
8441unsafe extern "C" {
8442    pub fn blib_strcat(dest: *mut char_t, size: u32, src: *const char_t);
8443}
8444unsafe extern "C" {
8445    pub fn blib_strcmp(str1: *const char_t, str2: *const char_t) -> ::libc::c_int;
8446}
8447unsafe extern "C" {
8448    pub fn blib_strncmp(str1: *const char_t, str2: *const char_t, n: u32) -> ::libc::c_int;
8449}
8450unsafe extern "C" {
8451    pub fn blib_strftime(
8452        dest: *mut char_t,
8453        size: u32,
8454        format: *const char_t,
8455        year: i16,
8456        month: u8,
8457        mday: u8,
8458        wday: u8,
8459        hour: u8,
8460        minute: u8,
8461        second: u8,
8462    ) -> u32;
8463}
8464unsafe extern "C" {
8465    pub fn blib_strtol(
8466        str_: *const char_t,
8467        endptr: *mut *mut char_t,
8468        base: u32,
8469        err: *mut bool_t,
8470    ) -> i64;
8471}
8472unsafe extern "C" {
8473    pub fn blib_strtoul(
8474        str_: *const char_t,
8475        endptr: *mut *mut char_t,
8476        base: u32,
8477        err: *mut bool_t,
8478    ) -> u64;
8479}
8480unsafe extern "C" {
8481    pub fn blib_strtof(str_: *const char_t, endptr: *mut *mut char_t, err: *mut bool_t)
8482        -> real32_t;
8483}
8484unsafe extern "C" {
8485    pub fn blib_strtod(str_: *const char_t, endptr: *mut *mut char_t, err: *mut bool_t)
8486        -> real64_t;
8487}
8488unsafe extern "C" {
8489    pub fn blib_qsort(array: *mut byte_t, nelems: u32, size: u32, func_compare: FPtr_compare);
8490}
8491unsafe extern "C" {
8492    pub fn blib_qsort_ex(
8493        array: *const byte_t,
8494        nelems: u32,
8495        size: u32,
8496        func_compare: FPtr_compare_ex,
8497        data: *const byte_t,
8498    );
8499}
8500unsafe extern "C" {
8501    pub fn blib_bsearch(
8502        array: *const byte_t,
8503        key: *const byte_t,
8504        nelems: u32,
8505        size: u32,
8506        func_compare: FPtr_compare,
8507        pos: *mut u32,
8508    ) -> bool_t;
8509}
8510unsafe extern "C" {
8511    pub fn blib_bsearch_ex(
8512        array: *const byte_t,
8513        key: *const byte_t,
8514        nelems: u32,
8515        size: u32,
8516        func_compare: FPtr_compare_ex,
8517        data: *const byte_t,
8518        pos: *mut u32,
8519    ) -> bool_t;
8520}
8521unsafe extern "C" {
8522    pub fn blib_getenv(name: *const char_t) -> *const char_t;
8523}
8524unsafe extern "C" {
8525    pub fn blib_setenv(name: *const char_t, value: *const char_t) -> i32;
8526}
8527unsafe extern "C" {
8528    pub fn blib_atexit(func: ::core::option::Option<unsafe extern "C" fn()>);
8529}
8530unsafe extern "C" {
8531    pub fn blib_abort();
8532}
8533unsafe extern "C" {
8534    pub fn blib_exit(code: ::libc::c_int);
8535}
8536unsafe extern "C" {
8537    pub fn blib_debug_break();
8538}
8539unsafe extern "C" {
8540    pub fn bmath_cosf(angle: real32_t) -> real32_t;
8541}
8542unsafe extern "C" {
8543    pub fn bmath_cosd(angle: real64_t) -> real64_t;
8544}
8545unsafe extern "C" {
8546    pub fn bmath_sinf(angle: real32_t) -> real32_t;
8547}
8548unsafe extern "C" {
8549    pub fn bmath_sind(angle: real64_t) -> real64_t;
8550}
8551unsafe extern "C" {
8552    pub fn bmath_tanf(angle: real32_t) -> real32_t;
8553}
8554unsafe extern "C" {
8555    pub fn bmath_tand(angle: real64_t) -> real64_t;
8556}
8557unsafe extern "C" {
8558    pub fn bmath_acosf(cos: real32_t) -> real32_t;
8559}
8560unsafe extern "C" {
8561    pub fn bmath_acosd(cos: real64_t) -> real64_t;
8562}
8563unsafe extern "C" {
8564    pub fn bmath_asinf(sin: real32_t) -> real32_t;
8565}
8566unsafe extern "C" {
8567    pub fn bmath_asind(sin: real64_t) -> real64_t;
8568}
8569unsafe extern "C" {
8570    pub fn bmath_atan2f(y: real32_t, x: real32_t) -> real32_t;
8571}
8572unsafe extern "C" {
8573    pub fn bmath_atan2d(y: real64_t, x: real64_t) -> real64_t;
8574}
8575unsafe extern "C" {
8576    pub fn bmath_norm_anglef(a: real32_t) -> real32_t;
8577}
8578unsafe extern "C" {
8579    pub fn bmath_norm_angled(a: real64_t) -> real64_t;
8580}
8581unsafe extern "C" {
8582    pub fn bmath_sqrtf(value: real32_t) -> real32_t;
8583}
8584unsafe extern "C" {
8585    pub fn bmath_sqrtd(value: real64_t) -> real64_t;
8586}
8587unsafe extern "C" {
8588    pub fn bmath_isqrtf(value: real32_t) -> real32_t;
8589}
8590unsafe extern "C" {
8591    pub fn bmath_isqrtd(value: real64_t) -> real64_t;
8592}
8593unsafe extern "C" {
8594    pub fn bmath_logf(value: real32_t) -> real32_t;
8595}
8596unsafe extern "C" {
8597    pub fn bmath_logd(value: real64_t) -> real64_t;
8598}
8599unsafe extern "C" {
8600    pub fn bmath_log10f(value: real32_t) -> real32_t;
8601}
8602unsafe extern "C" {
8603    pub fn bmath_log10d(value: real64_t) -> real64_t;
8604}
8605unsafe extern "C" {
8606    pub fn bmath_expf(value: real32_t) -> real32_t;
8607}
8608unsafe extern "C" {
8609    pub fn bmath_expd(value: real64_t) -> real64_t;
8610}
8611unsafe extern "C" {
8612    pub fn bmath_powf(base: real32_t, exponent: real32_t) -> real32_t;
8613}
8614unsafe extern "C" {
8615    pub fn bmath_powd(base: real64_t, exponent: real64_t) -> real64_t;
8616}
8617unsafe extern "C" {
8618    pub fn bmath_absf(value: real32_t) -> real32_t;
8619}
8620unsafe extern "C" {
8621    pub fn bmath_absd(value: real64_t) -> real64_t;
8622}
8623unsafe extern "C" {
8624    pub fn bmath_maxf(value1: real32_t, value2: real32_t) -> real32_t;
8625}
8626unsafe extern "C" {
8627    pub fn bmath_maxd(value1: real64_t, value2: real64_t) -> real64_t;
8628}
8629unsafe extern "C" {
8630    pub fn bmath_minf(value1: real32_t, value2: real32_t) -> real32_t;
8631}
8632unsafe extern "C" {
8633    pub fn bmath_mind(value1: real64_t, value2: real64_t) -> real64_t;
8634}
8635unsafe extern "C" {
8636    pub fn bmath_clampf(value: real32_t, min: real32_t, max: real32_t) -> real32_t;
8637}
8638unsafe extern "C" {
8639    pub fn bmath_clampd(value: real64_t, min: real64_t, max: real64_t) -> real64_t;
8640}
8641unsafe extern "C" {
8642    pub fn bmath_modf(num: real32_t, den: real32_t) -> real32_t;
8643}
8644unsafe extern "C" {
8645    pub fn bmath_modd(num: real64_t, den: real64_t) -> real64_t;
8646}
8647unsafe extern "C" {
8648    pub fn bmath_modff(value: real32_t, intpart: *mut real32_t) -> real32_t;
8649}
8650unsafe extern "C" {
8651    pub fn bmath_modfd(value: real64_t, intpart: *mut real64_t) -> real64_t;
8652}
8653unsafe extern "C" {
8654    pub fn bmath_precf(value: real32_t) -> u32;
8655}
8656unsafe extern "C" {
8657    pub fn bmath_precd(value: real64_t) -> u32;
8658}
8659unsafe extern "C" {
8660    pub fn bmath_roundf(value: real32_t) -> real32_t;
8661}
8662unsafe extern "C" {
8663    pub fn bmath_roundd(value: real64_t) -> real64_t;
8664}
8665unsafe extern "C" {
8666    pub fn bmath_round_stepf(value: real32_t, step: real32_t) -> real32_t;
8667}
8668unsafe extern "C" {
8669    pub fn bmath_round_stepd(value: real64_t, step: real64_t) -> real64_t;
8670}
8671unsafe extern "C" {
8672    pub fn bmath_floorf(value: real32_t) -> real32_t;
8673}
8674unsafe extern "C" {
8675    pub fn bmath_floord(value: real64_t) -> real64_t;
8676}
8677unsafe extern "C" {
8678    pub fn bmath_ceilf(value: real32_t) -> real32_t;
8679}
8680unsafe extern "C" {
8681    pub fn bmath_ceild(value: real64_t) -> real64_t;
8682}
8683unsafe extern "C" {
8684    pub fn bmath_rand_seed(seed: u32);
8685}
8686unsafe extern "C" {
8687    pub fn bmath_randf(from: real32_t, to: real32_t) -> real32_t;
8688}
8689unsafe extern "C" {
8690    pub fn bmath_randd(from: real64_t, to: real64_t) -> real64_t;
8691}
8692unsafe extern "C" {
8693    pub fn bmath_randi(from: u32, to: u32) -> u32;
8694}
8695unsafe extern "C" {
8696    pub fn bmath_rand_env(seed: u32) -> *mut REnv;
8697}
8698unsafe extern "C" {
8699    pub fn bmath_rand_destroy(env: *mut *mut REnv);
8700}
8701unsafe extern "C" {
8702    pub fn bmath_rand_mtf(env: *mut REnv, from: real32_t, to: real32_t) -> real32_t;
8703}
8704unsafe extern "C" {
8705    pub fn bmath_rand_mtd(env: *mut REnv, from: real64_t, to: real64_t) -> real64_t;
8706}
8707unsafe extern "C" {
8708    pub fn bmath_rand_mti(env: *mut REnv, from: u32, to: u32) -> u32;
8709}
8710unsafe extern "C" {
8711    pub static kBMATH_Ef: real32_t;
8712}
8713unsafe extern "C" {
8714    pub static kBMATH_Ed: real64_t;
8715}
8716unsafe extern "C" {
8717    pub static kBMATH_LN2f: real32_t;
8718}
8719unsafe extern "C" {
8720    pub static kBMATH_LN2d: real64_t;
8721}
8722unsafe extern "C" {
8723    pub static kBMATH_LN10f: real32_t;
8724}
8725unsafe extern "C" {
8726    pub static kBMATH_LN10d: real64_t;
8727}
8728unsafe extern "C" {
8729    pub static kBMATH_PIf: real32_t;
8730}
8731unsafe extern "C" {
8732    pub static kBMATH_PId: real64_t;
8733}
8734unsafe extern "C" {
8735    pub static kBMATH_SQRT2f: real32_t;
8736}
8737unsafe extern "C" {
8738    pub static kBMATH_SQRT2d: real64_t;
8739}
8740unsafe extern "C" {
8741    pub static kBMATH_SQRT3f: real32_t;
8742}
8743unsafe extern "C" {
8744    pub static kBMATH_SQRT3d: real64_t;
8745}
8746unsafe extern "C" {
8747    pub static kBMATH_DEG2RADf: real32_t;
8748}
8749unsafe extern "C" {
8750    pub static kBMATH_DEG2RADd: real64_t;
8751}
8752unsafe extern "C" {
8753    pub static kBMATH_RAD2DEGf: real32_t;
8754}
8755unsafe extern "C" {
8756    pub static kBMATH_RAD2DEGd: real64_t;
8757}
8758unsafe extern "C" {
8759    pub static kBMATH_INFINITYf: real32_t;
8760}
8761unsafe extern "C" {
8762    pub static kBMATH_INFINITYd: real64_t;
8763}
8764unsafe extern "C" {
8765    pub fn bmem_aligned_malloc(size: u32, align: u32) -> *mut byte_t;
8766}
8767unsafe extern "C" {
8768    pub fn bmem_aligned_realloc(
8769        mem: *mut byte_t,
8770        size: u32,
8771        new_size: u32,
8772        align: u32,
8773    ) -> *mut byte_t;
8774}
8775unsafe extern "C" {
8776    pub fn bmem_free(mem: *mut byte_t);
8777}
8778unsafe extern "C" {
8779    pub fn bmem_set1(dest: *mut byte_t, size: u32, mask: byte_t);
8780}
8781unsafe extern "C" {
8782    pub fn bmem_set4(dest: *mut byte_t, size: u32, mask: *const byte_t);
8783}
8784unsafe extern "C" {
8785    pub fn bmem_set8(dest: *mut byte_t, size: u32, mask: *const byte_t);
8786}
8787unsafe extern "C" {
8788    pub fn bmem_set16(dest: *mut byte_t, size: u32, mask: *const byte_t);
8789}
8790unsafe extern "C" {
8791    pub fn bmem_cmp(mem1: *const byte_t, mem2: *const byte_t, size: u32) -> ::libc::c_int;
8792}
8793unsafe extern "C" {
8794    pub fn bmem_is_zero(mem: *const byte_t, size: u32) -> bool_t;
8795}
8796unsafe extern "C" {
8797    pub fn bmem_set_zero(dest: *mut byte_t, size: u32);
8798}
8799unsafe extern "C" {
8800    pub fn bmem_copy(dest: *mut byte_t, src: *const byte_t, size: u32);
8801}
8802unsafe extern "C" {
8803    pub fn bmem_move(dest: *mut byte_t, src: *const byte_t, size: u32);
8804}
8805unsafe extern "C" {
8806    pub fn bmem_overlaps(
8807        mem1: *const byte_t,
8808        mem2: *const byte_t,
8809        size1: u32,
8810        size2: u32,
8811    ) -> bool_t;
8812}
8813unsafe extern "C" {
8814    pub fn bmem_rev(mem: *mut byte_t, size: u32);
8815}
8816unsafe extern "C" {
8817    pub fn bmem_rev2(mem: *mut byte_t);
8818}
8819unsafe extern "C" {
8820    pub fn bmem_rev4(mem: *mut byte_t);
8821}
8822unsafe extern "C" {
8823    pub fn bmem_rev8(mem: *mut byte_t);
8824}
8825unsafe extern "C" {
8826    pub fn bmem_revcopy(dest: *mut byte_t, src: *const byte_t, size: u32);
8827}
8828unsafe extern "C" {
8829    pub fn bmem_rev_elems_imp(data: *mut byte_t, num_elems: u32, elem_size: u32);
8830}
8831unsafe extern "C" {
8832    pub fn bmem_swap(mem1: *mut byte_t, mem2: *mut byte_t, size: u32);
8833}
8834unsafe extern "C" {
8835    pub fn bmem_shuffle(mem: *mut byte_t, size: u32, esize: u32);
8836}
8837unsafe extern "C" {
8838    pub fn bstd_sprintf(str_: *mut char_t, size: u32, format: *const char_t, ...) -> u32;
8839}
8840unsafe extern "C" {
8841    pub fn bstd_vsprintf(str_: *mut char_t, size: u32, format: *const char_t, args: va_list)
8842        -> u32;
8843}
8844unsafe extern "C" {
8845    pub fn bstd_printf(format: *const char_t, ...) -> u32;
8846}
8847unsafe extern "C" {
8848    pub fn bstd_eprintf(format: *const char_t, ...) -> u32;
8849}
8850unsafe extern "C" {
8851    pub fn bstd_writef(str_: *const char_t) -> u32;
8852}
8853unsafe extern "C" {
8854    pub fn bstd_ewritef(str_: *const char_t) -> u32;
8855}
8856unsafe extern "C" {
8857    pub fn bstd_read(data: *mut byte_t, size: u32, rsize: *mut u32) -> bool_t;
8858}
8859unsafe extern "C" {
8860    pub fn bstd_write(data: *const byte_t, size: u32, wsize: *mut u32) -> bool_t;
8861}
8862unsafe extern "C" {
8863    pub fn bstd_ewrite(data: *const byte_t, size: u32, wsize: *mut u32) -> bool_t;
8864}
8865unsafe extern "C" {
8866    pub fn cassert_set_func(data: *mut ::libc::c_void, func_assert: FPtr_assert);
8867}
8868unsafe extern "C" {
8869    pub fn cassert_imp(cond: bool_t, detail: *const char_t, file: *const char_t, line: u32);
8870}
8871unsafe extern "C" {
8872    pub fn cassert_fatal_imp(cond: bool_t, detail: *const char_t, file: *const char_t, line: u32);
8873}
8874unsafe extern "C" {
8875    pub fn cassert_no_null_imp(
8876        ptr: *mut ::libc::c_void,
8877        detail: *const char_t,
8878        file: *const char_t,
8879        line: u32,
8880    );
8881}
8882unsafe extern "C" {
8883    pub fn cassert_no_nullf_imp(
8884        ptr: ::core::option::Option<unsafe extern "C" fn()>,
8885        detail: *const char_t,
8886        file: *const char_t,
8887        line: u32,
8888    );
8889}
8890unsafe extern "C" {
8891    pub fn cassert_default_imp(file: *const char_t, line: u32);
8892}
8893unsafe extern "C" {
8894    pub fn ptr_dget_imp(dptr: *mut *mut ::libc::c_void) -> *mut ::libc::c_void;
8895}
8896unsafe extern "C" {
8897    pub fn ptr_dget_no_null_imp(dptr: *mut *mut ::libc::c_void) -> *mut ::libc::c_void;
8898}
8899unsafe extern "C" {
8900    pub fn ptr_destopt_imp(dptr: *mut *mut ::libc::c_void, func_destroy: FPtr_destroy);
8901}
8902unsafe extern "C" {
8903    pub fn ptr_copyopt_imp(ptr: *mut ::libc::c_void, func_copy: FPtr_copy) -> *mut ::libc::c_void;
8904}
8905unsafe extern "C" {
8906    pub fn min_u32(v1: u32, v2: u32) -> u32;
8907}
8908unsafe extern "C" {
8909    pub fn min_r32(v1: real32_t, v2: real32_t) -> real32_t;
8910}
8911unsafe extern "C" {
8912    pub fn min_r64(v1: real64_t, v2: real64_t) -> real64_t;
8913}
8914unsafe extern "C" {
8915    pub fn max_u32(v1: u32, v2: u32) -> u32;
8916}
8917unsafe extern "C" {
8918    pub fn max_r32(v1: real32_t, v2: real32_t) -> real32_t;
8919}
8920unsafe extern "C" {
8921    pub fn max_r64(v1: real64_t, v2: real64_t) -> real64_t;
8922}
8923unsafe extern "C" {
8924    pub fn abs_r32(v: real32_t) -> real32_t;
8925}
8926unsafe extern "C" {
8927    pub fn to_u8(v: u32) -> u8;
8928}
8929unsafe extern "C" {
8930    pub fn unicode_convers(
8931        from_str: *const char_t,
8932        to_str: *mut char_t,
8933        from: unicode_t,
8934        to: unicode_t,
8935        osize: u32,
8936    ) -> u32;
8937}
8938unsafe extern "C" {
8939    pub fn unicode_convers_n(
8940        from_str: *const char_t,
8941        to_str: *mut char_t,
8942        from: unicode_t,
8943        to: unicode_t,
8944        isize_: u32,
8945        osize: u32,
8946    ) -> u32;
8947}
8948unsafe extern "C" {
8949    pub fn unicode_convers_nbytes(str_: *const char_t, from: unicode_t, to: unicode_t) -> u32;
8950}
8951unsafe extern "C" {
8952    pub fn unicode_convers_nbytes_n(
8953        str_: *const char_t,
8954        isize_: u32,
8955        from: unicode_t,
8956        to: unicode_t,
8957    ) -> u32;
8958}
8959unsafe extern "C" {
8960    pub fn unicode_nbytes(str_: *const char_t, format: unicode_t) -> u32;
8961}
8962unsafe extern "C" {
8963    pub fn unicode_nchars(str_: *const char_t, format: unicode_t) -> u32;
8964}
8965unsafe extern "C" {
8966    pub fn unicode_to_u32(str_: *const char_t, format: unicode_t) -> u32;
8967}
8968unsafe extern "C" {
8969    pub fn unicode_to_u32b(str_: *const char_t, format: unicode_t, bytes: *mut u32) -> u32;
8970}
8971unsafe extern "C" {
8972    pub fn unicode_to_char(codepoint: u32, str_: *mut char_t, format: unicode_t) -> u32;
8973}
8974unsafe extern "C" {
8975    pub fn unicode_valid_str(str_: *const char_t, format: unicode_t) -> bool_t;
8976}
8977unsafe extern "C" {
8978    pub fn unicode_valid_str_n(str_: *const char_t, size: u32, format: unicode_t) -> bool_t;
8979}
8980unsafe extern "C" {
8981    pub fn unicode_valid(codepoint: u32) -> bool_t;
8982}
8983unsafe extern "C" {
8984    pub fn unicode_next(str_: *const char_t, format: unicode_t) -> *const char_t;
8985}
8986unsafe extern "C" {
8987    pub fn unicode_back(str_: *const char_t, format: unicode_t) -> *const char_t;
8988}
8989unsafe extern "C" {
8990    pub fn unicode_move(str_: *const char_t, nchars: u32, format: unicode_t) -> *const char_t;
8991}
8992unsafe extern "C" {
8993    pub fn unicode_isascii(codepoint: u32) -> bool_t;
8994}
8995unsafe extern "C" {
8996    pub fn unicode_isalnum(codepoint: u32) -> bool_t;
8997}
8998unsafe extern "C" {
8999    pub fn unicode_isalpha(codepoint: u32) -> bool_t;
9000}
9001unsafe extern "C" {
9002    pub fn unicode_iscntrl(codepoint: u32) -> bool_t;
9003}
9004unsafe extern "C" {
9005    pub fn unicode_isdigit(codepoint: u32) -> bool_t;
9006}
9007unsafe extern "C" {
9008    pub fn unicode_isgraph(codepoint: u32) -> bool_t;
9009}
9010unsafe extern "C" {
9011    pub fn unicode_isprint(codepoint: u32) -> bool_t;
9012}
9013unsafe extern "C" {
9014    pub fn unicode_ispunct(codepoint: u32) -> bool_t;
9015}
9016unsafe extern "C" {
9017    pub fn unicode_isspace(codepoint: u32) -> bool_t;
9018}
9019unsafe extern "C" {
9020    pub fn unicode_isxdigit(codepoint: u32) -> bool_t;
9021}
9022unsafe extern "C" {
9023    pub fn unicode_islower(codepoint: u32) -> bool_t;
9024}
9025unsafe extern "C" {
9026    pub fn unicode_isupper(codepoint: u32) -> bool_t;
9027}
9028unsafe extern "C" {
9029    pub fn unicode_tolower(codepoint: u32) -> u32;
9030}
9031unsafe extern "C" {
9032    pub fn unicode_toupper(codepoint: u32) -> u32;
9033}
9034#[repr(C)]
9035#[derive(Debug, Copy, Clone)]
9036pub struct __crt_locale_data {
9037    pub _address: u8,
9038}
9039#[repr(C)]
9040#[derive(Debug, Copy, Clone)]
9041pub struct __crt_multibyte_data {
9042    pub _address: u8,
9043}