func (o *Object) GetProperty(name string) interface{} { s := C.CString(name) defer C.free(unsafe.Pointer(s)) v := new(Value) C.g_object_get_property(o.g(), (*C.gchar)(s), v.g()) return v.Get() }
func GetProperty(obj ObjectLike, propName string) *GValue { pspec := FindProperty(obj, propName) if pspec == nil { return nil } gv := CreateCGValue(pspec.GetType()) pn := GString(propName) defer pn.Free() C.g_object_get_property(C.to_GObject(obj.ToNative()), (*C.gchar)(pn.GetPtr()), (*C.GValue)(gv.ToCGValue())) return gv }
// GetProperty is a wrapper around g_object_get_property(). func (v *Object) GetProperty(name string) (interface{}, error) { cstr := C.CString(name) defer C.free(unsafe.Pointer(cstr)) t, err := v.GetPropertyType(name) if err != nil { return nil, err } p, err := ValueInit(t) if err != nil { return nil, errors.New("unable to allocate value") } C.g_object_get_property(v.GObject, (*C.gchar)(cstr), p.native()) return p.GoValue() }
/* Gets a property of an object. @value must have been initialized to the expected type of the property (or a type to which the expected type can be transformed) using g_value_init(). In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset(). Note that g_object_get_property() is really intended for language bindings, g_object_get() is much more convenient for C programming. */ func (self *TraitObject) GetProperty(property_name string, value *C.GValue) { __cgo__property_name := (*C.gchar)(unsafe.Pointer(C.CString(property_name))) C.g_object_get_property(self.CPointer, __cgo__property_name, value) C.free(unsafe.Pointer(__cgo__property_name)) return }