1 /*
2  * This file is part of gtkD.
3  *
4  * gtkD is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License
6  * as published by the Free Software Foundation; either version 3
7  * of the License, or (at your option) any later version, with
8  * some exceptions, please read the COPYING file.
9  *
10  * gtkD is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with gtkD; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
18  */
19  
20 // generated automatically - do not change
21 // find conversion definition on APILookup.txt
22 // implement new conversion functionalities on the wrap.utils pakage
23 
24 module gtkc.gobjecttypes;
25 
26 
27 public import gtkc.glibtypes;
28 
29 alias void GTypeCValue;
30 
31 
32 
33 // G_TYPE_*
34 enum GType : size_t
35 {
36 	INVALID = 0<<2,
37 	NONE = 1<<2,
38 	INTERFACE = 2<<2,
39 	CHAR = 3<<2,
40 	UCHAR = 4<<2,
41 	BOOLEAN = 5<<2,
42 	INT = 6<<2,
43 	UINT = 7<<2,
44 	LONG = 8<<2,
45 	ULONG = 9<<2,
46 	INT64 = 10<<2,
47 	UINT64 = 11<<2,
48 	ENUM = 12<<2,
49 	FLAGS = 13<<2,
50 	FLOAT = 14<<2,
51 	DOUBLE = 15<<2,
52 	STRING = 16<<2,
53 	POINTER = 17<<2,
54 	BOXED = 18<<2,
55 	PARAM = 19<<2,
56 	OBJECT = 20<<2,
57 	VARIANT = 21<<2,
58 
59 }
60 
61 
62 /**
63  * typedef gchar** GStrv;
64  * A C representable type name for G_TYPE_STRV.
65  * See Also
66  * GParamSpecBoxed, g_param_spec_boxed()
67  */
68 public alias char** GStrv;
69 
70 /**
71  * typedef gchar* gchararray;
72  * A C representable type name for G_TYPE_STRING.
73  */
74 public alias char* gchararray;
75 
76 /**
77  * typedef GClosureMarshal			 GSignalCMarshaller;
78  * This is the signature of marshaller functions, required to marshall
79  * arrays of parameter values to signal emissions into C language callback
80  * invocations. It is merely an alias to GClosureMarshal since the GClosure
81  * mechanism takes over responsibility of actual function invocation for the
82  * signal system.
83  */
84 public alias GClosureMarshal GSignalCMarshaller;
85 
86 /**
87  * typedef GVaClosureMarshal		 GSignalCVaMarshaller;
88  * This is the signature of va_list marshaller functions, an optional
89  * marshaller that can be used in some situations to avoid
90  * marshalling the signal argument into GValues.
91  */
92 public alias GVaClosureMarshal GSignalCVaMarshaller;
93 /**
94  * Warning
95  * GTypeDebugFlags has been deprecated since version 2.36 and should not be used in newly-written code. g_type_init() is now done automatically
96  * These flags used to be passed to g_type_init_with_debug_flags() which
97  * is now deprecated.
98  * If you need to enable debugging features, use the GOBJECT_DEBUG
99  * environment variable.
100  * G_TYPE_DEBUG_NONE
101  * Print no messages.
102  * G_TYPE_DEBUG_OBJECTS
103  * Print messages about object bookkeeping.
104  * G_TYPE_DEBUG_SIGNALS
105  * Print messages about signal emissions.
106  * G_TYPE_DEBUG_MASK
107  * Mask covering all debug flags.
108  */
109 public enum GTypeDebugFlags
110 {
111 	NONE = 0,
112 	OBJECTS = 1 << 0,
113 	SIGNALS = 1 << 1,
114 	MASK = 0x03
115 }
116 alias GTypeDebugFlags TypeDebugFlags;
117 
118 /**
119  * Bit masks used to check or determine characteristics of a type.
120  * G_TYPE_FLAG_ABSTRACT
121  * Indicates an abstract type. No instances can be
122  *  created for an abstract type.
123  * G_TYPE_FLAG_VALUE_ABSTRACT
124  * Indicates an abstract value type, i.e. a type
125  *  that introduces a value table, but can't be used for
126  *  g_value_init().
127  */
128 public enum GTypeFlags
129 {
130 	ABSTRACT = (1 << 4),
131 	VALUE_ABSTRACT = (1 << 5)
132 }
133 alias GTypeFlags TypeFlags;
134 
135 /**
136  * Bit masks used to check or determine specific characteristics of a
137  * fundamental type.
138  * G_TYPE_FLAG_CLASSED
139  * Indicates a classed type.
140  * G_TYPE_FLAG_INSTANTIATABLE
141  * Indicates an instantiable type (implies classed).
142  * G_TYPE_FLAG_DERIVABLE
143  * Indicates a flat derivable type.
144  * G_TYPE_FLAG_DEEP_DERIVABLE
145  * Indicates a deep derivable type (implies derivable).
146  */
147 public enum GTypeFundamentalFlags
148 {
149 	FLAG_CLASSED = (1 << 0),
150 	FLAG_INSTANTIATABLE = (1 << 1),
151 	FLAG_DERIVABLE = (1 << 2),
152 	FLAG_DEEP_DERIVABLE = (1 << 3)
153 }
154 alias GTypeFundamentalFlags TypeFundamentalFlags;
155 
156 /**
157  * Through the GParamFlags flag values, certain aspects of parameters
158  * can be configured. See also G_PARAM_READWRITE and G_PARAM_STATIC_STRINGS.
159  * G_PARAM_READABLE
160  * the parameter is readable
161  * G_PARAM_WRITABLE
162  * the parameter is writable
163  * G_PARAM_CONSTRUCT
164  * the parameter will be set upon object construction
165  * G_PARAM_CONSTRUCT_ONLY
166  * the parameter will only be set upon object construction
167  * G_PARAM_LAX_VALIDATION
168  * upon parameter conversion (see g_param_value_convert())
169  *  strict validation is not required
170  * G_PARAM_STATIC_NAME
171  * the string used as name when constructing the
172  *  parameter is guaranteed to remain valid and
173  *  unmodified for the lifetime of the parameter.
174  *  Since 2.8
175  * G_PARAM_PRIVATE
176  * internal
177  * G_PARAM_STATIC_NICK
178  * the string used as nick when constructing the
179  *  parameter is guaranteed to remain valid and
180  *  unmmodified for the lifetime of the parameter.
181  *  Since 2.8
182  * G_PARAM_STATIC_BLURB
183  * the string used as blurb when constructing the
184  *  parameter is guaranteed to remain valid and
185  *  unmodified for the lifetime of the parameter.
186  *  Since 2.8
187  * G_PARAM_DEPRECATED
188  * the parameter is deprecated and will be removed
189  *  in a future version. A warning will be generated if it is used
190  *  while running with G_ENABLE_DIAGNOSTIC=1.
191  *  Since 2.26
192  */
193 public enum GParamFlags
194 {
195 	READABLE = 1 << 0,
196 	WRITABLE = 1 << 1,
197 	CONSTRUCT = 1 << 2,
198 	CONSTRUCT_ONLY = 1 << 3,
199 	LAX_VALIDATION = 1 << 4,
200 	STATIC_NAME = 1 << 5,
201 	PRIVATE = STATIC_NAME,
202 	STATIC_NICK = 1 << 6,
203 	STATIC_BLURB = 1 << 7,
204 	/+* User defined flags go up to 30 +/
205 	DEPRECATED = 1 << 31
206 }
207 alias GParamFlags ParamFlags;
208 
209 /**
210  * The signal flags are used to specify a signal's behaviour, the overall
211  * signal description outlines how especially the RUN flags control the
212  * stages of a signal emission.
213  * G_SIGNAL_RUN_FIRST
214  * Invoke the object method handler in the first emission stage.
215  * G_SIGNAL_RUN_LAST
216  * Invoke the object method handler in the third emission stage.
217  * G_SIGNAL_RUN_CLEANUP
218  * Invoke the object method handler in the last emission stage.
219  * G_SIGNAL_NO_RECURSE
220  * Signals being emitted for an object while currently being in
221  *  emission for this very object will not be emitted recursively,
222  *  but instead cause the first emission to be restarted.
223  * G_SIGNAL_DETAILED
224  * This signal supports "::detail" appendices to the signal name
225  *  upon handler connections and emissions.
226  * G_SIGNAL_ACTION
227  * Action signals are signals that may freely be emitted on alive
228  *  objects from user code via g_signal_emit() and friends, without
229  *  the need of being embedded into extra code that performs pre or
230  *  post emission adjustments on the object. They can also be thought
231  *  of as object methods which can be called generically by
232  *  third-party code.
233  * G_SIGNAL_NO_HOOKS
234  * No emissions hooks are supported for this signal.
235  * G_SIGNAL_MUST_COLLECT
236  * Varargs signal emission will always collect the
237  *  arguments, even if there are no signal handlers connected. Since 2.30.
238  * G_SIGNAL_DEPRECATED
239  * The signal is deprecated and will be removed
240  *  in a future version. A warning will be generated if it is connected while
241  *  running with G_ENABLE_DIAGNOSTIC=1. Since 2.32.
242  */
243 public enum GSignalFlags
244 {
245 	RUN_FIRST = 1 << 0,
246 	RUN_LAST = 1 << 1,
247 	RUN_CLEANUP = 1 << 2,
248 	NO_RECURSE = 1 << 3,
249 	DETAILED = 1 << 4,
250 	ACTION = 1 << 5,
251 	NO_HOOKS = 1 << 6,
252 	MUST_COLLECT = 1 << 7,
253 	DEPRECATED = 1 << 8
254 }
255 alias GSignalFlags SignalFlags;
256 
257 /**
258  * The match types specify what g_signal_handlers_block_matched(),
259  * g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched()
260  * match signals by.
261  * G_SIGNAL_MATCH_ID
262  * The signal id must be equal.
263  * G_SIGNAL_MATCH_DETAIL
264  * The signal detail be equal.
265  * G_SIGNAL_MATCH_CLOSURE
266  * The closure must be the same.
267  * G_SIGNAL_MATCH_FUNC
268  * The C closure callback must be the same.
269  * G_SIGNAL_MATCH_DATA
270  * The closure data must be the same.
271  * G_SIGNAL_MATCH_UNBLOCKED
272  * Only unblocked signals may matched.
273  */
274 public enum GSignalMatchType
275 {
276 	ID = 1 << 0,
277 	DETAIL = 1 << 1,
278 	CLOSURE = 1 << 2,
279 	FUNC = 1 << 3,
280 	DATA = 1 << 4,
281 	UNBLOCKED = 1 << 5
282 }
283 alias GSignalMatchType SignalMatchType;
284 
285 /**
286  * The connection flags are used to specify the behaviour of a signal's
287  * connection.
288  * G_CONNECT_AFTER
289  * whether the handler should be called before or after the
290  *  default handler of the signal.
291  * G_CONNECT_SWAPPED
292  * whether the instance and data should be swapped when
293  *  calling the handler.
294  */
295 public enum GConnectFlags
296 {
297 	AFTER = 1 << 0,
298 	SWAPPED = 1 << 1
299 }
300 alias GConnectFlags ConnectFlags;
301 
302 /**
303  * Flags to be passed to g_object_bind_property() or
304  * g_object_bind_property_full().
305  * This enumeration can be extended at later date.
306  * G_BINDING_DEFAULT
307  * The default binding; if the source property
308  *  changes, the target property is updated with its value.
309  * G_BINDING_BIDIRECTIONAL
310  * Bidirectional binding; if either the
311  *  property of the source or the property of the target changes,
312  *  the other is updated.
313  * G_BINDING_SYNC_CREATE
314  * Synchronize the values of the source and
315  *  target properties when creating the binding; the direction of
316  *  the synchronization is always from the source to the target.
317  * G_BINDING_INVERT_BOOLEAN
318  * If the two properties being bound are
319  *  booleans, setting one to TRUE will result in the other being
320  *  set to FALSE and vice versa. This flag will only work for
321  *  boolean properties, and cannot be used when passing custom
322  *  transformation functions to g_object_bind_property_full().
323  * Since 2.26
324  */
325 public enum GBindingFlags
326 {
327 	DEFAULT = 0,
328 	BIDIRECTIONAL = 1 << 0,
329 	SYNC_CREATE = 1 << 1,
330 	INVERT_BOOLEAN = 1 << 2
331 }
332 alias GBindingFlags BindingFlags;
333 
334 
335 /**
336  * An opaque structure used as the base of all type instances.
337  */
338 struct GTypeInstance
339 {
340 	/*< private >*/
341 	GTypeClass* gClass;
342 }
343 
344 /**
345  * An opaque structure used as the base of all classes.
346  */
347 struct GTypeClass
348 {
349 	/*< private >*/
350 	GType gType;
351 }
352 
353 /**
354  * An opaque structure used as the base of all interface types.
355  */
356 public struct GTypeInterface
357 {
358 	GType gType;         /* iface type */
359 	GType gInstanceType;
360 }
361 
362 /**
363  * The class structure for the GObject type.
364  * Example4.Implementing singletons using a constructor
365  * static MySingleton *the_singleton = NULL;
366  * static GObject*
367  * my_singleton_constructor (GType type,
368  */
369 public struct GObjectClass
370 {
371 	GTypeClass gTypeClass;
372 	/*< private >*/
373 	GSList* constructProperties;
374 	/* seldomly overidden */
375 	extern(C) GObject*  function(GType type,uint nConstructProperties,GObjectConstructParam *constructProperties) constructor;
376 	/* overridable methods */
377 	extern(C) void  function(GObject *object,uint propertyId,GValue *value,GParamSpec *pspec) setProperty;
378 	extern(C) void  function(GObject *object,uint propertyId,GValue *value,GParamSpec *pspec) getProperty;
379 	extern(C) void  function(GObject *object) dispose;
380 	extern(C) void  function(GObject *object) finalize;
381 	/* seldomly overidden */
382 	extern(C) void  function(GObject *object,uint nPspecs,GParamSpec **pspecs) dispatchPropertiesChanged;
383 	/* signals */
384 	extern(C) void  function(GObject *object,GParamSpec *pspec) notify;
385 	/* called when done constructing */
386 	extern(C) void  function(GObject *object) constructed;
387 	/* padding */
388 	gpointer dummy[7];
389 }
390 
391 /**
392  * Main Gtk struct.
393  * All the fields in the GObject structure are private
394  * to the GObject implementation and should never be accessed directly.
395  */
396 public struct GObject
397 {
398 	GTypeInstance  gTypeInstance;
399 	
400 	/*< private >*/
401 	uint refCount;
402 	GData* qdata;
403 }
404 
405 struct GValue
406 {
407 	version(Windows)
408 	{
409 		GType		g_type;
410 		union Data
411 		{
412 			gint     v_int;
413 			guint    v_uint;
414 			glong    v_long;
415 			gulong   v_ulong;
416 			gint64   v_int64;
417 			guint64  v_uint64;
418 			gfloat   v_float;
419 			gdouble  v_double;
420 			gpointer v_pointer;
421 		};
422 	}
423 	else
424 	{
425 		align(4)
426 		{
427 			GType		g_type;
428 			union Data
429 			{
430 				gint     v_int;
431 				guint    v_uint;
432 				glong    v_long;
433 				gulong   v_ulong;
434 				gint64   v_int64;
435 				guint64  v_uint64;
436 				gfloat   v_float;
437 				gdouble  v_double;
438 				gpointer v_pointer;
439 			};
440 		}
441 	}
442 	Data data1;
443 	Data data2;
444 }
445 
446 /**
447  * This structure is used to provide the type system with the information
448  * required to initialize and destruct (finalize) a type's class and
449  * its instances.
450  * The initialized structure is passed to the g_type_register_static() function
451  * (or is copied into the provided GTypeInfo structure in the
452  * g_type_plugin_complete_type_info()). The type system will perform a deep
453  * copy of this structure, so its memory does not need to be persistent
454  * across invocation of g_type_register_static().
455  * guint16 class_size;
456  * Size of the class structure (required for interface, classed and instantiatable types).
457  * GBaseInitFunc base_init;
458  * Location of the base initialization function (optional).
459  * GBaseFinalizeFunc base_finalize;
460  * Location of the base finalization function (optional).
461  * GClassInitFunc class_init;
462  * Location of the class initialization function for
463  * classed and instantiatable types. Location of the default vtable
464  * inititalization function for interface types. (optional) This function
465  * is used both to fill in virtual functions in the class or default vtable,
466  * and to do type-specific setup such as registering signals and object
467  * properties.
468  * GClassFinalizeFunc class_finalize;
469  * Location of the class finalization function for
470  * classed and instantiatable types. Location fo the default vtable
471  * finalization function for interface types. (optional)
472  * gconstpointer class_data;
473  * User-supplied data passed to the class init/finalize functions.
474  * guint16 instance_size;
475  * Size of the instance (object) structure (required for instantiatable types only).
476  * guint16 n_preallocs;
477  * Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the slice allocator now.
478  * GInstanceInitFunc instance_init;
479  * Location of the instance initialization function (optional, for instantiatable types only).
480  * const GTypeValueTable *value_table;
481  * A GTypeValueTable function table for generic handling of GValues of this type (usually only
482  * useful for fundamental types).
483  */
484 public struct GTypeInfo
485 {
486 	/+* iface types, classed types, instantiated types +/
487 	ushort classSize;
488 	GBaseInitFunc baseInit;
489 	GBaseFinalizeFunc baseFinalize;
490 	/+* iface types, classed types, instantiated types +/
491 	GClassInitFunc classInit;
492 	GClassFinalizeFunc classFinalize;
493 	void* classData;
494 	/+* instantiated types +/
495 	ushort instanceSize;
496 	ushort nPreallocs;
497 	GInstanceInitFunc instanceInit;
498 	/+* value handling +/
499 	GTypeValueTable *valueTable;
500 }
501 
502 
503 /**
504  * A structure that provides information to the type system which is
505  * used specifically for managing fundamental types.
506  * GTypeFundamentalFlags type_flags;
507  * GTypeFundamentalFlags describing the characteristics of the fundamental type
508  */
509 public struct GTypeFundamentalInfo
510 {
511 	GTypeFundamentalFlags typeFlags;
512 }
513 
514 
515 /**
516  * A structure that provides information to the type system which is
517  * used specifically for managing interface types.
518  * GInterfaceInitFunc interface_init;
519  * location of the interface initialization function
520  * GInterfaceFinalizeFunc interface_finalize;
521  * location of the interface finalization function
522  * gpointer interface_data;
523  * user-supplied data passed to the interface init/finalize functions
524  */
525 public struct GInterfaceInfo
526 {
527 	GInterfaceInitFunc interfaceInit;
528 	GInterfaceFinalizeFunc interfaceFinalize;
529 	void* interfaceData;
530 }
531 
532 
533 /**
534  * value_init ()
535  * Default initialize values contents by poking values
536  * directly into the value->data array. The data array of
537  * the GValue passed into this function was zero-filled
538  * with memset(), so no care has to
539  * be taken to free any
540  * old contents. E.g. for the implementation of a string
541  * value that may never be NULL, the implementation might
542  * look like:
543  * $(DDOC_COMMENT example)
544  * value_free ()
545  * Free any old contents that might be left in the
546  * data array of the passed in value. No resources may
547  * remain allocated through the GValue contents after
548  * this function returns. E.g. for our above string type:
549  * $(DDOC_COMMENT example)
550  * value_copy ()
551  * dest_value is a GValue with zero-filled data section
552  * and src_value is a properly setup GValue of same or
553  * derived type.
554  * The purpose of this function is to copy the contents of
555  * src_value into dest_value in a way, that even after
556  * src_value has been freed, the contents of dest_value
557  * remain valid. String type example:
558  * $(DDOC_COMMENT example)
559  * value_peek_pointer ()
560  * If the value contents fit into a pointer, such as objects
561  * or strings, return this pointer, so the caller can peek at
562  * the current contents. To extend on our above string example:
563  * $(DDOC_COMMENT example)
564  * const gchar *collect_format;
565  * A string format describing how to collect the contents of
566  * this value bit-by-bit. Each character in the format represents
567  * an argument to be collected, and the characters themselves indicate
568  * the type of the argument. Currently supported arguments are:
569  * 'i' - Integers. passed as collect_values[].v_int.
570  * 'l' - Longs. passed as collect_values[].v_long.
571  * 'd' - Doubles. passed as collect_values[].v_double.
572  * 'p' - Pointers. passed as collect_values[].v_pointer.
573  * It should be noted that for variable argument list construction,
574  * ANSI C promotes every type smaller than an integer to an int, and
575  * floats to doubles. So for collection of short int or char, 'i'
576  * needs to be used, and for collection of floats 'd'.
577  * collect_value ()
578  * The collect_value() function is responsible for converting the
579  * values collected from a variable argument list into contents
580  * suitable for storage in a GValue. This function should setup
581  * value similar to value_init(); e.g. for a string value that
582  * does not allow NULL pointers, it needs to either spew an error,
583  * or do an implicit conversion by storing an empty string.
584  * The value passed in to this function has a zero-filled data
585  * array, so just like for value_init() it is guaranteed to not
586  * contain any old contents that might need freeing.
587  * n_collect_values is exactly the string length of collect_format,
588  * and collect_values is an array of unions GTypeCValue with
589  * length n_collect_values, containing the collected values
590  * according to collect_format.
591  * collect_flags is an argument provided as a hint by the caller.
592  * It may contain the flag G_VALUE_NOCOPY_CONTENTS indicating,
593  * that the collected value contents may be considered "static"
594  * for the duration of the value lifetime.
595  * Thus an extra copy of the contents stored in collect_values is
596  * not required for assignment to value.
597  * For our above string example, we continue with:
598  * $(DDOC_COMMENT example)
599  * It should be noted, that it is generally a bad idea to follow the
600  * G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to
601  * reentrancy requirements and reference count assertions performed
602  * by the signal emission code, reference counts should always be
603  * incremented for reference counted contents stored in the value->data
604  * array. To deviate from our string example for a moment, and taking
605  * a look at an exemplary implementation for collect_value() of
606  * GObject:
607  * $(DDOC_COMMENT example)
608  * The reference count for valid objects is always incremented,
609  * regardless of collect_flags. For invalid objects, the example
610  * const gchar *lcopy_format;
611  * lcopy_value ()
612  */
613 public struct GTypeValueTable
614 {
615 	extern(C) void function(GValue* value) valueInit;
616 	extern(C) void function(GValue* value) valueFree;
617 	extern(C) void function(GValue* srcValue, GValue* destValue) valueCopy;
618 	/+* varargs functionality (optional) +/
619 	extern(C) void* function(GValue* value) valuePeekPointer;
620 	char *collectFormat;
621 	extern(C) char* function(GValue* value, uint nCollectValues, GTypeCValue* collectValues, uint collectFlags) collectValue;
622 	char *lcopyFormat;
623 	extern(C) char* function(GValue* value, uint nCollectValues, GTypeCValue* collectValues, uint collectFlags) lcopyValue;
624 }
625 
626 
627 /**
628  * A structure holding information for a specific type. It is
629  * filled in by the g_type_query() function.
630  * GType type;
631  * the GType value of the type.
632  * const gchar *type_name;
633  * the name of the type.
634  * guint class_size;
635  * the size of the class structure.
636  * guint instance_size;
637  * the size of the instance structure.
638  */
639 public struct GTypeQuery
640 {
641 	GType type;
642 	char *typeName;
643 	uint classSize;
644 	uint instanceSize;
645 }
646 
647 
648 /**
649  * Main Gtk struct.
650  * The GTypePlugin typedef is used as a placeholder
651  * for objects that implement the GTypePlugin
652  * interface.
653  */
654 public struct GTypePlugin{}
655 
656 
657 /**
658  * The GTypePlugin interface is used by the type system in order to handle
659  * the lifecycle of dynamically loaded types.
660  * GTypePluginUse use_plugin;
661  * Increases the use count of the plugin.
662  * GTypePluginUnuse unuse_plugin;
663  * Decreases the use count of the plugin.
664  * GTypePluginCompleteTypeInfo complete_type_info;
665  * Fills in the GTypeInfo and
666  * GTypeValueTable structs for the type. The structs are initialized
667  * with memset(s, 0, sizeof (s)) before calling
668  * this function.
669  * GTypePluginCompleteInterfaceInfo complete_interface_info;
670  * Fills in missing parts of the GInterfaceInfo
671  * for the interface. The structs is initialized with
672  * memset(s, 0, sizeof (s)) before calling
673  * this function.
674  */
675 public struct GTypePluginClass
676 {
677 	GTypePluginUse usePlugin;
678 	GTypePluginUnuse unusePlugin;
679 	GTypePluginCompleteTypeInfo completeTypeInfo;
680 	GTypePluginCompleteInterfaceInfo completeInterfaceInfo;
681 }
682 
683 
684 /**
685  * Main Gtk struct.
686  * The members of the GTypeModule structure should not
687  * be accessed directly, except for the name field.
688  * gchar *name;
689  * the name of the module
690  */
691 public struct GTypeModule
692 {
693 	char *name;
694 }
695 
696 
697 /**
698  * In order to implement dynamic loading of types based on GTypeModule,
699  * the load and unload functions in GTypeModuleClass must be implemented.
700  * GObjectClass parent_class;
701  * the parent class
702  * load ()
703  * loads the module and registers one or more types using
704  * g_type_module_register_type().
705  * unload ()
706  * unloads the module
707  */
708 public struct GTypeModuleClass
709 {
710 	GObjectClass parentClass;
711 	extern(C) int function(GTypeModule* modul)  load;
712 	extern(C) void function(GTypeModule* modul)  unload;
713 }
714 
715 
716 /**
717  * The GObjectConstructParam struct is an auxiliary
718  * structure used to hand GParamSpec/GValue pairs to the constructor of
719  * a GObjectClass.
720  * GParamSpec *pspec;
721  * the GParamSpec of the construct parameter
722  * GValue *value;
723  * the value to set the parameter to
724  */
725 public struct GObjectConstructParam
726 {
727 	GParamSpec *pspec;
728 	GValue *value;
729 }
730 
731 
732 /**
733  * The GParameter struct is an auxiliary structure used
734  * to hand parameter name/value pairs to g_object_newv().
735  * const gchar *name;
736  * the parameter name
737  * GValue value;
738  * the parameter value
739  */
740 public struct GParameter
741 {
742 	char *name;
743 	GValue value;
744 }
745 
746 
747 /**
748  * All the fields in the GInitiallyUnowned structure
749  * are private to the GInitiallyUnowned implementation and should never be
750  * accessed directly.
751  */
752 public struct GInitiallyUnowned{}
753 
754 
755 /**
756  * The class structure for the GInitiallyUnowned type.
757  */
758 public struct GInitiallyUnownedClass{}
759 
760 
761 /**
762  * A structure containing a weak reference to a GObject. It can either
763  * be empty (i.e. point to NULL), or point to an object for as long as
764  * at least one "strong" reference to that object exists. Before the
765  * object's GObjectClass.dispose method is called, every GWeakRef
766  * associated with becomes empty (i.e. points to NULL).
767  * Like GValue, GWeakRef can be statically allocated, stack- or
768  * heap-allocated, or embedded in larger structures.
769  * Unlike g_object_weak_ref() and g_object_add_weak_pointer(), this weak
770  * reference is thread-safe: converting a weak pointer to a reference is
771  * atomic with respect to invalidation of weak pointers to destroyed
772  * objects.
773  * If the object's GObjectClass.dispose method results in additional
774  * references to the object being held, any GWeakRefs taken
775  * before it was disposed will continue to point to NULL. If
776  * GWeakRefs are taken after the object is disposed and
777  * re-referenced, they will continue to point to it until its refcount
778  * goes back to zero, at which point they too will be invalidated.
779  */
780 public struct GWeakRef{}
781 
782 
783 /**
784  * The class of an enumeration type holds information about its
785  * possible values.
786  * GTypeClass g_type_class;
787  * the parent class
788  * gint minimum;
789  * the smallest possible value.
790  * gint maximum;
791  * the largest possible value.
792  * guint n_values;
793  * the number of possible values.
794  * GEnumValue *values;
795  * an array of GEnumValue structs describing the
796  * individual values.
797  */
798 public struct GEnumClass
799 {
800 	GTypeClass gTypeClass;
801 	int minimum;
802 	int maximum;
803 	uint nValues;
804 	GEnumValue *values;
805 }
806 
807 
808 /**
809  * The class of a flags type holds information about its
810  * possible values.
811  * GTypeClass g_type_class;
812  * the parent class
813  * guint mask;
814  * a mask covering all possible values.
815  * guint n_values;
816  * the number of possible values.
817  * GFlagsValue *values;
818  * an array of GFlagsValue structs describing the
819  * individual values.
820  */
821 public struct GFlagsClass
822 {
823 	GTypeClass gTypeClass;
824 	uint mask;
825 	uint nValues;
826 	GFlagsValue *values;
827 }
828 
829 
830 /**
831  * Main Gtk struct.
832  * A structure which contains a single enum value, its name, and its
833  * nickname.
834  * gint value;
835  * the enum value
836  * const gchar *value_name;
837  * the name of the value
838  * const gchar *value_nick;
839  * the nickname of the value
840  */
841 public struct GEnumValue
842 {
843 	int value;
844 	char *valueName;
845 	char *valueNick;
846 }
847 
848 
849 /**
850  * A structure which contains a single flags value, its name, and its
851  * nickname.
852  * guint value;
853  * the flags value
854  * const gchar *value_name;
855  * the name of the value
856  * const gchar *value_nick;
857  * the nickname of the value
858  */
859 public struct GFlagsValue
860 {
861 	uint value;
862 	char *valueName;
863 	char *valueNick;
864 }
865 
866 
867 /**
868  * A GParamSpec derived structure that contains the meta data for boolean properties.
869  * GParamSpec parent_instance;
870  * private GParamSpec portion
871  * gboolean default_value;
872  * default value for the property specified
873  */
874 public struct GParamSpecBoolean
875 {
876 	GParamSpec parentInstance;
877 	int defaultValue;
878 }
879 
880 
881 /**
882  * A GParamSpec derived structure that contains the meta data for character properties.
883  * GParamSpec parent_instance;
884  * private GParamSpec portion
885  * gint8 minimum;
886  * minimum value for the property specified
887  * gint8 maximum;
888  * maximum value for the property specified
889  * gint8 default_value;
890  * default value for the property specified
891  */
892 public struct GParamSpecChar
893 {
894 	GParamSpec parentInstance;
895 	byte minimum;
896 	byte maximum;
897 	byte defaultValue;
898 }
899 
900 
901 /**
902  * A GParamSpec derived structure that contains the meta data for unsigned character properties.
903  * GParamSpec parent_instance;
904  * private GParamSpec portion
905  * guint8 minimum;
906  * minimum value for the property specified
907  * guint8 maximum;
908  * maximum value for the property specified
909  * guint8 default_value;
910  * default value for the property specified
911  */
912 public struct GParamSpecUChar
913 {
914 	GParamSpec parentInstance;
915 	ubyte minimum;
916 	ubyte maximum;
917 	ubyte defaultValue;
918 }
919 
920 
921 /**
922  * A GParamSpec derived structure that contains the meta data for integer properties.
923  * GParamSpec parent_instance;
924  * private GParamSpec portion
925  * gint minimum;
926  * minimum value for the property specified
927  * gint maximum;
928  * maximum value for the property specified
929  * gint default_value;
930  * default value for the property specified
931  */
932 public struct GParamSpecInt
933 {
934 	GParamSpec parentInstance;
935 	int minimum;
936 	int maximum;
937 	int defaultValue;
938 }
939 
940 
941 /**
942  * A GParamSpec derived structure that contains the meta data for unsigned integer properties.
943  * GParamSpec parent_instance;
944  * private GParamSpec portion
945  * guint minimum;
946  * minimum value for the property specified
947  * guint maximum;
948  * maximum value for the property specified
949  * guint default_value;
950  * default value for the property specified
951  */
952 public struct GParamSpecUInt
953 {
954 	GParamSpec parentInstance;
955 	uint minimum;
956 	uint maximum;
957 	uint defaultValue;
958 }
959 
960 
961 /**
962  * A GParamSpec derived structure that contains the meta data for long integer properties.
963  * GParamSpec parent_instance;
964  * private GParamSpec portion
965  * glong minimum;
966  * minimum value for the property specified
967  * glong maximum;
968  * maximum value for the property specified
969  * glong default_value;
970  * default value for the property specified
971  */
972 public struct GParamSpecLong
973 {
974 	GParamSpec parentInstance;
975 	glong minimum;
976 	glong maximum;
977 	glong defaultValue;
978 }
979 
980 
981 /**
982  * A GParamSpec derived structure that contains the meta data for unsigned long integer properties.
983  * GParamSpec parent_instance;
984  * private GParamSpec portion
985  * gulong minimum;
986  * minimum value for the property specified
987  * gulong maximum;
988  * maximum value for the property specified
989  * gulong default_value;
990  * default value for the property specified
991  */
992 public struct GParamSpecULong
993 {
994 	GParamSpec parentInstance;
995 	gulong minimum;
996 	gulong maximum;
997 	gulong defaultValue;
998 }
999 
1000 
1001 /**
1002  * A GParamSpec derived structure that contains the meta data for 64bit integer properties.
1003  * GParamSpec parent_instance;
1004  * private GParamSpec portion
1005  * gint64 minimum;
1006  * minimum value for the property specified
1007  * gint64 maximum;
1008  * maximum value for the property specified
1009  * gint64 default_value;
1010  * default value for the property specified
1011  */
1012 public struct GParamSpecInt64
1013 {
1014 	GParamSpec parentInstance;
1015 	long minimum;
1016 	long maximum;
1017 	long defaultValue;
1018 }
1019 
1020 
1021 /**
1022  * A GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.
1023  * GParamSpec parent_instance;
1024  * private GParamSpec portion
1025  * guint64 minimum;
1026  * minimum value for the property specified
1027  * guint64 maximum;
1028  * maximum value for the property specified
1029  * guint64 default_value;
1030  * default value for the property specified
1031  */
1032 public struct GParamSpecUInt64
1033 {
1034 	GParamSpec parentInstance;
1035 	ulong minimum;
1036 	ulong maximum;
1037 	ulong defaultValue;
1038 }
1039 
1040 
1041 /**
1042  * A GParamSpec derived structure that contains the meta data for float properties.
1043  * GParamSpec parent_instance;
1044  * private GParamSpec portion
1045  * gfloat minimum;
1046  * minimum value for the property specified
1047  * gfloat maximum;
1048  * maximum value for the property specified
1049  * gfloat default_value;
1050  * default value for the property specified
1051  * gfloat epsilon;
1052  * values closer than epsilon will be considered identical
1053  * by g_param_values_cmp(); the default value is 1e-30.
1054  */
1055 public struct GParamSpecFloat
1056 {
1057 	GParamSpec parentInstance;
1058 	float minimum;
1059 	float maximum;
1060 	float defaultValue;
1061 	float epsilon;
1062 }
1063 
1064 
1065 /**
1066  * A GParamSpec derived structure that contains the meta data for double properties.
1067  * GParamSpec parent_instance;
1068  * private GParamSpec portion
1069  * gdouble minimum;
1070  * minimum value for the property specified
1071  * gdouble maximum;
1072  * maximum value for the property specified
1073  * gdouble default_value;
1074  * default value for the property specified
1075  * gdouble epsilon;
1076  * values closer than epsilon will be considered identical
1077  * by g_param_values_cmp(); the default value is 1e-90.
1078  */
1079 public struct GParamSpecDouble
1080 {
1081 	GParamSpec parentInstance;
1082 	double minimum;
1083 	double maximum;
1084 	double defaultValue;
1085 	double epsilon;
1086 }
1087 
1088 
1089 /**
1090  * A GParamSpec derived structure that contains the meta data for enum
1091  * properties.
1092  * GParamSpec parent_instance;
1093  * private GParamSpec portion
1094  * GEnumClass *enum_class;
1095  * the GEnumClass for the enum
1096  * gint default_value;
1097  * default value for the property specified
1098  */
1099 public struct GParamSpecEnum
1100 {
1101 	GParamSpec parentInstance;
1102 	GEnumClass *enumClass;
1103 	int defaultValue;
1104 }
1105 
1106 
1107 /**
1108  * A GParamSpec derived structure that contains the meta data for flags
1109  * properties.
1110  * GParamSpec parent_instance;
1111  * private GParamSpec portion
1112  * GFlagsClass *flags_class;
1113  * the GFlagsClass for the flags
1114  * guint default_value;
1115  * default value for the property specified
1116  */
1117 public struct GParamSpecFlags
1118 {
1119 	GParamSpec parentInstance;
1120 	GFlagsClass *flagsClass;
1121 	uint defaultValue;
1122 }
1123 
1124 
1125 /**
1126  * A GParamSpec derived structure that contains the meta data for string
1127  * properties.
1128  * GParamSpec parent_instance;
1129  * private GParamSpec portion
1130  * gchar *default_value;
1131  * default value for the property specified
1132  * gchar *cset_first;
1133  * a string containing the allowed values for the first byte
1134  * gchar *cset_nth;
1135  * a string containing the allowed values for the subsequent bytes
1136  * gchar substitutor;
1137  * the replacement byte for bytes which don't match cset_first or cset_nth.
1138  * guint null_fold_if_empty : 1;
1139  * replace empty string by NULL
1140  * guint ensure_non_null : 1;
1141  * replace NULL strings by an empty string
1142  */
1143 public struct GParamSpecString
1144 {
1145 	GParamSpec parentInstance;
1146 	char *defaultValue;
1147 	char *csetFirst;
1148 	char *csetNth;
1149 	char substitutor;
1150 	uint bitfield0;
1151 	//uint nullFoldIfEmpty : 1;
1152 	//uint ensureNonNull : 1;
1153 }
1154 
1155 
1156 /**
1157  * A GParamSpec derived structure that contains the meta data for G_TYPE_PARAM
1158  * properties.
1159  * GParamSpec parent_instance;
1160  * private GParamSpec portion
1161  */
1162 public struct GParamSpecParam
1163 {
1164 	GParamSpec parentInstance;
1165 }
1166 
1167 
1168 /**
1169  * A GParamSpec derived structure that contains the meta data for boxed properties.
1170  * GParamSpec parent_instance;
1171  * private GParamSpec portion
1172  */
1173 public struct GParamSpecBoxed
1174 {
1175 	GParamSpec parentInstance;
1176 }
1177 
1178 
1179 /**
1180  * A GParamSpec derived structure that contains the meta data for pointer properties.
1181  * GParamSpec parent_instance;
1182  * private GParamSpec portion
1183  */
1184 public struct GParamSpecPointer
1185 {
1186 	GParamSpec parentInstance;
1187 }
1188 
1189 
1190 /**
1191  * A GParamSpec derived structure that contains the meta data for object properties.
1192  * GParamSpec parent_instance;
1193  * private GParamSpec portion
1194  */
1195 public struct GParamSpecObject
1196 {
1197 	GParamSpec parentInstance;
1198 }
1199 
1200 
1201 /**
1202  * A GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.
1203  * GParamSpec parent_instance;
1204  * private GParamSpec portion
1205  * gunichar default_value;
1206  * default value for the property specified
1207  */
1208 public struct GParamSpecUnichar
1209 {
1210 	GParamSpec parentInstance;
1211 	gunichar defaultValue;
1212 }
1213 
1214 
1215 /**
1216  * A GParamSpec derived structure that contains the meta data for GValueArray properties.
1217  * GParamSpec parent_instance;
1218  * private GParamSpec portion
1219  * GParamSpec *element_spec;
1220  * a GParamSpec describing the elements contained in arrays of this property, may be NULL
1221  * guint fixed_n_elements;
1222  * if greater than 0, arrays of this property will always have this many elements
1223  */
1224 public struct GParamSpecValueArray
1225 {
1226 	GParamSpec parentInstance;
1227 	GParamSpec *elementSpec;
1228 	uint fixedNElements;
1229 }
1230 
1231 
1232 /**
1233  * This is a type of GParamSpec type that simply redirects operations to
1234  * another paramspec. All operations other than getting or
1235  * setting the value are redirected, including accessing the nick and
1236  * blurb, validating a value, and so forth. See
1237  * g_param_spec_get_redirect_target() for retrieving the overidden
1238  * property. GParamSpecOverride is used in implementing
1239  * g_object_class_override_property(), and will not be directly useful
1240  * unless you are implementing a new base type similar to GObject.
1241  * Since 2.4
1242  */
1243 public struct GParamSpecOverride{}
1244 
1245 
1246 /**
1247  * A GParamSpec derived structure that contains the meta data for GType properties.
1248  * GParamSpec parent_instance;
1249  * private GParamSpec portion
1250  * GType is_a_type;
1251  * a GType whose subtypes can occur as values
1252  * Since 2.10
1253  */
1254 public struct GParamSpecGType
1255 {
1256 	GParamSpec parentInstance;
1257 	GType isAType;
1258 }
1259 
1260 
1261 /**
1262  * A GParamSpec derived structure that contains the meta data for GVariant properties.
1263  * GParamSpec parent_instance;
1264  * private GParamSpec portion
1265  * GVariantType *type;
1266  * a GVariantType, or NULL
1267  * GVariant *default_value;
1268  * a GVariant, or NULL
1269  * Since 2.26
1270  */
1271 public struct GParamSpecVariant
1272 {
1273 	GParamSpec parentInstance;
1274 	GVariantType *type;
1275 	GVariant *defaultValue;
1276 }
1277 
1278 
1279 /**
1280  * Main Gtk struct.
1281  * All other fields of the GParamSpec struct are private and
1282  * should not be used directly.
1283  * GTypeInstance g_type_instance;
1284  * private GTypeInstance portion
1285  * const gchar *name;
1286  * name of this parameter: always an interned string
1287  * GParamFlags flags;
1288  * GParamFlags flags for this parameter
1289  * GType value_type;
1290  * the GValue type for this parameter
1291  * GType owner_type;
1292  * GType type that uses (introduces) this parameter
1293  */
1294 public struct GParamSpec
1295 {
1296 	GTypeInstance gTypeInstance;
1297 	char *name; /+* interned string +/
1298 	GParamFlags flags;
1299 	GType valueType;
1300 	GType ownerType; /+* class or iface using this property +/
1301 }
1302 
1303 
1304 /**
1305  * The class structure for the GParamSpec type.
1306  * Normally, GParamSpec classes are filled by
1307  * g_param_type_register_static().
1308  * GTypeClass g_type_class;
1309  * the parent class
1310  * GType value_type;
1311  * the GValue type for this parameter
1312  * finalize ()
1313  * The instance finalization function (optional), should chain
1314  * up to the finalize method of the parent class.
1315  * value_set_default ()
1316  * Resets a value to the default value for this type
1317  * (recommended, the default is g_value_reset()), see
1318  * g_param_value_set_default().
1319  * value_validate ()
1320  * Ensures that the contents of value comply with the
1321  * specifications set out by this type (optional), see
1322  * g_param_value_validate().
1323  * values_cmp ()
1324  * Compares value1 with value2 according to this type
1325  * (recommended, the default is memcmp()), see g_param_values_cmp().
1326  */
1327 public struct GParamSpecClass
1328 {
1329 	GTypeClass gTypeClass;
1330 	GType valueType;
1331 	extern(C) void function(GParamSpec* pspec) finalize;
1332 	/+* GParam methods +/
1333 	extern(C) void function(GParamSpec* pspec, GValue* value) valueSetDefault;
1334 	extern(C) int function(GParamSpec* pspec, GValue* value) valueValidate;
1335 	extern(C) int function(GParamSpec* pspec, GValue* value1, GValue* value2) valuesCmp;
1336 }
1337 
1338 
1339 /**
1340  * This structure is used to provide the type system with the information
1341  * required to initialize and destruct (finalize) a parameter's class and
1342  * instances thereof.
1343  * The initialized structure is passed to the g_param_type_register_static()
1344  * The type system will perform a deep copy of this structure, so its memory
1345  * does not need to be persistent across invocation of
1346  * g_param_type_register_static().
1347  * guint16 instance_size;
1348  * Size of the instance (object) structure.
1349  * guint16 n_preallocs;
1350  * Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the slice allocator now.
1351  * instance_init ()
1352  * Location of the instance initialization function (optional).
1353  * GType value_type;
1354  * The GType of values conforming to this GParamSpec
1355  * finalize ()
1356  * The instance finalization function (optional).
1357  * value_set_default ()
1358  * Resets a value to the default value for pspec
1359  * (recommended, the default is g_value_reset()), see
1360  * g_param_value_set_default().
1361  * value_validate ()
1362  * Ensures that the contents of value comply with the
1363  * specifications set out by pspec (optional), see
1364  * g_param_value_validate().
1365  * values_cmp ()
1366  * Compares value1 with value2 according to pspec
1367  * (recommended, the default is memcmp()), see g_param_values_cmp().
1368  */
1369 public struct GParamSpecTypeInfo
1370 {
1371 	/+* type system portion +/
1372 	ushort instanceSize; /+* obligatory +/
1373 	ushort nPreallocs; /+* optional +/
1374 	extern(C) void function(GParamSpec* pspec) instanceInit; /+* optional +/
1375 	/+* class portion +/
1376 	GType valueType; /+* obligatory +/
1377 	extern(C) void function(GParamSpec* pspec) finalize; /+* optional +/
1378 	extern(C) void function(GParamSpec* pspec, /+* recommended +/GValue *value) valueSetDefault;
1379 	extern(C) int function(GParamSpec* pspec, /+* optional +/GValue *value) valueValidate;
1380 	extern(C) int function(GParamSpec* pspec, /+* recommended +/GValue *value1, GValue* value2) valuesCmp;
1381 }
1382 
1383 
1384 /**
1385  * A GParamSpecPool maintains a collection of GParamSpecs which can be
1386  * quickly accessed by owner and name. The implementation of the GObject property
1387  * system uses such a pool to store the GParamSpecs of the properties all object
1388  * types.
1389  */
1390 public struct GParamSpecPool{}
1391 
1392 
1393 /**
1394  * The GSignalInvocationHint structure is used to pass on additional information
1395  * to callbacks during a signal emission.
1396  * guint signal_id;
1397  * The signal id of the signal invoking the callback
1398  * GQuark detail;
1399  * The detail passed on for this emission
1400  * GSignalFlags run_type;
1401  * The stage the signal emission is currently in, this
1402  * field will contain one of G_SIGNAL_RUN_FIRST,
1403  * G_SIGNAL_RUN_LAST or G_SIGNAL_RUN_CLEANUP.
1404  */
1405 public struct GSignalInvocationHint
1406 {
1407 	uint signalId;
1408 	GQuark detail;
1409 	GSignalFlags runType;
1410 }
1411 
1412 
1413 /**
1414  * A structure holding in-depth information for a specific signal. It is
1415  * filled in by the g_signal_query() function.
1416  * guint signal_id;
1417  * The signal id of the signal being queried, or 0 if the
1418  * signal to be queried was unknown.
1419  * const gchar *signal_name;
1420  * The signal name.
1421  * GType itype;
1422  * The interface/instance type that this signal can be emitted for.
1423  * GSignalFlags signal_flags;
1424  * The signal flags as passed in to g_signal_new().
1425  * GType return_type;
1426  * The return type for user callbacks.
1427  * guint n_params;
1428  * The number of parameters that user callbacks take.
1429  * const GType *param_types;
1430  * The individual parameter types for
1431  * user callbacks, note that the effective callback signature is:
1432  * @return_type callback (gpointer data1,
1433  * [param_types param_names,]
1434  * gpointer data2);
1435  * . [array length=n_params]
1436  */
1437 public struct GSignalQuery
1438 {
1439 	uint signalId;
1440 	char *signalName;
1441 	GType itype;
1442 	GSignalFlags signalFlags;
1443 	GType returnType; /+* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag +/
1444 	uint nParams;
1445 	GType *paramTypes; /+* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag +/
1446 }
1447 
1448 
1449 /**
1450  * Main Gtk struct.
1451  * A GClosure represents a callback supplied by the programmer.
1452  * volatile 	guint in_marshal : 1;
1453  * Indicates whether the closure is currently being invoked with
1454  * g_closure_invoke()
1455  * volatile 	guint is_invalid : 1;
1456  * Indicates whether the closure has been invalidated by
1457  * g_closure_invalidate()
1458  */
1459 public struct GClosure
1460 {
1461 	uint bitfield0;
1462 	//uint inMarshal : 1;
1463 	//uint isInvalid : 1;
1464 }
1465 
1466 
1467 /**
1468  * A GCClosure is a specialization of GClosure for C function callbacks.
1469  * GClosure closure;
1470  * the GClosure
1471  * gpointer callback;
1472  * the callback function
1473  */
1474 public struct GCClosure
1475 {
1476 	GClosure closure;
1477 	void* callback;
1478 }
1479 
1480 
1481 /**
1482  * Main Gtk struct.
1483  * A GValueArray contains an array of GValue elements.
1484  * guint n_values;
1485  * number of values contained in the array
1486  * GValue *values;
1487  * array of values
1488  */
1489 public struct GValueArray
1490 {
1491 	uint nValues;
1492 	GValue *values;
1493 }
1494 
1495 
1496 /**
1497  * Main Gtk struct.
1498  * GBinding is an opaque structure whose members
1499  * cannot be accessed directly.
1500  * Since 2.26
1501  */
1502 public struct GBinding{}
1503 
1504 
1505 /*
1506  * The fundamental type which is the ancestor of type.
1507  * Fundamental types are types that serve as ultimate bases for the derived types,
1508  * thus they are the roots of distinct inheritance hierarchies.
1509  * type :
1510  * A GType value.
1511  */
1512 // TODO
1513 // #define G_TYPE_FUNDAMENTAL(type) (g_type_fundamental (type))
1514 
1515 /*
1516  * Get the type ID for the fundamental type number x.
1517  * Use g_type_fundamental_next() instead of this macro to create new fundamental
1518  * types.
1519  * x :
1520  * the fundamental type number.
1521  * Returns :
1522  * the GType
1523  */
1524 // TODO
1525 // #define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
1526 
1527 /*
1528  * Checks if type is an abstract type. An abstract type cannot be
1529  * instantiated and is normally used as an abstract base class for
1530  * derived classes.
1531  * type :
1532  * A GType value.
1533  * Returns :
1534  * TRUE on success.
1535  */
1536 // TODO
1537 // #define G_TYPE_IS_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_ABSTRACT))
1538 
1539 /*
1540  * Checks if type is derived (or in object-oriented terminology:
1541  * inherited) from another type (this holds true for all non-fundamental
1542  * types).
1543  * type :
1544  * A GType value.
1545  * Returns :
1546  * TRUE on success.
1547  */
1548 // TODO
1549 // #define G_TYPE_IS_DERIVED(type) ((type) > G_TYPE_FUNDAMENTAL_MAX)
1550 
1551 /*
1552  * Checks if type is a fundamental type.
1553  * type :
1554  * A GType value.
1555  * Returns :
1556  * TRUE on success.
1557  */
1558 // TODO
1559 // #define G_TYPE_IS_FUNDAMENTAL(type) ((type) <= G_TYPE_FUNDAMENTAL_MAX)
1560 
1561 /*
1562  * Checks if type is a value type and can be used with g_value_init().
1563  * type :
1564  * A GType value.
1565  * Returns :
1566  * TRUE on success.
1567  */
1568 // TODO
1569 // #define G_TYPE_IS_VALUE_TYPE(type) (g_type_check_is_value_type (type))
1570 
1571 /*
1572  * Checks if type has a GTypeValueTable.
1573  * type :
1574  * A GType value.
1575  * Returns :
1576  * TRUE on success.
1577  */
1578 // TODO
1579 // #define G_TYPE_HAS_VALUE_TABLE(type) (g_type_value_table_peek (type) != NULL)
1580 
1581 /*
1582  * Checks if type is a classed type.
1583  * type :
1584  * A GType value.
1585  * Returns :
1586  * TRUE on success.
1587  */
1588 // TODO
1589 // #define G_TYPE_IS_CLASSED(type) (g_type_test_flags ((type), G_TYPE_FLAG_CLASSED))
1590 
1591 /*
1592  * Checks if type can be instantiated. Instantiation is the
1593  * process of creating an instance (object) of this type.
1594  * type :
1595  * A GType value.
1596  * Returns :
1597  * TRUE on success.
1598  */
1599 // TODO
1600 // #define G_TYPE_IS_INSTANTIATABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_INSTANTIATABLE))
1601 
1602 /*
1603  * Checks if type is a derivable type. A derivable type can
1604  * be used as the base class of a flat (single-level) class hierarchy.
1605  * type :
1606  * A GType value.
1607  * Returns :
1608  * TRUE on success.
1609  */
1610 // TODO
1611 // #define G_TYPE_IS_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DERIVABLE))
1612 
1613 /*
1614  * Checks if type is a deep derivable type. A deep derivable type
1615  * can be used as the base class of a deep (multi-level) class hierarchy.
1616  * type :
1617  * A GType value.
1618  * Returns :
1619  * TRUE on success.
1620  */
1621 // TODO
1622 // #define G_TYPE_IS_DEEP_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE))
1623 
1624 /*
1625  * Checks if type is an interface type.
1626  * An interface type provides a pure API, the implementation
1627  * of which is provided by another type (which is then said to conform
1628  * to the interface). GLib interfaces are somewhat analogous to Java
1629  * interfaces and C++ classes containing only pure virtual functions,
1630  * with the difference that GType interfaces are not derivable (but see
1631  * g_type_interface_add_prerequisite() for an alternative).
1632  * type :
1633  * A GType value.
1634  * Returns :
1635  * TRUE on success.
1636  */
1637 // TODO
1638 // #define G_TYPE_IS_INTERFACE(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
1639 
1640 /*
1641  * Get the type identifier from a given instance structure.
1642  * This macro should only be used in type implementations.
1643  * instance :
1644  * Location of a valid GTypeInstance structure.
1645  * Returns :
1646  * the GType
1647  */
1648 // TODO
1649 // #define G_TYPE_FROM_INSTANCE(instance) (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
1650 
1651 /*
1652  * Get the type identifier from a given class structure.
1653  * This macro should only be used in type implementations.
1654  * g_class :
1655  * Location of a valid GTypeClass structure.
1656  * Returns :
1657  * the GType
1658  */
1659 // TODO
1660 // #define G_TYPE_FROM_CLASS(g_class) (((GTypeClass*) (g_class))->g_type)
1661 
1662 /*
1663  * Get the type identifier from a given interface structure.
1664  * This macro should only be used in type implementations.
1665  * g_iface :
1666  * Location of a valid GTypeInterface structure.
1667  * Returns :
1668  * the GType
1669  */
1670 // TODO
1671 // #define G_TYPE_FROM_INTERFACE(g_iface) (((GTypeInterface*) (g_iface))->g_type)
1672 
1673 /*
1674  * Get the class structure of a given instance, casted
1675  * to a specified ancestor type g_type of the instance.
1676  * Note that while calling a GInstanceInitFunc(), the class pointer gets
1677  * modified, so it might not always return the expected pointer.
1678  * This macro should only be used in type implementations.
1679  * instance :
1680  * Location of the GTypeInstance structure.
1681  * g_type :
1682  * The GType of the class to be returned.
1683  * c_type :
1684  * The C type of the class structure.
1685  * Returns :
1686  * a pointer to the class structure
1687  */
1688 // TODO
1689 // #define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type) (_G_TYPE_IGC ((instance), (g_type), c_type))
1690 
1691 /*
1692  * Get the interface structure for interface g_type of a given instance.
1693  * This macro should only be used in type implementations.
1694  * instance :
1695  * Location of the GTypeInstance structure.
1696  * g_type :
1697  * The GType of the interface to be returned.
1698  * c_type :
1699  * The C type of the interface structure.
1700  * Returns :
1701  * a pointer to the interface structure
1702  */
1703 // TODO
1704 // #define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
1705 
1706 /*
1707  * Gets the private structure for a particular type.
1708  * The private structure must have been registered in the
1709  * class_init function with g_type_class_add_private().
1710  * This macro should only be used in type implementations.
1711  * instance :
1712  * the instance of a type deriving from private_type.
1713  * g_type :
1714  * the type identifying which private data to retrieve.
1715  * c_type :
1716  * The C type for the private structure.
1717  * Returns :
1718  * a pointer to the private data structure.
1719  * Since 2.4
1720  */
1721 // TODO
1722 // #define G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*) g_type_instance_get_private ((GTypeInstance*) (instance), (g_type)))
1723 
1724 /*
1725  * Gets the private class structure for a particular type.
1726  * The private structure must have been registered in the
1727  * get_type() function with g_type_add_class_private().
1728  * This macro should only be used in type implementations.
1729  * klass :
1730  * the class of a type deriving from private_type.
1731  * g_type :
1732  * the type identifying which private data to retrieve.
1733  * c_type :
1734  * The C type for the private structure.
1735  * Returns :
1736  * a pointer to the private data structure.
1737  * Since 2.24
1738  */
1739 // TODO
1740 // #define G_TYPE_CLASS_GET_PRIVATE(klass, g_type, c_type) ((c_type*) g_type_class_get_private ((GTypeClass*) (klass), (g_type)))
1741 
1742 /*
1743  * Checks if instance is a valid GTypeInstance structure,
1744  * otherwise issues a warning and returns FALSE.
1745  * This macro should only be used in type implementations.
1746  * instance :
1747  * Location of a GTypeInstance structure.
1748  * Returns :
1749  * TRUE on success.
1750  */
1751 // TODO
1752 // #define G_TYPE_CHECK_INSTANCE(instance)				(_G_TYPE_CHI ((GTypeInstance*) (instance)))
1753 
1754 /*
1755  * Checks that instance is an instance of the type identified by g_type
1756  * and issues a warning if this is not the case. Returns instance casted
1757  * to a pointer to c_type.
1758  * This macro should only be used in type implementations.
1759  * instance :
1760  * Location of a GTypeInstance structure.
1761  * g_type :
1762  * The type to be returned.
1763  * c_type :
1764  * The corresponding C type of g_type.
1765  */
1766 // TODO
1767 // #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) (_G_TYPE_CIC ((instance), (g_type), c_type))
1768 
1769 /*
1770  * Checks if instance is an instance of the type identified by g_type.
1771  * This macro should only be used in type implementations.
1772  * instance :
1773  * Location of a GTypeInstance structure.
1774  * g_type :
1775  * The type to be checked
1776  * Returns :
1777  * TRUE on success.
1778  */
1779 // TODO
1780 // #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type) (_G_TYPE_CIT ((instance), (g_type)))
1781 
1782 /*
1783  * Checks that g_class is a class structure of the type identified by g_type
1784  * and issues a warning if this is not the case. Returns g_class casted
1785  * to a pointer to c_type.
1786  * This macro should only be used in type implementations.
1787  * g_class :
1788  * Location of a GTypeClass structure.
1789  * g_type :
1790  * The type to be returned.
1791  * c_type :
1792  * The corresponding C type of class structure of g_type.
1793  */
1794 // TODO
1795 // #define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type) (_G_TYPE_CCC ((g_class), (g_type), c_type))
1796 
1797 /*
1798  * Checks if g_class is a class structure of the type identified by
1799  * g_type.
1800  * This macro should only be used in type implementations.
1801  * g_class :
1802  * Location of a GTypeClass structure.
1803  * g_type :
1804  * The type to be checked.
1805  * Returns :
1806  * TRUE on success.
1807  */
1808 // TODO
1809 // #define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type) (_G_TYPE_CCT ((g_class), (g_type)))
1810 
1811 /*
1812  * Checks if value has been initialized to hold values
1813  * of a value type.
1814  * This macro should only be used in type implementations.
1815  * value :
1816  * a GValue
1817  * Returns :
1818  * TRUE on success.
1819  */
1820 // TODO
1821 // #define G_TYPE_CHECK_VALUE(value)				(_G_TYPE_CHV ((value)))
1822 
1823 /*
1824  * Checks if value has been initialized to hold values
1825  * of type g_type.
1826  * This macro should only be used in type implementations.
1827  * value :
1828  * a GValue
1829  * g_type :
1830  * The type to be checked.
1831  * Returns :
1832  * TRUE on success.
1833  */
1834 // TODO
1835 // #define G_TYPE_CHECK_VALUE_TYPE(value, g_type)			(_G_TYPE_CVH ((value), (g_type)))
1836 
1837 /*
1838  * A convenience macro for type implementations, which declares a
1839  * class initialization function, an instance initialization function (see GTypeInfo for information about
1840  * these) and a static variable named t_n_parent_class pointing to the parent class. Furthermore, it defines
1841  * a *_get_type() function. See G_DEFINE_TYPE_EXTENDED() for an example.
1842  * TN :
1843  * The name of the new type, in Camel case.
1844  * t_n :
1845  * The name of the new type, in lowercase, with words
1846  * separated by '_'.
1847  * T_P :
1848  * The GType of the parent type.
1849  * Since 2.4
1850  */
1851 // TODO
1852 // #define G_DEFINE_TYPE(TN, t_n, T_P)			 G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
1853 
1854 /*
1855  * A convenience macro for type implementations, which declares a
1856  * class initialization function, an instance initialization function (see GTypeInfo for information about
1857  * these), a static variable named t_n_parent_class pointing to the parent class, and adds private
1858  * instance data to the type. Furthermore, it defines a *_get_type() function. See G_DEFINE_TYPE_EXTENDED()
1859  * for an example.
1860  * Note that private structs added with this macros must have a struct
1861  * name of the form TNPrivate.
1862  * TN :
1863  * The name of the new type, in Camel case.
1864  * t_n :
1865  * The name of the new type, in lowercase, with words
1866  * separated by '_'.
1867  * T_P :
1868  * The GType of the parent type.
1869  * Since 2.38
1870  */
1871 // TODO
1872 // #define G_DEFINE_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, G_ADD_PRIVATE (TN))
1873 
1874 /*
1875  * A convenience macro for type implementations.
1876  * Similar to G_DEFINE_TYPE(), but allows you to insert custom code into the
1877  * *_get_type() function, e.g. interface implementations via G_IMPLEMENT_INTERFACE().
1878  * See G_DEFINE_TYPE_EXTENDED() for an example.
1879  * TN :
1880  * The name of the new type, in Camel case.
1881  * t_n :
1882  * The name of the new type in lowercase, with words separated by '_'.
1883  * T_P :
1884  * The GType of the parent type.
1885  * _C_ :
1886  * Custom code that gets inserted in the *_get_type() function.
1887  * Since 2.4
1888  */
1889 // TODO
1890 // #define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_)	 _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
1891 
1892 /*
1893  * A convenience macro for type implementations.
1894  * Similar to G_DEFINE_TYPE(), but defines an abstract type.
1895  * See G_DEFINE_TYPE_EXTENDED() for an example.
1896  * TN :
1897  * The name of the new type, in Camel case.
1898  * t_n :
1899  * The name of the new type, in lowercase, with words
1900  * separated by '_'.
1901  * T_P :
1902  * The GType of the parent type.
1903  * Since 2.4
1904  */
1905 // TODO
1906 // #define G_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P)		 G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {})
1907 
1908 /*
1909  * Similar to G_DEFINE_TYPE_WITH_PRIVATE(), but defines an abstract type.
1910  * See G_DEFINE_TYPE_EXTENDED() for an example.
1911  * TN :
1912  * The name of the new type, in Camel case.
1913  * t_n :
1914  * The name of the new type, in lowercase, with words
1915  * separated by '_'.
1916  * T_P :
1917  * The GType of the parent type.
1918  * Since 2.38
1919  */
1920 // TODO
1921 // #define G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, G_ADD_PRIVATE (TN))
1922 
1923 /*
1924  * A convenience macro for type implementations.
1925  * Similar to G_DEFINE_TYPE_WITH_CODE(), but defines an abstract type and allows you to
1926  * insert custom code into the *_get_type() function, e.g. interface implementations
1927  * via G_IMPLEMENT_INTERFACE(). See G_DEFINE_TYPE_EXTENDED() for an example.
1928  * TN :
1929  * The name of the new type, in Camel case.
1930  * t_n :
1931  * The name of the new type, in lowercase, with words
1932  * separated by '_'.
1933  * T_P :
1934  * The GType of the parent type.
1935  * _C_ :
1936  * Custom code that gets inserted in the type_name_get_type() function.
1937  * Since 2.4
1938  */
1939 // TODO
1940 // #define G_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
1941 
1942 /*
1943  * A convenience macro to ease adding private data to instances of a new type
1944  * in the _C_ section of G_DEFINE_TYPE_WITH_CODE() or
1945  * G_DEFINE_ABSTRACT_TYPE_WITH_CODE().
1946  * For instance:
1947  * $(DDOC_COMMENT example)
1948  * Will add MyObjectPrivate as the private data to any instance of the MyObject
1949  * type.
1950  * G_DEFINE_TYPE_* macros will automatically create a private function
1951  * based on the arguments to this macro, which can be used to safely
1952  * retrieve the private data from an instance of the type; for instance:
1953  * $(DDOC_COMMENT example)
1954  * Note that this macro can only be used together with the G_DEFINE_TYPE_*
1955  * macros, since it depends on variable names from those macros.
1956  * Also note that private structs added with these macros must have a struct
1957  * name of the form TypeNamePrivate.
1958  * TypeName :
1959  * the name of the type in CamelCase
1960  * Since 2.38
1961  */
1962 // TODO
1963 // #define G_ADD_PRIVATE(TypeName)
1964 
1965 /*
1966  * Evaluates to the offset of the field inside the instance private data
1967  * structure for TypeName.
1968  * Note that this macro can only be used together with the G_DEFINE_TYPE_*
1969  * and G_ADD_PRIVATE() macros, since it depends on variable names from
1970  * those macros.
1971  * TypeName :
1972  * the name of the type in CamelCase
1973  * field :
1974  * the name of the field in the private data structure
1975  * Since 2.38
1976  */
1977 // TODO
1978 // #define G_PRIVATE_OFFSET(TypeName, field)
1979 
1980 /*
1981  * Evaluates to the field_name inside the inst private data
1982  * structure for TypeName.
1983  * Note that this macro can only be used together with the G_DEFINE_TYPE_*
1984  * and G_ADD_PRIVATE() macros, since it depends on variable names from
1985  * those macros.
1986  * TypeName :
1987  * the name of the type in CamelCase
1988  * inst :
1989  * the instance of TypeName you wish to access
1990  * field_type :
1991  * the type of the field in the private data structure
1992  * field_name :
1993  * the name of the field in the private data structure
1994  * Since 2.38
1995  */
1996 // TODO
1997 // #define G_PRIVATE_FIELD(TypeName, inst, field_type, field_name)
1998 
1999 /*
2000  * Evaluates to a pointer to the field_name inside the inst private data
2001  * structure for TypeName.
2002  * Note that this macro can only be used together with the G_DEFINE_TYPE_*
2003  * and G_ADD_PRIVATE() macros, since it depends on variable names from
2004  * those macros.
2005  * TypeName :
2006  * the name of the type in CamelCase
2007  * inst :
2008  * the instance of TypeName you wish to access
2009  * field_name :
2010  * the name of the field in the private data structure
2011  * Since 2.38
2012  */
2013 // TODO
2014 // #define G_PRIVATE_FIELD_P(TypeName, inst, field_name)
2015 
2016 /*
2017  * A convenience macro for GTypeInterface definitions, which declares
2018  * a default vtable initialization function and defines a *_get_type()
2019  * function.
2020  * The macro expects the interface initialization function to have the
2021  * name t_n ## _default_init, and the interface
2022  * structure to have the name TN ## Interface.
2023  * TN :
2024  * The name of the new type, in Camel case.
2025  * t_n :
2026  * The name of the new type, in lowercase, with words separated by '_'.
2027  * T_P :
2028  * The GType of the prerequisite type for the interface, or 0
2029  * (G_TYPE_INVALID) for no prerequisite type.
2030  * Since 2.24
2031  */
2032 // TODO
2033 // #define G_DEFINE_INTERFACE(TN, t_n, T_P)		 G_DEFINE_INTERFACE_WITH_CODE(TN, t_n, T_P, ;)
2034 
2035 /*
2036  * A convenience macro for GTypeInterface definitions. Similar to
2037  * G_DEFINE_INTERFACE(), but allows you to insert custom code into the
2038  * *_get_type() function, e.g. additional interface implementations
2039  * via G_IMPLEMENT_INTERFACE(), or additional prerequisite types. See
2040  * G_DEFINE_TYPE_EXTENDED() for a similar example using
2041  * G_DEFINE_TYPE_WITH_CODE().
2042  * TN :
2043  * The name of the new type, in Camel case.
2044  * t_n :
2045  * The name of the new type, in lowercase, with words separated by '_'.
2046  * T_P :
2047  * The GType of the prerequisite type for the interface, or 0
2048  * (G_TYPE_INVALID) for no prerequisite type.
2049  * _C_ :
2050  * Custom code that gets inserted in the *_get_type() function.
2051  * Since 2.24
2052  */
2053 // TODO
2054 // #define G_DEFINE_INTERFACE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P) {_C_;} _G_DEFINE_INTERFACE_EXTENDED_END()
2055 
2056 /*
2057  * A convenience macro to ease interface addition in the _C_ section
2058  * of G_DEFINE_TYPE_WITH_CODE() or G_DEFINE_ABSTRACT_TYPE_WITH_CODE().
2059  * See G_DEFINE_TYPE_EXTENDED() for an example.
2060  * Note that this macro can only be used together with the G_DEFINE_TYPE_*
2061  * macros, since it depends on variable names from those macros.
2062  * TYPE_IFACE :
2063  * The GType of the interface to add
2064  * iface_init :
2065  * The interface init function
2066  * Since 2.4
2067  */
2068 // TODO
2069 // #define G_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init)
2070 
2071 /*
2072  * The most general convenience macro for type implementations, on which
2073  * G_DEFINE_TYPE(), etc are based.
2074  * $(DDOC_COMMENT example)
2075  * expands to
2076  * $(DDOC_COMMENT example)
2077  * The only pieces which have to be manually provided are the definitions of
2078  * the instance and class structure and the definitions of the instance and
2079  * class init functions.
2080  * TN :
2081  * The name of the new type, in Camel case.
2082  * t_n :
2083  * The name of the new type, in lowercase, with words
2084  * separated by '_'.
2085  * T_P :
2086  * The GType of the parent type.
2087  * _f_ :
2088  * GTypeFlags to pass to g_type_register_static()
2089  * _C_ :
2090  * Custom code that gets inserted in the *_get_type() function.
2091  * Since 2.4
2092  */
2093 // TODO
2094 // #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	 _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
2095 
2096 /*
2097  * A convenience macro for boxed type implementations, which defines a
2098  * type_name_get_type() function registering the boxed type.
2099  * TypeName :
2100  * The name of the new type, in Camel case.
2101  * type_name :
2102  * The name of the new type, in lowercase, with words
2103  * separated by '_'.
2104  * copy_func :
2105  * the GBoxedCopyFunc for the new type
2106  * free_func :
2107  * the GBoxedFreeFunc for the new type
2108  * Since 2.26
2109  */
2110 // TODO
2111 // #define G_DEFINE_BOXED_TYPE(TypeName, type_name, copy_func, free_func) G_DEFINE_BOXED_TYPE_WITH_CODE (TypeName, type_name, copy_func, free_func, {})
2112 
2113 /*
2114  * A convenience macro for boxed type implementations.
2115  * Similar to G_DEFINE_BOXED_TYPE(), but allows to insert custom code into the
2116  * type_name_get_type() function, e.g. to register value transformations with
2117  * g_value_register_transform_func().
2118  * TypeName :
2119  * The name of the new type, in Camel case.
2120  * type_name :
2121  * The name of the new type, in lowercase, with words
2122  * separated by '_'.
2123  * copy_func :
2124  * the GBoxedCopyFunc for the new type
2125  * free_func :
2126  * the GBoxedFreeFunc for the new type
2127  * _C_ :
2128  * Custom code that gets inserted in the *_get_type() function.
2129  * Since 2.26
2130  */
2131 // TODO
2132 // #define G_DEFINE_BOXED_TYPE_WITH_CODE(TypeName, type_name, copy_func, free_func, _C_) _G_DEFINE_BOXED_TYPE_BEGIN (TypeName, type_name, copy_func, free_func) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
2133 
2134 /*
2135  * A convenience macro for pointer type implementations, which defines a
2136  * type_name_get_type() function registering the pointer type.
2137  * TypeName :
2138  * The name of the new type, in Camel case.
2139  * type_name :
2140  * The name of the new type, in lowercase, with words
2141  * separated by '_'.
2142  * Since 2.26
2143  */
2144 // TODO
2145 // #define G_DEFINE_POINTER_TYPE(TypeName, type_name) G_DEFINE_POINTER_TYPE_WITH_CODE (TypeName, type_name, {})
2146 
2147 /*
2148  * A convenience macro for pointer type implementations.
2149  * Similar to G_DEFINE_POINTER_TYPE(), but allows to insert custom code into the
2150  * type_name_get_type() function.
2151  * TypeName :
2152  * The name of the new type, in Camel case.
2153  * type_name :
2154  * The name of the new type, in lowercase, with words
2155  * separated by '_'.
2156  * _C_ :
2157  * Custom code that gets inserted in the *_get_type() function.
2158  * Since 2.26
2159  */
2160 // TODO
2161 // #define G_DEFINE_POINTER_TYPE_WITH_CODE(TypeName, type_name, _C_) _G_DEFINE_POINTER_TYPE_BEGIN (TypeName, type_name) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
2162 
2163 /*
2164  * A convenience macro for dynamic type implementations, which declares a
2165  * class initialization function, an instance initialization function (see
2166  * GTypeInfo for information about these) and a static variable named
2167  * t_n_parent_class pointing to the parent class. Furthermore,
2168  * it defines a *_get_type() and a static
2169  * *_register_type() function for use in your
2170  * module_init().
2171  * See G_DEFINE_DYNAMIC_TYPE_EXTENDED() for an example.
2172  * TN :
2173  * The name of the new type, in Camel case.
2174  * t_n :
2175  * The name of the new type, in lowercase, with words
2176  * separated by '_'.
2177  * T_P :
2178  * The GType of the parent type.
2179  * Since 2.14
2180  */
2181 // TODO
2182 // #define G_DEFINE_DYNAMIC_TYPE(TN, t_n, T_P) G_DEFINE_DYNAMIC_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
2183 
2184 /*
2185  * A more general version of G_DEFINE_DYNAMIC_TYPE() which
2186  * allows to specify GTypeFlags and custom code.
2187  * $(DDOC_COMMENT example)
2188  * expands to
2189  * $(DDOC_COMMENT example)
2190  * TypeName :
2191  * The name of the new type, in Camel case.
2192  * type_name :
2193  * The name of the new type, in lowercase, with words
2194  * separated by '_'.
2195  * TYPE_PARENT :
2196  * The GType of the parent type.
2197  * flags :
2198  * GTypeFlags to pass to g_type_module_register_type()
2199  * CODE :
2200  * Custom code that gets inserted in the *_get_type() function.
2201  * Since 2.14
2202  */
2203 // TODO
2204 // #define G_DEFINE_DYNAMIC_TYPE_EXTENDED(TypeName, type_name, TYPE_PARENT, flags, CODE)
2205 
2206 /*
2207  * A convenience macro to ease interface addition in the _C_ section
2208  * of G_DEFINE_DYNAMIC_TYPE_EXTENDED(). See G_DEFINE_DYNAMIC_TYPE_EXTENDED()
2209  * for an example.
2210  * Note that this macro can only be used together with the
2211  * G_DEFINE_DYNAMIC_TYPE_EXTENDED macros, since it depends on variable
2212  * names from that macro.
2213  * TYPE_IFACE :
2214  * The GType of the interface to add
2215  * iface_init :
2216  * The interface init function
2217  * Since 2.24
2218  * See Also
2219  * GTypePlugin
2220  * The abstract type loader interface.
2221  * GModule
2222  * Portable mechanism for dynamically loaded modules.
2223  */
2224 // TODO
2225 // #define G_IMPLEMENT_INTERFACE_DYNAMIC(TYPE_IFACE, iface_init)
2226 
2227 /*
2228  * Check if the passed in type id is a G_TYPE_OBJECT or derived from it.
2229  * type :
2230  * Type id to check
2231  * Returns :
2232  * FALSE or TRUE, indicating whether type is a G_TYPE_OBJECT.
2233  */
2234 // TODO
2235 // #define G_TYPE_IS_OBJECT(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
2236 
2237 /*
2238  * Casts a GObject or derived pointer into a (GObject*) pointer.
2239  * Depending on the current debugging level, this function may invoke
2240  * certain runtime checks to identify invalid casts.
2241  * object :
2242  * Object which is subject to casting.
2243  */
2244 // TODO
2245 // #define G_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
2246 
2247 /*
2248  * Checks whether a valid GTypeInstance pointer is of type G_TYPE_OBJECT.
2249  * object :
2250  * Instance to check for being a G_TYPE_OBJECT.
2251  */
2252 // TODO
2253 // #define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT))
2254 
2255 /*
2256  * Casts a derived GObjectClass structure into a GObjectClass structure.
2257  * class :
2258  * a valid GObjectClass
2259  */
2260 // TODO
2261 // #define G_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
2262 
2263 /*
2264  * Checks whether class "is a" valid GObjectClass structure of type
2265  * G_TYPE_OBJECT or derived.
2266  * class :
2267  * a GObjectClass
2268  */
2269 // TODO
2270 // #define G_IS_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
2271 
2272 /*
2273  * Get the class structure associated to a GObject instance.
2274  * object :
2275  * a GObject instance.
2276  * Returns :
2277  * pointer to object class structure.
2278  */
2279 // TODO
2280 // #define G_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
2281 
2282 /*
2283  * Get the type id of an object.
2284  * object :
2285  * Object to return the type id for.
2286  * Returns :
2287  * Type id of object.
2288  */
2289 // TODO
2290 // #define G_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object))
2291 
2292 /*
2293  * Get the name of an object's type.
2294  * object :
2295  * Object to return the type name for.
2296  * Returns :
2297  * Type name of object. The string is owned by the type system and
2298  * should not be freed.
2299  */
2300 // TODO
2301 // #define G_OBJECT_TYPE_NAME(object) (g_type_name (G_OBJECT_TYPE (object)))
2302 
2303 /*
2304  * Get the type id of a class structure.
2305  * class :
2306  * a valid GObjectClass
2307  * Returns :
2308  * Type id of class.
2309  */
2310 // TODO
2311 // #define G_OBJECT_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
2312 
2313 /*
2314  * Return the name of a class structure's type.
2315  * class :
2316  * a valid GObjectClass
2317  * Returns :
2318  * Type name of class. The string is owned by the type system and
2319  * should not be freed.
2320  */
2321 // TODO
2322 // #define G_OBJECT_CLASS_NAME(class) (g_type_name (G_OBJECT_CLASS_TYPE (class)))
2323 
2324 /*
2325  * This macro should be used to emit a standard warning about unexpected
2326  * properties in set_property() and get_property() implementations.
2327  * object :
2328  * the GObject on which set_property() or get_property() was called
2329  * property_id :
2330  * the numeric id of the property
2331  * pspec :
2332  * the GParamSpec of the property
2333  */
2334 // TODO
2335 // #define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec)
2336 
2337 /*
2338  * Get the type identifier from a given GEnumClass structure.
2339  * class :
2340  * a GEnumClass
2341  * Returns :
2342  * the GType
2343  */
2344 // TODO
2345 // #define G_ENUM_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
2346 
2347 /*
2348  * Get the static type name from a given GEnumClass structure.
2349  * class :
2350  * a GEnumClass
2351  * Returns :
2352  * the type name.
2353  */
2354 // TODO
2355 // #define G_ENUM_CLASS_TYPE_NAME(class) (g_type_name (G_ENUM_CLASS_TYPE (class)))
2356 
2357 /*
2358  * Checks whether type "is a" G_TYPE_ENUM.
2359  * type :
2360  * a GType ID.
2361  * Returns :
2362  * TRUE if type "is a" G_TYPE_ENUM.
2363  */
2364 // TODO
2365 // #define G_TYPE_IS_ENUM(type)	 (G_TYPE_FUNDAMENTAL (type) == G_TYPE_ENUM)
2366 
2367 /*
2368  * Casts a derived GEnumClass structure into a GEnumClass structure.
2369  * class :
2370  * a valid GEnumClass
2371  */
2372 // TODO
2373 // #define G_ENUM_CLASS(class)	 (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_ENUM, GEnumClass))
2374 
2375 /*
2376  * Checks whether class "is a" valid GEnumClass structure of type G_TYPE_ENUM
2377  * or derived.
2378  * class :
2379  * a GEnumClass
2380  */
2381 // TODO
2382 // #define G_IS_ENUM_CLASS(class)	 (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM))
2383 
2384 /*
2385  * Checks whether type "is a" G_TYPE_FLAGS.
2386  * type :
2387  * a GType ID.
2388  * Returns :
2389  * TRUE if type "is a" G_TYPE_FLAGS.
2390  */
2391 // TODO
2392 // #define G_TYPE_IS_FLAGS(type)	 (G_TYPE_FUNDAMENTAL (type) == G_TYPE_FLAGS)
2393 
2394 /*
2395  * Casts a derived GFlagsClass structure into a GFlagsClass structure.
2396  * class :
2397  * a valid GFlagsClass
2398  */
2399 // TODO
2400 // #define G_FLAGS_CLASS(class)	 (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_FLAGS, GFlagsClass))
2401 
2402 /*
2403  * Checks whether class "is a" valid GFlagsClass structure of type G_TYPE_FLAGS
2404  * or derived.
2405  * class :
2406  * a GFlagsClass
2407  */
2408 // TODO
2409 // #define G_IS_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_FLAGS))
2410 
2411 /*
2412  * Get the type identifier from a given GFlagsClass structure.
2413  * class :
2414  * a GFlagsClass
2415  * Returns :
2416  * the GType
2417  */
2418 // TODO
2419 // #define G_FLAGS_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
2420 
2421 /*
2422  * Get the static type name from a given GFlagsClass structure.
2423  * class :
2424  * a GFlagsClass
2425  * Returns :
2426  * the type name.
2427  */
2428 // TODO
2429 // #define G_FLAGS_CLASS_TYPE_NAME(class) (g_type_name (G_FLAGS_CLASS_TYPE (class)))
2430 
2431 /*
2432  * Checks if value holds (or contains) a value of type.
2433  * This macro will also check for value != NULL and issue a
2434  * warning if the check fails.
2435  * value :
2436  * A GValue structure.
2437  * type :
2438  * A GType value.
2439  * Returns :
2440  * TRUE if value holds the type.
2441  */
2442 // TODO
2443 // #define G_VALUE_HOLDS(value,type) (G_TYPE_CHECK_VALUE_TYPE ((value), (type)))
2444 
2445 /*
2446  * Get the type identifier of value.
2447  * value :
2448  * A GValue structure.
2449  * Returns :
2450  * the GType.
2451  */
2452 // TODO
2453 // #define G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
2454 
2455 /*
2456  * Gets the type name of value.
2457  * value :
2458  * A GValue structure.
2459  * Returns :
2460  * the type name.
2461  */
2462 // TODO
2463 // #define G_VALUE_TYPE_NAME(value) (g_type_name (G_VALUE_TYPE (value)))
2464 
2465 /*
2466  * Checks whether the passed in type ID can be used for g_value_init().
2467  * That is, this macro checks whether this type provides an implementation
2468  * of the GTypeValueTable functions required for a type to create a GValue of.
2469  * type :
2470  * A GType value.
2471  * Returns :
2472  * Whether type is suitable as a GValue type.
2473  */
2474 // TODO
2475 // #define G_TYPE_IS_VALUE(type)		(g_type_check_is_value_type (type))
2476 
2477 /*
2478  * Checks if type is an abstract value type. An abstract value type introduces
2479  * a value table, but can't be used for g_value_init() and is normally used as
2480  * an abstract base type for derived value types.
2481  * type :
2482  * A GType value.
2483  * Returns :
2484  * TRUE on success.
2485  */
2486 // TODO
2487 // #define G_TYPE_IS_VALUE_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_VALUE_ABSTRACT))
2488 
2489 /*
2490  * Checks if value is a valid and initialized GValue structure.
2491  * value :
2492  * A GValue structure.
2493  * Returns :
2494  * TRUE on success.
2495  */
2496 // TODO
2497 // #define G_IS_VALUE(value)		(G_TYPE_CHECK_VALUE (value))
2498 
2499 /*
2500  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_BOOLEAN.
2501  * pspec :
2502  * a valid GParamSpec instance
2503  * Returns :
2504  * TRUE on success.
2505  */
2506 // TODO
2507 // #define G_IS_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN))
2508 
2509 /*
2510  * Cast a GParamSpec instance into a GParamSpecBoolean.
2511  * pspec :
2512  * a valid GParamSpec instance
2513  */
2514 // TODO
2515 // #define G_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean))
2516 
2517 /*
2518  * Checks whether the given GValue can hold values of type G_TYPE_BOOLEAN.
2519  * value :
2520  * a valid GValue structure
2521  * Returns :
2522  * TRUE on success.
2523  */
2524 // TODO
2525 // #define G_VALUE_HOLDS_BOOLEAN(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOOLEAN))
2526 
2527 /*
2528  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_CHAR.
2529  * pspec :
2530  * a valid GParamSpec instance
2531  * Returns :
2532  * TRUE on success.
2533  */
2534 // TODO
2535 // #define G_IS_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR))
2536 
2537 /*
2538  * Cast a GParamSpec instance into a GParamSpecChar.
2539  * pspec :
2540  * a valid GParamSpec instance
2541  */
2542 // TODO
2543 // #define G_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar))
2544 
2545 /*
2546  * Checks whether the given GValue can hold values of type G_TYPE_CHAR.
2547  * value :
2548  * a valid GValue structure
2549  * Returns :
2550  * TRUE on success.
2551  */
2552 // TODO
2553 // #define G_VALUE_HOLDS_CHAR(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_CHAR))
2554 
2555 /*
2556  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_UCHAR.
2557  * pspec :
2558  * a valid GParamSpec instance
2559  * Returns :
2560  * TRUE on success.
2561  */
2562 // TODO
2563 // #define G_IS_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR))
2564 
2565 /*
2566  * Cast a GParamSpec instance into a GParamSpecUChar.
2567  * pspec :
2568  * a valid GParamSpec instance
2569  */
2570 // TODO
2571 // #define G_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar))
2572 
2573 /*
2574  * Checks whether the given GValue can hold values of type G_TYPE_UCHAR.
2575  * value :
2576  * a valid GValue structure
2577  * Returns :
2578  * TRUE on success.
2579  */
2580 // TODO
2581 // #define G_VALUE_HOLDS_UCHAR(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UCHAR))
2582 
2583 /*
2584  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_INT.
2585  * pspec :
2586  * a valid GParamSpec instance
2587  * Returns :
2588  * TRUE on success.
2589  */
2590 // TODO
2591 // #define G_IS_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT))
2592 
2593 /*
2594  * Cast a GParamSpec instance into a GParamSpecInt.
2595  * pspec :
2596  * a valid GParamSpec instance
2597  */
2598 // TODO
2599 // #define G_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt))
2600 
2601 /*
2602  * Checks whether the given GValue can hold values of type G_TYPE_INT.
2603  * value :
2604  * a valid GValue structure
2605  * Returns :
2606  * TRUE on success.
2607  */
2608 // TODO
2609 // #define G_VALUE_HOLDS_INT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT))
2610 
2611 /*
2612  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_UINT.
2613  * pspec :
2614  * a valid GParamSpec instance
2615  * Returns :
2616  * TRUE on success.
2617  */
2618 // TODO
2619 // #define G_IS_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT))
2620 
2621 /*
2622  * Cast a GParamSpec instance into a GParamSpecUInt.
2623  * pspec :
2624  * a valid GParamSpec instance
2625  */
2626 // TODO
2627 // #define G_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt))
2628 
2629 /*
2630  * Checks whether the given GValue can hold values of type G_TYPE_UINT.
2631  * value :
2632  * a valid GValue structure
2633  * Returns :
2634  * TRUE on success.
2635  */
2636 // TODO
2637 // #define G_VALUE_HOLDS_UINT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT))
2638 
2639 /*
2640  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_LONG.
2641  * pspec :
2642  * a valid GParamSpec instance
2643  * Returns :
2644  * TRUE on success.
2645  */
2646 // TODO
2647 // #define G_IS_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG))
2648 
2649 /*
2650  * Cast a GParamSpec instance into a GParamSpecLong.
2651  * pspec :
2652  * a valid GParamSpec instance
2653  */
2654 // TODO
2655 // #define G_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong))
2656 
2657 /*
2658  * Checks whether the given GValue can hold values of type G_TYPE_LONG.
2659  * value :
2660  * a valid GValue structure
2661  * Returns :
2662  * TRUE on success.
2663  */
2664 // TODO
2665 // #define G_VALUE_HOLDS_LONG(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_LONG))
2666 
2667 /*
2668  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_ULONG.
2669  * pspec :
2670  * a valid GParamSpec instance
2671  * Returns :
2672  * TRUE on success.
2673  */
2674 // TODO
2675 // #define G_IS_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG))
2676 
2677 /*
2678  * Cast a GParamSpec instance into a GParamSpecULong.
2679  * pspec :
2680  * a valid GParamSpec instance
2681  */
2682 // TODO
2683 // #define G_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong))
2684 
2685 /*
2686  * Checks whether the given GValue can hold values of type G_TYPE_ULONG.
2687  * value :
2688  * a valid GValue structure
2689  * Returns :
2690  * TRUE on success.
2691  */
2692 // TODO
2693 // #define G_VALUE_HOLDS_ULONG(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ULONG))
2694 
2695 /*
2696  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_INT64.
2697  * pspec :
2698  * a valid GParamSpec instance
2699  * Returns :
2700  * TRUE on success.
2701  */
2702 // TODO
2703 // #define G_IS_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64))
2704 
2705 /*
2706  * Cast a GParamSpec instance into a GParamSpecInt64.
2707  * pspec :
2708  * a valid GParamSpec instance
2709  */
2710 // TODO
2711 // #define G_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64))
2712 
2713 /*
2714  * Checks whether the given GValue can hold values of type G_TYPE_INT64.
2715  * value :
2716  * a valid GValue structure
2717  * Returns :
2718  * TRUE on success.
2719  */
2720 // TODO
2721 // #define G_VALUE_HOLDS_INT64(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT64))
2722 
2723 /*
2724  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_UINT64.
2725  * pspec :
2726  * a valid GParamSpec instance
2727  * Returns :
2728  * TRUE on success.
2729  */
2730 // TODO
2731 // #define G_IS_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64))
2732 
2733 /*
2734  * Cast a GParamSpec instance into a GParamSpecUInt64.
2735  * pspec :
2736  * a valid GParamSpec instance
2737  */
2738 // TODO
2739 // #define G_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64))
2740 
2741 /*
2742  * Checks whether the given GValue can hold values of type G_TYPE_UINT64.
2743  * value :
2744  * a valid GValue structure
2745  * Returns :
2746  * TRUE on success.
2747  */
2748 // TODO
2749 // #define G_VALUE_HOLDS_UINT64(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT64))
2750 
2751 /*
2752  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_FLOAT.
2753  * pspec :
2754  * a valid GParamSpec instance
2755  * Returns :
2756  * TRUE on success.
2757  */
2758 // TODO
2759 // #define G_IS_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT))
2760 
2761 /*
2762  * Cast a GParamSpec instance into a GParamSpecFloat.
2763  * pspec :
2764  * a valid GParamSpec instance
2765  */
2766 // TODO
2767 // #define G_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat))
2768 
2769 /*
2770  * Checks whether the given GValue can hold values of type G_TYPE_FLOAT.
2771  * value :
2772  * a valid GValue structure
2773  * Returns :
2774  * TRUE on success.
2775  */
2776 // TODO
2777 // #define G_VALUE_HOLDS_FLOAT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLOAT))
2778 
2779 /*
2780  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_DOUBLE.
2781  * pspec :
2782  * a valid GParamSpec instance
2783  * Returns :
2784  * TRUE on success.
2785  */
2786 // TODO
2787 // #define G_IS_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE))
2788 
2789 /*
2790  * Cast a GParamSpec instance into a GParamSpecDouble.
2791  * pspec :
2792  * a valid GParamSpec instance
2793  */
2794 // TODO
2795 // #define G_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble))
2796 
2797 /*
2798  * Checks whether the given GValue can hold values of type G_TYPE_DOUBLE.
2799  * value :
2800  * a valid GValue structure
2801  * Returns :
2802  * TRUE on success.
2803  */
2804 // TODO
2805 // #define G_VALUE_HOLDS_DOUBLE(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_DOUBLE))
2806 
2807 /*
2808  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_ENUM.
2809  * pspec :
2810  * a valid GParamSpec instance
2811  * Returns :
2812  * TRUE on success.
2813  */
2814 // TODO
2815 // #define G_IS_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM))
2816 
2817 /*
2818  * Cast a GParamSpec instance into a GParamSpecEnum.
2819  * pspec :
2820  * a valid GParamSpec instance
2821  */
2822 // TODO
2823 // #define G_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum))
2824 
2825 /*
2826  * Checks whether the given GValue can hold values derived from type G_TYPE_ENUM.
2827  * value :
2828  * a valid GValue structure
2829  * Returns :
2830  * TRUE on success.
2831  */
2832 // TODO
2833 // #define G_VALUE_HOLDS_ENUM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ENUM))
2834 
2835 /*
2836  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_FLAGS.
2837  * pspec :
2838  * a valid GParamSpec instance
2839  * Returns :
2840  * TRUE on success.
2841  */
2842 // TODO
2843 // #define G_IS_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS))
2844 
2845 /*
2846  * Cast a GParamSpec instance into a GParamSpecFlags.
2847  * pspec :
2848  * a valid GParamSpec instance
2849  */
2850 // TODO
2851 // #define G_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags))
2852 
2853 /*
2854  * Checks whether the given GValue can hold values derived from type G_TYPE_FLAGS.
2855  * value :
2856  * a valid GValue structure
2857  * Returns :
2858  * TRUE on success.
2859  */
2860 // TODO
2861 // #define G_VALUE_HOLDS_FLAGS(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLAGS))
2862 
2863 /*
2864  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_STRING.
2865  * pspec :
2866  * a valid GParamSpec instance
2867  * Returns :
2868  * TRUE on success.
2869  */
2870 // TODO
2871 // #define G_IS_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING))
2872 
2873 /*
2874  * Casts a GParamSpec instance into a GParamSpecString.
2875  * pspec :
2876  * a valid GParamSpec instance
2877  */
2878 // TODO
2879 // #define G_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString))
2880 
2881 /*
2882  * Checks whether the given GValue can hold values of type G_TYPE_STRING.
2883  * value :
2884  * a valid GValue structure
2885  * Returns :
2886  * TRUE on success.
2887  */
2888 // TODO
2889 // #define G_VALUE_HOLDS_STRING(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING))
2890 
2891 /*
2892  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_PARAM.
2893  * pspec :
2894  * a valid GParamSpec instance
2895  * Returns :
2896  * TRUE on success.
2897  */
2898 // TODO
2899 // #define G_IS_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM))
2900 
2901 /*
2902  * Casts a GParamSpec instance into a GParamSpecParam.
2903  * pspec :
2904  * a valid GParamSpec instance
2905  */
2906 // TODO
2907 // #define G_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam))
2908 
2909 /*
2910  * Checks whether the given GValue can hold values derived from type G_TYPE_PARAM.
2911  * value :
2912  * a valid GValue structure
2913  * Returns :
2914  * TRUE on success.
2915  */
2916 // TODO
2917 // #define G_VALUE_HOLDS_PARAM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_PARAM))
2918 
2919 /*
2920  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_BOXED.
2921  * pspec :
2922  * a valid GParamSpec instance
2923  * Returns :
2924  * TRUE on success.
2925  */
2926 // TODO
2927 // #define G_IS_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED))
2928 
2929 /*
2930  * Cast a GParamSpec instance into a GParamSpecBoxed.
2931  * pspec :
2932  * a valid GParamSpec instance
2933  */
2934 // TODO
2935 // #define G_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed))
2936 
2937 /*
2938  * Checks whether the given GValue can hold values derived
2939  * from type G_TYPE_BOXED.
2940  * value :
2941  * a valid GValue structure
2942  * Returns :
2943  * TRUE on success.
2944  */
2945 // TODO
2946 // #define G_VALUE_HOLDS_BOXED(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOXED))
2947 
2948 /*
2949  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_POINTER.
2950  * pspec :
2951  * a valid GParamSpec instance
2952  * Returns :
2953  * TRUE on success.
2954  */
2955 // TODO
2956 // #define G_IS_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER))
2957 
2958 /*
2959  * Casts a GParamSpec instance into a GParamSpecPointer.
2960  * pspec :
2961  * a valid GParamSpec instance
2962  */
2963 // TODO
2964 // #define G_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer))
2965 
2966 /*
2967  * Checks whether the given GValue can hold values of type G_TYPE_POINTER.
2968  * value :
2969  * a valid GValue structure
2970  * Returns :
2971  * TRUE on success.
2972  */
2973 // TODO
2974 // #define G_VALUE_HOLDS_POINTER(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_POINTER))
2975 
2976 /*
2977  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_OBJECT.
2978  * pspec :
2979  * a valid GParamSpec instance
2980  * Returns :
2981  * TRUE on success.
2982  */
2983 // TODO
2984 // #define G_IS_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
2985 
2986 /*
2987  * Casts a GParamSpec instance into a GParamSpecObject.
2988  * pspec :
2989  * a valid GParamSpec instance
2990  */
2991 // TODO
2992 // #define G_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
2993 
2994 /*
2995  * Checks whether the given GValue can hold values derived from type G_TYPE_OBJECT.
2996  * value :
2997  * a valid GValue structure
2998  * Returns :
2999  * TRUE on success.
3000  */
3001 // TODO
3002 // #define G_VALUE_HOLDS_OBJECT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT))
3003 
3004 /*
3005  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_UNICHAR.
3006  * pspec :
3007  * a valid GParamSpec instance
3008  * Returns :
3009  * TRUE on success.
3010  */
3011 // TODO
3012 // #define G_IS_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR))
3013 
3014 /*
3015  * Cast a GParamSpec instance into a GParamSpecUnichar.
3016  * pspec :
3017  * a valid GParamSpec instance
3018  */
3019 // TODO
3020 // #define G_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar))
3021 
3022 /*
3023  * Warning
3024  * G_IS_PARAM_SPEC_VALUE_ARRAY has been deprecated since version 2.32 and should not be used in newly-written code. Use GArray instead of GValueArray
3025  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_VALUE_ARRAY.
3026  * pspec :
3027  * a valid GParamSpec instance
3028  * Returns :
3029  * TRUE on success.
3030  */
3031 // TODO
3032 // #define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY))
3033 
3034 /*
3035  * Warning
3036  * G_PARAM_SPEC_VALUE_ARRAY has been deprecated since version 2.32 and should not be used in newly-written code. Use GArray instead of GValueArray
3037  * Cast a GParamSpec instance into a GParamSpecValueArray.
3038  * pspec :
3039  * a valid GParamSpec instance
3040  */
3041 // TODO
3042 // #define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray))
3043 
3044 /*
3045  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_OVERRIDE.
3046  * pspec :
3047  * a GParamSpec
3048  * Returns :
3049  * TRUE on success.
3050  * Since 2.4
3051  */
3052 // TODO
3053 // #define G_IS_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE))
3054 
3055 /*
3056  * Casts a GParamSpec into a GParamSpecOverride.
3057  * pspec :
3058  * a GParamSpec
3059  * Since 2.4
3060  */
3061 // TODO
3062 // #define G_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride))
3063 
3064 /*
3065  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_GTYPE.
3066  * pspec :
3067  * a GParamSpec
3068  * Returns :
3069  * TRUE on success.
3070  * Since 2.10
3071  */
3072 // TODO
3073 // #define G_IS_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE))
3074 
3075 /*
3076  * Casts a GParamSpec into a GParamSpecGType.
3077  * pspec :
3078  * a GParamSpec
3079  * Since 2.10
3080  */
3081 // TODO
3082 // #define G_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType))
3083 
3084 /*
3085  * Checks whether the given GValue can hold values of type G_TYPE_GTYPE.
3086  * value :
3087  * a valid GValue structure
3088  * Returns :
3089  * TRUE on success.
3090  * Since 2.12
3091  */
3092 // TODO
3093 // #define G_VALUE_HOLDS_GTYPE(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_GTYPE))
3094 
3095 /*
3096  * Checks whether the given GParamSpec is of type G_TYPE_PARAM_VARIANT.
3097  * pspec :
3098  * a GParamSpec
3099  * Returns :
3100  * TRUE on success
3101  * Since 2.26
3102  */
3103 // TODO
3104 // #define G_IS_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT))
3105 
3106 /*
3107  * Casts a GParamSpec into a GParamSpecVariant.
3108  * pspec :
3109  * a GParamSpec
3110  * Since 2.26
3111  */
3112 // TODO
3113 // #define G_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant))
3114 
3115 /*
3116  * Checks whether the given GValue can hold values of type G_TYPE_VARIANT.
3117  * value :
3118  * a valid GValue structure
3119  * Returns :
3120  * TRUE on success.
3121  * Since 2.26
3122  */
3123 // TODO
3124 // #define G_VALUE_HOLDS_VARIANT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_VARIANT))
3125 
3126 /*
3127  * Checks whether type "is a" G_TYPE_PARAM.
3128  * type :
3129  * a GType ID
3130  */
3131 // TODO
3132 // #define G_TYPE_IS_PARAM(type)		(G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM)
3133 
3134 /*
3135  * Casts a derived GParamSpec object (e.g. of type GParamSpecInt) into
3136  * a GParamSpec object.
3137  * pspec :
3138  * a valid GParamSpec
3139  */
3140 // TODO
3141 // #define G_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
3142 
3143 /*
3144  * Checks whether pspec "is a" valid GParamSpec structure of type G_TYPE_PARAM
3145  * or derived.
3146  * pspec :
3147  * a GParamSpec
3148  */
3149 // TODO
3150 // #define G_IS_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM))
3151 
3152 /*
3153  * Casts a derived GParamSpecClass structure into a GParamSpecClass structure.
3154  * pclass :
3155  * a valid GParamSpecClass
3156  */
3157 // TODO
3158 // #define G_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_CAST ((pclass), G_TYPE_PARAM, GParamSpecClass))
3159 
3160 /*
3161  * Checks whether pclass "is a" valid GParamSpecClass structure of type
3162  * G_TYPE_PARAM or derived.
3163  * pclass :
3164  * a GParamSpecClass
3165  */
3166 // TODO
3167 // #define G_IS_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_TYPE ((pclass), G_TYPE_PARAM))
3168 
3169 /*
3170  * Retrieves the GParamSpecClass of a GParamSpec.
3171  * pspec :
3172  * a valid GParamSpec
3173  */
3174 // TODO
3175 // #define G_PARAM_SPEC_GET_CLASS(pspec) (G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
3176 
3177 /*
3178  * Retrieves the GType of this pspec.
3179  * pspec :
3180  * a valid GParamSpec
3181  */
3182 // TODO
3183 // #define G_PARAM_SPEC_TYPE(pspec) (G_TYPE_FROM_INSTANCE (pspec))
3184 
3185 /*
3186  * Retrieves the GType name of this pspec.
3187  * pspec :
3188  * a valid GParamSpec
3189  */
3190 // TODO
3191 // #define G_PARAM_SPEC_TYPE_NAME(pspec) (g_type_name (G_PARAM_SPEC_TYPE (pspec)))
3192 
3193 /*
3194  * Retrieves the GType to initialize a GValue for this parameter.
3195  * pspec :
3196  * a valid GParamSpec
3197  */
3198 // TODO
3199 // #define G_PARAM_SPEC_VALUE_TYPE(pspec) (G_PARAM_SPEC (pspec)->value_type)
3200 
3201 /*
3202  * Connects a GCallback function to a signal for a particular object.
3203  * The handler will be called before the default handler of the signal.
3204  * instance :
3205  * the instance to connect to.
3206  * detailed_signal :
3207  * a string of the form "signal-name::detail".
3208  * c_handler :
3209  * the GCallback to connect.
3210  * data :
3211  * data to pass to c_handler calls.
3212  * Returns :
3213  * the handler id
3214  */
3215 // TODO
3216 // #define g_signal_connect(instance, detailed_signal, c_handler, data)
3217 
3218 /*
3219  * Connects a GCallback function to a signal for a particular object.
3220  * The handler will be called after the default handler of the signal.
3221  * instance :
3222  * the instance to connect to.
3223  * detailed_signal :
3224  * a string of the form "signal-name::detail".
3225  * c_handler :
3226  * the GCallback to connect.
3227  * data :
3228  * data to pass to c_handler calls.
3229  * Returns :
3230  * the handler id
3231  */
3232 // TODO
3233 // #define g_signal_connect_after(instance, detailed_signal, c_handler, data)
3234 
3235 /*
3236  * Connects a GCallback function to a signal for a particular object.
3237  * The instance on which the signal is emitted and data will be swapped when
3238  * calling the handler.
3239  * instance :
3240  * the instance to connect to.
3241  * detailed_signal :
3242  * a string of the form "signal-name::detail".
3243  * c_handler :
3244  * the GCallback to connect.
3245  * data :
3246  * data to pass to c_handler calls.
3247  * Returns :
3248  * the handler id
3249  */
3250 // TODO
3251 // #define g_signal_connect_swapped(instance, detailed_signal, c_handler, data)
3252 
3253 /*
3254  * Blocks all handlers on an instance that match func and data.
3255  * instance :
3256  * The instance to block handlers from.
3257  * func :
3258  * The C closure callback of the handlers (useless for non-C closures).
3259  * data :
3260  * The closure data of the handlers' closures.
3261  * Returns :
3262  * The number of handlers that matched.
3263  */
3264 // TODO
3265 // #define g_signal_handlers_block_by_func(instance, func, data)
3266 
3267 /*
3268  * Unblocks all handlers on an instance that match func and data.
3269  * instance :
3270  * The instance to unblock handlers from.
3271  * func :
3272  * The C closure callback of the handlers (useless for non-C closures).
3273  * data :
3274  * The closure data of the handlers' closures.
3275  * Returns :
3276  * The number of handlers that matched.
3277  */
3278 // TODO
3279 // #define g_signal_handlers_unblock_by_func(instance, func, data)
3280 
3281 /*
3282  * Disconnects all handlers on an instance that match func and data.
3283  * instance :
3284  * The instance to remove handlers from.
3285  * func :
3286  * The C closure callback of the handlers (useless for non-C closures).
3287  * data :
3288  * The closure data of the handlers' closures.
3289  * Returns :
3290  * The number of handlers that matched.
3291  */
3292 // TODO
3293 // #define g_signal_handlers_disconnect_by_func(instance, func, data)
3294 
3295 /*
3296  * Disconnects all handlers on an instance that match data.
3297  * instance :
3298  * The instance to remove handlers from
3299  * data :
3300  * the closure data of the handlers' closures
3301  * Returns :
3302  * The number of handlers that matched.
3303  * Since 2.32
3304  */
3305 // TODO
3306 // #define g_signal_handlers_disconnect_by_data(instance, data)
3307 
3308 /*
3309  * Check if the closure still needs a marshaller. See g_closure_set_marshal().
3310  * closure :
3311  * a GClosure
3312  * Returns :
3313  * TRUE if a GClosureMarshal marshaller has not yet been set on
3314  * closure.
3315  */
3316 // TODO
3317 // #define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL)
3318 
3319 /*
3320  * Get the total number of notifiers connected with the closure cl.
3321  * The count includes the meta marshaller, the finalize and invalidate notifiers
3322  * and the marshal guards. Note that each guard counts as two notifiers.
3323  * See g_closure_set_meta_marshal(), g_closure_add_finalize_notifier(),
3324  * g_closure_add_invalidate_notifier() and g_closure_add_marshal_guards().
3325  * cl :
3326  * a GClosure
3327  * Returns :
3328  * number of notifiers
3329  */
3330 // TODO
3331 // #define G_CLOSURE_N_NOTIFIERS(cl)
3332 
3333 /*
3334  * Checks whether the user data of the GCClosure should be passed as the
3335  * first parameter to the callback. See g_cclosure_new_swap().
3336  * cclosure :
3337  * a GCClosure
3338  * Returns :
3339  * TRUE if data has to be swapped.
3340  */
3341 // TODO
3342 // #define G_CCLOSURE_SWAP_DATA(cclosure)	 (((GClosure*) (cclosure))->derivative_flag)
3343 
3344 /*
3345  * Cast a function pointer to a GCallback.
3346  * f :
3347  * a function pointer.
3348  */
3349 // TODO
3350 // #define G_CALLBACK(f)			 ((GCallback) (f))
3351 
3352 /*
3353  * A callback function used by the type system to do base initialization
3354  * of the class structures of derived types. It is called as part of the
3355  * initialization process of all derived classes and should reallocate
3356  * or reset all dynamic class members copied over from the parent class.
3357  * For example, class members (such as strings) that are not sufficiently
3358  * handled by a plain memory copy of the parent class into the derived class
3359  * have to be altered. See GClassInitFunc() for a discussion of the class
3360  * intialization process.
3361  * g_class :
3362  * The GTypeClass structure to initialize.
3363  */
3364 // void (*GBaseInitFunc) (gpointer g_class);
3365 public alias extern(C) void function(void* gClass) GBaseInitFunc;
3366 
3367 /*
3368  * A callback function used by the type system to finalize those portions
3369  * of a derived types class structure that were setup from the corresponding
3370  * GBaseInitFunc() function. Class finalization basically works the inverse
3371  * way in which class intialization is performed.
3372  * See GClassInitFunc() for a discussion of the class intialization process.
3373  * g_class :
3374  * The GTypeClass structure to finalize.
3375  */
3376 // void (*GBaseFinalizeFunc) (gpointer g_class);
3377 public alias extern(C) void function(void* gClass) GBaseFinalizeFunc;
3378 
3379 /*
3380  * A callback function used by the type system to initialize the class
3381  * of a specific type. This function should initialize all static class
3382  * members.
3383  * The initialization process of a class involves:
3384  * 	1 - Copying common members from the parent class over to the
3385  * 	derived class structure.
3386  * 	2 - Zero initialization of the remaining members not copied
3387  * 	over from the parent class.
3388  * 	3 - Invocation of the GBaseInitFunc() initializers of all parent
3389  * 	types and the class' type.
3390  * 	4 - Invocation of the class' GClassInitFunc() initializer.
3391  * Since derived classes are partially initialized through a memory copy
3392  * of the parent class, the general rule is that GBaseInitFunc() and
3393  * GBaseFinalizeFunc() should take care of necessary reinitialization
3394  * and release of those class members that were introduced by the type
3395  * that specified these GBaseInitFunc()/GBaseFinalizeFunc().
3396  * GClassInitFunc() should only care about initializing static
3397  * class members, while dynamic class members (such as allocated strings
3398  * or reference counted resources) are better handled by a GBaseInitFunc()
3399  * for this type, so proper initialization of the dynamic class members
3400  * is performed for class initialization of derived types as well.
3401  * An example may help to correspond the intend of the different class
3402  * initializers:
3403  * $(DDOC_COMMENT example)
3404  * Initialization of TypeBClass will first cause initialization of
3405  * TypeAClass (derived classes reference their parent classes, see
3406  * g_type_class_ref() on this).
3407  * Initialization of TypeAClass roughly involves zero-initializing its fields,
3408  * then calling its GBaseInitFunc() type_a_base_class_init() to allocate
3409  * its dynamic members (dynamic_string), and finally calling its GClassInitFunc()
3410  * type_a_class_init() to initialize its static members (static_integer).
3411  * The first step in the initialization process of TypeBClass is then
3412  * a plain memory copy of the contents of TypeAClass into TypeBClass and
3413  * zero-initialization of the remaining fields in TypeBClass.
3414  * The dynamic members of TypeAClass within TypeBClass now need
3415  * reinitialization which is performed by calling type_a_base_class_init()
3416  * with an argument of TypeBClass.
3417  * After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init()
3418  * is called to allocate the dynamic members of TypeBClass (dynamic_gstring),
3419  * and finally the GClassInitFunc() of TypeBClass, type_b_class_init(),
3420  * is called to complete the initialization process with the static members
3421  * (static_float).
3422  * Corresponding finalization counter parts to the GBaseInitFunc() functions
3423  * have to be provided to release allocated resources at class finalization
3424  * time.
3425  * g_class :
3426  * The GTypeClass structure to initialize.
3427  * class_data :
3428  * The class_data member supplied via the GTypeInfo structure.
3429  */
3430 // void (*GClassInitFunc) (gpointer g_class,  gpointer class_data);
3431 public alias extern(C) void function(void* gClass, void* classData) GClassInitFunc;
3432 
3433 /*
3434  * A callback function used by the type system to finalize a class.
3435  * This function is rarely needed, as dynamically allocated class resources
3436  * should be handled by GBaseInitFunc() and GBaseFinalizeFunc().
3437  * Also, specification of a GClassFinalizeFunc() in the GTypeInfo
3438  * structure of a static type is invalid, because classes of static types
3439  * will never be finalized (they are artificially kept alive when their
3440  * reference count drops to zero).
3441  * g_class :
3442  * The GTypeClass structure to finalize.
3443  * class_data :
3444  * The class_data member supplied via the GTypeInfo structure.
3445  */
3446 // void (*GClassFinalizeFunc) (gpointer g_class,  gpointer class_data);
3447 public alias extern(C) void function(void* gClass, void* classData) GClassFinalizeFunc;
3448 
3449 /*
3450  * A callback function used by the type system to initialize a new
3451  * instance of a type. This function initializes all instance members and
3452  * allocates any resources required by it.
3453  * Initialization of a derived instance involves calling all its parent
3454  * types instance initializers, so the class member of the instance
3455  * is altered during its initialization to always point to the class that
3456  * belongs to the type the current initializer was introduced for.
3457  * instance :
3458  * The instance to initialize.
3459  * g_class :
3460  * The class of the type the instance is created for.
3461  */
3462 // void (*GInstanceInitFunc) (GTypeInstance *instance,  gpointer g_class);
3463 public alias extern(C) void function(GTypeInstance* instanc, void* gClass) GInstanceInitFunc;
3464 
3465 /*
3466  * A callback function used by the type system to initialize a new
3467  * interface. This function should initialize all internal data and
3468  * allocate any resources required by the interface.
3469  * g_iface :
3470  * The interface structure to initialize.
3471  * iface_data :
3472  * The interface_data supplied via the GInterfaceInfo structure.
3473  */
3474 // void (*GInterfaceInitFunc) (gpointer g_iface,  gpointer iface_data);
3475 public alias extern(C) void function(void* gIface, void* ifaceData) GInterfaceInitFunc;
3476 
3477 /*
3478  * A callback function used by the type system to finalize an interface.
3479  * This function should destroy any internal data and release any resources
3480  * allocated by the corresponding GInterfaceInitFunc() function.
3481  * g_iface :
3482  * The interface structure to finalize.
3483  * iface_data :
3484  * The interface_data supplied via the GInterfaceInfo structure.
3485  */
3486 // void (*GInterfaceFinalizeFunc) (gpointer g_iface,  gpointer iface_data);
3487 public alias extern(C) void function(void* gIface, void* ifaceData) GInterfaceFinalizeFunc;
3488 
3489 /*
3490  * A callback function which is called when the reference count of a class
3491  * drops to zero. It may use g_type_class_ref() to prevent the class from
3492  * being freed. You should not call g_type_class_unref() from a
3493  * GTypeClassCacheFunc function to prevent infinite recursion, use
3494  * g_type_class_unref_uncached() instead.
3495  * The functions have to check the class id passed in to figure
3496  * whether they actually want to cache the class of this type, since all
3497  * classes are routed through the same GTypeClassCacheFunc chain.
3498  * cache_data :
3499  * data that was given to the g_type_add_class_cache_func() call
3500  * g_class :
3501  * The GTypeClass structure which is unreferenced
3502  * Returns :
3503  * TRUE to stop further GTypeClassCacheFuncs from being
3504  * called, FALSE to continue.
3505  */
3506 // gboolean (*GTypeClassCacheFunc) (gpointer cache_data,  GTypeClass *g_class);
3507 public alias extern(C) int function(void* cacheData, GTypeClass* gClass) GTypeClassCacheFunc;
3508 
3509 /*
3510  * A callback called after an interface vtable is initialized.
3511  * See g_type_add_interface_check().
3512  * check_data :
3513  * data passed to g_type_add_interface_check().
3514  * g_iface :
3515  * the interface that has been initialized
3516  * Since 2.4
3517  */
3518 // void (*GTypeInterfaceCheckFunc) (gpointer check_data,  gpointer g_iface);
3519 public alias extern(C) void function(void* checkData, void* gIface) GTypeInterfaceCheckFunc;
3520 
3521 /*
3522  * The type of the use_plugin function of GTypePluginClass, which gets called
3523  * to increase the use count of plugin.
3524  * plugin :
3525  * the GTypePlugin whose use count should be increased
3526  */
3527 // void (*GTypePluginUse) (GTypePlugin *plugin);
3528 public alias extern(C) void function(GTypePlugin* plugin) GTypePluginUse;
3529 
3530 /*
3531  * The type of the unuse_plugin function of GTypePluginClass.
3532  * plugin :
3533  * the GTypePlugin whose use count should be decreased
3534  */
3535 // void (*GTypePluginUnuse) (GTypePlugin *plugin);
3536 public alias extern(C) void function(GTypePlugin* plugin) GTypePluginUnuse;
3537 
3538 /*
3539  * The type of the complete_type_info function of GTypePluginClass.
3540  * plugin :
3541  * the GTypePlugin
3542  * g_type :
3543  * the GType whose info is completed
3544  * info :
3545  * the GTypeInfo struct to fill in
3546  * value_table :
3547  * the GTypeValueTable to fill in
3548  */
3549 // void (*GTypePluginCompleteTypeInfo) (GTypePlugin *plugin,  GType g_type,  GTypeInfo *info,  GTypeValueTable *value_table);
3550 public alias extern(C) void function(GTypePlugin* plugin, GType gType, GTypeInfo* info, GTypeValueTable* valueTable) GTypePluginCompleteTypeInfo;
3551 
3552 /*
3553  * The type of the complete_interface_info function of GTypePluginClass.
3554  * plugin :
3555  * the GTypePlugin
3556  * instance_type :
3557  * the GType of an instantiable type to which the interface
3558  * is added
3559  * interface_type :
3560  * the GType of the interface whose info is completed
3561  * info :
3562  * the GInterfaceInfo to fill in
3563  */
3564 // void (*GTypePluginCompleteInterfaceInfo) (GTypePlugin *plugin,  GType instance_type,  GType interface_type,  GInterfaceInfo *info);
3565 public alias extern(C) void function(GTypePlugin* plugin, GType instanceType, GType interfaceType, GInterfaceInfo* info) GTypePluginCompleteInterfaceInfo;
3566 
3567 /*
3568  * The type of the get_property function of GObjectClass.
3569  * object :
3570  * a GObject
3571  * property_id :
3572  * the numeric id under which the property was registered with
3573  * g_object_class_install_property().
3574  * value :
3575  * a GValue to return the property value in
3576  * pspec :
3577  * the GParamSpec describing the property
3578  */
3579 // void (*GObjectGetPropertyFunc) (GObject *object,  guint property_id,  GValue *value,  GParamSpec *pspec);
3580 public alias extern(C) void function(GObject* object, uint propertyId, GValue* value, GParamSpec* pspec) GObjectGetPropertyFunc;
3581 
3582 /*
3583  * The type of the set_property function of GObjectClass.
3584  * object :
3585  * a GObject
3586  * property_id :
3587  * the numeric id under which the property was registered with
3588  * g_object_class_install_property().
3589  * value :
3590  * the new value for the property
3591  * pspec :
3592  * the GParamSpec describing the property
3593  */
3594 // void (*GObjectSetPropertyFunc) (GObject *object,  guint property_id,  const GValue *value,  GParamSpec *pspec);
3595 public alias extern(C) void function(GObject* object, uint propertyId, GValue* value, GParamSpec* pspec) GObjectSetPropertyFunc;
3596 
3597 /*
3598  * The type of the finalize function of GObjectClass.
3599  * object :
3600  * the GObject being finalized
3601  */
3602 // void (*GObjectFinalizeFunc) (GObject *object);
3603 public alias extern(C) void function(GObject* object) GObjectFinalizeFunc;
3604 
3605 /*
3606  * A GWeakNotify function can be added to an object as a callback that gets
3607  * triggered when the object is finalized. Since the object is already being
3608  * finalized when the GWeakNotify is called, there's not much you could do
3609  * with the object, apart from e.g. using its address as hash-index or the like.
3610  * data :
3611  * data that was provided when the weak reference was established
3612  * where_the_object_was :
3613  * the object being finalized
3614  */
3615 // void (*GWeakNotify) (gpointer data,  GObject *where_the_object_was);
3616 public alias extern(C) void function(void* data, GObject* whereTheObjectWas) GWeakNotify;
3617 
3618 /*
3619  * A callback function used for notification when the state
3620  * of a toggle reference changes. See g_object_add_toggle_ref().
3621  * data :
3622  * Callback data passed to g_object_add_toggle_ref()
3623  * object :
3624  * The object on which g_object_add_toggle_ref() was called.
3625  * is_last_ref :
3626  * TRUE if the toggle reference is now the
3627  * last reference to the object. FALSE if the toggle
3628  * reference was the last reference and there are now other
3629  * references.
3630  */
3631 // void (*GToggleNotify) (gpointer data,  GObject *object,  gboolean is_last_ref);
3632 public alias extern(C) void function(void* data, GObject* object, int isLastRef) GToggleNotify;
3633 
3634 /*
3635  * This function is provided by the user and should produce a copy
3636  * of the passed in boxed structure.
3637  * boxed :
3638  * The boxed structure to be copied.
3639  * Returns :
3640  * The newly created copy of the boxed structure.
3641  */
3642 // gpointer (*GBoxedCopyFunc) (gpointer boxed);
3643 public alias extern(C) void* function(void* boxed) GBoxedCopyFunc;
3644 
3645 /*
3646  * This function is provided by the user and should free the boxed
3647  * structure passed.
3648  * boxed :
3649  * The boxed structure to be freed.
3650  */
3651 // void (*GBoxedFreeFunc) (gpointer boxed);
3652 public alias extern(C) void function(void* boxed) GBoxedFreeFunc;
3653 
3654 /*
3655  * The type of value transformation functions which can be registered with
3656  * g_value_register_transform_func().
3657  * src_value :
3658  * Source value.
3659  * dest_value :
3660  * Target value.
3661  */
3662 // void (*GValueTransform) (const GValue *src_value,  GValue *dest_value);
3663 public alias extern(C) void function(GValue* srcValue, GValue* destValue) GValueTransform;
3664 
3665 /*
3666  * The signal accumulator is a special callback function that can be used
3667  * to collect return values of the various callbacks that are called
3668  * during a signal emission. The signal accumulator is specified at signal
3669  * creation time, if it is left NULL, no accumulation of callback return
3670  * values is performed. The return value of signal emissions is then the
3671  * value returned by the last callback.
3672  * ihint :
3673  * Signal invocation hint, see GSignalInvocationHint.
3674  * return_accu :
3675  * Accumulator to collect callback return values in, this
3676  * is the return value of the current signal emission.
3677  * handler_return :
3678  * A GValue holding the return value of the signal handler.
3679  * data :
3680  * Callback data that was specified when creating the signal.
3681  * Returns :
3682  * The accumulator function returns whether the signal emission
3683  * should be aborted. Returning FALSE means to abort the
3684  * current emission and TRUE is returned for continuation.
3685  */
3686 // gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint,  GValue *return_accu,  const GValue *handler_return,  gpointer data);
3687 public alias extern(C) int function(GSignalInvocationHint* ihint, GValue* returnAccu, GValue* handlerReturn, void* data) GSignalAccumulator;
3688 
3689 /*
3690  * A simple function pointer to get invoked when the signal is emitted. This
3691  * allows you to tie a hook to the signal type, so that it will trap all
3692  * emissions of that signal, from any object.
3693  * You may not attach these to signals created with the G_SIGNAL_NO_HOOKS flag.
3694  * ihint :
3695  * Signal invocation hint, see GSignalInvocationHint.
3696  * n_param_values :
3697  * the number of parameters to the function, including
3698  * the instance on which the signal was emitted.
3699  * param_values :
3700  * the instance on which
3701  * the signal was emitted, followed by the parameters of the emission. [array length=n_param_values]
3702  * data :
3703  * user data associated with the hook.
3704  * Returns :
3705  * whether it wants to stay connected. If it returns FALSE, the signal
3706  * hook is disconnected (and destroyed).
3707  */
3708 // gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint,  guint n_param_values,  const GValue *param_values,  gpointer data);
3709 public alias extern(C) int function(GSignalInvocationHint* ihint, uint nParamValues, GValue* paramValues, void* data) GSignalEmissionHook;
3710 
3711 /*
3712  * The type used for callback functions in structure definitions and function
3713  * signatures. This doesn't mean that all callback functions must take no
3714  * parameters and return void. The required signature of a callback function
3715  * is determined by the context in which is used (e.g. the signal to which it
3716  * is connected). Use G_CALLBACK() to cast the callback function to a GCallback.
3717  */
3718 // void (*GCallback) (void);
3719 public alias extern(C) void function() GCallback;
3720 
3721 /*
3722  * The type used for marshaller functions.
3723  * closure :
3724  * the GClosure to which the marshaller belongs
3725  * return_value :
3726  * a GValue to store the return
3727  * value. May be NULL if the callback of closure doesn't return a
3728  * value. [allow-none]
3729  * n_param_values :
3730  * the length of the param_values array
3731  * param_values :
3732  * an array of
3733  * GValues holding the arguments on which to invoke the
3734  * callback of closure. [array length=n_param_values]
3735  * invocation_hint :
3736  * the invocation hint given as the
3737  * last argument to g_closure_invoke(). [allow-none]
3738  * marshal_data :
3739  * additional data specified when
3740  * registering the marshaller, see g_closure_set_marshal() and
3741  * g_closure_set_meta_marshal(). [allow-none]
3742  */
3743 // void (*GClosureMarshal) (GClosure *closure,  GValue *return_value,  guint n_param_values,  const GValue *param_values,  gpointer invocation_hint,  gpointer marshal_data);
3744 public alias extern(C) void function(GClosure* closure, GValue* returnValue, uint nParamValues, GValue* paramValues, void* invocationHint, void* marshalData) GClosureMarshal;
3745 
3746 /*
3747  */
3748 // void (*GVaClosureMarshal) (GClosure *closure,  GValue *return_value,  gpointer instance,  va_list args,  gpointer marshal_data,  int n_params,  GType *param_types);
3749 public alias extern(C) void function(GClosure* closure, GValue* returnValue, void* instanc, void* args, void* marshalData, int nParams, GType* paramTypes) GVaClosureMarshal;
3750 
3751 /*
3752  * The type used for the various notification callbacks which can be registered
3753  * on closures.
3754  * data :
3755  * data specified when registering the notification callback
3756  * closure :
3757  * the GClosure on which the notification is emitted
3758  */
3759 // void (*GClosureNotify) (gpointer data,  GClosure *closure);
3760 public alias extern(C) void function(void* data, GClosure* closure) GClosureNotify;
3761 
3762 /*
3763  * A function to be called to transform the source property of source
3764  * from source_value into the target property of target
3765  * using target_value.
3766  * binding :
3767  * a GBinding
3768  * source_value :
3769  * the value of the source property
3770  * target_value :
3771  * the value of the target property
3772  * user_data :
3773  * data passed to the transform function
3774  * Returns :
3775  * TRUE if the transformation was successful, and FALSE
3776  * otherwise
3777  * Since 2.26
3778  */
3779 // gboolean (*GBindingTransformFunc) (GBinding *binding,  const GValue *source_value,  GValue *target_value,  gpointer user_data);
3780 public alias extern(C) int function(GBinding* binding, GValue* sourceValue, GValue* targetValue, void* userData) GBindingTransformFunc;