code: func (v *Object) SetProperty(name string, value interface{}) error {
  	cstr := C.CString(name)
  	defer C.free(unsafe.Pointer(cstr))
  
  	if _, ok := value.(Object); ok {
  		value = value.(Object).GObject
  	}
  
  	p, err := GValue(value)
  	if err != nil {
  		return errors.New("Unable to perform type conversion")
  	}
  	C.g_object_set_property(v.GObject, (*C.gchar)(cstr), p.native())
  	return nil
  }
docs: // SetProperty is a wrapper around g_object_set_property().