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