1 (in-package :gobject.ffi)
3 (defcfun (g-type-fundamental "g_type_fundamental") g-type-designator
4 "Returns the fundamental type which is the ancestor of @code{type}.
8 \(g-type-fundamental \"GtkWindowType\")
10 \(g-type-fundamental \"GtkLabel\")
13 @arg[type]{GType designator (see @class{g-type-designator})}
14 @return{GType designator}"
15 (type g-type-designator))
17 (defcfun (%g-type-init "g_type_init") :void)
19 (at-init () (%g-type-init))
21 (defcfun g-type-parent g-type-designator
22 "Returns the parent of a GType. @see{g-type-chilren}
26 \(g-type-parent \"GtkLabel\")
29 @arg[type]{GType designator (see @class{g-type-designator})}
30 @return{GType designator}"
31 (type g-type-designator))
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.
38 \(g-type-depth \"GtkLabel\")
41 @arg[type]{GType designator (see @class{g-type-designator})}
43 (type g-type-designator))
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}.
50 \(g-type-next-base \"GtkButton\" \"GtkWidget\")
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))
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.
64 \(g-type-is-a \"GtkButton\" \"GtkWidget\")
66 \(g-type-is-a \"GtkButton\" \"AtkImplementorIface\")
68 \(g-type-is-a \"GtkButton\" \"GtkLabel\")
71 @arg[type]{GType designator (see @class{g-type-designator})}
72 @arg[is-a-type]{GType designator}
74 (type g-type-designator)
75 (is-a-type g-type-designator))
77 (defcfun (%g-type-children "g_type_children") (:pointer g-type)
78 (type g-type-designator)
79 (n-children (:pointer :uint)))
81 (defcfun (%g-type-interface-prerequisites "g_type_interface_prerequisites") (:pointer g-type)
82 (type g-type-designator)
83 (n-interface-prerequisites (:pointer :uint)))
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.")
88 (at-init nil (g-strv-get-type))
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.")
93 (at-init nil (g-closure-get-type))
95 (defcfun (%g-type-interfaces "g_type_interfaces") (:pointer g-type)
96 (type g-type-designator)
97 (n-interfaces (:pointer :uint)))
99 (defcstruct g-type-interface
100 (:type g-type-designator)
101 (:instance-type g-type-designator))
103 (defcstruct g-type-class
104 (:type g-type-designator))
106 (defcstruct g-type-instance
107 (:class (:pointer g-type-class)))
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))
121 (defcstruct g-type-query
122 (:type g-type-designator)
123 (:type-name (:string :free-from-foreign nil))
125 (:instance-size :uint))
127 (defbitfield g-type-fundamental-flags
133 (defcstruct g-type-fundamental-info
134 (:type-flags g-type-fundamental-flags))
136 (defcstruct g-interface-info
137 (:interface-init :pointer)
138 (:interface-finalize :pointer)
139 (:interface-data :pointer))
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))
151 (defbitfield g-type-flags
152 (:abstract #. (ash 1 4))
155 (defcstruct %g-object
156 (:type-instance g-type-instance)
160 (defctype %g-initially-unowned %g-object)
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)
170 (:dispatch-properties-changed :pointer)
172 (:constructed :pointer)
173 (:pdummy :pointer :count 7))
175 (defbitfield g-param-flags
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))
192 (defcunion g-value-data
204 (:type g-type-designator)
205 (:data g-value-data :count 2))
207 (defcstruct g-object-construct-param
208 (:param-spec (:pointer g-param-spec))
209 (:value (:pointer g-value)))
211 (defcstruct g-parameter
212 (:name (:string :free-from-foreign nil :free-to-foreign nil))
215 (defcstruct g-enum-value
217 (:name (:string :free-from-foreign nil :free-to-foreign nil))
218 (:nick (:string :free-from-foreign nil :free-to-foreign nil)))
220 (defcstruct g-enum-class
221 (:type-class g-type-class)
225 (:values (:pointer g-enum-value)))
227 (defcstruct g-flags-value
229 (:name (:string :free-from-foreign nil :free-to-foreign nil))
230 (:nick (:string :free-from-foreign nil :free-to-foreign nil)))
232 (defcstruct g-flags-class
233 (:type-class g-type-class)
236 (:values (:pointer g-flags-value)))
238 (defcstruct g-param-spec-boolean
239 (:parent-instance g-param-spec)
240 (:default-value :boolean))
242 (defcstruct g-param-spec-char
243 (:parent-instance g-param-spec)
246 (:default-value :int8))
248 (defcstruct g-param-spec-uchar
249 (:parent-instance g-param-spec)
252 (:default-value :uint8))
254 (defcstruct g-param-spec-int
255 (:parent-instance g-param-spec)
258 (:default-value :int))
260 (defcstruct g-param-spec-uint
261 (:parent-instance g-param-spec)
264 (:default-value :uint))
266 (defcstruct g-param-spec-long
267 (:parent-instance g-param-spec)
270 (:default-value :ulong))
272 (defcstruct g-param-spec-ulong
273 (:parent-instance g-param-spec)
276 (:default-value :ulong))
278 (defcstruct g-param-spec-int64
279 (:parent-instance g-param-spec)
282 (:default-value :uint64))
284 (defcstruct g-param-spec-uint64
285 (:parent-instance g-param-spec)
288 (:default-value :uint64))
290 (defcstruct g-param-spec-float
291 (:parent-instance g-param-spec)
294 (:default-value :float)
297 (defcstruct g-param-spec-double
298 (:parent-instance g-param-spec)
301 (:default-value :double)
304 (defcstruct g-param-spec-enum
305 (:parent-instance g-param-spec)
306 (:enum-class (:pointer g-enum-class))
307 (:default-value :int))
309 (defcstruct g-param-spec-flags
310 (:parent-instance g-param-spec)
311 (:flags-class (:pointer g-flags-class))
312 (:default-value :uint))
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))
320 (:flags-for-null :uint))
322 (defcstruct g-param-spec-param
323 (:parent-instance g-param-spec))
325 (defcstruct g-param-spec-boxed
326 (:parent-instance g-param-spec))
328 (defcstruct g-param-spec-pointer
329 (:parent-instance g-param-spec))
331 (defcstruct g-param-spec-object
332 (:parent-instance g-param-spec))
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))
339 (defcstruct g-param-spec-g-type
340 (:parent-instance g-param-spec)
341 (:types-root g-type-designator))
343 (defcstruct g-param-spec-class
344 (:type-class g-type-class)
345 (:value-type g-type-designator)
347 (:value-set-default :pointer)
348 (:value-validate :pointer)
349 (:values-cmp :pointer))
351 (defcstruct g-closure
352 (:private-data :uint32)
355 (:notifiers :pointer))
357 (defcfun g-type-class-ref (:pointer g-type-class)
358 (type g-type-designator))
360 (defcfun g-type-class-unref :void
361 (class (:pointer g-type-class)))
363 (defcfun g-type-class-add-private :void
364 (class (:pointer g-type-class))
365 (private-size gsize))
367 (defcfun g-type-register-static g-type-designator
368 (parent-type g-type-designator)
370 (info (:pointer g-type-info))
371 (flags g-type-flags))
373 (defcfun g-type-register-static-simple g-type-designator
374 (parent-type g-type-designator)
377 (class-init :pointer)
378 (instance-size :uint)
379 (instance-init :pointer)
380 (flags g-type-flags))
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)))
387 (defcfun g-type-interface-add-prerequisite :void
388 (interface-type g-type-designator)
389 (prerequisite-type g-type-designator))
391 (defcfun g-type-query :void
392 (type g-type-designator)
393 (query (:pointer g-type-query)))
395 (defcfun g-type-default-interface-ref :pointer
396 (type g-type-designator))
398 (defcfun g-type-default-interface-unref :void
399 (interface :pointer))
401 (defcfun g-boxed-copy :pointer
402 (boxed-type g-type-designator)
403 (src-boxed :pointer))
405 (defcfun g-boxed-free :void
406 (boxed-type g-type-designator)
409 (defcfun g-boxed-type-register-static g-type-designator
414 (defcfun g-pointer-type-register-static g-type-designator
417 (defcfun g-closure-ref (:pointer g-closure)
418 (closure (:pointer g-closure)))
420 (defcfun g-closure-sink :void
421 (closure (:pointer g-closure)))
423 (defcfun g-closure-unref :void
424 (closure (:pointer g-closure)))
426 (defcfun g-closure-invalidate :void
427 (closure (:pointer g-closure)))
429 (defcfun g-closure-add-finalize-notifier :void
430 (closure (:pointer g-closure))
431 (notify-data :pointer)
432 (notify-func :pointer))
434 (defcfun g-closure-add-invalidate-notifier :void
435 (closure (:pointer g-closure))
436 (notify-data :pointer)
437 (notify-func :pointer))
439 (defcfun g-closure-new-simple (:pointer g-closure)
440 (sizeof-closure :uint)
443 (defcfun g-closure-set-marshal :void
444 (closure (:pointer g-closure))
447 (defcfun g-enum-register-static g-type-designator
449 (static-values (:pointer g-enum-value)))
451 (defcfun g-flags-register-static g-type-designator
453 (static-values (:pointer g-flags-value)))
455 (defcfun g-param-spec-boolean (:pointer g-param-spec-boolean)
459 (default-value :boolean)
460 (flags g-param-flags))
462 (defcfun g-value-set-boolean :void
463 (g-value (:pointer g-value))
464 (new-value :boolean))
466 (defcfun g-value-get-boolean :boolean
467 (g-value (:pointer g-value)))
469 (defcfun g-param-spec-char (:pointer g-param-spec-char)
475 (default-value :int8)
476 (flags g-param-flags))
478 (defcfun g-value-set-char :void
479 (g-value (:pointer g-value))
482 (defcfun g-value-get-char :char
483 (g-value (:pointer g-value)))
485 (defcfun g-param-spec-uchar (:pointer g-param-spec-uchar)
491 (default-value :uint8)
492 (flags g-param-flags))
494 (defcfun g-value-set-uchar :void
495 (g-value (:pointer g-value))
498 (defcfun g-value-get-uchar :uchar
499 (g-value (:pointer g-value)))
501 (defcfun g-param-spec-int (:pointer g-param-spec-int)
508 (flags g-param-flags))
510 (defcfun g-value-set-int :void
511 (g-value (:pointer g-value))
514 (defcfun g-value-get-int :int
515 (g-value (:pointer g-value)))
517 (defcfun g-param-spec-uint (:pointer g-param-spec-uint)
523 (default-value :uint)
524 (flags g-param-flags))
526 (defcfun g-value-set-uint :void
527 (g-value (:pointer g-value))
530 (defcfun g-value-get-uint :uint
531 (g-value (:pointer g-value)))
533 (defcfun g-param-spec-long (:pointer g-param-spec-long)
539 (default-value :long)
540 (flags g-param-flags))
542 (defcfun g-value-set-long :void
543 (g-value (:pointer g-value))
546 (defcfun g-value-get-long :long
547 (g-value (:pointer g-value)))
549 (defcfun g-param-spec-ulong (:pointer g-param-spec-ulong)
555 (default-value :ulong)
556 (flags g-param-flags))
558 (defcfun g-value-set-ulong :void
559 (g-value (:pointer g-value))
562 (defcfun g-value-get-ulong :ulong
563 (g-value (:pointer g-value)))
565 (defcfun g-param-spec-int64 (:pointer g-param-spec-int64)
571 (default-value :int64)
572 (flags g-param-flags))
574 (defcfun g-value-set-int64 :void
575 (g-value (:pointer g-value))
578 (defcfun g-value-get-int64 :int64
579 (g-value (:pointer g-value)))
581 (defcfun g-param-spec-uint64 (:pointer g-param-spec-uint64)
587 (default-value :uint64)
588 (flags g-param-flags))
590 (defcfun g-value-set-uint64 :void
591 (g-value (:pointer g-value))
594 (defcfun g-value-get-uint64 :uint64
595 (g-value (:pointer g-value)))
597 (defcfun g-param-spec-float (:pointer g-param-spec-float)
603 (default-value :float)
604 (flags g-param-flags))
606 (defcfun g-value-set-float :void
607 (g-value (:pointer g-value))
610 (defcfun g-value-get-float :float
611 (g-value (:pointer g-value)))
613 (defcfun g-param-spec-double (:pointer g-param-spec-double)
619 (default-value :double)
620 (flags g-param-flags))
622 (defcfun g-value-set-double :void
623 (g-value (:pointer g-value))
626 (defcfun g-value-get-double :double
627 (g-value (:pointer g-value)))
629 (defcfun g-param-spec-enum (:pointer g-param-spec-enum)
633 (enum-type g-type-designator)
635 (flags g-param-flags))
637 (defcfun g-value-set-enum :void
638 (g-value (:pointer g-value))
641 (defcfun g-value-get-enum :int
642 (g-value (:pointer g-value)))
644 (defcfun g-param-spec-flags (:pointer g-param-spec-flags)
648 (flags-type g-type-designator)
650 (flags g-param-flags))
652 (defcfun g-value-set-flags :void
653 (g-value (:pointer g-value))
656 (defcfun g-value-get-flags :int
657 (g-value (:pointer g-value)))
659 (defcfun g-param-spec-string (:pointer g-param-spec-string)
663 (default-value :string)
664 (flags g-param-flags))
666 (defcfun g-value-set-string :void
667 (g-value (:pointer g-value))
670 (defcfun g-value-get-string (:string :free-from-foreign nil)
671 (g-value (:pointer g-value)))
673 (defcfun g-param-spec-param (:pointer g-param-spec-param)
677 (param-type g-type-designator)
678 (flags g-param-flags))
680 (defcfun g-value-set-param :void
681 (g-value (:pointer g-value))
682 (new-value (:pointer g-param-spec)))
684 (defcfun g-value-get-param (:pointer g-param-spec)
685 (g-value (:pointer g-value)))
687 (defcfun g-param-spec-boxed (:pointer g-param-spec-boxed)
691 (boxed-type g-type-designator)
692 (flags g-param-flags))
694 (defcfun g-value-set-boxed :void
695 (g-value (:pointer g-value))
696 (new-value :pointer))
698 (defcfun g-value-take-boxed :void
699 (g-value (:pointer g-value))
700 (new-value :pointer))
702 (defcfun g-value-get-boxed :pointer
703 (g-value (:pointer g-value)))
705 (defcfun g-param-spec-pointer (:pointer g-param-spec-pointer)
709 (flags g-param-flags))
711 (defcfun g-value-set-pointer :void
712 (g-value (:pointer g-value))
713 (new-value :pointer))
715 (defcfun g-value-get-pointer :pointer
716 (g-value (:pointer g-value)))
718 (defcfun g-param-spec-object (:pointer g-param-spec-object)
722 (object-type g-type-designator)
723 (flags g-param-flags))
725 (defcfun g-value-set-object :void
726 (g-value (:pointer g-value))
727 (new-value :pointer))
729 (defcfun g-value-get-object :pointer
730 (g-value (:pointer g-value)))
732 (defcfun g-param-spec-value-array (:pointer g-param-spec-value-array)
736 (element-spec (:pointer g-param-spec))
737 (flags g-param-flags))
739 (defcfun (g-param-spec-g-type "g_param_spec_gtype") (:pointer g-param-spec-g-type)
743 (types-root g-type-designator)
744 (flags g-param-flags))
746 (defcfun (g-value-set-g-type "g_value_set_gtype") :void
747 (g-value (:pointer g-value))
748 (new-value g-type-designator))
750 (defcfun (g-value-get-g-type "g_value_get_gtype") g-type-designator
751 (g-value (:pointer g-value)))
753 (defcfun g-param-spec-ref-sink (:pointer g-param-spec)
754 (param-spec (:pointer g-param-spec)))
756 (defcfun g-param-spec-unref :void
757 (param-spec (:pointer g-param-spec)))
759 (defcfun g-param-value-set-default :void
760 (param-spec (:pointer g-param-spec))
761 (value (:pointer g-value)))
763 (defcfun g-param-value-defaults :boolean
764 (param-spec (:pointer g-param-spec))
765 (value (:pointer g-value)))
767 (defcfun g-param-value-validate :boolean
768 (param-spec (:pointer g-param-spec))
769 (value (:pointer g-value)))
771 (defcfun g-param-spec-get-name :string
772 (param-spec (:pointer g-param-spec)))
774 (defcfun g-param-spec-get-nick :string
775 (param-spec (:pointer g-param-spec)))
777 (defcfun g-param-spec-get-blurb :string
778 (param-spec (:pointer g-param-spec)))
780 (defcfun g-value-init (:pointer g-value)
781 "Initializes the GValue @code{value} with the default value of @code{type}
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))
788 (defcfun g-value-copy :void
789 (src-value (:pointer g-value))
790 (dst-value (:pointer g-value)))
792 (defcfun g-value-reset (:pointer g-value)
793 (value (:pointer g-value)))
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.
798 @arg[value]{a C pointer to the GValue structure}"
799 (value (:pointer g-value)))
801 (defcfun g-value-set-instance :void
802 (value (:pointer g-value))
805 (defcfun g-strdup-value-contents :string
806 (value (:pointer g-value)))
808 (defcfun g-object-class-install-property :void
809 (class (:pointer g-object-class))
811 (param-spec (:pointer g-param-spec)))
813 (defcfun g-object-class-find-property (:pointer g-param-spec)
814 (class (:pointer g-object-class))
815 (property-name :string))
817 (defcfun g-object-class-list-properties (:pointer (:pointer g-param-spec))
818 (class (:pointer g-object-class))
819 (n-properties (:pointer :uint)))
821 (defcfun g-object-class-override-property :void
822 (class (:pointer g-object-class))
826 (defcfun g-object-interface-install-property :void
828 (param-spec (:pointer g-param-spec)))
830 (defcfun g-object-interface-find-property (:pointer g-param-spec)
832 (property-name :string))
834 (defcfun g-object-interface-list-properties (:pointer g-param-spec)
836 (n-properties (:pointer :uint)))
838 (defcfun g-object-newv :pointer
839 (object-type g-type-designator)
841 (parameters (:pointer g-parameter)))
843 (defcfun g-object-ref :pointer
846 (defcfun g-object-unref :void
849 (defcfun g-object-ref-sink :pointer
852 (defcfun g-object-is-floating :boolean
855 (defcfun g-object-force-floating :void
858 (defcfun g-object-weak-ref :void
863 (defcfun g-object-weak-unref :void
868 (defcfun g-object-add-toggle-ref :void
873 (defcfun g-object-remove-toggle-ref :void
878 (defcfun g-object-notify :void
880 (property-name :string))
882 (defcfun g-object-freeze-notify :void
885 (defcfun g-object-thaw-notify :void
888 (defcfun g-object-get-data :pointer
892 (defcfun g-object-set-data :void
895 (new-value :pointer))
897 (defcfun g-object-set-data-full :void
903 (defcfun g-object-steal-data :pointer
907 (defcfun g-object-set-property :void
909 (property-name :string)
910 (value (:pointer g-value)))
912 (defcfun g-object-get-property :void
914 (property-name :string)
915 (value (:pointer g-value)))
917 (defcfun g-signal-connect-closure :ulong
919 (detailed-signal :string)
920 (closure (:pointer g-closure))
923 (defcfun g-signal-emitv :void
924 (instance-and-params (:pointer g-value))
927 (return-value (:pointer g-value)))
929 (defcfun g-signal-lookup :uint
931 (type g-type-designator))
933 (defbitfield g-signal-flags
934 :run-first :run-last :run-cleanup :no-recurse :detailed :action :no-hooks)
936 (defcstruct g-signal-query
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))
943 (:param-types (:pointer (g-type-designator :mangled-p t))))
945 (defcfun g-signal-query :void
947 (query (:pointer g-signal-query)))
949 (defcfun g-signal-list-ids (:pointer :uint)
950 (type g-type-designator)
951 (n-ids (:pointer :uint)))
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))
960 (defcstruct g-object-struct
961 (:type-instance g-type-instance)