1 /* GObject - GLib Type, Object, Parameter and Signal Library
2  * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc.
3  *
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.
8  *
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.
13  *
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/>.
16  *
17  * gparamspecs.h: GLib default param specs
18  */
19 #ifndef __G_PARAMSPECS_H__
20 #define __G_PARAMSPECS_H__
21 
22 #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
23 #error "Only <glib-object.h> can be included directly."
24 #endif
25 
26 #include        <gobject/gvalue.h>
27 #include        <gobject/genums.h>
28 #include        <gobject/gboxed.h>
29 #include        <gobject/gobject.h>
30 
31 G_BEGIN_DECLS
32 
33 /* --- type macros --- */
34 /**
35  * G_TYPE_PARAM_CHAR:
36  *
37  * The #GType of #GParamSpecChar.
38  */
39 #define	G_TYPE_PARAM_CHAR		   (g_param_spec_types[0])
40 /**
41  * G_IS_PARAM_SPEC_CHAR:
42  * @pspec: a valid #GParamSpec instance
43  *
44  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_CHAR.
45  *
46  * Returns: %TRUE on success.
47  */
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
52  *
53  * Cast a #GParamSpec instance into a #GParamSpecChar.
54  */
55 #define G_PARAM_SPEC_CHAR(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar))
56 
57 /**
58  * G_TYPE_PARAM_UCHAR:
59  *
60  * The #GType of #GParamSpecUChar.
61  */
62 #define	G_TYPE_PARAM_UCHAR		   (g_param_spec_types[1])
63 /**
64  * G_IS_PARAM_SPEC_UCHAR:
65  * @pspec: a valid #GParamSpec instance
66  *
67  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UCHAR.
68  *
69  * Returns: %TRUE on success.
70  */
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
75  *
76  * Cast a #GParamSpec instance into a #GParamSpecUChar.
77  */
78 #define G_PARAM_SPEC_UCHAR(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar))
79 
80 /**
81  * G_TYPE_PARAM_BOOLEAN:
82  *
83  * The #GType of #GParamSpecBoolean.
84  */
85 #define	G_TYPE_PARAM_BOOLEAN		   (g_param_spec_types[2])
86 /**
87  * G_IS_PARAM_SPEC_BOOLEAN:
88  * @pspec: a valid #GParamSpec instance
89  *
90  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOOLEAN.
91  *
92  * Returns: %TRUE on success.
93  */
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
98  *
99  * Cast a #GParamSpec instance into a #GParamSpecBoolean.
100  */
101 #define G_PARAM_SPEC_BOOLEAN(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean))
102 
103 /**
104  * G_TYPE_PARAM_INT:
105  *
106  * The #GType of #GParamSpecInt.
107  */
108 #define	G_TYPE_PARAM_INT		   (g_param_spec_types[3])
109 /**
110  * G_IS_PARAM_SPEC_INT:
111  * @pspec: a valid #GParamSpec instance
112  *
113  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT.
114  *
115  * Returns: %TRUE on success.
116  */
117 #define G_IS_PARAM_SPEC_INT(pspec)         (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT))
118 /**
119  * G_PARAM_SPEC_INT:
120  * @pspec: a valid #GParamSpec instance
121  *
122  * Cast a #GParamSpec instance into a #GParamSpecInt.
123  */
124 #define G_PARAM_SPEC_INT(pspec)            (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt))
125 
126 /**
127  * G_TYPE_PARAM_UINT:
128  *
129  * The #GType of #GParamSpecUInt.
130  */
131 #define	G_TYPE_PARAM_UINT		   (g_param_spec_types[4])
132 /**
133  * G_IS_PARAM_SPEC_UINT:
134  * @pspec: a valid #GParamSpec instance
135  *
136  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT.
137  *
138  * Returns: %TRUE on success.
139  */
140 #define G_IS_PARAM_SPEC_UINT(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT))
141 /**
142  * G_PARAM_SPEC_UINT:
143  * @pspec: a valid #GParamSpec instance
144  *
145  * Cast a #GParamSpec instance into a #GParamSpecUInt.
146  */
147 #define G_PARAM_SPEC_UINT(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt))
148 
149 /**
150  * G_TYPE_PARAM_LONG:
151  *
152  * The #GType of #GParamSpecLong.
153  */
154 #define	G_TYPE_PARAM_LONG		   (g_param_spec_types[5])
155 /**
156  * G_IS_PARAM_SPEC_LONG:
157  * @pspec: a valid #GParamSpec instance
158  *
159  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_LONG.
160  *
161  * Returns: %TRUE on success.
162  */
163 #define G_IS_PARAM_SPEC_LONG(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG))
164 /**
165  * G_PARAM_SPEC_LONG:
166  * @pspec: a valid #GParamSpec instance
167  *
168  * Cast a #GParamSpec instance into a #GParamSpecLong.
169  */
170 #define G_PARAM_SPEC_LONG(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong))
171 
172 /**
173  * G_TYPE_PARAM_ULONG:
174  *
175  * The #GType of #GParamSpecULong.
176  */
177 #define	G_TYPE_PARAM_ULONG		   (g_param_spec_types[6])
178 /**
179  * G_IS_PARAM_SPEC_ULONG:
180  * @pspec: a valid #GParamSpec instance
181  *
182  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ULONG.
183  *
184  * Returns: %TRUE on success.
185  */
186 #define G_IS_PARAM_SPEC_ULONG(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG))
187 /**
188  * G_PARAM_SPEC_ULONG:
189  * @pspec: a valid #GParamSpec instance
190  *
191  * Cast a #GParamSpec instance into a #GParamSpecULong.
192  */
193 #define G_PARAM_SPEC_ULONG(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong))
194 
195 /**
196  * G_TYPE_PARAM_INT64:
197  *
198  * The #GType of #GParamSpecInt64.
199  */
200 #define	G_TYPE_PARAM_INT64		   (g_param_spec_types[7])
201 /**
202  * G_IS_PARAM_SPEC_INT64:
203  * @pspec: a valid #GParamSpec instance
204  *
205  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT64.
206  *
207  * Returns: %TRUE on success.
208  */
209 #define G_IS_PARAM_SPEC_INT64(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64))
210 /**
211  * G_PARAM_SPEC_INT64:
212  * @pspec: a valid #GParamSpec instance
213  *
214  * Cast a #GParamSpec instance into a #GParamSpecInt64.
215  */
216 #define G_PARAM_SPEC_INT64(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64))
217 
218 /**
219  * G_TYPE_PARAM_UINT64:
220  *
221  * The #GType of #GParamSpecUInt64.
222  */
223 #define	G_TYPE_PARAM_UINT64		   (g_param_spec_types[8])
224 /**
225  * G_IS_PARAM_SPEC_UINT64:
226  * @pspec: a valid #GParamSpec instance
227  *
228  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT64.
229  *
230  * Returns: %TRUE on success.
231  */
232 #define G_IS_PARAM_SPEC_UINT64(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64))
233 /**
234  * G_PARAM_SPEC_UINT64:
235  * @pspec: a valid #GParamSpec instance
236  *
237  * Cast a #GParamSpec instance into a #GParamSpecUInt64.
238  */
239 #define G_PARAM_SPEC_UINT64(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64))
240 
241 /**
242  * G_TYPE_PARAM_UNICHAR:
243  *
244  * The #GType of #GParamSpecUnichar.
245  */
246 #define	G_TYPE_PARAM_UNICHAR		   (g_param_spec_types[9])
247 /**
248  * G_PARAM_SPEC_UNICHAR:
249  * @pspec: a valid #GParamSpec instance
250  *
251  * Cast a #GParamSpec instance into a #GParamSpecUnichar.
252  */
253 #define G_PARAM_SPEC_UNICHAR(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar))
254 /**
255  * G_IS_PARAM_SPEC_UNICHAR:
256  * @pspec: a valid #GParamSpec instance
257  *
258  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UNICHAR.
259  *
260  * Returns: %TRUE on success.
261  */
262 #define G_IS_PARAM_SPEC_UNICHAR(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR))
263 
264 /**
265  * G_TYPE_PARAM_ENUM:
266  *
267  * The #GType of #GParamSpecEnum.
268  */
269 #define	G_TYPE_PARAM_ENUM		   (g_param_spec_types[10])
270 /**
271  * G_IS_PARAM_SPEC_ENUM:
272  * @pspec: a valid #GParamSpec instance
273  *
274  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ENUM.
275  *
276  * Returns: %TRUE on success.
277  */
278 #define G_IS_PARAM_SPEC_ENUM(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM))
279 /**
280  * G_PARAM_SPEC_ENUM:
281  * @pspec: a valid #GParamSpec instance
282  *
283  * Cast a #GParamSpec instance into a #GParamSpecEnum.
284  */
285 #define G_PARAM_SPEC_ENUM(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum))
286 
287 /**
288  * G_TYPE_PARAM_FLAGS:
289  *
290  * The #GType of #GParamSpecFlags.
291  */
292 #define	G_TYPE_PARAM_FLAGS		   (g_param_spec_types[11])
293 /**
294  * G_IS_PARAM_SPEC_FLAGS:
295  * @pspec: a valid #GParamSpec instance
296  *
297  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLAGS.
298  *
299  * Returns: %TRUE on success.
300  */
301 #define G_IS_PARAM_SPEC_FLAGS(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS))
302 /**
303  * G_PARAM_SPEC_FLAGS:
304  * @pspec: a valid #GParamSpec instance
305  *
306  * Cast a #GParamSpec instance into a #GParamSpecFlags.
307  */
308 #define G_PARAM_SPEC_FLAGS(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags))
309 
310 /**
311  * G_TYPE_PARAM_FLOAT:
312  *
313  * The #GType of #GParamSpecFloat.
314  */
315 #define	G_TYPE_PARAM_FLOAT		   (g_param_spec_types[12])
316 /**
317  * G_IS_PARAM_SPEC_FLOAT:
318  * @pspec: a valid #GParamSpec instance
319  *
320  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLOAT.
321  *
322  * Returns: %TRUE on success.
323  */
324 #define G_IS_PARAM_SPEC_FLOAT(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT))
325 /**
326  * G_PARAM_SPEC_FLOAT:
327  * @pspec: a valid #GParamSpec instance
328  *
329  * Cast a #GParamSpec instance into a #GParamSpecFloat.
330  */
331 #define G_PARAM_SPEC_FLOAT(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat))
332 
333 /**
334  * G_TYPE_PARAM_DOUBLE:
335  *
336  * The #GType of #GParamSpecDouble.
337  */
338 #define	G_TYPE_PARAM_DOUBLE		   (g_param_spec_types[13])
339 /**
340  * G_IS_PARAM_SPEC_DOUBLE:
341  * @pspec: a valid #GParamSpec instance
342  *
343  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_DOUBLE.
344  *
345  * Returns: %TRUE on success.
346  */
347 #define G_IS_PARAM_SPEC_DOUBLE(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE))
348 /**
349  * G_PARAM_SPEC_DOUBLE:
350  * @pspec: a valid #GParamSpec instance
351  *
352  * Cast a #GParamSpec instance into a #GParamSpecDouble.
353  */
354 #define G_PARAM_SPEC_DOUBLE(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble))
355 
356 /**
357  * G_TYPE_PARAM_STRING:
358  *
359  * The #GType of #GParamSpecString.
360  */
361 #define	G_TYPE_PARAM_STRING		   (g_param_spec_types[14])
362 /**
363  * G_IS_PARAM_SPEC_STRING:
364  * @pspec: a valid #GParamSpec instance
365  *
366  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_STRING.
367  *
368  * Returns: %TRUE on success.
369  */
370 #define G_IS_PARAM_SPEC_STRING(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING))
371 /**
372  * G_PARAM_SPEC_STRING:
373  * @pspec: a valid #GParamSpec instance
374  *
375  * Casts a #GParamSpec instance into a #GParamSpecString.
376  */
377 #define G_PARAM_SPEC_STRING(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString))
378 
379 /**
380  * G_TYPE_PARAM_PARAM:
381  *
382  * The #GType of #GParamSpecParam.
383  */
384 #define	G_TYPE_PARAM_PARAM		   (g_param_spec_types[15])
385 /**
386  * G_IS_PARAM_SPEC_PARAM:
387  * @pspec: a valid #GParamSpec instance
388  *
389  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_PARAM.
390  *
391  * Returns: %TRUE on success.
392  */
393 #define G_IS_PARAM_SPEC_PARAM(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM))
394 /**
395  * G_PARAM_SPEC_PARAM:
396  * @pspec: a valid #GParamSpec instance
397  *
398  * Casts a #GParamSpec instance into a #GParamSpecParam.
399  */
400 #define G_PARAM_SPEC_PARAM(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam))
401 
402 /**
403  * G_TYPE_PARAM_BOXED:
404  *
405  * The #GType of #GParamSpecBoxed.
406  */
407 #define	G_TYPE_PARAM_BOXED		   (g_param_spec_types[16])
408 /**
409  * G_IS_PARAM_SPEC_BOXED:
410  * @pspec: a valid #GParamSpec instance
411  *
412  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOXED.
413  *
414  * Returns: %TRUE on success.
415  */
416 #define G_IS_PARAM_SPEC_BOXED(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED))
417 /**
418  * G_PARAM_SPEC_BOXED:
419  * @pspec: a valid #GParamSpec instance
420  *
421  * Cast a #GParamSpec instance into a #GParamSpecBoxed.
422  */
423 #define G_PARAM_SPEC_BOXED(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed))
424 
425 /**
426  * G_TYPE_PARAM_POINTER:
427  *
428  * The #GType of #GParamSpecPointer.
429  */
430 #define	G_TYPE_PARAM_POINTER		   (g_param_spec_types[17])
431 /**
432  * G_IS_PARAM_SPEC_POINTER:
433  * @pspec: a valid #GParamSpec instance
434  *
435  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_POINTER.
436  *
437  * Returns: %TRUE on success.
438  */
439 #define G_IS_PARAM_SPEC_POINTER(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER))
440 /**
441  * G_PARAM_SPEC_POINTER:
442  * @pspec: a valid #GParamSpec instance
443  *
444  * Casts a #GParamSpec instance into a #GParamSpecPointer.
445  */
446 #define G_PARAM_SPEC_POINTER(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer))
447 
448 /**
449  * G_TYPE_PARAM_VALUE_ARRAY:
450  *
451  * The #GType of #GParamSpecValueArray.
452  *
453  * Deprecated: 2.32: Use #GArray instead of #GValueArray
454  */
455 #define	G_TYPE_PARAM_VALUE_ARRAY	   (g_param_spec_types[18]) GLIB_DEPRECATED_MACRO_IN_2_32
456 /**
457  * G_IS_PARAM_SPEC_VALUE_ARRAY:
458  * @pspec: a valid #GParamSpec instance
459  *
460  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VALUE_ARRAY.
461  *
462  * Returns: %TRUE on success.
463  *
464  * Deprecated: 2.32: Use #GArray instead of #GValueArray
465  */
466 #define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY)) GLIB_DEPRECATED_MACRO_IN_2_32
467 /**
468  * G_PARAM_SPEC_VALUE_ARRAY:
469  * @pspec: a valid #GParamSpec instance
470  *
471  * Cast a #GParamSpec instance into a #GParamSpecValueArray.
472  *
473  * Deprecated: 2.32: Use #GArray instead of #GValueArray
474  */
475 #define G_PARAM_SPEC_VALUE_ARRAY(pspec)    (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray)) GLIB_DEPRECATED_MACRO_IN_2_32
476 
477 /**
478  * G_TYPE_PARAM_OBJECT:
479  *
480  * The #GType of #GParamSpecObject.
481  */
482 #define	G_TYPE_PARAM_OBJECT		   (g_param_spec_types[19])
483 /**
484  * G_IS_PARAM_SPEC_OBJECT:
485  * @pspec: a valid #GParamSpec instance
486  *
487  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OBJECT.
488  *
489  * Returns: %TRUE on success.
490  */
491 #define G_IS_PARAM_SPEC_OBJECT(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
492 /**
493  * G_PARAM_SPEC_OBJECT:
494  * @pspec: a valid #GParamSpec instance
495  *
496  * Casts a #GParamSpec instance into a #GParamSpecObject.
497  */
498 #define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
499 
500 /**
501  * G_TYPE_PARAM_OVERRIDE:
502  *
503  * The #GType of #GParamSpecOverride.
504  *
505  * Since: 2.4
506  */
507 #define	G_TYPE_PARAM_OVERRIDE		   (g_param_spec_types[20])
508 /**
509  * G_IS_PARAM_SPEC_OVERRIDE:
510  * @pspec: a #GParamSpec
511  *
512  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OVERRIDE.
513  *
514  * Since: 2.4
515  * Returns: %TRUE on success.
516  */
517 #define G_IS_PARAM_SPEC_OVERRIDE(pspec)    (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE))
518 /**
519  * G_PARAM_SPEC_OVERRIDE:
520  * @pspec: a #GParamSpec
521  *
522  * Casts a #GParamSpec into a #GParamSpecOverride.
523  *
524  * Since: 2.4
525  */
526 #define G_PARAM_SPEC_OVERRIDE(pspec)       (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride))
527 
528 /**
529  * G_TYPE_PARAM_GTYPE:
530  *
531  * The #GType of #GParamSpecGType.
532  *
533  * Since: 2.10
534  */
535 #define	G_TYPE_PARAM_GTYPE		   (g_param_spec_types[21])
536 /**
537  * G_IS_PARAM_SPEC_GTYPE:
538  * @pspec: a #GParamSpec
539  *
540  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_GTYPE.
541  *
542  * Since: 2.10
543  * Returns: %TRUE on success.
544  */
545 #define G_IS_PARAM_SPEC_GTYPE(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE))
546 /**
547  * G_PARAM_SPEC_GTYPE:
548  * @pspec: a #GParamSpec
549  *
550  * Casts a #GParamSpec into a #GParamSpecGType.
551  *
552  * Since: 2.10
553  */
554 #define G_PARAM_SPEC_GTYPE(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType))
555 
556 /**
557  * G_TYPE_PARAM_VARIANT:
558  *
559  * The #GType of #GParamSpecVariant.
560  *
561  * Since: 2.26
562  */
563 #define G_TYPE_PARAM_VARIANT                (g_param_spec_types[22])
564 /**
565  * G_IS_PARAM_SPEC_VARIANT:
566  * @pspec: a #GParamSpec
567  *
568  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VARIANT.
569  *
570  * Returns: %TRUE on success
571  *
572  * Since: 2.26
573  */
574 #define G_IS_PARAM_SPEC_VARIANT(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT))
575 /**
576  * G_PARAM_SPEC_VARIANT:
577  * @pspec: a #GParamSpec
578  *
579  * Casts a #GParamSpec into a #GParamSpecVariant.
580  *
581  * Since: 2.26
582  */
583 #define G_PARAM_SPEC_VARIANT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant))
584 
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;
609 
610 /**
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
616  *
617  * A #GParamSpec derived structure that contains the meta data for character properties.
618  */
619 struct _GParamSpecChar
620 {
621   GParamSpec    parent_instance;
622 
623   gint8         minimum;
624   gint8         maximum;
625   gint8         default_value;
626 };
627 /**
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
633  *
634  * A #GParamSpec derived structure that contains the meta data for unsigned character properties.
635  */
636 struct _GParamSpecUChar
637 {
638   GParamSpec    parent_instance;
639 
640   guint8        minimum;
641   guint8        maximum;
642   guint8        default_value;
643 };
644 /**
645  * GParamSpecBoolean:
646  * @parent_instance: private #GParamSpec portion
647  * @default_value: default value for the property specified
648  *
649  * A #GParamSpec derived structure that contains the meta data for boolean properties.
650  */
651 struct _GParamSpecBoolean
652 {
653   GParamSpec    parent_instance;
654 
655   gboolean      default_value;
656 };
657 /**
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
663  *
664  * A #GParamSpec derived structure that contains the meta data for integer properties.
665  */
666 struct _GParamSpecInt
667 {
668   GParamSpec    parent_instance;
669 
670   gint          minimum;
671   gint          maximum;
672   gint          default_value;
673 };
674 /**
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
680  *
681  * A #GParamSpec derived structure that contains the meta data for unsigned integer properties.
682  */
683 struct _GParamSpecUInt
684 {
685   GParamSpec    parent_instance;
686 
687   guint         minimum;
688   guint         maximum;
689   guint         default_value;
690 };
691 /**
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
697  *
698  * A #GParamSpec derived structure that contains the meta data for long integer properties.
699  */
700 struct _GParamSpecLong
701 {
702   GParamSpec    parent_instance;
703 
704   glong         minimum;
705   glong         maximum;
706   glong         default_value;
707 };
708 /**
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
714  *
715  * A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.
716  */
717 struct _GParamSpecULong
718 {
719   GParamSpec    parent_instance;
720 
721   gulong        minimum;
722   gulong        maximum;
723   gulong        default_value;
724 };
725 /**
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
731  *
732  * A #GParamSpec derived structure that contains the meta data for 64bit integer properties.
733  */
734 struct _GParamSpecInt64
735 {
736   GParamSpec    parent_instance;
737 
738   gint64        minimum;
739   gint64        maximum;
740   gint64        default_value;
741 };
742 /**
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
748  *
749  * A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.
750  */
751 struct _GParamSpecUInt64
752 {
753   GParamSpec    parent_instance;
754 
755   guint64       minimum;
756   guint64       maximum;
757   guint64       default_value;
758 };
759 /**
760  * GParamSpecUnichar:
761  * @parent_instance: private #GParamSpec portion
762  * @default_value: default value for the property specified
763  *
764  * A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.
765  */
766 struct _GParamSpecUnichar
767 {
768   GParamSpec    parent_instance;
769 
770   gunichar      default_value;
771 };
772 /**
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
777  *
778  * A #GParamSpec derived structure that contains the meta data for enum
779  * properties.
780  */
781 struct _GParamSpecEnum
782 {
783   GParamSpec    parent_instance;
784 
785   GEnumClass   *enum_class;
786   gint          default_value;
787 };
788 /**
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
793  *
794  * A #GParamSpec derived structure that contains the meta data for flags
795  * properties.
796  */
797 struct _GParamSpecFlags
798 {
799   GParamSpec    parent_instance;
800 
801   GFlagsClass  *flags_class;
802   guint         default_value;
803 };
804 /**
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.
812  *
813  * A #GParamSpec derived structure that contains the meta data for float properties.
814  */
815 struct _GParamSpecFloat
816 {
817   GParamSpec    parent_instance;
818 
819   gfloat        minimum;
820   gfloat        maximum;
821   gfloat        default_value;
822   gfloat        epsilon;
823 };
824 /**
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.
832  *
833  * A #GParamSpec derived structure that contains the meta data for double properties.
834  */
835 struct _GParamSpecDouble
836 {
837   GParamSpec    parent_instance;
838 
839   gdouble       minimum;
840   gdouble       maximum;
841   gdouble       default_value;
842   gdouble       epsilon;
843 };
844 /**
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
853  *
854  * A #GParamSpec derived structure that contains the meta data for string
855  * properties.
856  */
857 struct _GParamSpecString
858 {
859   GParamSpec    parent_instance;
860 
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;
867 };
868 /**
869  * GParamSpecParam:
870  * @parent_instance: private #GParamSpec portion
871  *
872  * A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
873  * properties.
874  */
875 struct _GParamSpecParam
876 {
877   GParamSpec    parent_instance;
878 };
879 /**
880  * GParamSpecBoxed:
881  * @parent_instance: private #GParamSpec portion
882  *
883  * A #GParamSpec derived structure that contains the meta data for boxed properties.
884  */
885 struct _GParamSpecBoxed
886 {
887   GParamSpec    parent_instance;
888 };
889 /**
890  * GParamSpecPointer:
891  * @parent_instance: private #GParamSpec portion
892  *
893  * A #GParamSpec derived structure that contains the meta data for pointer properties.
894  */
895 struct _GParamSpecPointer
896 {
897   GParamSpec    parent_instance;
898 };
899 /**
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
904  *
905  * A #GParamSpec derived structure that contains the meta data for #GValueArray properties.
906  */
907 struct _GParamSpecValueArray
908 {
909   GParamSpec    parent_instance;
910   GParamSpec   *element_spec;
911   guint		fixed_n_elements;
912 };
913 /**
914  * GParamSpecObject:
915  * @parent_instance: private #GParamSpec portion
916  *
917  * A #GParamSpec derived structure that contains the meta data for object properties.
918  */
919 struct _GParamSpecObject
920 {
921   GParamSpec    parent_instance;
922 };
923 /**
924  * GParamSpecOverride:
925  *
926  * A #GParamSpec derived structure that redirects operations to
927  * other types of #GParamSpec.
928  *
929  * All operations other than getting or setting the value are redirected,
930  * including accessing the nick and blurb, validating a value, and so
931  * forth.
932  *
933  * See g_param_spec_get_redirect_target() for retrieving the overridden
934  * property. #GParamSpecOverride is used in implementing
935  * g_object_class_override_property(), and will not be directly useful
936  * unless you are implementing a new base type similar to GObject.
937  *
938  * Since: 2.4
939  */
940 struct _GParamSpecOverride
941 {
942   /*< private >*/
943   GParamSpec    parent_instance;
944   GParamSpec   *overridden;
945 };
946 /**
947  * GParamSpecGType:
948  * @parent_instance: private #GParamSpec portion
949  * @is_a_type: a #GType whose subtypes can occur as values
950  *
951  * A #GParamSpec derived structure that contains the meta data for #GType properties.
952  *
953  * Since: 2.10
954  */
955 struct _GParamSpecGType
956 {
957   GParamSpec    parent_instance;
958   GType         is_a_type;
959 };
960 /**
961  * GParamSpecVariant:
962  * @parent_instance: private #GParamSpec portion
963  * @type: a #GVariantType, or %NULL
964  * @default_value: a #GVariant, or %NULL
965  *
966  * A #GParamSpec derived structure that contains the meta data for #GVariant properties.
967  *
968  * When comparing values with g_param_values_cmp(), scalar values with the same
969  * type will be compared with g_variant_compare(). Other non-%NULL variants will
970  * be checked for equality with g_variant_equal(), and their sort order is
971  * otherwise undefined. %NULL is ordered before non-%NULL variants. Two %NULL
972  * values compare equal.
973  *
974  * Since: 2.26
975  */
976 struct _GParamSpecVariant
977 {
978   GParamSpec    parent_instance;
979   GVariantType *type;
980   GVariant     *default_value;
981 
982   /*< private >*/
983   gpointer      padding[4];
984 };
985 
986 /* --- GParamSpec prototypes --- */
987 GLIB_AVAILABLE_IN_ALL
988 GParamSpec*	g_param_spec_char	 (const gchar	 *name,
989 					  const gchar	 *nick,
990 					  const gchar	 *blurb,
991 					  gint8		  minimum,
992 					  gint8		  maximum,
993 					  gint8		  default_value,
994 					  GParamFlags	  flags);
995 GLIB_AVAILABLE_IN_ALL
996 GParamSpec*	g_param_spec_uchar	 (const gchar	 *name,
997 					  const gchar	 *nick,
998 					  const gchar	 *blurb,
999 					  guint8	  minimum,
1000 					  guint8	  maximum,
1001 					  guint8	  default_value,
1002 					  GParamFlags	  flags);
1003 GLIB_AVAILABLE_IN_ALL
1004 GParamSpec*	g_param_spec_boolean	 (const gchar	 *name,
1005 					  const gchar	 *nick,
1006 					  const gchar	 *blurb,
1007 					  gboolean	  default_value,
1008 					  GParamFlags	  flags);
1009 GLIB_AVAILABLE_IN_ALL
1010 GParamSpec*	g_param_spec_int	 (const gchar	 *name,
1011 					  const gchar	 *nick,
1012 					  const gchar	 *blurb,
1013 					  gint		  minimum,
1014 					  gint		  maximum,
1015 					  gint		  default_value,
1016 					  GParamFlags	  flags);
1017 GLIB_AVAILABLE_IN_ALL
1018 GParamSpec*	g_param_spec_uint	 (const gchar	 *name,
1019 					  const gchar	 *nick,
1020 					  const gchar	 *blurb,
1021 					  guint		  minimum,
1022 					  guint		  maximum,
1023 					  guint		  default_value,
1024 					  GParamFlags	  flags);
1025 GLIB_AVAILABLE_IN_ALL
1026 GParamSpec*	g_param_spec_long	 (const gchar	 *name,
1027 					  const gchar	 *nick,
1028 					  const gchar	 *blurb,
1029 					  glong		  minimum,
1030 					  glong		  maximum,
1031 					  glong		  default_value,
1032 					  GParamFlags	  flags);
1033 GLIB_AVAILABLE_IN_ALL
1034 GParamSpec*	g_param_spec_ulong	 (const gchar	 *name,
1035 					  const gchar	 *nick,
1036 					  const gchar	 *blurb,
1037 					  gulong	  minimum,
1038 					  gulong	  maximum,
1039 					  gulong	  default_value,
1040 					  GParamFlags	  flags);
1041 GLIB_AVAILABLE_IN_ALL
1042 GParamSpec*	g_param_spec_int64	 (const gchar	 *name,
1043 					  const gchar	 *nick,
1044 					  const gchar	 *blurb,
1045 					  gint64       	  minimum,
1046 					  gint64       	  maximum,
1047 					  gint64       	  default_value,
1048 					  GParamFlags	  flags);
1049 GLIB_AVAILABLE_IN_ALL
1050 GParamSpec*	g_param_spec_uint64	 (const gchar	 *name,
1051 					  const gchar	 *nick,
1052 					  const gchar	 *blurb,
1053 					  guint64	  minimum,
1054 					  guint64	  maximum,
1055 					  guint64	  default_value,
1056 					  GParamFlags	  flags);
1057 GLIB_AVAILABLE_IN_ALL
1058 GParamSpec*	g_param_spec_unichar      (const gchar    *name,
1059 				          const gchar    *nick,
1060 				          const gchar    *blurb,
1061 				          gunichar	  default_value,
1062 				          GParamFlags     flags);
1063 GLIB_AVAILABLE_IN_ALL
1064 GParamSpec*	g_param_spec_enum	 (const gchar	 *name,
1065 					  const gchar	 *nick,
1066 					  const gchar	 *blurb,
1067 					  GType		  enum_type,
1068 					  gint		  default_value,
1069 					  GParamFlags	  flags);
1070 GLIB_AVAILABLE_IN_ALL
1071 GParamSpec*	g_param_spec_flags	 (const gchar	 *name,
1072 					  const gchar	 *nick,
1073 					  const gchar	 *blurb,
1074 					  GType		  flags_type,
1075 					  guint		  default_value,
1076 					  GParamFlags	  flags);
1077 GLIB_AVAILABLE_IN_ALL
1078 GParamSpec*	g_param_spec_float	 (const gchar	 *name,
1079 					  const gchar	 *nick,
1080 					  const gchar	 *blurb,
1081 					  gfloat	  minimum,
1082 					  gfloat	  maximum,
1083 					  gfloat	  default_value,
1084 					  GParamFlags	  flags);
1085 GLIB_AVAILABLE_IN_ALL
1086 GParamSpec*	g_param_spec_double	 (const gchar	 *name,
1087 					  const gchar	 *nick,
1088 					  const gchar	 *blurb,
1089 					  gdouble	  minimum,
1090 					  gdouble	  maximum,
1091 					  gdouble	  default_value,
1092 					  GParamFlags	  flags);
1093 GLIB_AVAILABLE_IN_ALL
1094 GParamSpec*	g_param_spec_string	 (const gchar	 *name,
1095 					  const gchar	 *nick,
1096 					  const gchar	 *blurb,
1097 					  const gchar	 *default_value,
1098 					  GParamFlags	  flags);
1099 GLIB_AVAILABLE_IN_ALL
1100 GParamSpec*	g_param_spec_param	 (const gchar	 *name,
1101 					  const gchar	 *nick,
1102 					  const gchar	 *blurb,
1103 					  GType		  param_type,
1104 					  GParamFlags	  flags);
1105 GLIB_AVAILABLE_IN_ALL
1106 GParamSpec*	g_param_spec_boxed	 (const gchar	 *name,
1107 					  const gchar	 *nick,
1108 					  const gchar	 *blurb,
1109 					  GType		  boxed_type,
1110 					  GParamFlags	  flags);
1111 GLIB_AVAILABLE_IN_ALL
1112 GParamSpec*	g_param_spec_pointer	 (const gchar	 *name,
1113 					  const gchar	 *nick,
1114 					  const gchar	 *blurb,
1115 					  GParamFlags	  flags);
1116 GLIB_AVAILABLE_IN_ALL
1117 GParamSpec*	g_param_spec_value_array (const gchar	 *name,
1118 					  const gchar	 *nick,
1119 					  const gchar	 *blurb,
1120 					  GParamSpec	 *element_spec,
1121 					  GParamFlags	  flags);
1122 GLIB_AVAILABLE_IN_ALL
1123 GParamSpec*	g_param_spec_object	 (const gchar	 *name,
1124 					  const gchar	 *nick,
1125 					  const gchar	 *blurb,
1126 					  GType		  object_type,
1127 					  GParamFlags	  flags);
1128 GLIB_AVAILABLE_IN_ALL
1129 GParamSpec*	g_param_spec_override    (const gchar    *name,
1130 					  GParamSpec     *overridden);
1131 GLIB_AVAILABLE_IN_ALL
1132 GParamSpec*	g_param_spec_gtype	 (const gchar	 *name,
1133 					  const gchar	 *nick,
1134 					  const gchar	 *blurb,
1135 					  GType           is_a_type,
1136 					  GParamFlags	  flags);
1137 GLIB_AVAILABLE_IN_ALL
1138 GParamSpec*	g_param_spec_variant	 (const gchar        *name,
1139 					  const gchar        *nick,
1140 					  const gchar	     *blurb,
1141 					  const GVariantType *type,
1142 					  GVariant           *default_value,
1143 					  GParamFlags         flags);
1144 
1145 /* --- internal --- */
1146 /* We prefix variable declarations so they can
1147  * properly get exported in windows dlls.
1148  */
1149 #ifndef GOBJECT_VAR
1150 #  ifdef G_PLATFORM_WIN32
1151 #    ifdef GOBJECT_STATIC_COMPILATION
1152 #      define GOBJECT_VAR extern
1153 #    else /* !GOBJECT_STATIC_COMPILATION */
1154 #      ifdef GOBJECT_COMPILATION
1155 #        ifdef DLL_EXPORT
1156 #          define GOBJECT_VAR extern __declspec(dllexport)
1157 #        else /* !DLL_EXPORT */
1158 #          define GOBJECT_VAR extern
1159 #        endif /* !DLL_EXPORT */
1160 #      else /* !GOBJECT_COMPILATION */
1161 #        define GOBJECT_VAR extern __declspec(dllimport)
1162 #      endif /* !GOBJECT_COMPILATION */
1163 #    endif /* !GOBJECT_STATIC_COMPILATION */
1164 #  else /* !G_PLATFORM_WIN32 */
1165 #    define GOBJECT_VAR _GLIB_EXTERN
1166 #  endif /* !G_PLATFORM_WIN32 */
1167 #endif /* GOBJECT_VAR */
1168 
1169 GOBJECT_VAR GType *g_param_spec_types;
1170 
1171 G_END_DECLS
1172 
1173 #endif /* __G_PARAMSPECS_H__ */
1174