Update release

This commit is contained in:
vczh
2016-01-13 23:16:06 -08:00
parent 1053cb526f
commit b4846b38d6
9 changed files with 89 additions and 27 deletions
+1 -1
View File
@@ -43013,7 +43013,7 @@ GuiResourceNodeBase
auto current = parent; auto current = parent;
while (current && current->GetParent()) while (current && current->GetParent())
{ {
resourcePath = parent->GetName() + L"/" + resourcePath; resourcePath = current->GetName() + L"/" + resourcePath;
current = current->GetParent(); current = current->GetParent();
} }
return resourcePath; return resourcePath;
+81 -19
View File
@@ -613,8 +613,34 @@ GuiDefaultInstanceLoader
} }
} }
break; break;
case GuiInstancePropertyInfo::SupportAssign:
case GuiInstancePropertyInfo::SupportArray: case GuiInstancePropertyInfo::SupportArray:
{
auto refArray = MakePtr<WfConstructorExpression>();
FOREACH(ArgumentInfo, item, arguments.GetByIndex(index))
{
auto argument = MakePtr<WfConstructorArgument>();
argument->key = item.expression;
refArray->arguments.Add(argument);
}
auto refValue = MakePtr<WfReferenceExpression>();
refValue->name.value = variableName.ToString();
auto refProp = MakePtr<WfMemberExpression>();
refProp->parent = refValue;
refProp->name.value = prop.ToString();
auto assign = MakePtr<WfBinaryExpression>();
assign->op = WfBinaryOperator::Assign;
assign->first = refProp;
assign->second = refArray;
auto stat = MakePtr<WfExpressionStatement>();
stat->expression = assign;
block->statements.Add(stat);
}
break;
case GuiInstancePropertyInfo::SupportAssign:
{ {
auto refValue = MakePtr<WfReferenceExpression>(); auto refValue = MakePtr<WfReferenceExpression>();
refValue->name.value = variableName.ToString(); refValue->name.value = variableName.ToString();
@@ -3275,6 +3301,7 @@ GuiDocumentViewerInstanceLoader
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
propertyNames.Add(GlobalStringKey::Empty); propertyNames.Add(GlobalStringKey::Empty);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -3318,7 +3345,7 @@ GuiDocumentViewerInstanceLoader
{ {
return block; return block;
} }
return nullptr; return BASE_TYPE::AssignParameters(typeInfo, variableName, arguments, errors);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -3339,6 +3366,7 @@ GuiDocumentLabelInstanceLoader
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
propertyNames.Add(GlobalStringKey::Empty); propertyNames.Add(GlobalStringKey::Empty);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -3382,7 +3410,7 @@ GuiDocumentLabelInstanceLoader
{ {
return block; return block;
} }
return nullptr; return BASE_TYPE::AssignParameters(typeInfo, variableName, arguments, errors);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -3674,6 +3702,7 @@ GuiListViewInstanceLoader
propertyNames.Add(_View); propertyNames.Add(_View);
propertyNames.Add(_IconSize); propertyNames.Add(_IconSize);
} }
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const typename BASE_TYPE::PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const typename BASE_TYPE::PropertyInfo& propertyInfo)override
@@ -3690,7 +3719,7 @@ GuiListViewInstanceLoader
info->scope = GuiInstancePropertyInfo::Constructor; info->scope = GuiInstancePropertyInfo::Constructor;
return info; return info;
} }
return IGuiInstanceLoader::GetPropertyType(propertyInfo); return BASE_TYPE::GetPropertyType(propertyInfo);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -3721,11 +3750,11 @@ GuiListViewInstanceLoader
void GetConstructorParameters(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetConstructorParameters(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
if (typeInfo.typeName == GetTypeName()) if (typeInfo.typeName == GetTypeName())
{ {
propertyNames.Add(_ItemSource); propertyNames.Add(_ItemSource);
} }
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -3808,6 +3837,7 @@ GuiTreeViewInstanceLoader
{ {
propertyNames.Add(_Nodes); propertyNames.Add(_Nodes);
} }
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
void GetConstructorParameters(const typename BASE_TYPE::TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetConstructorParameters(const typename BASE_TYPE::TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
@@ -3817,6 +3847,7 @@ GuiTreeViewInstanceLoader
propertyNames.Add(_Nodes); propertyNames.Add(_Nodes);
propertyNames.Add(_IconSize); propertyNames.Add(_IconSize);
} }
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const typename BASE_TYPE::PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const typename BASE_TYPE::PropertyInfo& propertyInfo)override
@@ -3834,7 +3865,7 @@ GuiTreeViewInstanceLoader
info->scope = GuiInstancePropertyInfo::Constructor; info->scope = GuiInstancePropertyInfo::Constructor;
return info; return info;
} }
return IGuiInstanceLoader::GetPropertyType(propertyInfo); return BASE_TYPE::GetPropertyType(propertyInfo);
} }
Ptr<workflow::WfStatement> AssignParameters(const typename BASE_TYPE::TypeInfo& typeInfo, GlobalStringKey variableName, typename BASE_TYPE::ArgumentMap& arguments, collections::List<WString>& errors)override Ptr<workflow::WfStatement> AssignParameters(const typename BASE_TYPE::TypeInfo& typeInfo, GlobalStringKey variableName, typename BASE_TYPE::ArgumentMap& arguments, collections::List<WString>& errors)override
@@ -3874,7 +3905,7 @@ GuiTreeViewInstanceLoader
{ {
return block; return block;
} }
return nullptr; return BASE_TYPE::AssignParameters(typeInfo, variableName, arguments, errors);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -3905,11 +3936,11 @@ GuiTreeViewInstanceLoader
void GetConstructorParameters(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetConstructorParameters(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
if (typeInfo.typeName == GetTypeName()) if (typeInfo.typeName == GetTypeName())
{ {
propertyNames.Add(_ItemSource); propertyNames.Add(_ItemSource);
} }
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -3966,6 +3997,7 @@ GuiBindableTextListInstanceLoader
{ {
propertyNames.Add(_ItemSource); propertyNames.Add(_ItemSource);
} }
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -3977,7 +4009,7 @@ GuiBindableTextListInstanceLoader
info->required = true; info->required = true;
return info; return info;
} }
return IGuiInstanceLoader::GetPropertyType(propertyInfo); return BASE_TYPE::GetPropertyType(propertyInfo);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -4187,6 +4219,7 @@ GuiBindableDataGridInstanceLoader
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
propertyNames.Add(_Columns); propertyNames.Add(_Columns);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
void GetConstructorParameters(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetConstructorParameters(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
@@ -4196,6 +4229,7 @@ GuiBindableDataGridInstanceLoader
propertyNames.Add(_ItemSource); propertyNames.Add(_ItemSource);
propertyNames.Add(_ViewModelContext); propertyNames.Add(_ViewModelContext);
} }
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -4219,7 +4253,7 @@ GuiBindableDataGridInstanceLoader
info->bindable = true; info->bindable = true;
return info; return info;
} }
return IGuiInstanceLoader::GetPropertyType(propertyInfo); return BASE_TYPE::GetPropertyType(propertyInfo);
} }
Ptr<workflow::WfStatement> AssignParameters(const TypeInfo& typeInfo, GlobalStringKey variableName, ArgumentMap& arguments, collections::List<WString>& errors)override Ptr<workflow::WfStatement> AssignParameters(const TypeInfo& typeInfo, GlobalStringKey variableName, ArgumentMap& arguments, collections::List<WString>& errors)override
@@ -4251,7 +4285,7 @@ GuiBindableDataGridInstanceLoader
{ {
return block; return block;
} }
return nullptr; return BASE_TYPE::AssignParameters(typeInfo, variableName, arguments, errors);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -4641,12 +4675,13 @@ GuiComboBoxInstanceLoader
_ListControl = GlobalStringKey::Get(L"ListControl"); _ListControl = GlobalStringKey::Get(L"ListControl");
} }
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetConstructorParameters(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
if (typeInfo.typeName == GetTypeName()) if (typeInfo.typeName == GetTypeName())
{ {
propertyNames.Add(_ListControl); propertyNames.Add(_ListControl);
} }
BASE_TYPE::GetConstructorParameters(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -4658,7 +4693,7 @@ GuiComboBoxInstanceLoader
info->required = true; info->required = true;
return info; return info;
} }
return IGuiInstanceLoader::GetPropertyType(propertyInfo); return BASE_TYPE::GetPropertyType(propertyInfo);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -4866,6 +4901,7 @@ GuiTabInstanceLoader
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
propertyNames.Add(GlobalStringKey::Empty); propertyNames.Add(GlobalStringKey::Empty);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -4923,7 +4959,7 @@ GuiTabInstanceLoader
{ {
return block; return block;
} }
return nullptr; return BASE_TYPE::AssignParameters(typeInfo, variableName, arguments, errors);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -5122,6 +5158,7 @@ GuiToolstripMenuInstanceLoader
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
propertyNames.Add(GlobalStringKey::Empty); propertyNames.Add(GlobalStringKey::Empty);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -5135,7 +5172,14 @@ GuiToolstripMenuInstanceLoader
Ptr<workflow::WfStatement> AssignParameters(const TypeInfo& typeInfo, GlobalStringKey variableName, ArgumentMap& arguments, collections::List<WString>& errors)override Ptr<workflow::WfStatement> AssignParameters(const TypeInfo& typeInfo, GlobalStringKey variableName, ArgumentMap& arguments, collections::List<WString>& errors)override
{ {
return AddControlToToolstrip(variableName, arguments, errors); if (auto statement = AddControlToToolstrip(variableName, arguments, errors))
{
return statement;
}
else
{
return BASE_TYPE::AssignParameters(typeInfo, variableName, arguments, errors);
}
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -5156,6 +5200,7 @@ GuiToolstripMenuBarInstanceLoader
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
propertyNames.Add(GlobalStringKey::Empty); propertyNames.Add(GlobalStringKey::Empty);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -5169,7 +5214,14 @@ GuiToolstripMenuBarInstanceLoader
Ptr<workflow::WfStatement> AssignParameters(const TypeInfo& typeInfo, GlobalStringKey variableName, ArgumentMap& arguments, collections::List<WString>& errors)override Ptr<workflow::WfStatement> AssignParameters(const TypeInfo& typeInfo, GlobalStringKey variableName, ArgumentMap& arguments, collections::List<WString>& errors)override
{ {
return AddControlToToolstrip(variableName, arguments, errors); if (auto statement = AddControlToToolstrip(variableName, arguments, errors))
{
return statement;
}
else
{
return BASE_TYPE::AssignParameters(typeInfo, variableName, arguments, errors);
}
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -5190,6 +5242,7 @@ GuiToolstripToolBarInstanceLoader
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
propertyNames.Add(GlobalStringKey::Empty); propertyNames.Add(GlobalStringKey::Empty);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -5203,7 +5256,14 @@ GuiToolstripToolBarInstanceLoader
Ptr<workflow::WfStatement> AssignParameters(const TypeInfo& typeInfo, GlobalStringKey variableName, ArgumentMap& arguments, collections::List<WString>& errors)override Ptr<workflow::WfStatement> AssignParameters(const TypeInfo& typeInfo, GlobalStringKey variableName, ArgumentMap& arguments, collections::List<WString>& errors)override
{ {
return AddControlToToolstrip(variableName, arguments, errors); if (auto statement = AddControlToToolstrip(variableName, arguments, errors))
{
return statement;
}
else
{
return BASE_TYPE::AssignParameters(typeInfo, variableName, arguments, errors);
}
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -5228,6 +5288,7 @@ GuiToolstripButtonInstanceLoader
void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override void GetPropertyNames(const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
{ {
propertyNames.Add(_SubMenu); propertyNames.Add(_SubMenu);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
} }
Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override Ptr<GuiInstancePropertyInfo> GetPropertyType(const PropertyInfo& propertyInfo)override
@@ -5255,7 +5316,7 @@ GuiToolstripButtonInstanceLoader
return call; return call;
} }
return nullptr; return BASE_TYPE::GetParameter(propertyInfo, variableName, errors);
} }
}; };
#undef BASE_TYPE #undef BASE_TYPE
@@ -10274,6 +10335,7 @@ Workflow_PrecompileInstanceContext
Ptr<workflow::runtime::WfAssembly> Workflow_PrecompileInstanceContext(Ptr<GuiInstanceContext> context, types::ErrorList& errors) Ptr<workflow::runtime::WfAssembly> Workflow_PrecompileInstanceContext(Ptr<GuiInstanceContext> context, types::ErrorList& errors)
{ {
vint previousErrorCount = errors.Count();
ITypeDescriptor* rootTypeDescriptor = 0; ITypeDescriptor* rootTypeDescriptor = 0;
if (context->className == L"") if (context->className == L"")
{ {
@@ -10289,7 +10351,7 @@ Workflow_PrecompileInstanceContext
types::ResolvingResult resolvingResult; types::ResolvingResult resolvingResult;
rootTypeDescriptor = Workflow_CollectReferences(context, resolvingResult, errors); rootTypeDescriptor = Workflow_CollectReferences(context, resolvingResult, errors);
if (errors.Count() == 0) if (errors.Count() == previousErrorCount)
{ {
auto statements = MakePtr<WfBlockStatement>(); auto statements = MakePtr<WfBlockStatement>();
Workflow_GenerateCreating(context, resolvingResult, rootTypeDescriptor, statements, errors); Workflow_GenerateCreating(context, resolvingResult, rootTypeDescriptor, statements, errors);
+2 -2
View File
@@ -3940,7 +3940,7 @@ GuiVrtualTypeInstanceLoader
auto funcCreateTemplate = MakePtr<WfFunctionDeclaration>(); auto funcCreateTemplate = MakePtr<WfFunctionDeclaration>();
funcCreateTemplate->anonymity = WfFunctionAnonymity::Named; funcCreateTemplate->anonymity = WfFunctionAnonymity::Named;
funcCreateTemplate->name.value = L"CreateTemplate"; funcCreateTemplate->name.value = L"CreateTemplate";
funcCreateTemplate->returnType = GetTypeFromTypeInfo(templateType.Obj()); funcCreateTemplate->returnType = GetTypeFromTypeInfo(TypeInfoRetriver<GuiTemplate*>::CreateTypeInfo().Obj());
auto argViewModel = MakePtr<WfFunctionArgument>(); auto argViewModel = MakePtr<WfFunctionArgument>();
argViewModel->type = GetTypeFromTypeInfo(TypeInfoRetriver<Value>::CreateTypeInfo().Obj()); argViewModel->type = GetTypeFromTypeInfo(TypeInfoRetriver<Value>::CreateTypeInfo().Obj());
@@ -4078,7 +4078,7 @@ GuiVrtualTypeInstanceLoader
} }
auto controlTemplateName = controlTemplateNameExpr->value.value; auto controlTemplateName = controlTemplateNameExpr->value.value;
if (wcschr(controlTemplateName.Buffer(), L';') == nullptr) if (wcschr(controlTemplateName.Buffer(), L';') != nullptr)
{ {
errors.Add(L"Precompile: \"" + controlTemplateNameExpr->value.value + L"\", which is assigned to contructor parameter \"" + GlobalStringKey::_ControlTemplate.ToString() + L" of type \"" + controlTypeInfo.typeName.ToString() + L"\", is illegal because control template should not have multiple choices."); errors.Add(L"Precompile: \"" + controlTemplateNameExpr->value.value + L"\", which is assigned to contructor parameter \"" + GlobalStringKey::_ControlTemplate.ToString() + L" of type \"" + controlTypeInfo.typeName.ToString() + L"\", is illegal because control template should not have multiple choices.");
return nullptr; return nullptr;
+4 -4
View File
@@ -12499,10 +12499,10 @@ Print (Declaration)
switch (node->kind) switch (node->kind)
{ {
case WfClassKind::Class: case WfClassKind::Class:
writer.WriteString(L"class "); writer.WriteString(indent + L"class ");
break; break;
case WfClassKind::Interface: case WfClassKind::Interface:
writer.WriteString(L"interface "); writer.WriteString(indent + L"interface ");
break; break;
} }
writer.WriteString(node->name.value); writer.WriteString(node->name.value);
@@ -12521,7 +12521,7 @@ Print (Declaration)
} }
writer.WriteLine(L""); writer.WriteLine(L"");
writer.WriteLine(L"{"); writer.WriteLine(indent + L"{");
FOREACH_INDEXER(Ptr<WfClassMember>, member, index, node->members) FOREACH_INDEXER(Ptr<WfClassMember>, member, index, node->members)
{ {
@@ -12543,7 +12543,7 @@ Print (Declaration)
writer.WriteLine(L""); writer.WriteLine(L"");
} }
writer.WriteString(L"}"); writer.WriteLine(indent + L"}");
writer.AfterPrint(node); writer.AfterPrint(node);
} }
}; };
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.