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-name "g_type_name") :string
22 "Returns the name of a GType.@see{g-type-from-name}
26 \(g-type-from-name \"GtkLabel\")
28 \(g-type-name 7151952)
31 @arg[type]{GType designator (see @class{g-type-designator})}
33 (type g-type-designator))
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}
40 \(g-type-from-name \"GtkLabel\")
42 \(g-type-name 7151952)
45 @arg[name]{a string - name of GType}
49 (defcfun g-type-parent g-type-designator
50 "Returns the parent of a GType. @see{g-type-chilren}
54 \(g-type-parent \"GtkLabel\")
57 @arg[type]{GType designator (see @class{g-type-designator})}
58 @return{GType designator}"
59 (type g-type-designator))
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.
66 \(g-type-depth \"GtkLabel\")
69 @arg[type]{GType designator (see @class{g-type-designator})}
71 (type g-type-designator))
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}.
78 \(g-type-next-base \"GtkButton\" \"GtkWidget\")
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))
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.
92 \(g-type-is-a \"GtkButton\" \"GtkWidget\")
94 \(g-type-is-a \"GtkButton\" \"AtkImplementorIface\")
96 \(g-type-is-a \"GtkButton\" \"GtkLabel\")
99 @arg[type]{GType designator (see @class{g-type-designator})}
100 @arg[is-a-type]{GType designator}
102 (type g-type-designator)
103 (is-a-type g-type-designator))
105 (defcfun (%g-type-children "g_type_children") (:pointer g-type)
106 (type g-type-designator)
107 (n-children (:pointer :uint)))
109 (defcfun (%g-type-interface-prerequisites "g_type_interface_prerequisites") (:pointer g-type)
110 (type g-type-designator)
111 (n-interface-prerequisites (:pointer :uint)))
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.")
116 (at-init nil (g-strv-get-type))
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.")
121 (at-init nil (g-closure-get-type))
123 (defcfun (%g-type-interfaces "g_type_interfaces") (:pointer g-type)
124 (type g-type-designator)
125 (n-interfaces (:pointer :uint)))
127 (defcstruct g-type-interface
128 (:type g-type-designator)
129 (:instance-type g-type-designator))
131 (defcstruct g-type-class
132 (:type g-type-designator))
134 (defcstruct g-type-instance
135 (:class (:pointer g-type-class)))
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))
149 (defcstruct g-type-query
150 (:type g-type-designator)
151 (:type-name (:string :free-from-foreign nil))
153 (:instance-size :uint))
155 (defbitfield g-type-fundamental-flags
161 (defcstruct g-type-fundamental-info
162 (:type-flags g-type-fundamental-flags))
164 (defcstruct g-interface-info
165 (:interface-init :pointer)
166 (:interface-finalize :pointer)
167 (:interface-data :pointer))
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))
179 (defbitfield g-type-flags
180 (:abstract #. (ash 1 4))
183 (defcstruct %g-object
184 (:type-instance g-type-instance)
188 (defctype %g-initially-unowned %g-object)
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)
198 (:dispatch-properties-changed :pointer)
200 (:constructed :pointer)
201 (:pdummy :pointer :count 7))
203 (defbitfield g-param-flags
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))
220 (defcunion g-value-data
232 (:type g-type-designator)
233 (:data g-value-data :count 2))
235 (defcstruct g-object-construct-param
236 (:param-spec (:pointer g-param-spec))
237 (:value (:pointer g-value)))
239 (defcstruct g-parameter
240 (:name (:string :free-from-foreign nil :free-to-foreign nil))
243 (defcstruct g-enum-value
245 (:name (:string :free-from-foreign nil :free-to-foreign nil))
246 (:nick (:string :free-from-foreign nil :free-to-foreign nil)))
248 (defcstruct g-enum-class
249 (:type-class g-type-class)
253 (:values (:pointer g-enum-value)))
255 (defcstruct g-flags-value
257 (:name (:string :free-from-foreign nil :free-to-foreign nil))
258 (:nick (:string :free-from-foreign nil :free-to-foreign nil)))
260 (defcstruct g-flags-class
261 (:type-class g-type-class)
264 (:values (:pointer g-flags-value)))
266 (defcstruct g-param-spec-boolean
267 (:parent-instance g-param-spec)
268 (:default-value :boolean))
270 (defcstruct g-param-spec-char
271 (:parent-instance g-param-spec)
274 (:default-value :int8))
276 (defcstruct g-param-spec-uchar
277 (:parent-instance g-param-spec)
280 (:default-value :uint8))
282 (defcstruct g-param-spec-int
283 (:parent-instance g-param-spec)
286 (:default-value :int))
288 (defcstruct g-param-spec-uint
289 (:parent-instance g-param-spec)
292 (:default-value :uint))
294 (defcstruct g-param-spec-long
295 (:parent-instance g-param-spec)
298 (:default-value :ulong))
300 (defcstruct g-param-spec-ulong
301 (:parent-instance g-param-spec)
304 (:default-value :ulong))
306 (defcstruct g-param-spec-int64
307 (:parent-instance g-param-spec)
310 (:default-value :uint64))
312 (defcstruct g-param-spec-uint64
313 (:parent-instance g-param-spec)
316 (:default-value :uint64))
318 (defcstruct g-param-spec-float
319 (:parent-instance g-param-spec)
322 (:default-value :float)
325 (defcstruct g-param-spec-double
326 (:parent-instance g-param-spec)
329 (:default-value :double)
332 (defcstruct g-param-spec-enum
333 (:parent-instance g-param-spec)
334 (:enum-class (:pointer g-enum-class))
335 (:default-value :int))
337 (defcstruct g-param-spec-flags
338 (:parent-instance g-param-spec)
339 (:flags-class (:pointer g-flags-class))
340 (:default-value :uint))
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))
348 (:flags-for-null :uint))
350 (defcstruct g-param-spec-param
351 (:parent-instance g-param-spec))
353 (defcstruct g-param-spec-boxed
354 (:parent-instance g-param-spec))
356 (defcstruct g-param-spec-pointer
357 (:parent-instance g-param-spec))
359 (defcstruct g-param-spec-object
360 (:parent-instance g-param-spec))
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))
367 (defcstruct g-param-spec-g-type
368 (:parent-instance g-param-spec)
369 (:types-root g-type-designator))
371 (defcstruct g-param-spec-class
372 (:type-class g-type-class)
373 (:value-type g-type-designator)
375 (:value-set-default :pointer)
376 (:value-validate :pointer)
377 (:values-cmp :pointer))
379 (defcstruct g-closure
380 (:private-data :uint32)
383 (:notifiers :pointer))
385 (defcfun g-type-class-ref (:pointer g-type-class)
386 (type g-type-designator))
388 (defcfun g-type-class-unref :void
389 (class (:pointer g-type-class)))
391 (defcfun g-type-class-add-private :void
392 (class (:pointer g-type-class))
393 (private-size gsize))
395 (defcfun g-type-register-static g-type-designator
396 (parent-type g-type-designator)
398 (info (:pointer g-type-info))
399 (flags g-type-flags))
401 (defcfun g-type-register-static-simple g-type-designator
402 (parent-type g-type-designator)
405 (class-init :pointer)
406 (instance-size :uint)
407 (instance-init :pointer)
408 (flags g-type-flags))
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)))
415 (defcfun g-type-interface-add-prerequisite :void
416 (interface-type g-type-designator)
417 (prerequisite-type g-type-designator))
419 (defcfun g-type-query :void
420 (type g-type-designator)
421 (query (:pointer g-type-query)))
423 (defcfun g-type-default-interface-ref :pointer
424 (type g-type-designator))
426 (defcfun g-type-default-interface-unref :void
427 (interface :pointer))
429 (defcfun g-boxed-copy :pointer
430 (boxed-type g-type-designator)
431 (src-boxed :pointer))
433 (defcfun g-boxed-free :void
434 (boxed-type g-type-designator)
437 (defcfun g-boxed-type-register-static g-type-designator
442 (defcfun g-pointer-type-register-static g-type-designator
445 (defcfun g-closure-ref (:pointer g-closure)
446 (closure (:pointer g-closure)))
448 (defcfun g-closure-sink :void
449 (closure (:pointer g-closure)))
451 (defcfun g-closure-unref :void
452 (closure (:pointer g-closure)))
454 (defcfun g-closure-invalidate :void
455 (closure (:pointer g-closure)))
457 (defcfun g-closure-add-finalize-notifier :void
458 (closure (:pointer g-closure))
459 (notify-data :pointer)
460 (notify-func :pointer))
462 (defcfun g-closure-add-invalidate-notifier :void
463 (closure (:pointer g-closure))
464 (notify-data :pointer)
465 (notify-func :pointer))
467 (defcfun g-closure-new-simple (:pointer g-closure)
468 (sizeof-closure :uint)
471 (defcfun g-closure-set-marshal :void
472 (closure (:pointer g-closure))
475 (defcfun g-enum-register-static g-type-designator
477 (static-values (:pointer g-enum-value)))
479 (defcfun g-flags-register-static g-type-designator
481 (static-values (:pointer g-flags-value)))
483 (defcfun g-param-spec-boolean (:pointer g-param-spec-boolean)
487 (default-value :boolean)
488 (flags g-param-flags))
490 (defcfun g-value-set-boolean :void
491 (g-value (:pointer g-value))
492 (new-value :boolean))
494 (defcfun g-value-get-boolean :boolean
495 (g-value (:pointer g-value)))
497 (defcfun g-param-spec-char (:pointer g-param-spec-char)
503 (default-value :int8)
504 (flags g-param-flags))
506 (defcfun g-value-set-char :void
507 (g-value (:pointer g-value))
510 (defcfun g-value-get-char :char
511 (g-value (:pointer g-value)))
513 (defcfun g-param-spec-uchar (:pointer g-param-spec-uchar)
519 (default-value :uint8)
520 (flags g-param-flags))
522 (defcfun g-value-set-uchar :void
523 (g-value (:pointer g-value))
526 (defcfun g-value-get-uchar :uchar
527 (g-value (:pointer g-value)))
529 (defcfun g-param-spec-int (:pointer g-param-spec-int)
536 (flags g-param-flags))
538 (defcfun g-value-set-int :void
539 (g-value (:pointer g-value))
542 (defcfun g-value-get-int :int
543 (g-value (:pointer g-value)))
545 (defcfun g-param-spec-uint (:pointer g-param-spec-uint)
551 (default-value :uint)
552 (flags g-param-flags))
554 (defcfun g-value-set-uint :void
555 (g-value (:pointer g-value))
558 (defcfun g-value-get-uint :uint
559 (g-value (:pointer g-value)))
561 (defcfun g-param-spec-long (:pointer g-param-spec-long)
567 (default-value :long)
568 (flags g-param-flags))
570 (defcfun g-value-set-long :void
571 (g-value (:pointer g-value))
574 (defcfun g-value-get-long :long
575 (g-value (:pointer g-value)))
577 (defcfun g-param-spec-ulong (:pointer g-param-spec-ulong)
583 (default-value :ulong)
584 (flags g-param-flags))
586 (defcfun g-value-set-ulong :void
587 (g-value (:pointer g-value))
590 (defcfun g-value-get-ulong :ulong
591 (g-value (:pointer g-value)))
593 (defcfun g-param-spec-int64 (:pointer g-param-spec-int64)
599 (default-value :int64)
600 (flags g-param-flags))
602 (defcfun g-value-set-int64 :void
603 (g-value (:pointer g-value))
606 (defcfun g-value-get-int64 :int64
607 (g-value (:pointer g-value)))
609 (defcfun g-param-spec-uint64 (:pointer g-param-spec-uint64)
615 (default-value :uint64)
616 (flags g-param-flags))
618 (defcfun g-value-set-uint64 :void
619 (g-value (:pointer g-value))
622 (defcfun g-value-get-uint64 :uint64
623 (g-value (:pointer g-value)))
625 (defcfun g-param-spec-float (:pointer g-param-spec-float)
631 (default-value :float)
632 (flags g-param-flags))
634 (defcfun g-value-set-float :void
635 (g-value (:pointer g-value))
638 (defcfun g-value-get-float :float
639 (g-value (:pointer g-value)))
641 (defcfun g-param-spec-double (:pointer g-param-spec-double)
647 (default-value :double)
648 (flags g-param-flags))
650 (defcfun g-value-set-double :void
651 (g-value (:pointer g-value))
654 (defcfun g-value-get-double :double
655 (g-value (:pointer g-value)))
657 (defcfun g-param-spec-enum (:pointer g-param-spec-enum)
661 (enum-type g-type-designator)
663 (flags g-param-flags))
665 (defcfun g-value-set-enum :void
666 (g-value (:pointer g-value))
669 (defcfun g-value-get-enum :int
670 (g-value (:pointer g-value)))
672 (defcfun g-param-spec-flags (:pointer g-param-spec-flags)
676 (flags-type g-type-designator)
678 (flags g-param-flags))
680 (defcfun g-value-set-flags :void
681 (g-value (:pointer g-value))
684 (defcfun g-value-get-flags :int
685 (g-value (:pointer g-value)))
687 (defcfun g-param-spec-string (:pointer g-param-spec-string)
691 (default-value :string)
692 (flags g-param-flags))
694 (defcfun g-value-set-string :void
695 (g-value (:pointer g-value))
698 (defcfun g-value-get-string (:string :free-from-foreign nil)
699 (g-value (:pointer g-value)))
701 (defcfun g-param-spec-param (:pointer g-param-spec-param)
705 (param-type g-type-designator)
706 (flags g-param-flags))
708 (defcfun g-value-set-param :void
709 (g-value (:pointer g-value))
710 (new-value (:pointer g-param-spec)))
712 (defcfun g-value-get-param (:pointer g-param-spec)
713 (g-value (:pointer g-value)))
715 (defcfun g-param-spec-boxed (:pointer g-param-spec-boxed)
719 (boxed-type g-type-designator)
720 (flags g-param-flags))
722 (defcfun g-value-set-boxed :void
723 (g-value (:pointer g-value))
724 (new-value :pointer))
726 (defcfun g-value-take-boxed :void
727 (g-value (:pointer g-value))
728 (new-value :pointer))
730 (defcfun g-value-get-boxed :pointer
731 (g-value (:pointer g-value)))
733 (defcfun g-param-spec-pointer (:pointer g-param-spec-pointer)
737 (flags g-param-flags))
739 (defcfun g-value-set-pointer :void
740 (g-value (:pointer g-value))
741 (new-value :pointer))
743 (defcfun g-value-get-pointer :pointer
744 (g-value (:pointer g-value)))
746 (defcfun g-param-spec-object (:pointer g-param-spec-object)
750 (object-type g-type-designator)
751 (flags g-param-flags))
753 (defcfun g-value-set-object :void
754 (g-value (:pointer g-value))
755 (new-value :pointer))
757 (defcfun g-value-get-object :pointer
758 (g-value (:pointer g-value)))
760 (defcfun g-param-spec-value-array (:pointer g-param-spec-value-array)
764 (element-spec (:pointer g-param-spec))
765 (flags g-param-flags))
767 (defcfun (g-param-spec-g-type "g_param_spec_gtype") (:pointer g-param-spec-g-type)
771 (types-root g-type-designator)
772 (flags g-param-flags))
774 (defcfun (g-value-set-g-type "g_value_set_gtype") :void
775 (g-value (:pointer g-value))
776 (new-value g-type-designator))
778 (defcfun (g-value-get-g-type "g_value_get_gtype") g-type-designator
779 (g-value (:pointer g-value)))
781 (defcfun g-param-spec-ref-sink (:pointer g-param-spec)
782 (param-spec (:pointer g-param-spec)))
784 (defcfun g-param-spec-unref :void
785 (param-spec (:pointer g-param-spec)))
787 (defcfun g-param-value-set-default :void
788 (param-spec (:pointer g-param-spec))
789 (value (:pointer g-value)))
791 (defcfun g-param-value-defaults :boolean
792 (param-spec (:pointer g-param-spec))
793 (value (:pointer g-value)))
795 (defcfun g-param-value-validate :boolean
796 (param-spec (:pointer g-param-spec))
797 (value (:pointer g-value)))
799 (defcfun g-param-spec-get-name :string
800 (param-spec (:pointer g-param-spec)))
802 (defcfun g-param-spec-get-nick :string
803 (param-spec (:pointer g-param-spec)))
805 (defcfun g-param-spec-get-blurb :string
806 (param-spec (:pointer g-param-spec)))
808 (defcfun g-value-init (:pointer g-value)
809 "Initializes the GValue @code{value} with the default value of @code{type}
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))
816 (defcfun g-value-copy :void
817 (src-value (:pointer g-value))
818 (dst-value (:pointer g-value)))
820 (defcfun g-value-reset (:pointer g-value)
821 (value (:pointer g-value)))
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.
826 @arg[value]{a C pointer to the GValue structure}"
827 (value (:pointer g-value)))
829 (defcfun g-value-set-instance :void
830 (value (:pointer g-value))
833 (defcfun g-strdup-value-contents :string
834 (value (:pointer g-value)))
836 (defcfun g-object-class-install-property :void
837 (class (:pointer g-object-class))
839 (param-spec (:pointer g-param-spec)))
841 (defcfun g-object-class-find-property (:pointer g-param-spec)
842 (class (:pointer g-object-class))
843 (property-name :string))
845 (defcfun g-object-class-list-properties (:pointer (:pointer g-param-spec))
846 (class (:pointer g-object-class))
847 (n-properties (:pointer :uint)))
849 (defcfun g-object-class-override-property :void
850 (class (:pointer g-object-class))
854 (defcfun g-object-interface-install-property :void
856 (param-spec (:pointer g-param-spec)))
858 (defcfun g-object-interface-find-property (:pointer g-param-spec)
860 (property-name :string))
862 (defcfun g-object-interface-list-properties (:pointer g-param-spec)
864 (n-properties (:pointer :uint)))
866 (defcfun g-object-newv :pointer
867 (object-type g-type-designator)
869 (parameters (:pointer g-parameter)))
871 (defcfun g-object-ref :pointer
874 (defcfun g-object-unref :void
877 (defcfun g-object-ref-sink :pointer
880 (defcfun g-object-is-floating :boolean
883 (defcfun g-object-force-floating :void
886 (defcfun g-object-weak-ref :void
891 (defcfun g-object-weak-unref :void
896 (defcfun g-object-add-toggle-ref :void
901 (defcfun g-object-remove-toggle-ref :void
906 (defcfun g-object-notify :void
908 (property-name :string))
910 (defcfun g-object-freeze-notify :void
913 (defcfun g-object-thaw-notify :void
916 (defcfun g-object-get-data :pointer
920 (defcfun g-object-set-data :void
923 (new-value :pointer))
925 (defcfun g-object-set-data-full :void
931 (defcfun g-object-steal-data :pointer
935 (defcfun g-object-set-property :void
937 (property-name :string)
938 (value (:pointer g-value)))
940 (defcfun g-object-get-property :void
942 (property-name :string)
943 (value (:pointer g-value)))
945 (defcfun g-signal-connect-closure :ulong
947 (detailed-signal :string)
948 (closure (:pointer g-closure))
951 (defcfun g-signal-emitv :void
952 (instance-and-params (:pointer g-value))
955 (return-value (:pointer g-value)))
957 (defcfun g-signal-lookup :uint
959 (type g-type-designator))
961 (defbitfield g-signal-flags
962 :run-first :run-last :run-cleanup :no-recurse :detailed :action :no-hooks)
964 (defcstruct g-signal-query
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))
971 (:param-types (:pointer (g-type-designator :mangled-p t))))
973 (defcfun g-signal-query :void
975 (query (:pointer g-signal-query)))
977 (defcfun g-signal-list-ids (:pointer :uint)
978 (type g-type-designator)
979 (n-ids (:pointer :uint)))
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))
988 (defcstruct g-object-struct
989 (:type-instance g-type-instance)