build: Enable -fno-strict-aliasing
[glib.git] / gobject / gparamspecs.h
blobe2bb6213037315e8e0e1485928e32f76e6493fb8
1 /* GObject - GLib Type, Object, Parameter and Signal Library
2 * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General
15 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
17 * gparamspecs.h: GLib default param specs
19 #ifndef __G_PARAMSPECS_H__
20 #define __G_PARAMSPECS_H__
22 #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
23 #error "Only <glib-object.h> can be included directly."
24 #endif
26 #include <gobject/gvalue.h>
27 #include <gobject/genums.h>
28 #include <gobject/gboxed.h>
29 #include <gobject/gobject.h>
31 G_BEGIN_DECLS
33 /* --- type macros --- */
34 /**
35 * G_TYPE_PARAM_CHAR:
37 * The #GType of #GParamSpecChar.
39 #define G_TYPE_PARAM_CHAR (g_param_spec_types[0])
40 /**
41 * G_IS_PARAM_SPEC_CHAR:
42 * @pspec: a valid #GParamSpec instance
44 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_CHAR.
46 * Returns: %TRUE on success.
48 #define G_IS_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR))
49 /**
50 * G_PARAM_SPEC_CHAR:
51 * @pspec: a valid #GParamSpec instance
53 * Cast a #GParamSpec instance into a #GParamSpecChar.
55 #define G_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar))
57 /**
58 * G_TYPE_PARAM_UCHAR:
60 * The #GType of #GParamSpecUChar.
62 #define G_TYPE_PARAM_UCHAR (g_param_spec_types[1])
63 /**
64 * G_IS_PARAM_SPEC_UCHAR:
65 * @pspec: a valid #GParamSpec instance
67 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UCHAR.
69 * Returns: %TRUE on success.
71 #define G_IS_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR))
72 /**
73 * G_PARAM_SPEC_UCHAR:
74 * @pspec: a valid #GParamSpec instance
76 * Cast a #GParamSpec instance into a #GParamSpecUChar.
78 #define G_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar))
80 /**
81 * G_TYPE_PARAM_BOOLEAN:
83 * The #GType of #GParamSpecBoolean.
85 #define G_TYPE_PARAM_BOOLEAN (g_param_spec_types[2])
86 /**
87 * G_IS_PARAM_SPEC_BOOLEAN:
88 * @pspec: a valid #GParamSpec instance
90 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOOLEAN.
92 * Returns: %TRUE on success.
94 #define G_IS_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN))
95 /**
96 * G_PARAM_SPEC_BOOLEAN:
97 * @pspec: a valid #GParamSpec instance
99 * Cast a #GParamSpec instance into a #GParamSpecBoolean.
101 #define G_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean))
104 * G_TYPE_PARAM_INT:
106 * The #GType of #GParamSpecInt.
108 #define G_TYPE_PARAM_INT (g_param_spec_types[3])
110 * G_IS_PARAM_SPEC_INT:
111 * @pspec: a valid #GParamSpec instance
113 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT.
115 * Returns: %TRUE on success.
117 #define G_IS_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT))
119 * G_PARAM_SPEC_INT:
120 * @pspec: a valid #GParamSpec instance
122 * Cast a #GParamSpec instance into a #GParamSpecInt.
124 #define G_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt))
127 * G_TYPE_PARAM_UINT:
129 * The #GType of #GParamSpecUInt.
131 #define G_TYPE_PARAM_UINT (g_param_spec_types[4])
133 * G_IS_PARAM_SPEC_UINT:
134 * @pspec: a valid #GParamSpec instance
136 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT.
138 * Returns: %TRUE on success.
140 #define G_IS_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT))
142 * G_PARAM_SPEC_UINT:
143 * @pspec: a valid #GParamSpec instance
145 * Cast a #GParamSpec instance into a #GParamSpecUInt.
147 #define G_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt))
150 * G_TYPE_PARAM_LONG:
152 * The #GType of #GParamSpecLong.
154 #define G_TYPE_PARAM_LONG (g_param_spec_types[5])
156 * G_IS_PARAM_SPEC_LONG:
157 * @pspec: a valid #GParamSpec instance
159 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_LONG.
161 * Returns: %TRUE on success.
163 #define G_IS_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG))
165 * G_PARAM_SPEC_LONG:
166 * @pspec: a valid #GParamSpec instance
168 * Cast a #GParamSpec instance into a #GParamSpecLong.
170 #define G_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong))
173 * G_TYPE_PARAM_ULONG:
175 * The #GType of #GParamSpecULong.
177 #define G_TYPE_PARAM_ULONG (g_param_spec_types[6])
179 * G_IS_PARAM_SPEC_ULONG:
180 * @pspec: a valid #GParamSpec instance
182 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ULONG.
184 * Returns: %TRUE on success.
186 #define G_IS_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG))
188 * G_PARAM_SPEC_ULONG:
189 * @pspec: a valid #GParamSpec instance
191 * Cast a #GParamSpec instance into a #GParamSpecULong.
193 #define G_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong))
196 * G_TYPE_PARAM_INT64:
198 * The #GType of #GParamSpecInt64.
200 #define G_TYPE_PARAM_INT64 (g_param_spec_types[7])
202 * G_IS_PARAM_SPEC_INT64:
203 * @pspec: a valid #GParamSpec instance
205 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT64.
207 * Returns: %TRUE on success.
209 #define G_IS_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64))
211 * G_PARAM_SPEC_INT64:
212 * @pspec: a valid #GParamSpec instance
214 * Cast a #GParamSpec instance into a #GParamSpecInt64.
216 #define G_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64))
219 * G_TYPE_PARAM_UINT64:
221 * The #GType of #GParamSpecUInt64.
223 #define G_TYPE_PARAM_UINT64 (g_param_spec_types[8])
225 * G_IS_PARAM_SPEC_UINT64:
226 * @pspec: a valid #GParamSpec instance
228 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT64.
230 * Returns: %TRUE on success.
232 #define G_IS_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64))
234 * G_PARAM_SPEC_UINT64:
235 * @pspec: a valid #GParamSpec instance
237 * Cast a #GParamSpec instance into a #GParamSpecUInt64.
239 #define G_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64))
242 * G_TYPE_PARAM_UNICHAR:
244 * The #GType of #GParamSpecUnichar.
246 #define G_TYPE_PARAM_UNICHAR (g_param_spec_types[9])
248 * G_PARAM_SPEC_UNICHAR:
249 * @pspec: a valid #GParamSpec instance
251 * Cast a #GParamSpec instance into a #GParamSpecUnichar.
253 #define G_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar))
255 * G_IS_PARAM_SPEC_UNICHAR:
256 * @pspec: a valid #GParamSpec instance
258 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UNICHAR.
260 * Returns: %TRUE on success.
262 #define G_IS_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR))
265 * G_TYPE_PARAM_ENUM:
267 * The #GType of #GParamSpecEnum.
269 #define G_TYPE_PARAM_ENUM (g_param_spec_types[10])
271 * G_IS_PARAM_SPEC_ENUM:
272 * @pspec: a valid #GParamSpec instance
274 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ENUM.
276 * Returns: %TRUE on success.
278 #define G_IS_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM))
280 * G_PARAM_SPEC_ENUM:
281 * @pspec: a valid #GParamSpec instance
283 * Cast a #GParamSpec instance into a #GParamSpecEnum.
285 #define G_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum))
288 * G_TYPE_PARAM_FLAGS:
290 * The #GType of #GParamSpecFlags.
292 #define G_TYPE_PARAM_FLAGS (g_param_spec_types[11])
294 * G_IS_PARAM_SPEC_FLAGS:
295 * @pspec: a valid #GParamSpec instance
297 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLAGS.
299 * Returns: %TRUE on success.
301 #define G_IS_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS))
303 * G_PARAM_SPEC_FLAGS:
304 * @pspec: a valid #GParamSpec instance
306 * Cast a #GParamSpec instance into a #GParamSpecFlags.
308 #define G_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags))
311 * G_TYPE_PARAM_FLOAT:
313 * The #GType of #GParamSpecFloat.
315 #define G_TYPE_PARAM_FLOAT (g_param_spec_types[12])
317 * G_IS_PARAM_SPEC_FLOAT:
318 * @pspec: a valid #GParamSpec instance
320 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLOAT.
322 * Returns: %TRUE on success.
324 #define G_IS_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT))
326 * G_PARAM_SPEC_FLOAT:
327 * @pspec: a valid #GParamSpec instance
329 * Cast a #GParamSpec instance into a #GParamSpecFloat.
331 #define G_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat))
334 * G_TYPE_PARAM_DOUBLE:
336 * The #GType of #GParamSpecDouble.
338 #define G_TYPE_PARAM_DOUBLE (g_param_spec_types[13])
340 * G_IS_PARAM_SPEC_DOUBLE:
341 * @pspec: a valid #GParamSpec instance
343 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_DOUBLE.
345 * Returns: %TRUE on success.
347 #define G_IS_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE))
349 * G_PARAM_SPEC_DOUBLE:
350 * @pspec: a valid #GParamSpec instance
352 * Cast a #GParamSpec instance into a #GParamSpecDouble.
354 #define G_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble))
357 * G_TYPE_PARAM_STRING:
359 * The #GType of #GParamSpecString.
361 #define G_TYPE_PARAM_STRING (g_param_spec_types[14])
363 * G_IS_PARAM_SPEC_STRING:
364 * @pspec: a valid #GParamSpec instance
366 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_STRING.
368 * Returns: %TRUE on success.
370 #define G_IS_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING))
372 * G_PARAM_SPEC_STRING:
373 * @pspec: a valid #GParamSpec instance
375 * Casts a #GParamSpec instance into a #GParamSpecString.
377 #define G_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString))
380 * G_TYPE_PARAM_PARAM:
382 * The #GType of #GParamSpecParam.
384 #define G_TYPE_PARAM_PARAM (g_param_spec_types[15])
386 * G_IS_PARAM_SPEC_PARAM:
387 * @pspec: a valid #GParamSpec instance
389 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_PARAM.
391 * Returns: %TRUE on success.
393 #define G_IS_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM))
395 * G_PARAM_SPEC_PARAM:
396 * @pspec: a valid #GParamSpec instance
398 * Casts a #GParamSpec instance into a #GParamSpecParam.
400 #define G_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam))
403 * G_TYPE_PARAM_BOXED:
405 * The #GType of #GParamSpecBoxed.
407 #define G_TYPE_PARAM_BOXED (g_param_spec_types[16])
409 * G_IS_PARAM_SPEC_BOXED:
410 * @pspec: a valid #GParamSpec instance
412 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOXED.
414 * Returns: %TRUE on success.
416 #define G_IS_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED))
418 * G_PARAM_SPEC_BOXED:
419 * @pspec: a valid #GParamSpec instance
421 * Cast a #GParamSpec instance into a #GParamSpecBoxed.
423 #define G_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed))
426 * G_TYPE_PARAM_POINTER:
428 * The #GType of #GParamSpecPointer.
430 #define G_TYPE_PARAM_POINTER (g_param_spec_types[17])
432 * G_IS_PARAM_SPEC_POINTER:
433 * @pspec: a valid #GParamSpec instance
435 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_POINTER.
437 * Returns: %TRUE on success.
439 #define G_IS_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER))
441 * G_PARAM_SPEC_POINTER:
442 * @pspec: a valid #GParamSpec instance
444 * Casts a #GParamSpec instance into a #GParamSpecPointer.
446 #define G_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer))
449 * G_TYPE_PARAM_VALUE_ARRAY:
451 * The #GType of #GParamSpecValueArray.
453 * Deprecated: 2.32: Use #GArray instead of #GValueArray
455 #define G_TYPE_PARAM_VALUE_ARRAY (g_param_spec_types[18])
457 * G_IS_PARAM_SPEC_VALUE_ARRAY:
458 * @pspec: a valid #GParamSpec instance
460 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VALUE_ARRAY.
462 * Returns: %TRUE on success.
464 * Deprecated: 2.32: Use #GArray instead of #GValueArray
466 #define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY))
468 * G_PARAM_SPEC_VALUE_ARRAY:
469 * @pspec: a valid #GParamSpec instance
471 * Cast a #GParamSpec instance into a #GParamSpecValueArray.
473 * Deprecated: 2.32: Use #GArray instead of #GValueArray
475 #define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray))
478 * G_TYPE_PARAM_OBJECT:
480 * The #GType of #GParamSpecObject.
482 #define G_TYPE_PARAM_OBJECT (g_param_spec_types[19])
484 * G_IS_PARAM_SPEC_OBJECT:
485 * @pspec: a valid #GParamSpec instance
487 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OBJECT.
489 * Returns: %TRUE on success.
491 #define G_IS_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
493 * G_PARAM_SPEC_OBJECT:
494 * @pspec: a valid #GParamSpec instance
496 * Casts a #GParamSpec instance into a #GParamSpecObject.
498 #define G_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
501 * G_TYPE_PARAM_OVERRIDE:
503 * The #GType of #GParamSpecOverride.
505 * Since: 2.4
507 #define G_TYPE_PARAM_OVERRIDE (g_param_spec_types[20])
509 * G_IS_PARAM_SPEC_OVERRIDE:
510 * @pspec: a #GParamSpec
512 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OVERRIDE.
514 * Since: 2.4
515 * Returns: %TRUE on success.
517 #define G_IS_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE))
519 * G_PARAM_SPEC_OVERRIDE:
520 * @pspec: a #GParamSpec
522 * Casts a #GParamSpec into a #GParamSpecOverride.
524 * Since: 2.4
526 #define G_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride))
529 * G_TYPE_PARAM_GTYPE:
531 * The #GType of #GParamSpecGType.
533 * Since: 2.10
535 #define G_TYPE_PARAM_GTYPE (g_param_spec_types[21])
537 * G_IS_PARAM_SPEC_GTYPE:
538 * @pspec: a #GParamSpec
540 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_GTYPE.
542 * Since: 2.10
543 * Returns: %TRUE on success.
545 #define G_IS_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE))
547 * G_PARAM_SPEC_GTYPE:
548 * @pspec: a #GParamSpec
550 * Casts a #GParamSpec into a #GParamSpecGType.
552 * Since: 2.10
554 #define G_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType))
557 * G_TYPE_PARAM_VARIANT:
559 * The #GType of #GParamSpecVariant.
561 * Since: 2.26
563 #define G_TYPE_PARAM_VARIANT (g_param_spec_types[22])
565 * G_IS_PARAM_SPEC_VARIANT:
566 * @pspec: a #GParamSpec
568 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VARIANT.
570 * Returns: %TRUE on success
572 * Since: 2.26
574 #define G_IS_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT))
576 * G_PARAM_SPEC_VARIANT:
577 * @pspec: a #GParamSpec
579 * Casts a #GParamSpec into a #GParamSpecVariant.
581 * Since: 2.26
583 #define G_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant))
585 /* --- typedefs & structures --- */
586 typedef struct _GParamSpecChar GParamSpecChar;
587 typedef struct _GParamSpecUChar GParamSpecUChar;
588 typedef struct _GParamSpecBoolean GParamSpecBoolean;
589 typedef struct _GParamSpecInt GParamSpecInt;
590 typedef struct _GParamSpecUInt GParamSpecUInt;
591 typedef struct _GParamSpecLong GParamSpecLong;
592 typedef struct _GParamSpecULong GParamSpecULong;
593 typedef struct _GParamSpecInt64 GParamSpecInt64;
594 typedef struct _GParamSpecUInt64 GParamSpecUInt64;
595 typedef struct _GParamSpecUnichar GParamSpecUnichar;
596 typedef struct _GParamSpecEnum GParamSpecEnum;
597 typedef struct _GParamSpecFlags GParamSpecFlags;
598 typedef struct _GParamSpecFloat GParamSpecFloat;
599 typedef struct _GParamSpecDouble GParamSpecDouble;
600 typedef struct _GParamSpecString GParamSpecString;
601 typedef struct _GParamSpecParam GParamSpecParam;
602 typedef struct _GParamSpecBoxed GParamSpecBoxed;
603 typedef struct _GParamSpecPointer GParamSpecPointer;
604 typedef struct _GParamSpecValueArray GParamSpecValueArray;
605 typedef struct _GParamSpecObject GParamSpecObject;
606 typedef struct _GParamSpecOverride GParamSpecOverride;
607 typedef struct _GParamSpecGType GParamSpecGType;
608 typedef struct _GParamSpecVariant GParamSpecVariant;
611 * GParamSpecChar:
612 * @parent_instance: private #GParamSpec portion
613 * @minimum: minimum value for the property specified
614 * @maximum: maximum value for the property specified
615 * @default_value: default value for the property specified
617 * A #GParamSpec derived structure that contains the meta data for character properties.
619 struct _GParamSpecChar
621 GParamSpec parent_instance;
623 gint8 minimum;
624 gint8 maximum;
625 gint8 default_value;
628 * GParamSpecUChar:
629 * @parent_instance: private #GParamSpec portion
630 * @minimum: minimum value for the property specified
631 * @maximum: maximum value for the property specified
632 * @default_value: default value for the property specified
634 * A #GParamSpec derived structure that contains the meta data for unsigned character properties.
636 struct _GParamSpecUChar
638 GParamSpec parent_instance;
640 guint8 minimum;
641 guint8 maximum;
642 guint8 default_value;
645 * GParamSpecBoolean:
646 * @parent_instance: private #GParamSpec portion
647 * @default_value: default value for the property specified
649 * A #GParamSpec derived structure that contains the meta data for boolean properties.
651 struct _GParamSpecBoolean
653 GParamSpec parent_instance;
655 gboolean default_value;
658 * GParamSpecInt:
659 * @parent_instance: private #GParamSpec portion
660 * @minimum: minimum value for the property specified
661 * @maximum: maximum value for the property specified
662 * @default_value: default value for the property specified
664 * A #GParamSpec derived structure that contains the meta data for integer properties.
666 struct _GParamSpecInt
668 GParamSpec parent_instance;
670 gint minimum;
671 gint maximum;
672 gint default_value;
675 * GParamSpecUInt:
676 * @parent_instance: private #GParamSpec portion
677 * @minimum: minimum value for the property specified
678 * @maximum: maximum value for the property specified
679 * @default_value: default value for the property specified
681 * A #GParamSpec derived structure that contains the meta data for unsigned integer properties.
683 struct _GParamSpecUInt
685 GParamSpec parent_instance;
687 guint minimum;
688 guint maximum;
689 guint default_value;
692 * GParamSpecLong:
693 * @parent_instance: private #GParamSpec portion
694 * @minimum: minimum value for the property specified
695 * @maximum: maximum value for the property specified
696 * @default_value: default value for the property specified
698 * A #GParamSpec derived structure that contains the meta data for long integer properties.
700 struct _GParamSpecLong
702 GParamSpec parent_instance;
704 glong minimum;
705 glong maximum;
706 glong default_value;
709 * GParamSpecULong:
710 * @parent_instance: private #GParamSpec portion
711 * @minimum: minimum value for the property specified
712 * @maximum: maximum value for the property specified
713 * @default_value: default value for the property specified
715 * A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.
717 struct _GParamSpecULong
719 GParamSpec parent_instance;
721 gulong minimum;
722 gulong maximum;
723 gulong default_value;
726 * GParamSpecInt64:
727 * @parent_instance: private #GParamSpec portion
728 * @minimum: minimum value for the property specified
729 * @maximum: maximum value for the property specified
730 * @default_value: default value for the property specified
732 * A #GParamSpec derived structure that contains the meta data for 64bit integer properties.
734 struct _GParamSpecInt64
736 GParamSpec parent_instance;
738 gint64 minimum;
739 gint64 maximum;
740 gint64 default_value;
743 * GParamSpecUInt64:
744 * @parent_instance: private #GParamSpec portion
745 * @minimum: minimum value for the property specified
746 * @maximum: maximum value for the property specified
747 * @default_value: default value for the property specified
749 * A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.
751 struct _GParamSpecUInt64
753 GParamSpec parent_instance;
755 guint64 minimum;
756 guint64 maximum;
757 guint64 default_value;
760 * GParamSpecUnichar:
761 * @parent_instance: private #GParamSpec portion
762 * @default_value: default value for the property specified
764 * A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.
766 struct _GParamSpecUnichar
768 GParamSpec parent_instance;
770 gunichar default_value;
773 * GParamSpecEnum:
774 * @parent_instance: private #GParamSpec portion
775 * @enum_class: the #GEnumClass for the enum
776 * @default_value: default value for the property specified
778 * A #GParamSpec derived structure that contains the meta data for enum
779 * properties.
781 struct _GParamSpecEnum
783 GParamSpec parent_instance;
785 GEnumClass *enum_class;
786 gint default_value;
789 * GParamSpecFlags:
790 * @parent_instance: private #GParamSpec portion
791 * @flags_class: the #GFlagsClass for the flags
792 * @default_value: default value for the property specified
794 * A #GParamSpec derived structure that contains the meta data for flags
795 * properties.
797 struct _GParamSpecFlags
799 GParamSpec parent_instance;
801 GFlagsClass *flags_class;
802 guint default_value;
805 * GParamSpecFloat:
806 * @parent_instance: private #GParamSpec portion
807 * @minimum: minimum value for the property specified
808 * @maximum: maximum value for the property specified
809 * @default_value: default value for the property specified
810 * @epsilon: values closer than @epsilon will be considered identical
811 * by g_param_values_cmp(); the default value is 1e-30.
813 * A #GParamSpec derived structure that contains the meta data for float properties.
815 struct _GParamSpecFloat
817 GParamSpec parent_instance;
819 gfloat minimum;
820 gfloat maximum;
821 gfloat default_value;
822 gfloat epsilon;
825 * GParamSpecDouble:
826 * @parent_instance: private #GParamSpec portion
827 * @minimum: minimum value for the property specified
828 * @maximum: maximum value for the property specified
829 * @default_value: default value for the property specified
830 * @epsilon: values closer than @epsilon will be considered identical
831 * by g_param_values_cmp(); the default value is 1e-90.
833 * A #GParamSpec derived structure that contains the meta data for double properties.
835 struct _GParamSpecDouble
837 GParamSpec parent_instance;
839 gdouble minimum;
840 gdouble maximum;
841 gdouble default_value;
842 gdouble epsilon;
845 * GParamSpecString:
846 * @parent_instance: private #GParamSpec portion
847 * @default_value: default value for the property specified
848 * @cset_first: a string containing the allowed values for the first byte
849 * @cset_nth: a string containing the allowed values for the subsequent bytes
850 * @substitutor: the replacement byte for bytes which don't match @cset_first or @cset_nth.
851 * @null_fold_if_empty: replace empty string by %NULL
852 * @ensure_non_null: replace %NULL strings by an empty string
854 * A #GParamSpec derived structure that contains the meta data for string
855 * properties.
857 struct _GParamSpecString
859 GParamSpec parent_instance;
861 gchar *default_value;
862 gchar *cset_first;
863 gchar *cset_nth;
864 gchar substitutor;
865 guint null_fold_if_empty : 1;
866 guint ensure_non_null : 1;
869 * GParamSpecParam:
870 * @parent_instance: private #GParamSpec portion
872 * A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
873 * properties.
875 struct _GParamSpecParam
877 GParamSpec parent_instance;
880 * GParamSpecBoxed:
881 * @parent_instance: private #GParamSpec portion
883 * A #GParamSpec derived structure that contains the meta data for boxed properties.
885 struct _GParamSpecBoxed
887 GParamSpec parent_instance;
890 * GParamSpecPointer:
891 * @parent_instance: private #GParamSpec portion
893 * A #GParamSpec derived structure that contains the meta data for pointer properties.
895 struct _GParamSpecPointer
897 GParamSpec parent_instance;
900 * GParamSpecValueArray:
901 * @parent_instance: private #GParamSpec portion
902 * @element_spec: a #GParamSpec describing the elements contained in arrays of this property, may be %NULL
903 * @fixed_n_elements: if greater than 0, arrays of this property will always have this many elements
905 * A #GParamSpec derived structure that contains the meta data for #GValueArray properties.
907 struct _GParamSpecValueArray
909 GParamSpec parent_instance;
910 GParamSpec *element_spec;
911 guint fixed_n_elements;
914 * GParamSpecObject:
915 * @parent_instance: private #GParamSpec portion
917 * A #GParamSpec derived structure that contains the meta data for object properties.
919 struct _GParamSpecObject
921 GParamSpec parent_instance;
924 * GParamSpecOverride:
926 * This is a type of #GParamSpec type that simply redirects operations to
927 * another paramspec. All operations other than getting or
928 * setting the value are redirected, including accessing the nick and
929 * blurb, validating a value, and so forth. See
930 * g_param_spec_get_redirect_target() for retrieving the overidden
931 * property. #GParamSpecOverride is used in implementing
932 * g_object_class_override_property(), and will not be directly useful
933 * unless you are implementing a new base type similar to GObject.
935 * Since: 2.4
937 struct _GParamSpecOverride
939 /*< private >*/
940 GParamSpec parent_instance;
941 GParamSpec *overridden;
944 * GParamSpecGType:
945 * @parent_instance: private #GParamSpec portion
946 * @is_a_type: a #GType whose subtypes can occur as values
948 * A #GParamSpec derived structure that contains the meta data for #GType properties.
950 * Since: 2.10
952 struct _GParamSpecGType
954 GParamSpec parent_instance;
955 GType is_a_type;
958 * GParamSpecVariant:
959 * @parent_instance: private #GParamSpec portion
960 * @type: a #GVariantType, or %NULL
961 * @default_value: a #GVariant, or %NULL
963 * A #GParamSpec derived structure that contains the meta data for #GVariant properties.
965 * Since: 2.26
967 struct _GParamSpecVariant
969 GParamSpec parent_instance;
970 GVariantType *type;
971 GVariant *default_value;
973 /*< private >*/
974 gpointer padding[4];
977 /* --- GParamSpec prototypes --- */
978 GLIB_AVAILABLE_IN_ALL
979 GParamSpec* g_param_spec_char (const gchar *name,
980 const gchar *nick,
981 const gchar *blurb,
982 gint8 minimum,
983 gint8 maximum,
984 gint8 default_value,
985 GParamFlags flags);
986 GLIB_AVAILABLE_IN_ALL
987 GParamSpec* g_param_spec_uchar (const gchar *name,
988 const gchar *nick,
989 const gchar *blurb,
990 guint8 minimum,
991 guint8 maximum,
992 guint8 default_value,
993 GParamFlags flags);
994 GLIB_AVAILABLE_IN_ALL
995 GParamSpec* g_param_spec_boolean (const gchar *name,
996 const gchar *nick,
997 const gchar *blurb,
998 gboolean default_value,
999 GParamFlags flags);
1000 GLIB_AVAILABLE_IN_ALL
1001 GParamSpec* g_param_spec_int (const gchar *name,
1002 const gchar *nick,
1003 const gchar *blurb,
1004 gint minimum,
1005 gint maximum,
1006 gint default_value,
1007 GParamFlags flags);
1008 GLIB_AVAILABLE_IN_ALL
1009 GParamSpec* g_param_spec_uint (const gchar *name,
1010 const gchar *nick,
1011 const gchar *blurb,
1012 guint minimum,
1013 guint maximum,
1014 guint default_value,
1015 GParamFlags flags);
1016 GLIB_AVAILABLE_IN_ALL
1017 GParamSpec* g_param_spec_long (const gchar *name,
1018 const gchar *nick,
1019 const gchar *blurb,
1020 glong minimum,
1021 glong maximum,
1022 glong default_value,
1023 GParamFlags flags);
1024 GLIB_AVAILABLE_IN_ALL
1025 GParamSpec* g_param_spec_ulong (const gchar *name,
1026 const gchar *nick,
1027 const gchar *blurb,
1028 gulong minimum,
1029 gulong maximum,
1030 gulong default_value,
1031 GParamFlags flags);
1032 GLIB_AVAILABLE_IN_ALL
1033 GParamSpec* g_param_spec_int64 (const gchar *name,
1034 const gchar *nick,
1035 const gchar *blurb,
1036 gint64 minimum,
1037 gint64 maximum,
1038 gint64 default_value,
1039 GParamFlags flags);
1040 GLIB_AVAILABLE_IN_ALL
1041 GParamSpec* g_param_spec_uint64 (const gchar *name,
1042 const gchar *nick,
1043 const gchar *blurb,
1044 guint64 minimum,
1045 guint64 maximum,
1046 guint64 default_value,
1047 GParamFlags flags);
1048 GLIB_AVAILABLE_IN_ALL
1049 GParamSpec* g_param_spec_unichar (const gchar *name,
1050 const gchar *nick,
1051 const gchar *blurb,
1052 gunichar default_value,
1053 GParamFlags flags);
1054 GLIB_AVAILABLE_IN_ALL
1055 GParamSpec* g_param_spec_enum (const gchar *name,
1056 const gchar *nick,
1057 const gchar *blurb,
1058 GType enum_type,
1059 gint default_value,
1060 GParamFlags flags);
1061 GLIB_AVAILABLE_IN_ALL
1062 GParamSpec* g_param_spec_flags (const gchar *name,
1063 const gchar *nick,
1064 const gchar *blurb,
1065 GType flags_type,
1066 guint default_value,
1067 GParamFlags flags);
1068 GLIB_AVAILABLE_IN_ALL
1069 GParamSpec* g_param_spec_float (const gchar *name,
1070 const gchar *nick,
1071 const gchar *blurb,
1072 gfloat minimum,
1073 gfloat maximum,
1074 gfloat default_value,
1075 GParamFlags flags);
1076 GLIB_AVAILABLE_IN_ALL
1077 GParamSpec* g_param_spec_double (const gchar *name,
1078 const gchar *nick,
1079 const gchar *blurb,
1080 gdouble minimum,
1081 gdouble maximum,
1082 gdouble default_value,
1083 GParamFlags flags);
1084 GLIB_AVAILABLE_IN_ALL
1085 GParamSpec* g_param_spec_string (const gchar *name,
1086 const gchar *nick,
1087 const gchar *blurb,
1088 const gchar *default_value,
1089 GParamFlags flags);
1090 GLIB_AVAILABLE_IN_ALL
1091 GParamSpec* g_param_spec_param (const gchar *name,
1092 const gchar *nick,
1093 const gchar *blurb,
1094 GType param_type,
1095 GParamFlags flags);
1096 GLIB_AVAILABLE_IN_ALL
1097 GParamSpec* g_param_spec_boxed (const gchar *name,
1098 const gchar *nick,
1099 const gchar *blurb,
1100 GType boxed_type,
1101 GParamFlags flags);
1102 GLIB_AVAILABLE_IN_ALL
1103 GParamSpec* g_param_spec_pointer (const gchar *name,
1104 const gchar *nick,
1105 const gchar *blurb,
1106 GParamFlags flags);
1107 GLIB_AVAILABLE_IN_ALL
1108 GParamSpec* g_param_spec_value_array (const gchar *name,
1109 const gchar *nick,
1110 const gchar *blurb,
1111 GParamSpec *element_spec,
1112 GParamFlags flags);
1113 GLIB_AVAILABLE_IN_ALL
1114 GParamSpec* g_param_spec_object (const gchar *name,
1115 const gchar *nick,
1116 const gchar *blurb,
1117 GType object_type,
1118 GParamFlags flags);
1119 GLIB_AVAILABLE_IN_ALL
1120 GParamSpec* g_param_spec_override (const gchar *name,
1121 GParamSpec *overridden);
1122 GLIB_AVAILABLE_IN_ALL
1123 GParamSpec* g_param_spec_gtype (const gchar *name,
1124 const gchar *nick,
1125 const gchar *blurb,
1126 GType is_a_type,
1127 GParamFlags flags);
1128 GLIB_AVAILABLE_IN_ALL
1129 GParamSpec* g_param_spec_variant (const gchar *name,
1130 const gchar *nick,
1131 const gchar *blurb,
1132 const GVariantType *type,
1133 GVariant *default_value,
1134 GParamFlags flags);
1136 /* --- internal --- */
1137 /* We prefix variable declarations so they can
1138 * properly get exported in windows dlls.
1140 #ifndef GOBJECT_VAR
1141 # ifdef G_PLATFORM_WIN32
1142 # ifdef GOBJECT_STATIC_COMPILATION
1143 # define GOBJECT_VAR extern
1144 # else /* !GOBJECT_STATIC_COMPILATION */
1145 # ifdef GOBJECT_COMPILATION
1146 # ifdef DLL_EXPORT
1147 # define GOBJECT_VAR __declspec(dllexport)
1148 # else /* !DLL_EXPORT */
1149 # define GOBJECT_VAR extern
1150 # endif /* !DLL_EXPORT */
1151 # else /* !GOBJECT_COMPILATION */
1152 # define GOBJECT_VAR extern __declspec(dllimport)
1153 # endif /* !GOBJECT_COMPILATION */
1154 # endif /* !GOBJECT_STATIC_COMPILATION */
1155 # else /* !G_PLATFORM_WIN32 */
1156 # define GOBJECT_VAR _GLIB_EXTERN
1157 # endif /* !G_PLATFORM_WIN32 */
1158 #endif /* GOBJECT_VAR */
1160 GOBJECT_VAR GType *g_param_spec_types;
1162 G_END_DECLS
1164 #endif /* __G_PARAMSPECS_H__ */