Hello folks, I am trying to use a function that takes a GObjectClass as an argument and I'm not sure how to get that using Glib::Object::Introspection.
In particular, I am trying to use the class method `goo_canvas_item_class_list_child_properties()` <https://developer.gnome.org/goocanvas2/stable/GooCanvasItem.html#goo-canvas-item-class-list-child-properties>. It doesn't work if I pass it an instance: 0:main $ GooCanvas2::CanvasItem::class_list_child_properties( GooCanvas2::CanvasTable->new ) (process:23169): GooCanvas-CRITICAL **: goo_canvas_item_class_list_child_properties: assertion 'G_IS_OBJECT_CLASS (iclass)' failed [] Or if I pass it the type name of the instance class or the derived GObjectClass 0:main $ GooCanvas2::CanvasItem::class_list_child_properties( 'GooCanvas2::CanvasTable' ) Runtime error: need a hash ref to convert to struct of type ObjectClass at (eval 438) line 5. 0:main $ GooCanvas2::CanvasItem::class_list_child_properties( 'GooCanvas2::CanvasTableClass' ) Runtime error: need a hash ref to convert to struct of type ObjectClass at (eval 440) line 5. I noticed that the Python GIR bindings are able to work by doing In [2]: from gi.repository import GooCanvas; GooCanvas.CanvasItem.class_list_child_properties( GooCanvas.CanvasTable ) Out[2]: [<GParamDouble 'left-padding'>, <GParamDouble 'right-padding'>, <GParamDouble 'top-padding'>, <GParamDouble 'bottom-padding'>, <GParamDouble 'x-align'>, <GParamDouble 'y-align'>, <GParamUInt 'row'>, <GParamUInt 'column'>, <GParamUInt 'rows'>, <GParamUInt 'columns'>, <GParamBoolean 'x-expand'>, <GParamBoolean 'x-fill'>, <GParamBoolean 'x-shrink'>, <GParamBoolean 'y-expand'>, <GParamBoolean 'y-fill'>, <GParamBoolean 'y-shrink'>] I noticed that Gtk3.pm has overrides for a similar class method in `Gtk3::ContainerClass::list_child_properties` <https://developer.gnome.org/gtk3/stable/GtkContainer.html#gtk-container-class-list-child-properties>, <https://metacpan.org/source/XAOC/Gtk3-0.032/lib/Gtk3.pm#L993>, but that works fine with the name of the container class. 0:main $ 0 + @{ Gtk3::ContainerClass::list_child_properties( 'Gtk3::Table' ) } 8 In case it helps, I noticed that that GIR XML differs in that `gtk_container_class_list_child_properties` specifies a <method> but `goo_canvas_item_class_list_child_properties` specifies a <function>. Regards, - Zaki Mughal _______________________________________________ gtk-perl-list mailing list gtk-perl-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-perl-list