func (this Type) String() string { cname := C.g_type_name(C.GType(this)) if cname == nil { return "" } return C.GoString((*C.char)(cname)) }
func fromGValue(v *C.GValue) (ret interface{}) { valueType := C.gvalue_get_type(v) fundamentalType := C.gtype_get_fundamental(valueType) switch fundamentalType { case C.G_TYPE_OBJECT: ret = unsafe.Pointer(C.g_value_get_object(v)) case C.G_TYPE_STRING: ret = fromGStr(C.g_value_get_string(v)) case C.G_TYPE_UINT: ret = int(C.g_value_get_uint(v)) case C.G_TYPE_BOXED: ret = unsafe.Pointer(C.g_value_get_boxed(v)) case C.G_TYPE_BOOLEAN: ret = C.g_value_get_boolean(v) == C.gboolean(1) default: fmt.Printf("from type %s %T\n", fromGStr(C.g_type_name(fundamentalType)), v) panic("FIXME") //TODO } return }
// Name is a wrapper around g_type_name(). func (t Type) Name() string { return C.GoString((*C.char)(C.g_type_name(C.GType(t)))) }
func (t Type) String() string { return C.GoString((*C.char)(C.g_type_name(t.g()))) }