gobject_2_0_sys/
lib.rs

1// This file was generated by grust-gen 0.2.1
2
3#![crate_name = "gobject_2_0_sys"]
4#![crate_type = "lib"]
5#![allow(overflowing_literals)]  // for GParamFlags::Deprecated
6
7extern crate gtypes;
8extern crate glib_2_0_sys as glib;
9
10use gtypes::*;
11
12#[repr(C)]
13pub struct GClosure {
14    // A group of bit fields in the original definition here
15    flags: u32,
16    marshal: Option<extern "C" fn (closure: *mut GClosure,
17                                   return_value: *mut GValue,
18                                   n_param_values: guint,
19                                   param_values: *const GValue,
20                                   invocation_hint: gpointer,
21                                   marshal_data: gpointer)>,
22    pub data: gpointer,
23    notifiers: *mut GClosureNotifyData
24}
25
26#[repr(C)]
27pub struct GParamSpecString {
28    pub parent_instance: GParamSpec,
29    pub default_value: *mut gchar,
30    pub cset_first: *mut gchar,
31    pub cset_nth: *mut gchar,
32    pub substitutor: gchar,
33    // Two single-bit fields in the C definition here
34    flags: u8
35}
36
37#[repr(C)]
38pub struct GTypeCValue(i64);
39
40#[repr(C)]
41pub struct GWeakRef(gpointer);
42
43#[repr(C)]
44pub struct GValue {
45    pub g_type: GType,
46    data: [u64; 2]
47}
48
49pub type GSignalCMarshaller = GClosureMarshal;
50
51pub type GBaseFinalizeFunc = extern "C" fn (gpointer);
52
53pub type GBaseInitFunc = extern "C" fn (gpointer);
54
55pub enum GBinding { }
56
57#[repr(C)]
58pub enum GBindingFlags {
59    Default = 0,
60    Bidirectional = 1,
61    SyncCreate = 2,
62    InvertBoolean = 4,
63}
64pub const G_BINDING_DEFAULT: guint = 0;
65pub const G_BINDING_BIDIRECTIONAL: guint = 1;
66pub const G_BINDING_SYNC_CREATE: guint = 2;
67pub const G_BINDING_INVERT_BOOLEAN: guint = 4;
68
69pub type GBindingTransformFunc = extern "C" fn (*mut GBinding, *const GValue, *mut GValue, gpointer) -> gboolean;
70
71pub type GBoxedCopyFunc = extern "C" fn (gpointer) -> gpointer;
72
73pub type GBoxedFreeFunc = extern "C" fn (gpointer);
74
75#[repr(C)]
76pub struct GCClosure {
77    pub closure: GClosure,
78    pub callback: gpointer,
79}
80
81pub type GCallback = extern "C" fn ();
82
83pub type GClassFinalizeFunc = extern "C" fn (gpointer, gpointer);
84
85pub type GClassInitFunc = extern "C" fn (gpointer, gpointer);
86
87pub type GClosureMarshal = extern "C" fn (*mut GClosure, *mut GValue, guint, *mut GValue, gpointer, gpointer);
88
89pub type GClosureNotify = extern "C" fn (gpointer, *mut GClosure);
90
91#[repr(C)]
92pub struct GClosureNotifyData {
93    pub data: gpointer,
94    pub notify: Option<GClosureNotify>,
95}
96
97#[repr(C)]
98pub enum GConnectFlags {
99    After = 1,
100    Swapped = 2,
101}
102pub const G_CONNECT_AFTER: guint = 1;
103pub const G_CONNECT_SWAPPED: guint = 2;
104
105#[repr(C)]
106pub struct GEnumClass {
107    pub g_type_class: GTypeClass,
108    pub minimum: gint,
109    pub maximum: gint,
110    pub n_values: guint,
111    pub values: *mut GEnumValue,
112}
113
114#[repr(C)]
115pub struct GEnumValue {
116    pub value: gint,
117    pub value_name: *const gchar,
118    pub value_nick: *const gchar,
119}
120
121#[repr(C)]
122pub struct GFlagsClass {
123    pub g_type_class: GTypeClass,
124    pub mask: guint,
125    pub n_values: guint,
126    pub values: *mut GFlagsValue,
127}
128
129#[repr(C)]
130pub struct GFlagsValue {
131    pub value: guint,
132    pub value_name: *const gchar,
133    pub value_nick: *const gchar,
134}
135
136#[repr(C)]
137pub struct GInitiallyUnowned {
138    pub g_type_instance: GTypeInstance,
139    ref_count: guint,
140    qdata: *mut glib::GData,
141}
142
143#[repr(C)]
144pub struct GInitiallyUnownedClass {
145    pub g_type_class: GTypeClass,
146    construct_properties: *mut glib::GSList,
147    pub constructor: Option<extern "C" fn (GType, guint, *mut GObjectConstructParam) -> *mut GObject>,
148    pub set_property: Option<extern "C" fn (*mut GObject, guint, *const GValue, *mut GParamSpec)>,
149    pub get_property: Option<extern "C" fn (*mut GObject, guint, *mut GValue, *mut GParamSpec)>,
150    pub dispose: Option<extern "C" fn (*mut GObject)>,
151    pub finalize: Option<extern "C" fn (*mut GObject)>,
152    pub dispatch_properties_changed: Option<extern "C" fn (*mut GObject, guint, *mut *mut GParamSpec)>,
153    pub notify: Option<extern "C" fn (*mut GObject, *mut GParamSpec)>,
154    pub constructed: Option<extern "C" fn (*mut GObject)>,
155    flags: gsize,
156    pdummy: [gpointer; 6],
157}
158
159pub type GInstanceInitFunc = extern "C" fn (*mut GTypeInstance, gpointer);
160
161pub type GInterfaceFinalizeFunc = extern "C" fn (gpointer, gpointer);
162
163#[repr(C)]
164pub struct GInterfaceInfo {
165    pub interface_init: Option<GInterfaceInitFunc>,
166    pub interface_finalize: Option<GInterfaceFinalizeFunc>,
167    pub interface_data: gpointer,
168}
169
170pub type GInterfaceInitFunc = extern "C" fn (gpointer, gpointer);
171
172#[repr(C)]
173pub struct GObject {
174    pub g_type_instance: GTypeInstance,
175    ref_count: guint,
176    qdata: *mut glib::GData,
177}
178
179#[repr(C)]
180pub struct GObjectClass {
181    pub g_type_class: GTypeClass,
182    construct_properties: *mut glib::GSList,
183    pub constructor: Option<extern "C" fn (GType, guint, *mut GObjectConstructParam) -> *mut GObject>,
184    pub set_property: Option<extern "C" fn (*mut GObject, guint, *const GValue, *mut GParamSpec)>,
185    pub get_property: Option<extern "C" fn (*mut GObject, guint, *mut GValue, *mut GParamSpec)>,
186    pub dispose: Option<extern "C" fn (*mut GObject)>,
187    pub finalize: Option<extern "C" fn (*mut GObject)>,
188    pub dispatch_properties_changed: Option<extern "C" fn (*mut GObject, guint, *mut *mut GParamSpec)>,
189    pub notify: Option<extern "C" fn (*mut GObject, *mut GParamSpec)>,
190    pub constructed: Option<extern "C" fn (*mut GObject)>,
191    flags: gsize,
192    pdummy: [gpointer; 6],
193}
194
195#[repr(C)]
196pub struct GObjectConstructParam {
197    pub pspec: *mut GParamSpec,
198    pub value: *mut GValue,
199}
200
201pub type GObjectFinalizeFunc = extern "C" fn (*mut GObject);
202
203pub type GObjectGetPropertyFunc = extern "C" fn (*mut GObject, guint, *mut GValue, *mut GParamSpec);
204
205pub type GObjectSetPropertyFunc = extern "C" fn (*mut GObject, guint, *const GValue, *mut GParamSpec);
206
207pub const G_PARAM_MASK: gint = 255;
208
209pub const G_PARAM_STATIC_STRINGS: gint = 0;
210
211pub const G_PARAM_USER_SHIFT: gint = 8;
212
213#[repr(C)]
214pub enum GParamFlags {
215    Readable = 1,
216    Writable = 2,
217    Readwrite = 3,
218    Construct = 4,
219    ConstructOnly = 8,
220    LaxValidation = 16,
221    StaticName = 32,
222    StaticNick = 64,
223    StaticBlurb = 128,
224    ExplicitNotify = 1073741824,
225    Deprecated = 2147483648,
226}
227pub const G_PARAM_READABLE: guint = 1;
228pub const G_PARAM_WRITABLE: guint = 2;
229pub const G_PARAM_READWRITE: guint = 3;
230pub const G_PARAM_CONSTRUCT: guint = 4;
231pub const G_PARAM_CONSTRUCT_ONLY: guint = 8;
232pub const G_PARAM_LAX_VALIDATION: guint = 16;
233pub const G_PARAM_STATIC_NAME: guint = 32;
234pub const G_PARAM_PRIVATE: guint = 32;
235pub const G_PARAM_STATIC_NICK: guint = 64;
236pub const G_PARAM_STATIC_BLURB: guint = 128;
237pub const G_PARAM_EXPLICIT_NOTIFY: guint = 1073741824;
238pub const G_PARAM_DEPRECATED: guint = 2147483648;
239
240#[repr(C)]
241pub struct GParamSpec {
242    pub g_type_instance: GTypeInstance,
243    pub name: *const gchar,
244    pub flags: GParamFlags,
245    pub value_type: GType,
246    pub owner_type: GType,
247    _nick: *mut gchar,
248    _blurb: *mut gchar,
249    qdata: *mut glib::GData,
250    ref_count: guint,
251    param_id: guint,
252}
253
254#[repr(C)]
255pub struct GParamSpecBoolean {
256    pub parent_instance: GParamSpec,
257    pub default_value: gboolean,
258}
259
260#[repr(C)]
261pub struct GParamSpecBoxed {
262    pub parent_instance: GParamSpec,
263}
264
265#[repr(C)]
266pub struct GParamSpecChar {
267    pub parent_instance: GParamSpec,
268    pub minimum: i8,
269    pub maximum: i8,
270    pub default_value: i8,
271}
272
273#[repr(C)]
274pub struct GParamSpecClass {
275    pub g_type_class: GTypeClass,
276    pub value_type: GType,
277    pub finalize: Option<extern "C" fn (*mut GParamSpec)>,
278    pub value_set_default: Option<extern "C" fn (*mut GParamSpec, *mut GValue)>,
279    pub value_validate: Option<extern "C" fn (*mut GParamSpec, *mut GValue) -> gboolean>,
280    pub values_cmp: Option<extern "C" fn (*mut GParamSpec, *const GValue, *const GValue) -> gint>,
281    dummy: [gpointer; 4],
282}
283
284#[repr(C)]
285pub struct GParamSpecDouble {
286    pub parent_instance: GParamSpec,
287    pub minimum: gdouble,
288    pub maximum: gdouble,
289    pub default_value: gdouble,
290    pub epsilon: gdouble,
291}
292
293#[repr(C)]
294pub struct GParamSpecEnum {
295    pub parent_instance: GParamSpec,
296    pub enum_class: *mut GEnumClass,
297    pub default_value: gint,
298}
299
300#[repr(C)]
301pub struct GParamSpecFlags {
302    pub parent_instance: GParamSpec,
303    pub flags_class: *mut GFlagsClass,
304    pub default_value: guint,
305}
306
307#[repr(C)]
308pub struct GParamSpecFloat {
309    pub parent_instance: GParamSpec,
310    pub minimum: gfloat,
311    pub maximum: gfloat,
312    pub default_value: gfloat,
313    pub epsilon: gfloat,
314}
315
316#[repr(C)]
317pub struct GParamSpecGType {
318    pub parent_instance: GParamSpec,
319    pub is_a_type: GType,
320}
321
322#[repr(C)]
323pub struct GParamSpecInt {
324    pub parent_instance: GParamSpec,
325    pub minimum: gint,
326    pub maximum: gint,
327    pub default_value: gint,
328}
329
330#[repr(C)]
331pub struct GParamSpecInt64 {
332    pub parent_instance: GParamSpec,
333    pub minimum: i64,
334    pub maximum: i64,
335    pub default_value: i64,
336}
337
338#[repr(C)]
339pub struct GParamSpecLong {
340    pub parent_instance: GParamSpec,
341    pub minimum: glong,
342    pub maximum: glong,
343    pub default_value: glong,
344}
345
346#[repr(C)]
347pub struct GParamSpecObject {
348    pub parent_instance: GParamSpec,
349}
350
351#[repr(C)]
352pub struct GParamSpecOverride {
353    parent_instance: GParamSpec,
354    overridden: *mut GParamSpec,
355}
356
357#[repr(C)]
358pub struct GParamSpecParam {
359    pub parent_instance: GParamSpec,
360}
361
362#[repr(C)]
363pub struct GParamSpecPointer {
364    pub parent_instance: GParamSpec,
365}
366
367#[repr(C)]
368pub struct GParamSpecPool(gpointer);
369
370#[repr(C)]
371pub struct GParamSpecTypeInfo {
372    pub instance_size: u16,
373    pub n_preallocs: u16,
374    pub instance_init: Option<extern "C" fn (*mut GParamSpec)>,
375    pub value_type: GType,
376    pub finalize: Option<extern "C" fn (*mut GParamSpec)>,
377    pub value_set_default: Option<extern "C" fn (*mut GParamSpec, *mut GValue)>,
378    pub value_validate: Option<extern "C" fn (*mut GParamSpec, *mut GValue) -> gboolean>,
379    pub values_cmp: Option<extern "C" fn (*mut GParamSpec, *const GValue, *const GValue) -> gint>,
380}
381
382#[repr(C)]
383pub struct GParamSpecUChar {
384    pub parent_instance: GParamSpec,
385    pub minimum: u8,
386    pub maximum: u8,
387    pub default_value: u8,
388}
389
390#[repr(C)]
391pub struct GParamSpecUInt {
392    pub parent_instance: GParamSpec,
393    pub minimum: guint,
394    pub maximum: guint,
395    pub default_value: guint,
396}
397
398#[repr(C)]
399pub struct GParamSpecUInt64 {
400    pub parent_instance: GParamSpec,
401    pub minimum: u64,
402    pub maximum: u64,
403    pub default_value: u64,
404}
405
406#[repr(C)]
407pub struct GParamSpecULong {
408    pub parent_instance: GParamSpec,
409    pub minimum: gulong,
410    pub maximum: gulong,
411    pub default_value: gulong,
412}
413
414#[repr(C)]
415pub struct GParamSpecUnichar {
416    pub parent_instance: GParamSpec,
417    pub default_value: gunichar,
418}
419
420#[repr(C)]
421pub struct GParamSpecValueArray {
422    pub parent_instance: GParamSpec,
423    pub element_spec: *mut GParamSpec,
424    pub fixed_n_elements: guint,
425}
426
427#[repr(C)]
428pub struct GParamSpecVariant {
429    pub parent_instance: GParamSpec,
430    pub type_: *mut glib::GVariantType,
431    pub default_value: *mut glib::GVariant,
432    padding: [gpointer; 4],
433}
434
435#[repr(C)]
436pub struct GParameter {
437    pub name: *const gchar,
438    pub value: GValue,
439}
440
441pub const G_SIGNAL_FLAGS_MASK: gint = 511;
442
443pub const G_SIGNAL_MATCH_MASK: gint = 63;
444
445pub type GSignalAccumulator = extern "C" fn (*mut GSignalInvocationHint, *mut GValue, *const GValue, gpointer) -> gboolean;
446
447pub type GSignalEmissionHook = extern "C" fn (*mut GSignalInvocationHint, guint, *mut GValue, gpointer) -> gboolean;
448
449#[repr(C)]
450pub enum GSignalFlags {
451    RunFirst = 1,
452    RunLast = 2,
453    RunCleanup = 4,
454    NoRecurse = 8,
455    Detailed = 16,
456    Action = 32,
457    NoHooks = 64,
458    MustCollect = 128,
459    Deprecated = 256,
460}
461pub const G_SIGNAL_RUN_FIRST: guint = 1;
462pub const G_SIGNAL_RUN_LAST: guint = 2;
463pub const G_SIGNAL_RUN_CLEANUP: guint = 4;
464pub const G_SIGNAL_NO_RECURSE: guint = 8;
465pub const G_SIGNAL_DETAILED: guint = 16;
466pub const G_SIGNAL_ACTION: guint = 32;
467pub const G_SIGNAL_NO_HOOKS: guint = 64;
468pub const G_SIGNAL_MUST_COLLECT: guint = 128;
469pub const G_SIGNAL_DEPRECATED: guint = 256;
470
471#[repr(C)]
472pub struct GSignalInvocationHint {
473    pub signal_id: guint,
474    pub detail: glib::GQuark,
475    pub run_type: GSignalFlags,
476}
477
478#[repr(C)]
479pub enum GSignalMatchType {
480    Id = 1,
481    Detail = 2,
482    Closure = 4,
483    Func = 8,
484    Data = 16,
485    Unblocked = 32,
486}
487pub const G_SIGNAL_MATCH_ID: guint = 1;
488pub const G_SIGNAL_MATCH_DETAIL: guint = 2;
489pub const G_SIGNAL_MATCH_CLOSURE: guint = 4;
490pub const G_SIGNAL_MATCH_FUNC: guint = 8;
491pub const G_SIGNAL_MATCH_DATA: guint = 16;
492pub const G_SIGNAL_MATCH_UNBLOCKED: guint = 32;
493
494#[repr(C)]
495pub struct GSignalQuery {
496    pub signal_id: guint,
497    pub signal_name: *const gchar,
498    pub itype: GType,
499    pub signal_flags: GSignalFlags,
500    pub return_type: GType,
501    pub n_params: guint,
502    pub param_types: *mut GType,
503}
504
505pub const G_TYPE_FLAG_RESERVED_ID_BIT: GType = 1;
506
507pub const G_TYPE_FUNDAMENTAL_MAX: gint = 255;
508
509pub const G_TYPE_FUNDAMENTAL_SHIFT: gint = 2;
510
511pub const G_TYPE_RESERVED_BSE_FIRST: gint = 32;
512
513pub const G_TYPE_RESERVED_BSE_LAST: gint = 48;
514
515pub const G_TYPE_RESERVED_GLIB_FIRST: gint = 22;
516
517pub const G_TYPE_RESERVED_GLIB_LAST: gint = 31;
518
519pub const G_TYPE_RESERVED_USER_FIRST: gint = 49;
520
521pub type GToggleNotify = extern "C" fn (gpointer, *mut GObject, gboolean);
522
523#[repr(C)]
524pub struct GTypeClass {
525    g_type: GType,
526}
527
528pub type GTypeClassCacheFunc = extern "C" fn (gpointer, *mut GTypeClass) -> gboolean;
529
530#[repr(C)]
531pub enum GTypeDebugFlags {
532    None = 0,
533    Objects = 1,
534    Signals = 2,
535    InstanceCount = 4,
536    Mask = 7,
537}
538pub const G_TYPE_DEBUG_NONE: guint = 0;
539pub const G_TYPE_DEBUG_OBJECTS: guint = 1;
540pub const G_TYPE_DEBUG_SIGNALS: guint = 2;
541pub const G_TYPE_DEBUG_INSTANCE_COUNT: guint = 4;
542pub const G_TYPE_DEBUG_MASK: guint = 7;
543
544#[repr(C)]
545pub enum GTypeFlags {
546    Abstract = 16,
547    ValueAbstract = 32,
548}
549pub const G_TYPE_FLAG_ABSTRACT: guint = 16;
550pub const G_TYPE_FLAG_VALUE_ABSTRACT: guint = 32;
551
552#[repr(C)]
553pub enum GTypeFundamentalFlags {
554    Classed = 1,
555    Instantiatable = 2,
556    Derivable = 4,
557    DeepDerivable = 8,
558}
559pub const G_TYPE_FLAG_CLASSED: guint = 1;
560pub const G_TYPE_FLAG_INSTANTIATABLE: guint = 2;
561pub const G_TYPE_FLAG_DERIVABLE: guint = 4;
562pub const G_TYPE_FLAG_DEEP_DERIVABLE: guint = 8;
563
564#[repr(C)]
565pub struct GTypeFundamentalInfo {
566    pub type_flags: GTypeFundamentalFlags,
567}
568
569#[repr(C)]
570pub struct GTypeInfo {
571    pub class_size: u16,
572    pub base_init: Option<GBaseInitFunc>,
573    pub base_finalize: Option<GBaseFinalizeFunc>,
574    pub class_init: Option<GClassInitFunc>,
575    pub class_finalize: Option<GClassFinalizeFunc>,
576    pub class_data: gconstpointer,
577    pub instance_size: u16,
578    pub n_preallocs: u16,
579    pub instance_init: Option<GInstanceInitFunc>,
580    pub value_table: *const GTypeValueTable,
581}
582
583#[repr(C)]
584pub struct GTypeInstance {
585    g_class: *mut GTypeClass,
586}
587
588#[repr(C)]
589pub struct GTypeInterface {
590    g_type: GType,
591    g_instance_type: GType,
592}
593
594pub type GTypeInterfaceCheckFunc = extern "C" fn (gpointer, gpointer);
595
596#[repr(C)]
597pub struct GTypeModule {
598    pub parent_instance: GObject,
599    pub use_count: guint,
600    pub type_infos: *mut glib::GSList,
601    pub interface_infos: *mut glib::GSList,
602    pub name: *mut gchar,
603}
604
605#[repr(C)]
606pub struct GTypeModuleClass {
607    pub parent_class: GObjectClass,
608    pub load: Option<extern "C" fn (*mut GTypeModule) -> gboolean>,
609    pub unload: Option<extern "C" fn (*mut GTypeModule)>,
610    pub reserved1: Option<extern "C" fn ()>,
611    pub reserved2: Option<extern "C" fn ()>,
612    pub reserved3: Option<extern "C" fn ()>,
613    pub reserved4: Option<extern "C" fn ()>,
614}
615
616pub enum GTypePlugin { }
617
618#[repr(C)]
619pub struct GTypePluginClass {
620    base_iface: GTypeInterface,
621    pub use_plugin: Option<GTypePluginUse>,
622    pub unuse_plugin: Option<GTypePluginUnuse>,
623    pub complete_type_info: Option<GTypePluginCompleteTypeInfo>,
624    pub complete_interface_info: Option<GTypePluginCompleteInterfaceInfo>,
625}
626
627pub type GTypePluginCompleteInterfaceInfo = extern "C" fn (*mut GTypePlugin, GType, GType, *mut GInterfaceInfo);
628
629pub type GTypePluginCompleteTypeInfo = extern "C" fn (*mut GTypePlugin, GType, *mut GTypeInfo, *mut GTypeValueTable);
630
631pub type GTypePluginUnuse = extern "C" fn (*mut GTypePlugin);
632
633pub type GTypePluginUse = extern "C" fn (*mut GTypePlugin);
634
635#[repr(C)]
636pub struct GTypeQuery {
637    pub type_: GType,
638    pub type_name: *const gchar,
639    pub class_size: guint,
640    pub instance_size: guint,
641}
642
643#[repr(C)]
644pub struct GTypeValueTable {
645    pub value_init: Option<extern "C" fn (*mut GValue)>,
646    pub value_free: Option<extern "C" fn (*mut GValue)>,
647    pub value_copy: Option<extern "C" fn (*const GValue, *mut GValue)>,
648    pub value_peek_pointer: Option<extern "C" fn (*const GValue) -> gpointer>,
649    pub collect_format: *const gchar,
650    pub collect_value: Option<extern "C" fn (*mut GValue, guint, *mut GTypeCValue, guint) -> *mut gchar>,
651    pub lcopy_format: *const gchar,
652    pub lcopy_value: Option<extern "C" fn (*const GValue, guint, *mut GTypeCValue, guint) -> *mut gchar>,
653}
654
655pub const G_VALUE_COLLECT_FORMAT_MAX_LENGTH: gint = 8;
656
657pub const G_VALUE_NOCOPY_CONTENTS: gint = 134217728;
658
659#[repr(C)]
660pub struct GValueArray {
661    pub n_values: guint,
662    pub values: *mut GValue,
663    n_prealloced: guint,
664}
665
666pub type GValueTransform = extern "C" fn (*const GValue, *mut GValue);
667
668pub type GWeakNotify = extern "C" fn (gpointer, *mut GObject);
669
670// GType functions
671extern {
672    pub fn g_binding_flags_get_type() -> GType;
673    pub fn g_binding_get_type() -> GType;
674    pub fn g_closure_get_type() -> GType;
675    pub fn g_gtype_get_type() -> GType;
676    pub fn g_initially_unowned_get_type() -> GType;
677    pub fn g_object_get_type() -> GType;
678    pub fn g_type_module_get_type() -> GType;
679    pub fn g_type_plugin_get_type() -> GType;
680    pub fn g_value_array_get_type() -> GType;
681    pub fn g_value_get_type() -> GType;
682}
683
684extern {
685    pub fn g_binding_get_flags(binding: *mut GBinding) -> GBindingFlags;
686    pub fn g_binding_get_source(binding: *mut GBinding) -> *mut GObject;
687    pub fn g_binding_get_source_property(binding: *mut GBinding) -> *const gchar;
688    pub fn g_binding_get_target(binding: *mut GBinding) -> *mut GObject;
689    pub fn g_binding_get_target_property(binding: *mut GBinding) -> *const gchar;
690    pub fn g_binding_unbind(binding: *mut GBinding);
691    pub fn g_boxed_copy(boxed_type: GType, src_boxed: gconstpointer) -> gpointer;
692    pub fn g_boxed_free(boxed_type: GType, boxed: gpointer);
693    pub fn g_boxed_type_register_static(name: *const gchar, boxed_copy: GBoxedCopyFunc, boxed_free: GBoxedFreeFunc) -> GType;
694    pub fn g_cclosure_marshal_BOOLEAN__BOXED_BOXED(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
695    pub fn g_cclosure_marshal_BOOLEAN__FLAGS(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
696    pub fn g_cclosure_marshal_STRING__OBJECT_POINTER(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
697    pub fn g_cclosure_marshal_VOID__BOOLEAN(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
698    pub fn g_cclosure_marshal_VOID__BOXED(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
699    pub fn g_cclosure_marshal_VOID__CHAR(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
700    pub fn g_cclosure_marshal_VOID__DOUBLE(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
701    pub fn g_cclosure_marshal_VOID__ENUM(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
702    pub fn g_cclosure_marshal_VOID__FLAGS(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
703    pub fn g_cclosure_marshal_VOID__FLOAT(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
704    pub fn g_cclosure_marshal_VOID__INT(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
705    pub fn g_cclosure_marshal_VOID__LONG(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
706    pub fn g_cclosure_marshal_VOID__OBJECT(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
707    pub fn g_cclosure_marshal_VOID__PARAM(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
708    pub fn g_cclosure_marshal_VOID__POINTER(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
709    pub fn g_cclosure_marshal_VOID__STRING(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
710    pub fn g_cclosure_marshal_VOID__UCHAR(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
711    pub fn g_cclosure_marshal_VOID__UINT(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
712    pub fn g_cclosure_marshal_VOID__UINT_POINTER(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
713    pub fn g_cclosure_marshal_VOID__ULONG(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
714    pub fn g_cclosure_marshal_VOID__VARIANT(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
715    pub fn g_cclosure_marshal_VOID__VOID(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
716    pub fn g_cclosure_marshal_generic(closure: *mut GClosure, return_gvalue: *mut GValue, n_param_values: guint, param_values: *const GValue, invocation_hint: gpointer, marshal_data: gpointer);
717    pub fn g_cclosure_new(callback_func: Option<GCallback>, user_data: gpointer, destroy_data: GClosureNotify) -> *mut GClosure;
718    pub fn g_cclosure_new_object(callback_func: GCallback, object: *mut GObject) -> *mut GClosure;
719    pub fn g_cclosure_new_object_swap(callback_func: GCallback, object: *mut GObject) -> *mut GClosure;
720    pub fn g_cclosure_new_swap(callback_func: Option<GCallback>, user_data: gpointer, destroy_data: GClosureNotify) -> *mut GClosure;
721    pub fn g_clear_object(object_ptr: *mut *mut GObject);
722    pub fn g_closure_add_finalize_notifier(closure: *mut GClosure, notify_data: gpointer, notify_func: Option<GClosureNotify>);
723    pub fn g_closure_add_invalidate_notifier(closure: *mut GClosure, notify_data: gpointer, notify_func: Option<GClosureNotify>);
724    pub fn g_closure_add_marshal_guards(closure: *mut GClosure, pre_marshal_data: gpointer, pre_marshal_notify: Option<GClosureNotify>, post_marshal_data: gpointer, post_marshal_notify: Option<GClosureNotify>);
725    pub fn g_closure_invalidate(closure: *mut GClosure);
726    pub fn g_closure_invoke(closure: *mut GClosure, return_value: *mut GValue, n_param_values: guint, param_values: *mut GValue, invocation_hint: gpointer);
727    pub fn g_closure_new_object(sizeof_closure: guint, object: *mut GObject) -> *mut GClosure;
728    pub fn g_closure_new_simple(sizeof_closure: guint, data: gpointer) -> *mut GClosure;
729    pub fn g_closure_ref(closure: *mut GClosure) -> *mut GClosure;
730    pub fn g_closure_remove_finalize_notifier(closure: *mut GClosure, notify_data: gpointer, notify_func: GClosureNotify);
731    pub fn g_closure_remove_invalidate_notifier(closure: *mut GClosure, notify_data: gpointer, notify_func: GClosureNotify);
732    pub fn g_closure_set_marshal(closure: *mut GClosure, marshal: GClosureMarshal);
733    pub fn g_closure_set_meta_marshal(closure: *mut GClosure, marshal_data: gpointer, meta_marshal: Option<GClosureMarshal>);
734    pub fn g_closure_sink(closure: *mut GClosure);
735    pub fn g_closure_unref(closure: *mut GClosure);
736    pub fn g_enum_complete_type_info(g_enum_type: GType, info: *mut GTypeInfo, const_values: *const GEnumValue);
737    pub fn g_enum_get_value(enum_class: *mut GEnumClass, value: gint) -> *mut GEnumValue;
738    pub fn g_enum_get_value_by_name(enum_class: *mut GEnumClass, name: *const gchar) -> *mut GEnumValue;
739    pub fn g_enum_get_value_by_nick(enum_class: *mut GEnumClass, nick: *const gchar) -> *mut GEnumValue;
740    pub fn g_enum_register_static(name: *const gchar, const_static_values: *const GEnumValue) -> GType;
741    pub fn g_flags_complete_type_info(g_flags_type: GType, info: *mut GTypeInfo, const_values: *const GFlagsValue);
742    pub fn g_flags_get_first_value(flags_class: *mut GFlagsClass, value: guint) -> *mut GFlagsValue;
743    pub fn g_flags_get_value_by_name(flags_class: *mut GFlagsClass, name: *const gchar) -> *mut GFlagsValue;
744    pub fn g_flags_get_value_by_nick(flags_class: *mut GFlagsClass, nick: *const gchar) -> *mut GFlagsValue;
745    pub fn g_flags_register_static(name: *const gchar, const_static_values: *const GFlagsValue) -> GType;
746    pub fn g_object_add_toggle_ref(object: *mut GObject, notify: GToggleNotify, data: gpointer);
747    pub fn g_object_add_weak_pointer(object: *mut GObject, weak_pointer_location: *mut gpointer);
748    pub fn g_object_bind_property(source: gpointer, source_property: *const gchar, target: gpointer, target_property: *const gchar, flags: GBindingFlags) -> *mut GBinding;
749    pub fn g_object_bind_property_full(source: gpointer, source_property: *const gchar, target: gpointer, target_property: *const gchar, flags: GBindingFlags, transform_to: Option<GBindingTransformFunc>, transform_from: Option<GBindingTransformFunc>, user_data: gpointer, notify: glib::GDestroyNotify) -> *mut GBinding;
750    pub fn g_object_bind_property_with_closures(source: gpointer, source_property: *const gchar, target: gpointer, target_property: *const gchar, flags: GBindingFlags, transform_to: *mut GClosure, transform_from: *mut GClosure) -> *mut GBinding;
751    pub fn g_object_class_find_property(oclass: *mut GObjectClass, property_name: *const gchar) -> *mut GParamSpec;
752    pub fn g_object_class_install_properties(oclass: *mut GObjectClass, n_pspecs: guint, pspecs: *mut *mut GParamSpec);
753    pub fn g_object_class_install_property(oclass: *mut GObjectClass, property_id: guint, pspec: *mut GParamSpec);
754    pub fn g_object_class_list_properties(oclass: *mut GObjectClass, n_properties: *mut guint) -> *mut *mut GParamSpec;
755    pub fn g_object_class_override_property(oclass: *mut GObjectClass, property_id: guint, name: *const gchar);
756    pub fn g_object_compat_control(what: gsize, data: gpointer) -> gsize;
757    pub fn g_object_connect(object: gpointer, signal_spec: *const gchar, ...) -> gpointer;
758    pub fn g_object_disconnect(object: gpointer, signal_spec: *const gchar, ...);
759    pub fn g_object_dup_data(object: *mut GObject, key: *const gchar, dup_func: Option<glib::GDuplicateFunc>, user_data: gpointer) -> gpointer;
760    pub fn g_object_dup_qdata(object: *mut GObject, quark: glib::GQuark, dup_func: Option<glib::GDuplicateFunc>, user_data: gpointer) -> gpointer;
761    pub fn g_object_force_floating(object: *mut GObject);
762    pub fn g_object_freeze_notify(object: *mut GObject);
763    pub fn g_object_get(object: gpointer, first_property_name: *const gchar, ...);
764    pub fn g_object_get_data(object: *mut GObject, key: *const gchar) -> gpointer;
765    pub fn g_object_get_property(object: *mut GObject, property_name: *const gchar, value: *mut GValue);
766    pub fn g_object_get_qdata(object: *mut GObject, quark: glib::GQuark) -> gpointer;
767    pub fn g_object_interface_find_property(g_iface: gpointer, property_name: *const gchar) -> *mut GParamSpec;
768    pub fn g_object_interface_install_property(g_iface: gpointer, pspec: *mut GParamSpec);
769    pub fn g_object_interface_list_properties(g_iface: gpointer, n_properties_p: *mut guint) -> *mut *mut GParamSpec;
770    pub fn g_object_is_floating(object: gpointer) -> gboolean;
771    pub fn g_object_new(object_type: GType, first_property_name: *const gchar, ...) -> gpointer;
772    pub fn g_object_newv(object_type: GType, n_parameters: guint, parameters: *mut GParameter) -> gpointer;
773    pub fn g_object_notify(object: *mut GObject, property_name: *const gchar);
774    pub fn g_object_notify_by_pspec(object: *mut GObject, pspec: *mut GParamSpec);
775    pub fn g_object_ref(object: gpointer) -> gpointer;
776    pub fn g_object_ref_sink(object: gpointer) -> gpointer;
777    pub fn g_object_remove_toggle_ref(object: *mut GObject, notify: GToggleNotify, data: gpointer);
778    pub fn g_object_remove_weak_pointer(object: *mut GObject, weak_pointer_location: *mut gpointer);
779    pub fn g_object_replace_data(object: *mut GObject, key: *const gchar, oldval: gpointer, newval: gpointer, destroy: Option<glib::GDestroyNotify>, old_destroy: *mut glib::GDestroyNotify) -> gboolean;
780    pub fn g_object_replace_qdata(object: *mut GObject, quark: glib::GQuark, oldval: gpointer, newval: gpointer, destroy: Option<glib::GDestroyNotify>, old_destroy: *mut glib::GDestroyNotify) -> gboolean;
781    pub fn g_object_run_dispose(object: *mut GObject);
782    pub fn g_object_set(object: gpointer, first_property_name: *const gchar, ...);
783    pub fn g_object_set_data(object: *mut GObject, key: *const gchar, data: gpointer);
784    pub fn g_object_set_data_full(object: *mut GObject, key: *const gchar, data: gpointer, destroy: Option<glib::GDestroyNotify>);
785    pub fn g_object_set_property(object: *mut GObject, property_name: *const gchar, value: *const GValue);
786    pub fn g_object_set_qdata(object: *mut GObject, quark: glib::GQuark, data: gpointer);
787    pub fn g_object_set_qdata_full(object: *mut GObject, quark: glib::GQuark, data: gpointer, destroy: Option<glib::GDestroyNotify>);
788    pub fn g_object_steal_data(object: *mut GObject, key: *const gchar) -> gpointer;
789    pub fn g_object_steal_qdata(object: *mut GObject, quark: glib::GQuark) -> gpointer;
790    pub fn g_object_thaw_notify(object: *mut GObject);
791    pub fn g_object_unref(object: gpointer);
792    pub fn g_object_watch_closure(object: *mut GObject, closure: *mut GClosure);
793    pub fn g_object_weak_ref(object: *mut GObject, notify: GWeakNotify, data: gpointer);
794    pub fn g_object_weak_unref(object: *mut GObject, notify: GWeakNotify, data: gpointer);
795    pub fn g_param_spec_boolean(name: *const gchar, nick: *const gchar, blurb: *const gchar, default_value: gboolean, flags: GParamFlags) -> *mut GParamSpec;
796    pub fn g_param_spec_boxed(name: *const gchar, nick: *const gchar, blurb: *const gchar, boxed_type: GType, flags: GParamFlags) -> *mut GParamSpec;
797    pub fn g_param_spec_char(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: i8, maximum: i8, default_value: i8, flags: GParamFlags) -> *mut GParamSpec;
798    pub fn g_param_spec_double(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: gdouble, maximum: gdouble, default_value: gdouble, flags: GParamFlags) -> *mut GParamSpec;
799    pub fn g_param_spec_enum(name: *const gchar, nick: *const gchar, blurb: *const gchar, enum_type: GType, default_value: gint, flags: GParamFlags) -> *mut GParamSpec;
800    pub fn g_param_spec_flags(name: *const gchar, nick: *const gchar, blurb: *const gchar, flags_type: GType, default_value: guint, flags: GParamFlags) -> *mut GParamSpec;
801    pub fn g_param_spec_float(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: gfloat, maximum: gfloat, default_value: gfloat, flags: GParamFlags) -> *mut GParamSpec;
802    pub fn g_param_spec_get_blurb(pspec: *mut GParamSpec) -> *const gchar;
803    pub fn g_param_spec_get_default_value(param: *mut GParamSpec) -> *const GValue;
804    pub fn g_param_spec_get_name(pspec: *mut GParamSpec) -> *const gchar;
805    pub fn g_param_spec_get_name_quark(param: *mut GParamSpec) -> glib::GQuark;
806    pub fn g_param_spec_get_nick(pspec: *mut GParamSpec) -> *const gchar;
807    pub fn g_param_spec_get_qdata(pspec: *mut GParamSpec, quark: glib::GQuark) -> gpointer;
808    pub fn g_param_spec_get_redirect_target(pspec: *mut GParamSpec) -> *mut GParamSpec;
809    pub fn g_param_spec_gtype(name: *const gchar, nick: *const gchar, blurb: *const gchar, is_a_type: GType, flags: GParamFlags) -> *mut GParamSpec;
810    pub fn g_param_spec_int(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: gint, maximum: gint, default_value: gint, flags: GParamFlags) -> *mut GParamSpec;
811    pub fn g_param_spec_int64(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: i64, maximum: i64, default_value: i64, flags: GParamFlags) -> *mut GParamSpec;
812    pub fn g_param_spec_internal(param_type: GType, name: *const gchar, nick: *const gchar, blurb: *const gchar, flags: GParamFlags) -> gpointer;
813    pub fn g_param_spec_long(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: glong, maximum: glong, default_value: glong, flags: GParamFlags) -> *mut GParamSpec;
814    pub fn g_param_spec_object(name: *const gchar, nick: *const gchar, blurb: *const gchar, object_type: GType, flags: GParamFlags) -> *mut GParamSpec;
815    pub fn g_param_spec_override(name: *const gchar, overridden: *mut GParamSpec) -> *mut GParamSpec;
816    pub fn g_param_spec_param(name: *const gchar, nick: *const gchar, blurb: *const gchar, param_type: GType, flags: GParamFlags) -> *mut GParamSpec;
817    pub fn g_param_spec_pointer(name: *const gchar, nick: *const gchar, blurb: *const gchar, flags: GParamFlags) -> *mut GParamSpec;
818    pub fn g_param_spec_pool_insert(pool: *mut GParamSpecPool, pspec: *mut GParamSpec, owner_type: GType);
819    pub fn g_param_spec_pool_list(pool: *mut GParamSpecPool, owner_type: GType, n_pspecs_p: *mut guint) -> *mut *mut GParamSpec;
820    pub fn g_param_spec_pool_list_owned(pool: *mut GParamSpecPool, owner_type: GType) -> *mut glib::GList;
821    pub fn g_param_spec_pool_lookup(pool: *mut GParamSpecPool, param_name: *const gchar, owner_type: GType, walk_ancestors: gboolean) -> *mut GParamSpec;
822    pub fn g_param_spec_pool_new(type_prefixing: gboolean) -> *mut GParamSpecPool;
823    pub fn g_param_spec_pool_remove(pool: *mut GParamSpecPool, pspec: *mut GParamSpec);
824    pub fn g_param_spec_ref(pspec: *mut GParamSpec) -> *mut GParamSpec;
825    pub fn g_param_spec_ref_sink(pspec: *mut GParamSpec) -> *mut GParamSpec;
826    pub fn g_param_spec_set_qdata(pspec: *mut GParamSpec, quark: glib::GQuark, data: gpointer);
827    pub fn g_param_spec_set_qdata_full(pspec: *mut GParamSpec, quark: glib::GQuark, data: gpointer, destroy: glib::GDestroyNotify);
828    pub fn g_param_spec_sink(pspec: *mut GParamSpec);
829    pub fn g_param_spec_steal_qdata(pspec: *mut GParamSpec, quark: glib::GQuark) -> gpointer;
830    pub fn g_param_spec_string(name: *const gchar, nick: *const gchar, blurb: *const gchar, default_value: *const gchar, flags: GParamFlags) -> *mut GParamSpec;
831    pub fn g_param_spec_uchar(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: u8, maximum: u8, default_value: u8, flags: GParamFlags) -> *mut GParamSpec;
832    pub fn g_param_spec_uint(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: guint, maximum: guint, default_value: guint, flags: GParamFlags) -> *mut GParamSpec;
833    pub fn g_param_spec_uint64(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: u64, maximum: u64, default_value: u64, flags: GParamFlags) -> *mut GParamSpec;
834    pub fn g_param_spec_ulong(name: *const gchar, nick: *const gchar, blurb: *const gchar, minimum: gulong, maximum: gulong, default_value: gulong, flags: GParamFlags) -> *mut GParamSpec;
835    pub fn g_param_spec_unichar(name: *const gchar, nick: *const gchar, blurb: *const gchar, default_value: gunichar, flags: GParamFlags) -> *mut GParamSpec;
836    pub fn g_param_spec_unref(pspec: *mut GParamSpec);
837    pub fn g_param_spec_value_array(name: *const gchar, nick: *const gchar, blurb: *const gchar, element_spec: *mut GParamSpec, flags: GParamFlags) -> *mut GParamSpec;
838    pub fn g_param_spec_variant(name: *const gchar, nick: *const gchar, blurb: *const gchar, type_: *const glib::GVariantType, default_value: *mut glib::GVariant, flags: GParamFlags) -> *mut GParamSpec;
839    pub fn g_param_type_register_static(name: *const gchar, pspec_info: *const GParamSpecTypeInfo) -> GType;
840    pub fn g_param_value_convert(pspec: *mut GParamSpec, src_value: *const GValue, dest_value: *mut GValue, strict_validation: gboolean) -> gboolean;
841    pub fn g_param_value_defaults(pspec: *mut GParamSpec, value: *mut GValue) -> gboolean;
842    pub fn g_param_value_set_default(pspec: *mut GParamSpec, value: *mut GValue);
843    pub fn g_param_value_validate(pspec: *mut GParamSpec, value: *mut GValue) -> gboolean;
844    pub fn g_param_values_cmp(pspec: *mut GParamSpec, value1: *const GValue, value2: *const GValue) -> gint;
845    pub fn g_pointer_type_register_static(name: *const gchar) -> GType;
846    pub fn g_signal_accumulator_first_wins(ihint: *mut GSignalInvocationHint, return_accu: *mut GValue, handler_return: *const GValue, dummy: gpointer) -> gboolean;
847    pub fn g_signal_accumulator_true_handled(ihint: *mut GSignalInvocationHint, return_accu: *mut GValue, handler_return: *const GValue, dummy: gpointer) -> gboolean;
848    pub fn g_signal_add_emission_hook(signal_id: guint, detail: glib::GQuark, hook_func: GSignalEmissionHook, hook_data: gpointer, data_destroy: glib::GDestroyNotify) -> gulong;
849    pub fn g_signal_chain_from_overridden(instance_and_params: *mut GValue, return_value: *mut GValue);
850    pub fn g_signal_chain_from_overridden_handler(instance: gpointer, ...);
851    pub fn g_signal_connect_closure(instance: gpointer, detailed_signal: *const gchar, closure: *mut GClosure, after: gboolean) -> gulong;
852    pub fn g_signal_connect_closure_by_id(instance: gpointer, signal_id: guint, detail: glib::GQuark, closure: *mut GClosure, after: gboolean) -> gulong;
853    pub fn g_signal_connect_data(instance: gpointer, detailed_signal: *const gchar, c_handler: GCallback, data: gpointer, destroy_data: GClosureNotify, connect_flags: GConnectFlags) -> gulong;
854    pub fn g_signal_connect_object(instance: gpointer, detailed_signal: *const gchar, c_handler: GCallback, gobject: gpointer, connect_flags: GConnectFlags) -> gulong;
855    pub fn g_signal_emit(instance: gpointer, signal_id: guint, detail: glib::GQuark, ...);
856    pub fn g_signal_emit_by_name(instance: gpointer, detailed_signal: *const gchar, ...);
857    pub fn g_signal_emitv(instance_and_params: *mut GValue, signal_id: guint, detail: glib::GQuark, return_value: *mut GValue);
858    pub fn g_signal_get_invocation_hint(instance: gpointer) -> *mut GSignalInvocationHint;
859    pub fn g_signal_handler_block(instance: gpointer, handler_id: gulong);
860    pub fn g_signal_handler_disconnect(instance: gpointer, handler_id: gulong);
861    pub fn g_signal_handler_find(instance: gpointer, mask: GSignalMatchType, signal_id: guint, detail: glib::GQuark, closure: *mut GClosure, func: gpointer, data: gpointer) -> gulong;
862    pub fn g_signal_handler_is_connected(instance: gpointer, handler_id: gulong) -> gboolean;
863    pub fn g_signal_handler_unblock(instance: gpointer, handler_id: gulong);
864    pub fn g_signal_handlers_block_matched(instance: gpointer, mask: GSignalMatchType, signal_id: guint, detail: glib::GQuark, closure: *mut GClosure, func: gpointer, data: gpointer) -> guint;
865    pub fn g_signal_handlers_destroy(instance: gpointer);
866    pub fn g_signal_handlers_disconnect_matched(instance: gpointer, mask: GSignalMatchType, signal_id: guint, detail: glib::GQuark, closure: *mut GClosure, func: gpointer, data: gpointer) -> guint;
867    pub fn g_signal_handlers_unblock_matched(instance: gpointer, mask: GSignalMatchType, signal_id: guint, detail: glib::GQuark, closure: *mut GClosure, func: gpointer, data: gpointer) -> guint;
868    pub fn g_signal_has_handler_pending(instance: gpointer, signal_id: guint, detail: glib::GQuark, may_be_blocked: gboolean) -> gboolean;
869    pub fn g_signal_list_ids(itype: GType, n_ids: *mut guint) -> *mut guint;
870    pub fn g_signal_lookup(name: *const gchar, itype: GType) -> guint;
871    pub fn g_signal_name(signal_id: guint) -> *const gchar;
872    pub fn g_signal_new(signal_name: *const gchar, itype: GType, signal_flags: GSignalFlags, class_offset: guint, accumulator: GSignalAccumulator, accu_data: gpointer, c_marshaller: GSignalCMarshaller, return_type: GType, n_params: guint, ...) -> guint;
873    pub fn g_signal_new_class_handler(signal_name: *const gchar, itype: GType, signal_flags: GSignalFlags, class_handler: GCallback, accumulator: GSignalAccumulator, accu_data: gpointer, c_marshaller: GSignalCMarshaller, return_type: GType, n_params: guint, ...) -> guint;
874    pub fn g_signal_newv(signal_name: *const gchar, itype: GType, signal_flags: GSignalFlags, class_closure: *mut GClosure, accumulator: Option<GSignalAccumulator>, accu_data: gpointer, c_marshaller: GSignalCMarshaller, return_type: GType, n_params: guint, param_types: *mut GType) -> guint;
875    pub fn g_signal_override_class_closure(signal_id: guint, instance_type: GType, class_closure: *mut GClosure);
876    pub fn g_signal_override_class_handler(signal_name: *const gchar, instance_type: GType, class_handler: GCallback);
877    pub fn g_signal_parse_name(detailed_signal: *const gchar, itype: GType, signal_id_p: *mut guint, detail_p: *mut glib::GQuark, force_detail_quark: gboolean) -> gboolean;
878    pub fn g_signal_query(signal_id: guint, query: *mut GSignalQuery);
879    pub fn g_signal_remove_emission_hook(signal_id: guint, hook_id: gulong);
880    pub fn g_signal_stop_emission(instance: gpointer, signal_id: guint, detail: glib::GQuark);
881    pub fn g_signal_stop_emission_by_name(instance: gpointer, detailed_signal: *const gchar);
882    pub fn g_signal_type_cclosure_new(itype: GType, struct_offset: guint) -> *mut GClosure;
883    pub fn g_source_set_closure(source: *mut glib::GSource, closure: *mut GClosure);
884    pub fn g_source_set_dummy_callback(source: *mut glib::GSource);
885    pub fn g_strdup_value_contents(value: *const GValue) -> *mut gchar;
886    pub fn g_type_add_class_cache_func(cache_data: gpointer, cache_func: GTypeClassCacheFunc);
887    pub fn g_type_add_class_private(class_type: GType, private_size: gsize);
888    pub fn g_type_add_instance_private(class_type: GType, private_size: gsize) -> gint;
889    pub fn g_type_add_interface_check(check_data: gpointer, check_func: GTypeInterfaceCheckFunc);
890    pub fn g_type_add_interface_dynamic(instance_type: GType, interface_type: GType, plugin: *mut GTypePlugin);
891    pub fn g_type_add_interface_static(instance_type: GType, interface_type: GType, info: *const GInterfaceInfo);
892    pub fn g_type_check_class_cast(g_class: *mut GTypeClass, is_a_type: GType) -> *mut GTypeClass;
893    pub fn g_type_check_class_is_a(g_class: *mut GTypeClass, is_a_type: GType) -> gboolean;
894    pub fn g_type_check_instance(instance: *mut GTypeInstance) -> gboolean;
895    pub fn g_type_check_instance_cast(instance: *mut GTypeInstance, iface_type: GType) -> *mut GTypeInstance;
896    pub fn g_type_check_instance_is_a(instance: *mut GTypeInstance, iface_type: GType) -> gboolean;
897    pub fn g_type_check_instance_is_fundamentally_a(instance: *mut GTypeInstance, fundamental_type: GType) -> gboolean;
898    pub fn g_type_check_is_value_type(type_: GType) -> gboolean;
899    pub fn g_type_check_value(value: *mut GValue) -> gboolean;
900    pub fn g_type_check_value_holds(value: *mut GValue, type_: GType) -> gboolean;
901    pub fn g_type_children(type_: GType, n_children: *mut guint) -> *mut GType;
902    pub fn g_type_class_add_private(g_class: gpointer, private_size: gsize);
903    pub fn g_type_class_adjust_private_offset(g_class: gpointer, private_size_or_offset: gint);
904    pub fn g_type_class_get_instance_private_offset(g_class: gpointer) -> gint;
905    pub fn g_type_class_get_private(klass: *mut GTypeClass, private_type: GType) -> gpointer;
906    pub fn g_type_class_peek(type_: GType) -> gpointer;
907    pub fn g_type_class_peek_parent(g_class: gpointer) -> gpointer;
908    pub fn g_type_class_peek_static(type_: GType) -> gpointer;
909    pub fn g_type_class_ref(type_: GType) -> gpointer;
910    pub fn g_type_class_unref(g_class: gpointer);
911    pub fn g_type_class_unref_uncached(g_class: gpointer);
912    pub fn g_type_create_instance(type_: GType) -> *mut GTypeInstance;
913    pub fn g_type_default_interface_peek(g_type: GType) -> gpointer;
914    pub fn g_type_default_interface_ref(g_type: GType) -> gpointer;
915    pub fn g_type_default_interface_unref(g_iface: gpointer);
916    pub fn g_type_depth(type_: GType) -> guint;
917    pub fn g_type_ensure(type_: GType);
918    pub fn g_type_free_instance(instance: *mut GTypeInstance);
919    pub fn g_type_from_name(name: *const gchar) -> GType;
920    pub fn g_type_fundamental(type_id: GType) -> GType;
921    pub fn g_type_fundamental_next() -> GType;
922    pub fn g_type_get_instance_count(type_: GType) -> gint;
923    pub fn g_type_get_plugin(type_: GType) -> *mut GTypePlugin;
924    pub fn g_type_get_qdata(type_: GType, quark: glib::GQuark) -> gpointer;
925    pub fn g_type_get_type_registration_serial() -> guint;
926    pub fn g_type_init();
927    pub fn g_type_init_with_debug_flags(debug_flags: GTypeDebugFlags);
928    pub fn g_type_instance_get_private(instance: *mut GTypeInstance, private_type: GType) -> gpointer;
929    pub fn g_type_interface_add_prerequisite(interface_type: GType, prerequisite_type: GType);
930    pub fn g_type_interface_get_plugin(instance_type: GType, interface_type: GType) -> *mut GTypePlugin;
931    pub fn g_type_interface_peek(instance_class: gpointer, iface_type: GType) -> gpointer;
932    pub fn g_type_interface_peek_parent(g_iface: gpointer) -> gpointer;
933    pub fn g_type_interface_prerequisites(interface_type: GType, n_prerequisites: *mut guint) -> *mut GType;
934    pub fn g_type_interfaces(type_: GType, n_interfaces: *mut guint) -> *mut GType;
935    pub fn g_type_is_a(type_: GType, is_a_type: GType) -> gboolean;
936    pub fn g_type_module_add_interface(module: *mut GTypeModule, instance_type: GType, interface_type: GType, interface_info: *const GInterfaceInfo);
937    pub fn g_type_module_register_enum(module: *mut GTypeModule, name: *const gchar, const_static_values: *const GEnumValue) -> GType;
938    pub fn g_type_module_register_flags(module: *mut GTypeModule, name: *const gchar, const_static_values: *const GFlagsValue) -> GType;
939    pub fn g_type_module_register_type(module: *mut GTypeModule, parent_type: GType, type_name: *const gchar, type_info: *const GTypeInfo, flags: GTypeFlags) -> GType;
940    pub fn g_type_module_set_name(module: *mut GTypeModule, name: *const gchar);
941    pub fn g_type_module_unuse(module: *mut GTypeModule);
942    pub fn g_type_module_use(module: *mut GTypeModule) -> gboolean;
943    pub fn g_type_name(type_: GType) -> *const gchar;
944    pub fn g_type_name_from_class(g_class: *mut GTypeClass) -> *const gchar;
945    pub fn g_type_name_from_instance(instance: *mut GTypeInstance) -> *const gchar;
946    pub fn g_type_next_base(leaf_type: GType, root_type: GType) -> GType;
947    pub fn g_type_parent(type_: GType) -> GType;
948    pub fn g_type_plugin_complete_interface_info(plugin: *mut GTypePlugin, instance_type: GType, interface_type: GType, info: *mut GInterfaceInfo);
949    pub fn g_type_plugin_complete_type_info(plugin: *mut GTypePlugin, g_type: GType, info: *mut GTypeInfo, value_table: *mut GTypeValueTable);
950    pub fn g_type_plugin_unuse(plugin: *mut GTypePlugin);
951    pub fn g_type_plugin_use(plugin: *mut GTypePlugin);
952    pub fn g_type_qname(type_: GType) -> glib::GQuark;
953    pub fn g_type_query(type_: GType, query: *mut GTypeQuery);
954    pub fn g_type_register_dynamic(parent_type: GType, type_name: *const gchar, plugin: *mut GTypePlugin, flags: GTypeFlags) -> GType;
955    pub fn g_type_register_fundamental(type_id: GType, type_name: *const gchar, info: *const GTypeInfo, finfo: *const GTypeFundamentalInfo, flags: GTypeFlags) -> GType;
956    pub fn g_type_register_static(parent_type: GType, type_name: *const gchar, info: *const GTypeInfo, flags: GTypeFlags) -> GType;
957    pub fn g_type_register_static_simple(parent_type: GType, type_name: *const gchar, class_size: guint, class_init: GClassInitFunc, instance_size: guint, instance_init: GInstanceInitFunc, flags: GTypeFlags) -> GType;
958    pub fn g_type_remove_class_cache_func(cache_data: gpointer, cache_func: GTypeClassCacheFunc);
959    pub fn g_type_remove_interface_check(check_data: gpointer, check_func: GTypeInterfaceCheckFunc);
960    pub fn g_type_set_qdata(type_: GType, quark: glib::GQuark, data: gpointer);
961    pub fn g_type_test_flags(type_: GType, flags: guint) -> gboolean;
962    pub fn g_type_value_table_peek(type_: GType) -> *mut GTypeValueTable;
963    pub fn g_value_array_append(value_array: *mut GValueArray, value: *const GValue) -> *mut GValueArray;
964    pub fn g_value_array_copy(value_array: *const GValueArray) -> *mut GValueArray;
965    pub fn g_value_array_free(value_array: *mut GValueArray);
966    pub fn g_value_array_get_nth(value_array: *mut GValueArray, index_: guint) -> *mut GValue;
967    pub fn g_value_array_insert(value_array: *mut GValueArray, index_: guint, value: *const GValue) -> *mut GValueArray;
968    pub fn g_value_array_new(n_prealloced: guint) -> *mut GValueArray;
969    pub fn g_value_array_prepend(value_array: *mut GValueArray, value: *const GValue) -> *mut GValueArray;
970    pub fn g_value_array_remove(value_array: *mut GValueArray, index_: guint) -> *mut GValueArray;
971    pub fn g_value_array_sort(value_array: *mut GValueArray, compare_func: glib::GCompareFunc) -> *mut GValueArray;
972    pub fn g_value_array_sort_with_data(value_array: *mut GValueArray, compare_func: glib::GCompareDataFunc, user_data: gpointer) -> *mut GValueArray;
973    pub fn g_value_copy(src_value: *const GValue, dest_value: *mut GValue);
974    pub fn g_value_dup_boxed(value: *const GValue) -> gpointer;
975    pub fn g_value_dup_object(value: *const GValue) -> gpointer;
976    pub fn g_value_dup_param(value: *const GValue) -> *mut GParamSpec;
977    pub fn g_value_dup_string(value: *const GValue) -> *mut gchar;
978    pub fn g_value_dup_variant(value: *const GValue) -> *mut glib::GVariant;
979    pub fn g_value_fits_pointer(value: *const GValue) -> gboolean;
980    pub fn g_value_get_boolean(value: *const GValue) -> gboolean;
981    pub fn g_value_get_boxed(value: *const GValue) -> gpointer;
982    pub fn g_value_get_char(value: *const GValue) -> gchar;
983    pub fn g_value_get_double(value: *const GValue) -> gdouble;
984    pub fn g_value_get_enum(value: *const GValue) -> gint;
985    pub fn g_value_get_flags(value: *const GValue) -> guint;
986    pub fn g_value_get_float(value: *const GValue) -> gfloat;
987    pub fn g_value_get_gtype(value: *const GValue) -> GType;
988    pub fn g_value_get_int(value: *const GValue) -> gint;
989    pub fn g_value_get_int64(value: *const GValue) -> i64;
990    pub fn g_value_get_long(value: *const GValue) -> glong;
991    pub fn g_value_get_object(value: *const GValue) -> gpointer;
992    pub fn g_value_get_param(value: *const GValue) -> *mut GParamSpec;
993    pub fn g_value_get_pointer(value: *const GValue) -> gpointer;
994    pub fn g_value_get_schar(value: *const GValue) -> i8;
995    pub fn g_value_get_string(value: *const GValue) -> *const gchar;
996    pub fn g_value_get_uchar(value: *const GValue) -> u8;
997    pub fn g_value_get_uint(value: *const GValue) -> guint;
998    pub fn g_value_get_uint64(value: *const GValue) -> u64;
999    pub fn g_value_get_ulong(value: *const GValue) -> gulong;
1000    pub fn g_value_get_variant(value: *const GValue) -> *mut glib::GVariant;
1001    pub fn g_value_init(value: *mut GValue, g_type: GType) -> *mut GValue;
1002    pub fn g_value_init_from_instance(value: *mut GValue, instance: gpointer);
1003    pub fn g_value_peek_pointer(value: *const GValue) -> gpointer;
1004    pub fn g_value_register_transform_func(src_type: GType, dest_type: GType, transform_func: GValueTransform);
1005    pub fn g_value_reset(value: *mut GValue) -> *mut GValue;
1006    pub fn g_value_set_boolean(value: *mut GValue, v_boolean: gboolean);
1007    pub fn g_value_set_boxed(value: *mut GValue, v_boxed: gconstpointer);
1008    pub fn g_value_set_boxed_take_ownership(value: *mut GValue, v_boxed: gconstpointer);
1009    pub fn g_value_set_char(value: *mut GValue, v_char: gchar);
1010    pub fn g_value_set_double(value: *mut GValue, v_double: gdouble);
1011    pub fn g_value_set_enum(value: *mut GValue, v_enum: gint);
1012    pub fn g_value_set_flags(value: *mut GValue, v_flags: guint);
1013    pub fn g_value_set_float(value: *mut GValue, v_float: gfloat);
1014    pub fn g_value_set_gtype(value: *mut GValue, v_gtype: GType);
1015    pub fn g_value_set_instance(value: *mut GValue, instance: gpointer);
1016    pub fn g_value_set_int(value: *mut GValue, v_int: gint);
1017    pub fn g_value_set_int64(value: *mut GValue, v_int64: i64);
1018    pub fn g_value_set_long(value: *mut GValue, v_long: glong);
1019    pub fn g_value_set_object(value: *mut GValue, v_object: gpointer);
1020    pub fn g_value_set_object_take_ownership(value: *mut GValue, v_object: gpointer);
1021    pub fn g_value_set_param(value: *mut GValue, param: *mut GParamSpec);
1022    pub fn g_value_set_param_take_ownership(value: *mut GValue, param: *mut GParamSpec);
1023    pub fn g_value_set_pointer(value: *mut GValue, v_pointer: gpointer);
1024    pub fn g_value_set_schar(value: *mut GValue, v_char: i8);
1025    pub fn g_value_set_static_boxed(value: *mut GValue, v_boxed: gconstpointer);
1026    pub fn g_value_set_static_string(value: *mut GValue, v_string: *const gchar);
1027    pub fn g_value_set_string(value: *mut GValue, v_string: *const gchar);
1028    pub fn g_value_set_string_take_ownership(value: *mut GValue, v_string: *mut gchar);
1029    pub fn g_value_set_uchar(value: *mut GValue, v_uchar: u8);
1030    pub fn g_value_set_uint(value: *mut GValue, v_uint: guint);
1031    pub fn g_value_set_uint64(value: *mut GValue, v_uint64: u64);
1032    pub fn g_value_set_ulong(value: *mut GValue, v_ulong: gulong);
1033    pub fn g_value_set_variant(value: *mut GValue, variant: *mut glib::GVariant);
1034    pub fn g_value_take_boxed(value: *mut GValue, v_boxed: gconstpointer);
1035    pub fn g_value_take_object(value: *mut GValue, v_object: gpointer);
1036    pub fn g_value_take_param(value: *mut GValue, param: *mut GParamSpec);
1037    pub fn g_value_take_string(value: *mut GValue, v_string: *mut gchar);
1038    pub fn g_value_take_variant(value: *mut GValue, variant: *mut glib::GVariant);
1039    pub fn g_value_transform(src_value: *const GValue, dest_value: *mut GValue) -> gboolean;
1040    pub fn g_value_type_compatible(src_type: GType, dest_type: GType) -> gboolean;
1041    pub fn g_value_type_transformable(src_type: GType, dest_type: GType) -> gboolean;
1042    pub fn g_value_unset(value: *mut GValue);
1043    pub fn g_weak_ref_clear(weak_ref: *mut GWeakRef);
1044    pub fn g_weak_ref_get(weak_ref: *mut GWeakRef) -> gpointer;
1045    pub fn g_weak_ref_init(weak_ref: *mut GWeakRef, object: gpointer);
1046    pub fn g_weak_ref_set(weak_ref: *mut GWeakRef, object: gpointer);
1047}
1048
1049// GType functions for GLib
1050extern {
1051    pub fn g_array_get_type() -> GType;
1052    pub fn g_byte_array_get_type() -> GType;
1053    pub fn g_bytes_get_type() -> GType;
1054    pub fn g_checksum_get_type() -> GType;
1055    pub fn g_date_get_type() -> GType;
1056    pub fn g_date_time_get_type() -> GType;
1057    pub fn g_error_get_type() -> GType;
1058    pub fn g_gstring_get_type() -> GType;
1059    pub fn g_hash_table_get_type() -> GType;
1060    pub fn g_io_channel_get_type() -> GType;
1061    pub fn g_io_condition_get_type() -> GType;
1062    pub fn g_key_file_get_type() -> GType;
1063    pub fn g_main_context_get_type() -> GType;
1064    pub fn g_main_loop_get_type() -> GType;
1065    pub fn g_mapped_file_get_type() -> GType;
1066    pub fn g_markup_parse_context_get_type() -> GType;
1067    pub fn g_match_info_get_type() -> GType;
1068    pub fn g_option_group_get_type() -> GType;
1069    pub fn g_pollfd_get_type() -> GType;
1070    pub fn g_ptr_array_get_type() -> GType;
1071    pub fn g_regex_get_type() -> GType;
1072    pub fn g_source_get_type() -> GType;
1073    pub fn g_strv_get_type() -> GType;
1074    pub fn g_thread_get_type() -> GType;
1075    pub fn g_time_zone_get_type() -> GType;
1076    pub fn g_variant_builder_get_type() -> GType;
1077    pub fn g_variant_dict_get_type() -> GType;
1078    pub fn g_variant_get_gtype() -> GType;
1079    pub fn g_variant_type_get_gtype() -> GType;
1080}