Exemplo n.º 1
0
GHashTable *
Type::CopyProperties (bool inherited)
{
	GHashTable *props = g_hash_table_new (g_str_hash, g_str_equal);
	Type *type = this;
	
	do {
		if (type->properties)
			g_hash_table_foreach (type->properties, property_add, props);
		
		if (!inherited || !type->HasParent ())
			break;
		
		type = type->GetParentType ();
	} while (type);
	
	return props;
}
Exemplo n.º 2
0
DependencyProperty *
DependencyProperty::GetDependencyPropertyFull (Type::Kind type, const char *name, bool inherits)
{
	DependencyProperty *property;
	Type *t = Type::Find (Deployment::GetCurrent (), type);
	
	if (t == NULL)
		return NULL;
		
	property = GetDependencyProperty (t, name, inherits);
	
	if (property == NULL) {
		if (inherits)
			property = GetDependencyProperty (t, name, false);
		if (property == NULL && t->HasParent ())
			return GetDependencyPropertyFull (t->GetParentType (), name, inherits);
	}

	return property;
}