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 /*
25  * Conversion parameters:
26  * inFile  = gobject-Generic-values.html
27  * outPack = gobject
28  * outFile = Value
29  * strct   = GValue
30  * realStrct=
31  * ctorStrct=
32  * clss    = Value
33  * interf  = 
34  * class Code: Yes
35  * interface Code: No
36  * template for:
37  * extend  = 
38  * implements:
39  * prefixes:
40  * 	- g_value_
41  * omit structs:
42  * 	- GValue
43  * omit prefixes:
44  * omit code:
45  * 	- g_value_init
46  * 	- g_value_reset
47  * omit signals:
48  * imports:
49  * 	- glib.Str
50  * 	- gobject.ParamSpec
51  * 	- gdk.Pixbuf
52  * 	- glib.Variant
53  * 	- glib.VariantType
54  * structWrap:
55  * 	- GParamSpec* -> ParamSpec
56  * 	- GValue* -> Value
57  * 	- GVariant* -> Variant
58  * 	- GVariantType* -> VariantType
59  * module aliases:
60  * local aliases:
61  * overrides:
62  */
63 
64 module gobject.Value;
65 
66 public  import gtkc.gobjecttypes;
67 
68 private import gtkc.gobject;
69 private import glib.ConstructionException;
70 private import gobject.ObjectG;
71 
72 private import glib.Str;
73 private import gobject.ParamSpec;
74 private import gdk.Pixbuf;
75 private import glib.Variant;
76 private import glib.VariantType;
77 
78 
79 
80 /**
81  * The GValue structure is basically a variable container that consists
82  * of a type identifier and a specific value of that type.
83  * The type identifier within a GValue structure always determines the
84  * type of the associated value.
85  * To create a undefined GValue structure, simply create a zero-filled
86  * GValue structure. To initialize the GValue, use the g_value_init()
87  * function. A GValue cannot be used until it is initialized.
88  * The basic type operations (such as freeing and copying) are determined
89  * by the GTypeValueTable associated with the type ID stored in the GValue.
90  * Other GValue operations (such as converting values between types) are
91  * provided by this interface.
92  *
93  * The code in the example program below demonstrates GValue's
94  * features.
95  *
96  * $(DDOC_COMMENT example)
97  */
98 public class Value
99 {
100 	
101 	/** the main Gtk struct */
102 	protected GValue* gValue;
103 	
104 	
105 	/** Get the main Gtk struct */
106 	public GValue* getValueStruct()
107 	{
108 		return gValue;
109 	}
110 	
111 	
112 	/** the main Gtk struct as a void* */
113 	protected void* getStruct()
114 	{
115 		return cast(void*)gValue;
116 	}
117 	
118 	/**
119 	 * Sets our main struct and passes it to the parent class
120 	 */
121 	public this (GValue* gValue)
122 	{
123 		this.gValue = gValue;
124 	}
125 	
126 	/** */
127 	public this()
128 	{
129 		this(new GValue);
130 	}
131 	
132 	/** */
133 	this(Pixbuf pixbuf)
134 	{
135 		GValue* v = new GValue;
136 		//v.g_type = DUIType.PIXBUF;
137 		v.g_type = Pixbuf.getType();
138 		v.data1.v_pointer = cast(void*)(pixbuf.getPixbufStruct());
139 		this(v);
140 	}
141 	
142 	/** */
143 	this(string value)
144 	{
145 		this();
146 		init(GType.STRING);
147 		setString(value);
148 	}
149 	
150 	/** */
151 	this(int value)
152 	{
153 		this();
154 		init(GType.INT);
155 		setInt(value);
156 	}
157 	
158 	/** */
159 	this(float value)
160 	{
161 		this();
162 		init(GType.FLOAT);
163 		setFloat(value);
164 	}
165 	
166 	/** */
167 	this(double value)
168 	{
169 		this();
170 		init(GType.DOUBLE);
171 		setDouble(value);
172 	}
173 	
174 	/**
175 	 * Initializes value with the default value of type.
176 	 * Params:
177 	 *  value = A zero-filled (uninitialized) GValue structure.
178 	 *  g_type = Type the GValue should hold values of.
179 	 * Returns:
180 	 *  the GValue structure that has been passed in
181 	 */
182 	public Value init(GType gType)
183 	{
184 		// GValue* g_value_init (GValue *value,  GType g_type);
185 		g_value_init(gValue, gType);
186 		return this;
187 	}
188 	
189 	/**
190 	 * Clears the current value in value and resets it to the default value
191 	 * (as if the value had just been initialized).
192 	 * Params:
193 	 *  value = An initialized GValue structure.
194 	 * Returns:
195 	 *  the GValue structure that has been passed in
196 	 */
197 	public Value reset()
198 	{
199 		// GValue* g_value_reset (GValue *value);
200 		g_value_reset(gValue);
201 		return this;
202 	}
203 	
204 	
205 	
206 	/**
207 	 * GValue provides an abstract container structure which can be
208 	 * copied, transformed and compared while holding a value of any
209 	 * (derived) type, which is registered as a GType with a
210 	 * GTypeValueTable in its GTypeInfo structure. Parameter
211 	 * specifications for most value types can be created as GParamSpec
212 	 * derived instances, to implement e.g. GObject properties which
213 	 * operate on GValue containers.
214 	 *
215 	 * Parameter names need to start with a letter (a-z or A-Z). Subsequent
216 	 * characters can be letters, numbers or a '-'.
217 	 * All other characters are replaced by a '-' during construction.
218 	 */
219 	
220 	/**
221 	 * Copies the value of src_value into dest_value.
222 	 * Params:
223 	 * destValue = An initialized GValue structure of the same type as src_value.
224 	 */
225 	public void copy(Value destValue)
226 	{
227 		// void g_value_copy (const GValue *src_value,  GValue *dest_value);
228 		g_value_copy(gValue, (destValue is null) ? null : destValue.getValueStruct());
229 	}
230 	
231 	/**
232 	 * Clears the current value in value and "unsets" the type,
233 	 * this releases all resources associated with this GValue.
234 	 * An unset value is the same as an uninitialized (zero-filled)
235 	 * GValue structure.
236 	 */
237 	public void unset()
238 	{
239 		// void g_value_unset (GValue *value);
240 		g_value_unset(gValue);
241 	}
242 	
243 	/**
244 	 * Sets value from an instantiatable type via the
245 	 * value_table's collect_value() function.
246 	 */
247 	public void setInstance(void* instanc)
248 	{
249 		// void g_value_set_instance (GValue *value,  gpointer instance);
250 		g_value_set_instance(gValue, instanc);
251 	}
252 	
253 	/**
254 	 * Determines if value will fit inside the size of a pointer value.
255 	 * This is an internal function introduced mainly for C marshallers.
256 	 * Returns: TRUE if value will fit inside a pointer value.
257 	 */
258 	public int fitsPointer()
259 	{
260 		// gboolean g_value_fits_pointer (const GValue *value);
261 		return g_value_fits_pointer(gValue);
262 	}
263 	
264 	/**
265 	 * Returns: the value contents as pointer. This function asserts that g_value_fits_pointer() returned TRUE for the passed in value. This is an internal function introduced mainly for C marshallers. [transfer none]
266 	 */
267 	public void* peekPointer()
268 	{
269 		// gpointer g_value_peek_pointer (const GValue *value);
270 		return g_value_peek_pointer(gValue);
271 	}
272 	
273 	/**
274 	 * Returns whether a GValue of type src_type can be copied into
275 	 * a GValue of type dest_type.
276 	 * Params:
277 	 * srcType = source type to be copied.
278 	 * destType = destination type for copying.
279 	 * Returns: TRUE if g_value_copy() is possible with src_type and dest_type.
280 	 */
281 	public static int typeCompatible(GType srcType, GType destType)
282 	{
283 		// gboolean g_value_type_compatible (GType src_type,  GType dest_type);
284 		return g_value_type_compatible(srcType, destType);
285 	}
286 	
287 	/**
288 	 * Check whether g_value_transform() is able to transform values
289 	 * of type src_type into values of type dest_type.
290 	 * Params:
291 	 * srcType = Source type.
292 	 * destType = Target type.
293 	 * Returns: TRUE if the transformation is possible, FALSE otherwise.
294 	 */
295 	public static int typeTransformable(GType srcType, GType destType)
296 	{
297 		// gboolean g_value_type_transformable (GType src_type,  GType dest_type);
298 		return g_value_type_transformable(srcType, destType);
299 	}
300 	
301 	/**
302 	 * Tries to cast the contents of src_value into a type appropriate
303 	 * to store in dest_value, e.g. to transform a G_TYPE_INT value
304 	 * into a G_TYPE_FLOAT value. Performing transformations between
305 	 * value types might incur precision lossage. Especially
306 	 * transformations into strings might reveal seemingly arbitrary
307 	 * results and shouldn't be relied upon for production code (such
308 	 * as rcfile value or object property serialization).
309 	 * Params:
310 	 * destValue = Target value.
311 	 * Returns: Whether a transformation rule was found and could be applied. Upon failing transformations, dest_value is left untouched.
312 	 */
313 	public int transform(Value destValue)
314 	{
315 		// gboolean g_value_transform (const GValue *src_value,  GValue *dest_value);
316 		return g_value_transform(gValue, (destValue is null) ? null : destValue.getValueStruct());
317 	}
318 	
319 	/**
320 	 * Registers a value transformation function for use in g_value_transform().
321 	 * A previously registered transformation function for src_type and dest_type
322 	 * will be replaced.
323 	 * Params:
324 	 * srcType = Source type.
325 	 * destType = Target type.
326 	 * transformFunc = a function which transforms values of type src_type
327 	 * into value of type dest_type
328 	 */
329 	public static void registerTransformFunc(GType srcType, GType destType, GValueTransform transformFunc)
330 	{
331 		// void g_value_register_transform_func (GType src_type,  GType dest_type,  GValueTransform transform_func);
332 		g_value_register_transform_func(srcType, destType, transformFunc);
333 	}
334 	
335 	/**
336 	 * Return a newly allocated string, which describes the contents of a
337 	 * GValue. The main purpose of this function is to describe GValue
338 	 * contents for debugging output, the way in which the contents are
339 	 * described may change between different GLib versions.
340 	 * Returns: Newly allocated string.
341 	 */
342 	public string gStrdupValueContents()
343 	{
344 		// gchar * g_strdup_value_contents (const GValue *value);
345 		return Str.toString(g_strdup_value_contents(gValue));
346 	}
347 	
348 	/**
349 	 * Creates a new GParamSpecBoolean instance specifying a G_TYPE_BOOLEAN
350 	 * property.
351 	 * See g_param_spec_internal() for details on property names.
352 	 * Params:
353 	 * name = canonical name of the property specified
354 	 * nick = nick name for the property specified
355 	 * blurb = description of the property specified
356 	 * defaultValue = default value for the property specified
357 	 * flags = flags for the property specified
358 	 * Returns: a newly created parameter specification. [transfer full]
359 	 */
360 	public static ParamSpec gParamSpecBoolean(string name, string nick, string blurb, int defaultValue, GParamFlags flags)
361 	{
362 		// GParamSpec * g_param_spec_boolean (const gchar *name,  const gchar *nick,  const gchar *blurb,  gboolean default_value,  GParamFlags flags);
363 		auto p = g_param_spec_boolean(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), defaultValue, flags);
364 		
365 		if(p is null)
366 		{
367 			return null;
368 		}
369 		
370 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
371 	}
372 	
373 	/**
374 	 * Set the contents of a G_TYPE_BOOLEAN GValue to v_boolean.
375 	 * Params:
376 	 * vBoolean = boolean value to be set
377 	 */
378 	public void setBoolean(int vBoolean)
379 	{
380 		// void g_value_set_boolean (GValue *value,  gboolean v_boolean);
381 		g_value_set_boolean(gValue, vBoolean);
382 	}
383 	
384 	/**
385 	 * Get the contents of a G_TYPE_BOOLEAN GValue.
386 	 * Returns: boolean contents of value
387 	 */
388 	public int getBoolean()
389 	{
390 		// gboolean g_value_get_boolean (const GValue *value);
391 		return g_value_get_boolean(gValue);
392 	}
393 	
394 	/**
395 	 * Creates a new GParamSpecChar instance specifying a G_TYPE_CHAR property.
396 	 * Params:
397 	 * name = canonical name of the property specified
398 	 * nick = nick name for the property specified
399 	 * blurb = description of the property specified
400 	 * minimum = minimum value for the property specified
401 	 * maximum = maximum value for the property specified
402 	 * defaultValue = default value for the property specified
403 	 * flags = flags for the property specified
404 	 * Returns: a newly created parameter specification. [transfer full]
405 	 */
406 	public static ParamSpec gParamSpecChar(string name, string nick, string blurb, byte minimum, byte maximum, byte defaultValue, GParamFlags flags)
407 	{
408 		// GParamSpec * g_param_spec_char (const gchar *name,  const gchar *nick,  const gchar *blurb,  gint8 minimum,  gint8 maximum,  gint8 default_value,  GParamFlags flags);
409 		auto p = g_param_spec_char(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
410 		
411 		if(p is null)
412 		{
413 			return null;
414 		}
415 		
416 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
417 	}
418 	
419 	/**
420 	 * Warning
421 	 * g_value_set_char has been deprecated since version 2.32 and should not be used in newly-written code. This function's input type is broken, see g_value_set_schar()
422 	 * Set the contents of a G_TYPE_CHAR GValue to v_char.
423 	 * Params:
424 	 * vChar = character value to be set
425 	 */
426 	public void setChar(char vChar)
427 	{
428 		// void g_value_set_char (GValue *value,  gchar v_char);
429 		g_value_set_char(gValue, vChar);
430 	}
431 	
432 	/**
433 	 * Warning
434 	 * g_value_get_char has been deprecated since version 2.32 and should not be used in newly-written code. This function's return type is broken, see g_value_get_schar()
435 	 * Do not use this function; it is broken on platforms where the char
436 	 * type is unsigned, such as ARM and PowerPC. See g_value_get_schar().
437 	 * Get the contents of a G_TYPE_CHAR GValue.
438 	 * Returns: character contents of value
439 	 */
440 	public char getChar()
441 	{
442 		// gchar g_value_get_char (const GValue *value);
443 		return g_value_get_char(gValue);
444 	}
445 	
446 	/**
447 	 * Get the contents of a G_TYPE_CHAR GValue.
448 	 * Since 2.32
449 	 * Returns: signed 8 bit integer contents of value
450 	 */
451 	public byte getSchar()
452 	{
453 		// gint8 g_value_get_schar (const GValue *value);
454 		return g_value_get_schar(gValue);
455 	}
456 	
457 	/**
458 	 * Set the contents of a G_TYPE_CHAR GValue to v_char.
459 	 * Since 2.32
460 	 * Params:
461 	 * vChar = signed 8 bit integer to be set
462 	 */
463 	public void setSchar(byte vChar)
464 	{
465 		// void g_value_set_schar (GValue *value,  gint8 v_char);
466 		g_value_set_schar(gValue, vChar);
467 	}
468 	
469 	/**
470 	 * Creates a new GParamSpecUChar instance specifying a G_TYPE_UCHAR property.
471 	 * Params:
472 	 * name = canonical name of the property specified
473 	 * nick = nick name for the property specified
474 	 * blurb = description of the property specified
475 	 * minimum = minimum value for the property specified
476 	 * maximum = maximum value for the property specified
477 	 * defaultValue = default value for the property specified
478 	 * flags = flags for the property specified
479 	 * Returns: a newly created parameter specification. [transfer full]
480 	 */
481 	public static ParamSpec gParamSpecUchar(string name, string nick, string blurb, ubyte minimum, ubyte maximum, ubyte defaultValue, GParamFlags flags)
482 	{
483 		// GParamSpec * g_param_spec_uchar (const gchar *name,  const gchar *nick,  const gchar *blurb,  guint8 minimum,  guint8 maximum,  guint8 default_value,  GParamFlags flags);
484 		auto p = g_param_spec_uchar(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
485 		
486 		if(p is null)
487 		{
488 			return null;
489 		}
490 		
491 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
492 	}
493 	
494 	/**
495 	 * Set the contents of a G_TYPE_UCHAR GValue to v_uchar.
496 	 * Params:
497 	 * vUchar = unsigned character value to be set
498 	 */
499 	public void setUchar(char vUchar)
500 	{
501 		// void g_value_set_uchar (GValue *value,  guchar v_uchar);
502 		g_value_set_uchar(gValue, vUchar);
503 	}
504 	
505 	/**
506 	 * Get the contents of a G_TYPE_UCHAR GValue.
507 	 * Returns: unsigned character contents of value
508 	 */
509 	public char getUchar()
510 	{
511 		// guchar g_value_get_uchar (const GValue *value);
512 		return g_value_get_uchar(gValue);
513 	}
514 	
515 	/**
516 	 * Creates a new GParamSpecInt instance specifying a G_TYPE_INT property.
517 	 * See g_param_spec_internal() for details on property names.
518 	 * Params:
519 	 * name = canonical name of the property specified
520 	 * nick = nick name for the property specified
521 	 * blurb = description of the property specified
522 	 * minimum = minimum value for the property specified
523 	 * maximum = maximum value for the property specified
524 	 * defaultValue = default value for the property specified
525 	 * flags = flags for the property specified
526 	 * Returns: a newly created parameter specification. [transfer full]
527 	 */
528 	public static ParamSpec gParamSpecInt(string name, string nick, string blurb, int minimum, int maximum, int defaultValue, GParamFlags flags)
529 	{
530 		// GParamSpec * g_param_spec_int (const gchar *name,  const gchar *nick,  const gchar *blurb,  gint minimum,  gint maximum,  gint default_value,  GParamFlags flags);
531 		auto p = g_param_spec_int(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
532 		
533 		if(p is null)
534 		{
535 			return null;
536 		}
537 		
538 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
539 	}
540 	
541 	/**
542 	 * Set the contents of a G_TYPE_INT GValue to v_int.
543 	 * Params:
544 	 * vInt = integer value to be set
545 	 */
546 	public void setInt(int vInt)
547 	{
548 		// void g_value_set_int (GValue *value,  gint v_int);
549 		g_value_set_int(gValue, vInt);
550 	}
551 	
552 	/**
553 	 * Get the contents of a G_TYPE_INT GValue.
554 	 * Returns: integer contents of value
555 	 */
556 	public int getInt()
557 	{
558 		// gint g_value_get_int (const GValue *value);
559 		return g_value_get_int(gValue);
560 	}
561 	
562 	/**
563 	 * Creates a new GParamSpecUInt instance specifying a G_TYPE_UINT property.
564 	 * See g_param_spec_internal() for details on property names.
565 	 * Params:
566 	 * name = canonical name of the property specified
567 	 * nick = nick name for the property specified
568 	 * blurb = description of the property specified
569 	 * minimum = minimum value for the property specified
570 	 * maximum = maximum value for the property specified
571 	 * defaultValue = default value for the property specified
572 	 * flags = flags for the property specified
573 	 * Returns: a newly created parameter specification. [transfer full]
574 	 */
575 	public static ParamSpec gParamSpecUint(string name, string nick, string blurb, uint minimum, uint maximum, uint defaultValue, GParamFlags flags)
576 	{
577 		// GParamSpec * g_param_spec_uint (const gchar *name,  const gchar *nick,  const gchar *blurb,  guint minimum,  guint maximum,  guint default_value,  GParamFlags flags);
578 		auto p = g_param_spec_uint(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
579 		
580 		if(p is null)
581 		{
582 			return null;
583 		}
584 		
585 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
586 	}
587 	
588 	/**
589 	 * Set the contents of a G_TYPE_UINT GValue to v_uint.
590 	 * Params:
591 	 * vUint = unsigned integer value to be set
592 	 */
593 	public void setUint(uint vUint)
594 	{
595 		// void g_value_set_uint (GValue *value,  guint v_uint);
596 		g_value_set_uint(gValue, vUint);
597 	}
598 	
599 	/**
600 	 * Get the contents of a G_TYPE_UINT GValue.
601 	 * Returns: unsigned integer contents of value
602 	 */
603 	public uint getUint()
604 	{
605 		// guint g_value_get_uint (const GValue *value);
606 		return g_value_get_uint(gValue);
607 	}
608 	
609 	/**
610 	 * Creates a new GParamSpecLong instance specifying a G_TYPE_LONG property.
611 	 * See g_param_spec_internal() for details on property names.
612 	 * Params:
613 	 * name = canonical name of the property specified
614 	 * nick = nick name for the property specified
615 	 * blurb = description of the property specified
616 	 * minimum = minimum value for the property specified
617 	 * maximum = maximum value for the property specified
618 	 * defaultValue = default value for the property specified
619 	 * flags = flags for the property specified
620 	 * Returns: a newly created parameter specification. [transfer full]
621 	 */
622 	public static ParamSpec gParamSpecLong(string name, string nick, string blurb, glong minimum, glong maximum, glong defaultValue, GParamFlags flags)
623 	{
624 		// GParamSpec * g_param_spec_long (const gchar *name,  const gchar *nick,  const gchar *blurb,  glong minimum,  glong maximum,  glong default_value,  GParamFlags flags);
625 		auto p = g_param_spec_long(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
626 		
627 		if(p is null)
628 		{
629 			return null;
630 		}
631 		
632 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
633 	}
634 	
635 	/**
636 	 * Set the contents of a G_TYPE_LONG GValue to v_long.
637 	 * Params:
638 	 * vLong = long integer value to be set
639 	 */
640 	public void setLong(glong vLong)
641 	{
642 		// void g_value_set_long (GValue *value,  glong v_long);
643 		g_value_set_long(gValue, vLong);
644 	}
645 	
646 	/**
647 	 * Get the contents of a G_TYPE_LONG GValue.
648 	 * Returns: long integer contents of value
649 	 */
650 	public glong getLong()
651 	{
652 		// glong g_value_get_long (const GValue *value);
653 		return g_value_get_long(gValue);
654 	}
655 	
656 	/**
657 	 * Creates a new GParamSpecULong instance specifying a G_TYPE_ULONG
658 	 * property.
659 	 * See g_param_spec_internal() for details on property names.
660 	 * Params:
661 	 * name = canonical name of the property specified
662 	 * nick = nick name for the property specified
663 	 * blurb = description of the property specified
664 	 * minimum = minimum value for the property specified
665 	 * maximum = maximum value for the property specified
666 	 * defaultValue = default value for the property specified
667 	 * flags = flags for the property specified
668 	 * Returns: a newly created parameter specification. [transfer full]
669 	 */
670 	public static ParamSpec gParamSpecUlong(string name, string nick, string blurb, gulong minimum, gulong maximum, gulong defaultValue, GParamFlags flags)
671 	{
672 		// GParamSpec * g_param_spec_ulong (const gchar *name,  const gchar *nick,  const gchar *blurb,  gulong minimum,  gulong maximum,  gulong default_value,  GParamFlags flags);
673 		auto p = g_param_spec_ulong(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
674 		
675 		if(p is null)
676 		{
677 			return null;
678 		}
679 		
680 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
681 	}
682 	
683 	/**
684 	 * Set the contents of a G_TYPE_ULONG GValue to v_ulong.
685 	 * Params:
686 	 * vUlong = unsigned long integer value to be set
687 	 */
688 	public void setUlong(gulong vUlong)
689 	{
690 		// void g_value_set_ulong (GValue *value,  gulong v_ulong);
691 		g_value_set_ulong(gValue, vUlong);
692 	}
693 	
694 	/**
695 	 * Get the contents of a G_TYPE_ULONG GValue.
696 	 * Returns: unsigned long integer contents of value
697 	 */
698 	public gulong getUlong()
699 	{
700 		// gulong g_value_get_ulong (const GValue *value);
701 		return g_value_get_ulong(gValue);
702 	}
703 	
704 	/**
705 	 * Creates a new GParamSpecInt64 instance specifying a G_TYPE_INT64 property.
706 	 * See g_param_spec_internal() for details on property names.
707 	 * Params:
708 	 * name = canonical name of the property specified
709 	 * nick = nick name for the property specified
710 	 * blurb = description of the property specified
711 	 * minimum = minimum value for the property specified
712 	 * maximum = maximum value for the property specified
713 	 * defaultValue = default value for the property specified
714 	 * flags = flags for the property specified
715 	 * Returns: a newly created parameter specification. [transfer full]
716 	 */
717 	public static ParamSpec gParamSpecInt64(string name, string nick, string blurb, long minimum, long maximum, long defaultValue, GParamFlags flags)
718 	{
719 		// GParamSpec * g_param_spec_int64 (const gchar *name,  const gchar *nick,  const gchar *blurb,  gint64 minimum,  gint64 maximum,  gint64 default_value,  GParamFlags flags);
720 		auto p = g_param_spec_int64(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
721 		
722 		if(p is null)
723 		{
724 			return null;
725 		}
726 		
727 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
728 	}
729 	
730 	/**
731 	 * Set the contents of a G_TYPE_INT64 GValue to v_int64.
732 	 * Params:
733 	 * vInt64 = 64bit integer value to be set
734 	 */
735 	public void setInt64(long vInt64)
736 	{
737 		// void g_value_set_int64 (GValue *value,  gint64 v_int64);
738 		g_value_set_int64(gValue, vInt64);
739 	}
740 	
741 	/**
742 	 * Get the contents of a G_TYPE_INT64 GValue.
743 	 * Returns: 64bit integer contents of value
744 	 */
745 	public long getInt64()
746 	{
747 		// gint64 g_value_get_int64 (const GValue *value);
748 		return g_value_get_int64(gValue);
749 	}
750 	
751 	/**
752 	 * Creates a new GParamSpecUInt64 instance specifying a G_TYPE_UINT64
753 	 * property.
754 	 * See g_param_spec_internal() for details on property names.
755 	 * Params:
756 	 * name = canonical name of the property specified
757 	 * nick = nick name for the property specified
758 	 * blurb = description of the property specified
759 	 * minimum = minimum value for the property specified
760 	 * maximum = maximum value for the property specified
761 	 * defaultValue = default value for the property specified
762 	 * flags = flags for the property specified
763 	 * Returns: a newly created parameter specification. [transfer full]
764 	 */
765 	public static ParamSpec gParamSpecUint64(string name, string nick, string blurb, ulong minimum, ulong maximum, ulong defaultValue, GParamFlags flags)
766 	{
767 		// GParamSpec * g_param_spec_uint64 (const gchar *name,  const gchar *nick,  const gchar *blurb,  guint64 minimum,  guint64 maximum,  guint64 default_value,  GParamFlags flags);
768 		auto p = g_param_spec_uint64(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
769 		
770 		if(p is null)
771 		{
772 			return null;
773 		}
774 		
775 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
776 	}
777 	
778 	/**
779 	 * Set the contents of a G_TYPE_UINT64 GValue to v_uint64.
780 	 * Params:
781 	 * vUint64 = unsigned 64bit integer value to be set
782 	 */
783 	public void setUint64(ulong vUint64)
784 	{
785 		// void g_value_set_uint64 (GValue *value,  guint64 v_uint64);
786 		g_value_set_uint64(gValue, vUint64);
787 	}
788 	
789 	/**
790 	 * Get the contents of a G_TYPE_UINT64 GValue.
791 	 * Returns: unsigned 64bit integer contents of value
792 	 */
793 	public ulong getUint64()
794 	{
795 		// guint64 g_value_get_uint64 (const GValue *value);
796 		return g_value_get_uint64(gValue);
797 	}
798 	
799 	/**
800 	 * Creates a new GParamSpecFloat instance specifying a G_TYPE_FLOAT property.
801 	 * See g_param_spec_internal() for details on property names.
802 	 * Params:
803 	 * name = canonical name of the property specified
804 	 * nick = nick name for the property specified
805 	 * blurb = description of the property specified
806 	 * minimum = minimum value for the property specified
807 	 * maximum = maximum value for the property specified
808 	 * defaultValue = default value for the property specified
809 	 * flags = flags for the property specified
810 	 * Returns: a newly created parameter specification. [transfer full]
811 	 */
812 	public static ParamSpec gParamSpecFloat(string name, string nick, string blurb, float minimum, float maximum, float defaultValue, GParamFlags flags)
813 	{
814 		// GParamSpec * g_param_spec_float (const gchar *name,  const gchar *nick,  const gchar *blurb,  gfloat minimum,  gfloat maximum,  gfloat default_value,  GParamFlags flags);
815 		auto p = g_param_spec_float(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
816 		
817 		if(p is null)
818 		{
819 			return null;
820 		}
821 		
822 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
823 	}
824 	
825 	/**
826 	 * Set the contents of a G_TYPE_FLOAT GValue to v_float.
827 	 * Params:
828 	 * vFloat = float value to be set
829 	 */
830 	public void setFloat(float vFloat)
831 	{
832 		// void g_value_set_float (GValue *value,  gfloat v_float);
833 		g_value_set_float(gValue, vFloat);
834 	}
835 	
836 	/**
837 	 * Get the contents of a G_TYPE_FLOAT GValue.
838 	 * Returns: float contents of value
839 	 */
840 	public float getFloat()
841 	{
842 		// gfloat g_value_get_float (const GValue *value);
843 		return g_value_get_float(gValue);
844 	}
845 	
846 	/**
847 	 * Creates a new GParamSpecDouble instance specifying a G_TYPE_DOUBLE
848 	 * property.
849 	 * See g_param_spec_internal() for details on property names.
850 	 * Params:
851 	 * name = canonical name of the property specified
852 	 * nick = nick name for the property specified
853 	 * blurb = description of the property specified
854 	 * minimum = minimum value for the property specified
855 	 * maximum = maximum value for the property specified
856 	 * defaultValue = default value for the property specified
857 	 * flags = flags for the property specified
858 	 * Returns: a newly created parameter specification. [transfer full]
859 	 */
860 	public static ParamSpec gParamSpecDouble(string name, string nick, string blurb, double minimum, double maximum, double defaultValue, GParamFlags flags)
861 	{
862 		// GParamSpec * g_param_spec_double (const gchar *name,  const gchar *nick,  const gchar *blurb,  gdouble minimum,  gdouble maximum,  gdouble default_value,  GParamFlags flags);
863 		auto p = g_param_spec_double(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), minimum, maximum, defaultValue, flags);
864 		
865 		if(p is null)
866 		{
867 			return null;
868 		}
869 		
870 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
871 	}
872 	
873 	/**
874 	 * Set the contents of a G_TYPE_DOUBLE GValue to v_double.
875 	 * Params:
876 	 * vDouble = double value to be set
877 	 */
878 	public void setDouble(double vDouble)
879 	{
880 		// void g_value_set_double (GValue *value,  gdouble v_double);
881 		g_value_set_double(gValue, vDouble);
882 	}
883 	
884 	/**
885 	 * Get the contents of a G_TYPE_DOUBLE GValue.
886 	 * Returns: double contents of value
887 	 */
888 	public double getDouble()
889 	{
890 		// gdouble g_value_get_double (const GValue *value);
891 		return g_value_get_double(gValue);
892 	}
893 	
894 	/**
895 	 * Creates a new GParamSpecEnum instance specifying a G_TYPE_ENUM
896 	 * property.
897 	 * See g_param_spec_internal() for details on property names.
898 	 * Params:
899 	 * name = canonical name of the property specified
900 	 * nick = nick name for the property specified
901 	 * blurb = description of the property specified
902 	 * enumType = a GType derived from G_TYPE_ENUM
903 	 * defaultValue = default value for the property specified
904 	 * flags = flags for the property specified
905 	 * Returns: a newly created parameter specification. [transfer full]
906 	 */
907 	public static ParamSpec gParamSpecEnum(string name, string nick, string blurb, GType enumType, int defaultValue, GParamFlags flags)
908 	{
909 		// GParamSpec * g_param_spec_enum (const gchar *name,  const gchar *nick,  const gchar *blurb,  GType enum_type,  gint default_value,  GParamFlags flags);
910 		auto p = g_param_spec_enum(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), enumType, defaultValue, flags);
911 		
912 		if(p is null)
913 		{
914 			return null;
915 		}
916 		
917 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
918 	}
919 	
920 	/**
921 	 * Set the contents of a G_TYPE_ENUM GValue to v_enum.
922 	 * Params:
923 	 * vEnum = enum value to be set
924 	 */
925 	public void setEnum(int vEnum)
926 	{
927 		// void g_value_set_enum (GValue *value,  gint v_enum);
928 		g_value_set_enum(gValue, vEnum);
929 	}
930 	
931 	/**
932 	 * Get the contents of a G_TYPE_ENUM GValue.
933 	 * Returns: enum contents of value
934 	 */
935 	public int getEnum()
936 	{
937 		// gint g_value_get_enum (const GValue *value);
938 		return g_value_get_enum(gValue);
939 	}
940 	
941 	/**
942 	 * Creates a new GParamSpecFlags instance specifying a G_TYPE_FLAGS
943 	 * property.
944 	 * See g_param_spec_internal() for details on property names.
945 	 * Params:
946 	 * name = canonical name of the property specified
947 	 * nick = nick name for the property specified
948 	 * blurb = description of the property specified
949 	 * flagsType = a GType derived from G_TYPE_FLAGS
950 	 * defaultValue = default value for the property specified
951 	 * flags = flags for the property specified
952 	 * Returns: a newly created parameter specification. [transfer full]
953 	 */
954 	public static ParamSpec gParamSpecFlags(string name, string nick, string blurb, GType flagsType, uint defaultValue, GParamFlags flags)
955 	{
956 		// GParamSpec * g_param_spec_flags (const gchar *name,  const gchar *nick,  const gchar *blurb,  GType flags_type,  guint default_value,  GParamFlags flags);
957 		auto p = g_param_spec_flags(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), flagsType, defaultValue, flags);
958 		
959 		if(p is null)
960 		{
961 			return null;
962 		}
963 		
964 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
965 	}
966 	
967 	/**
968 	 * Set the contents of a G_TYPE_FLAGS GValue to v_flags.
969 	 * Params:
970 	 * vFlags = flags value to be set
971 	 */
972 	public void setFlags(uint vFlags)
973 	{
974 		// void g_value_set_flags (GValue *value,  guint v_flags);
975 		g_value_set_flags(gValue, vFlags);
976 	}
977 	
978 	/**
979 	 * Get the contents of a G_TYPE_FLAGS GValue.
980 	 * Returns: flags contents of value
981 	 */
982 	public uint getFlags()
983 	{
984 		// guint g_value_get_flags (const GValue *value);
985 		return g_value_get_flags(gValue);
986 	}
987 	
988 	/**
989 	 * Creates a new GParamSpecString instance.
990 	 * See g_param_spec_internal() for details on property names.
991 	 * Params:
992 	 * name = canonical name of the property specified
993 	 * nick = nick name for the property specified
994 	 * blurb = description of the property specified
995 	 * defaultValue = default value for the property specified
996 	 * flags = flags for the property specified
997 	 * Returns: a newly created parameter specification. [transfer full]
998 	 */
999 	public static ParamSpec gParamSpecString(string name, string nick, string blurb, string defaultValue, GParamFlags flags)
1000 	{
1001 		// GParamSpec * g_param_spec_string (const gchar *name,  const gchar *nick,  const gchar *blurb,  const gchar *default_value,  GParamFlags flags);
1002 		auto p = g_param_spec_string(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), Str.toStringz(defaultValue), flags);
1003 		
1004 		if(p is null)
1005 		{
1006 			return null;
1007 		}
1008 		
1009 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1010 	}
1011 	
1012 	/**
1013 	 * Set the contents of a G_TYPE_STRING GValue to v_string.
1014 	 * Params:
1015 	 * vString = caller-owned string to be duplicated for the GValue. [allow-none]
1016 	 */
1017 	public void setString(string vString)
1018 	{
1019 		// void g_value_set_string (GValue *value,  const gchar *v_string);
1020 		g_value_set_string(gValue, Str.toStringz(vString));
1021 	}
1022 	
1023 	/**
1024 	 * Set the contents of a G_TYPE_STRING GValue to v_string.
1025 	 * The string is assumed to be static, and is thus not duplicated
1026 	 * when setting the GValue.
1027 	 * Params:
1028 	 * vString = static string to be set. [allow-none]
1029 	 */
1030 	public void setStaticString(string vString)
1031 	{
1032 		// void g_value_set_static_string (GValue *value,  const gchar *v_string);
1033 		g_value_set_static_string(gValue, Str.toStringz(vString));
1034 	}
1035 	
1036 	/**
1037 	 * Sets the contents of a G_TYPE_STRING GValue to v_string.
1038 	 * Since 2.4
1039 	 * Params:
1040 	 * vString = string to take ownership of. [allow-none]
1041 	 */
1042 	public void takeString(string vString)
1043 	{
1044 		// void g_value_take_string (GValue *value,  gchar *v_string);
1045 		g_value_take_string(gValue, Str.toStringz(vString));
1046 	}
1047 	
1048 	/**
1049 	 * Warning
1050 	 * g_value_set_string_take_ownership has been deprecated since version 2.4 and should not be used in newly-written code. Use g_value_take_string() instead.
1051 	 * This is an internal function introduced mainly for C marshallers.
1052 	 * Params:
1053 	 * vString = duplicated unowned string to be set. [allow-none]
1054 	 */
1055 	public void setStringTakeOwnership(string vString)
1056 	{
1057 		// void g_value_set_string_take_ownership (GValue *value,  gchar *v_string);
1058 		g_value_set_string_take_ownership(gValue, Str.toStringz(vString));
1059 	}
1060 	
1061 	/**
1062 	 * Get the contents of a G_TYPE_STRING GValue.
1063 	 * Returns: string content of value
1064 	 */
1065 	public string getString()
1066 	{
1067 		// const gchar * g_value_get_string (const GValue *value);
1068 		return Str.toString(g_value_get_string(gValue));
1069 	}
1070 	
1071 	/**
1072 	 * Get a copy the contents of a G_TYPE_STRING GValue.
1073 	 * Returns: a newly allocated copy of the string content of value
1074 	 */
1075 	public string dupString()
1076 	{
1077 		// gchar * g_value_dup_string (const GValue *value);
1078 		return Str.toString(g_value_dup_string(gValue));
1079 	}
1080 	
1081 	/**
1082 	 * Creates a new GParamSpecParam instance specifying a G_TYPE_PARAM
1083 	 * property.
1084 	 * See g_param_spec_internal() for details on property names.
1085 	 * Params:
1086 	 * name = canonical name of the property specified
1087 	 * nick = nick name for the property specified
1088 	 * blurb = description of the property specified
1089 	 * paramType = a GType derived from G_TYPE_PARAM
1090 	 * flags = flags for the property specified
1091 	 * Returns: a newly created parameter specification. [transfer full]
1092 	 */
1093 	public static ParamSpec gParamSpecParam(string name, string nick, string blurb, GType paramType, GParamFlags flags)
1094 	{
1095 		// GParamSpec * g_param_spec_param (const gchar *name,  const gchar *nick,  const gchar *blurb,  GType param_type,  GParamFlags flags);
1096 		auto p = g_param_spec_param(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), paramType, flags);
1097 		
1098 		if(p is null)
1099 		{
1100 			return null;
1101 		}
1102 		
1103 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1104 	}
1105 	
1106 	/**
1107 	 * Set the contents of a G_TYPE_PARAM GValue to param.
1108 	 * Params:
1109 	 * param = the GParamSpec to be set. [allow-none]
1110 	 */
1111 	public void setParam(ParamSpec param)
1112 	{
1113 		// void g_value_set_param (GValue *value,  GParamSpec *param);
1114 		g_value_set_param(gValue, (param is null) ? null : param.getParamSpecStruct());
1115 	}
1116 	
1117 	/**
1118 	 * Sets the contents of a G_TYPE_PARAM GValue to param and takes
1119 	 * over the ownership of the callers reference to param; the caller
1120 	 * doesn't have to unref it any more.
1121 	 * Since 2.4
1122 	 * Params:
1123 	 * param = the GParamSpec to be set. [allow-none]
1124 	 */
1125 	public void takeParam(ParamSpec param)
1126 	{
1127 		// void g_value_take_param (GValue *value,  GParamSpec *param);
1128 		g_value_take_param(gValue, (param is null) ? null : param.getParamSpecStruct());
1129 	}
1130 	
1131 	/**
1132 	 * Warning
1133 	 * g_value_set_param_take_ownership has been deprecated since version 2.4 and should not be used in newly-written code. Use g_value_take_param() instead.
1134 	 * This is an internal function introduced mainly for C marshallers.
1135 	 * Params:
1136 	 * param = the GParamSpec to be set. [allow-none]
1137 	 */
1138 	public void setParamTakeOwnership(ParamSpec param)
1139 	{
1140 		// void g_value_set_param_take_ownership (GValue *value,  GParamSpec *param);
1141 		g_value_set_param_take_ownership(gValue, (param is null) ? null : param.getParamSpecStruct());
1142 	}
1143 	
1144 	/**
1145 	 * Get the contents of a G_TYPE_PARAM GValue.
1146 	 * Returns: GParamSpec content of value. [transfer none]
1147 	 */
1148 	public ParamSpec getParam()
1149 	{
1150 		// GParamSpec * g_value_get_param (const GValue *value);
1151 		auto p = g_value_get_param(gValue);
1152 		
1153 		if(p is null)
1154 		{
1155 			return null;
1156 		}
1157 		
1158 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1159 	}
1160 	
1161 	/**
1162 	 * Get the contents of a G_TYPE_PARAM GValue, increasing its
1163 	 * reference count.
1164 	 * Returns: GParamSpec content of value, should be unreferenced when no longer needed.
1165 	 */
1166 	public ParamSpec dupParam()
1167 	{
1168 		// GParamSpec * g_value_dup_param (const GValue *value);
1169 		auto p = g_value_dup_param(gValue);
1170 		
1171 		if(p is null)
1172 		{
1173 			return null;
1174 		}
1175 		
1176 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1177 	}
1178 	
1179 	/**
1180 	 * Creates a new GParamSpecBoxed instance specifying a G_TYPE_BOXED
1181 	 * derived property.
1182 	 * See g_param_spec_internal() for details on property names.
1183 	 * Params:
1184 	 * name = canonical name of the property specified
1185 	 * nick = nick name for the property specified
1186 	 * blurb = description of the property specified
1187 	 * boxedType = G_TYPE_BOXED derived type of this property
1188 	 * flags = flags for the property specified
1189 	 * Returns: a newly created parameter specification. [transfer full]
1190 	 */
1191 	public static ParamSpec gParamSpecBoxed(string name, string nick, string blurb, GType boxedType, GParamFlags flags)
1192 	{
1193 		// GParamSpec * g_param_spec_boxed (const gchar *name,  const gchar *nick,  const gchar *blurb,  GType boxed_type,  GParamFlags flags);
1194 		auto p = g_param_spec_boxed(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), boxedType, flags);
1195 		
1196 		if(p is null)
1197 		{
1198 			return null;
1199 		}
1200 		
1201 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1202 	}
1203 	
1204 	/**
1205 	 * Set the contents of a G_TYPE_BOXED derived GValue to v_boxed.
1206 	 * Params:
1207 	 * vBoxed = boxed value to be set. [allow-none]
1208 	 */
1209 	public void setBoxed(void* vBoxed)
1210 	{
1211 		// void g_value_set_boxed (GValue *value,  gconstpointer v_boxed);
1212 		g_value_set_boxed(gValue, vBoxed);
1213 	}
1214 	
1215 	/**
1216 	 * Set the contents of a G_TYPE_BOXED derived GValue to v_boxed.
1217 	 * The boxed value is assumed to be static, and is thus not duplicated
1218 	 * when setting the GValue.
1219 	 * Params:
1220 	 * vBoxed = static boxed value to be set. [allow-none]
1221 	 */
1222 	public void setStaticBoxed(void* vBoxed)
1223 	{
1224 		// void g_value_set_static_boxed (GValue *value,  gconstpointer v_boxed);
1225 		g_value_set_static_boxed(gValue, vBoxed);
1226 	}
1227 	
1228 	/**
1229 	 * Sets the contents of a G_TYPE_BOXED derived GValue to v_boxed
1230 	 * and takes over the ownership of the callers reference to v_boxed;
1231 	 * the caller doesn't have to unref it any more.
1232 	 * Since 2.4
1233 	 * Params:
1234 	 * vBoxed = duplicated unowned boxed value to be set. [allow-none]
1235 	 */
1236 	public void takeBoxed(void* vBoxed)
1237 	{
1238 		// void g_value_take_boxed (GValue *value,  gconstpointer v_boxed);
1239 		g_value_take_boxed(gValue, vBoxed);
1240 	}
1241 	
1242 	/**
1243 	 * Warning
1244 	 * g_value_set_boxed_take_ownership has been deprecated since version 2.4 and should not be used in newly-written code. Use g_value_take_boxed() instead.
1245 	 * This is an internal function introduced mainly for C marshallers.
1246 	 * Params:
1247 	 * vBoxed = duplicated unowned boxed value to be set. [allow-none]
1248 	 */
1249 	public void setBoxedTakeOwnership(void* vBoxed)
1250 	{
1251 		// void g_value_set_boxed_take_ownership (GValue *value,  gconstpointer v_boxed);
1252 		g_value_set_boxed_take_ownership(gValue, vBoxed);
1253 	}
1254 	
1255 	/**
1256 	 * Get the contents of a G_TYPE_BOXED derived GValue.
1257 	 * Returns: boxed contents of value. [transfer none]
1258 	 */
1259 	public void* getBoxed()
1260 	{
1261 		// gpointer g_value_get_boxed (const GValue *value);
1262 		return g_value_get_boxed(gValue);
1263 	}
1264 	
1265 	/**
1266 	 * Get the contents of a G_TYPE_BOXED derived GValue. Upon getting,
1267 	 * the boxed value is duplicated and needs to be later freed with
1268 	 * g_boxed_free(), e.g. like: g_boxed_free (G_VALUE_TYPE (value),
1269 	 * return_value);
1270 	 * Returns: boxed contents of value
1271 	 */
1272 	public void* dupBoxed()
1273 	{
1274 		// gpointer g_value_dup_boxed (const GValue *value);
1275 		return g_value_dup_boxed(gValue);
1276 	}
1277 	
1278 	/**
1279 	 * Creates a new GParamSpecPointer instance specifying a pointer property.
1280 	 * See g_param_spec_internal() for details on property names.
1281 	 * Params:
1282 	 * name = canonical name of the property specified
1283 	 * nick = nick name for the property specified
1284 	 * blurb = description of the property specified
1285 	 * flags = flags for the property specified
1286 	 * Returns: a newly created parameter specification. [transfer full]
1287 	 */
1288 	public static ParamSpec gParamSpecPointer(string name, string nick, string blurb, GParamFlags flags)
1289 	{
1290 		// GParamSpec * g_param_spec_pointer (const gchar *name,  const gchar *nick,  const gchar *blurb,  GParamFlags flags);
1291 		auto p = g_param_spec_pointer(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), flags);
1292 		
1293 		if(p is null)
1294 		{
1295 			return null;
1296 		}
1297 		
1298 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1299 	}
1300 	
1301 	/**
1302 	 * Set the contents of a pointer GValue to v_pointer.
1303 	 * Params:
1304 	 * vPointer = pointer value to be set
1305 	 */
1306 	public void setPointer(void* vPointer)
1307 	{
1308 		// void g_value_set_pointer (GValue *value,  gpointer v_pointer);
1309 		g_value_set_pointer(gValue, vPointer);
1310 	}
1311 	
1312 	/**
1313 	 * Get the contents of a pointer GValue.
1314 	 * Returns: pointer contents of value. [transfer none]
1315 	 */
1316 	public void* getPointer()
1317 	{
1318 		// gpointer g_value_get_pointer (const GValue *value);
1319 		return g_value_get_pointer(gValue);
1320 	}
1321 	
1322 	/**
1323 	 * Creates a new GParamSpecBoxed instance specifying a G_TYPE_OBJECT
1324 	 * derived property.
1325 	 * See g_param_spec_internal() for details on property names.
1326 	 * Params:
1327 	 * name = canonical name of the property specified
1328 	 * nick = nick name for the property specified
1329 	 * blurb = description of the property specified
1330 	 * objectType = G_TYPE_OBJECT derived type of this property
1331 	 * flags = flags for the property specified
1332 	 * Returns: a newly created parameter specification. [transfer full]
1333 	 */
1334 	public static ParamSpec gParamSpecObject(string name, string nick, string blurb, GType objectType, GParamFlags flags)
1335 	{
1336 		// GParamSpec * g_param_spec_object (const gchar *name,  const gchar *nick,  const gchar *blurb,  GType object_type,  GParamFlags flags);
1337 		auto p = g_param_spec_object(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), objectType, flags);
1338 		
1339 		if(p is null)
1340 		{
1341 			return null;
1342 		}
1343 		
1344 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1345 	}
1346 	
1347 	/**
1348 	 * Set the contents of a G_TYPE_OBJECT derived GValue to v_object.
1349 	 * g_value_set_object() increases the reference count of v_object
1350 	 * (the GValue holds a reference to v_object). If you do not wish
1351 	 * to increase the reference count of the object (i.e. you wish to
1352 	 * pass your current reference to the GValue because you no longer
1353 	 * need it), use g_value_take_object() instead.
1354 	 * It is important that your GValue holds a reference to v_object (either its
1355 	 * own, or one it has taken) to ensure that the object won't be destroyed while
1356 	 * the GValue still exists).
1357 	 * Params:
1358 	 * vObject = object value to be set. [type GObject.Object][allow-none]
1359 	 */
1360 	public void setObject(void* vObject)
1361 	{
1362 		// void g_value_set_object (GValue *value,  gpointer v_object);
1363 		g_value_set_object(gValue, vObject);
1364 	}
1365 	
1366 	/**
1367 	 * Sets the contents of a G_TYPE_OBJECT derived GValue to v_object
1368 	 * and takes over the ownership of the callers reference to v_object;
1369 	 * the caller doesn't have to unref it any more (i.e. the reference
1370 	 * count of the object is not increased).
1371 	 * If you want the GValue to hold its own reference to v_object, use
1372 	 * g_value_set_object() instead.
1373 	 * Since 2.4
1374 	 * Params:
1375 	 * vObject = object value to be set. [allow-none]
1376 	 */
1377 	public void takeObject(void* vObject)
1378 	{
1379 		// void g_value_take_object (GValue *value,  gpointer v_object);
1380 		g_value_take_object(gValue, vObject);
1381 	}
1382 	
1383 	/**
1384 	 * Warning
1385 	 * g_value_set_object_take_ownership has been deprecated since version 2.4 and should not be used in newly-written code. Use g_value_take_object() instead.
1386 	 * This is an internal function introduced mainly for C marshallers.
1387 	 * Params:
1388 	 * vObject = object value to be set. [allow-none]
1389 	 */
1390 	public void setObjectTakeOwnership(void* vObject)
1391 	{
1392 		// void g_value_set_object_take_ownership (GValue *value,  gpointer v_object);
1393 		g_value_set_object_take_ownership(gValue, vObject);
1394 	}
1395 	
1396 	/**
1397 	 * Get the contents of a G_TYPE_OBJECT derived GValue.
1398 	 * Returns: object contents of value. [type GObject.Object][transfer none]
1399 	 */
1400 	public void* getObject()
1401 	{
1402 		// gpointer g_value_get_object (const GValue *value);
1403 		return g_value_get_object(gValue);
1404 	}
1405 	
1406 	/**
1407 	 * Get the contents of a G_TYPE_OBJECT derived GValue, increasing
1408 	 * its reference count. If the contents of the GValue are NULL, then
1409 	 * NULL will be returned.
1410 	 * Returns: object content of value, should be unreferenced when no longer needed. [type GObject.Object][transfer full]
1411 	 */
1412 	public void* dupObject()
1413 	{
1414 		// gpointer g_value_dup_object (const GValue *value);
1415 		return g_value_dup_object(gValue);
1416 	}
1417 	
1418 	/**
1419 	 * Creates a new GParamSpecUnichar instance specifying a G_TYPE_UINT
1420 	 * property. GValue structures for this property can be accessed with
1421 	 * g_value_set_uint() and g_value_get_uint().
1422 	 * See g_param_spec_internal() for details on property names.
1423 	 * Params:
1424 	 * name = canonical name of the property specified
1425 	 * nick = nick name for the property specified
1426 	 * blurb = description of the property specified
1427 	 * defaultValue = default value for the property specified
1428 	 * flags = flags for the property specified
1429 	 * Returns: a newly created parameter specification. [transfer full]
1430 	 */
1431 	public static ParamSpec gParamSpecUnichar(string name, string nick, string blurb, gunichar defaultValue, GParamFlags flags)
1432 	{
1433 		// GParamSpec * g_param_spec_unichar (const gchar *name,  const gchar *nick,  const gchar *blurb,  gunichar default_value,  GParamFlags flags);
1434 		auto p = g_param_spec_unichar(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), defaultValue, flags);
1435 		
1436 		if(p is null)
1437 		{
1438 			return null;
1439 		}
1440 		
1441 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1442 	}
1443 	
1444 	/**
1445 	 * Creates a new GParamSpecValueArray instance specifying a
1446 	 * G_TYPE_VALUE_ARRAY property. G_TYPE_VALUE_ARRAY is a
1447 	 * G_TYPE_BOXED type, as such, GValue structures for this property
1448 	 * can be accessed with g_value_set_boxed() and g_value_get_boxed().
1449 	 * See g_param_spec_internal() for details on property names.
1450 	 * Params:
1451 	 * name = canonical name of the property specified
1452 	 * nick = nick name for the property specified
1453 	 * blurb = description of the property specified
1454 	 * elementSpec = a GParamSpec describing the elements contained in
1455 	 * arrays of this property, may be NULL
1456 	 * flags = flags for the property specified
1457 	 * Returns: a newly created parameter specification
1458 	 */
1459 	public static ParamSpec gParamSpecValueArray(string name, string nick, string blurb, ParamSpec elementSpec, GParamFlags flags)
1460 	{
1461 		// GParamSpec * g_param_spec_value_array (const gchar *name,  const gchar *nick,  const gchar *blurb,  GParamSpec *element_spec,  GParamFlags flags);
1462 		auto p = g_param_spec_value_array(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), (elementSpec is null) ? null : elementSpec.getParamSpecStruct(), flags);
1463 		
1464 		if(p is null)
1465 		{
1466 			return null;
1467 		}
1468 		
1469 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1470 	}
1471 	
1472 	/**
1473 	 * Creates a new property of type GParamSpecOverride. This is used
1474 	 * to direct operations to another paramspec, and will not be directly
1475 	 * useful unless you are implementing a new base type similar to GObject.
1476 	 * Since 2.4
1477 	 * Params:
1478 	 * name = the name of the property.
1479 	 * overridden = The property that is being overridden
1480 	 * Returns: the newly created GParamSpec
1481 	 */
1482 	public static ParamSpec gParamSpecOverride(string name, ParamSpec overridden)
1483 	{
1484 		// GParamSpec * g_param_spec_override (const gchar *name,  GParamSpec *overridden);
1485 		auto p = g_param_spec_override(Str.toStringz(name), (overridden is null) ? null : overridden.getParamSpecStruct());
1486 		
1487 		if(p is null)
1488 		{
1489 			return null;
1490 		}
1491 		
1492 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1493 	}
1494 	
1495 	/**
1496 	 * Creates a new GParamSpecGType instance specifying a
1497 	 * G_TYPE_GTYPE property.
1498 	 * See g_param_spec_internal() for details on property names.
1499 	 * Since 2.10
1500 	 * Params:
1501 	 * name = canonical name of the property specified
1502 	 * nick = nick name for the property specified
1503 	 * blurb = description of the property specified
1504 	 * isAType = a GType whose subtypes are allowed as values
1505 	 * of the property (use G_TYPE_NONE for any type)
1506 	 * flags = flags for the property specified
1507 	 * Returns: a newly created parameter specification. [transfer full]
1508 	 */
1509 	public static ParamSpec gParamSpecGtype(string name, string nick, string blurb, GType isAType, GParamFlags flags)
1510 	{
1511 		// GParamSpec * g_param_spec_gtype (const gchar *name,  const gchar *nick,  const gchar *blurb,  GType is_a_type,  GParamFlags flags);
1512 		auto p = g_param_spec_gtype(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), isAType, flags);
1513 		
1514 		if(p is null)
1515 		{
1516 			return null;
1517 		}
1518 		
1519 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1520 	}
1521 	
1522 	/**
1523 	 * Get the contents of a G_TYPE_GTYPE GValue.
1524 	 * Since 2.12
1525 	 * Returns: the GType stored in value
1526 	 */
1527 	public GType getGtype()
1528 	{
1529 		// GType g_value_get_gtype (const GValue *value);
1530 		return g_value_get_gtype(gValue);
1531 	}
1532 	
1533 	/**
1534 	 * Set the contents of a G_TYPE_GTYPE GValue to v_gtype.
1535 	 * Since 2.12
1536 	 * Params:
1537 	 * vGtype = GType to be set
1538 	 */
1539 	public void setGtype(GType vGtype)
1540 	{
1541 		// void g_value_set_gtype (GValue *value,  GType v_gtype);
1542 		g_value_set_gtype(gValue, vGtype);
1543 	}
1544 	
1545 	/**
1546 	 * Creates a new GParamSpecVariant instance specifying a GVariant
1547 	 * property.
1548 	 * If default_value is floating, it is consumed.
1549 	 * See g_param_spec_internal() for details on property names.
1550 	 * Since 2.26
1551 	 * Params:
1552 	 * name = canonical name of the property specified
1553 	 * nick = nick name for the property specified
1554 	 * blurb = description of the property specified
1555 	 * type = a GVariantType
1556 	 * defaultValue = a GVariant of type type to
1557 	 * use as the default value, or NULL. [allow-none][transfer full]
1558 	 * flags = flags for the property specified
1559 	 * Returns: the newly created GParamSpec. [transfer full]
1560 	 */
1561 	public static ParamSpec gParamSpecVariant(string name, string nick, string blurb, VariantType type, Variant defaultValue, GParamFlags flags)
1562 	{
1563 		// GParamSpec * g_param_spec_variant (const gchar *name,  const gchar *nick,  const gchar *blurb,  const GVariantType *type,  GVariant *default_value,  GParamFlags flags);
1564 		auto p = g_param_spec_variant(Str.toStringz(name), Str.toStringz(nick), Str.toStringz(blurb), (type is null) ? null : type.getVariantTypeStruct(), (defaultValue is null) ? null : defaultValue.getVariantStruct(), flags);
1565 		
1566 		if(p is null)
1567 		{
1568 			return null;
1569 		}
1570 		
1571 		return ObjectG.getDObject!(ParamSpec)(cast(GParamSpec*) p);
1572 	}
1573 	
1574 	/**
1575 	 * Get the contents of a variant GValue.
1576 	 * Since 2.26
1577 	 * Returns: variant contents of value
1578 	 */
1579 	public Variant getVariant()
1580 	{
1581 		// GVariant * g_value_get_variant (const GValue *value);
1582 		auto p = g_value_get_variant(gValue);
1583 		
1584 		if(p is null)
1585 		{
1586 			return null;
1587 		}
1588 		
1589 		return ObjectG.getDObject!(Variant)(cast(GVariant*) p);
1590 	}
1591 	
1592 	/**
1593 	 * Get the contents of a variant GValue, increasing its refcount.
1594 	 * Since 2.26
1595 	 * Returns: variant contents of value, should be unrefed using g_variant_unref() when no longer needed
1596 	 */
1597 	public Variant dupVariant()
1598 	{
1599 		// GVariant * g_value_dup_variant (const GValue *value);
1600 		auto p = g_value_dup_variant(gValue);
1601 		
1602 		if(p is null)
1603 		{
1604 			return null;
1605 		}
1606 		
1607 		return ObjectG.getDObject!(Variant)(cast(GVariant*) p);
1608 	}
1609 	
1610 	/**
1611 	 * Set the contents of a variant GValue to variant.
1612 	 * If the variant is floating, it is consumed.
1613 	 * Since 2.26
1614 	 * Params:
1615 	 * variant = a GVariant, or NULL. [allow-none]
1616 	 */
1617 	public void setVariant(Variant variant)
1618 	{
1619 		// void g_value_set_variant (GValue *value,  GVariant *variant);
1620 		g_value_set_variant(gValue, (variant is null) ? null : variant.getVariantStruct());
1621 	}
1622 	
1623 	/**
1624 	 * Set the contents of a variant GValue to variant, and takes over
1625 	 * the ownership of the caller's reference to variant;
1626 	 * the caller doesn't have to unref it any more (i.e. the reference
1627 	 * count of the variant is not increased).
1628 	 * If variant was floating then its floating reference is converted to
1629 	 * a hard reference.
1630 	 * If you want the GValue to hold its own reference to variant, use
1631 	 * g_value_set_variant() instead.
1632 	 * This is an internal function introduced mainly for C marshallers.
1633 	 * Since 2.26
1634 	 * Params:
1635 	 * variant = a GVariant, or NULL. [allow-none]
1636 	 */
1637 	public void takeVariant(Variant variant)
1638 	{
1639 		// void g_value_take_variant (GValue *value,  GVariant *variant);
1640 		g_value_take_variant(gValue, (variant is null) ? null : variant.getVariantStruct());
1641 	}
1642 }