diff --git a/Tutorial/GacUI_Layout/GacUI_Layout.sln b/Tutorial/GacUI_Layout/GacUI_Layout.sln index 8b370945..3e93b69e 100644 --- a/Tutorial/GacUI_Layout/GacUI_Layout.sln +++ b/Tutorial/GacUI_Layout/GacUI_Layout.sln @@ -21,6 +21,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TableSplitter", "TableSplit EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Responsive1", "Responsive1\Responsive1.vcxproj", "{B7E80D3D-6357-484C-A98F-17B6D6ABABF5}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Responsive2", "Responsive2\Responsive2.vcxproj", "{747D66CE-7F4C-44A0-BE17-99C23C8AC55F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -79,6 +81,14 @@ Global {B7E80D3D-6357-484C-A98F-17B6D6ABABF5}.Release|Win32.Build.0 = Release|Win32 {B7E80D3D-6357-484C-A98F-17B6D6ABABF5}.Release|x64.ActiveCfg = Release|x64 {B7E80D3D-6357-484C-A98F-17B6D6ABABF5}.Release|x64.Build.0 = Release|x64 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Debug|Win32.ActiveCfg = Debug|Win32 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Debug|Win32.Build.0 = Debug|Win32 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Debug|x64.ActiveCfg = Debug|x64 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Debug|x64.Build.0 = Debug|x64 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Release|Win32.ActiveCfg = Release|Win32 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Release|Win32.Build.0 = Release|Win32 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Release|x64.ActiveCfg = Release|x64 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Tutorial/GacUI_Layout/Responsive2/Main.cpp b/Tutorial/GacUI_Layout/Responsive2/Main.cpp new file mode 100644 index 00000000..d64c668f --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/Main.cpp @@ -0,0 +1,18 @@ +#define GAC_HEADER_USE_NAMESPACE +#include "UI/Source/Demo.h" +#include + +using namespace vl::collections; +using namespace vl::stream; + +void GuiMain() +{ + { + FileStream fileStream(L"../UIRes/Responsive2.bin", FileStream::ReadOnly); + auto resource = GuiResource::LoadPrecompiledBinary(fileStream); + GetResourceManager()->SetResource(L"Resource", resource); + } + demo::MainWindow window; + window.MoveToScreenCenter(); + GetApplication()->Run(&window); +} \ No newline at end of file diff --git a/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj b/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj new file mode 100644 index 00000000..5a593817 --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + {96c559ca-9718-4bec-a053-28a0ab6a8ca2} + + + + 15.0 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F} + Win32Proj + Responsive2 + 10.0.16299.0 + + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + true + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + false + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + false + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + + NotUsing + Level3 + Disabled + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + + + + + NotUsing + Level3 + Disabled + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + true + true + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + true + true + + + + + + \ No newline at end of file diff --git a/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj.filters b/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj.filters new file mode 100644 index 00000000..6e90bb89 --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj.filters @@ -0,0 +1,41 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {3de35dbb-5a4f-40c2-989f-b5fe4f9e2856} + + + + + Source Files + + + UI + + + + + Resource Files + + + + + UI + + + UI + + + \ No newline at end of file diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/1.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/1.png new file mode 100644 index 00000000..7e94196e Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/1.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/2.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/2.png new file mode 100644 index 00000000..3261efb1 Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/2.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/3.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/3.png new file mode 100644 index 00000000..24b8af5f Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/3.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/4.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/4.png new file mode 100644 index 00000000..70c58072 Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/4.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/5.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/5.png new file mode 100644 index 00000000..be31f35f Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/5.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/6.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/6.png new file mode 100644 index 00000000..d3d4bd0a Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/6.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/7.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/7.png new file mode 100644 index 00000000..a82eaa20 Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/7.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/8.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/8.png new file mode 100644 index 00000000..7766b411 Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/8.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/Video.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/Video.png new file mode 100644 index 00000000..4488b72d Binary files /dev/null and b/Tutorial/GacUI_Layout/Responsive2/UI/Images/Video.png differ diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Resource.xml b/Tutorial/GacUI_Layout/Responsive2/UI/Resource.xml new file mode 100644 index 00000000..43f2b119 --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Resource.xml @@ -0,0 +1,259 @@ + + + + + Source + ..\..\UIRes\Responsive2.bin + GacUI.h + Demo + + + + + Images/1.png + Images/2.png + Images/3.png + Images/4.png + Images/5.png + Images/6.png + Images/7.png + Images/8.png + Images/Video.png + + + + + + + + + + + cast (AccountButtonViewModel^) self.Context + + + + + + + composeType:MinSize + + + composeType:MinSize + composeType:Percentage percentage:1.0 + + + + + + + + Center + + +
+
+ + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + composeType:MinSize + composeType:MinSize + composeType:MinSize + + + composeType:Percentage percentage:1.0 + composeType:MinSize + composeType:MinSize + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + LimitToElementAndChildren + left:0 top:0 right:0 bottom:0 + self.videos + demo::VideoItemTemplate + + + + + + + + composeType:Percentage percentage:1.0 + + + composeType:MinSize + composeType:Percentage percentage:1.0 + + + + + LimitToElementAndChildren + left:0 top:0 right:0 bottom:0 + self.accounts + demo::AccountItemTemplate + + + + + + +
+
+ + + + composeType:MinSize + composeType:Percentage percentage:1.0 + + + composeType:Percentage percentage:1.0 + + + + + + + + + LimitToElementAndChildren + left:0 top:0 right:0 bottom:0 + self.accounts + demo::AccountMenuItemTemplate + + + + + + + + + +
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/Demo.h b/Tutorial/GacUI_Layout/Responsive2/UI/Source/Demo.h new file mode 100644 index 00000000..7566a5bb --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/Demo.h @@ -0,0 +1,15 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMO +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMO + +#include "DemoPartialClasses.h" + +#endif diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.cpp new file mode 100644 index 00000000..77ba1c2a --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.cpp @@ -0,0 +1,2125 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#include "Demo.h" +/* CodePack:BeginIgnore() */ +#ifndef VCZH_DEBUG_NO_REFLECTION +/* CodePack:ConditionOff(VCZH_DEBUG_NO_REFLECTION, DemoReflection.h) */ +#include "DemoReflection.h" +#endif +/* CodePack:EndIgnore() */ + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +#define GLOBAL_SYMBOL ::vl_workflow_global::Demo:: +#define GLOBAL_NAME ::vl_workflow_global::Demo::Instance(). +#define GLOBAL_OBJ &::vl_workflow_global::Demo::Instance() +#define USERIMPL(...) + +/*********************************************************************** +Global Variables +***********************************************************************/ + +BEGIN_GLOBAL_STORAGE_CLASS(vl_workflow_global_Demo) + vl_workflow_global::Demo instance; + INITIALIZE_GLOBAL_STORAGE_CLASS + FINALIZE_GLOBAL_STORAGE_CLASS +END_GLOBAL_STORAGE_CLASS(vl_workflow_global_Demo) + +namespace vl_workflow_global +{ +/*********************************************************************** +Global Functions +***********************************************************************/ + + Demo& Demo::Instance() + { + return Getvl_workflow_global_Demo().instance; + } + +/*********************************************************************** +Closures +***********************************************************************/ + + //------------------------------------------------------------------- + + __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiTemplate* __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return __vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::demo::VideoViewModel>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) + { + return static_cast<::vl::presentation::templates::GuiTemplate*>(new ::demo::VideoItemTemplate(::vl::__vwsn::Unbox<::vl::Ptr<::demo::VideoViewModel>>(__vwsn_viewModel_))); + } + } + throw ::vl::Exception(::vl::WString(L"Cannot find a matched control template to create.", false)); + } + + //------------------------------------------------------------------- + + __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiTemplate* __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return __vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::demo::AccountButtonViewModel>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) + { + return static_cast<::vl::presentation::templates::GuiTemplate*>(new ::demo::AccountItemTemplate(::vl::__vwsn::Unbox<::vl::Ptr<::demo::AccountButtonViewModel>>(__vwsn_viewModel_))); + } + } + throw ::vl::Exception(::vl::WString(L"Cannot find a matched control template to create.", false)); + } + + //------------------------------------------------------------------- + + __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiTemplate* __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return __vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::demo::AccountButtonViewModel>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) + { + return static_cast<::vl::presentation::templates::GuiTemplate*>(new ::demo::AccountMenuItemTemplate(::vl::__vwsn::Unbox<::vl::Ptr<::demo::AccountButtonViewModel>>(__vwsn_viewModel_))); + } + } + throw ::vl::Exception(::vl::WString(L"Cannot find a matched control template to create.", false)); + } + + //------------------------------------------------------------------- + + __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->self)->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetFont(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetFont(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->SetFont(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetColor(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetFont(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->SetImage(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetViewModel(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::demo::AccountButtonViewModel>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->self)->SetViewModel(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__(::demo::AccountItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiControlTemplate* __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::demo::AccountButtonTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__(::demo::AccountMenuItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetTitle(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->TitleChanged, ::vl::Func(this, &__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->TitleChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetFont(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, ::vl::Func(this, &__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetFont(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, ::vl::Func(this, &__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetAuthor(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->AuthorChanged, ::vl::Func(this, &__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->AuthorChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetFont(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, ::vl::Func(this, &__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>((::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected() ? ::vl::WString(L"#FFFFFF", false) : ((::vl::__vwsn::This(__vwsn_bind_cache_1)->GetState() != ::vl::presentation::controls::ButtonState::Normal) ? ::vl::WString(L"#0000FF", false) : ::vl::WString(L"#00000000", false)))); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->StateChanged, ::vl::Func(this, &__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->StateChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetViewModel().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, ::vl::Func(this, &__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetViewModel().Obj())->GetName(); } catch(...){ return ::vl::WString(L"", false); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, ::vl::Func(this, &__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>((::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected() ? ::vl::WString(L"#000000", false) : ::vl::WString(L"#FFFFFF", false))); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetViewModel().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, ::vl::Func(this, &__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Unbox<::vl::Ptr<::demo::AccountButtonViewModel>>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetContext()); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ContextChanged, ::vl::Func(this, &__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ContextChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountMenuItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsnthis_0->ViewModel.Obj())->GetName(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + bool __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + return true; + } + return false; + } + + bool __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = (::vl::WString(L"Welcome to GacUI Video, ", false) + ::vl::reflection::description::Sys::LoremIpsumTitle(static_cast<::vl::vint>(16))); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + bool __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + return true; + } + return false; + } + + bool __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + return true; + } + return false; + } + +} + +/*********************************************************************** +Class (::demo::AccountButtonTemplateConstructor) +***********************************************************************/ + +namespace demo +{ + void AccountButtonTemplateConstructor::__vwsn_initialize_instance_(::demo::AccountButtonTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); + } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiResponsiveViewComposition()); + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiResponsiveFixedComposition()); + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowsAndColumns(static_cast<::vl::vint>(1), static_cast<::vl::vint>(2)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_5 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5.Obj())->SetFrameIndex(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"0", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_5)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); + } + (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_7 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetViews()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_2)); + } + (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiResponsiveFixedComposition()); + (this->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(5); __vwsn_temp__.top = static_cast<::vl::vint>(5); __vwsn_temp__.right = static_cast<::vl::vint>(5); __vwsn_temp__.bottom = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_10 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_10.Obj())->SetFrameIndex(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"0", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_10)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_9)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetViews()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetDirection(::vl::presentation::compositions::ResponsiveDirection::Horizontal); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + } + + AccountButtonTemplateConstructor::AccountButtonTemplateConstructor() + : self(static_cast<::demo::AccountButtonTemplate*>(nullptr)) + , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiResponsiveViewComposition*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiResponsiveFixedComposition*>(nullptr)) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_5(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_7(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiResponsiveFixedComposition*>(nullptr)) + , __vwsn_precompile_9(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_10(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + { + } + +/*********************************************************************** +Class (::demo::AccountButtonTemplate) +***********************************************************************/ + + ::vl::Ptr<::demo::AccountButtonViewModel> AccountButtonTemplate::GetViewModel() + { + return this->__vwsn_prop_ViewModel; + } + void AccountButtonTemplate::SetViewModel(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_value_) + { + if ((this->__vwsn_prop_ViewModel.Obj() != __vwsn_value_.Obj())) + { + (this->__vwsn_prop_ViewModel = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->ViewModelChanged)(); + } + } + + AccountButtonTemplate::AccountButtonTemplate() + : __vwsn_prop_ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::AccountButtonTemplate", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + AccountButtonTemplate::~AccountButtonTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::demo::AccountItemTemplateConstructor) +***********************************************************************/ + + void AccountItemTemplateConstructor::__vwsn_initialize_instance_(::demo::AccountItemTemplate* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); + (this->ViewModel = ::vl::__vwsn::This(__vwsn_this_)->GetViewModel()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + (this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiSelectableButton(::vl::presentation::theme::ThemeName::CheckBox)); + } + (this->__vwsn_precompile_2 = ::vl::__vwsn::This(this->__vwsn_precompile_1)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__(this))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetBoundsComposition())); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetContext(::vl::__vwsn::Box(this->ViewModel)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetGroupController(::vl::__vwsn::This(this->ViewModel.Obj())->GetController()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAssociatedCursor(::vl::__vwsn::This(::vl::__vwsn::This(::vl::presentation::GetCurrentController())->ResourceService())->GetSystemCursor(::vl::presentation::INativeCursor::SystemCursorType::Hand)); + } + } + + AccountItemTemplateConstructor::AccountItemTemplateConstructor() + : ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + , __vwsn_precompile_0(static_cast<::demo::AccountItemTemplate*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::controls::GuiSelectableButton*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + { + } + +/*********************************************************************** +Class (::demo::AccountItemTemplate) +***********************************************************************/ + + ::vl::Ptr<::demo::AccountButtonViewModel> AccountItemTemplate::GetViewModel() + { + return this->__vwsn_parameter_ViewModel; + } + + AccountItemTemplate::AccountItemTemplate(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_ctor_parameter_ViewModel) + : __vwsn_parameter_ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + { + (this->__vwsn_parameter_ViewModel = __vwsn_ctor_parameter_ViewModel); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::AccountItemTemplate", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + AccountItemTemplate::~AccountItemTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::demo::AccountMenuItemTemplateConstructor) +***********************************************************************/ + + void AccountMenuItemTemplateConstructor::__vwsn_initialize_instance_(::demo::AccountMenuItemTemplate* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); + (this->ViewModel = ::vl::__vwsn::This(__vwsn_this_)->GetViewModel()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + (this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiToolstripButton(::vl::presentation::theme::ThemeName::MenuItemButton)); + } + (this->__vwsn_precompile_2 = ::vl::__vwsn::This(this->__vwsn_precompile_1)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetBoundsComposition())); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAssociatedCursor(::vl::__vwsn::This(::vl::__vwsn::This(::vl::presentation::GetCurrentController())->ResourceService())->GetSystemCursor(::vl::presentation::INativeCursor::SystemCursorType::Hand)); + } + } + + AccountMenuItemTemplateConstructor::AccountMenuItemTemplateConstructor() + : ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + , __vwsn_precompile_0(static_cast<::demo::AccountMenuItemTemplate*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::controls::GuiToolstripButton*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + { + } + +/*********************************************************************** +Class (::demo::AccountMenuItemTemplate) +***********************************************************************/ + + ::vl::Ptr<::demo::AccountButtonViewModel> AccountMenuItemTemplate::GetViewModel() + { + return this->__vwsn_parameter_ViewModel; + } + + AccountMenuItemTemplate::AccountMenuItemTemplate(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_ctor_parameter_ViewModel) + : __vwsn_parameter_ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + { + (this->__vwsn_parameter_ViewModel = __vwsn_ctor_parameter_ViewModel); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::AccountMenuItemTemplate", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + AccountMenuItemTemplate::~AccountMenuItemTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::demo::MainWindowConstructor) +***********************************************************************/ + + void MainWindowConstructor::__vwsn_initialize_instance_(::demo::MainWindow* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetClientSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(800); __vwsn_temp__.y = static_cast<::vl::vint>(600); return __vwsn_temp__; }()); + } + (this->accountController = new ::vl::presentation::controls::GuiSelectableButton::MutexGroupController()); + { + ::vl::__vwsn::This(this->self)->AddComponent(static_cast<::vl::presentation::controls::GuiComponent*>(this->accountController)); + } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiResponsiveContainerComposition()); + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiResponsiveViewComposition()); + { + (this->videoContainer = new ::vl::presentation::controls::GuiScrollContainer(::vl::presentation::theme::ThemeName::ScrollView)); + } + { + ::vl::__vwsn::This(this->videoContainer)->SetHorizontalAlwaysVisible(::vl::__vwsn::Parse(::vl::WString(L"false", false))); + } + { + ::vl::__vwsn::This(this->videoContainer)->SetExtendToFullWidth(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + (this->__vwsn_precompile_18 = new ::vl::presentation::compositions::GuiRepeatFlowComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetItemTemplate(LAMBDA(::vl_workflow_global::__vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(this))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetColumnPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetRowPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this->videoContainer)->GetContainerComposition())->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_18)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetSharedControls()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->videoContainer)); + } + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiResponsiveGroupComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetDirection(::vl::presentation::compositions::ResponsiveDirection::Horizontal); + } + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowsAndColumns(static_cast<::vl::vint>(1), static_cast<::vl::vint>(2)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiRepeatStackComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetItemTemplate(LAMBDA(::vl_workflow_global::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(this))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetDirection(::vl::presentation::compositions::GuiStackComposition::Direction::Vertical); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); + } + (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(420); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiResponsiveSharedComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetViews()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_2)); + } + (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiResponsiveFixedComposition()); + (this->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetBorderVisible(::vl::__vwsn::Parse(::vl::WString(L"false", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetRowsAndColumns(static_cast<::vl::vint>(2), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_10 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + { + (this->__vwsn_precompile_11 = new ::vl::presentation::controls::GuiToolstripMenuBar(::vl::presentation::theme::ThemeName::MenuBar)); + } + (this->__vwsn_precompile_15 = ::vl::__vwsn::This(this->__vwsn_precompile_11)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_15)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + (this->__vwsn_precompile_12 = new ::vl::presentation::controls::GuiToolstripButton(::vl::presentation::theme::ThemeName::MenuBarButton)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetText(::vl::WString(L"Subscribed Accounts", false)); + } + (this->__vwsn_precompile_13 = ::vl::__vwsn::This(this->__vwsn_precompile_12)->EnsureToolstripSubMenu()); + (this->__vwsn_precompile_14 = new ::vl::presentation::compositions::GuiRepeatStackComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetItemTemplate(LAMBDA(::vl_workflow_global::__vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(this))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetDirection(::vl::presentation::compositions::GuiStackComposition::Direction::Vertical); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this->__vwsn_precompile_13)->GetContainerComposition())->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_14)); + } + { + ::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_11)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_12)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_11)->GetBoundsComposition())); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_10)); + } + (this->__vwsn_precompile_16 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_16)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_17 = new ::vl::presentation::compositions::GuiResponsiveSharedComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_17)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_16)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_17)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_16)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_9)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetViews()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetDirection(::vl::presentation::compositions::ResponsiveDirection::Horizontal); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetResponsiveTarget(static_cast<::vl::presentation::compositions::GuiResponsiveCompositionBase*>(this->__vwsn_precompile_1)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this->self)->GetContainerComposition())->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetItemSource(::vl::Ptr<::vl::reflection::description::IValueObservableList>(::vl::__vwsn::This(this->self)->accounts)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetShared(static_cast<::vl::presentation::controls::GuiControl*>(this->videoContainer)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetItemSource(::vl::Ptr<::vl::reflection::description::IValueObservableList>(::vl::__vwsn::This(this->self)->accounts)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_17)->SetShared(static_cast<::vl::presentation::controls::GuiControl*>(this->videoContainer)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetItemSource(::vl::Ptr<::vl::reflection::description::IValueObservableList>(::vl::__vwsn::This(this->self)->videos)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + } + + MainWindowConstructor::MainWindowConstructor() + : self(static_cast<::demo::MainWindow*>(nullptr)) + , accountController(static_cast<::vl::presentation::controls::GuiSelectableButton::MutexGroupController*>(nullptr)) + , videoContainer(static_cast<::vl::presentation::controls::GuiScrollContainer*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiResponsiveContainerComposition*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiResponsiveViewComposition*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiResponsiveGroupComposition*>(nullptr)) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiRepeatStackComposition*>(nullptr)) + , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiResponsiveSharedComposition*>(nullptr)) + , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiResponsiveFixedComposition*>(nullptr)) + , __vwsn_precompile_9(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_10(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_11(static_cast<::vl::presentation::controls::GuiToolstripMenuBar*>(nullptr)) + , __vwsn_precompile_12(static_cast<::vl::presentation::controls::GuiToolstripButton*>(nullptr)) + , __vwsn_precompile_13(static_cast<::vl::presentation::controls::GuiToolstripMenu*>(nullptr)) + , __vwsn_precompile_14(static_cast<::vl::presentation::compositions::GuiRepeatStackComposition*>(nullptr)) + , __vwsn_precompile_15(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_16(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_17(static_cast<::vl::presentation::compositions::GuiResponsiveSharedComposition*>(nullptr)) + , __vwsn_precompile_18(static_cast<::vl::presentation::compositions::GuiRepeatFlowComposition*>(nullptr)) + { + } + +/*********************************************************************** +Class (::demo::MainWindow) +***********************************************************************/ + + MainWindow::MainWindow() + : ::vl::presentation::controls::GuiWindow(::vl::presentation::theme::ThemeName::Window) + , accounts(::vl::reflection::description::IValueObservableList::Create()) + , videos(::vl::reflection::description::IValueObservableList::Create()) + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::MainWindow", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + this->__vwsn_instance_ctor_(); + } + + void MainWindow::__vwsn_instance_ctor_() + { + { + auto __vwsn_for_begin_i = static_cast<::vl::vint>(1); + auto __vwsn_for_end_i = static_cast<::vl::vint>(8); + auto i = __vwsn_for_begin_i; + while ((i <= __vwsn_for_end_i)) + { + { + auto item = ::vl::Ptr<::demo::AccountButtonViewModel>(new ::demo::AccountButtonViewModel()); + ::vl::__vwsn::This(item.Obj())->SetController(static_cast<::vl::presentation::controls::GuiSelectableButton::GroupController*>(::vl::__vwsn::This(this->self)->accountController)); + ::vl::__vwsn::This(item.Obj())->SetName(::vl::reflection::description::Sys::LoremIpsumTitle(static_cast<::vl::vint>(20))); + ::vl::__vwsn::This(item.Obj())->SetImage(::vl::__vwsn::This(::vl::__vwsn::Ensure(::vl::__vwsn::SharedPtrCast<::vl::presentation::GuiImageData>(::vl::__vwsn::This(this->self)->ResolveResource(::vl::WString(L"res", false), (::vl::WString(L"Images/_", false) + ::vl::__vwsn::ToString(i)), true).Obj())).Obj())->GetImage()); + ::vl::__vwsn::This(::vl::__vwsn::This(this->self)->accounts.Obj())->Add(::vl::__vwsn::Box(item)); + } + (i = (i + static_cast<::vl::vint>(1))); + } + } + { + auto __vwsn_for_begin_i = (static_cast<::vl::vint>(0) + static_cast<::vl::vint>(1)); + auto __vwsn_for_end_i = (static_cast<::vl::vint>(20) - static_cast<::vl::vint>(1)); + auto i = __vwsn_for_begin_i; + while ((i <= __vwsn_for_end_i)) + { + { + auto item = ::vl::Ptr<::demo::VideoViewModel>(new ::demo::VideoViewModel()); + ::vl::__vwsn::This(item.Obj())->SetAuthor(::vl::reflection::description::Sys::LoremIpsumTitle(static_cast<::vl::vint>(16))); + ::vl::__vwsn::This(item.Obj())->SetTitle(::vl::reflection::description::Sys::LoremIpsumTitle(static_cast<::vl::vint>(80))); + ::vl::__vwsn::This(item.Obj())->SetFont(::vl::__vwsn::This(this->self)->GetFont()); + ::vl::__vwsn::This(::vl::__vwsn::This(this->self)->videos.Obj())->Add(::vl::__vwsn::Box(item)); + } + (i = (i + static_cast<::vl::vint>(1))); + } + } + } + + MainWindow::~MainWindow() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::controls::GuiControlHost*>(this)); + } + +/*********************************************************************** +Class (::demo::VideoItemTemplateConstructor) +***********************************************************************/ + + void VideoItemTemplateConstructor::__vwsn_initialize_instance_(::demo::VideoItemTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + (this->ViewModel = ::vl::__vwsn::This(__vwsn_this_)->GetViewModel()); + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(192); __vwsn_temp__.y = static_cast<::vl::vint>(192); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(3)); + } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetStretch(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetFrameIndex(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"0", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + } + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(3)); + } + (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetWrapLineHeightCalculation(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetWrapLine(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString(L"#FFFFFF", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString(L"#808080", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetText(::vl::WString(L"by:", false)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_6)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + } + (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString(L"#FFFFFF", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetImage(::vl::__vwsn::This(::vl::__vwsn::Ensure(::vl::__vwsn::SharedPtrCast<::vl::presentation::GuiImageData>(::vl::__vwsn::This(__vwsn_this_)->ResolveResource(::vl::WString(L"res", false), ::vl::WString(L"Images/Video", false), true).Obj())).Obj())->GetImage()); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + } + + VideoItemTemplateConstructor::VideoItemTemplateConstructor() + : self(static_cast<::demo::VideoItemTemplate*>(nullptr)) + , ViewModel(::vl::Ptr<::demo::VideoViewModel>()) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_6(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_8(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + { + } + +/*********************************************************************** +Class (::demo::VideoItemTemplate) +***********************************************************************/ + + ::vl::Ptr<::demo::VideoViewModel> VideoItemTemplate::GetViewModel() + { + return this->__vwsn_parameter_ViewModel; + } + + VideoItemTemplate::VideoItemTemplate(::vl::Ptr<::demo::VideoViewModel> __vwsn_ctor_parameter_ViewModel) + : __vwsn_parameter_ViewModel(::vl::Ptr<::demo::VideoViewModel>()) + { + (this->__vwsn_parameter_ViewModel = __vwsn_ctor_parameter_ViewModel); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::VideoItemTemplate", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + VideoItemTemplate::~VideoItemTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::demo::AccountButtonViewModel) +***********************************************************************/ + + ::vl::presentation::controls::GuiSelectableButton::GroupController* AccountButtonViewModel::GetController() + { + return this->__vwsn_prop_Controller; + } + + void AccountButtonViewModel::SetController(::vl::presentation::controls::GuiSelectableButton::GroupController* __vwsn_value_) + { + (this->__vwsn_prop_Controller = __vwsn_value_); + } + + ::vl::WString AccountButtonViewModel::GetName() + { + return this->__vwsn_prop_Name; + } + + void AccountButtonViewModel::SetName(const ::vl::WString& __vwsn_value_) + { + (this->__vwsn_prop_Name = __vwsn_value_); + } + + ::vl::Ptr<::vl::presentation::INativeImage> AccountButtonViewModel::GetImage() + { + return this->__vwsn_prop_Image; + } + + void AccountButtonViewModel::SetImage(::vl::Ptr<::vl::presentation::INativeImage> __vwsn_value_) + { + (this->__vwsn_prop_Image = __vwsn_value_); + } + + AccountButtonViewModel::AccountButtonViewModel() + : __vwsn_prop_Controller(static_cast<::vl::presentation::controls::GuiSelectableButton::GroupController*>(nullptr)) + , __vwsn_prop_Name(::vl::WString(L"", false)) + , __vwsn_prop_Image(::vl::Ptr<::vl::presentation::INativeImage>()) + { + } + +/*********************************************************************** +Class (::demo::VideoViewModel) +***********************************************************************/ + + ::vl::WString VideoViewModel::GetAuthor() + { + return this->__vwsn_prop_Author; + } + + void VideoViewModel::SetAuthor(const ::vl::WString& __vwsn_value_) + { + if ((this->__vwsn_prop_Author != __vwsn_value_)) + { + (this->__vwsn_prop_Author = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->AuthorChanged)(); + } + } + + ::vl::WString VideoViewModel::GetTitle() + { + return this->__vwsn_prop_Title; + } + + void VideoViewModel::SetTitle(const ::vl::WString& __vwsn_value_) + { + if ((this->__vwsn_prop_Title != __vwsn_value_)) + { + (this->__vwsn_prop_Title = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->TitleChanged)(); + } + } + + ::vl::presentation::FontProperties VideoViewModel::GetFont() + { + return this->__vwsn_prop_Font; + } + + void VideoViewModel::SetFont(::vl::presentation::FontProperties __vwsn_value_) + { + if ((this->__vwsn_prop_Font != __vwsn_value_)) + { + (this->__vwsn_prop_Font = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->FontChanged)(); + } + } + + VideoViewModel::VideoViewModel() + : __vwsn_prop_Author(::vl::WString(L"", false)) + , __vwsn_prop_Title(::vl::WString(L"", false)) + , __vwsn_prop_Font(::vl::presentation::FontProperties{}) + { + } + +} +#undef GLOBAL_SYMBOL +#undef GLOBAL_NAME +#undef GLOBAL_OBJ +#undef USERIMPL + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.h new file mode 100644 index 00000000..9c9e5cfb --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.h @@ -0,0 +1,804 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES + +#include "GacUI.h" + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +namespace vl_workflow_global +{ + struct __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__; + class __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; +} + +namespace demo +{ + class AccountButtonTemplateConstructor; + class AccountButtonTemplate; + class AccountItemTemplateConstructor; + class AccountItemTemplate; + class AccountMenuItemTemplateConstructor; + class AccountMenuItemTemplate; + class MainWindowConstructor; + class MainWindow; + class VideoItemTemplateConstructor; + class VideoItemTemplate; + class AccountButtonViewModel; + class VideoViewModel; + + class AccountButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::demo::AccountButtonTemplate* self; + ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement> __vwsn_precompile_0; + ::vl::presentation::compositions::GuiResponsiveViewComposition* __vwsn_precompile_1; + ::vl::presentation::compositions::GuiResponsiveFixedComposition* __vwsn_precompile_2; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_3; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_4; + ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement> __vwsn_precompile_5; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_6; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_7; + ::vl::presentation::compositions::GuiResponsiveFixedComposition* __vwsn_precompile_8; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_9; + ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement> __vwsn_precompile_10; + void __vwsn_initialize_instance_(::demo::AccountButtonTemplate* __vwsn_this_); + public: + AccountButtonTemplateConstructor(); + }; + + class AccountButtonTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::demo::AccountButtonTemplateConstructor, public ::vl::reflection::Description + { + friend class ::demo::AccountButtonTemplateConstructor; + friend class ::vl_workflow_global::__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_prop_ViewModel; + ::vl::Ptr<::demo::AccountButtonViewModel> GetViewModel(); + void SetViewModel(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_value_); + ::vl::Event ViewModelChanged; + AccountButtonTemplate(); + ~AccountButtonTemplate(); + }; + + class AccountItemTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend struct ::vl_workflow_global::__vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::vl::Ptr<::demo::AccountButtonViewModel> ViewModel; + ::demo::AccountItemTemplate* __vwsn_precompile_0; + ::vl::presentation::controls::GuiSelectableButton* __vwsn_precompile_1; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_2; + void __vwsn_initialize_instance_(::demo::AccountItemTemplate* __vwsn_this_); + public: + AccountItemTemplateConstructor(); + }; + + class AccountItemTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::demo::AccountItemTemplateConstructor, public ::vl::reflection::Description + { + friend class ::demo::AccountItemTemplateConstructor; + friend struct ::vl_workflow_global::__vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_parameter_ViewModel; + ::vl::Ptr<::demo::AccountButtonViewModel> GetViewModel(); + AccountItemTemplate(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_ctor_parameter_ViewModel); + ~AccountItemTemplate(); + }; + + class AccountMenuItemTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::vl::Ptr<::demo::AccountButtonViewModel> ViewModel; + ::demo::AccountMenuItemTemplate* __vwsn_precompile_0; + ::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_1; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_2; + void __vwsn_initialize_instance_(::demo::AccountMenuItemTemplate* __vwsn_this_); + public: + AccountMenuItemTemplateConstructor(); + }; + + class AccountMenuItemTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::demo::AccountMenuItemTemplateConstructor, public ::vl::reflection::Description + { + friend class ::demo::AccountMenuItemTemplateConstructor; + friend class ::vl_workflow_global::__vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_parameter_ViewModel; + ::vl::Ptr<::demo::AccountButtonViewModel> GetViewModel(); + AccountMenuItemTemplate(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_ctor_parameter_ViewModel); + ~AccountMenuItemTemplate(); + }; + + class MainWindowConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::demo::MainWindow* self; + ::vl::presentation::controls::GuiSelectableButton::MutexGroupController* accountController; + ::vl::presentation::controls::GuiScrollContainer* videoContainer; + ::vl::presentation::compositions::GuiResponsiveContainerComposition* __vwsn_precompile_0; + ::vl::presentation::compositions::GuiResponsiveViewComposition* __vwsn_precompile_1; + ::vl::presentation::compositions::GuiResponsiveGroupComposition* __vwsn_precompile_2; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_3; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_4; + ::vl::presentation::compositions::GuiRepeatStackComposition* __vwsn_precompile_5; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_6; + ::vl::presentation::compositions::GuiResponsiveSharedComposition* __vwsn_precompile_7; + ::vl::presentation::compositions::GuiResponsiveFixedComposition* __vwsn_precompile_8; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_9; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_10; + ::vl::presentation::controls::GuiToolstripMenuBar* __vwsn_precompile_11; + ::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_12; + ::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_13; + ::vl::presentation::compositions::GuiRepeatStackComposition* __vwsn_precompile_14; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_15; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_16; + ::vl::presentation::compositions::GuiResponsiveSharedComposition* __vwsn_precompile_17; + ::vl::presentation::compositions::GuiRepeatFlowComposition* __vwsn_precompile_18; + void __vwsn_initialize_instance_(::demo::MainWindow* __vwsn_this_); + public: + MainWindowConstructor(); + }; + + class MainWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::MainWindowConstructor, public ::vl::reflection::Description + { + friend class ::demo::MainWindowConstructor; + friend class ::vl_workflow_global::__vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::vl::reflection::description::IValueObservableList> accounts; + ::vl::Ptr<::vl::reflection::description::IValueObservableList> videos; + MainWindow(); + void __vwsn_instance_ctor_(); + ~MainWindow(); + }; + + class VideoItemTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::demo::VideoItemTemplate* self; + ::vl::Ptr<::demo::VideoViewModel> ViewModel; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_0; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_1; + ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement> __vwsn_precompile_2; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_3; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_4; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_5; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_6; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_7; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_8; + void __vwsn_initialize_instance_(::demo::VideoItemTemplate* __vwsn_this_); + public: + VideoItemTemplateConstructor(); + }; + + class VideoItemTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::demo::VideoItemTemplateConstructor, public ::vl::reflection::Description + { + friend class ::demo::VideoItemTemplateConstructor; + friend class ::vl_workflow_global::__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::VideoViewModel> __vwsn_parameter_ViewModel; + ::vl::Ptr<::demo::VideoViewModel> GetViewModel(); + VideoItemTemplate(::vl::Ptr<::demo::VideoViewModel> __vwsn_ctor_parameter_ViewModel); + ~VideoItemTemplate(); + }; + + class AccountButtonViewModel : public ::vl::Object, public ::vl::reflection::Description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + private: + ::vl::presentation::controls::GuiSelectableButton::GroupController* __vwsn_prop_Controller; + public: + ::vl::presentation::controls::GuiSelectableButton::GroupController* GetController(); + void SetController(::vl::presentation::controls::GuiSelectableButton::GroupController* __vwsn_value_); + private: + ::vl::WString __vwsn_prop_Name; + public: + ::vl::WString GetName(); + void SetName(const ::vl::WString& __vwsn_value_); + private: + ::vl::Ptr<::vl::presentation::INativeImage> __vwsn_prop_Image; + public: + ::vl::Ptr<::vl::presentation::INativeImage> GetImage(); + void SetImage(::vl::Ptr<::vl::presentation::INativeImage> __vwsn_value_); + AccountButtonViewModel(); + }; + + class VideoViewModel : public ::vl::Object, public ::vl::reflection::Description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + private: + ::vl::WString __vwsn_prop_Author; + public: + ::vl::WString GetAuthor(); + void SetAuthor(const ::vl::WString& __vwsn_value_); + ::vl::Event AuthorChanged; + private: + ::vl::WString __vwsn_prop_Title; + public: + ::vl::WString GetTitle(); + void SetTitle(const ::vl::WString& __vwsn_value_); + ::vl::Event TitleChanged; + private: + ::vl::presentation::FontProperties __vwsn_prop_Font; + public: + ::vl::presentation::FontProperties GetFont(); + void SetFont(::vl::presentation::FontProperties __vwsn_value_); + ::vl::Event FontChanged; + VideoViewModel(); + }; + +} +/*********************************************************************** +Global Variables and Functions +***********************************************************************/ + +namespace vl_workflow_global +{ + class Demo + { + public: + + static Demo& Instance(); + }; + +/*********************************************************************** +Closures +***********************************************************************/ + + struct __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__ + { + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__ + { + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__ + { + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__ + { + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountItemTemplateConstructor* __vwsnthis_0; + + __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__(::demo::AccountItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountMenuItemTemplateConstructor* __vwsnthis_0; + + __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__(::demo::AccountMenuItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + class __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::demo::AccountButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountMenuItemTemplateConstructor* __vwsnthis_0; + + __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountMenuItemTemplateConstructor* __vwsnctorthis_0); + + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::MainWindowConstructor* __vwsnctorthis_0); + + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + bool Open() override; + bool Update() override; + bool Close() override; + }; +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif + +#endif diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.cpp b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.cpp new file mode 100644 index 00000000..2128d69b --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.cpp @@ -0,0 +1,244 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#include "DemoReflection.h" + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +/*********************************************************************** +Reflection +***********************************************************************/ + +namespace vl +{ + namespace reflection + { + namespace description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + IMPL_CPP_TYPE_INFO(demo::AccountButtonTemplate) + IMPL_CPP_TYPE_INFO(demo::AccountButtonTemplateConstructor) + IMPL_CPP_TYPE_INFO(demo::AccountButtonViewModel) + IMPL_CPP_TYPE_INFO(demo::AccountItemTemplate) + IMPL_CPP_TYPE_INFO(demo::AccountItemTemplateConstructor) + IMPL_CPP_TYPE_INFO(demo::AccountMenuItemTemplate) + IMPL_CPP_TYPE_INFO(demo::AccountMenuItemTemplateConstructor) + IMPL_CPP_TYPE_INFO(demo::MainWindow) + IMPL_CPP_TYPE_INFO(demo::MainWindowConstructor) + IMPL_CPP_TYPE_INFO(demo::VideoItemTemplate) + IMPL_CPP_TYPE_INFO(demo::VideoItemTemplateConstructor) + IMPL_CPP_TYPE_INFO(demo::VideoViewModel) + +#define _ , + BEGIN_CLASS_MEMBER(::demo::AccountButtonTemplate) + CLASS_MEMBER_CONSTRUCTOR(::demo::AccountButtonTemplate*(), NO_PARAMETER) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetViewModel, { L"__vwsn_value_" }) + CLASS_MEMBER_EVENT(ViewModelChanged) + CLASS_MEMBER_FIELD(__vwsn_prop_ViewModel) + CLASS_MEMBER_PROPERTY_EVENT(ViewModel, GetViewModel, SetViewModel, ViewModelChanged) + END_CLASS_MEMBER(::demo::AccountButtonTemplate) + + BEGIN_CLASS_MEMBER(::demo::AccountButtonTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::AccountButtonTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_10) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(__vwsn_precompile_3) + CLASS_MEMBER_FIELD(__vwsn_precompile_4) + CLASS_MEMBER_FIELD(__vwsn_precompile_5) + CLASS_MEMBER_FIELD(__vwsn_precompile_6) + CLASS_MEMBER_FIELD(__vwsn_precompile_7) + CLASS_MEMBER_FIELD(__vwsn_precompile_8) + CLASS_MEMBER_FIELD(__vwsn_precompile_9) + CLASS_MEMBER_FIELD(self) + END_CLASS_MEMBER(::demo::AccountButtonTemplateConstructor) + + BEGIN_CLASS_MEMBER(::demo::AccountButtonViewModel) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::AccountButtonViewModel>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(GetController, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetName, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetController, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(SetImage, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(SetName, { L"__vwsn_value_" }) + CLASS_MEMBER_FIELD(__vwsn_prop_Controller) + CLASS_MEMBER_FIELD(__vwsn_prop_Image) + CLASS_MEMBER_FIELD(__vwsn_prop_Name) + CLASS_MEMBER_PROPERTY(Controller, GetController, SetController) + CLASS_MEMBER_PROPERTY(Image, GetImage, SetImage) + CLASS_MEMBER_PROPERTY(Name, GetName, SetName) + END_CLASS_MEMBER(::demo::AccountButtonViewModel) + + BEGIN_CLASS_MEMBER(::demo::AccountItemTemplate) + CLASS_MEMBER_CONSTRUCTOR(::demo::AccountItemTemplate*(::vl::Ptr<::demo::AccountButtonViewModel>), { L"__vwsn_ctor_parameter_ViewModel" }) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) + CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) + END_CLASS_MEMBER(::demo::AccountItemTemplate) + + BEGIN_CLASS_MEMBER(::demo::AccountItemTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::AccountItemTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(ViewModel) + END_CLASS_MEMBER(::demo::AccountItemTemplateConstructor) + + BEGIN_CLASS_MEMBER(::demo::AccountMenuItemTemplate) + CLASS_MEMBER_CONSTRUCTOR(::demo::AccountMenuItemTemplate*(::vl::Ptr<::demo::AccountButtonViewModel>), { L"__vwsn_ctor_parameter_ViewModel" }) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) + CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) + END_CLASS_MEMBER(::demo::AccountMenuItemTemplate) + + BEGIN_CLASS_MEMBER(::demo::AccountMenuItemTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::AccountMenuItemTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(ViewModel) + END_CLASS_MEMBER(::demo::AccountMenuItemTemplateConstructor) + + BEGIN_CLASS_MEMBER(::demo::MainWindow) + CLASS_MEMBER_CONSTRUCTOR(::demo::MainWindow*(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_instance_ctor_, NO_PARAMETER) + CLASS_MEMBER_FIELD(accounts) + CLASS_MEMBER_FIELD(videos) + END_CLASS_MEMBER(::demo::MainWindow) + + BEGIN_CLASS_MEMBER(::demo::MainWindowConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::MainWindowConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_10) + CLASS_MEMBER_FIELD(__vwsn_precompile_11) + CLASS_MEMBER_FIELD(__vwsn_precompile_12) + CLASS_MEMBER_FIELD(__vwsn_precompile_13) + CLASS_MEMBER_FIELD(__vwsn_precompile_14) + CLASS_MEMBER_FIELD(__vwsn_precompile_15) + CLASS_MEMBER_FIELD(__vwsn_precompile_16) + CLASS_MEMBER_FIELD(__vwsn_precompile_17) + CLASS_MEMBER_FIELD(__vwsn_precompile_18) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(__vwsn_precompile_3) + CLASS_MEMBER_FIELD(__vwsn_precompile_4) + CLASS_MEMBER_FIELD(__vwsn_precompile_5) + CLASS_MEMBER_FIELD(__vwsn_precompile_6) + CLASS_MEMBER_FIELD(__vwsn_precompile_7) + CLASS_MEMBER_FIELD(__vwsn_precompile_8) + CLASS_MEMBER_FIELD(__vwsn_precompile_9) + CLASS_MEMBER_FIELD(accountController) + CLASS_MEMBER_FIELD(self) + CLASS_MEMBER_FIELD(videoContainer) + END_CLASS_MEMBER(::demo::MainWindowConstructor) + + BEGIN_CLASS_MEMBER(::demo::VideoItemTemplate) + CLASS_MEMBER_CONSTRUCTOR(::demo::VideoItemTemplate*(::vl::Ptr<::demo::VideoViewModel>), { L"__vwsn_ctor_parameter_ViewModel" }) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) + CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) + END_CLASS_MEMBER(::demo::VideoItemTemplate) + + BEGIN_CLASS_MEMBER(::demo::VideoItemTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::VideoItemTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(__vwsn_precompile_3) + CLASS_MEMBER_FIELD(__vwsn_precompile_4) + CLASS_MEMBER_FIELD(__vwsn_precompile_5) + CLASS_MEMBER_FIELD(__vwsn_precompile_6) + CLASS_MEMBER_FIELD(__vwsn_precompile_7) + CLASS_MEMBER_FIELD(__vwsn_precompile_8) + CLASS_MEMBER_FIELD(ViewModel) + CLASS_MEMBER_FIELD(self) + END_CLASS_MEMBER(::demo::VideoItemTemplateConstructor) + + BEGIN_CLASS_MEMBER(::demo::VideoViewModel) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::VideoViewModel>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(GetAuthor, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetFont, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetTitle, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetAuthor, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(SetFont, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(SetTitle, { L"__vwsn_value_" }) + CLASS_MEMBER_EVENT(AuthorChanged) + CLASS_MEMBER_EVENT(FontChanged) + CLASS_MEMBER_EVENT(TitleChanged) + CLASS_MEMBER_FIELD(__vwsn_prop_Author) + CLASS_MEMBER_FIELD(__vwsn_prop_Font) + CLASS_MEMBER_FIELD(__vwsn_prop_Title) + CLASS_MEMBER_PROPERTY_EVENT(Author, GetAuthor, SetAuthor, AuthorChanged) + CLASS_MEMBER_PROPERTY_EVENT(Font, GetFont, SetFont, FontChanged) + CLASS_MEMBER_PROPERTY_EVENT(Title, GetTitle, SetTitle, TitleChanged) + END_CLASS_MEMBER(::demo::VideoViewModel) + +#undef _ + class DemoTypeLoader : public Object, public ITypeLoader + { + public: + void Load(ITypeManager* manager) + { + ADD_TYPE_INFO(::demo::AccountButtonTemplate) + ADD_TYPE_INFO(::demo::AccountButtonTemplateConstructor) + ADD_TYPE_INFO(::demo::AccountButtonViewModel) + ADD_TYPE_INFO(::demo::AccountItemTemplate) + ADD_TYPE_INFO(::demo::AccountItemTemplateConstructor) + ADD_TYPE_INFO(::demo::AccountMenuItemTemplate) + ADD_TYPE_INFO(::demo::AccountMenuItemTemplateConstructor) + ADD_TYPE_INFO(::demo::MainWindow) + ADD_TYPE_INFO(::demo::MainWindowConstructor) + ADD_TYPE_INFO(::demo::VideoItemTemplate) + ADD_TYPE_INFO(::demo::VideoItemTemplateConstructor) + ADD_TYPE_INFO(::demo::VideoViewModel) + } + + void Unload(ITypeManager* manager) + { + } + }; +#endif + + bool LoadDemoTypes() + { +#ifndef VCZH_DEBUG_NO_REFLECTION + if (auto manager = GetGlobalTypeManager()) + { + return manager->AddTypeLoader(MakePtr()); + } +#endif + return false; + } + } + } +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.h b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.h new file mode 100644 index 00000000..76de20ce --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.h @@ -0,0 +1,64 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMOREFLECTION +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMOREFLECTION + +#include "Demo.h" + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +/*********************************************************************** +Reflection +***********************************************************************/ + +namespace vl +{ + namespace reflection + { + namespace description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + DECL_TYPE_INFO(::demo::AccountButtonTemplate) + DECL_TYPE_INFO(::demo::AccountButtonTemplateConstructor) + DECL_TYPE_INFO(::demo::AccountButtonViewModel) + DECL_TYPE_INFO(::demo::AccountItemTemplate) + DECL_TYPE_INFO(::demo::AccountItemTemplateConstructor) + DECL_TYPE_INFO(::demo::AccountMenuItemTemplate) + DECL_TYPE_INFO(::demo::AccountMenuItemTemplateConstructor) + DECL_TYPE_INFO(::demo::MainWindow) + DECL_TYPE_INFO(::demo::MainWindowConstructor) + DECL_TYPE_INFO(::demo::VideoItemTemplate) + DECL_TYPE_INFO(::demo::VideoItemTemplateConstructor) + DECL_TYPE_INFO(::demo::VideoViewModel) +#endif + + extern bool LoadDemoTypes(); + } + } +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif + +#endif diff --git a/Tutorial/GacUI_Layout/UIRes/Responsive2.bin b/Tutorial/GacUI_Layout/UIRes/Responsive2.bin new file mode 100644 index 00000000..ffe7d05d Binary files /dev/null and b/Tutorial/GacUI_Layout/UIRes/Responsive2.bin differ