This commit is contained in:
vczh
2023-03-22 00:09:09 -07:00
parent 1748bbb65e
commit e1ea7e3ec7
6 changed files with 178 additions and 105 deletions
@@ -32,6 +32,7 @@ class ViewModel : public Object, public demo::IViewModel
{
protected:
List<Ptr<demo::IColorItem>> 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<Ptr<demo::IColorItem>> GetColorItems()override
{
return items;
@@ -27,6 +27,7 @@
interface IViewModel
{
prop SelectedColor : Color {}
prop ColorItems : IColorItem^{} {const, not observe}
}
}
@@ -38,7 +39,7 @@
<Instance name="MainWindowResource">
<Instance ref.CodeBehind="false" ref.Class="demo::MainWindow">
<ref.Parameter Name="ViewModel" Class="demo::IViewModel"/>
<Window Text="ColorPicker" ClientSize="x:360 y:120">
<Window Text="ColorPicker2" ClientSize="x:360 y:120">
<att.ContainerComposition-set PreferredMinSize="x:360 y:120"/>
<Table CellPadding="10" AlignmentToParent="left:0 top:0 right:0 bottom:0">
<att.Rows>
@@ -52,20 +53,21 @@
</att.Columns>
<Cell Site="row:0 column:0">
<Label Text="ComboBox and BindableTextList using ItemTemplate:"/>
<Label Text="ComboButton using Custom Dropdown Control:"/>
</Cell>
<Cell Site="row:1 column:0">
<ComboBox SelectedIndex-eval="0">
<att.ItemTemplate>demo::ColorBomboItemTemplate</att.ItemTemplate>
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
<att.ListControl>
<BindableTextList HorizontalAlwaysVisible="false" VerticalAlwaysVisible="false" env.ItemType="demo::IColorItem^">
<att.TextProperty>ItemName</att.TextProperty>
<att.ItemSource-eval>ViewModel.ColorItems</att.ItemSource-eval>
<att.ItemTemplate>demo::ColorListItemTemplate</att.ItemTemplate>
</BindableTextList>
</att.ListControl>
</ComboBox>
<ComboButton ref.Name="comboColor" Alt="K">
<att.BoundsComposition-set AlignmentToParent="left:5 top:5 right:5 bottom:5" PreferredMinSize="x:80 y:24"/>
<att.ContainerComposition-set>
<Bounds AlignmentToParent="left:2 top:2 right:2 bottom:2">
<SolidBackground Color-bind="ViewModel.SelectedColor"/>
</Bounds>
</att.ContainerComposition-set>
<att.DropdownControl>
<GroupBox Text="Choose a Color:">
</GroupBox>
</att.DropdownControl>
</ComboButton>
</Cell>
</Table>
</Window>
@@ -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<void()>(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<bool>(__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))
{
}
@@ -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<IViewModel>;
#endif
public:
virtual ::vl::presentation::Color GetSelectedColor() = 0;
virtual void SetSelectedColor(::vl::presentation::Color __vwsn_value_) = 0;
::vl::Event<void()> SelectedColorChanged;
virtual ::vl::collections::LazyList<::vl::Ptr<::demo::IColorItem>> GetColorItems() = 0;
};
class MainWindowConstructor : public ::vl::Object, public ::vl::reflection::Description<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<MainWindowConstructor>;
#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<MainWindow>
{
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<MainWindow>;
#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)
@@ -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 _
@@ -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