1 module gobject.gparamspecs;
2 
3 import gobject.gvalue;
4 import gobject.genums;
5 import gobject.gboxed;
6 import gobject.gobject;
7 import gobject.gparam;
8 import gobject.gtype;
9 
10 import glib;
11 
12 import std.bitmanip;
13 
14 
15 // /* --- type macros --- */
16 // /**
17 //  * G_TYPE_PARAM_CHAR:
18 //  *
19 //  * The #GType of #GParamSpecChar.
20 //  */
21 // #define	G_TYPE_PARAM_CHAR		   (g_param_spec_types[0])
22 // /**
23 //  * G_IS_PARAM_SPEC_CHAR:
24 //  * @pspec: a valid #GParamSpec instance
25 //  *
26 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_CHAR.
27 //  *
28 //  * Returns: %TRUE on success.
29 //  */
30 // #define G_IS_PARAM_SPEC_CHAR(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR))
31 // /**
32 //  * G_PARAM_SPEC_CHAR:
33 //  * @pspec: a valid #GParamSpec instance
34 //  *
35 //  * Cast a #GParamSpec instance into a #GParamSpecChar.
36 //  */
37 // #define G_PARAM_SPEC_CHAR(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar))
38 //
39 // /**
40 //  * G_TYPE_PARAM_UCHAR:
41 //  *
42 //  * The #GType of #GParamSpecUChar.
43 //  */
44 // #define	G_TYPE_PARAM_UCHAR		   (g_param_spec_types[1])
45 // /**
46 //  * G_IS_PARAM_SPEC_UCHAR:
47 //  * @pspec: a valid #GParamSpec instance
48 //  *
49 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UCHAR.
50 //  *
51 //  * Returns: %TRUE on success.
52 //  */
53 // #define G_IS_PARAM_SPEC_UCHAR(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR))
54 // /**
55 //  * G_PARAM_SPEC_UCHAR:
56 //  * @pspec: a valid #GParamSpec instance
57 //  *
58 //  * Cast a #GParamSpec instance into a #GParamSpecUChar.
59 //  */
60 // #define G_PARAM_SPEC_UCHAR(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar))
61 //
62 // /**
63 //  * G_TYPE_PARAM_BOOLEAN:
64 //  *
65 //  * The #GType of #GParamSpecBoolean.
66 //  */
67 // #define	G_TYPE_PARAM_BOOLEAN		   (g_param_spec_types[2])
68 // /**
69 //  * G_IS_PARAM_SPEC_BOOLEAN:
70 //  * @pspec: a valid #GParamSpec instance
71 //  *
72 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOOLEAN.
73 //  *
74 //  * Returns: %TRUE on success.
75 //  */
76 // #define G_IS_PARAM_SPEC_BOOLEAN(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN))
77 // /**
78 //  * G_PARAM_SPEC_BOOLEAN:
79 //  * @pspec: a valid #GParamSpec instance
80 //  *
81 //  * Cast a #GParamSpec instance into a #GParamSpecBoolean.
82 //  */
83 // #define G_PARAM_SPEC_BOOLEAN(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean))
84 //
85 // /**
86 //  * G_TYPE_PARAM_INT:
87 //  *
88 //  * The #GType of #GParamSpecInt.
89 //  */
90 // #define	G_TYPE_PARAM_INT		   (g_param_spec_types[3])
91 // /**
92 //  * G_IS_PARAM_SPEC_INT:
93 //  * @pspec: a valid #GParamSpec instance
94 //  *
95 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT.
96 //  *
97 //  * Returns: %TRUE on success.
98 //  */
99 // #define G_IS_PARAM_SPEC_INT(pspec)         (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT))
100 // /**
101 //  * G_PARAM_SPEC_INT:
102 //  * @pspec: a valid #GParamSpec instance
103 //  *
104 //  * Cast a #GParamSpec instance into a #GParamSpecInt.
105 //  */
106 // #define G_PARAM_SPEC_INT(pspec)            (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt))
107 //
108 // /**
109 //  * G_TYPE_PARAM_UINT:
110 //  *
111 //  * The #GType of #GParamSpecUInt.
112 //  */
113 // #define	G_TYPE_PARAM_UINT		   (g_param_spec_types[4])
114 // /**
115 //  * G_IS_PARAM_SPEC_UINT:
116 //  * @pspec: a valid #GParamSpec instance
117 //  *
118 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT.
119 //  *
120 //  * Returns: %TRUE on success.
121 //  */
122 // #define G_IS_PARAM_SPEC_UINT(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT))
123 // /**
124 //  * G_PARAM_SPEC_UINT:
125 //  * @pspec: a valid #GParamSpec instance
126 //  *
127 //  * Cast a #GParamSpec instance into a #GParamSpecUInt.
128 //  */
129 // #define G_PARAM_SPEC_UINT(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt))
130 //
131 // /**
132 //  * G_TYPE_PARAM_LONG:
133 //  *
134 //  * The #GType of #GParamSpecLong.
135 //  */
136 // #define	G_TYPE_PARAM_LONG		   (g_param_spec_types[5])
137 // /**
138 //  * G_IS_PARAM_SPEC_LONG:
139 //  * @pspec: a valid #GParamSpec instance
140 //  *
141 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_LONG.
142 //  *
143 //  * Returns: %TRUE on success.
144 //  */
145 // #define G_IS_PARAM_SPEC_LONG(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG))
146 // /**
147 //  * G_PARAM_SPEC_LONG:
148 //  * @pspec: a valid #GParamSpec instance
149 //  *
150 //  * Cast a #GParamSpec instance into a #GParamSpecLong.
151 //  */
152 // #define G_PARAM_SPEC_LONG(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong))
153 //
154 // /**
155 //  * G_TYPE_PARAM_ULONG:
156 //  *
157 //  * The #GType of #GParamSpecULong.
158 //  */
159 // #define	G_TYPE_PARAM_ULONG		   (g_param_spec_types[6])
160 // /**
161 //  * G_IS_PARAM_SPEC_ULONG:
162 //  * @pspec: a valid #GParamSpec instance
163 //  *
164 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ULONG.
165 //  *
166 //  * Returns: %TRUE on success.
167 //  */
168 // #define G_IS_PARAM_SPEC_ULONG(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG))
169 // /**
170 //  * G_PARAM_SPEC_ULONG:
171 //  * @pspec: a valid #GParamSpec instance
172 //  *
173 //  * Cast a #GParamSpec instance into a #GParamSpecULong.
174 //  */
175 // #define G_PARAM_SPEC_ULONG(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong))
176 //
177 // /**
178 //  * G_TYPE_PARAM_INT64:
179 //  *
180 //  * The #GType of #GParamSpecInt64.
181 //  */
182 // #define	G_TYPE_PARAM_INT64		   (g_param_spec_types[7])
183 // /**
184 //  * G_IS_PARAM_SPEC_INT64:
185 //  * @pspec: a valid #GParamSpec instance
186 //  *
187 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT64.
188 //  *
189 //  * Returns: %TRUE on success.
190 //  */
191 // #define G_IS_PARAM_SPEC_INT64(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64))
192 // /**
193 //  * G_PARAM_SPEC_INT64:
194 //  * @pspec: a valid #GParamSpec instance
195 //  *
196 //  * Cast a #GParamSpec instance into a #GParamSpecInt64.
197 //  */
198 // #define G_PARAM_SPEC_INT64(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64))
199 //
200 // /**
201 //  * G_TYPE_PARAM_UINT64:
202 //  *
203 //  * The #GType of #GParamSpecUInt64.
204 //  */
205 // #define	G_TYPE_PARAM_UINT64		   (g_param_spec_types[8])
206 // /**
207 //  * G_IS_PARAM_SPEC_UINT64:
208 //  * @pspec: a valid #GParamSpec instance
209 //  *
210 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT64.
211 //  *
212 //  * Returns: %TRUE on success.
213 //  */
214 // #define G_IS_PARAM_SPEC_UINT64(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64))
215 // /**
216 //  * G_PARAM_SPEC_UINT64:
217 //  * @pspec: a valid #GParamSpec instance
218 //  *
219 //  * Cast a #GParamSpec instance into a #GParamSpecUInt64.
220 //  */
221 // #define G_PARAM_SPEC_UINT64(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64))
222 //
223 // /**
224 //  * G_TYPE_PARAM_UNICHAR:
225 //  *
226 //  * The #GType of #GParamSpecUnichar.
227 //  */
228 // #define	G_TYPE_PARAM_UNICHAR		   (g_param_spec_types[9])
229 // /**
230 //  * G_PARAM_SPEC_UNICHAR:
231 //  * @pspec: a valid #GParamSpec instance
232 //  *
233 //  * Cast a #GParamSpec instance into a #GParamSpecUnichar.
234 //  */
235 // #define G_PARAM_SPEC_UNICHAR(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar))
236 // /**
237 //  * G_IS_PARAM_SPEC_UNICHAR:
238 //  * @pspec: a valid #GParamSpec instance
239 //  *
240 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UNICHAR.
241 //  *
242 //  * Returns: %TRUE on success.
243 //  */
244 // #define G_IS_PARAM_SPEC_UNICHAR(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR))
245 //
246 // /**
247 //  * G_TYPE_PARAM_ENUM:
248 //  *
249 //  * The #GType of #GParamSpecEnum.
250 //  */
251 // #define	G_TYPE_PARAM_ENUM		   (g_param_spec_types[10])
252 // /**
253 //  * G_IS_PARAM_SPEC_ENUM:
254 //  * @pspec: a valid #GParamSpec instance
255 //  *
256 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ENUM.
257 //  *
258 //  * Returns: %TRUE on success.
259 //  */
260 // #define G_IS_PARAM_SPEC_ENUM(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM))
261 // /**
262 //  * G_PARAM_SPEC_ENUM:
263 //  * @pspec: a valid #GParamSpec instance
264 //  *
265 //  * Cast a #GParamSpec instance into a #GParamSpecEnum.
266 //  */
267 // #define G_PARAM_SPEC_ENUM(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum))
268 //
269 // /**
270 //  * G_TYPE_PARAM_FLAGS:
271 //  *
272 //  * The #GType of #GParamSpecFlags.
273 //  */
274 // #define	G_TYPE_PARAM_FLAGS		   (g_param_spec_types[11])
275 // /**
276 //  * G_IS_PARAM_SPEC_FLAGS:
277 //  * @pspec: a valid #GParamSpec instance
278 //  *
279 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLAGS.
280 //  *
281 //  * Returns: %TRUE on success.
282 //  */
283 // #define G_IS_PARAM_SPEC_FLAGS(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS))
284 // /**
285 //  * G_PARAM_SPEC_FLAGS:
286 //  * @pspec: a valid #GParamSpec instance
287 //  *
288 //  * Cast a #GParamSpec instance into a #GParamSpecFlags.
289 //  */
290 // #define G_PARAM_SPEC_FLAGS(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags))
291 //
292 // /**
293 //  * G_TYPE_PARAM_FLOAT:
294 //  *
295 //  * The #GType of #GParamSpecFloat.
296 //  */
297 // #define	G_TYPE_PARAM_FLOAT		   (g_param_spec_types[12])
298 // /**
299 //  * G_IS_PARAM_SPEC_FLOAT:
300 //  * @pspec: a valid #GParamSpec instance
301 //  *
302 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLOAT.
303 //  *
304 //  * Returns: %TRUE on success.
305 //  */
306 // #define G_IS_PARAM_SPEC_FLOAT(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT))
307 // /**
308 //  * G_PARAM_SPEC_FLOAT:
309 //  * @pspec: a valid #GParamSpec instance
310 //  *
311 //  * Cast a #GParamSpec instance into a #GParamSpecFloat.
312 //  */
313 // #define G_PARAM_SPEC_FLOAT(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat))
314 //
315 // /**
316 //  * G_TYPE_PARAM_DOUBLE:
317 //  *
318 //  * The #GType of #GParamSpecDouble.
319 //  */
320 // #define	G_TYPE_PARAM_DOUBLE		   (g_param_spec_types[13])
321 // /**
322 //  * G_IS_PARAM_SPEC_DOUBLE:
323 //  * @pspec: a valid #GParamSpec instance
324 //  *
325 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_DOUBLE.
326 //  *
327 //  * Returns: %TRUE on success.
328 //  */
329 // #define G_IS_PARAM_SPEC_DOUBLE(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE))
330 // /**
331 //  * G_PARAM_SPEC_DOUBLE:
332 //  * @pspec: a valid #GParamSpec instance
333 //  *
334 //  * Cast a #GParamSpec instance into a #GParamSpecDouble.
335 //  */
336 // #define G_PARAM_SPEC_DOUBLE(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble))
337 //
338 // /**
339 //  * G_TYPE_PARAM_STRING:
340 //  *
341 //  * The #GType of #GParamSpecString.
342 //  */
343 // #define	G_TYPE_PARAM_STRING		   (g_param_spec_types[14])
344 // /**
345 //  * G_IS_PARAM_SPEC_STRING:
346 //  * @pspec: a valid #GParamSpec instance
347 //  *
348 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_STRING.
349 //  *
350 //  * Returns: %TRUE on success.
351 //  */
352 // #define G_IS_PARAM_SPEC_STRING(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING))
353 // /**
354 //  * G_PARAM_SPEC_STRING:
355 //  * @pspec: a valid #GParamSpec instance
356 //  *
357 //  * Casts a #GParamSpec instance into a #GParamSpecString.
358 //  */
359 // #define G_PARAM_SPEC_STRING(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString))
360 //
361 // /**
362 //  * G_TYPE_PARAM_PARAM:
363 //  *
364 //  * The #GType of #GParamSpecParam.
365 //  */
366 // #define	G_TYPE_PARAM_PARAM		   (g_param_spec_types[15])
367 // /**
368 //  * G_IS_PARAM_SPEC_PARAM:
369 //  * @pspec: a valid #GParamSpec instance
370 //  *
371 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_PARAM.
372 //  *
373 //  * Returns: %TRUE on success.
374 //  */
375 // #define G_IS_PARAM_SPEC_PARAM(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM))
376 // /**
377 //  * G_PARAM_SPEC_PARAM:
378 //  * @pspec: a valid #GParamSpec instance
379 //  *
380 //  * Casts a #GParamSpec instance into a #GParamSpecParam.
381 //  */
382 // #define G_PARAM_SPEC_PARAM(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam))
383 //
384 // /**
385 //  * G_TYPE_PARAM_BOXED:
386 //  *
387 //  * The #GType of #GParamSpecBoxed.
388 //  */
389 // #define	G_TYPE_PARAM_BOXED		   (g_param_spec_types[16])
390 // /**
391 //  * G_IS_PARAM_SPEC_BOXED:
392 //  * @pspec: a valid #GParamSpec instance
393 //  *
394 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOXED.
395 //  *
396 //  * Returns: %TRUE on success.
397 //  */
398 // #define G_IS_PARAM_SPEC_BOXED(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED))
399 // /**
400 //  * G_PARAM_SPEC_BOXED:
401 //  * @pspec: a valid #GParamSpec instance
402 //  *
403 //  * Cast a #GParamSpec instance into a #GParamSpecBoxed.
404 //  */
405 // #define G_PARAM_SPEC_BOXED(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed))
406 //
407 // /**
408 //  * G_TYPE_PARAM_POINTER:
409 //  *
410 //  * The #GType of #GParamSpecPointer.
411 //  */
412 // #define	G_TYPE_PARAM_POINTER		   (g_param_spec_types[17])
413 // /**
414 //  * G_IS_PARAM_SPEC_POINTER:
415 //  * @pspec: a valid #GParamSpec instance
416 //  *
417 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_POINTER.
418 //  *
419 //  * Returns: %TRUE on success.
420 //  */
421 // #define G_IS_PARAM_SPEC_POINTER(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER))
422 // /**
423 //  * G_PARAM_SPEC_POINTER:
424 //  * @pspec: a valid #GParamSpec instance
425 //  *
426 //  * Casts a #GParamSpec instance into a #GParamSpecPointer.
427 //  */
428 // #define G_PARAM_SPEC_POINTER(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer))
429 //
430 // /**
431 //  * G_TYPE_PARAM_VALUE_ARRAY:
432 //  *
433 //  * The #GType of #GParamSpecValueArray.
434 //  *
435 //  * Deprecated: 2.32: Use #GArray instead of #GValueArray
436 //  */
437 // #define	G_TYPE_PARAM_VALUE_ARRAY	   (g_param_spec_types[18])
438 // /**
439 //  * G_IS_PARAM_SPEC_VALUE_ARRAY:
440 //  * @pspec: a valid #GParamSpec instance
441 //  *
442 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VALUE_ARRAY.
443 //  *
444 //  * Returns: %TRUE on success.
445 //  *
446 //  * Deprecated: 2.32: Use #GArray instead of #GValueArray
447 //  */
448 // #define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY))
449 // /**
450 //  * G_PARAM_SPEC_VALUE_ARRAY:
451 //  * @pspec: a valid #GParamSpec instance
452 //  *
453 //  * Cast a #GParamSpec instance into a #GParamSpecValueArray.
454 //  *
455 //  * Deprecated: 2.32: Use #GArray instead of #GValueArray
456 //  */
457 // #define G_PARAM_SPEC_VALUE_ARRAY(pspec)    (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray))
458 //
459 // /**
460 //  * G_TYPE_PARAM_OBJECT:
461 //  *
462 //  * The #GType of #GParamSpecObject.
463 //  */
464 // #define	G_TYPE_PARAM_OBJECT		   (g_param_spec_types[19])
465 // /**
466 //  * G_IS_PARAM_SPEC_OBJECT:
467 //  * @pspec: a valid #GParamSpec instance
468 //  *
469 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OBJECT.
470 //  *
471 //  * Returns: %TRUE on success.
472 //  */
473 // #define G_IS_PARAM_SPEC_OBJECT(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
474 // /**
475 //  * G_PARAM_SPEC_OBJECT:
476 //  * @pspec: a valid #GParamSpec instance
477 //  *
478 //  * Casts a #GParamSpec instance into a #GParamSpecObject.
479 //  */
480 // #define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
481 //
482 // /**
483 //  * G_TYPE_PARAM_OVERRIDE:
484 //  *
485 //  * The #GType of #GParamSpecOverride.
486 //  *
487 //  * Since: 2.4
488 //  */
489 // #define	G_TYPE_PARAM_OVERRIDE		   (g_param_spec_types[20])
490 // /**
491 //  * G_IS_PARAM_SPEC_OVERRIDE:
492 //  * @pspec: a #GParamSpec
493 //  *
494 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OVERRIDE.
495 //  *
496 //  * Since: 2.4
497 //  * Returns: %TRUE on success.
498 //  */
499 // #define G_IS_PARAM_SPEC_OVERRIDE(pspec)    (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE))
500 // /**
501 //  * G_PARAM_SPEC_OVERRIDE:
502 //  * @pspec: a #GParamSpec
503 //  *
504 //  * Casts a #GParamSpec into a #GParamSpecOverride.
505 //  *
506 //  * Since: 2.4
507 //  */
508 // #define G_PARAM_SPEC_OVERRIDE(pspec)       (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride))
509 //
510 // /**
511 //  * G_TYPE_PARAM_GTYPE:
512 //  *
513 //  * The #GType of #GParamSpecGType.
514 //  *
515 //  * Since: 2.10
516 //  */
517 // #define	G_TYPE_PARAM_GTYPE		   (g_param_spec_types[21])
518 // /**
519 //  * G_IS_PARAM_SPEC_GTYPE:
520 //  * @pspec: a #GParamSpec
521 //  *
522 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_GTYPE.
523 //  *
524 //  * Since: 2.10
525 //  * Returns: %TRUE on success.
526 //  */
527 // #define G_IS_PARAM_SPEC_GTYPE(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE))
528 // /**
529 //  * G_PARAM_SPEC_GTYPE:
530 //  * @pspec: a #GParamSpec
531 //  *
532 //  * Casts a #GParamSpec into a #GParamSpecGType.
533 //  *
534 //  * Since: 2.10
535 //  */
536 // #define G_PARAM_SPEC_GTYPE(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType))
537 //
538 // /**
539 //  * G_TYPE_PARAM_VARIANT:
540 //  *
541 //  * The #GType of #GParamSpecVariant.
542 //  *
543 //  * Since: 2.26
544 //  */
545 // #define G_TYPE_PARAM_VARIANT                (g_param_spec_types[22])
546 // /**
547 //  * G_IS_PARAM_SPEC_VARIANT:
548 //  * @pspec: a #GParamSpec
549 //  *
550 //  * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VARIANT.
551 //  *
552 //  * Returns: %TRUE on success
553 //  *
554 //  * Since: 2.26
555 //  */
556 // #define G_IS_PARAM_SPEC_VARIANT(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT))
557 // /**
558 //  * G_PARAM_SPEC_VARIANT:
559 //  * @pspec: a #GParamSpec
560 //  *
561 //  * Casts a #GParamSpec into a #GParamSpecVariant.
562 //  *
563 //  * Since: 2.26
564 //  */
565 // #define G_PARAM_SPEC_VARIANT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant))
566 
567 extern (C):
568 
569 struct GParamSpecChar
570 {
571   GParamSpec    parent_instance;
572 
573   gint8         minimum;
574   gint8         maximum;
575   gint8         default_value;
576 }
577 
578 struct GParamSpecUChar
579 {
580   GParamSpec    parent_instance;
581 
582   guint8        minimum;
583   guint8        maximum;
584   guint8        default_value;
585 }
586 
587 struct GParamSpecBoolean
588 {
589   GParamSpec    parent_instance;
590 
591   gboolean      default_value;
592 }
593 
594 struct GParamSpecInt
595 {
596   GParamSpec    parent_instance;
597 
598   gint          minimum;
599   gint          maximum;
600   gint          default_value;
601 }
602 
603 struct GParamSpecUInt
604 {
605   GParamSpec    parent_instance;
606 
607   guint         minimum;
608   guint         maximum;
609   guint         default_value;
610 }
611 
612 struct GParamSpecLong
613 {
614   GParamSpec    parent_instance;
615 
616   glong         minimum;
617   glong         maximum;
618   glong         default_value;
619 }
620 
621 struct GParamSpecULong
622 {
623   GParamSpec    parent_instance;
624 
625   gulong        minimum;
626   gulong        maximum;
627   gulong        default_value;
628 }
629 
630 struct GParamSpecInt64
631 {
632   GParamSpec    parent_instance;
633 
634   gint64        minimum;
635   gint64        maximum;
636   gint64        default_value;
637 }
638 
639 struct GParamSpecUInt64
640 {
641   GParamSpec    parent_instance;
642 
643   guint64       minimum;
644   guint64       maximum;
645   guint64       default_value;
646 }
647 
648 struct GParamSpecUnichar
649 {
650   GParamSpec    parent_instance;
651 
652   gunichar      default_value;
653 }
654 
655 struct GParamSpecEnum
656 {
657   GParamSpec    parent_instance;
658 
659   GEnumClass   *enum_class;
660   gint          default_value;
661 }
662 
663 struct GParamSpecFlags
664 {
665   GParamSpec    parent_instance;
666 
667   GFlagsClass  *flags_class;
668   guint         default_value;
669 }
670 
671 struct GParamSpecFloat
672 {
673   GParamSpec    parent_instance;
674 
675   gfloat        minimum;
676   gfloat        maximum;
677   gfloat        default_value;
678   gfloat        epsilon;
679 }
680 
681 struct GParamSpecDouble
682 {
683   GParamSpec    parent_instance;
684 
685   gdouble       minimum;
686   gdouble       maximum;
687   gdouble       default_value;
688   gdouble       epsilon;
689 }
690 
691 struct GParamSpecString
692 {
693   GParamSpec    parent_instance;
694 
695   gchar        *default_value;
696   gchar        *cset_first;
697   gchar        *cset_nth;
698   gchar         substitutor;
699   mixin(bitfields!(
700                    guint, "null_fold_if_empty", 1,
701                    guint, "ensure_non_null", 1,
702                    guint, "", 6));
703 }
704 
705 struct GParamSpecParam
706 {
707   GParamSpec    parent_instance;
708 }
709 
710 struct GParamSpecBoxed
711 {
712   GParamSpec    parent_instance;
713 };
714 
715 struct GParamSpecPointer
716 {
717   GParamSpec    parent_instance;
718 }
719 
720 struct GParamSpecValueArray
721 {
722   GParamSpec    parent_instance;
723   GParamSpec   *element_spec;
724   guint		fixed_n_elements;
725 }
726 
727 struct GParamSpecObject
728 {
729   GParamSpec    parent_instance;
730 }
731 
732 struct GParamSpecOverride
733 {
734   /*< private >*/
735   GParamSpec    parent_instance;
736   GParamSpec   *overridden;
737 }
738 
739 struct GParamSpecGType
740 {
741   GParamSpec    parent_instance;
742   GType         is_a_type;
743 }
744 
745 struct GParamSpecVariant
746 {
747   GParamSpec    parent_instance;
748   GVariantType *type;
749   GVariant     *default_value;
750 
751   /*< private >*/
752   gpointer      padding[4];
753 }
754 
755 
756 GParamSpec*	g_param_spec_char	 (const(gchar)	 *name,
757 					  const(gchar)	 *nick,
758 					  const(gchar)	 *blurb,
759 					  gint8		  minimum,
760 					  gint8		  maximum,
761 					  gint8		  default_value,
762 					  GParamFlags	  flags);
763 
764 GParamSpec*	g_param_spec_uchar	 (const(gchar)	 *name,
765 					  const(gchar)	 *nick,
766 					  const(gchar)	 *blurb,
767 					  guint8	  minimum,
768 					  guint8	  maximum,
769 					  guint8	  default_value,
770 					  GParamFlags	  flags);
771 
772 GParamSpec*	g_param_spec_boolean	 (const(gchar)	 *name,
773 					  const(gchar)	 *nick,
774 					  const(gchar)	 *blurb,
775 					  gboolean	  default_value,
776 					  GParamFlags	  flags);
777 
778 GParamSpec*	g_param_spec_int	 (const(gchar)	 *name,
779 					  const(gchar)	 *nick,
780 					  const(gchar)	 *blurb,
781 					  gint		  minimum,
782 					  gint		  maximum,
783 					  gint		  default_value,
784 					  GParamFlags	  flags);
785 
786 GParamSpec*	g_param_spec_uint	 (const(gchar)	 *name,
787 					  const(gchar)	 *nick,
788 					  const(gchar)	 *blurb,
789 					  guint		  minimum,
790 					  guint		  maximum,
791 					  guint		  default_value,
792 					  GParamFlags	  flags);
793 
794 GParamSpec*	g_param_spec_long	 (const(gchar)	 *name,
795 					  const(gchar)	 *nick,
796 					  const(gchar)	 *blurb,
797 					  glong		  minimum,
798 					  glong		  maximum,
799 					  glong		  default_value,
800 					  GParamFlags	  flags);
801 
802 GParamSpec*	g_param_spec_ulong	 (const(gchar)	 *name,
803 					  const(gchar)	 *nick,
804 					  const(gchar)	 *blurb,
805 					  gulong	  minimum,
806 					  gulong	  maximum,
807 					  gulong	  default_value,
808 					  GParamFlags	  flags);
809 
810 GParamSpec*	g_param_spec_int64	 (const(gchar)	 *name,
811 					  const(gchar)	 *nick,
812 					  const(gchar)	 *blurb,
813 					  gint64       	  minimum,
814 					  gint64       	  maximum,
815 					  gint64       	  default_value,
816 					  GParamFlags	  flags);
817 
818 GParamSpec*	g_param_spec_uint64	 (const(gchar)	 *name,
819 					  const(gchar)	 *nick,
820 					  const(gchar)	 *blurb,
821 					  guint64	  minimum,
822 					  guint64	  maximum,
823 					  guint64	  default_value,
824 					  GParamFlags	  flags);
825 
826 GParamSpec*	g_param_spec_unichar      (const(gchar)    *name,
827 				          const(gchar)    *nick,
828 				          const(gchar)    *blurb,
829 				          gunichar	  default_value,
830 				          GParamFlags     flags);
831 
832 GParamSpec*	g_param_spec_enum	 (const(gchar)	 *name,
833 					  const(gchar)	 *nick,
834 					  const(gchar)	 *blurb,
835 					  GType		  enum_type,
836 					  gint		  default_value,
837 					  GParamFlags	  flags);
838 
839 GParamSpec*	g_param_spec_flags	 (const(gchar)	 *name,
840 					  const(gchar)	 *nick,
841 					  const(gchar)	 *blurb,
842 					  GType		  flags_type,
843 					  guint		  default_value,
844 					  GParamFlags	  flags);
845 
846 GParamSpec*	g_param_spec_float	 (const(gchar)	 *name,
847 					  const(gchar)	 *nick,
848 					  const(gchar)	 *blurb,
849 					  gfloat	  minimum,
850 					  gfloat	  maximum,
851 					  gfloat	  default_value,
852 					  GParamFlags	  flags);
853 
854 GParamSpec*	g_param_spec_double	 (const(gchar)	 *name,
855 					  const(gchar)	 *nick,
856 					  const(gchar)	 *blurb,
857 					  gdouble	  minimum,
858 					  gdouble	  maximum,
859 					  gdouble	  default_value,
860 					  GParamFlags	  flags);
861 
862 GParamSpec*	g_param_spec_string	 (const(gchar)	 *name,
863 					  const(gchar)	 *nick,
864 					  const(gchar)	 *blurb,
865 					  const(gchar)	 *default_value,
866 					  GParamFlags	  flags);
867 
868 GParamSpec*	g_param_spec_param	 (const(gchar)	 *name,
869 					  const(gchar)	 *nick,
870 					  const(gchar)	 *blurb,
871 					  GType		  param_type,
872 					  GParamFlags	  flags);
873 
874 GParamSpec*	g_param_spec_boxed	 (const(gchar)	 *name,
875 					  const(gchar)	 *nick,
876 					  const(gchar)	 *blurb,
877 					  GType		  boxed_type,
878 					  GParamFlags	  flags);
879 
880 GParamSpec*	g_param_spec_pointer	 (const(gchar)	 *name,
881 					  const(gchar)	 *nick,
882 					  const(gchar)	 *blurb,
883 					  GParamFlags	  flags);
884 
885 GParamSpec*	g_param_spec_value_array (const(gchar)	 *name,
886 					  const(gchar)	 *nick,
887 					  const(gchar)	 *blurb,
888 					  GParamSpec	 *element_spec,
889 					  GParamFlags	  flags);
890 
891 GParamSpec*	g_param_spec_object	 (const(gchar)	 *name,
892 					  const(gchar)	 *nick,
893 					  const(gchar)	 *blurb,
894 					  GType		  object_type,
895 					  GParamFlags	  flags);
896 
897 GParamSpec*	g_param_spec_override    (const(gchar)    *name,
898 					  GParamSpec     *overridden);
899 
900 GParamSpec*	g_param_spec_gtype	 (const(gchar)	 *name,
901 					  const(gchar)	 *nick,
902 					  const(gchar)	 *blurb,
903 					  GType           is_a_type,
904 					  GParamFlags	  flags);
905 
906 GParamSpec*	g_param_spec_variant	 (const(gchar)        *name,
907 					  const(gchar)        *nick,
908 					  const(gchar)	     *blurb,
909 					  const(GVariantType) *type,
910 					  GVariant           *default_value,
911 					  GParamFlags         flags);
912 
913 
914 extern __gshared GType *g_param_spec_types;
915