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
)