From 08b2c69da3f1f719a493d018059de7ba9281ba10 Mon Sep 17 00:00:00 2001 From: Zihan Chen Date: Tue, 24 Jan 2017 02:09:33 -0800 Subject: [PATCH] Update HelloWorld/MVVM --- Import/GacUI.cpp | 32 +- Import/GacUICompiler.cpp | 1 + Import/GacUIReflection.cpp | 22 +- Import/VlppWorkflowCompiler.cpp | 2 +- Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj | 8 +- Tutorial/GacUI_HelloWorlds/MVVM/Main.cpp | 4 +- .../GacUI_HelloWorlds/MVVM/UI/MainWindow.xml | 22 +- .../GacUI_HelloWorlds/MVVM/UI/Resource.xml | 10 +- .../MVVM/UI/Source/HelloWorld.h | 69 +- .../UI/Source/HelloWorldPartialClasses.cpp | 1360 ++++++++++++++++- .../MVVM/UI/Source/HelloWorldPartialClasses.h | 216 +-- .../MVVM/UI/Source/MainWindow.cpp | 90 +- .../MVVM/UI/Source/MainWindow.h | 76 +- .../GacUI_HelloWorlds/MVVM/UI/ViewModel.xml | 4 +- Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin | Bin 379 -> 522 bytes Tutorial/GacUI_HelloWorlds/UIRes/MVVM.bin | Bin 716019 -> 548 bytes .../GacUI_HelloWorlds/Xml/UI/Resource.xml | 3 +- 17 files changed, 1692 insertions(+), 227 deletions(-) diff --git a/Import/GacUI.cpp b/Import/GacUI.cpp index 51379815..befc45e6 100644 --- a/Import/GacUI.cpp +++ b/Import/GacUI.cpp @@ -635,14 +635,18 @@ GuiApplicationMain GetCurrentController()->InputService()->StartTimer(); GuiApplication app; application=&app; - + +#ifndef VCZH_DEBUG_NO_REFLECTION GetGlobalTypeManager()->Load(); +#endif GetPluginManager()->Load(); theme::SetCurrentTheme(theme.Obj()); GuiMain(); theme::SetCurrentTheme(0); DestroyPluginManager(); +#ifndef VCZH_DEBUG_NO_REFLECTION DestroyGlobalTypeManager(); +#endif ThreadLocalStorage::DisposeStorages(); FinalizeGlobalStorage(); } @@ -4716,6 +4720,7 @@ namespace vl Value ReadProperty(const Value& thisObject, const WString& propertyName) { +#ifndef VCZH_DEBUG_NO_REFLECTION if (!thisObject.IsNull() && propertyName != L"") { auto td = thisObject.GetTypeDescriptor(); @@ -4730,10 +4735,14 @@ namespace vl } } return thisObject; +#else + CHECK_FAIL(L"ReadProperty(const Value&, const WString&)#This function cannot be called without reflection enabled."); +#endif } void WriteProperty(Value& thisObject, const WString& propertyName, const Value& newValue) { +#ifndef VCZH_DEBUG_NO_REFLECTION if (!thisObject.IsNull() && propertyName != L"") { auto td = thisObject.GetTypeDescriptor(); @@ -4743,10 +4752,14 @@ namespace vl info->SetValue(thisObject, newValue); } } +#else + CHECK_FAIL(L"WriteProperty(const Value&, const WString&, const Value&)#This function cannot be called without reflection enabled."); +#endif } WString GetValueText(const Value& value) { +#ifndef VCZH_DEBUG_NO_REFLECTION if (auto td = value.GetTypeDescriptor()) { if (auto st = td->GetSerializableType()) @@ -4758,6 +4771,9 @@ namespace vl return L"<" + td->GetTypeName() + L">"; } return L""; +#else + CHECK_FAIL(L"GetValueText(const Value&)#This function cannot be called without reflection enabled."); +#endif } /*********************************************************************** @@ -4903,6 +4919,7 @@ GuiBindableTextList::ItemSource bool GuiBindableTextList::ItemSource::GetChecked(vint itemIndex) { +#ifndef VCZH_DEBUG_NO_REFLECTION if (itemSource) { if (0 <= itemIndex && itemIndex < itemSource->GetCount()) @@ -4914,6 +4931,9 @@ GuiBindableTextList::ItemSource } } } +#else + CHECK_FAIL(L"GuiBindableTextList::ItemSource::GetChecked(vint)#This function cannot be called without reflection enabled."); +#endif return false; } @@ -5396,6 +5416,7 @@ GuiBindableTreeView::ItemSourceNode void GuiBindableTreeView::ItemSourceNode::PrepareChildren() { +#ifndef VCZH_DEBUG_NO_REFLECTION if (!childrenVirtualList) { auto value = ReadProperty(itemSource, rootProvider->childrenProperty); @@ -5442,6 +5463,9 @@ GuiBindableTreeView::ItemSourceNode children.Add(node); } } +#else + CHECK_FAIL(L"GuiBindableTreeView::ItemSourceNode::PrepareChildren()#This function cannot be called without reflection enabled."); +#endif } void GuiBindableTreeView::ItemSourceNode::UnprepareChildren() @@ -26344,6 +26368,7 @@ GuiBindableDataEditor Helper Functions ***********************************************************************/ +#ifndef VCZH_DEBUG_NO_REFLECTION class GuiTemplateReflectableFactory : public Object, public virtual GuiTemplate::IFactory { protected: @@ -26399,6 +26424,7 @@ Helper Functions throw ArgumentException(message); } }; +#endif void SplitBySemicolon(const WString& input, collections::List& fragments) { @@ -26426,6 +26452,7 @@ Helper Functions Ptr CreateTemplateFactory(const WString& typeValues) { +#ifndef VCZH_DEBUG_NO_REFLECTION List types; List typeNames; SplitBySemicolon(typeValues, typeNames); @@ -26437,6 +26464,9 @@ Helper Functions ); return new GuiTemplateReflectableFactory(types); +#else + CHECK_FAIL(L"CreateTemplateFactory(const WString&)#This function cannot be called without reflection enabled."); +#endif } } } diff --git a/Import/GacUICompiler.cpp b/Import/GacUICompiler.cpp index 0bd91c24..ae9fdd5a 100644 --- a/Import/GacUICompiler.cpp +++ b/Import/GacUICompiler.cpp @@ -1802,6 +1802,7 @@ Instance Type Resolver (Instance) switch (context.passIndex) { case Instance_CompileInstanceTypes: + DELETE_ASSEMBLY(Path_Shared) path = Path_TemporaryClass; break; case Instance_CompileEventHandlers: diff --git a/Import/GacUIReflection.cpp b/Import/GacUIReflection.cpp index 7513358e..6c53f251 100644 --- a/Import/GacUIReflection.cpp +++ b/Import/GacUIReflection.cpp @@ -3173,7 +3173,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiSolidBorderElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>) CLASS_MEMBER_PROPERTY_FAST(Color) CLASS_MEMBER_PROPERTY_FAST(Shape) @@ -3181,7 +3181,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiRoundBorderElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiRoundBorderElement>) CLASS_MEMBER_PROPERTY_FAST(Color) CLASS_MEMBER_PROPERTY_FAST(Radius) @@ -3189,7 +3189,7 @@ Type Declaration BEGIN_CLASS_MEMBER(Gui3DBorderElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::Gui3DBorderElement>) CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"}) @@ -3199,7 +3199,7 @@ Type Declaration BEGIN_CLASS_MEMBER(Gui3DSplitterElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::Gui3DSplitterElement>) CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"}) @@ -3216,7 +3216,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiSolidBackgroundElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>) CLASS_MEMBER_PROPERTY_FAST(Color) CLASS_MEMBER_PROPERTY_FAST(Shape) @@ -3224,7 +3224,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiGradientBackgroundElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiGradientBackgroundElement>) CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"}) @@ -3242,7 +3242,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiSolidLabelElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>) CLASS_MEMBER_METHOD(SetAlignments, {L"horizontal" _ L"vertical"}) @@ -3259,7 +3259,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiImageFrameElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>) CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER) CLASS_MEMBER_METHOD_OVERLOAD(SetImage, {L"value"}, void(GuiImageFrameElement::*)(Ptr)) @@ -3275,7 +3275,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiPolygonElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>) CLASS_MEMBER_METHOD_RENAME(GetPoints, GetPointsArray, NO_PARAMETER); CLASS_MEMBER_METHOD_RENAME(SetPoints, SetPointsArray, {L"points"}); @@ -3322,7 +3322,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiColorizedTextElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiColorizedTextElement>) CLASS_MEMBER_PROPERTY_FAST(Font) CLASS_MEMBER_PROPERTY_FAST(PasswordChar) @@ -3341,7 +3341,7 @@ Type Declaration BEGIN_CLASS_MEMBER(GuiDocumentElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) - CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor) + CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiDocumentElement>) CLASS_MEMBER_PROPERTY_FAST(Document) CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretBegin) diff --git a/Import/VlppWorkflowCompiler.cpp b/Import/VlppWorkflowCompiler.cpp index 2549ca27..d18c7ec5 100644 --- a/Import/VlppWorkflowCompiler.cpp +++ b/Import/VlppWorkflowCompiler.cpp @@ -19677,7 +19677,7 @@ namespace vl writer.WriteChar(L' '); if (arguments.Count() == 0) { - writer.WriteString(methodInfo->GetParameter(i)->GetName()); + writer.WriteString(ConvertName(methodInfo->GetParameter(i)->GetName())); } else { diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj b/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj index 101e93e0..6e06f525 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj +++ b/Tutorial/GacUI_HelloWorlds/MVVM/MVVM.vcxproj @@ -53,7 +53,7 @@ Level3 Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION true @@ -69,7 +69,7 @@ MaxSpeed true true - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION true @@ -96,8 +96,8 @@ - - {8018d622-66ba-4e65-9d03-bdac37ea9a54} + + {96c559ca-9718-4bec-a053-28a0ab6a8ca2} diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/Main.cpp b/Tutorial/GacUI_HelloWorlds/MVVM/Main.cpp index 23dbb5d7..d9eb2f7c 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/Main.cpp +++ b/Tutorial/GacUI_HelloWorlds/MVVM/Main.cpp @@ -27,7 +27,7 @@ public: return userName; } - void SetUserName(WString value)override + void SetUserName(const WString& value)override { userName = value; UserNameErrorChanged(); @@ -47,7 +47,7 @@ public: return password; } - void SetPassword(WString value)override + void SetPassword(const WString& value)override { password = value; PasswordErrorChanged(); diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/UI/MainWindow.xml b/Tutorial/GacUI_HelloWorlds/MVVM/UI/MainWindow.xml index d6985a0e..c9d3e33b 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/MainWindow.xml +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/MainWindow.xml @@ -1,7 +1,27 @@ - + + @cpp:Protected + var hasLoggedIn : bool = false; + event HasLoggedInChanged(); + + func GetHasLoggedIn() : bool + { + return hasLoggedIn; + } + + func SetHasLoggedIn(value : bool) : void + { + if (hasLoggedIn != value) + { + hasLoggedIn = value; + HasLoggedInChanged(); + } + } + + prop HasLoggedIn : bool {GetHasLoggedIn, SetHasLoggedIn : HasLoggedInChanged} + diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Resource.xml b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Resource.xml index 4cda92c8..49324f64 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Resource.xml +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Resource.xml @@ -2,14 +2,10 @@ - Source - GacUIReflection.h + Source + ..\..\UIRes\MVVM.bin + GacUI.h HelloWorld - - - - ..\..\UIRes - MVVM.bin diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorld.h b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorld.h index aeb87bc3..84e8b59c 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorld.h +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorld.h @@ -1,17 +1,68 @@ -/*********************************************************************** -Vczh Library++ 3.0 -Developer: Zihan Chen(vczh) -GacUI::HelloWorld +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! -This file is generated by: Vczh GacUI Resource Code Generator -************************************************************************ -DO NOT MODIFY +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries ***********************************************************************/ -#ifndef VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld -#define VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_HELLOWORLD +#define VCZH_WORKFLOW_COMPILER_GENERATED_HELLOWORLD #include "HelloWorldPartialClasses.h" #include "MainWindow.h" +/*********************************************************************** +Reflection +***********************************************************************/ + +namespace vl +{ + namespace reflection + { + namespace description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + DECL_TYPE_INFO(::helloworld::MainWindow) + DECL_TYPE_INFO(::helloworld::MainWindowConstructor) + DECL_TYPE_INFO(::vm::IViewModel) + + BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(::vm::IViewModel) + ::vl::WString GetPassword() override + { + INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetPassword); + } + ::vl::WString GetPasswordError() override + { + INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetPasswordError); + } + ::vl::WString GetUserName() override + { + INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetUserName); + } + ::vl::WString GetUserNameError() override + { + INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetUserNameError); + } + void SetPassword(const ::vl::WString& value) override + { + INVOKE_INTERFACE_PROXY(SetPassword, value); + } + void SetUserName(const ::vl::WString& value) override + { + INVOKE_INTERFACE_PROXY(SetUserName, value); + } + bool SignUp() override + { + INVOKEGET_INTERFACE_PROXY_NOPARAMS(SignUp); + } + END_INTERFACE_PROXY(::vm::IViewModel) +#endif + + extern bool LoadHelloWorldTypes(); + } + } +} + #endif diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.cpp b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.cpp index 04e5260e..10740e42 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.cpp +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.cpp @@ -1,87 +1,1339 @@ -/*********************************************************************** -Vczh Library++ 3.0 -Developer: Zihan Chen(vczh) -GacUI::Partial Classes +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! -This file is generated by: Vczh GacUI Resource Code Generator -************************************************************************ -DO NOT MODIFY +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries ***********************************************************************/ #include "HelloWorld.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 + +#define GLOBAL_SYMBOL ::vl_workflow_global::HelloWorld:: +#define GLOBAL_NAME ::vl_workflow_global::HelloWorld::Instance(). +#define GLOBAL_OBJ &::vl_workflow_global::HelloWorld::Instance() +#define USERIMPL(...) + +/*********************************************************************** +Global Variables +***********************************************************************/ + +BEGIN_GLOBAL_STORAGE_CLASS(vl_workflow_global_HelloWorld) + vl_workflow_global::HelloWorld instance; + INITIALIZE_GLOBAL_STORAGE_CLASS + FINALIZE_GLOBAL_STORAGE_CLASS +END_GLOBAL_STORAGE_CLASS(vl_workflow_global_HelloWorld) + +namespace vl_workflow_global +{ +/*********************************************************************** +Closure Definitions +***********************************************************************/ + + struct __vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__ + { + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(::vl::reflection::description::Value __vwsn_value_) const; + }; + + struct __vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__ + { + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(::vl::reflection::description::Value __vwsn_value_) const; + }; + + struct __vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__ + { + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(::vl::reflection::description::Value __vwsn_value_) const; + }; + + struct __vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__ + { + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + }; + + struct __vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__ + { + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(::vl::reflection::description::Value __vwsn_value_) const; + }; + + struct __vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__ + { + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(::vl::reflection::description::Value __vwsn_value_) const; + }; + + struct __vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__ + { + ::helloworld::MainWindow* __vwsn_this_; + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindow* __vwsnctor___vwsn_this_, ::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* __vwsno_1, ::vl::presentation::compositions::GuiEventArgs* __vwsno_2) const; + }; + + class __vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener : public ::vl::Object, public virtual ::vl::reflection::description::IValueListener + { + public: + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + ::vl::reflection::description::IValueSubscription* __vwsn_subscription_; + ::vl::reflection::description::IValueSubscription* __vwsnthis_0; + ::helloworld::MainWindowConstructor* __vwsnthis_1; + + __vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1); + + ::vl::reflection::description::IValueSubscription* GetSubscription() override; + bool GetStopped() override; + bool StopListening() override; + }; + + class __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::vm::IViewModel> __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; + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + void __vwsn_bind_initialize_(); + ::vl::Ptr<::vl::reflection::description::IValueListener> Subscribe(const ::vl::Func& __vwsn_bind_callback_) override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener : public ::vl::Object, public virtual ::vl::reflection::description::IValueListener + { + public: + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + ::vl::reflection::description::IValueSubscription* __vwsn_subscription_; + ::vl::reflection::description::IValueSubscription* __vwsnthis_0; + ::helloworld::MainWindowConstructor* __vwsnthis_1; + + __vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1); + + ::vl::reflection::description::IValueSubscription* GetSubscription() override; + bool GetStopped() override; + bool StopListening() override; + }; + + class __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::vm::IViewModel> __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; + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + void __vwsn_bind_initialize_(); + ::vl::Ptr<::vl::reflection::description::IValueListener> Subscribe(const ::vl::Func& __vwsn_bind_callback_) override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener : public ::vl::Object, public virtual ::vl::reflection::description::IValueListener + { + public: + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + ::vl::reflection::description::IValueSubscription* __vwsn_subscription_; + ::vl::reflection::description::IValueSubscription* __vwsnthis_0; + ::helloworld::MainWindowConstructor* __vwsnthis_1; + + __vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1); + + ::vl::reflection::description::IValueSubscription* GetSubscription() override; + bool GetStopped() override; + bool StopListening() override; + }; + + class __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::vm::IViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vm::IViewModel> __vwsn_bind_cache_1; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; + ::helloworld::MainWindow* __vwsn_bind_cache_2 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_2_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + void __vwsn_bind_callback_1_0(); + void __vwsn_bind_callback_2_0(); + void __vwsn_bind_initialize_(); + ::vl::Ptr<::vl::reflection::description::IValueListener> Subscribe(const ::vl::Func& __vwsn_bind_callback_) override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener : public ::vl::Object, public virtual ::vl::reflection::description::IValueListener + { + public: + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + ::vl::reflection::description::IValueSubscription* __vwsn_subscription_; + ::vl::reflection::description::IValueSubscription* __vwsnthis_0; + ::helloworld::MainWindowConstructor* __vwsnthis_1; + + __vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1); + + ::vl::reflection::description::IValueSubscription* GetSubscription() override; + bool GetStopped() override; + bool StopListening() override; + }; + + class __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::presentation::controls::GuiSinglelineTextBox* __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; + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + 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_initialize_(); + ::vl::Ptr<::vl::reflection::description::IValueListener> Subscribe(const ::vl::Func& __vwsn_bind_callback_) override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener : public ::vl::Object, public virtual ::vl::reflection::description::IValueListener + { + public: + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + ::vl::reflection::description::IValueSubscription* __vwsn_subscription_; + ::vl::reflection::description::IValueSubscription* __vwsnthis_0; + ::helloworld::MainWindowConstructor* __vwsnthis_1; + + __vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1); + + ::vl::reflection::description::IValueSubscription* GetSubscription() override; + bool GetStopped() override; + bool StopListening() override; + }; + + class __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::helloworld::MainWindowConstructor* __vwsnthis_0; + + __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::presentation::controls::GuiSinglelineTextBox* __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; + ::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsn_bind_listeners_; + 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_initialize_(); + ::vl::Ptr<::vl::reflection::description::IValueListener> Subscribe(const ::vl::Func& __vwsn_bind_callback_) override; + bool Update() override; + bool Close() override; + }; + + //------------------------------------------------------------------- + + __vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + } + + void __vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::operator()(::vl::reflection::description::Value __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(::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(::vl::__vwsn::This(__vwsnthis_0)->__vwsn_precompile_8.Obj())->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + } + + void __vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::operator()(::vl::reflection::description::Value __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->__vwsn_precompile_14.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->__vwsn_precompile_14.Obj())->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + } + + void __vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::operator()(::vl::reflection::description::Value __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->buttonSignUp)->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->buttonSignUp)->SetEnabled(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + } + + void __vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + { + ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->self)->Close(); + } + + //------------------------------------------------------------------- + + __vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + } + + void __vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::operator()(::vl::reflection::description::Value __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->__vwsn_precompile_18.Obj())->GetUserName(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->__vwsn_precompile_18.Obj())->SetUserName(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + } + + void __vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::operator()(::vl::reflection::description::Value __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->__vwsn_precompile_18.Obj())->GetPassword(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0)->__vwsn_precompile_18.Obj())->SetPassword(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::__vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(::helloworld::MainWindow* __vwsnctor___vwsn_this_, ::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsn_this_(__vwsnctor___vwsn_this_) + , __vwsnthis_0(__vwsnctorthis_0) + { + } + + void __vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__::operator()(::vl::presentation::compositions::GuiGraphicsComposition* __vwsno_1, ::vl::presentation::compositions::GuiEventArgs* __vwsno_2) const + { + return ::vl::__vwsn::This(__vwsn_this_)->buttonSignUp_Clicked(__vwsno_1, __vwsno_2); + } + + //------------------------------------------------------------------- + + __vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::__vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1) + :__vwsn_bind_listeners_(__vwsnctor___vwsn_bind_listeners_) + , __vwsn_subscription_(__vwsnctor___vwsn_subscription_) + , __vwsnthis_0(__vwsnctorthis_0) + , __vwsnthis_1(__vwsnctorthis_1) + { + } + + ::vl::reflection::description::IValueSubscription* __vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetSubscription() + { + return ::vl::__vwsn::This(this)->__vwsn_subscription_; + } + + bool __vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetStopped() + { + return (! ::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))); + } + + bool __vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::StopListening() + { + if (::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))) + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->Remove(::vl::__vwsn::Box(this)); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::vm::IViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + this->__vwsn_bind_listeners_ = ::vl::reflection::description::IValueDictionary::Create(); + } + + void __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetUserNameError(); + using __vwsnt_0 = ::vl::reflection::description::Value; + FOREACH(__vwsnt_0, __vwsn_bind_callback_, ::vl::reflection::description::GetLazyList<::vl::reflection::description::Value>(::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->GetValues())) + { + ::vl::__vwsn::Unbox<::vl::Func>(__vwsn_bind_callback_)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + } + + void __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + } + + void __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_initialize_() + { + (__vwsn_bind_cache_0 = ::vl::__vwsn::This(__vwsnthis_0)->ViewModel); + (__vwsn_bind_handler_0_0 = ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->UserNameErrorChanged, ::vl::Func(::vl::__vwsn::This(this), &__vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0))); + } + + ::vl::Ptr<::vl::reflection::description::IValueListener> __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Subscribe(const ::vl::Func& __vwsn_bind_callback_) + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + ::vl::__vwsn::This(this)->__vwsn_bind_initialize_(); + } + auto __vwsn_subscription_ = this; + auto __vwsn_listener_shared_ = ::vl::Ptr<::vl::reflection::description::IValueListener>(new ::vl_workflow_global::__vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(__vwsn_bind_listeners_, __vwsn_subscription_, this, __vwsnthis_0)); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Set(::vl::__vwsn::Box(__vwsn_listener_shared_), ::vl::__vwsn::Box(__vwsn_bind_callback_)); + return __vwsn_listener_shared_; + } + + bool __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((! __vwsn_bind_closed_)) + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->UserNameErrorChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_cache_0 = ::vl::Ptr<::vm::IViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Clear(); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::__vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1) + :__vwsn_bind_listeners_(__vwsnctor___vwsn_bind_listeners_) + , __vwsn_subscription_(__vwsnctor___vwsn_subscription_) + , __vwsnthis_0(__vwsnctorthis_0) + , __vwsnthis_1(__vwsnctorthis_1) + { + } + + ::vl::reflection::description::IValueSubscription* __vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetSubscription() + { + return ::vl::__vwsn::This(this)->__vwsn_subscription_; + } + + bool __vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetStopped() + { + return (! ::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))); + } + + bool __vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::StopListening() + { + if (::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))) + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->Remove(::vl::__vwsn::Box(this)); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::vm::IViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + this->__vwsn_bind_listeners_ = ::vl::reflection::description::IValueDictionary::Create(); + } + + void __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetPasswordError(); + using __vwsnt_0 = ::vl::reflection::description::Value; + FOREACH(__vwsnt_0, __vwsn_bind_callback_, ::vl::reflection::description::GetLazyList<::vl::reflection::description::Value>(::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->GetValues())) + { + ::vl::__vwsn::Unbox<::vl::Func>(__vwsn_bind_callback_)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + } + + void __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + } + + void __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_initialize_() + { + (__vwsn_bind_cache_0 = ::vl::__vwsn::This(__vwsnthis_0)->ViewModel); + (__vwsn_bind_handler_0_0 = ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->PasswordErrorChanged, ::vl::Func(::vl::__vwsn::This(this), &__vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0))); + } + + ::vl::Ptr<::vl::reflection::description::IValueListener> __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Subscribe(const ::vl::Func& __vwsn_bind_callback_) + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + ::vl::__vwsn::This(this)->__vwsn_bind_initialize_(); + } + auto __vwsn_subscription_ = this; + auto __vwsn_listener_shared_ = ::vl::Ptr<::vl::reflection::description::IValueListener>(new ::vl_workflow_global::__vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(__vwsn_bind_listeners_, __vwsn_subscription_, this, __vwsnthis_0)); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Set(::vl::__vwsn::Box(__vwsn_listener_shared_), ::vl::__vwsn::Box(__vwsn_bind_callback_)); + return __vwsn_listener_shared_; + } + + bool __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((! __vwsn_bind_closed_)) + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->PasswordErrorChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_cache_0 = ::vl::Ptr<::vm::IViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Clear(); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::__vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1) + :__vwsn_bind_listeners_(__vwsnctor___vwsn_bind_listeners_) + , __vwsn_subscription_(__vwsnctor___vwsn_subscription_) + , __vwsnthis_0(__vwsnctorthis_0) + , __vwsnthis_1(__vwsnctorthis_1) + { + } + + ::vl::reflection::description::IValueSubscription* __vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetSubscription() + { + return ::vl::__vwsn::This(this)->__vwsn_subscription_; + } + + bool __vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetStopped() + { + return (! ::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))); + } + + bool __vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::StopListening() + { + if (::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))) + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->Remove(::vl::__vwsn::Box(this)); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::vm::IViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_cache_1 = ::vl::Ptr<::vm::IViewModel>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_cache_2 = static_cast<::helloworld::MainWindow*>(nullptr); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + this->__vwsn_bind_listeners_ = ::vl::reflection::description::IValueDictionary::Create(); + } + + void __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = (((! ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetHasLoggedIn()) && (::vl::__vwsn::This(__vwsn_bind_cache_1.Obj())->GetUserNameError() == ::vl::WString(L"", false))) && (::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetPasswordError() == ::vl::WString(L"", false))); + using __vwsnt_0 = ::vl::reflection::description::Value; + FOREACH(__vwsnt_0, __vwsn_bind_callback_, ::vl::reflection::description::GetLazyList<::vl::reflection::description::Value>(::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->GetValues())) + { + ::vl::__vwsn::Unbox<::vl::Func>(__vwsn_bind_callback_)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + } + + void __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + } + + void __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0() + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + } + + void __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0() + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + } + + void __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_initialize_() + { + (__vwsn_bind_cache_0 = ::vl::__vwsn::This(__vwsnthis_0)->ViewModel); + (__vwsn_bind_cache_1 = ::vl::__vwsn::This(__vwsnthis_0)->ViewModel); + (__vwsn_bind_cache_2 = ::vl::__vwsn::This(__vwsnthis_0)->self); + (__vwsn_bind_handler_0_0 = ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->PasswordErrorChanged, ::vl::Func(::vl::__vwsn::This(this), &__vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0))); + (__vwsn_bind_handler_1_0 = ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1.Obj())->UserNameErrorChanged, ::vl::Func(::vl::__vwsn::This(this), &__vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0))); + (__vwsn_bind_handler_2_0 = ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->HasLoggedInChanged, ::vl::Func(::vl::__vwsn::This(this), &__vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0))); + } + + ::vl::Ptr<::vl::reflection::description::IValueListener> __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Subscribe(const ::vl::Func& __vwsn_bind_callback_) + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + ::vl::__vwsn::This(this)->__vwsn_bind_initialize_(); + } + auto __vwsn_subscription_ = this; + auto __vwsn_listener_shared_ = ::vl::Ptr<::vl::reflection::description::IValueListener>(new ::vl_workflow_global::__vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(__vwsn_bind_listeners_, __vwsn_subscription_, this, __vwsnthis_0)); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Set(::vl::__vwsn::Box(__vwsn_listener_shared_), ::vl::__vwsn::Box(__vwsn_bind_callback_)); + return __vwsn_listener_shared_; + } + + bool __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((! __vwsn_bind_closed_)) + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->PasswordErrorChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1.Obj())->UserNameErrorChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->HasLoggedInChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_cache_0 = ::vl::Ptr<::vm::IViewModel>()); + (__vwsn_bind_cache_1 = ::vl::Ptr<::vm::IViewModel>()); + (__vwsn_bind_cache_2 = static_cast<::helloworld::MainWindow*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Clear(); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::__vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1) + :__vwsn_bind_listeners_(__vwsnctor___vwsn_bind_listeners_) + , __vwsn_subscription_(__vwsnctor___vwsn_subscription_) + , __vwsnthis_0(__vwsnctorthis_0) + , __vwsnthis_1(__vwsnctorthis_1) + { + } + + ::vl::reflection::description::IValueSubscription* __vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetSubscription() + { + return ::vl::__vwsn::This(this)->__vwsn_subscription_; + } + + bool __vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetStopped() + { + return (! ::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))); + } + + bool __vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::StopListening() + { + if (::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))) + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->Remove(::vl::__vwsn::Box(this)); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::controls::GuiSinglelineTextBox*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + this->__vwsn_bind_listeners_ = ::vl::reflection::description::IValueDictionary::Create(); + } + + void __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + using __vwsnt_0 = ::vl::reflection::description::Value; + FOREACH(__vwsnt_0, __vwsn_bind_callback_, ::vl::reflection::description::GetLazyList<::vl::reflection::description::Value>(::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->GetValues())) + { + ::vl::__vwsn::Unbox<::vl::Func>(__vwsn_bind_callback_)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + } + + void __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___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) + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + } + + void __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_initialize_() + { + (__vwsn_bind_cache_0 = ::vl::__vwsn::This(__vwsnthis_0)->textBoxUserName); + (__vwsn_bind_handler_0_0 = ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(::vl::__vwsn::This(this), &__vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0))); + } + + ::vl::Ptr<::vl::reflection::description::IValueListener> __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Subscribe(const ::vl::Func& __vwsn_bind_callback_) + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + ::vl::__vwsn::This(this)->__vwsn_bind_initialize_(); + } + auto __vwsn_subscription_ = this; + auto __vwsn_listener_shared_ = ::vl::Ptr<::vl::reflection::description::IValueListener>(new ::vl_workflow_global::__vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(__vwsn_bind_listeners_, __vwsn_subscription_, this, __vwsnthis_0)); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Set(::vl::__vwsn::Box(__vwsn_listener_shared_), ::vl::__vwsn::Box(__vwsn_bind_callback_)); + return __vwsn_listener_shared_; + } + + bool __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((! __vwsn_bind_closed_)) + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_cache_0 = static_cast<::vl::presentation::controls::GuiSinglelineTextBox*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Clear(); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::__vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(::vl::Ptr<::vl::reflection::description::IValueDictionary> __vwsnctor___vwsn_bind_listeners_, ::vl::reflection::description::IValueSubscription* __vwsnctor___vwsn_subscription_, ::vl::reflection::description::IValueSubscription* __vwsnctorthis_0, ::helloworld::MainWindowConstructor* __vwsnctorthis_1) + :__vwsn_bind_listeners_(__vwsnctor___vwsn_bind_listeners_) + , __vwsn_subscription_(__vwsnctor___vwsn_subscription_) + , __vwsnthis_0(__vwsnctorthis_0) + , __vwsnthis_1(__vwsnctorthis_1) + { + } + + ::vl::reflection::description::IValueSubscription* __vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetSubscription() + { + return ::vl::__vwsn::This(this)->__vwsn_subscription_; + } + + bool __vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::GetStopped() + { + return (! ::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))); + } + + bool __vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener::StopListening() + { + if (::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->GetKeys().Obj())->Contains(::vl::__vwsn::Box(this))) + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_bind_listeners_.Obj())->Remove(::vl::__vwsn::Box(this)); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::helloworld::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(__vwsnctorthis_0) + { + this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::controls::GuiSinglelineTextBox*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + this->__vwsn_bind_listeners_ = ::vl::reflection::description::IValueDictionary::Create(); + } + + void __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + using __vwsnt_0 = ::vl::reflection::description::Value; + FOREACH(__vwsnt_0, __vwsn_bind_callback_, ::vl::reflection::description::GetLazyList<::vl::reflection::description::Value>(::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->GetValues())) + { + ::vl::__vwsn::Unbox<::vl::Func>(__vwsn_bind_callback_)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + } + + void __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___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) + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + } + + void __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_initialize_() + { + (__vwsn_bind_cache_0 = ::vl::__vwsn::This(__vwsnthis_0)->textBoxPassword); + (__vwsn_bind_handler_0_0 = ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(::vl::__vwsn::This(this), &__vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0))); + } + + ::vl::Ptr<::vl::reflection::description::IValueListener> __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Subscribe(const ::vl::Func& __vwsn_bind_callback_) + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + ::vl::__vwsn::This(this)->__vwsn_bind_initialize_(); + } + auto __vwsn_subscription_ = this; + auto __vwsn_listener_shared_ = ::vl::Ptr<::vl::reflection::description::IValueListener>(new ::vl_workflow_global::__vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener(__vwsn_bind_listeners_, __vwsn_subscription_, this, __vwsnthis_0)); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Set(::vl::__vwsn::Box(__vwsn_listener_shared_), ::vl::__vwsn::Box(__vwsn_bind_callback_)); + return __vwsn_listener_shared_; + } + + bool __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((! __vwsn_bind_closed_)) + { + ::vl::__vwsn::This(this)->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_cache_0 = static_cast<::vl::presentation::controls::GuiSinglelineTextBox*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + ::vl::__vwsn::This(__vwsn_bind_listeners_.Obj())->Clear(); + return true; + } + return false; + } + +/*********************************************************************** +Global Functions +***********************************************************************/ + + HelloWorld& HelloWorld::Instance() + { + return Getvl_workflow_global_HelloWorld().instance; + } +} + +/*********************************************************************** +Class (::helloworld::MainWindowConstructor) +***********************************************************************/ + +namespace helloworld +{ + void MainWindowConstructor::__vwsn_initialize_instance_(::helloworld::MainWindow* __vwsn_this_, ::vl::presentation::GuiResourcePathResolver* __vwsn_resolver_) + { + (::vl::__vwsn::This(this)->self = __vwsn_this_); + (::vl::__vwsn::This(this)->ViewModel = ::vl::__vwsn::This(__vwsn_this_)->GetViewModel()); + (::vl::__vwsn::This(this)->__vwsn_precompile_19 = ::vl::__vwsn::This(::vl::__vwsn::This(this)->self)->GetBoundsComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_19)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = 320; __vwsn_temp__.y = 280; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->self)->SetClientSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = 320; __vwsn_temp__.y = 280; return __vwsn_temp__; }()); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_18 = ::vl::__vwsn::This(::vl::__vwsn::This(this)->self)->GetViewModel()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->self)->SetText(::vl::WString(L"Let\'s Sign Up!", false)); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = 0; __vwsn_temp__.top = 0; __vwsn_temp__.right = 0; __vwsn_temp__.bottom = 0; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint32_t>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowsAndColumns(8, 2); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowOption(0, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = 90; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowOption(1, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowOption(2, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowOption(3, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowOption(4, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowOption(5, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = 12; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowOption(6, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = 1.0; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetRowOption(7, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetColumnOption(0, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->SetColumnOption(1, [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = 1.0; return __vwsn_temp__; }()); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_1)->SetSite(0, 0, 1, 2); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_2.Obj())->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = 40; __vwsn_temp__.antialias = true; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_2.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_2.Obj())->SetHorizontalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_2.Obj())->SetText(::vl::WString(L"www.gaclib.net", false)); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_1)->SetOwnedElement(::vl::__vwsn::Ensure(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(::vl::__vwsn::This(this)->__vwsn_precompile_2))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_1))); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_3)->SetSite(1, 0, 1, 1); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_4.Obj())->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = 12; __vwsn_temp__.antialias = true; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_4.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_4.Obj())->SetText(::vl::WString(L"Username: ", false)); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_3)->SetOwnedElement(::vl::__vwsn::Ensure(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(::vl::__vwsn::This(this)->__vwsn_precompile_4))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_3))); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_5)->SetSite(1, 1, 1, 1); + } + { + auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateTextBoxStyle(); + (::vl::__vwsn::This(this)->textBoxUserName = new ::vl::presentation::controls::GuiSinglelineTextBox(__vwsn_controlStyle_)); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_6 = ::vl::__vwsn::This(::vl::__vwsn::This(this)->textBoxUserName)->GetBoundsComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_6)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = 0; __vwsn_temp__.y = 24; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = 0; __vwsn_temp__.top = 0; __vwsn_temp__.right = 0; __vwsn_temp__.bottom = 0; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_5)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(::vl::__vwsn::This(this)->textBoxUserName)->GetBoundsComposition()))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_5))); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_7)->SetSite(2, 1, 1, 1); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_8.Obj())->SetWrapLineHeightCalculation(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_8.Obj())->SetWrapLine(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_8.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString(L"#FF0000", false))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_8.Obj())->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = 12; __vwsn_temp__.antialias = true; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_7)->SetOwnedElement(::vl::__vwsn::Ensure(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(::vl::__vwsn::This(this)->__vwsn_precompile_8))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_7))); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_9)->SetSite(3, 0, 1, 1); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_10 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_10.Obj())->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = 12; __vwsn_temp__.antialias = true; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_10.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_10.Obj())->SetText(::vl::WString(L"Password: ", false)); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_9)->SetOwnedElement(::vl::__vwsn::Ensure(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(::vl::__vwsn::This(this)->__vwsn_precompile_10))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_9))); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_11 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_11)->SetSite(3, 1, 1, 1); + } + { + auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateTextBoxStyle(); + (::vl::__vwsn::This(this)->textBoxPassword = new ::vl::presentation::controls::GuiSinglelineTextBox(__vwsn_controlStyle_)); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->textBoxPassword)->SetPasswordChar(::vl::__vwsn::Parse(::vl::WString(L"*", false))); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_12 = ::vl::__vwsn::This(::vl::__vwsn::This(this)->textBoxPassword)->GetBoundsComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = 0; __vwsn_temp__.y = 24; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = 0; __vwsn_temp__.top = 0; __vwsn_temp__.right = 0; __vwsn_temp__.bottom = 0; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_11)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(::vl::__vwsn::This(this)->textBoxPassword)->GetBoundsComposition()))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_11))); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_13 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_13)->SetSite(4, 1, 1, 1); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_14 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_14.Obj())->SetWrapLineHeightCalculation(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_14.Obj())->SetWrapLine(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_14.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString(L"#FF0000", false))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_14.Obj())->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = 12; __vwsn_temp__.antialias = true; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_13)->SetOwnedElement(::vl::__vwsn::Ensure(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(::vl::__vwsn::This(this)->__vwsn_precompile_14))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_13))); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_15 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_15)->SetSite(7, 0, 1, 2); + } + { + auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateButtonStyle(); + (::vl::__vwsn::This(this)->buttonSignUp = new ::vl::presentation::controls::GuiButton(__vwsn_controlStyle_)); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_16 = ::vl::__vwsn::This(::vl::__vwsn::This(this)->buttonSignUp)->GetBoundsComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_16)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = 100; __vwsn_temp__.y = 24; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_16)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = 0; __vwsn_temp__.top = 0; __vwsn_temp__.right = (- 1); __vwsn_temp__.bottom = 0; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->buttonSignUp)->SetText(::vl::WString(L"Sign Up!", false)); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_15)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(::vl::__vwsn::This(this)->buttonSignUp)->GetBoundsComposition()))); + } + { + auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateButtonStyle(); + (::vl::__vwsn::This(this)->buttonCancel = new ::vl::presentation::controls::GuiButton(__vwsn_controlStyle_)); + } + (::vl::__vwsn::This(this)->__vwsn_precompile_17 = ::vl::__vwsn::This(::vl::__vwsn::This(this)->buttonCancel)->GetBoundsComposition()); + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_17)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = 100; __vwsn_temp__.y = 24; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_17)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = (- 1); __vwsn_temp__.top = 0; __vwsn_temp__.right = 0; __vwsn_temp__.bottom = 0; return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->buttonCancel)->SetText(::vl::WString(L"Close", false)); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_15)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(::vl::__vwsn::This(this)->buttonCancel)->GetBoundsComposition()))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_0)->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_15))); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->self)->GetContainerComposition())->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this)->__vwsn_precompile_0))); + } + { + auto __vwsn_created_subscription_ = ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Subscribe(LAMBDA(::vl_workflow_global::__vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Update(); + } + { + auto __vwsn_created_subscription_ = ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Subscribe(LAMBDA(::vl_workflow_global::__vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Update(); + } + { + auto __vwsn_created_subscription_ = ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Subscribe(LAMBDA(::vl_workflow_global::__vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Update(); + } + { + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(::vl::__vwsn::This(this)->buttonSignUp)->Clicked, LAMBDA(::vl_workflow_global::__vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(__vwsn_this_, this))); + } + { + auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(::vl::__vwsn::This(this)->buttonCancel)->Clicked, __vwsn_event_handler_); + } + { + auto __vwsn_created_subscription_ = ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Subscribe(LAMBDA(::vl_workflow_global::__vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Update(); + } + { + auto __vwsn_created_subscription_ = ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Subscribe(LAMBDA(::vl_workflow_global::__vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->Update(); + } + } + + MainWindowConstructor::MainWindowConstructor() + { + } + +/*********************************************************************** +Class (::vm::IViewModel) +***********************************************************************/ + +} +namespace vm +{ +} +#undef GLOBAL_SYMBOL +#undef GLOBAL_NAME +#undef GLOBAL_OBJ +#undef USERIMPL + +/*********************************************************************** +Reflection +***********************************************************************/ + namespace vl { namespace reflection { namespace description { - #define _ , - IMPL_CPP_TYPE_INFO(vm::IViewModel) - IMPL_CPP_TYPE_INFO(helloworld::MainWindow) +#ifndef VCZH_DEBUG_NO_REFLECTION + IMPL_CPP_TYPE_INFO(::helloworld::MainWindow) + IMPL_CPP_TYPE_INFO(::helloworld::MainWindowConstructor) + IMPL_CPP_TYPE_INFO(::vm::IViewModel) - BEGIN_CLASS_MEMBER(vm::IViewModel) - CLASS_MEMBER_BASE(::vl::reflection::IDescriptable) - CLASS_MEMBER_METHOD(GetUserName, NO_PARAMETER); - CLASS_MEMBER_METHOD(SetUserName, { L"value" }); - CLASS_MEMBER_METHOD(GetPassword, NO_PARAMETER); - CLASS_MEMBER_METHOD(SetPassword, { L"value" }); - CLASS_MEMBER_METHOD(GetUserNameError, NO_PARAMETER); - CLASS_MEMBER_EVENT(UserNameErrorChanged) - CLASS_MEMBER_METHOD(GetPasswordError, NO_PARAMETER); - CLASS_MEMBER_EVENT(PasswordErrorChanged) - CLASS_MEMBER_METHOD(SignUp, NO_PARAMETER); - CLASS_MEMBER_PROPERTY(UserName, GetUserName, SetUserName) - CLASS_MEMBER_PROPERTY(Password, GetPassword, SetPassword) - CLASS_MEMBER_PROPERTY_EVENT_READONLY(UserNameError, GetUserNameError, UserNameErrorChanged) - CLASS_MEMBER_PROPERTY_EVENT_READONLY(PasswordError, GetPasswordError, PasswordErrorChanged) - END_CLASS_MEMBER(vm::IViewModel) - - BEGIN_CLASS_MEMBER(helloworld::MainWindow) - CLASS_MEMBER_BASE(::vl::presentation::controls::GuiWindow) - CLASS_MEMBER_CONSTRUCTOR(helloworld::MainWindow*(vl::Ptr), { L"ViewModel" }) - - CLASS_MEMBER_GUIEVENT_HANDLER(buttonSignUp_Clicked, ::vl::presentation::compositions::GuiEventArgs) - - CLASS_MEMBER_PROPERTY_READONLY_FAST(ViewModel) +#define _ , + BEGIN_CLASS_MEMBER(::helloworld::MainWindow) + CLASS_MEMBER_METHOD(GetHasLoggedIn, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetHasLoggedIn, { L"value" }) + CLASS_MEMBER_METHOD(buttonSignUp_Clicked, { L"sender" _ L"arguments" }) CLASS_MEMBER_EVENT(HasLoggedInChanged) - CLASS_MEMBER_PROPERTY_EVENT_FAST(HasLoggedIn, HasLoggedInChanged) - END_CLASS_MEMBER(helloworld::MainWindow) + CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) + CLASS_MEMBER_PROPERTY_EVENT(HasLoggedIn, GetHasLoggedIn, SetHasLoggedIn, HasLoggedInChanged) + CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) + CLASS_MEMBER_FIELD(hasLoggedIn) + END_CLASS_MEMBER(::helloworld::MainWindow) - #undef _ + BEGIN_CLASS_MEMBER(::helloworld::MainWindowConstructor) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" _ L"__vwsn_resolver_" }) + 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_19) + 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(ViewModel) + CLASS_MEMBER_FIELD(buttonCancel) + CLASS_MEMBER_FIELD(buttonSignUp) + CLASS_MEMBER_FIELD(self) + CLASS_MEMBER_FIELD(textBoxPassword) + CLASS_MEMBER_FIELD(textBoxUserName) + END_CLASS_MEMBER(::helloworld::MainWindowConstructor) - class HelloWorldResourceLoader : public Object, public ITypeLoader + BEGIN_INTERFACE_MEMBER(::vm::IViewModel) + CLASS_MEMBER_METHOD(GetPassword, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetPasswordError, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetUserName, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetUserNameError, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetPassword, { L"value" }) + CLASS_MEMBER_METHOD(SetUserName, { L"value" }) + CLASS_MEMBER_METHOD(SignUp, NO_PARAMETER) + CLASS_MEMBER_EVENT(PasswordErrorChanged) + CLASS_MEMBER_EVENT(UserNameErrorChanged) + CLASS_MEMBER_PROPERTY(Password, GetPassword, SetPassword) + CLASS_MEMBER_PROPERTY_EVENT_READONLY(PasswordError, GetPasswordError, PasswordErrorChanged) + CLASS_MEMBER_PROPERTY(UserName, GetUserName, SetUserName) + CLASS_MEMBER_PROPERTY_EVENT_READONLY(UserNameError, GetUserNameError, UserNameErrorChanged) + END_INTERFACE_MEMBER(::vm::IViewModel) + +#undef _ + class HelloWorldTypeLoader : public Object, public ITypeLoader { public: void Load(ITypeManager* manager) { - ADD_TYPE_INFO(vm::IViewModel) - ADD_TYPE_INFO(helloworld::MainWindow) + ADD_TYPE_INFO(::helloworld::MainWindow) + ADD_TYPE_INFO(::helloworld::MainWindowConstructor) + ADD_TYPE_INFO(::vm::IViewModel) } void Unload(ITypeManager* manager) { } }; +#endif - class HelloWorldResourcePlugin : public Object, public vl::presentation::controls::IGuiPlugin + bool LoadHelloWorldTypes() { - public: - void Load()override +#ifndef VCZH_DEBUG_NO_REFLECTION + if (auto manager = GetGlobalTypeManager()) { - GetGlobalTypeManager()->AddTypeLoader(new HelloWorldResourceLoader); + return manager->AddTypeLoader(MakePtr()); } - - void AfterLoad()override - { - } - - void Unload()override - { - } - }; - GUI_REGISTER_PLUGIN(HelloWorldResourcePlugin) +#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_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.h b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.h index 6521ede5..6b99c97c 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.h +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.h @@ -1,126 +1,156 @@ -/*********************************************************************** -Vczh Library++ 3.0 -Developer: Zihan Chen(vczh) -GacUI::Partial Classes +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! -This file is generated by: Vczh GacUI Resource Code Generator -************************************************************************ -DO NOT MODIFY +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries ***********************************************************************/ -#ifndef VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld_PARTIAL_CLASSES -#define VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld_PARTIAL_CLASSES +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_HELLOWORLDPARTIALCLASSES +#define VCZH_WORKFLOW_COMPILER_GENERATED_HELLOWORLDPARTIALCLASSES -#include "GacUIReflection.h" +#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 +{ + class __vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + class __vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + class __vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + class __vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + class __vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + class __vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + struct __vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; +} + +namespace helloworld +{ + class MainWindowConstructor; + class MainWindow; +} namespace vm { class IViewModel; + } namespace helloworld { - class MainWindow; + class MainWindowConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::vl::Ptr<::vm::IViewModel> ViewModel = ::vl::Ptr<::vm::IViewModel>(); + ::helloworld::MainWindow* self = static_cast<::helloworld::MainWindow*>(nullptr); + ::vl::presentation::controls::GuiSinglelineTextBox* textBoxUserName = static_cast<::vl::presentation::controls::GuiSinglelineTextBox*>(nullptr); + ::vl::presentation::controls::GuiSinglelineTextBox* textBoxPassword = static_cast<::vl::presentation::controls::GuiSinglelineTextBox*>(nullptr); + ::vl::presentation::controls::GuiButton* buttonSignUp = static_cast<::vl::presentation::controls::GuiButton*>(nullptr); + ::vl::presentation::controls::GuiButton* buttonCancel = static_cast<::vl::presentation::controls::GuiButton*>(nullptr); + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_0 = static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr); + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_1 = static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr); + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(); + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_3 = static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr); + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(); + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_5 = static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr); + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_6 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_7 = static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr); + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(); + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_9 = static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr); + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_10 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(); + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_11 = static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr); + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_12 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_13 = static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr); + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_14 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(); + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_15 = static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr); + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_16 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_17 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); + ::vl::Ptr<::vm::IViewModel> __vwsn_precompile_18 = ::vl::Ptr<::vm::IViewModel>(); + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_19 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); + void __vwsn_initialize_instance_(::helloworld::MainWindow* __vwsn_this_, ::vl::presentation::GuiResourcePathResolver* __vwsn_resolver_); + public: + MainWindowConstructor(); + }; } namespace vm { - class IViewModel : public virtual ::vl::reflection::IDescriptable, public vl::reflection::Description + class IViewModel : public virtual ::vl::reflection::IDescriptable, public ::vl::reflection::Description { +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif public: virtual ::vl::WString GetUserName() = 0; - virtual void SetUserName(::vl::WString value) = 0; + virtual void SetUserName(const ::vl::WString& value) = 0; virtual ::vl::WString GetPassword() = 0; - virtual void SetPassword(::vl::WString value) = 0; + virtual void SetPassword(const ::vl::WString& value) = 0; virtual ::vl::WString GetUserNameError() = 0; - vl::Event UserNameErrorChanged; + ::vl::Event UserNameErrorChanged; virtual ::vl::WString GetPasswordError() = 0; - vl::Event PasswordErrorChanged; + ::vl::Event PasswordErrorChanged; virtual bool SignUp() = 0; }; } -namespace helloworld -{ - template - class MainWindow_ : public ::vl::presentation::controls::GuiWindow, public vl::presentation::GuiInstancePartialClass, public vl::reflection::Description - { - friend struct vl::reflection::description::CustomTypeDescriptorSelector; - private: - vl::Ptr ViewModel_; - bool HasLoggedIn_; - protected: - ::vl::presentation::controls::GuiButton* buttonCancel; - ::vl::presentation::controls::GuiButton* buttonSignUp; - ::vl::presentation::controls::GuiWindow* self; - ::vl::presentation::controls::GuiSinglelineTextBox* textBoxPassword; - ::vl::presentation::controls::GuiSinglelineTextBox* textBoxUserName; +/*********************************************************************** +Global Variables and Functions +***********************************************************************/ - void InitializeComponents(vl::Ptr ViewModel) - { - ViewModel_ = ViewModel; - if (InitializeFromResource()) - { - GUI_INSTANCE_REFERENCE(buttonCancel); - GUI_INSTANCE_REFERENCE(buttonSignUp); - GUI_INSTANCE_REFERENCE(self); - GUI_INSTANCE_REFERENCE(textBoxPassword); - GUI_INSTANCE_REFERENCE(textBoxUserName); - } - else - { - ViewModel_ = 0; - } - } +namespace vl_workflow_global +{ + class HelloWorld + { public: - MainWindow_() - :vl::presentation::GuiInstancePartialClass<::vl::presentation::controls::GuiWindow>(L"helloworld::MainWindow") - ,::vl::presentation::controls::GuiWindow(vl::presentation::theme::GetCurrentTheme()->CreateWindowStyle()) - ,buttonCancel(0) - ,buttonSignUp(0) - ,self(0) - ,textBoxPassword(0) - ,textBoxUserName(0) - { - this->HasLoggedIn_ = vl::reflection::description::UnboxValue( - []() - { - vl::reflection::description::Value value; - vl::reflection::description::GetTypeDescriptor()->GetSerializableType()->Deserialize(L"false", value); - return value; - }()); - } - vl::Ptr GetViewModel() - { - return ViewModel_; - } - - vl::Event HasLoggedInChanged; - - bool GetHasLoggedIn() - { - return HasLoggedIn_; - } - - void SetHasLoggedIn(bool value) - { - HasLoggedIn_ = value; - HasLoggedInChanged(); - } + static HelloWorld& Instance(); }; - } -namespace vl -{ - namespace reflection - { - namespace description - { - DECL_TYPE_INFO(vm::IViewModel) - DECL_TYPE_INFO(helloworld::MainWindow) - } - } -} +#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_HelloWorlds/MVVM/UI/Source/MainWindow.cpp b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.cpp index 97557122..29f129ce 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.cpp +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.cpp @@ -1,45 +1,89 @@ -/*********************************************************************** -Vczh Library++ 3.0 -Developer: Zihan Chen(vczh) -GacUI::MainWindow +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! -This file is generated by: Vczh GacUI Resource Code Generator +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries ***********************************************************************/ #include "HelloWorld.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 + +#define GLOBAL_SYMBOL ::vl_workflow_global::HelloWorld:: +#define GLOBAL_NAME ::vl_workflow_global::HelloWorld::Instance(). +#define GLOBAL_OBJ &::vl_workflow_global::HelloWorld::Instance() +#define USERIMPL(...) + +/*********************************************************************** +Class (::helloworld::MainWindow) +***********************************************************************/ + namespace helloworld { - // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + bool MainWindow::GetHasLoggedIn() + { + return ::vl::__vwsn::This(this)->hasLoggedIn; + } - void MainWindow::buttonSignUp_Clicked(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs& arguments) + void MainWindow::SetHasLoggedIn(bool value) + { + if ((::vl::__vwsn::This(this)->hasLoggedIn != value)) + { + (::vl::__vwsn::This(this)->hasLoggedIn = value); + ::vl::__vwsn::EventInvoke(::vl::__vwsn::This(this)->HasLoggedInChanged)(); + } + } + + ::vl::Ptr<::vm::IViewModel> MainWindow::GetViewModel() + { + return ::vl::__vwsn::This(this)->__vwsn_parameter_ViewModel; + } + + USERIMPL(/* ::helloworld::MainWindow */) + void MainWindow::buttonSignUp_Clicked(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) { if (this->GetViewModel()->SignUp()) { this->SetHasLoggedIn(true); - this->buttonSignUp->SetText(L"Suggess!"); + this->buttonSignUp->SetText(L"Success!"); } } - void MainWindow::OnCreate() + MainWindow::MainWindow(::vl::Ptr<::vm::IViewModel> __vwsn_ctor_parameter_ViewModel) + : ::vl::presentation::controls::GuiWindow(::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateWindowStyle()) { - } - - void MainWindow::OnDestroy() - { - } - - // #endregion CLASS_MEMBER_GUIEVENT_HANDLER - - MainWindow::MainWindow(vl::Ptr ViewModel) - { - InitializeComponents(ViewModel); - OnCreate(); + (::vl::__vwsn::This(this)->__vwsn_parameter_ViewModel = __vwsn_ctor_parameter_ViewModel); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"helloworld::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)->__vwsn_initialize_instance_(this, ::vl::__vwsn::Ensure(static_cast<::vl::presentation::GuiResourcePathResolver*>(__vwsn_resolver_.Obj()))); } MainWindow::~MainWindow() { - OnDestroy(); - ClearSubscriptions(); + ::vl::__vwsn::This(this)->ClearSubscriptions(); } + } +#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_HelloWorlds/MVVM/UI/Source/MainWindow.h b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.h index d2f6e98f..56df9240 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.h +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.h @@ -1,33 +1,75 @@ -/*********************************************************************** -Vczh Library++ 3.0 -Developer: Zihan Chen(vczh) -GacUI::MainWindow +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! -This file is generated by: Vczh GacUI Resource Code Generator +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries ***********************************************************************/ -#ifndef VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld_MainWindow -#define VCZH_GACUI_RESOURCE_CODE_GENERATOR_HelloWorld_MainWindow +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_MAINWINDOW +#define VCZH_WORKFLOW_COMPILER_GENERATED_MAINWINDOW #include "HelloWorldPartialClasses.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 helloworld { - class MainWindow : public helloworld::MainWindow_ + class MainWindow : public ::vl::presentation::controls::GuiWindow, public ::helloworld::MainWindowConstructor, public ::vl::reflection::Description { - friend class helloworld::MainWindow_; - friend struct vl::reflection::description::CustomTypeDescriptorSelector; + friend class ::helloworld::MainWindowConstructor; + friend class ::vl_workflow_global::__vwsnc10_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc8_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__Subscribe__vl_reflection_description_IValueListener; + friend class ::vl_workflow_global::__vwsnc9_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf1_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf2_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf3_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf5_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf6_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf7_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsno4_HelloWorld_helloworld_MainWindowConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif protected: - - // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) - void buttonSignUp_Clicked(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs& arguments); - void OnCreate(); - void OnDestroy(); - // #endregion CLASS_MEMBER_GUIEVENT_HANDLER + bool hasLoggedIn = false; public: - MainWindow(vl::Ptr ViewModel); + ::vl::Event HasLoggedInChanged; + bool GetHasLoggedIn(); + void SetHasLoggedIn(bool value); + ::vl::Ptr<::vm::IViewModel> __vwsn_parameter_ViewModel = ::vl::Ptr<::vm::IViewModel>(); + ::vl::Ptr<::vm::IViewModel> GetViewModel(); + protected: + void buttonSignUp_Clicked(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments); + public: + MainWindow(::vl::Ptr<::vm::IViewModel> __vwsn_ctor_parameter_ViewModel); ~MainWindow(); }; + } +#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_HelloWorlds/MVVM/UI/ViewModel.xml b/Tutorial/GacUI_HelloWorlds/MVVM/UI/ViewModel.xml index 4e17ed05..be875412 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/ViewModel.xml +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/ViewModel.xml @@ -1,5 +1,5 @@ - + - \ No newline at end of file + \ No newline at end of file diff --git a/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin b/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin index f8400bfa175326f9991f42e5f0065252d5f8461e..90542b3a2a97e0579c30fb5dbb302dd7c2c1f2fa 100644 GIT binary patch delta 167 zcmey()WyQcJdsgbg`WWeK(upCVsWuwVs2_sYI1&23RH%Hd84TtV+l8u3!(#xfC_R8 wGILT>7@@*UP#TYUFr{Kpr64*ZH76&(JijO>#mdSzF*7ebGcP5-9IAi;09flCWB>pF delta 23 ZcmeBT`OU=0G?7u8lK~2tHU_vc0su0~1D^l@ diff --git a/Tutorial/GacUI_HelloWorlds/UIRes/MVVM.bin b/Tutorial/GacUI_HelloWorlds/UIRes/MVVM.bin index f99215509deb3e923537239303ba6e1073eaae40..48b4a20e83d35cf732bd6899e3e81e5e686412d3 100644 GIT binary patch delta 156 zcmex-Q+o*uBg;g_2u6nK2fMk%r%$-U$uhB1WbzFmfyoU(nT^8JKb+^{m?*$9nS)Vj z@=1OkHoyF$+{B!T7j#TH7$5*d2c;J0mlh?bia^Ccw4PoJ5QTaIUw jH{RhC<_QKXcFWI6NiCXe!zeYqVjU~bWL~B=n3)U!O&coF literal 716019 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 diff --git a/Tutorial/GacUI_HelloWorlds/Xml/UI/Resource.xml b/Tutorial/GacUI_HelloWorlds/Xml/UI/Resource.xml index c9508f67..80a0b497 100644 --- a/Tutorial/GacUI_HelloWorlds/Xml/UI/Resource.xml +++ b/Tutorial/GacUI_HelloWorlds/Xml/UI/Resource.xml @@ -2,8 +2,7 @@ - ..\..\UIRes - Xml.bin + ..\..\UIRes\Xml.bin