// GetPropertyType returns the Type of a property of the underlying GObject. // If the property is missing it will return TYPE_INVALID and an error. func (v *Object) GetPropertyType(name string) (Type, error) { cstr := C.CString(name) defer C.free(unsafe.Pointer(cstr)) paramSpec := C.g_object_class_find_property(C._g_object_get_class(v.native()), (*C.gchar)(cstr)) if paramSpec == nil { return TYPE_INVALID, errors.New("couldn't find Property") } return Type(paramSpec.value_type), nil }
func FindProperty(obj ObjectLike, propName string) *GParamSpec { cpn := GString(propName) defer cpn.Free() oc := C.get_object_class(obj.ToNative()) pspec := C.g_object_class_find_property(oc, (*C.gchar)(cpn.GetPtr())) if pspec == nil { return nil } gpspec := GParamSpec{pspec} return &gpspec }