static gboolean gobject_based_p(GIBaseInfo *info) { GIBaseInfo *container_info; GIRegisteredTypeInfo *registered_type_info; container_info = g_base_info_get_container(info); if (g_base_info_get_type(container_info) != GI_INFO_TYPE_STRUCT) { return TRUE; } registered_type_info = (GIRegisteredTypeInfo *)container_info; if (g_registered_type_info_get_type_init(registered_type_info)) { return TRUE; } return FALSE; }
{ const gchar *name; const gchar *type_name; const gchar *type_init; gboolean deprecated; gboolean is_gtype_struct; gboolean foreign; gint i; gint size; int n_elts; name = g_base_info_get_name((GIBaseInfo *) info); deprecated = g_base_info_is_deprecated((GIBaseInfo *) info); type_name = g_registered_type_info_get_type_name((GIRegisteredTypeInfo*) info); type_init = g_registered_type_info_get_type_init((GIRegisteredTypeInfo*) info); if (g_base_info_get_type((GIBaseInfo *) info) == GI_INFO_TYPE_BOXED) { fprintf(file->file, "struct %s //boxed\n{\n", name); } else { fprintf(file->file, "struct %s\n{\n", name); } if (type_name != NULL) xml_printf(file, " glib:type-name=\"%s\" glib:get-type=\"%s\"", type_name, type_init); if (deprecated) xml_printf(file, " deprecated=\"1\"");