diff --git a/Tutorial/GacUI_Controls/ColorPicker2/Main.cpp b/Tutorial/GacUI_Controls/ColorPicker2/Main.cpp index 852be81c..85e7bb24 100644 --- a/Tutorial/GacUI_Controls/ColorPicker2/Main.cpp +++ b/Tutorial/GacUI_Controls/ColorPicker2/Main.cpp @@ -32,6 +32,7 @@ class ViewModel : public Object, public demo::IViewModel { protected: List> items; + Color selectedColor; public: ViewModel() @@ -54,6 +55,20 @@ public: items.Add(Ptr(new ColorItem(L"White", L"#FFFFFF"))); } + Color GetSelectedColor()override + { + return selectedColor; + } + + void SetSelectedColor(Color value)override + { + if (selectedColor != value) + { + selectedColor = value; + SelectedColorChanged(); + } + } + LazyList> GetColorItems()override { return items; diff --git a/Tutorial/GacUI_Controls/ColorPicker2/UI/Resource.xml b/Tutorial/GacUI_Controls/ColorPicker2/UI/Resource.xml index 4748e66f..f62be273 100644 --- a/Tutorial/GacUI_Controls/ColorPicker2/UI/Resource.xml +++ b/Tutorial/GacUI_Controls/ColorPicker2/UI/Resource.xml @@ -27,6 +27,7 @@ interface IViewModel { + prop SelectedColor : Color {} prop ColorItems : IColorItem^{} {const, not observe} } } @@ -38,7 +39,7 @@ - + @@ -52,20 +53,21 @@ - - - demo::ColorBomboItemTemplate - - - - ItemName - ViewModel.ColorItems - demo::ColorListItemTemplate - - - + + + + + + + + + + + +
diff --git a/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoPartialClasses.cpp index e223084f..cbd342f9 100644 --- a/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoPartialClasses.cpp @@ -115,46 +115,15 @@ Closures { } - ::vl::WString __vwsnf4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_item_) const - { - auto item = ::vl::__vwsn::Unbox<::vl::Ptr<::demo::IColorItem>>(__vwsn_item_); - return ::vl::__vwsn::This(item.Obj())->GetItemName(); - } - - //------------------------------------------------------------------- - - __vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_::__vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(::demo::MainWindowConstructor* __vwsnctorthis_0) - :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) - { - } - - ::vl::presentation::templates::GuiListItemTemplate* __vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_9.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return __vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::demo::IColorItem>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) - { - return static_cast<::vl::presentation::templates::GuiListItemTemplate*>(new ::demo::ColorListItemTemplate(::vl::__vwsn::Unbox<::vl::Ptr<::demo::IColorItem>>(__vwsn_viewModel_))); - } + return; } - throw ::vl::Exception(::vl::WString::Unmanaged(L"Cannot find a matched control template to create.")); - } - - //------------------------------------------------------------------- - - __vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_::__vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(::demo::MainWindowConstructor* __vwsnctorthis_0) - :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) - { - } - - ::vl::presentation::templates::GuiTemplate* __vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const - { - { - if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return __vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::demo::IColorItem>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) - { - return static_cast<::vl::presentation::templates::GuiTemplate*>(new ::demo::ColorBomboItemTemplate(::vl::__vwsn::Unbox<::vl::Ptr<::demo::IColorItem>>(__vwsn_viewModel_))); - } - } - throw ::vl::Exception(::vl::WString::Unmanaged(L"Cannot find a matched control template to create.")); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_9.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -340,6 +309,67 @@ Closures return false; } + //------------------------------------------------------------------- + + __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription::__vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::IViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetSelectedColor(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::IViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->SelectedColorChanged, ::vl::Func(this, &__vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->SelectedColorChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::IViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + } /*********************************************************************** @@ -541,15 +571,15 @@ Class (::demo::MainWindowConstructor) { (this->__vwsn_precompile_0 = __vwsn_this_); (this->ViewModel = ::vl::__vwsn::This(__vwsn_this_)->GetViewModel()); - (this->__vwsn_precompile_8 = ::vl::__vwsn::This(this->__vwsn_precompile_0)->GetContainerComposition()); + (this->__vwsn_precompile_10 = ::vl::__vwsn::This(this->__vwsn_precompile_0)->GetContainerComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(360); __vwsn_temp__.y = static_cast<::vl::vint>(120); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(360); __vwsn_temp__.y = static_cast<::vl::vint>(120); return __vwsn_temp__; }()); } { ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetClientSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(360); __vwsn_temp__.y = static_cast<::vl::vint>(120); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetText(::vl::WString::Unmanaged(L"ColorPicker")); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetText(::vl::WString::Unmanaged(L"ColorPicker2")); } (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiTableComposition()); { @@ -574,7 +604,7 @@ Class (::demo::MainWindowConstructor) (this->__vwsn_precompile_3 = new ::vl::presentation::controls::GuiLabel(::vl::presentation::theme::ThemeName::Label)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetText(::vl::WString::Unmanaged(L"ComboBox and BindableTextList using ItemTemplate:")); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetText(::vl::WString::Unmanaged(L"ComboButton using Custom Dropdown Control:")); } { ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_3)->GetBoundsComposition())); @@ -587,32 +617,38 @@ Class (::demo::MainWindowConstructor) ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } { - (this->__vwsn_precompile_6 = new ::vl::presentation::controls::GuiBindableTextList(::vl::presentation::theme::ThemeName::TextList)); + (this->__vwsn_precompile_5 = new ::vl::presentation::controls::GuiControl(::vl::presentation::theme::ThemeName::GroupBox)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetTextProperty(vl::Func(::vl_workflow_global::__vwsnf4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetText(::vl::WString::Unmanaged(L"Choose a Color:")); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetVerticalAlwaysVisible(false); + (this->comboColor = new ::vl::presentation::controls::GuiComboButton(::vl::presentation::theme::ThemeName::ComboBox, this->__vwsn_precompile_5)); + } + (this->__vwsn_precompile_7 = ::vl::__vwsn::This(this->comboColor)->GetContainerComposition()); + (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(2); __vwsn_temp__.top = static_cast<::vl::vint>(2); __vwsn_temp__.right = static_cast<::vl::vint>(2); __vwsn_temp__.bottom = static_cast<::vl::vint>(2); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_9 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_9)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetHorizontalAlwaysVisible(false); + ::vl::__vwsn::This(this->__vwsn_precompile_7)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_8)); + } + (this->__vwsn_precompile_6 = ::vl::__vwsn::This(this->comboColor)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(80); __vwsn_temp__.y = static_cast<::vl::vint>(24); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetItemTemplate(vl::Func(::vl_workflow_global::__vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(5); __vwsn_temp__.top = static_cast<::vl::vint>(5); __vwsn_temp__.right = static_cast<::vl::vint>(5); __vwsn_temp__.bottom = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); } { - (this->__vwsn_precompile_5 = new ::vl::presentation::controls::GuiComboBoxListControl(::vl::presentation::theme::ThemeName::ComboBox, static_cast<::vl::presentation::controls::GuiSelectableListControl*>(this->__vwsn_precompile_6))); - } - (this->__vwsn_precompile_7 = ::vl::__vwsn::This(this->__vwsn_precompile_5)->GetBoundsComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->comboColor)->SetAlt(::vl::WString::Unmanaged(L"K")); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetItemTemplate(vl::Func(::vl_workflow_global::__vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_5)->GetBoundsComposition())); + ::vl::__vwsn::This(this->__vwsn_precompile_4)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->comboColor)->GetBoundsComposition())); } { ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); @@ -621,24 +657,26 @@ Class (::demo::MainWindowConstructor) ::vl::__vwsn::This(::vl::__vwsn::This(this->__vwsn_precompile_0)->GetContainerComposition())->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetItemSource(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueEnumerable>(::vl::__vwsn::This(this->ViewModel.Obj())->GetColorItems())); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetSelectedIndex(static_cast<::vl::vint>(0)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } MainWindowConstructor::MainWindowConstructor() : ViewModel(::vl::Ptr<::demo::IViewModel>()) + , comboColor(static_cast<::vl::presentation::controls::GuiComboButton*>(nullptr)) , __vwsn_precompile_0(static_cast<::demo::MainWindow*>(nullptr)) , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) , __vwsn_precompile_3(static_cast<::vl::presentation::controls::GuiLabel*>(nullptr)) , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_5(static_cast<::vl::presentation::controls::GuiComboBoxListControl*>(nullptr)) - , __vwsn_precompile_6(static_cast<::vl::presentation::controls::GuiBindableTextList*>(nullptr)) - , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(nullptr)) + , __vwsn_precompile_5(static_cast<::vl::presentation::controls::GuiControl*>(nullptr)) + , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(nullptr)) + , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_9(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_10(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(nullptr)) { } diff --git a/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoPartialClasses.h index 25098e07..58d4886e 100644 --- a/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoPartialClasses.h @@ -28,11 +28,10 @@ namespace vl_workflow_global struct __vwsnf2_Demo_demo_ColorBomboItemTemplateConstructor___vwsn_demo_ColorBomboItemTemplate_Initialize_; struct __vwsnf3_Demo_demo_ColorListItemTemplateConstructor___vwsn_demo_ColorListItemTemplate_Initialize_; struct __vwsnf4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; - struct __vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; - struct __vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; class __vwsnc1_Demo_demo_ColorBomboItemTemplateConstructor___vwsn_demo_ColorBomboItemTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc2_Demo_demo_ColorBomboItemTemplateConstructor___vwsn_demo_ColorBomboItemTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc3_Demo_demo_ColorListItemTemplateConstructor___vwsn_demo_ColorListItemTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription; } namespace demo @@ -136,28 +135,33 @@ namespace demo friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif public: + virtual ::vl::presentation::Color GetSelectedColor() = 0; + virtual void SetSelectedColor(::vl::presentation::Color __vwsn_value_) = 0; + ::vl::Event SelectedColorChanged; virtual ::vl::collections::LazyList<::vl::Ptr<::demo::IColorItem>> GetColorItems() = 0; }; class MainWindowConstructor : public ::vl::Object, public ::vl::reflection::Description { + friend class ::vl_workflow_global::__vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; - friend struct ::vl_workflow_global::__vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; - friend struct ::vl_workflow_global::__vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif protected: ::vl::Ptr<::demo::IViewModel> ViewModel; + ::vl::presentation::controls::GuiComboButton* comboColor; ::demo::MainWindow* __vwsn_precompile_0; ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_1; ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_2; ::vl::presentation::controls::GuiLabel* __vwsn_precompile_3; ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_4; - ::vl::presentation::controls::GuiComboBoxListControl* __vwsn_precompile_5; - ::vl::presentation::controls::GuiBindableTextList* __vwsn_precompile_6; - ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_7; - ::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_precompile_8; + ::vl::presentation::controls::GuiControl* __vwsn_precompile_5; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_6; + ::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_precompile_7; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_8; + ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement> __vwsn_precompile_9; + ::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_precompile_10; void __vwsn_demo_MainWindow_Initialize(::demo::MainWindow* __vwsn_this_); public: MainWindowConstructor(); @@ -166,9 +170,8 @@ namespace demo class MainWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::MainWindowConstructor, public ::vl::reflection::Description { friend class ::demo::MainWindowConstructor; + friend class ::vl_workflow_global::__vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; - friend struct ::vl_workflow_global::__vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; - friend struct ::vl_workflow_global::__vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -230,25 +233,7 @@ Closures __vwsnf4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(::demo::MainWindowConstructor* __vwsnctorthis_0); - ::vl::WString operator()(const ::vl::reflection::description::Value& __vwsn_item_) const; - }; - - struct __vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_ - { - ::demo::MainWindowConstructor* __vwsnthis_0; - - __vwsnf5_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(::demo::MainWindowConstructor* __vwsnctorthis_0); - - ::vl::presentation::templates::GuiListItemTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; - }; - - struct __vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_ - { - ::demo::MainWindowConstructor* __vwsnthis_0; - - __vwsnf6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(::demo::MainWindowConstructor* __vwsnctorthis_0); - - ::vl::presentation::templates::GuiTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; class __vwsnc1_Demo_demo_ColorBomboItemTemplateConstructor___vwsn_demo_ColorBomboItemTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription @@ -304,6 +289,24 @@ Closures bool Update() override; bool Close() override; }; + + class __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnc4_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription(::demo::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::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; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; } #if defined( _MSC_VER) diff --git a/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoReflection.cpp b/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoReflection.cpp index 70cbcae9..24cda03c 100644 --- a/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoReflection.cpp +++ b/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoReflection.cpp @@ -97,7 +97,11 @@ namespace vl BEGIN_INTERFACE_MEMBER(::demo::IViewModel) CLASS_MEMBER_BASE(::vl::reflection::IDescriptable) CLASS_MEMBER_METHOD(GetColorItems, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetSelectedColor, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetSelectedColor, { L"__vwsn_value_" }) + CLASS_MEMBER_EVENT(SelectedColorChanged) CLASS_MEMBER_PROPERTY_READONLY(ColorItems, GetColorItems) + CLASS_MEMBER_PROPERTY_EVENT(SelectedColor, GetSelectedColor, SetSelectedColor, SelectedColorChanged) END_INTERFACE_MEMBER(::demo::IViewModel) BEGIN_CLASS_MEMBER(::demo::MainWindow) @@ -115,6 +119,7 @@ namespace vl CLASS_MEMBER_METHOD(__vwsn_demo_MainWindow_Initialize, { L"__vwsn_this_" }) CLASS_MEMBER_FIELD(__vwsn_precompile_0) CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_10) CLASS_MEMBER_FIELD(__vwsn_precompile_2) CLASS_MEMBER_FIELD(__vwsn_precompile_3) CLASS_MEMBER_FIELD(__vwsn_precompile_4) @@ -122,7 +127,9 @@ namespace vl 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(comboColor) END_CLASS_MEMBER(::demo::MainWindowConstructor) #undef _ diff --git a/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoReflection.h b/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoReflection.h index b9570553..b65d1497 100644 --- a/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoReflection.h +++ b/Tutorial/GacUI_Controls/ColorPicker2/UI/Source/DemoReflection.h @@ -63,6 +63,14 @@ namespace vl { INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetColorItems); } + ::vl::presentation::Color GetSelectedColor() override + { + INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetSelectedColor); + } + void SetSelectedColor(::vl::presentation::Color __vwsn_value_) override + { + INVOKE_INTERFACE_PROXY(SetSelectedColor, __vwsn_value_); + } END_INTERFACE_PROXY(::demo::IViewModel) #endif #endif