Added timeouts
[cl-gtk2.git] / glib / gobject.ffi.lisp
1 (in-package :gobject.ffi)
2
3 (defcfun (g-type-fundamental "g_type_fundamental") g-type-designator
4   "Returns the fundamental type which is the ancestor of @code{type}.
5
6 Example:
7 @pre{
8 \(g-type-fundamental \"GtkWindowType\")
9 => \"GEnum\"
10 \(g-type-fundamental \"GtkLabel\")
11 => \"GObject\"
12 }
13 @arg[type]{GType designator (see @class{g-type-designator})}
14 @return{GType designator}"
15   (type g-type-designator))
16
17 (defcfun (%g-type-init "g_type_init") :void)
18
19 (at-init () (%g-type-init))
20
21 (defcfun (g-type-name "g_type_name") :string
22   "Returns the name of a GType.@see{g-type-from-name}
23
24 Example:
25 @pre{
26 \(g-type-from-name \"GtkLabel\")
27 => 7151952
28 \(g-type-name 7151952)
29 => \"GtkLabel\"
30 }
31 @arg[type]{GType designator (see @class{g-type-designator})}
32 @return{a string}"
33   (type g-type-designator))
34
35 (defcfun (g-type-from-name "g_type_from_name") g-type
36   "Returns the numeric identifier of a GType by its name. @see{g-type-name}
37
38 Example:
39 @pre{
40 \(g-type-from-name \"GtkLabel\")
41 => 7151952
42 \(g-type-name 7151952)
43 => \"GtkLabel\"
44 }
45 @arg[name]{a string - name of GType}
46 @return{an integer}"
47   (name :string))
48
49 (defcfun g-type-parent g-type-designator
50   "Returns the parent of a GType. @see{g-type-chilren}
51
52 Example:
53 @pre{
54 \(g-type-parent \"GtkLabel\")
55 => \"GtkMisc\"
56 }
57 @arg[type]{GType designator (see @class{g-type-designator})}
58 @return{GType designator}"
59   (type g-type-designator))
60
61 (defcfun g-type-depth :uint
62   "Returns the length of the ancestry of @code{type}. This includes the @code{type} itself, so that e.g. a fundamental type has depth 1.
63
64 Example:
65 @pre{
66 \(g-type-depth \"GtkLabel\")
67 => 6
68 }
69 @arg[type]{GType designator (see @class{g-type-designator})}
70 @return{an integer}"
71   (type g-type-designator))
72
73 (defcfun g-type-next-base g-type-designator
74   "Determines the type that is derived directly from @code{root-type} which is also a base class of @code{leaf-type}.
75
76 Example:
77 @pre{
78 \(g-type-next-base \"GtkButton\" \"GtkWidget\")
79 => \"GtkContainer\"
80 }
81 @arg[leaf-type]{GType designator (see @class{g-type-designator})}
82 @arg[root-type]{GType designator}
83 @return{GType designator}"
84   (leaf-type g-type-designator)
85   (root-type g-type-designator))
86
87 (defcfun g-type-is-a :boolean
88   "If @code{is-a-type} is a derivable type, check whether type is a descendant of @code{is-a-type}. If @code{is-a-type} is an interface, check whether type conforms to it.
89
90 Example:
91 @pre{
92 \(g-type-is-a \"GtkButton\" \"GtkWidget\")
93 => T
94 \(g-type-is-a \"GtkButton\" \"AtkImplementorIface\")
95 => T
96 \(g-type-is-a \"GtkButton\" \"GtkLabel\")
97 => NIL
98 }
99 @arg[type]{GType designator (see @class{g-type-designator})}
100 @arg[is-a-type]{GType designator}
101 @return{boolean}"
102   (type g-type-designator)
103   (is-a-type g-type-designator))
104
105 (defcfun (%g-type-children "g_type_children") (:pointer g-type)
106   (type g-type-designator)
107   (n-children (:pointer :uint)))
108
109 (defcfun (%g-type-interface-prerequisites "g_type_interface_prerequisites") (:pointer g-type)
110   (type g-type-designator)
111   (n-interface-prerequisites (:pointer :uint)))
112
113 (defcfun g-strv-get-type g-type-designator
114   "Returns the type designator (see @class{g-type-designator}) for GStrv type. As a side effect, ensures that the type is registered.")
115
116 (at-init nil (g-strv-get-type))
117
118 (defcfun g-closure-get-type g-type-designator
119   "Returns the type designator (see @class{g-type-designator}) for GClosure type. As a side effect, ensure that the type is registered.")
120
121 (at-init nil (g-closure-get-type))
122
123 (defcfun (%g-type-interfaces "g_type_interfaces") (:pointer g-type)
124   (type g-type-designator)
125   (n-interfaces (:pointer :uint)))
126
127 (defcstruct g-type-interface
128   (:type g-type-designator)
129   (:instance-type g-type-designator))
130
131 (defcstruct g-type-class
132   (:type g-type-designator))
133
134 (defcstruct g-type-instance
135   (:class (:pointer g-type-class)))
136
137 (defcstruct g-type-info
138   (:class-size :uint16)
139   (:base-init-fn :pointer)
140   (:base-finalize-fn :pointer)
141   (:class-init-fn :pointer)
142   (:class-finalize-fn :pointer)
143   (:class-data :pointer)
144   (:instance-size :uint16)
145   (:n-preallocs :uint16)
146   (:instance-init-fn :pointer)
147   (:value-table :pointer))
148
149 (defcstruct g-type-query
150   (:type g-type-designator)
151   (:type-name (:string :free-from-foreign nil))
152   (:class-size :uint)
153   (:instance-size :uint))
154
155 (defbitfield g-type-fundamental-flags
156   :classed
157   :instantiatable
158   :derivable
159   :deep-derivable)
160
161 (defcstruct g-type-fundamental-info
162   (:type-flags g-type-fundamental-flags))
163
164 (defcstruct g-interface-info
165   (:interface-init :pointer)
166   (:interface-finalize :pointer)
167   (:interface-data :pointer))
168
169 (defcstruct g-type-value-table
170   (:value-init :pointer)
171   (:value-free :pointer)
172   (:value-copy :pointer)
173   (:value-peek-pointer :pointer)
174   (:collect-format (:string :free-from-foreign nil :free-to-foreign nil))
175   (:collect-value :pointer)
176   (:lcopy-format (:string :free-from-foreign nil :free-to-foreign nil))
177   (:lcopy-value :pointer))
178
179 (defbitfield g-type-flags
180   (:abstract #. (ash 1 4))
181   :value-abstract)
182
183 (defcstruct %g-object
184   (:type-instance g-type-instance)
185   (:ref-count :uint)
186   (:data :pointer))
187
188 (defctype %g-initially-unowned %g-object)
189
190 (defcstruct g-object-class
191   (:type-class g-type-class)
192   (:construct-properties :pointer)
193   (:constructor :pointer)
194   (:set-property :pointer)
195   (:get-property :pointer)
196   (:dispose :pointer)
197   (:finalize :pointer)
198   (:dispatch-properties-changed :pointer)
199   (:notify :pointer)
200   (:constructed :pointer)
201   (:pdummy :pointer :count 7))
202
203 (defbitfield g-param-flags
204   :readable
205   :writable
206   :construct
207   :construct-only
208   :lax-validation
209   :static-name
210   :nick
211   :blurb)
212
213 (defcstruct g-param-spec
214   (:type-instance g-type-instance)
215   (:name (:string :free-from-foreign nil :free-to-foreign nil))
216   (:flags g-param-flags)
217   (:value-type g-type-designator)
218   (:owner-type g-type-designator))
219
220 (defcunion g-value-data
221   (:int :int)
222   (:uint :uint)
223   (:long :long)
224   (:ulong :ulong)
225   (:int64 :int64)
226   (:uint64 :uint64)
227   (:float :float)
228   (:double :double)
229   (:pointer :pointer))
230
231 (defcstruct g-value
232   (:type g-type-designator)
233   (:data g-value-data :count 2))
234
235 (defcstruct g-object-construct-param
236   (:param-spec (:pointer g-param-spec))
237   (:value (:pointer g-value)))
238
239 (defcstruct g-parameter
240   (:name (:string :free-from-foreign nil :free-to-foreign nil))
241   (:value g-value))
242
243 (defcstruct g-enum-value
244   (:value :int)
245   (:name (:string :free-from-foreign nil :free-to-foreign nil))
246   (:nick (:string :free-from-foreign nil :free-to-foreign nil)))
247
248 (defcstruct g-enum-class
249   (:type-class g-type-class)
250   (:minimum :int)
251   (:maximum :int)
252   (:n-values :uint)
253   (:values (:pointer g-enum-value)))
254
255 (defcstruct g-flags-value
256   (:value :uint)
257   (:name (:string :free-from-foreign nil :free-to-foreign nil))
258   (:nick (:string :free-from-foreign nil :free-to-foreign nil)))
259
260 (defcstruct g-flags-class
261   (:type-class g-type-class)
262   (:mask :uint)
263   (:n-values :uint)
264   (:values (:pointer g-flags-value)))
265
266 (defcstruct g-param-spec-boolean
267   (:parent-instance g-param-spec)
268   (:default-value :boolean))
269
270 (defcstruct g-param-spec-char
271   (:parent-instance g-param-spec)
272   (:minimum :int8)
273   (:maximum :int8)
274   (:default-value :int8))
275
276 (defcstruct g-param-spec-uchar
277   (:parent-instance g-param-spec)
278   (:minimum :uint8)
279   (:maximum :uint8)
280   (:default-value :uint8))
281
282 (defcstruct g-param-spec-int
283   (:parent-instance g-param-spec)
284   (:minimum :int)
285   (:maximum :int)
286   (:default-value :int))
287
288 (defcstruct g-param-spec-uint
289   (:parent-instance g-param-spec)
290   (:minimum :uint)
291   (:maximum :uint)
292   (:default-value :uint))
293
294 (defcstruct g-param-spec-long
295   (:parent-instance g-param-spec)
296   (:minimum :long)
297   (:maximum :long)
298   (:default-value :ulong))
299
300 (defcstruct g-param-spec-ulong
301   (:parent-instance g-param-spec)
302   (:minimum :ulong)
303   (:maximum :ulong)
304   (:default-value :ulong))
305
306 (defcstruct g-param-spec-int64
307   (:parent-instance g-param-spec)
308   (:minimum :uint64)
309   (:maximum :uint64)
310   (:default-value :uint64))
311
312 (defcstruct g-param-spec-uint64
313   (:parent-instance g-param-spec)
314   (:minimum :uint64)
315   (:maximum :uint64)
316   (:default-value :uint64))
317
318 (defcstruct g-param-spec-float
319   (:parent-instance g-param-spec)
320   (:minimum :float)
321   (:maximum :float)
322   (:default-value :float)
323   (:epsilon :float))
324
325 (defcstruct g-param-spec-double
326   (:parent-instance g-param-spec)
327   (:minimum :double)
328   (:maximum :double)
329   (:default-value :double)
330   (:epsilon :double))
331
332 (defcstruct g-param-spec-enum
333   (:parent-instance g-param-spec)
334   (:enum-class (:pointer g-enum-class))
335   (:default-value :int))
336
337 (defcstruct g-param-spec-flags
338   (:parent-instance g-param-spec)
339   (:flags-class (:pointer g-flags-class))
340   (:default-value :uint))
341
342 (defcstruct g-param-spec-string
343   (:parent-instance g-param-spec)
344   (:default-value (:string :free-to-foreign nil :free-from-foreign nil))
345   (:cset-first (:string :free-to-foreign nil :free-from-foreign nil))
346   (:cset-nth (:string :free-to-foreign nil :free-from-foreign nil))
347   (:substitutor :char)
348   (:flags-for-null :uint))
349
350 (defcstruct g-param-spec-param
351   (:parent-instance g-param-spec))
352
353 (defcstruct g-param-spec-boxed
354   (:parent-instance g-param-spec))
355
356 (defcstruct g-param-spec-pointer
357   (:parent-instance g-param-spec))
358
359 (defcstruct g-param-spec-object
360   (:parent-instance g-param-spec))
361
362 (defcstruct g-param-spec-value-array
363   (:parent-instance g-param-spec)
364   (:element-spec (:pointer g-param-spec))
365   (:fixed-n-elements :uint))
366
367 (defcstruct g-param-spec-g-type
368   (:parent-instance g-param-spec)
369   (:types-root g-type-designator))
370
371 (defcstruct g-param-spec-class
372   (:type-class g-type-class)
373   (:value-type g-type-designator)
374   (:finalize :pointer)
375   (:value-set-default :pointer)
376   (:value-validate :pointer)
377   (:values-cmp :pointer))
378
379 (defcstruct g-closure
380   (:private-data :uint32)
381   (:marshal :pointer)
382   (:data :pointer)
383   (:notifiers :pointer))
384
385 (defcfun g-type-class-ref (:pointer g-type-class)
386   (type g-type-designator))
387
388 (defcfun g-type-class-unref :void
389   (class (:pointer g-type-class)))
390
391 (defcfun g-type-class-add-private :void
392   (class (:pointer g-type-class))
393   (private-size gsize))
394
395 (defcfun g-type-register-static g-type-designator
396   (parent-type g-type-designator)
397   (type-name :string)
398   (info (:pointer g-type-info))
399   (flags g-type-flags))
400
401 (defcfun g-type-register-static-simple g-type-designator
402   (parent-type g-type-designator)
403   (type-name :string)
404   (class-size :uint)
405   (class-init :pointer)
406   (instance-size :uint)
407   (instance-init :pointer)
408   (flags g-type-flags))
409
410 (defcfun g-type-add-interface-static :void
411   (instance-type g-type-designator)
412   (interface-type g-type-designator)
413   (info (:pointer g-interface-info)))
414
415 (defcfun g-type-interface-add-prerequisite :void
416   (interface-type g-type-designator)
417   (prerequisite-type g-type-designator))
418
419 (defcfun g-type-query :void
420   (type g-type-designator)
421   (query (:pointer g-type-query)))
422
423 (defcfun g-type-default-interface-ref :pointer
424   (type g-type-designator))
425
426 (defcfun g-type-default-interface-unref :void
427   (interface :pointer))
428
429 (defcfun g-boxed-copy :pointer
430   (boxed-type g-type-designator)
431   (src-boxed :pointer))
432
433 (defcfun g-boxed-free :void
434   (boxed-type g-type-designator)
435   (boxed :pointer))
436
437 (defcfun g-boxed-type-register-static g-type-designator
438   (name :string)
439   (copy-fn :pointer)
440   (free-fn :pointer))
441
442 (defcfun g-pointer-type-register-static g-type-designator
443   (name :string))
444
445 (defcfun g-closure-ref (:pointer g-closure)
446   (closure (:pointer g-closure)))
447
448 (defcfun g-closure-sink :void
449   (closure (:pointer g-closure)))
450
451 (defcfun g-closure-unref :void
452   (closure (:pointer g-closure)))
453
454 (defcfun g-closure-invalidate :void
455   (closure (:pointer g-closure)))
456
457 (defcfun g-closure-add-finalize-notifier :void
458   (closure (:pointer g-closure))
459   (notify-data :pointer)
460   (notify-func :pointer))
461
462 (defcfun g-closure-add-invalidate-notifier :void
463   (closure (:pointer g-closure))
464   (notify-data :pointer)
465   (notify-func :pointer))
466
467 (defcfun g-closure-new-simple (:pointer g-closure)
468   (sizeof-closure :uint)
469   (data :pointer))
470
471 (defcfun g-closure-set-marshal :void
472   (closure (:pointer g-closure))
473   (marshal :pointer))
474
475 (defcfun g-enum-register-static g-type-designator
476   (name :string)
477   (static-values (:pointer g-enum-value)))
478
479 (defcfun g-flags-register-static g-type-designator
480   (name :string)
481   (static-values (:pointer g-flags-value)))
482
483 (defcfun g-param-spec-boolean (:pointer g-param-spec-boolean)
484   (name :string)
485   (nick :string)
486   (blurb :string)
487   (default-value :boolean)
488   (flags g-param-flags))
489
490 (defcfun g-value-set-boolean :void
491   (g-value (:pointer g-value))
492   (new-value :boolean))
493
494 (defcfun g-value-get-boolean :boolean
495   (g-value (:pointer g-value)))
496
497 (defcfun g-param-spec-char (:pointer g-param-spec-char)
498   (name :string)
499   (nick :string)
500   (blurb :string)
501   (minimum :int8)
502   (maximum :int8)
503   (default-value :int8)
504   (flags g-param-flags))
505
506 (defcfun g-value-set-char :void
507   (g-value (:pointer g-value))
508   (new-value :char))
509
510 (defcfun g-value-get-char :char
511   (g-value (:pointer g-value)))
512
513 (defcfun g-param-spec-uchar (:pointer g-param-spec-uchar)
514   (name :string)
515   (nick :string)
516   (blurb :string)
517   (minimum :uint8)
518   (maximum :uint8)
519   (default-value :uint8)
520   (flags g-param-flags))
521
522 (defcfun g-value-set-uchar :void
523   (g-value (:pointer g-value))
524   (new-value :uchar))
525
526 (defcfun g-value-get-uchar :uchar
527   (g-value (:pointer g-value)))
528
529 (defcfun g-param-spec-int (:pointer g-param-spec-int)
530   (name :string)
531   (nick :string)
532   (blurb :string)
533   (minimum :int)
534   (maximum :int)
535   (default-value :int)
536   (flags g-param-flags))
537
538 (defcfun g-value-set-int :void
539   (g-value (:pointer g-value))
540   (new-value :int))
541
542 (defcfun g-value-get-int :int
543   (g-value (:pointer g-value)))
544
545 (defcfun g-param-spec-uint (:pointer g-param-spec-uint)
546   (name :string)
547   (nick :string)
548   (blurb :string)
549   (minimum :uint)
550   (maximum :uint)
551   (default-value :uint)
552   (flags g-param-flags))
553
554 (defcfun g-value-set-uint :void
555   (g-value (:pointer g-value))
556   (new-value :uint))
557
558 (defcfun g-value-get-uint :uint
559   (g-value (:pointer g-value)))
560
561 (defcfun g-param-spec-long (:pointer g-param-spec-long)
562   (name :string)
563   (nick :string)
564   (blurb :string)
565   (minimum :long)
566   (maximum :long)
567   (default-value :long)
568   (flags g-param-flags))
569
570 (defcfun g-value-set-long :void
571   (g-value (:pointer g-value))
572   (new-value :long))
573
574 (defcfun g-value-get-long :long
575   (g-value (:pointer g-value)))
576
577 (defcfun g-param-spec-ulong (:pointer g-param-spec-ulong)
578   (name :string)
579   (nick :string)
580   (blurb :string)
581   (minimum :ulong)
582   (maximum :ulong)
583   (default-value :ulong)
584   (flags g-param-flags))
585
586 (defcfun g-value-set-ulong :void
587   (g-value (:pointer g-value))
588   (new-value :ulong))
589
590 (defcfun g-value-get-ulong :ulong
591   (g-value (:pointer g-value)))
592
593 (defcfun g-param-spec-int64 (:pointer g-param-spec-int64)
594   (name :string)
595   (nick :string)
596   (blurb :string)
597   (minimum :int64)
598   (maximum :int64)
599   (default-value :int64)
600   (flags g-param-flags))
601
602 (defcfun g-value-set-int64 :void
603   (g-value (:pointer g-value))
604   (new-value :int64))
605
606 (defcfun g-value-get-int64 :int64
607   (g-value (:pointer g-value)))
608
609 (defcfun g-param-spec-uint64 (:pointer g-param-spec-uint64)
610   (name :string)
611   (nick :string)
612   (blurb :string)
613   (minimum :uint64)
614   (maximum :uint64)
615   (default-value :uint64)
616   (flags g-param-flags))
617
618 (defcfun g-value-set-uint64 :void
619   (g-value (:pointer g-value))
620   (new-value :uint64))
621
622 (defcfun g-value-get-uint64 :uint64
623   (g-value (:pointer g-value)))
624
625 (defcfun g-param-spec-float (:pointer g-param-spec-float)
626   (name :string)
627   (nick :string)
628   (blurb :string)
629   (minimum :float)
630   (maximum :float)
631   (default-value :float)
632   (flags g-param-flags))
633
634 (defcfun g-value-set-float :void
635   (g-value (:pointer g-value))
636   (new-value :float))
637
638 (defcfun g-value-get-float :float
639   (g-value (:pointer g-value)))
640
641 (defcfun g-param-spec-double (:pointer g-param-spec-double)
642   (name :string)
643   (nick :string)
644   (blurb :string)
645   (minimum :double)
646   (maximum :double)
647   (default-value :double)
648   (flags g-param-flags))
649
650 (defcfun g-value-set-double :void
651   (g-value (:pointer g-value))
652   (new-value :double))
653
654 (defcfun g-value-get-double :double
655   (g-value (:pointer g-value)))
656
657 (defcfun g-param-spec-enum (:pointer g-param-spec-enum)
658   (name :string)
659   (nick :string)
660   (blurb :string)
661   (enum-type g-type-designator)
662   (default-value :int)
663   (flags g-param-flags))
664
665 (defcfun g-value-set-enum :void
666   (g-value (:pointer g-value))
667   (new-value :int))
668
669 (defcfun g-value-get-enum :int
670   (g-value (:pointer g-value)))
671
672 (defcfun g-param-spec-flags (:pointer g-param-spec-flags)
673   (name :string)
674   (nick :string)
675   (blurb :string)
676   (flags-type g-type-designator)
677   (default-value :int)
678   (flags g-param-flags))
679
680 (defcfun g-value-set-flags :void
681   (g-value (:pointer g-value))
682   (new-value :int))
683
684 (defcfun g-value-get-flags :int
685   (g-value (:pointer g-value)))
686
687 (defcfun g-param-spec-string (:pointer g-param-spec-string)
688   (name :string)
689   (nick :string)
690   (blurb :string)
691   (default-value :string)
692   (flags g-param-flags))
693
694 (defcfun g-value-set-string :void
695   (g-value (:pointer g-value))
696   (new-value :string))
697
698 (defcfun g-value-get-string (:string :free-from-foreign nil)
699   (g-value (:pointer g-value)))
700
701 (defcfun g-param-spec-param (:pointer g-param-spec-param)
702   (name :string)
703   (nick :string)
704   (blurb :string)
705   (param-type g-type-designator)
706   (flags g-param-flags))
707
708 (defcfun g-value-set-param :void
709   (g-value (:pointer g-value))
710   (new-value (:pointer g-param-spec)))
711
712 (defcfun g-value-get-param (:pointer g-param-spec)
713   (g-value (:pointer g-value)))
714
715 (defcfun g-param-spec-boxed (:pointer g-param-spec-boxed)
716   (name :string)
717   (nick :string)
718   (blurb :string)
719   (boxed-type g-type-designator)
720   (flags g-param-flags))
721
722 (defcfun g-value-set-boxed :void
723   (g-value (:pointer g-value))
724   (new-value :pointer))
725
726 (defcfun g-value-take-boxed :void
727   (g-value (:pointer g-value))
728   (new-value :pointer))
729
730 (defcfun g-value-get-boxed :pointer
731   (g-value (:pointer g-value)))
732
733 (defcfun g-param-spec-pointer (:pointer g-param-spec-pointer)
734   (name :string)
735   (nick :string)
736   (blurb :string)
737   (flags g-param-flags))
738
739 (defcfun g-value-set-pointer :void
740   (g-value (:pointer g-value))
741   (new-value :pointer))
742
743 (defcfun g-value-get-pointer :pointer
744   (g-value (:pointer g-value)))
745
746 (defcfun g-param-spec-object (:pointer g-param-spec-object)
747   (name :string)
748   (nick :string)
749   (blurb :string)
750   (object-type g-type-designator)
751   (flags g-param-flags))
752
753 (defcfun g-value-set-object :void
754   (g-value (:pointer g-value))
755   (new-value :pointer))
756
757 (defcfun g-value-get-object :pointer
758   (g-value (:pointer g-value)))
759
760 (defcfun g-param-spec-value-array (:pointer g-param-spec-value-array)
761   (name :string)
762   (nick :string)
763   (blurb :string)
764   (element-spec (:pointer g-param-spec))
765   (flags g-param-flags))
766
767 (defcfun (g-param-spec-g-type "g_param_spec_gtype") (:pointer g-param-spec-g-type)
768   (name :string)
769   (nick :string)
770   (blurb :string)
771   (types-root g-type-designator)
772   (flags g-param-flags))
773
774 (defcfun (g-value-set-g-type "g_value_set_gtype") :void
775   (g-value (:pointer g-value))
776   (new-value g-type-designator))
777
778 (defcfun (g-value-get-g-type "g_value_get_gtype") g-type-designator
779   (g-value (:pointer g-value)))
780
781 (defcfun g-param-spec-ref-sink (:pointer g-param-spec)
782   (param-spec (:pointer g-param-spec)))
783
784 (defcfun g-param-spec-unref :void
785   (param-spec (:pointer g-param-spec)))
786
787 (defcfun g-param-value-set-default :void
788   (param-spec (:pointer g-param-spec))
789   (value (:pointer g-value)))
790
791 (defcfun g-param-value-defaults :boolean
792   (param-spec (:pointer g-param-spec))
793   (value (:pointer g-value)))
794
795 (defcfun g-param-value-validate :boolean
796   (param-spec (:pointer g-param-spec))
797   (value (:pointer g-value)))
798
799 (defcfun g-param-spec-get-name :string
800   (param-spec (:pointer g-param-spec)))
801
802 (defcfun g-param-spec-get-nick :string
803   (param-spec (:pointer g-param-spec)))
804
805 (defcfun g-param-spec-get-blurb :string
806   (param-spec (:pointer g-param-spec)))
807
808 (defcfun g-value-init (:pointer g-value)
809   "Initializes the GValue @code{value} with the default value of @code{type}
810
811 @arg[value]{a C pointer to the GValue structure}
812 @arg[type]{an integer specifying the GType}"
813   (value (:pointer g-value))
814   (type g-type-designator))
815
816 (defcfun g-value-copy :void
817   (src-value (:pointer g-value))
818   (dst-value (:pointer g-value)))
819
820 (defcfun g-value-reset (:pointer g-value)
821   (value (:pointer g-value)))
822
823 (defcfun g-value-unset (:pointer g-value)
824   "Clears the current value in @code{value} and \"unsets\" the type, releasing all resources associated with this GValue. An unset value is the same as an unitialized GValue.
825
826 @arg[value]{a C pointer to the GValue structure}"
827   (value (:pointer g-value)))
828
829 (defcfun g-value-set-instance :void
830   (value (:pointer g-value))
831   (instance :pointer))
832
833 (defcfun g-strdup-value-contents :string
834   (value (:pointer g-value)))
835
836 (defcfun g-object-class-install-property :void
837   (class (:pointer g-object-class))
838   (property-id :uint)
839   (param-spec (:pointer g-param-spec)))
840
841 (defcfun g-object-class-find-property (:pointer g-param-spec)
842   (class (:pointer g-object-class))
843   (property-name :string))
844
845 (defcfun g-object-class-list-properties (:pointer (:pointer g-param-spec))
846   (class (:pointer g-object-class))
847   (n-properties (:pointer :uint)))
848
849 (defcfun g-object-class-override-property :void
850   (class (:pointer g-object-class))
851   (property-id :uint)
852   (name :string))
853
854 (defcfun g-object-interface-install-property :void
855   (interface :pointer)
856   (param-spec (:pointer g-param-spec)))
857
858 (defcfun g-object-interface-find-property (:pointer g-param-spec)
859   (interface :pointer)
860   (property-name :string))
861
862 (defcfun g-object-interface-list-properties (:pointer g-param-spec)
863   (interface :pointer)
864   (n-properties (:pointer :uint)))
865
866 (defcfun g-object-newv :pointer
867   (object-type g-type-designator)
868   (n-parameter :uint)
869   (parameters (:pointer g-parameter)))
870
871 (defcfun g-object-ref :pointer
872   (object :pointer))
873
874 (defcfun g-object-unref :void
875   (object :pointer))
876
877 (defcfun g-object-ref-sink :pointer
878   (object :pointer))
879
880 (defcfun g-object-is-floating :boolean
881   (object :pointer))
882
883 (defcfun g-object-force-floating :void
884   (object :pointer))
885
886 (defcfun g-object-weak-ref :void
887   (object :pointer)
888   (notify :pointer)
889   (data :pointer))
890
891 (defcfun g-object-weak-unref :void
892   (object :pointer)
893   (notify :pointer)
894   (data :pointer))
895
896 (defcfun g-object-add-toggle-ref :void
897   (object :pointer)
898   (notifty :pointer)
899   (data :pointer))
900
901 (defcfun g-object-remove-toggle-ref :void
902   (object :pointer)
903   (notifty :pointer)
904   (data :pointer))
905
906 (defcfun g-object-notify :void
907   (object :pointer)
908   (property-name :string))
909
910 (defcfun g-object-freeze-notify :void
911   (object :pointer))
912
913 (defcfun g-object-thaw-notify :void
914   (object :pointer))
915
916 (defcfun g-object-get-data :pointer
917   (object :pointer)
918   (key :string))
919
920 (defcfun g-object-set-data :void
921   (object :pointer)
922   (key :string)
923   (new-value :pointer))
924
925 (defcfun g-object-set-data-full :void
926   (object :pointer)
927   (key :string)
928   (data :pointer)
929   (destory :pointer))
930
931 (defcfun g-object-steal-data :pointer
932   (object :pointer)
933   (key :string))
934
935 (defcfun g-object-set-property :void
936   (object :pointer)
937   (property-name :string)
938   (value (:pointer g-value)))
939
940 (defcfun g-object-get-property :void
941   (object :pointer)
942   (property-name :string)
943   (value (:pointer g-value)))
944
945 (defcfun g-signal-connect-closure :ulong
946   (instance :pointer)
947   (detailed-signal :string)
948   (closure (:pointer g-closure))
949   (after :boolean))
950
951 (defcfun g-signal-emitv :void
952   (instance-and-params (:pointer g-value))
953   (signal-id :uint)
954   (detail g-quark)
955   (return-value (:pointer g-value)))
956
957 (defcfun g-signal-lookup :uint
958   (name :string)
959   (type g-type-designator))
960
961 (defbitfield g-signal-flags
962   :run-first :run-last :run-cleanup :no-recurse :detailed :action :no-hooks)
963
964 (defcstruct g-signal-query
965   (:signal-id :uint)
966   (:signal-name :string)
967   (:owner-type g-type-designator)
968   (:signal-flags g-signal-flags)
969   (:return-type (g-type-designator :mangled-p t))
970   (:n-params :uint)
971   (:param-types (:pointer (g-type-designator :mangled-p t))))
972
973 (defcfun g-signal-query :void
974   (signal-id :uint)
975   (query (:pointer g-signal-query)))
976
977 (defcfun g-signal-list-ids (:pointer :uint)
978   (type g-type-designator)
979   (n-ids (:pointer :uint)))
980
981 (defcfun g-signal-parse-name :boolean
982   (detailed-signal :string)
983   (owner-type g-type-designator)
984   (signal-id-ptr (:pointer :uint))
985   (detail-ptr (:pointer g-quark))
986   (force-detail-quark :boolean))
987
988 (defcstruct g-object-struct
989   (:type-instance g-type-instance)
990   (:ref-count :uint)
991   (:qdata :pointer))