This commit is contained in:
Zihan Chen
2017-01-24 22:51:12 -08:00
parent a4f458c4f6
commit 7aba6bbb17
5 changed files with 37 additions and 15 deletions
+14
View File
@@ -16047,6 +16047,20 @@ Expression Helpers
return; return;
} }
} }
else
{
if ((fromType->GetTypeDescriptor() == tdVe && fromType->GetElementType()->GetDecorator() == ITypeInfo::Generic)
|| fromType->GetHint() == TypeInfoHint::NativeCollectionReference
)
{
writer.WriteString(L"::vl::__vwsn::UnboxCollection<");
writer.WriteString(config->ConvertType(tdVe));
writer.WriteString(L">(");
writeExpression();
writer.WriteString(L")");
return;
}
}
} }
switch (fromType->GetDecorator()) switch (fromType->GetDecorator())
@@ -53,7 +53,7 @@
</PrecompiledHeader> </PrecompiledHeader>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -69,7 +69,7 @@
<Optimization>MaxSpeed</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
</ClCompile> </ClCompile>
<Link> <Link>
@@ -91,8 +91,8 @@
<ClInclude Include="UI\Source\DemoPartialClasses.h" /> <ClInclude Include="UI\Source\DemoPartialClasses.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\Lib\GacUILite\GacUILite.vcxproj"> <ProjectReference Include="..\..\Lib\GacUI\GacUI.vcxproj">
<Project>{96c559ca-9718-4bec-a053-28a0ab6a8ca2}</Project> <Project>{8018d622-66ba-4e65-9d03-bdac37ea9a54}</Project>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
@@ -4,7 +4,7 @@
<Folder name="Cpp"> <Folder name="Cpp">
<Text name="SourceFolder">Source</Text> <Text name="SourceFolder">Source</Text>
<Text name="Resource">..\..\UIRes\ColorPicker.bin</Text> <Text name="Resource">..\..\UIRes\ColorPicker.bin</Text>
<Text name="NormalInclude">GacUI.h</Text> <Text name="NormalInclude">GacUIReflection.h</Text>
<Text name="Name">Demo</Text> <Text name="Name">Demo</Text>
</Folder> </Folder>
</Folder> </Folder>
@@ -325,6 +325,7 @@ Closure Definitions
return ::vl::__vwsn::Ensure(static_cast<::vl::presentation::templates::GuiTemplate*>(__vwsn_template_)); return ::vl::__vwsn::Ensure(static_cast<::vl::presentation::templates::GuiTemplate*>(__vwsn_template_));
} }
} }
throw ::vl::Exception(::vl::WString(L"Cannot find a matched control template to create.", false));
} }
//------------------------------------------------------------------- //-------------------------------------------------------------------
@@ -743,6 +744,7 @@ Closure Definitions
return ::vl::__vwsn::Ensure(static_cast<::vl::presentation::templates::GuiTemplate*>(__vwsn_template_)); return ::vl::__vwsn::Ensure(static_cast<::vl::presentation::templates::GuiTemplate*>(__vwsn_template_));
} }
} }
throw ::vl::Exception(::vl::WString(L"Cannot find a matched control template to create.", false));
} }
/*********************************************************************** /***********************************************************************
@@ -1020,7 +1022,7 @@ Class (::demo::MainWindowConstructor)
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->GetContainerComposition())->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_1))); ::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->GetContainerComposition())->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_1)));
} }
{ {
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_6)->SetItemSource(::vl::__vwsn::Ensure(::vl::Ptr<::vl::reflection::description::IValueEnumerable>(::vl::__vwsn::This(::vl::__vwsn::This(this)->ViewModel.Obj())->GetColorItems()))); ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_6)->SetItemSource(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueEnumerable>(::vl::__vwsn::This(::vl::__vwsn::This(this)->ViewModel.Obj())->GetColorItems()));
} }
{ {
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_5)->SetSelectedIndex(0); ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_5)->SetSelectedIndex(0);
@@ -1079,17 +1081,18 @@ namespace vl
namespace description namespace description
{ {
#ifndef VCZH_DEBUG_NO_REFLECTION #ifndef VCZH_DEBUG_NO_REFLECTION
IMPL_CPP_TYPE_INFO(::demo::ColorBomboItemTemplate) IMPL_CPP_TYPE_INFO(demo::ColorBomboItemTemplate)
IMPL_CPP_TYPE_INFO(::demo::ColorBomboItemTemplateConstructor) IMPL_CPP_TYPE_INFO(demo::ColorBomboItemTemplateConstructor)
IMPL_CPP_TYPE_INFO(::demo::ColorListItemTemplate) IMPL_CPP_TYPE_INFO(demo::ColorListItemTemplate)
IMPL_CPP_TYPE_INFO(::demo::ColorListItemTemplateConstructor) IMPL_CPP_TYPE_INFO(demo::ColorListItemTemplateConstructor)
IMPL_CPP_TYPE_INFO(::demo::IColorItem) IMPL_CPP_TYPE_INFO(demo::IColorItem)
IMPL_CPP_TYPE_INFO(::demo::IViewModel) IMPL_CPP_TYPE_INFO(demo::IViewModel)
IMPL_CPP_TYPE_INFO(::demo::MainWindow) IMPL_CPP_TYPE_INFO(demo::MainWindow)
IMPL_CPP_TYPE_INFO(::demo::MainWindowConstructor) IMPL_CPP_TYPE_INFO(demo::MainWindowConstructor)
#define _ , #define _ ,
BEGIN_CLASS_MEMBER(::demo::ColorBomboItemTemplate) BEGIN_CLASS_MEMBER(::demo::ColorBomboItemTemplate)
CLASS_MEMBER_CONSTRUCTOR(::demo::ColorBomboItemTemplate*(::vl::Ptr<::demo::IColorItem>), { L"__vwsn_ctor_parameter_ViewModel" })
CLASS_MEMBER_METHOD(GetTextColor, NO_PARAMETER) CLASS_MEMBER_METHOD(GetTextColor, NO_PARAMETER)
CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER)
CLASS_MEMBER_METHOD(SetTextColor, { L"value" }) CLASS_MEMBER_METHOD(SetTextColor, { L"value" })
@@ -1101,6 +1104,7 @@ namespace vl
END_CLASS_MEMBER(::demo::ColorBomboItemTemplate) END_CLASS_MEMBER(::demo::ColorBomboItemTemplate)
BEGIN_CLASS_MEMBER(::demo::ColorBomboItemTemplateConstructor) BEGIN_CLASS_MEMBER(::demo::ColorBomboItemTemplateConstructor)
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::ColorBomboItemTemplateConstructor>(), NO_PARAMETER)
CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" _ L"__vwsn_resolver_" }) CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" _ L"__vwsn_resolver_" })
CLASS_MEMBER_FIELD(__vwsn_precompile_0) CLASS_MEMBER_FIELD(__vwsn_precompile_0)
CLASS_MEMBER_FIELD(__vwsn_precompile_1) CLASS_MEMBER_FIELD(__vwsn_precompile_1)
@@ -1112,12 +1116,14 @@ namespace vl
END_CLASS_MEMBER(::demo::ColorBomboItemTemplateConstructor) END_CLASS_MEMBER(::demo::ColorBomboItemTemplateConstructor)
BEGIN_CLASS_MEMBER(::demo::ColorListItemTemplate) BEGIN_CLASS_MEMBER(::demo::ColorListItemTemplate)
CLASS_MEMBER_CONSTRUCTOR(::demo::ColorListItemTemplate*(::vl::Ptr<::demo::IColorItem>), { L"__vwsn_ctor_parameter_ViewModel" })
CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER)
CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel)
CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel)
END_CLASS_MEMBER(::demo::ColorListItemTemplate) END_CLASS_MEMBER(::demo::ColorListItemTemplate)
BEGIN_CLASS_MEMBER(::demo::ColorListItemTemplateConstructor) BEGIN_CLASS_MEMBER(::demo::ColorListItemTemplateConstructor)
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::ColorListItemTemplateConstructor>(), NO_PARAMETER)
CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" _ L"__vwsn_resolver_" }) CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" _ L"__vwsn_resolver_" })
CLASS_MEMBER_FIELD(__vwsn_precompile_0) CLASS_MEMBER_FIELD(__vwsn_precompile_0)
CLASS_MEMBER_FIELD(ViewModel) CLASS_MEMBER_FIELD(ViewModel)
@@ -1137,12 +1143,14 @@ namespace vl
END_INTERFACE_MEMBER(::demo::IViewModel) END_INTERFACE_MEMBER(::demo::IViewModel)
BEGIN_CLASS_MEMBER(::demo::MainWindow) BEGIN_CLASS_MEMBER(::demo::MainWindow)
CLASS_MEMBER_CONSTRUCTOR(::demo::MainWindow*(::vl::Ptr<::demo::IViewModel>), { L"__vwsn_ctor_parameter_ViewModel" })
CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER)
CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel)
CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel)
END_CLASS_MEMBER(::demo::MainWindow) END_CLASS_MEMBER(::demo::MainWindow)
BEGIN_CLASS_MEMBER(::demo::MainWindowConstructor) BEGIN_CLASS_MEMBER(::demo::MainWindowConstructor)
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::MainWindowConstructor>(), NO_PARAMETER)
CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" _ L"__vwsn_resolver_" }) CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" _ L"__vwsn_resolver_" })
CLASS_MEMBER_FIELD(__vwsn_precompile_0) CLASS_MEMBER_FIELD(__vwsn_precompile_0)
CLASS_MEMBER_FIELD(__vwsn_precompile_1) CLASS_MEMBER_FIELD(__vwsn_precompile_1)
@@ -10,7 +10,7 @@ https://github.com/vczh-libraries
#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES #ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES
#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES #define VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES
#include "GacUI.h" #include "GacUIReflection.h"
#if defined( _MSC_VER) #if defined( _MSC_VER)
#pragma warning(push) #pragma warning(push)